Skip to main content

Clients to retrieve, add, and modify records from archival management systems.

Project description

PyPI version GitHub CI codecov

agentarchives

Clients to retrieve, add, and modify records from archival management systems.

Installation

Agentarchives is on PyPI!

pip install agentarchives

Or you can install it directly from git

pip install git+https://github.com/artefactual-labs/agentarchives.git

Dependency issue on MacOs

Agentarchvies depends on the mysqlclient package which has a bug which can possibly fail an install when using homebrew on MacOs computers. A solution suggested on the mysqlclient site is to change mysql_config on or about line 112:

# Create options
libs="-L$pkglibdir"
libs="$libs -l "

to

# Create options
libs="-L$pkglibdir"
libs="$libs -lmysqlclient -lssl -lcrypto"

See also this blog.

Usage

This library can be used to interact with Archivists Toolkit, ArchivesSpace, and Access To Memory (AtoM).

ArchivesSpace

First, you need to import the module in your Python script:

from agentarchives import archivesspace

Then, initiate a new client, passing in the URL, user name, password, port and repository for your AS instance:

client = archivesspace.ArchivesSpaceClient('http://localhost', 'admin', 'admin', 8089, 2)

Using your client, call one of the included functions (documented in client.py). For example, the following:

$ resource = client.get_record('/repositories/2/resources/1')
$ print resource

will return:

{
    "classifications": [],
    "create_time": "2015-11-17T00:23:19Z",
    "created_by": "admin",
    "dates": [
        {
            "create_time": "2015-11-17T00:23:19Z",
            "created_by": "admin",
            "date_type": "bulk",
            "expression": "maybe 1999",
            "jsonmodel_type": "date",
            "label": "creation",
            "last_modified_by": "admin",
            "lock_version": 0,
            "system_mtime": "2015-11-17T00:23:19Z",
            "user_mtime": "2015-11-17T00:23:19Z"
        }
    ],
    "deaccessions": [],
    "extents": [
        {
            "create_time": "2015-11-17T00:23:19Z",
            "created_by": "admin",
            "extent_type": "cassettes",
            "jsonmodel_type": "extent",
            "last_modified_by": "admin",
            "lock_version": 0,
            "number": "1",
            "portion": "whole",
            "system_mtime": "2015-11-17T00:23:19Z",
            "user_mtime": "2015-11-17T00:23:19Z"
        }
    ],
    "external_documents": [],
    "external_ids": [],
    "id_0": "blah",
    "instances": [],
    "jsonmodel_type": "resource",
    "language": "aar",
    "last_modified_by": "admin",
    "level": "collection",
    "linked_agents": [],
    "linked_events": [],
    "lock_version": 0,
    "notes": [],
    "publish": false,
    "related_accessions": [],
    "repository": {
        "ref": "/repositories/2"
    },
    "restrictions": false,
    "revision_statements": [],
    "rights_statements": [],
    "subjects": [],
    "suppressed": false,
    "system_mtime": "2015-11-17T00:23:19   Z",
    "title": "blah",
    "tree": {
        "ref": "/repositories/2/resources/1/tree"
    },
    "uri": "/repositories/2/resources/1",
    "user_mtime": "2015-11-17T00:23:19   Z"
}

Access To Memory (AtoM)

First, you need to import the module in your Python script:

from agentarchives import atom

Then, initiate a new client, passing in the URL, REST API access token, password, and port for your AtoM instance:

client = atom.AtomClient('http://localhost', '68405800c6612599', 80)

Using your client, call one of the included functions (documented in client.py). For example, the following:

$ resource = client.get_record('test-fonds')
$ print resource

Will return:

{
    "dates": [
        {
            "begin": "2014-01-01",
            "end": "2015-01-01",
            "type": "Creation"
        }
    ],
    "level_of_description": "Fonds",
    "notes": [
        {
            "content": "Note content",
            "type": "general"
        }
    ],
    "publication_status": "Draft",
    "reference_code": "F2",
    "title": "Test fonds"
}

Current AtoM client limitations (versus the ArchivesSpace client):

  • Identifier wildcard search not supported
  • Creation of multiple notes not supported
  • Nested digital objects not supported
  • The ability to add/list notes with no content isn't supported

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

agentarchives-0.9.0.tar.gz (66.5 kB view details)

Uploaded Source

Built Distribution

agentarchives-0.9.0-py3-none-any.whl (50.1 kB view details)

Uploaded Python 3

File details

Details for the file agentarchives-0.9.0.tar.gz.

File metadata

  • Download URL: agentarchives-0.9.0.tar.gz
  • Upload date:
  • Size: 66.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/4.0.2 CPython/3.11.6

File hashes

Hashes for agentarchives-0.9.0.tar.gz
Algorithm Hash digest
SHA256 2fe7d4f33b5eac251376fb15186587d503bef739009c1904684630c7045d1624
MD5 e4fc1073ce65d6319b91d239cb6c9dd5
BLAKE2b-256 ad1e9c3415541749c8198f2081667d806bde047f211ef39526de43e403d1ddde

See more details on using hashes here.

File details

Details for the file agentarchives-0.9.0-py3-none-any.whl.

File metadata

File hashes

Hashes for agentarchives-0.9.0-py3-none-any.whl
Algorithm Hash digest
SHA256 647b1e214e3dc386b2c393e6e1d5a7cf38d6efe168ca3a614071b1fe4436e0ea
MD5 1ff0aa5f7b18886143b971f5db33c62c
BLAKE2b-256 b77968cd5b9aff9f992b4469b4b1643dadd2dcbb8101d177d68ab6902f6e801d

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page