跳转到主要内容

Ckan API客户端

项目描述

此软件包提供对ckan API的改进客户端。

具体来说,它包括

  • 一个 低级客户端,它基本上只是一个HTTP调用的包装,处理序列化和异常引发。

  • 一个 高级客户端,试图使在ckan目录上执行某些操作更容易/更安全。

  • 一个 同步客户端,用于为将数据集集合同步到目录(通常称为“收割”)的任务提供一些自动化。

除此之外,它还试图解决该API的一些常见问题,如不一致性和错误,确保问题尽早被发现。

文档

文档可在Read The Docs上获取

http://ckan-api-client.readthedocs.org

GitHub pages上目前有一个镜像副本

https://opendatatrentino.github.io/ckan-api-client/

安装

最新稳定版本,来自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 (53.6 kB 查看哈希值)

上传时间

由以下支持

AWSAWS云计算和安全赞助商DatadogDatadog监控FastlyFastlyCDNGoogleGoogle下载分析MicrosoftMicrosoftPSF赞助商PingdomPingdom监控SentrySentry错误日志StatusPageStatusPage状态页面