@@ -167,18 +167,18 @@ def report(self):
167167 return records
168168
169169
170- def create_report (mc , directory , project , since , to , out_dir = tempfile . gettempdir () ):
170+ def create_report (mc , directory , since , to , out_file ):
171171 """ Creates report from geodiff changesets for a range of project versions in CSV format.
172172
173173 Args:
174174 mc (MerginClient): MerginClient instance.
175175 directory (str): local project directory (must already exist).
176- project (str): full project name (<namespace/project>).
177176 since (str): starting project version tag, for example 'v3'.
178177 to (str): ending project version tag, for example 'v6'.
179- out_dir (str): output directory to save report. csv in, defaults to temp dir
178+ out_file (str): output file to save csv in
180179 """
181180 mp = MerginProject (directory )
181+ project = mp .metadata ["name" ]
182182 mp .log .info (f"--- Creating changesets report for { project } from { since } to { to } versions ----" )
183183 versions_map = {v ["name" ]: v for v in mc .project_versions (project , since , to )}
184184 headers = ["file" , "table" , "author" , "date" , "time" , "version" , "operation" , "length" , "area" , "count" ]
@@ -245,10 +245,10 @@ def create_report(mc, directory, project, since, to, out_dir=tempfile.gettempdir
245245 raise ClientError ("Reporting failed, please check log for details" )
246246
247247 # export report to csv file
248- proj_name = project . replace ( os .path .sep , "-" )
249- report_file = os .path . join (out_dir , f'report- { proj_name } - { since } - { to } .csv' )
250- with open (report_file , 'w' , newline = '' ) as f_csv :
248+ out_dir = os .path .dirname ( out_file )
249+ os .makedirs (out_dir , exist_ok = True )
250+ with open (out_file , 'w' , newline = '' ) as f_csv :
251251 writer = csv .DictWriter (f_csv , fieldnames = headers )
252252 writer .writeheader ()
253253 writer .writerows (records )
254- mp .log .info (f"--- Report saved to { report_file } ----" )
254+ mp .log .info (f"--- Report saved to { out_file } ----" )
0 commit comments