Skip to content

Commit 0a86dc7

Browse files
committed
🎨 move output_dir to init of QuartoReportView
1 parent ef455f6 commit 0a86dc7

File tree

2 files changed

+16
-10
lines changed

2 files changed

+16
-10
lines changed

src/vuegen/quarto_reportview.py

Lines changed: 13 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ def __init__(
2525
report: r.Report,
2626
report_type: r.ReportType,
2727
quarto_checks: bool = False,
28+
output_dir: Optional[Path] = BASE_DIR,
2829
static_dir: str = STATIC_FILES_DIR,
2930
):
3031
"""_summary_
@@ -44,7 +45,7 @@ def __init__(
4445
super().__init__(report=report, report_type=report_type)
4546
self.quarto_checks = quarto_checks
4647
self.static_dir = static_dir
47-
self.output_dir = self.BASE_DIR # set default output directory
48+
self.output_dir = output_dir.resolve().absolute()
4849
# self.BUNDLED_EXECUTION = False
4950
self.quarto_path = "quarto"
5051
# self.env_vars = os.environ.copy()
@@ -73,19 +74,22 @@ def __init__(
7374
r.ComponentType.HTML: self._generate_html_content,
7475
}
7576

76-
def generate_report(self, output_dir: Path = BASE_DIR) -> None:
77+
def generate_report(self, output_dir: Optional[Path] = None) -> None:
7778
"""
7879
Generates the qmd file of the quarto report. It creates code for rendering each section and its subsections with all components.
7980
8081
Parameters
8182
----------
8283
output_dir : Path, optional
83-
The folder where the generated report files will be saved (default is BASE_DIR).
84+
The folder where the generated report files will be saved.
85+
Will overwrite value set on initialization of QuartoReportView.
8486
"""
87+
if output_dir is not None:
88+
self.output_dir = Path(output_dir).resolve().absolute()
89+
8590
self.report.logger.debug(
86-
f"Generating '{self.report_type}' report in directory: '{output_dir}'"
91+
f"Generating '{self.report_type}' report in directory: '{self.output_dir}'"
8792
)
88-
self.output_dir = output_dir.resolve().absolute()
8993
# Create the output folder
9094
if create_folder(self.output_dir, is_nested=True):
9195
self.report.logger.debug(f"Created output directory: '{self.output_dir}'")
@@ -248,7 +252,7 @@ def generate_report(self, output_dir: Path = BASE_DIR) -> None:
248252
)
249253
raise
250254

251-
def run_report(self, output_dir: str = BASE_DIR) -> None:
255+
def run_report(self, output_dir: Optional[Path] = None) -> None:
252256
"""
253257
Runs the generated quarto report.
254258
@@ -258,8 +262,10 @@ def run_report(self, output_dir: str = BASE_DIR) -> None:
258262
The folder where the report was generated (default is 'sections').
259263
"""
260264
# from quarto_cli import run_quarto # entrypoint of quarto-cli not in module?
265+
if output_dir is not None:
266+
self.output_dir = Path(output_dir).resolve().absolute()
261267

262-
file_path_to_qmd = Path(output_dir) / f"{self.BASE_DIR}.qmd"
268+
file_path_to_qmd = Path(self.output_dir) / f"{self.BASE_DIR}.qmd"
263269
args = [self.quarto_path, "render", str(file_path_to_qmd)]
264270
self.report.logger.info(
265271
f"Running '{self.report.title}' '{self.report_type}' report with {args!r}"

src/vuegen/report_generator.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -124,10 +124,10 @@ def get_report(
124124
report=report,
125125
report_type=report_type,
126126
quarto_checks=quarto_checks,
127+
output_dir=report_dir,
127128
static_dir=static_files_dir,
128129
)
129-
# ToDo: output_dir should be passed then in init of QuartoReportView
130-
quarto_report.generate_report(output_dir=report_dir)
131-
quarto_report.run_report(output_dir=report_dir)
130+
quarto_report.generate_report()
131+
quarto_report.run_report()
132132
# ? Could be also the path to the report file for quarto based reports
133133
return report_dir, config_path

0 commit comments

Comments
 (0)