Install it from the Python Package Index:
$ pip install ckan-client
ckanclient.Client
Arguments:
Name | Description |
---|---|
api_url |
CKAN API key |
api_key |
CKAN instance URL |
organization |
Organization |
dataset_id |
Dataset id |
lfs_url |
Git LFS URL |
Example:
from ckanclient import Client
client = Client(
'http://localhost:5000',
'771a05ad-af90-4a70-beea-cbb050059e14',
'datopian',
'dailyprices',
'http://localhost:9419',
)
These settings matches the standard of ckanext-blob-storage
development environment, but you still need to create the user and organization there.
ckanclient.Client.action
Arguments:
Name | Type | Default | Description |
---|---|---|---|
name |
str |
(required) | The action name, for example, site_read , package_show … |
payload |
dict |
(required) | The payload being sent to CKAN. If a payload is provided for a GET request, it will be converted to URL parameters and each key will be converted to snake case. |
http_get |
bool |
False |
Optional, if True will make GET request, otherwise POST . |
transform_payload |
function |
None |
Function to mutate the payload before making the request (useful to convert to and from CKAN and Frictionless formats). |
transform_response |
function |
None |
function to mutate the response data before returning it (useful to convert to and from CKAN and Frictionless formats). |
This method is used internally by the following methods.
ckanclient.Client.create
Arguments:
Name | Type | Description |
---|---|---|
dataset_name_or_metadata |
str or dict |
It is either a string being a valid dataset name or dictionary with meta-data for the dataset in Frictionless format. |
Example:
dataset = client.create('dailyprices')
ckanclient.Client.push
Arguments:
Name | Type | Description |
---|---|---|
dataset_metadata |
dict |
Dataset meta-data in Frictionless format. |
Example:
dataset_metadata = {
'id': '16d6e8d7-a848-48b1-91d0-fd393c1c6c01',
'name': 'dailyprices',
'owner_org': '57f97769-a982-4ccd-91f0-1d86dee822e3',
'title': 'dailyprices',
'type': 'dataset',
'contributors': [],
# …
}
dataset = client.push(dataset_metadata)
ckanclient.Client.retrieve
Arguments:
Name | Type | Description |
---|---|---|
name_or_id |
str |
Id or name of the dataset. |
Example:
dataset = client.retrieve('dailyprices')
ckanclient.Client.push_blob
Arguments:
Name | Type | Description |
---|---|---|
resource |
dict |
A Frictionless resource. |
All you need is Git, and Python 3.6+ with a PEP 527 compliant tool, such as Poetry.
First, clone this repository:
$ git clone https://github.com/datopian/ckan-client-py.git
Then, move to is directory:
$ cd ckan-client-py
And install the package and its dependencies, for example, with Poetry:
$ poetry install
To run tests:
$ poetry run pytest
This project is licensed under the MIT License - see the LICENSE file for details