fairdatapoint-client
Contents
Overview
fairdatapoint-client is a simple and elegant library to interact with FAIR Data Point resources from Python, e.g. read and write catalogs, datasets and distributions in an FDP server.
The supported APIs are listed below:
| FDP Layers | Path Endpoint | Specific Resource Endpoint |
|---|---|---|
| fdp | [baseURL] or [baseURL]/fdp | |
| catalog | [baseURL]/catalog | [baseURL]/catalog/[catalogID] |
| dataset | [baseURL]/dataset | [baseURL]/dataset/[datasetID] |
| distribution | [baseURL]/distribution | [baseURL]/distribution/[distributionID] |
Installation
It requires a Python version of 3.7, 3.8 or 3.9.
Stable Release
The fairdatapoint-client is available on PyPI, you can install it using:
pip install fairdatapoint-client
Development Version
You can also install from the latest source code, but note that the in-development version might be unstable:
git clone https://github.com/fair-data/fairdatapoint-client.git
cd fairdatapoint-client
pip install .
To run tests (including coverage):
pip install '.[tests]'
pytest
Tutorial
Using Client
from fdpclient.client import Client
# create a client with base URL
client = Client('http://example.org')
# create metadata
with open('catalog01.ttl') as f:
data = f.read()
client.create_catalog(data)
# let's assume the catalogID was assigned as 'catalog01'
# read metadata, return a RDF graph
r = client.read_catalog('catalog01')
print(r.serialize(format="turtle").decode("utf-8"))
# update metadata
with open('catalog01_update.ttl') as f:
data_update = f.read()
client.update_catalog('catalog01', data_update)
# delete metadata
client.delete_catalog('catalog01')
Using operation functions
from fdpclient import operations
# create metadata
with open('catalog01.ttl') as f:
data = f.read()
operations.create('http://example.org/catalog', data)
# read metadata, return a RDF graph
r = operations.read('http://example.org/catalog/catalog01')
print(r.serialize(format="turtle").decode("utf-8"))
# update metadata
with open('catalog01_update.ttl') as f:
data_update = f.read()
operations.update('http://example.org/catalog/catalog01', data_update)
# delete metadata
operations.delete('http://example.org/catalog/catalog01')
Issues and Contributing
If you have questions or find a bug, please report the issue in the Github issue channel.
If you want to contribute to the development of fairdatapoint-client, have a look at the contribution guidelines.
Metadata
Release files for fairdatapoint-client 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| fairdatapoint-client-0.1.0.tar.gz | 12.7 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| fairdatapoint_client-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 31.3 kB
Release files / fairdatapoint-client-0.1.0.tar.gz
| Download URL | fairdatapoint-client-0.1.0.tar.gz |
|---|---|
| Size | 12.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
a3ae39b15f5ece4c90bb61fad047694696b9eaf0d3363a8697766b6ec5d975fe
|
|
BLAKE2b-256 checksum How to use checksums |
3eadbca1a8e1fcd335482a24e91cf9f1bca6df7ec4a0b8ed75fede3ac0d1561f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.3.0 pkginfo/1.7.0 requests/2.25.1 setuptools/52.0.0 requests-toolbelt/0.9.1 tqdm/4.56.0 CPython/3.7.9
|
Release files / fairdatapoint_client-0.1.0-py3-none-any.whl
| Download URL | fairdatapoint_client-0.1.0-py3-none-any.whl |
|---|---|
| Size | 18.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
95ee46556bc5116e627bf4f6bdf58242e7dda65b0fb79fdfa72cd1fe12555dce
|
|
BLAKE2b-256 checksum How to use checksums |
67d20407f28dba70ffd1c19741393f584bc051aa6bced02052c73b8c223ab009
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.3.0 pkginfo/1.7.0 requests/2.25.1 setuptools/52.0.0 requests-toolbelt/0.9.1 tqdm/4.56.0 CPython/3.7.9
|