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

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第三方库


热门话题
Java无法调用扩展超级非抽象类的抽象类方法   java Hibernate 5关联[]引用了一个未映射的实体[]:origin(User.hbm.xml)   java禁用JSpinner中的数字分组   java Spring的环境抽象是否使用PropertyEditor?   java是否创建自定义注释作为FrameworkAnnotation的别名?   java如何将Selenium安装为Unix守护程序?   java三值if运算符在正则if-one中   有人能帮我在一个程序上分析java代码吗?   java Spring集成5.0反应堆类型支持   java Websphere 7线程转储分析   java Akka期货和监管策略如何应对失败   使用Clojure中的可选参数调用java函数的构造函数   java如何消除安卓按钮的延迟?   Android上使用X.509证书的java认证应用程序   java如何获取列表中特定类型的所有对象?   java如何将json数组字符串转换为json对象   安卓 Java从长时间返回的日期不正确   java Android Studio在尝试从TextEdit搜索单词时崩溃   ViewPager的java子项