跳转到主要内容

R2C输入集生成器

项目描述

输入集生成器

这是R2C平台的输入集生成器。

安装

要安装,只需执行 pip install r2c-inputset-generator。然后运行 r2c-isg 来加载shell。

注意: 此应用程序将在终端当前目录中缓存对各个软件包注册表的HTTP请求。在加载shell之前,请确保导航到适当的目录,或者在shell内部使用命令 set-api --nocache

快速入门

尝试以下命令序列

  • 加载过去365天内下载量最高的前4,000个PyPI项目,按下载量降序排序,裁剪到下载量最高的前100个,下载项目元数据和所有版本,并生成输入集json。

      load pypi list top4kyear
      sort "desc download_count"
      trim 100
      get -mv all
      set-meta -n test -v 1.0
      export inputset.json
    
  • 加载所有npm项目,样本100,下载最新版本,并生成输入集json。

      load npm list allbydependents
      sample 100
      get -v latest
      set-meta -n test -v 1.0
      export inputset.json
    
  • 加载包含GitHub网址和提交哈希的csv文件,获取项目元数据和最新版本,生成类型为GitRepoCommit的输入集json,删除所有版本,并生成类型为GitRepo的输入集json。

      load --columns "url v.commit" github file list_of_github_urls_and_commits.csv
      get -mv latest
      set-meta -n test -v 1.0
      export inputset_1.json
      trim -v 0
      export inputset_2.json
    
  • 从组织名称加载GitHub仓库列表。

      load github org netflix
    

Shell使用

输入/输出

  • load (OPTIONS) [noreg | github | npm | pypi] [WEBLIST_NAME | FILEPATH.csv]
    从网络列表或本地文件生成数据集。以下网络列表可用

    • GitHub: top1kstarred, top1kforked;最被星标或被分叉的1,000个仓库
    • NPM: allbydependents;所有包,按依赖者数量从多到少排序(注意:1M+个项目...请谨慎处理)
    • Pypi: top4kmonth 和 top4kyear;过去30/365天下载量最高的4,000个项目

    选项
    -c --columns "列名字符串":一个csv格式的列名列表。覆盖默认列(名称和版本),以及文件中列出的任何标题(文件中的标题以"!"开头)。CSV读取器识别以下列关键词:name, url, org, v.commit, v.version。所有其他列都作为项目或版本属性读取。
    示例用法:--headers "name url downloads v.commit v.date"。

  • backup (FILEPATH.p)
    将数据集备份到pickle文件中(默认为./dataset_name.p)。

  • restore FILEPATH.p
    从pickle文件中恢复数据集。

  • import [noreg | github | npm | pypi] FILEPATH.json
    从R2C输入集构建数据集。

  • export (FILEPATH.json)
    将数据集导出为R2C输入集(默认为./dataset_name.json)。

数据获取

  • get (OPTIONS)
    从GitHub/NPM/Pypi下载项目和版本元数据。

    选项
    -m --metadata:获取所有项目的元数据。
    -v --versions [all | latest]:获取所有项目的历史版本。

转换

  • trim (OPTIONS) N
    将数据集裁剪到n个项目或每个项目n个版本。

    选项
    -v --versions:二进制标志;按版本而不是项目裁剪。

  • sample (OPTIONS) N
    从每个项目采样n个项目或n个版本。

    选项
    -v --versions:二进制标志;采样版本而不是项目。

  • sort "[asc, desc] attributes [...]"
    根据空格分隔的字符串对项目和版本进行排序。有效的关键词包括

    • 任何项目属性
    • 任何版本属性(属性名前缀"v.")
    • 任何uuids(属性名前缀"uuids.")
    • 任何元值(属性名前缀"meta.")
    • 单词"asc"和"desc"

    默认情况下,所有值按升序排序。字符串中的第一个关键字是主要排序键,其次是次要的,依此类推。

    示例:字符串"uuids.name meta.url downloads desc v.version_str v.date"将根据项目名称、url和下载量升序排序;版本字符串和日期降序排序(假设存在这些键)。

设置

  • set-meta (OPTIONS)
    设置数据集的元数据。

    选项
    -n --name NAME:输入集名称。必须在导出数据集之前设置。
    -v --version VERSION:输入集版本。必须在导出数据集之前设置。
    -d --description DESCRIPTION:描述字符串。
    -r --readme README:Markdown格式的readme字符串。
    -a --author AUTHOR:作者名称;默认为git user.name。
    -e --email EMAIL:作者邮箱;默认为git user.email。

  • set-api (OPTIONS)
    --cache_dir CACHE_DIR:请求缓存的路径;默认为./.requests_cache。
    --cache_timeout DAYS:缓存请求过期的天数。
    --nocache:二进制标志;禁用此数据集的请求缓存。
    --github_pat GITHUB_PAT:GitHub个人访问令牌,用于将每小时最大请求速率从60/小时增加到5,000/小时。有关获取令牌的说明,请参阅:https://help.github.com/en/articles/creating-a-personal-access-token-for-the-command-line

可视化

  • show
    将数据集转换为json文件,并在系统的本地json查看器中加载。

Python项目

您还可以将此包导入到自己的项目中。只需导入数据集结构,初始化它,然后就可以使用了!

from r2c_isg.structures import Dataset

ds = Dataset.import_inputset(
    'file.csv' ~or~ 'weblist_name',
    registry='github' ~or~ 'npm' ~or~ 'pypi',
    cache_dir=path/to/cache/dir,      # optional; overrides ./.requests_cache
    cache_timeout=int(days_in_cache), # optional; overrides 1 week cache timeout
    nocache=True,                     # optional; disables caching
    github_pat=your_github_pat        # optional; personal access token for github api
)

ds.get_projects_meta()

ds.get_project_versions(historical='all' ~or~ 'latest')

ds.trim(
    n,
    on_versions=True	# optional; defaults to False
)

ds.sample(
    n,
    on_versions=True	# optional; defaults to False
)

ds.sort('string of sort parameters')

ds.update(**{'name': 'you_dataset_name', 'version': 'your_dataset_version'})

ds.export_inputset('your_inputset.json')

故障排除

如果在运行过程中遇到任何问题,您可以使用启用 --debug 标志的 shell 获取完整的错误信息。然后,将堆栈跟踪和重现错误的步骤发送到 support@ret2.co

注意:如果问题是与 "sample" 命令相关的,请确保对随机数生成器进行初始化,以确保可重现性。

项目详情


下载文件

下载适用于您平台的文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。

源代码发行版

r2c-inputset-generator-0.3.2.tar.gz (29.0 kB 查看哈希值)

上传日期 源代码

构建发行版

r2c_inputset_generator-0.3.2-py3-none-any.whl (39.9 kB 查看哈希值)

上传日期 Python 3

由以下支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页