允许将数据集聚合(推送)到另一个存储库

ckanext-syndicate的Python项目详细描述


将数据集联合到另一个ckan实例的ckan插件。

此插件提供了一种机制,可以将数据集聚合到 克根。如果数据集的自定义中syndicate标志设置为True。 元数据,对数据集的任何更新都将反映在 版本。联合数据集中的资源存储为 原始资源。目标上必须有用户的api密钥 ckan的实例。请参阅下面的配置设置部分。

插件可以通过实现操作来修改发送给联合的数据 update_dataset_for_syndication并修改dataset_dict 价值。如果ckan实例之间的模式不同,这将非常有用。

要求

  • 使用CKAN 2.5.2进行测试
  • 需要celery
  • 要在ssl上工作,需要pyOpenSSLndg-httpsclientpyasn1
  • 在生产环境中通过supervisor
  • 运行芹菜可能很有用。

安装

安装ckanext辛迪加:

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

    . /usr/lib/ckan/default/bin/activate
    
  2. 将ckanext syndicate python包安装到您的虚拟环境中:

    pip install ckanext-syndicate
    
  3. syndicate添加到ckan中的ckan.plugins设置 配置文件(默认情况下,配置文件位于 /etc/ckan/default/production.ini)。

  4. 重启ckan。例如,如果您在ubuntu上使用apache部署了ckan:

    sudo service apache2 reload
    
  5. 你还需要做芹菜。在开发环境中,可以使用虚拟环境中的以下paster命令来完成此操作:

    paster --plugin=ckan celeryd run -c /etc/ckan/default/development.ini
    
  6. 在生产环境中,芹菜可以通过supervisor配置,例如/etc/supervisor/conf.d/celery.conf

    [program:celery]
    autorestart=true
    autostart=true
    command=/usr/lib/ckan/default/bin/paster --plugin=ckan celeryd --config=/etc/ckan/default/production.ini
    numprocs=1
    priority=998
    redirect_stderr=true
    startsecs=10
    stderr_logfile=/var/log/celeryd.log
    stdout_logfile=/var/log/celeryd.log
    stopwaitsecs=600
    user=www-data
    

配置设置

# The URL of the site to be syndicated to
ckan.syndicate.ckan_url = https://data.humdata.org/

# The API key of the user on the syndicated site
ckan.syndicate.api_key = 9efdd954-c643-444a-97a1-c9c374cef861

# The custom metadata flag used for syndication
# (optional, default: syndicate).
ckan.syndicate.flag = syndicate_to_hdx

# The custom metadata field to store the syndicated dataset ID
# on the original dataset
# (optional, default: syndicated_id)
ckan.syndicate.id = hdx_id

# A prefix to apply to the name of the syndicated dataset
# (optional, default: )
ckan.syndicate.name_prefix = my-prefix

# The name of the organization on the target CKAN to use when creating
# the syndicated datasets
# (optional, default: None)
ckan.syndicate.organization = my-org-name

开发安装

要安装ckanext syndicate进行开发,请激活ckan virtualenv并 做:

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

另请参见安装

运行测试

要运行测试,请执行:

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

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

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

在pypi上注册ckanext辛迪加

ckanext辛迪加应该在pypi上可用 https://pypi.python.org/pypi/ckanext-syndicate。如果链接不起作用,那么 您可以按照以下步骤第一次在pypi上注册项目 步骤:

  1. 创建项目的源分发版:

    python setup.py sdist
    
  2. 注册项目:

    python setup.py register
    
  3. 将源分发上载到pypi:

    python setup.py sdist upload
    
  4. 在github上标记项目的第一个版本,版本号为 setup.py文件。例如,setup.py中的版本号是 0.0.1然后执行:

    git tag 0.0.1
    git push --tags
    

发布新版ckanext syndicate

ckanext辛迪加在pypi上可用作https://pypi.python.org/pypi/ckanext-syndicate。 要将新版本发布到pypi,请执行以下步骤:

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

  2. 创建新版本的源发行版:

    python setup.py sdist
    
  3. 将源分发上载到pypi:

    python setup.py sdist upload
    
  4. 在github上标记项目的新版本,版本号为 setup.py文件。例如,setup.py中的版本号是 0.0.2然后执行:

    git tag 0.0.2
    git push --tags
    

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

推荐PyPI第三方库


热门话题
box api如何使用box Java SDK从图像文件中获取特定大小的缩略图?   java无法从JNA使用python cffi调用DLL中定义的函数   java在linux中通过Jar文件发送电子邮件   使用lucene+hibernate的java查询时间连接   java在带有循环的arrayList中设置值   java为什么ImageReader返回错误的BuffereImage?   c#TCP数据有时接收顺序错误且不完整   java如果发生IOException,该InputStream是否会正确关闭?   tcp在Java中,如果不使用IP,如何获取MAC地址?   java从批处理方法调用中收集结果   java Android Studio RecyclerView在滚动图像时严重滞后   java如何使用OOP进行retrofti调用?   记录FileAppender在Java中如何工作   与S3连接期间收到java异常   java找不到JNDI资源Tomcat 7