@@ -167,18 +167,18 @@ def report(self):
167
167
return records
168
168
169
169
170
- def create_report (mc , directory , project , since , to , out_dir = tempfile . gettempdir () ):
170
+ def create_report (mc , directory , since , to , out_file ):
171
171
""" Creates report from geodiff changesets for a range of project versions in CSV format.
172
172
173
173
Args:
174
174
mc (MerginClient): MerginClient instance.
175
175
directory (str): local project directory (must already exist).
176
- project (str): full project name (<namespace/project>).
177
176
since (str): starting project version tag, for example 'v3'.
178
177
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
180
179
"""
181
180
mp = MerginProject (directory )
181
+ project = mp .metadata ["name" ]
182
182
mp .log .info (f"--- Creating changesets report for { project } from { since } to { to } versions ----" )
183
183
versions_map = {v ["name" ]: v for v in mc .project_versions (project , since , to )}
184
184
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
245
245
raise ClientError ("Reporting failed, please check log for details" )
246
246
247
247
# 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 :
251
251
writer = csv .DictWriter (f_csv , fieldnames = headers )
252
252
writer .writeheader ()
253
253
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