CKAN Python SDK for CKAN3 instances with CKAN3 cloud storage.
项目描述
CKAN Client: Python SDK
CKAN 3 SDK for CKAN instances with CKAN v3 style cloud storage.
This SDK will communicate with ckanext-authz-service
(using CKAN to provide authorization tokens for other related systems) and Giftless (a highly customizable and extensible Git LFS server implemented in Python) to upload data to blob storage.
了解更多关于它的设计。
安装
从Python包索引安装它
$ pip install ckan-client
用法
ckanclient.Client
参数
名称 | 描述 |
---|---|
api_url |
CKAN API密钥 |
api_key |
CKAN实例URL |
organization |
组织 |
dataset_id |
数据集ID |
lfs_url |
Git LFS URL |
示例
from ckanclient import Client
client = Client(
'771a05ad-af90-4a70-beea-cbb050059e14',
'http://localhost:5000',
'datopian',
'dailyprices',
'http://localhost:9419',
)
这些设置符合ckanext-blob-storage
开发环境的规范,但您仍然需要在那里创建用户和组织。
ckanclient.Client.action
参数
名称 | 类型 | 默认 | 描述 |
---|---|---|---|
name |
str |
(必需) | 动作名称,例如,site_read ,package_show … |
payload |
dict |
(必需) | 发送到CKAN的负载。如果为GET请求提供了负载,它将被转换为URL参数,每个键都将转换为蛇形案例。 |
http_get |
bool |
False |
可选的,如果设置为 True 将进行 GET 请求,否则进行 POST 。 |
transform_payload |
函数 |
None |
在发送请求之前修改 payload 的函数(用于在 CKAN 和 Frictionless 格式之间转换)。 |
transform_response |
函数 |
None |
在返回之前修改响应数据的函数(用于在 CKAN 和 Frictionless 格式之间转换)。 |
此方法被以下方法内部使用。
ckanclient.Client.create
参数
名称 | 类型 | 描述 |
---|---|---|
dataset_name_or_metadata |
str 或 dict |
它可以是表示有效数据集名称的字符串或包含 Frictionless 格式数据集元数据的字典。 |
示例
dataset = client.create('dailyprices')
ckanclient.Client.push
参数
名称 | 类型 | 描述 |
---|---|---|
dataset_metadata |
dict |
Frictionless 格式的数据集元数据。 |
示例
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
参数
名称 | 类型 | 描述 |
---|---|---|
name_or_id |
str |
数据集的 ID 或名称。 |
示例
dataset = client.retrieve('dailyprices')
ckanclient.Client.push_blob
参数
名称 | 类型 | 描述 |
---|---|---|
resource |
dict |
一个 Frictionless 资源。 |
开发
您只需要 Git 和 Python 3.6+ 及符合 PEP 527 的工具,例如 Poetry。
首先,克隆此仓库
$ git clone https://github.com/datopian/ckan-client-py.git
然后,移动到该目录
$ cd ckan-client-py
并使用 Poerty 或其他方式安装包及其依赖项,例如
$ poetry install
要运行测试
$ poetry run pytest
许可证
本项目采用 MIT 许可证 - 详细信息请参阅 LICENSE 文件
项目详情
下载文件
下载适合您平台的文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。
源分发
ckan-client-0.1.1.tar.gz (7.8 kB 查看散列)
构建分发
ckan_client-0.1.1-py3-none-any.whl (10.0 kB 查看散列)