Ckan API客户端
项目描述
此软件包提供对ckan API的改进客户端。
具体来说,它包括
一个 低级客户端,它基本上只是一个HTTP调用的包装,处理序列化和异常引发。
一个 高级客户端,试图使在ckan目录上执行某些操作更容易/更安全。
一个 同步客户端,用于为将数据集集合同步到目录(通常称为“收割”)的任务提供一些自动化。
除此之外,它还试图解决该API的一些常见问题,如不一致性和错误,确保问题尽早被发现。
文档
文档可在Read The Docs上获取
http://ckan-api-client.readthedocs.org
GitHub pages上目前有一个镜像副本
安装
最新稳定版本,来自PyPI
pip install ckan-api-client
来自git master的最新版本
pip install http://git.io/ckan-api-client.tar.gz
示例用法
>>> from ckan_api_client.high_level import CkanHighlevelClient
>>> from ckan_api_client.objects import CkanDataset
>>> client = CkanHighlevelClient('http://127.0.0.1:5000', api_key='e70c15cc-2f07-4845-8c6e-3607df88e905')
我们还没有在我们的干净实例上创建数据集
>>> client.list_datasets()
[]
让我们创建一个新的数据集
>>> new_dataset = client.create_dataset(CkanDataset({
... 'name': 'example-dataset',
... 'title': 'My example dataset'}))
>>> new_dataset
CkanDataset({'maintainer': u'', 'name': u'example-dataset', 'author': u'', 'author_email': u'', 'title': 'My example dataset', 'notes': u'', 'owner_org': None, 'private': False, 'maintainer_email': u'', 'url': u'', 'state': u'active', 'extras': {}, 'groups': [], 'license_id': u'', 'type': u'dataset', 'id': u'dfe41b34-5114-47be-8d94-759f942938fc', 'resources': []})
>>> client.list_datasets()
[u'dfe41b34-5114-47be-8d94-759f942938fc']
现在,让我们更改其标题
>>> new_dataset.title = 'NEW TITLE'
>>> client.update_dataset(new_dataset)
CkanDataset({'maintainer': u'', 'name': u'example-dataset', 'author': u'', 'author_email': u'', 'title': 'NEW TITLE', 'notes': u'', 'owner_org': None, 'private': False, 'maintainer_email': u'', 'url': u'', 'state': u'active', 'extras': {}, 'groups': [], 'license_id': u'', 'type': u'dataset', 'id': u'dfe41b34-5114-47be-8d94-759f942938fc', 'resources': []})
获取它回来
>>> client.get_dataset('dfe41b34-5114-47be-8d94-759f942938fc')
(same result as above)
删除它
>>> client.wipe_dataset(new_dataset.id)
尝试再次获取数据集将引发“模拟”404:Ckan永远不会删除数据集,它只是将它们标记为“状态:已删除”,对于管理员用户,并返回403给匿名用户。我们想要提供更多的一致性,所以我们引发异常。
如果您 真的 想要获取已删除的数据集,请添加allow_deleted=True。
>>> client.get_dataset('dfe41b34-5114-47be-8d94-759f942938fc')
HTTPError: HTTPError(404, '(logical) dataset state is deleted', original=None)
项目详情
关闭
ckan-api-client-0.1-beta5.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 1b6d8d1a56fb7162faf908254c08cbd43efcd304d41e10e554f26d5c21cfea88 |
|
MD5 | c09e4149883b724a7297e3d0cab28094 |
|
BLAKE2b-256 | 3908e56006599e8f6c8a4b2211d564c232c07cafd7c754ab457ff4beb8a4eeeb |