No project description provided
Project description
charon-crossing
A Python library and CLI tool for migrating content from a Fedora repository into Archipelago. It traverses PCDM-structured collections, extracts descriptive metadata, and resolves ordered file members.
Installation
poetry install
CLI Usage
The ferry CLI provides two subcommands. Run ferry --help to see all options.
ferry ferry — Export collection works to CSV
Iterates the works in a Fedora collection and writes a CSV of descriptive metadata and ordered file URIs. The output file is named after the last path segment of the collection URI.
ferry ferry <collection-uri>
Example:
ferry ferry https://api.library.tamu.edu/fcrepo/rest/3b/6f/c3/25/3b6fc325-f6ca-41d8-b91e-8c5db3be8c13/graydiary-saf
Produces graydiary-saf.csv with one row per work. Multi-valued fields are pipe-delimited (e.g. History|Art).
| Column | Source |
|---|---|
dcterms_alternative |
dcterms:alternative |
dcterms_created |
dcterms:created |
dcterms_issued |
dcterms:issued |
dc_date |
dc:date |
dc_subject |
dc:subject |
dcterms_coverage |
dcterms:coverage |
dcterms_temporal |
dcterms:temporal |
dcterms_spatial |
dcterms:spatial |
dc_creator |
dc:creator |
dc_contributor |
dc:contributor |
dc_publisher |
dc:publisher |
dc_format |
dc:format |
dc_type |
dc:type |
dcterms_type |
dcterms:type |
dcterms_medium |
dcterms:medium |
dcterms_abstract |
dcterms:abstract |
dc_summary |
dc:summary |
dc_description |
dc:description |
dc_language |
dc:language |
dcterms_extent |
dcterms:extent |
dc_identifier |
dc:identifier |
dcterms_otherIdentifier |
dcterms:otherIdentifier |
dcterms_URL |
dcterms:URL |
dc_rights |
dc:rights |
dcterms_rightsHolder |
dcterms:rightsHolder |
dcterms_rightsURI |
dcterms:rightsURI |
dcterms_accessRights |
dcterms:accessRights |
dcterms_isPartOf |
dcterms:isPartOf |
dcterms_isPartOfSeries |
dcterms:isPartOfSeries |
dcterms_lcc |
dcterms:lcc |
dc_citation |
dc:citation |
dc_genre |
dc:genre |
files |
Ordered file URIs via PCDM/IANA linked list |
ferry get-members — List sub-collections as CSV
Iterates the contents of a top-level Fedora container and writes a summary of each sub-collection to collections.csv.
ferry get-members <container-uri>
Example:
ferry get-members https://api.library.tamu.edu/fcrepo/rest/3b/6f/c3/25/3b6fc325-f6ca-41d8-b91e-8c5db3be8c13
Produces collections.csv with columns:
| Column | Description |
|---|---|
uri |
Full URI of the sub-collection |
created |
Creation date of the sub-collection |
works |
Number of works (pcdm:hasMember) in the sub-collection |
Library Usage
The package exposes several classes for working with Fedora objects directly:
from charon_crossing import FedoraCollection, FedoraWork, FedoraFile, FedoraProxy
# Retrieve a collection and its members
collection = FedoraCollection("https://...")
members = collection.get_members()
# Work with an individual work
work = FedoraWork(members[0])
print(work.title)
print(work.rights)
print(work.metadata_to_dict())
print(work.get_ordered_member_files())
# Access a file object
file = FedoraFile("https://.../fcrepo/rest/.../file")
file.download("/path/to/output")
Classes
FedoraCollection(uri)
get_members()— returns a list of member URIs viapcdm:hasMemberget_contains()— returns a list of contained URIs vialdp:contains
FedoraWork(uri)
title— list ofdc:titlevaluesrights— firstdc:rightsvaluesummary— firstdc:descriptionvaluemembers— list ofpcdm:hasMemberURIsmetadata_to_dict()— dict of descriptive metadata with pipe-joined values ready for CSV exportget_ordered_members()— members in order via IANA linked listget_ordered_member_files()— ordered list of file URIs
FedoraFile(uri)
get_files()— returnspcdm:hasFileURIsdownload(path)— downloads the file to the given directoryget_cantaloupe_base_64()— returns a IIIFinfo.jsonURL with base64-encoded identifier
FedoraProxy(uri)
get_proxy_for()— returns theore:proxyFortarget URIget_next()— returns the next proxy in the IANA linked list
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file charon_crossing-0.5.0.tar.gz.
File metadata
- Download URL: charon_crossing-0.5.0.tar.gz
- Upload date:
- Size: 9.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.8.3 CPython/3.12.13 Darwin/23.6.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
db1af5bc7eea9ada967b3162a9683c7c1ed126f9c76da135746eafd711aff7e2
|
|
| MD5 |
5e877cc06e261bc9e9a687f644ba8a7b
|
|
| BLAKE2b-256 |
4b47c2be606b46cc42ea59145481c6046f02ca2a2710f95a272decb44a2e5512
|
File details
Details for the file charon_crossing-0.5.0-py3-none-any.whl.
File metadata
- Download URL: charon_crossing-0.5.0-py3-none-any.whl
- Upload date:
- Size: 11.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.8.3 CPython/3.12.13 Darwin/23.6.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8ca81a51ccd429d234e9c1bede8d5ec6fcba868729ef92939a210f289f88ab7a
|
|
| MD5 |
8e02631a0b3faac16090a0fad272d7f0
|
|
| BLAKE2b-256 |
a673410bbc0a9f82d7a450b150580952de07e0c9060de357579ac156471a9bbe
|