@@ -145,5 +145,50 @@ def reconcile(metadata_csv, file_path, file_type):
145145 models .create_csv_from_list (metadata_matches , 'metadata_matches.csv' )
146146
147147
148+ @main .command ()
149+ @click .option ('-m' , '--metadata_csv' , prompt = 'Enter the metadata CSV file' ,
150+ help = 'The path of the CSV file of metadata.' )
151+ def metadatajson (metadata_csv ):
152+ with open (metadata_csv ) as csvfile :
153+ reader = csv .DictReader (csvfile )
154+ metadata_group = []
155+ for row in reader :
156+ 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' )
186+ item = {'metadata' : metadata_rec }
187+ metadata_group .append (item )
188+ 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 )
191+
192+
148193if __name__ == '__main__' :
149194 main ()
0 commit comments