@@ -47,6 +47,11 @@ def main(ctx, url, email, password):
4747 ctx .obj ['start_time' ] = start_time
4848
4949
50+ @click .group ()
51+ def aux ():
52+ pass
53+
54+
5055@main .command ()
5156@click .option ('-f' , '--field' , prompt = 'Enter the field to be searched' ,
5257 help = 'The field to search.' )
@@ -106,7 +111,7 @@ def newcoll(ctx, comm_handle, coll_name, metadata, file_path, file_type,
106111 models .elapsed_time (start_time , 'Total runtime:' )
107112
108113
109- @main .command ()
114+ @aux .command ()
110115@click .option ('-m' , '--metadata_csv' , prompt = 'Enter the metadata CSV file' ,
111116 help = 'The path of the CSV file of metadata.' )
112117@click .option ('-f' , '--file_path' , prompt = 'Enter the path' ,
@@ -145,50 +150,47 @@ def reconcile(metadata_csv, file_path, file_type):
145150 models .create_csv_from_list (metadata_matches , 'metadata_matches.csv' )
146151
147152
148- @main .command ()
153+ @aux .command ()
149154@click .option ('-m' , '--metadata_csv' , prompt = 'Enter the metadata CSV file' ,
150155 help = 'The path of the CSV file of metadata.' )
151156def metadatajson (metadata_csv ):
152157 with open (metadata_csv ) as csvfile :
153158 reader = csv .DictReader (csvfile )
154159 metadata_group = []
160+ mapping_dict = {'fileIdentifier' : ['file_identifier' ],
161+ 'dc.contributor.author' : ['author name - direct' ],
162+ 'dc.contributor.advisor' : ['supervisor(s)' ],
163+ 'dc.date.issued' : ['pub date' ],
164+ 'dc.description.abstract' : ['Abstract' , 'en_US' ],
165+ 'dc.title' : ['Title' , 'en_US' ],
166+ 'dc.relation.ispartofseries' : ['file_identifier' ]}
155167 for row in reader :
156168 metadata_rec = []
157- models .metadata_csv (row , metadata_rec , 'fileIdentifier' ,
158- 'file_identifier' , '' , '' )
159- models .metadata_csv (row , metadata_rec , 'dc.contributor.author' ,
160- 'author name - direct' , '' , '' )
161- models .metadata_csv (row , metadata_rec , 'dc.contributor.advisor' ,
162- 'supervisor(s)' , '' , '' )
163- models .metadata_csv (row , metadata_rec , 'dc.date.issued' ,
164- 'pub date' , '' , '' )
165- models .metadata_csv (row , metadata_rec , 'dc.description.abstract' ,
166- 'Abstract' , 'en_US' , '' )
167- models .metadata_direct (metadata_rec , 'dc.format.mimetype' ,
168- 'application/pdf' , 'en_US' )
169- models .metadata_direct (metadata_rec , 'dc.language.iso' , 'en_US' ,
170- 'en_US' )
171- models .metadata_direct (metadata_rec , 'dc.publisher' ,
172- 'Massachusetts Institute of Technology. '
173- 'Laboratory for Computer Science' , 'en_US' )
174- models .metadata_csv (row , metadata_rec ,
175- 'dc.relation.ispartofseries' ,
176- 'file_identifier' , 'en_US' , '' )
177- models .metadata_direct (metadata_rec , 'dc.rights' ,
178- 'Educational use permitted' , 'en_US' )
179- models .metadata_direct (metadata_rec , 'dc.rights.uri' ,
180- 'http://rightsstatements.org/vocab/'
181- 'InC-EDU/1.0/' , 'en_US' )
182- models .metadata_csv (row , metadata_rec , 'dc.title' , 'Title' ,
183- 'en_US' , '' )
184- models .metadata_direct (metadata_rec , 'dc.type' , 'Technical Report' ,
185- 'en_US' )
169+ metadata_rec = models .create_metadata_rec (mapping_dict , row ,
170+ metadata_rec )
171+ metadata_rec .append ({'key' : 'dc.format.mimetype' , 'language' :
172+ 'en_US' , 'value' : 'application/pdf' })
173+ metadata_rec .append ({'key' : 'dc.language.iso' , 'language' :
174+ 'en_US' , 'value' : 'en_US' })
175+ metadata_rec .append ({'key' : 'dc.publisher' , 'language' : 'en_US' ,
176+ 'value' : 'Massachusetts Institute of '
177+ 'Technology. Laboratory for Computer'
178+ 'Science' })
179+ metadata_rec .append ({'key' : 'dc.rights' , 'language' : 'en_US' ,
180+ 'value' : 'Educational use permitted' })
181+ metadata_rec .append ({'key' : 'dc.rights.uri' , 'language' : 'en_US' ,
182+ 'value' : 'http://rightsstatements.org/vocab/'
183+ 'InC-EDU/1.0/' })
184+ metadata_rec .append ({'key' : 'dc.type' , 'language' : 'en_US' ,
185+ 'value' : 'Technical Report' })
186186 item = {'metadata' : metadata_rec }
187187 metadata_group .append (item )
188188 file_name = os .path .splitext (os .path .basename (metadata_csv ))[0 ]
189- f = open (f'{ file_name } .json' , 'w' )
190- json .dump (metadata_group , f )
189+ with open (f'{ file_name } .json' , 'w' ) as f :
190+ json .dump (metadata_group , f )
191+
191192
193+ cli = click .CommandCollection (sources = [main , aux ])
192194
193195if __name__ == '__main__' :
194- main ()
196+ cli ()
0 commit comments