Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/markpbaggett/exodus
https://github.com/markpbaggett/exodus
Last synced: 13 days ago
JSON representation
- Host: GitHub
- URL: https://github.com/markpbaggett/exodus
- Owner: markpbaggett
- Created: 2022-07-29T14:54:15.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2024-03-06T16:46:19.000Z (8 months ago)
- Last Synced: 2024-10-12T08:41:03.535Z (27 days ago)
- Language: Python
- Homepage: https://exodus.readthedocs.io/
- Size: 3.95 MB
- Stars: 0
- Watchers: 3
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Exodus :flight_departure:
## About
Migration scripts for converting UTK data to Bulrax CSV import.
## Understanding Configs
Exodus uses `yml` files for migration. By default, exodus treats everything agnostically and relies on the `xpaths` section
to determine how a concept is mapped. If a property (or properties) have complex rules, a class can be written
to handle the special case. When this happens, the `yml` should have a `special` property, and it should be defined in
`MetadataMapping().__lookup_special_property()`.An agnostic property should look like this in the `yml`:
```yml
- name: table_of_contents
xpaths:
- 'mods:tableOfContents'
property: "http://purl.org/dc/terms/tableOfContents"
```A complex property might look like this:
```yml
- name: title_and_alternative_title
xpaths:
- 'mods:titleInfo[not(@supplied)]/mods:title'
- 'mods:titleInfo[@supplied="yes"]/mods:title'
properties:
- "http://purl.org/dc/terms/title"
- "http://purl.org/dc/terms/alternative"
special: "TitleProperty"
```An agnostic property must always have the `property` property while a complex property may have `property` or `properties`.
## Generating Metadata