def _write_dtd_to_gcs(storage_client_fn, outdir, mae_tag_categories, task_name): """Write the DTD config file.""" storage_client = storage_client_fn() dtd_contents = mae.generate_dtd(mae_tag_categories, task_name) bucket_name, blob_dir = split_gcs_name(outdir) bucket = storage_client.get_bucket(bucket_name) blob = bucket.blob(posixpath.join(blob_dir, 'classification.dtd')) blob.upload_from_string(dtd_contents)
def testGenerateDtd(self): mae_tag_categories = [{'name': 'type1'}, {'name': 'type2'}] dtd = mae.generate_dtd(mae_tag_categories, 'task_name') expected_dtd = """<!ENTITY name "task_name"> <!ELEMENT type1 ( #PCDATA ) > <!ATTLIST type1 id ID prefix="type1" #REQUIRED > <!ELEMENT type2 ( #PCDATA ) > <!ATTLIST type2 id ID prefix="type2" #REQUIRED > """ self.assertEqual(dtd, expected_dtd)
def _write_dtd(storage_client_fn, outdir, mae_tag_categories, task_name): if outdir.startswith('gs://'): return _write_dtd_to_gcs(storage_client_fn, outdir, mae_tag_categories, task_name) with open(os.path.join(outdir, 'classification.dtd'), 'w') as f: f.write(mae.generate_dtd(mae_tag_categories, task_name))