软件遗产列表器

swh.lister的Python项目详细描述


SWH列表器

这个来自软件遗产堆栈的组件旨在生成列表 各种公共开发平台上托管的软件来源及其url 或者包管理器。由于这些操作非常相似,它提供了一组 抽象通用软件源代码的python模块,列出行为。

它还提供了几个lister实现,包含在 以下是python模块:

  • swh.lister.bitbucket
  • swh.lister.debian
  • swh.lister.github
  • swh.lister.gitlab
  • swh.lister.gnu
  • swh.lister.pypi
  • swh.lister.npm
  • swh.lister.phabricator
  • swh.lister.cran
  • swh.lister.cgit
  • swh.lister.packagist

依赖关系

所有必需的依赖项都可以在位于 在存储库的根目录中。

本地部署

列表器配置

到目前为止,每个lister都是通过软件遗产实现的(githubgitlabdebianpypinpm) 必须按照以下说明进行配置(请注意,您必须更换 <lister_name>由上面介绍的一个lister名称命名)。

准备步骤

  1. mkdir ~/.config/swh/ ~/.cache/swh/lister/<lister_name>/
  2. 创建配置文件~/.config/swh/lister_<lister_name>.yml
  3. 引导数据库实例架构
$ createdb lister-<lister_name>
$ python3 -m swh.lister.cli --db-url postgres:///lister-<lister_name> <lister_name>

注意:这将引导lister运行所需的最小数据集。

配置文件示例

所有列表器共享到加载项文件的最小配置~/.config/swh/lister_<lister_name>.yml

storage:
  cls: 'remote'
  args:
    url: 'http://localhost:5002/'

scheduler:
  cls: 'remote'
  args:
    url: 'http://localhost:5008/'

lister:
  cls: 'local'
  args:
    # see http://docs.sqlalchemy.org/en/latest/core/engines.html#database-urls
    db: 'postgresql:///lister-<lister_name>'

credentials: []
cache_responses: True
cache_dir: /home/user/.cache/swh/lister/<lister_name>/

注意:这要求存储(5002)和计划程序(5008)服务在本地运行

Lister Github

配置后,可以使用python3脚本中的以下指令执行github lister:

import logging
from swh.lister.github.tasks import range_github_lister

logging.basicConfig(level=logging.DEBUG)
range_github_lister(364, 365)
...

Lister Gitlab

配置后,您可以使用下面python3脚本中详细说明执行gitlab lister:

import logging
from swh.lister.gitlab.tasks import range_gitlab_lister

logging.basicConfig(level=logging.DEBUG)
range_gitlab_lister(1, 2, {
    'instance': 'debian',
    'api_baseurl': 'https://salsa.debian.org/api/v4',
    'sort': 'asc',
    'per_page': 20
})
import logging
from swh.lister.gitlab.tasks import full_gitlab_relister

logging.basicConfig(level=logging.DEBUG)
full_gitlab_relister({
    'instance': '0xacab',
    'api_baseurl': 'https://0xacab.org/api/v4',
    'sort': 'asc',
    'per_page': 20
})
import logging
from swh.lister.gitlab.tasks import incremental_gitlab_lister

logging.basicConfig(level=logging.DEBUG)
incremental_gitlab_lister({
    'instance': 'freedesktop.org',
    'api_baseurl': 'https://gitlab.freedesktop.org/api/v4',
    'sort': 'asc',
    'per_page': 20
})

Lister Debian

配置后,您可以使用python3脚本中的以下指令执行Debian Lister:

import logging
from swh.lister.debian.tasks import debian_lister

logging.basicConfig(level=logging.DEBUG)
debian_lister('Debian')

李斯特Pypi

配置后,可以使用python3脚本中的以下指令执行pypi lister:

import logging
from swh.lister.pypi.tasks import pypi_lister

logging.basicConfig(level=logging.DEBUG)
pypi_lister()

列表器npm

配置后,可以使用python3repl中的以下指令执行npm lister:

import logging
from swh.lister.npm.tasks import npm_lister

logging.basicConfig(level=logging.DEBUG)
npm_lister()

监听器扬声器

配置后,可以使用python3脚本中的以下指令执行phabricator lister:

import logging
from swh.lister.phabricator.tasks import incremental_phabricator_lister

logging.basicConfig(level=logging.DEBUG)
incremental_phabricator_lister(forge_url='https://forge.softwareheritage.org', api_token='XXXX')

列表器gnu

配置后,可以使用python3脚本中的以下指令执行pypi lister:

import logging
from swh.lister.gnu.tasks import gnu_lister

logging.basicConfig(level=logging.DEBUG)
gnu_lister()

李斯特克兰

配置后,可以使用python3脚本中的以下指令执行cran lister:

import logging
from swh.lister.cran.tasks import cran_lister

logging.basicConfig(level=logging.DEBUG)
cran_lister()

列表器cgit

配置后,可以使用以下指令执行cgit lister 在python3脚本中:

import logging
from swh.lister.cgit.tasks import cgit_lister

logging.basicConfig(level=logging.DEBUG)
# simple cgit instance
cgit_lister(url='https://git.kernel.org/')
# cgit instance whose listed repositories differ from the base url
cgit_lister(url='https://cgit.kde.org/',
            url_prefix='https://anongit.kde.org/')

李斯特包装师

配置后,可以使用以下指令执行packagist lister 在python3脚本中:

import logging
from swh.lister.packagist.tasks import packagist_lister

logging.basicConfig(level=logging.DEBUG)
packagist_lister()

许可

此程序是免费软件:您可以在 自由软件发布的GNU通用公共许可条款 基金会,许可证的第3版,或(由您选择)以后的任何版本 版本。

这个程序的发布是希望它能有用,但是没有 保证;甚至没有对商品的适销性或适用性的暗示保证 特殊目的。有关更多详细信息,请参阅GNU通用公共许可证。

GNU通用公共许可证全文见顶级许可证文件 还有这个节目。

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

推荐PyPI第三方库


热门话题
java如何使用相同的模型、颜色、字体和侦听器创建JTable的副本?   JavaSpring+Thymeleaf:用户时区中的时间   java HTTP请求返回非法状态异常安卓   java xml验证JDK 1.5 JDK 1.6差异   junit如何使用Parasoft从java文件生成测试文件   java使用getSpans方法获取可扩展文件中的所有跨距   javascript无法使用bindingResult设置表单元素   java RCP应用程序活动   获取Java类中泛型字段的类型   java更新查询,从一个依赖于另一个表的表中更改字段   java错误:GWT类型中的方法setBridge(GWTBridge)不适用于参数(GWTBridge)   为什么java/安卓需要在XML元素的开头有一个空格来解析它?   java通用代码,用于将字符串转换为任何所需的类   java如何创建Liferay钩子以扩展购物车portlet的功能   java Selected()方法存在漏洞   java新行附加在我的加密字符串上   使用NaN值的指数平滑的java   使用飞碟和iText发行的java XHTML到PDF   java如何在不使用HTMLDocument的情况下在JTextPane中显示两列文本?