Skip to main content

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

Project description

ckanext-nhm

Tests Coveralls CKAN Python 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

Installation is not going to be useful for anyone not working on the Data Portal, but the steps are left here for reference.

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
  1. Clone the repository into the src folder:
cd $INSTALL_FOLDER/src
git clone https://github.com/NaturalHistoryMuseum/ckanext-nhm.git
  1. Activate the virtual env:
. $INSTALL_FOLDER/bin/activate
  1. Install the requirements from requirements.txt:
cd $INSTALL_FOLDER/src/ckanext-nhm
pip install -r requirements.txt
  1. Run setup.py:
cd $INSTALL_FOLDER/src/ckanext-nhm
python setup.py develop
  1. Add 'nhm' to the list of plugins in your $CONFIG_FILE:
ckan.plugins = ... nhm

Configuration

These are the options that can be specified in to configure this extension.

[REQUIRED]

Name Description Options
ckanext.nhm.specimen_resource_id ID for the specimens dataset
ckanext.nhm.indexlot_resource_id ID for the index lots dataset
ckanext.nhm.artefact_resource_id ID for the artefacts dataset
ckanext.nhm.abyssline_resource_id ID for the abyssline dataset

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

Test coverage is currently super duper extremely limited.

To run the tests in this extension, there is a Docker compose configuration available in this repository to make it easy.

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

  1. Build the required images
docker-compose build
  1. 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 ckan

The ckan image uses the Dockerfile in the docker/ folder which is based on openknowledge/ckan-dev:2.9.

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

ckanext-nhm-3.7.1.tar.gz (32.1 MB view details)

Uploaded Source

Built Distributions

ckanext_nhm-3.7.1-py3.10.egg (32.8 MB view details)

Uploaded Source

ckanext_nhm-3.7.1-py3-none-any.whl (32.8 MB view details)

Uploaded Python 3

File details

Details for the file ckanext-nhm-3.7.1.tar.gz.

File metadata

  • Download URL: ckanext-nhm-3.7.1.tar.gz
  • Upload date:
  • Size: 32.1 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.10.8

File hashes

Hashes for ckanext-nhm-3.7.1.tar.gz
Algorithm Hash digest
SHA256 5810aad1bbeedef1e1d01cbb766390fd7501b2cc7d8dd27b6d11c3167185a4b1
MD5 9d122aaaf1762daa6f722bd1c741d7f2
BLAKE2b-256 b30a540b92e0ee1fb88ce60a5da687e9763f9f1ad47a1ed4214e1649517c127b

See more details on using hashes here.

File details

Details for the file ckanext_nhm-3.7.1-py3.10.egg.

File metadata

  • Download URL: ckanext_nhm-3.7.1-py3.10.egg
  • Upload date:
  • Size: 32.8 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.10.8

File hashes

Hashes for ckanext_nhm-3.7.1-py3.10.egg
Algorithm Hash digest
SHA256 a8bb264a1dacb0c90adb1452bdd829c9cedee1d7838bdc15cabec257c4659b04
MD5 18d2aac14c475f6997f09b92fdbea09e
BLAKE2b-256 87894883c7b0c8ac0d8b509b13afac1524580d4c594c95ffa52b1e81837c744e

See more details on using hashes here.

File details

Details for the file ckanext_nhm-3.7.1-py3-none-any.whl.

File metadata

  • Download URL: ckanext_nhm-3.7.1-py3-none-any.whl
  • Upload date:
  • Size: 32.8 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.10.8

File hashes

Hashes for ckanext_nhm-3.7.1-py3-none-any.whl
Algorithm Hash digest
SHA256 17941c2b36802eb11e1b4fa53fb114c584b3fa472dba5ab9c6f9af0517c01bbb
MD5 fe709a1be79c38bd26fa5ca091ea67ce
BLAKE2b-256 42a95b35335bae52fe25989840afcccb026551054f53fe6aacb93baa69e8a043

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