Linked records for the core project
Project description
This Django reusable app contains the PID functionalities for a CDCS project.
Pre-requisites
For automated and manual install, the following software are needed:
python
pip
virtual env (conda or venv)
In addition, for manual setup, git is needed.
Installation
Automated installation
$ pip install core_linked_records_app
Manual installation
$ git clone https://github.com/usnistgov/core_linked_records_app.git
$ cd core_linked_records_app
$ python setup.py
$ pip install sdist/*.tar.gz
Configuration
Edit the setting.py file
Add the "core_linked_records_app" under INSTALLED_APPS as such:
INSTALLED_APPS = [
...
"core_linked_records_app",
]
Add the necessary keys at the end of the file.
ID_PROVIDER_SYSTEMS = {
"local": {
"class": "core_linked_records_app.utils.providers.local.LocalIdProvider",
"args": [],
},
"handle.net": { # Optional: if a Handle.net server is available.
"class": "core_linked_records_app.utils.providers.handle_net.HandleNetSystem",
"args": [
"https://handle-net.domain/api/handles",
SERVER_URI,
"300%3ACDCS/ADMIN",
"admin",
],
},
}
""" dict: all the provider systems available for registering PIDs
"""
ID_PROVIDER_PREFIXES = ["cdcs"]
""" list<str>: accepted prefixes if manually specifying PIDs (first item is the default prefix)
"""
PID_XPATH = "root.pid"
""" string: location of the PID in the document, specified as dot notation
"""
Edit the urls.py file
Add the core_linked_records_app urls to the Django project as such.
re_path(r'^pid/', include("core_linked_records_app.urls")),
Example configuration and XML file:
The example below shows a configuration of a CDCS instance using the core_linked_records_app settings and what an XML document with a PID would look like in this case:
Settings.py:
SERVER_URI = "http://localhost:8000"
ID_PROVIDER_SYSTEMS = {
"local": {
"class": "core_linked_records_app.utils.providers.local.LocalIdProvider",
"args": [],
},
}
ID_PROVIDER_PREFIXES = ["cdcs"]
PID_XPATH = "root.pid"
XML file:
<root><pid>http://localhost:8000/pid/rest/local/cdcs/0123ABCD</pid></root>
Explanation: The pid is stored in the “pid” element under the “root” element like indicated in PID_XPATH (root.pid). The generated PID (http://localhost:8000/pid/rest/local/cdcs/0123ABCD) is composed of: - the SERVER_URI: http://localhost:8000 - the route to core_linked_records_app as defined in urls.py: pid - the route to the rest endpoints of this app: rest - the name of the PID provider found in ID_PROVIDER_SYSTEMS: local - a prefix found in the ID_PROVIDER_PREFIXES list: cdcs - a unique random identifier generated by the local PID provider: 0123ABCD
Tests
To play the test suite created for this package, download the git repository and run:
$ python runtests.py
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Hashes for core_linked_records_app-1.0.0b4.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 362dcfe50044ee2e3d2f7060f24caad9746328ebbd9d3fad8a6af62a31d85a0b |
|
MD5 | 7b22d1a6fd3059a4849014b62a95965e |
|
BLAKE2b-256 | 577291273943ee7ca66cc4792b092d0cd10000cfa7a4ab5aa60334fcee561139 |