Skip to main content
The Natural History Museum logo.

ckanext-nhm

Tests Coveralls CKAN Python Docs Specimen records

A CKAN extension for the Natural History Museum's Data Portal.

Overview

This extension provides theming and specific functionality for the Natural History Museum's Data Portal.

The codebase shows how to implement various plugins created by the Museum's developers; notably our new ElasticSearch datastore with versioned records.

Installation

Path variables used below:

  • $INSTALL_FOLDER (i.e. where CKAN is installed), e.g. /usr/lib/ckan/default
  • $CONFIG_FILE, e.g. /etc/ckan/default/development.ini

Pre-install setup

This package depends on ckanext-dcat==1.3.0, but since that isn't available on PyPI it's not listed in the package dependencies.

Install it with:

pip install git+https://github.com/ckan/ckanext-dcat@v1.3.0#egg=ckanext-dcat

Installing from PyPI

pip install ckanext-nhm

Installing from source

  1. Clone the repository into the src folder:

    cd $INSTALL_FOLDER/src
    git clone https://github.com/NaturalHistoryMuseum/ckanext-nhm.git
    
  2. Activate the virtual env:

    . $INSTALL_FOLDER/bin/activate
    
  3. Install via pip:

    pip install $INSTALL_FOLDER/src/ckanext-nhm
    

Installing in editable mode

Installing from a pyproject.toml in editable mode (i.e. pip install -e) requires setuptools>=64; however, CKAN 2.9 requires setuptools==44.1.0. See our CKAN fork for a version of v2.9 that uses an updated setuptools if this functionality is something you need.

Post-install setup

  1. Add 'nhm' to the list of plugins in your $CONFIG_FILE:

    ckan.plugins = ... nhm
    
  2. Install lessc globally:

    npm install -g "less@~4.1"
    

Configuration

Usage

Actions

record_show

Retrieve an individual record.

from ckan.plugins import toolkit

data_dict = {
    'resource_id': RESOURCE_ID,
    'record_id': RECORD_ID,
    'version': OPTIONAL_RECORD_VERSION,
}

toolkit.get_action('record_show')(context, data_dict)

object_rdf

Get record RDF from its occurrence ID.

from ckan.plugins import toolkit

data_dict = {'uuid': OCCURRENCE_ID, 'version': OPTIONAL_RECORD_VERSION}

toolkit.get_action('object_rdf')(context, data_dict)

Commands

create-dataset-vocabulary

Ensures the default dataset vocabulary and categories exists.

ckan -c $CONFIG_FILE nhm create-dataset-vocabulary

add-dataset-category

Adds the given category to the dataset category vocabulary.

ckan -c $CONFIG_FILE nhm delete-dataset-category $NAME

delete-dataset-category

Deletes the given dataset category from the vocabulary.

ckan -c $CONFIG_FILE nhm create-dataset-vocabulary $NAME

replace-resource-file

Replaces the file associated with $RESOURCE_ID with $PATH, e.g. to replace a small dummy file with a large one that was too big to upload initially.

ckan -c $CONFIG_FILE nhm replace-resource-file $RESOURCE_ID $PATH

Testing

There is a Docker compose configuration available in this repository to make it easier to run tests. The ckan image uses the Dockerfile in the docker/ folder.

To run the tests against ckan 2.9.x on Python3:

  1. Build the required images:

    docker compose build
    
  2. Then run the tests. The root of the repository is mounted into the ckan container as a volume by the Docker compose configuration, so you should only need to rebuild the ckan image if you change the extension's dependencies.

    docker compose run --rm ckan
    

Metadata

Release files for ckanext-nhm 7.8.4

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for ckanext-nhm 7.8.4
File Size Uploaded Provenance Actions
ckanext_nhm-7.8.4.tar.gz 55.2 MB Without provenance Details for ckanext_nhm-7.8.4.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for ckanext-nhm 7.8.4
File Interpreter ABI Platform Actions
ckanext_nhm-7.8.4-py3-none-any.whl Python 3 none any Details for ckanext_nhm-7.8.4-py3-none-any.whl

Total release size: 111.1 MB

Release files / ckanext_nhm-7.8.4.tar.gz

Download URL ckanext_nhm-7.8.4.tar.gz
Size 55.2 MB
Tags Source
SHA-256 checksum
How to use checksums
bf53855fd353e828e677877319428aa93bc9b49a17c591eb159f26407f303e22
BLAKE2b-256 checksum
How to use checksums
d6ebe01fe5c43165601e432870a0a43ca6205691cf947a0aa551ef1ac89b8b79
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

Release files / ckanext_nhm-7.8.4-py3-none-any.whl

Download URL ckanext_nhm-7.8.4-py3-none-any.whl
Size 55.9 MB
Tags Python 3
SHA-256 checksum
How to use checksums
9a87ff708fec7dbef3aee9580b105b937d8a4e1c32b1e24043f46cb39621be1a
BLAKE2b-256 checksum
How to use checksums
deb3460d446c3506379e5ac4a889c726acc91705c4bf7a876708264af868e716
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

Security for ckanext-nhm 7.8.4

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

7.8.4 This release

2 release files No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page