Catalog PyPI
Back to packageRELEASE DETAILS

0.10.0

PyPI

agentarchives

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

accesstomemoryarchivematicapreservation
Published3 Jan 2025
Direct dependencies8
Transitive dependenciesNot calculated

README

Version 0.10.0 documentation

agentarchives

PyPI version GitHub CI codecov

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

Downloads & popularity

Awaiting observations

No metric observations yet

Download counts and popularity will appear here as the collector receives them.

Declared dependencies 8

Native requirements
8 direct targetsNot calculated transitive count
Package / targetRequirementRelationship
mysqlclient
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.9",
  "evaluation": "NOT_EVALUATED"
}
mysqlclientruntime
requests
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.9",
  "evaluation": "NOT_EVALUATED"
}
requestsruntime
coverage
Environment
{
  "extras": "",
  "marker": "extra == \"dev\"",
  "requires_python": ">=3.9",
  "evaluation": "NOT_EVALUATED"
}
coverage; extra == "dev"runtime
pip-tools
Environment
{
  "extras": "",
  "marker": "extra == \"dev\"",
  "requires_python": ">=3.9",
  "evaluation": "NOT_EVALUATED"
}
pip-tools; extra == "dev"runtime
pytest-cov
Environment
{
  "extras": "",
  "marker": "extra == \"dev\"",
  "requires_python": ">=3.9",
  "evaluation": "NOT_EVALUATED"
}
pytest-cov; extra == "dev"runtime
pytest-mock
Environment
{
  "extras": "",
  "marker": "extra == \"dev\"",
  "requires_python": ">=3.9",
  "evaluation": "NOT_EVALUATED"
}
pytest-mock; extra == "dev"runtime
pytest
Environment
{
  "extras": "",
  "marker": "extra == \"dev\"",
  "requires_python": ">=3.9",
  "evaluation": "NOT_EVALUATED"
}
pytest; extra == "dev"runtime
ruff
Environment
{
  "extras": "",
  "marker": "extra == \"dev\"",
  "requires_python": ">=3.9",
  "evaluation": "NOT_EVALUATED"
}
ruff; extra == "dev"runtime

Distribution files

2 collected
agentarchives-0.10.0-py3-none-any.whl

bdist_wheel · 48.91 KB · Python py3

Source file
agentarchives-0.10.0.tar.gz

sdist · 68.17 KB · Python source

Source file

Repository

PENDING
artefactual-labs/agentarchives

Shared repository data · GitHub

License detected in repository
Not collected

Repository

PENDING
archivematica/issues

Shared repository data · GitHub

License detected in repository
Not collected

Metadata history

Meaningful changes
Current collected state Current

Observed since 20 Oct, 21:28 UTC

No superseded metadata states collected. Unchanged observations do not create new revisions.

Record identity

package_version:2b7d6a8867a696ca867d933b3e0c46ec5a08fd03e26b9d061ace0cb0a4bbff26

Other collected versions

View all collected versions →