{"id":14065061,"url":"https://github.com/ucd-cws/arcpy_metadata","last_synced_at":"2026-01-16T12:43:03.328Z","repository":{"id":23146538,"uuid":"26501802","full_name":"ucd-cws/arcpy_metadata","owner":"ucd-cws","description":"Python metadata editing classes for ArcGIS feature classes","archived":false,"fork":false,"pushed_at":"2024-10-05T00:13:42.000Z","size":307,"stargazers_count":97,"open_issues_count":10,"forks_count":35,"subscribers_count":20,"default_branch":"release","last_synced_at":"2025-12-30T11:54:44.949Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ucd-cws.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2014-11-11T19:58:32.000Z","updated_at":"2025-10-06T09:15:59.000Z","dependencies_parsed_at":"2025-07-29T19:38:23.028Z","dependency_job_id":null,"html_url":"https://github.com/ucd-cws/arcpy_metadata","commit_stats":{"total_commits":130,"total_committers":12,"mean_commits":"10.833333333333334","dds":0.523076923076923,"last_synced_commit":"977ec1a6115cd14405aba0ae0faca3cf09b0b610"},"previous_names":[],"tags_count":11,"template":false,"template_full_name":null,"purl":"pkg:github/ucd-cws/arcpy_metadata","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ucd-cws%2Farcpy_metadata","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ucd-cws%2Farcpy_metadata/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ucd-cws%2Farcpy_metadata/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ucd-cws%2Farcpy_metadata/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ucd-cws","download_url":"https://codeload.github.com/ucd-cws/arcpy_metadata/tar.gz/refs/heads/release","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ucd-cws%2Farcpy_metadata/sbom","scorecard":{"id":906604,"data":{"date":"2025-08-11","repo":{"name":"github.com/ucd-cws/arcpy_metadata","commit":"09c534d8f50380512850d30ea95720a641feb877"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":1.7,"checks":[{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Code-Review","score":1,"reason":"Found 1/10 approved changesets -- score normalized to 1","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Token-Permissions","score":-1,"reason":"No tokens found","details":null,"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Dangerous-Workflow","score":-1,"reason":"no workflows found","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Pinned-Dependencies","score":-1,"reason":"no dependencies found","details":null,"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"License","score":0,"reason":"license file not detected","details":["Warn: project does not have a license file"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"Signed-Releases","score":0,"reason":"Project has not signed or included provenance with any releases.","details":["Warn: release artifact 0.5.3 not signed: https://api.github.com/repos/ucd-cws/arcpy_metadata/releases/20562757","Warn: release artifact 0.5.3 does not have provenance: https://api.github.com/repos/ucd-cws/arcpy_metadata/releases/20562757"],"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Vulnerabilities","score":4,"reason":"6 existing vulnerabilities detected","details":["Warn: Project is vulnerable to: GHSA-55x5-fj6c-h6m8","Warn: Project is vulnerable to: PYSEC-2014-9 / GHSA-57qw-cc2g-pv5p","Warn: Project is vulnerable to: PYSEC-2021-19 / GHSA-jq4v-f5q6-mjqq","Warn: Project is vulnerable to: PYSEC-2020-62 / GHSA-pgww-xf46-h92r","Warn: Project is vulnerable to: PYSEC-2022-230 / GHSA-wrxv-2j5q-m38w","Warn: Project is vulnerable to: PYSEC-2018-12 / GHSA-xp26-p53h-6h2p"],"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 24 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}},{"name":"Branch-Protection","score":0,"reason":"branch protection not enabled on development/release branches","details":["Warn: branch protection not enabled for branch 'release'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}}]},"last_synced_at":"2025-08-24T17:35:36.881Z","repository_id":23146538,"created_at":"2025-08-24T17:35:36.881Z","updated_at":"2025-08-24T17:35:36.881Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28478726,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-16T11:59:17.896Z","status":"ssl_error","status_checked_at":"2026-01-16T11:55:55.838Z","response_time":107,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-08-13T07:04:16.035Z","updated_at":"2026-01-16T12:43:03.294Z","avatar_url":"https://github.com/ucd-cws.png","language":"Python","funding_links":[],"categories":["Python"],"sub_categories":[],"readme":"## DEVELOPMENT HAS MOVED\nFuture development of this library will now be at [https://github.com/Office-of-Digital-Services/arcpy_metadata](https://github.com/Office-of-Digital-Services/arcpy_metadata), where the library is being maintained.\n\nThis repository will be wound down in the future.\n\n\n\n\n\n\n# Arcpy Metadata Editor (arcpy_metadata)\nWhether you create it or not, metadata is a critical part of GIS analysis. ArcGIS includes a built-in GUI metadata editor, but has scant access to metadata properties from Python. The arcpy_metadata package provides this access, allowing large Python packages that generate their own geospatial outputs in ArcGIS to properly document the data.\n\n[![Code Issues](https://www.quantifiedcode.com/api/v1/project/410cbc590b3c463489fd3a7c786f1f04/badge.svg)](https://www.quantifiedcode.com/app/project/410cbc590b3c463489fd3a7c786f1f04)\n\n## Getting arcpy_metadata\narcpy_metadata is pure Python and its only dependency is arcpy (installed with ArcGIS). It's available on the Python Package Index so you can get arcpy_metadata via pip (pip install arcpy_metadata).\n \nIf you don't have or don't know how to use pip, you can install arcpy_metadata by cloning/downloading this repository and running setup.py install in the root folder\n\n## Using arcpy_metadata\n\nCreating the Metadata Editor\n\nEdit existing metadata for Shapefiles, Rasters, FeatureClasses, RasterDatasets, MosaicDatasets or Layers\n```python\nimport arcpy_metadata as md\nmetadata = md.MetadataEditor(path_to_some_feature_class)  # currently supports Shapefiles, FeatureClasses, RasterDatasets and Layers\n```\n\n\nEdit or create an XML file directly\n```python\nimport arcpy_metadata as md\nmetadata = md.MetadataEditor(metadata_file=\"path/to/metadata_file.xml\")  # currently supports Shapefiles, FeatureClasses, RasterDatasets and Layers\n```\n\n\nChoose your log level\n```python\nmetadata = md.MetadataEditor(path_to_some_feature_class, loglevel=\"DEBUG\")  # use any of CRITICAL, ERROR, WARNING, INFO, DEBUG, NOTSET, dafault is INFO\n\n```\n\nGet text items (returns string)\n\n```python\ntitle = metadata.title\nabstract = metadata.abstract\n```\n\nChange text items\n\n```python\nmetadata.title = \"The new title\"\nmetadata.abstract = \"This is the abstract\"\n```\n\nGet list items (returns list)\n\n```python\ntags = metadata.tags\nfor tag in tags:\n    print tag\n```\n\nChange list items\n\n```python\nmetadata.tags = [\"tag1\", \"tag2\"]\nmetadata.tags[1] = \"another tag\"\nmetadata.tags.append(\"new tag\")\nmetadata.tags.insert(0, \"first tag\")\nmetadata.tags.remove(\"tag1\")\nmetadata.tags.pop()\n```\n\nGet numeric items (return int or float)\n\n```python\nmin_scale = metadata.min_scale\nmax_scale = metadata.max_scale\n```\n\nChange numeric items \n\n```python\nmetadata.min_scale = 500000\nmetadata.max_scale = 500\n```\n\nGet date items (returns date object)\n\n```python\nlast_update = metadata.last_update\nlast_update_year = metadata.last_update.year\n```\n\nChange date items (excepts datetime objects and formated string (yyyymmdd, yyyy-mm-ddThh:mm:ss)\n\n```python\nfrom datetime import date\ntoday = date.today()\nmetadata.last_update = today\nmetadata.last_update = \"20160221\"\n```\n\nAdd and edit field definitions\n```python\nmetadata.fields.new()  # add the new field\nmetadata.fields[-1].name = \"MyFieldName\" # the item at index -1 will be the new one\nmetadata.fields[-1].definition = \"Here I am describing how the field was created and how to use and interpret its values for a reader\"\n\n# or find an existing field and update its definition\nsearch_for_field = \"OBJECTID\"\nfor field in metadata.fields:\n    if field.name == search_for_field:\n        field.definition = \"Some updated information about the field defintiion\"\n        break  # not necessary, but faster as it stops searching once you've found the field\n\n```\n\nGet contact items (returns contact object)\n\n```python\ncontact = metadata.point_of_contact\ncontact_name = metadata.point_of_contact.contact_name\ncontact_email = metadata.point_of_contact.email\n```\n\nChange contact items (all contact items are string)\n\n```python\nmetadata.point_of_contact.contact_name = \"First and Last Name\"\nmetadata.point_of_contact.email = \"email@address.com\"\n```\n\nEdited nested lists\n```python\n# make sure you have the right number of elements\n# add new ones\nwhile metadata.online_resource \u003c 3:\n    metadata.online_resource.new()\n# or delete spare once\nwhile metadata.online_resource \u003e 3:\n\tmetadata.online_resource.pop()\n\t\nmetadata.online_resource[0].name = \"First download link\"\nmetadata.online_resource[0].link = \"http://somelink\"\nmetadata.online_resource[0].function = \"download\"\nmetadata.online_resource[1].name = \"Second download link\"\nmetadata.online_resource[1].link = \"http://someotherlink\"\nmetadata.online_resource[1].function = \"download\"\nmetadata.online_resource[2].name = \"Third download link\"\nmetadata.online_resource[2].link = \"http://yetanotherdownloadlink\"\nmetadata.online_resource[2].function = \"download\"\n```\nRemove all items from the geoprocessing history\n```python\nmetadata.rm_gp_history()\n```\n\nSaving the changes back to the file\n\n```python\nmetadata.save() # save the metadata back to file.\nmetadata.cleanup() # remove all temporary files.\n```\nor\n```\nmetadata.finish()  # save() and cleanup() as one call\n```\nIf you want to enable automatic updates of your metadata (feature classes only) call.\n```python\nmetadata.finish(True) \n```\n\n## Supported items\n\n|Item description|Internal name|Type|Catalog Edit View|Path in ArcGIS XML file|\n|---|---|---|---|---|\n|Title|title|String|Overview/ Item Description/ Title|dataIdInfo/idCitation/resTitle|\n|Abstract|abstract|String|Overview/ Item Description/ Description|dataIdInfo/idAbs|\n|Purpose|purpose|String|Overview/ Item Description/ Summery|dataIdInfo/idPurp|\n|Tags|tags|List|Overview/ Item Description/ Tags|dataIdInfo/searchKeys/keyword|\n|Place Keywords|place_keywords|List|Overview/ Topics \u0026 Keywords/ Place Keyword|dataIdInfo/placeKeys/keyword|\n|Extent Description|extent_description|String|Resource/ Extents/ Extent/ Description|dataIdInfo/dataExt/exDesc|\n|Temporal Extent Description|temporal_extent_description|String|   |dataIdInfo/dataExt/tempDesc|\n|Temporal Extent Instance|temporal_extent_instance|Date|Resource/ Extents/ Temporal Instance Extent/ Instance Date|dataIdInfo/dataExt/tempEle/exTemp/TM_Instant/tmPosition|\n|Temporal Extent Start Date|temporal_extent_start|Date|Resource/ Extents/ Temporal Period Extent/ Begin Date|dataIdInfo/dataExt/tempEle/exTemp/TM_Period/tmBegin|\n|Temporal Extent End Date|temporal_extent_end|Date|Resource/ Extents/ Temporal Period Extent/ End Date|dataIdInfo/dataExt/tempEle/exTemp/TM_Period/tmEnd|\n|Minimum Scale|min_scale|Integer|Item Description/ Appropriate Scale Range/ Min Scale|Esri/scaleRange/minScale|\n|Maximum Scale|max_scale|Integer|Item Description/ Appropriate Scale Range/ Max Scale|Esri/scaleRange/maxScale|\n|Scale Resolution|scale_resolution|Integer|Resource/ Details/ Scale Resolution|dataIdInfo/dataScale/equScale/rfDenom|\n|Last Update|last_update|Date|Overview/ Citation/ Dates/ Revised|dataIdInfo/idCitation/date/reviseDate|\n|Update Frequency Description|update_frequency_description|String|Resource/ Maintenance/ Custom Frequency|dataIdInfo/resMaint/usrDefFreq/duration|\n|Credits|credits|String|Overview/ Item Description/ Credits|dataIdInfo/idCredit|\n|Citation|citation|String|Overview/ Citation/ Other Details|dataIdInfo/idCitation/otherCitDet|\n|Limitation|limitation|String|Overview/ Item Description/ Use Limitation|dataIdInfo/resConst/Consts/useLimit|\n|Supplemental Information|supplemental_information|String|Resource/ Supplemental Information|dataIdInfo/suppInfo|\n|Source|source|String|Resource/ Lineage/ Data Source/ Source Description|dqInfo/dataLineage/dataSource/srcDesc|\n|Points of contact|point_of_contact|ContactObj|Resource/ Details/ Points of Contact/ Contact/|dataIdInfo/idPoC|\n|Maintenance Contacts|maintenance_contact|ContactObj|Resource/ Maintenance/ Maintenance Contact/|dataIdInfo/maintCont|\n|Citation Contacts|citation_contact|ContactObj|Overview/ Citation Contact/ Contact/|dataIdInfo/idCitation/citRespParty|\n|Language|language|String|Resource/ Detail/ Languages/ Language|dataIdInfo/dataLang|\n|Metadata Language|metadata_language|String|Metadata/ Detail/ Language|dataIdInfo/mdLang|\n|Alternate Title|alternate_title|String|Overview/Citation/Titles/Alternate Title|dataIdInfo/idCitation/resAltTitle|\n|Identifier Code (1)|identifier_code1|String|Overview/Citation/Identifier/Code|dataIdInfo/idCitation/citId/identCode|\n|Identifier Code (2)|identifier_code2|String|Overview/Citation/Identifier/Authority Citation/Identifier/Code|dataIdInfo/idCitation/citId/identAuth/citId/identCode|\n|Identifier Code (3)|identifier_code3|String|Overview/Citation/Identifier/Authority Citation/Identifier/Authority Citation/Identifier/Code|dataIdInfo/idCitation/citId/identAuth/citId/identAuth/citId/identCode|\n|Identifier Code (4)|identifier_code4|String|Resource/Lineage/Data Source/Reference System/Authority Citation/Identifier/Code|dqInfo/dataLineage/dataSource/srcRefSys/identAuth/citId/identCode|\n|Metadata File Identifier|file_identifier|String|Metadata/Details/File Idnetifier|mdFileID|\n|Dataset URI|dataset_uri|String|Metadata/Details/Dataset URI|dataSetURI|\n|Resource Label|resource_label|String|Resource/Fields/Details/Label|eainfo/detailed/enttyp/enttypl|\n|Format|format|String|Resource/Distribution/Distribution Format/Format Name|distInfo/distFormat/formatName|\n|Field|attr|FieldObj|Resource/Fields/Entity and Attribute Information/Details|eainfo/detailed/attr|\n\n### Field items\n|Item description|Internal name|Type|Relative path in ArcGIS XML file|\n|---|---|---|---|\n|Field Name|name|String|./attrlabl|\n|Field Definition|definition|String|./attrdef|\n\n\n### Contact items\n|Item description|Internal name|Type|Relative path in ArcGIS XML file|\n|---|---|---|---|\n|Contact Name|contact_name|String|./rpIndName|\n|Position|position|String|./rpPosName|\n|Organization|organization|String|./rpOrgName|\n|Email|email|String|./rpCntInfo/eMailAdd|\n|Address|address|String|./rpCntInfo/cntAddress/delPoint|\n|City|city|String|rpCntInfo/./cntAddress/City|\n|State|state|String|rpCntInfo/./cntAddress/adminArea|\n|Zip|zip|String|rpCntInfo/./cntAddress/postCode|\n|Country|country|String|./rpCntInfo/cntAddress/country|\n|Phone Nb|phone_nb|String|./rpCntInfo/cntPhone/voiceNum|\n|Fax Nb|fax_nb|String|./rpCntInfo/cntPhone/faxNum|\n|Hours|hours|String|./rpCntInfo/cntHours|\n|Instructions|instructions|String|./rpCntInfo/cntInstr|\n|Website Link|link|String|./rpCntInfo/cntOnlineRes/linkage|\n|Protocol|protocol|String|./rpCntInfo/cntOnlineRes/protocol|\n|Profile|profile|String|./rpCntInfo/cntOnlineRes/appProfile|\n|Website Name|or_name|String|./rpCntInfo/cntOnlineRes/orName|\n|Website Description|or_desc|String|./rpCntInfo/cntOnlineRes/orDesc|\n\n### Online Resource Items\n|Item description|Internal name|Type|Relative path in ArcGIS XML file|\n|---|---|---|---|\n|Link|link|String|./linkage|\n|Protocol|protocol|String|./protocol|\n|Profile|profile|String|./appProfile|\n|Name|name|String|./orName|\n|Description|description|String|./orDesc|\n|Function|function|String|./orFunct/OnFunctCd|\n\nDon't see the item you need? Read more about how to extend arcpy_metadata to work with other metadata elements it doesn't yet handle in [CONTRIBUTING.md](CONTRIBUTING.md).\n\n## Python and ArcGIS Support\narcpy_metadata version 1.x supports Python 3 and ArcGIS Pro only.\n\narcpy_metadata version 0.x runs on Python 2 and 3, which means it can, at a basic level, be used both with ArcMap and ArcGIS Pro. When 0.x was developed, ArcGIS Pro didn't yet have some of the metadata export functions that arcpy_metadata relies on though, so, as of version 0.5, you *must* specify a path to a metadata XML file, or use a dataset that already has its metadata in an accessible XML format (e.g. Shapefile), if you want to use that branch in ArcGIS Pro. Otherwise, for ArcGIS Pro, upgrade to version 1.x.\n\n## Under the hood\narcpy_metadata uses the strategy of exporting the metadata from the layer, then edits the xml export based on your method calls. When you're done, use finish() to save your data back to the source.\n\n\n## Known limitations\nDoes not yet support all metadata items. Work is in progress to support server-based dataset editing.\n\n### Legacy ArcMap Versions\narcpy_metadata version 0.x only works with 32-bit Python. We use arcpy.XSLTransform_conversion() to extract metadata from geodatabases. 64bit arcpy python bindings for background processing [do not support](http://desktop.arcgis.com/en/arcmap/latest/analyze/executing-tools/64bit-background.htm) tools inside the metadata conversion toolset. arcpy_metadata version 1.x for ArcGIS Pro does\nnot have these limitations.\n\n\n## How to contribute or extend arcpy_metadata\nContributions are well come! Please fork and submit pull requests.\n\nSee [CONTRIBUTING.md](CONTRIBUTING.md) for more information on how to extend arcpy_metadata to new attributes\n\n\n## Acknowledgements\narcpy_metadata is maintained by Nick Santos at the California Department of Technology.\n\narcpy_metadata was initially a project of the [UC Davis Center for Watershed Sciences](https://watershed.ucdavis.edu) and received significant contributions from the [World Resources Institute](https://www.wri.org). It was created as part of a larger project funded by the California Department of Fish and Wildlife [Biogeographic Data Branch](http://www.dfg.ca.gov/biogeodata/) and further developed for [Global Forest Watch](https://www.globalforestwatch.org). We thank our funders for their support and their commitment to high quality geospatial data.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fucd-cws%2Farcpy_metadata","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fucd-cws%2Farcpy_metadata","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fucd-cws%2Farcpy_metadata/lists"}