Skip to main content

An API client for interacting with the Caselaw Marklogic instance

Project description

Caselaw Marklogic API Client

This is an API Client for connecting to Marklogic for The National Archive's Caselaw site.

This package is published on PyPI: https://pypi.org/project/ds-caselaw-marklogic-api-client/

Usage

Include the API client in your project using PIP:

pip install ds-caselaw-marklogic-api-client

or in your projects requirements.txt with:

ds-caselaw-marklogic-api-client~=2.0.0

Using the client

The client expects the following environment variables to be set or defined in a .env file:

MARKLOGIC_HOST
MARKLOGIC_USER
MARKLOGIC_PASSWORD
MARKLOGIC_USE_HTTPS # Optional, defaults to False

Then import api_client from caselawclient.Client:

from caselawclient.Client import api_client

Alternatively, you can import the base class and instantiate it with different credentials:

from caselawclient.Client import MarklogicApiClient

client = MarklogicApiClient(
    host="",
    username="",
    password="",
    use_https=False,
)

Client also exports some exception classes:

MarklogicAPIError
MarklogicBadRequestError
MarklogicUnauthorizedError
MarklogicNotPermittedError
MarklogicResourceNotFoundError
MarklogicCommunicationError

XML Tools

There is also a small set of xml helper tools that provide some common functionality for dealing with xml:

from caselawclient import xml_tools

xml_tools.get_metadata_name_value(xml)
xml_tools.get_metadata_name_element(xml)
xml_tools.get_search_matches(element)

Testing

To run the test suite:

pip install -r requirements.txt
python -m pytest

Making changes

When making a change, update the changelog using the Keep a Changelog 1.0.0 format. Pull requests should not be merged before any relevant updates are made.

Releasing changes

When making a new release, update the changelog in the release pull request.

The package will only be released to PyPI if the branch is tagged. A merge to main alone will not trigger a release to PyPI.

To create a release:

  1. Update the version number in setup.cfg
  2. Create a branch release/v{major}.{minor}.{patch}
  3. Update changelog for the release
  4. Commit and push
  5. Open a PR from that branch to main
  6. Get approval on the PR
  7. Tag the HEAD of the PR v{major}.{minor}.{patch} and push the tag
  8. Merge the PR to main and push

Project details


Release history Release notifications | RSS feed

This version

5.1.2

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ds-caselaw-marklogic-api-client-5.1.2.tar.gz (14.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

File details

Details for the file ds-caselaw-marklogic-api-client-5.1.2.tar.gz.

File metadata

File hashes

Hashes for ds-caselaw-marklogic-api-client-5.1.2.tar.gz
Algorithm Hash digest
SHA256 6b2ff83846175df528dec1049426b37eb8532865de46f5e65d90238580264fe0
MD5 a10db319760f2db04b1659c076d71a1d
BLAKE2b-256 93e8568ddea7f5660056d71a5e5aadfe306b7b0e161a52512bf42ae6af8d850b

See more details on using hashes here.

File details

Details for the file ds_caselaw_marklogic_api_client-5.1.2-py3-none-any.whl.

File metadata

File hashes

Hashes for ds_caselaw_marklogic_api_client-5.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 55d04d95331e969e0dbd1fca7d70e261d858a802b9ed886ee4019ed16fc79a4a
MD5 0935dddc6e2e3006a3b27db8dc826b80
BLAKE2b-256 4abe16a24fd7db5c6e402639e922104a56635b433e766f89f664aab96567a827

See more details on using hashes here.

Supported by

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