1111class ParseError (ValueError ):
1212 pass
1313
14+ def get_files (files ):
15+ return schema .FileCollection (* (schema .GTFS_FILENAMES [f ] for f in files )).values ()
1416
15- def load (gtfs_dir , sorted_read = False ):
17+
18+ def load (gtfs_dir , sorted_read = False , files = None , verbose = True ):
1619 gtfs_dir = Path (gtfs_dir )
1720 gtfs = types .Entity ()
18- for file_schema in schema .GTFS_SUBSET_SCHEMA .values ():
19- print (f'Loading { file_schema .name } ' )
21+
22+ files_to_load = get_files (files ) if files else schema .GTFS_SUBSET_SCHEMA .values ()
23+
24+ for file_schema in files_to_load :
25+ if verbose :
26+ print (f'Loading { file_schema .name } ' )
2027 filepath = gtfs_dir / file_schema .filename
2128 gtfs [file_schema .name ] = types .EntityDict (
2229 file_schema .get_declared_fields ())
@@ -210,7 +217,7 @@ def sorted_entities(file_schema, entities):
210217 return sorted (entities .items (), key = lambda kv : kv [0 ])
211218
212219
213- def patch (gtfs , gtfs_in_dir , gtfs_out_dir , sorted_output = False ):
220+ def patch (gtfs , gtfs_in_dir , gtfs_out_dir , files = None , sorted_output = False , verbose = True ):
214221 gtfs_in_dir = Path (gtfs_in_dir )
215222 gtfs_out_dir = Path (gtfs_out_dir )
216223 gtfs_out_dir .mkdir (parents = True , exist_ok = True )
@@ -222,8 +229,11 @@ def patch(gtfs, gtfs_in_dir, gtfs_out_dir, sorted_output=False):
222229 except shutil .SameFileError :
223230 pass # No need to copy if we're working in-place
224231
225- for file_schema in schema .GTFS_SUBSET_SCHEMA .values ():
226- print (f'Writing { file_schema .name } ' )
232+ files_to_patch = get_files (files ) if files else schema .GTFS_SUBSET_SCHEMA .values ()
233+
234+ for file_schema in files_to_patch :
235+ if verbose :
236+ print (f'Writing { file_schema .name } ' )
227237 entities = gtfs .get (file_schema .name )
228238 if not entities :
229239 (gtfs_out_dir / file_schema .filename ).unlink (missing_ok = True )
0 commit comments