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.3

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.3
File Size Uploaded Provenance Actions
ckanext_nhm-7.8.3.tar.gz 55.2 MB Without provenance Details for ckanext_nhm-7.8.3.tar.gz

Built distribution (wheel)

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

Total release size: 111.1 MB

Release files / ckanext_nhm-7.8.3.tar.gz

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

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

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

Security for ckanext-nhm 7.8.3

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.3 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