跳转到主要内容

CKAN扩展,为数据集添加“下载所有”按钮

项目描述

https://travis-ci.org/davidread/ckanext-downloadall.svg?branch=master Latest Version Supported Python versions Development Status License

ckanext-downloadall

此CKAN扩展为数据集添加了“下载所有”按钮。这将下载一个包含所有资源文件和datapackage.json的zip文件。

demo.png

此zip文件是打包数据以存储或发送的好方法,因为

  • 您可以将所有数据文件保存在一起

  • 您包括文档(元数据) - 避免了常见的问题,即被提供一些数据文件,但不知道其内容或如何找到相关信息

  • 元数据是机器可读的,因此可以被工具、软件和自动化工作流程使用。例如

    • 验证一系列数据发布都符合标准模式

    • 将其加载到数据库中,使用元数据中指定的列类型和外键关系

datapackage.jsonFrictionless Data标准,也称为数据包。

技术说明

如果资源被推送到/x加载到DataStore,则架构(列类型)也会包含在datapackage.json文件中。

此扩展使用CKAN后台作业在创建或更新数据集(或其数据字典更改)时创建zip文件。这适用于所有文件都上传的CKAN - 如果基础数据文件更改而没有更改CKAN URL,则zip文件将不会包括更新(直到其他东西触发zip更新)。

(此扩展受ckanext-packagezip的启发,但它是旧的,依赖于ckanext-archiver和IPipe。)

要求

设计为与CKAN 2.7+兼容

理想情况下,它与DataStore和xloader(或datapusher)一起使用,以便将数据字典作为架构包含在datapackage.json中,以描述列类型。

安装

要安装ckanext-downloadall

  1. 激活您的CKAN虚拟环境,例如

    . /usr/lib/ckan/default/bin/activate
  2. 将ckanext-downloadall Python包安装到您的虚拟环境中

    pip install ckanext-downloadall
  3. downloadall添加到您的CKAN配置文件中的ckan.plugins设置(默认配置文件位于/etc/ckan/default/production.ini)。例如:

    ckan.plugins = downloadall
  4. 重新启动CKAN工作进程。例如,如果您已使用supervisord部署它

    sudo supervisorctl restart ckan-worker:ckan-worker-00
  5. 重新启动CKAN服务器。例如,如果您已在Ubuntu上使用Apache部署CKAN

    sudo service apache2 reload

6. 确保后台作业“工作进程”正在运行 - 参见https://docs.ckan.org/en/2.8/maintaining/background-tasks.html#running-background-jobs

配置设置

# Include additional fields from the dataset in the datapackage.json (e.g.
# those defined in a ckanext-scheming schema)
# (optional, space separated list).
ckanext.downloadall.dataset_fields_to_add_to_datapackage = district county

命令行界面

有一个命令行界面

downloadall --help

使用示例

downloadall update-zip gold-prices
downloadall update-all-zips

故障排除

“所有资源数据”显示为正常资源,而不是看到“下载所有”按钮

您需要在CKAN配置中启用此扩展并重新启动服务器。请参阅上面的安装部分。

ImportError: No module named datapackage

这意味着您有ckanapi的旧版本,它是ckanext-downloadall的依赖项。安装一个新版本。

OSError: [Errno 13] Permission denied: ‘/data/ckan/resources/c89’

您正在尝试从命令行更新zip,但以同步方式运行任务,而不是以正常的工作进程方式运行。在这种情况下,您需要以www-data用户运行它,例如

sudo -u www-data /usr/lib/ckan/default/bin/downloadall -c /etc/ckan/default/production.ini update-all-zips --synchronous

开发安装

要为开发安装ckanext-downloadall,激活您的CKAN虚拟env并执行

git clone https://github.com/davidread/ckanext-downloadall.git
cd ckanext-downloadall
python setup.py develop
pip install -r dev-requirements.txt

请记住运行工作进程(在另一个终端中)

paster --plugin=ckan jobs worker --config=/etc/ckan/default/development.ini

运行测试

要运行测试,请执行

nosetests --nologcapture --with-pylons=test.ini

要运行测试并生成覆盖率报告,首先确保您已安装coverage在您的虚拟env中(pip install coverage),然后运行

nosetests --nologcapture --with-pylons=test.ini --with-coverage --cover-package=ckanext.downloadall --cover-inclusive --cover-erase --cover-tests

发布ckanext-downloadall的新版本

ckanext-downloadall可在PyPI上作为https://pypi.ac.cn/project/ckanext-downloadall/使用。要发布新版本到PyPI,请按照以下步骤操作

  1. 更新setup.py文件中的版本号。有关如何选择版本号的说明,请参阅PEP 440

  2. 更新CHANGELOG.md,其中包含此版本的详细信息。

  3. 确保您有必要的最新版本的包

    pip install --upgrade setuptools wheel twine
  4. 创建新版本的源和二进制分发版

    python setup.py sdist bdist_wheel && twine check dist/*

    修复您遇到的任何错误。

  5. 将源分发版上传到PyPI

    twine upload dist/*
  6. 提交任何未解决的变化

    git commit -a
    git push
  7. 在GitHub上使用来自setup.py文件的版本号标记项目的新版本。例如,如果setup.py中的版本号为0.0.1,则执行

    git tag 0.0.1
    git push --tags

项目详情


下载文件

下载适合您平台的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。

源分发

ckanext-downloadall-0.1.0.tar.gz (31.8 kB 查看散列值)

上传时间

构建分发

ckanext_downloadall-0.1.0-py2-none-any.whl (32.3 kB 查看散列值)

上传时间 Python 2

支持