向数据集添加“全部下载”按钮的ckan扩展

ckanext-downloadall的Python项目详细描述


ckanext全部下载

这个ckan扩展向数据集添加了一个"全部下载"按钮。这个下载 包含所有资源文件和datapackage.json的zip文件。

demo.png

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

  • 将所有数据文件放在一起
  • 包括文档(元数据)-避免了 交了一些数据文件,但对它一无所知,也不知道在哪里可以找到信息
  • 元数据是机器可读的,因此可以由工具、软件和 自动化工作流程。例如:
    • 验证一系列数据发布都符合标准模式
    • 使用列类型和外键将其加载到数据库中 元数据中指定的关系

data package.json是一个 无摩擦数据 标准,也称为数据包。

技术说明

如果资源被推送/加载到数据存储,那么架构(列类型) 也包含在datapackage.json文件中。

此扩展使用ckan后台作业在每次 数据集已创建或更新(或其数据字典已更改)。这套衣服 上载所有文件的ckan—如果基础数据文件更改 如果不更改ckan url,那么zip将不包括更新(直到 其他一些东西会触发zip进行更新。

(此扩展的灵感来自于ckanext-packagezip,但它是旧的、可靠的。 在ckanext archiver和ipipipe上。)

要求

设计用于CKAN 2.7+

理想情况下,它与数据存储和 xloader<;https://github.com/ckan/ckanext xloader>; (或datapusher),以便 数据字典作为模式包含在datapackage.json中,用于描述 列类型。

安装

tall ckanext下载全部:

  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:< /P>

    sudo service apache2 reload
    
<P>6。确保后台作业"worker"进程正在运行-请参阅 https://docs.ckan.org/en/2.8/maintaining/background tasks.html运行后台作业

配置设置

目前没有

命令行界面

有一个命令行界面:

downloadall --help

使用示例:

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

故障排除

"所有资源数据"显示为普通资源,而不是 "全部下载"按钮

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

重要错误:没有名为datapackage的模块

这意味着你有一个旧版本的ckanapi,它是 ckanext全部下载。安装新版本。

错误:[errno 13]权限被拒绝:'/data/ckan/resources/c89'

您试图从命令行更新zips,但正在运行任务 同步的,而不是与正常的工作进程同步的。在这种情况下你 需要以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 virtualenv 并做:

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

记住运行worker(在单独的终端中):

. /usr/lib/ckan/default/bin/activate
0

运行测试

要运行测试,请执行:

. /usr/lib/ckan/default/bin/activate
1

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

. /usr/lib/ckan/default/bin/activate
2

发布新版ckanext downloadall

ckanext downloadall在pypi上可用,其网址为https://pypi.org/project/ckanext-downloadall/" rel="nofollow">https://pypi.org/project/ckanext downloadall/。 要将新版本发布到pypi,请执行以下步骤:

  1. 更新 setup.py 文件中的版本号。 参见 pep 440 如何选择版本号。

  2. 使用此版本的详细信息更新changelog.md。

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

    . /usr/lib/ckan/default/bin/activate
    
    3
  4. 创建新版本的源和二进制发行版:

    . /usr/lib/ckan/default/bin/activate
    
    4

    修正任何错误。

  5. 将源分发上载到pypi:

    . /usr/lib/ckan/default/bin/activate
    
    5
  6. 提交任何未完成的更改:

    . /usr/lib/ckan/default/bin/activate
    
    6
  7. 在github上标记项目的新版本,版本号为 setup.py 文件。例如, setup.py 中的版本号是 0.0.1然后执行:

    . /usr/lib/ckan/default/bin/activate
    
    7

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java WebClient请求级别超时抛出名为default onErrorDropped的运算符   java JAXB外部绑定文件错误   Freemarker中的java转义宏参数值   java正在同步来自不同对象{已编辑}的线程   java如何在另一个类上更新活动中的元素   java Hibernate连接查询   java可以使用Apache Crunch创建类似于图形的数据结构吗?   java在JLabel的开头加上3个点   java 安卓应用程序显示线程错误   java@RequestBody在Spring中总是空的   java Android异步任务永远不会结束   具有多个属性的java Jaxws枚举   java中的安卓 Stripe InvalidRequestException   多线程java。util。非多线程程序中的ConcurrentModificationException   Minecraft Java插件如何删除HashMap中存储的所有块   空Java字符串的大小   从AJP连接器请求检索Shibboleth属性的java   oracle11g将Java类文件加载到Oracle数据库