允许将数据集聚合(推送)到另一个存储库
ckanext-syndicate的Python项目详细描述
将数据集联合到另一个ckan实例的ckan插件。
此插件提供了一种机制,可以将数据集聚合到 克根。如果数据集的自定义中syndicate标志设置为True。 元数据,对数据集的任何更新都将反映在 版本。联合数据集中的资源存储为 原始资源。目标上必须有用户的api密钥 ckan的实例。请参阅下面的配置设置部分。
插件可以通过实现操作来修改发送给联合的数据 update_dataset_for_syndication并修改dataset_dict 价值。如果ckan实例之间的模式不同,这将非常有用。
要求
- 使用CKAN 2.5.2进行测试
- 需要celery
- 要在ssl上工作,需要pyOpenSSL、ndg-httpsclient和pyasn1
- 在生产环境中通过supervisor 运行芹菜可能很有用。
安装
安装ckanext辛迪加:
激活您的CKAN虚拟环境,例如:
. /usr/lib/ckan/default/bin/activate
将ckanext syndicate python包安装到您的虚拟环境中:
pip install ckanext-syndicate
将syndicate添加到ckan中的ckan.plugins设置 配置文件(默认情况下,配置文件位于 /etc/ckan/default/production.ini)。
重启ckan。例如,如果您在ubuntu上使用apache部署了ckan:
sudo service apache2 reload
你还需要做芹菜。在开发环境中,可以使用虚拟环境中的以下paster命令来完成此操作:
paster --plugin=ckan celeryd run -c /etc/ckan/default/development.ini
在生产环境中,芹菜可以通过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上注册项目 步骤:
创建项目的源分发版:
python setup.py sdist
注册项目:
python setup.py register
将源分发上载到pypi:
python setup.py sdist upload
在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,请执行以下步骤:
更新setup.py文件中的版本号。 见PEP 440 如何选择版本号。
创建新版本的源发行版:
python setup.py sdist
将源分发上载到pypi:
python setup.py sdist upload
在github上标记项目的新版本,版本号为 setup.py文件。例如,setup.py中的版本号是 0.0.2然后执行:
git tag 0.0.2 git push --tags