跳转到主要内容

A purl,即. 包 URL 解析器和构建器

项目描述

Python库,用于解析和构建“purl”即. 包URL。有关详细信息,请参阅https://github.com/package-url/purl-spec

https://gitter.im/package-url/Lobby加入讨论或提交支持工单。

许可协议:MIT

测试和构建状态

测试和构建

CI Tests and build status

安装

pip install packageurl-python

用法

>>> from packageurl import PackageURL

>>> purl = PackageURL.from_string("pkg:maven/org.apache.commons/io@1.3.4")
>>> print(purl.to_dict())
{'type': 'maven', 'namespace': 'org.apache.commons', 'name': 'io', 'version': '1.3.4', 'qualifiers': None, 'subpath': None}

>>> print(purl.to_string())
pkg:maven/org.apache.commons/io@1.3.4

>>> print(str(purl))
pkg:maven/org.apache.commons/io@1.3.4

>>> print(repr(purl))
PackageURL(type='maven', namespace='org.apache.commons', name='io', version='1.3.4', qualifiers={}, subpath=None)

实用工具

Django模型

packageurl.contrib.django.models.PackageURLMixin是一个Django抽象模型混入,用于在Django中使用包URL。

SQLAlchemy混入

packageurl.contrib.sqlalchemy.mixin.PackageURLMixin是一个SQLAlchemy声明性混入,用于在SQLAlchemy模型中使用包URL。

URL到PURL

packageurl.contrib.url2purl.get_purl(url)从URL推断出一个包URL。

>>> from packageurl.contrib import url2purl
>>> url2purl.get_purl("https://github.com/package-url/packageurl-python")
PackageURL(type='github', namespace='package-url', name='packageurl-python', version=None, qualifiers={}, subpath=None)

PURL到URL

  • packageurl.contrib.purl2url.get_repo_url(purl)从包URL推断出一个仓库URL。

  • packageurl.contrib.purl2url.get_download_url(purl)从包URL推断出一个下载URL。

  • packageurl.contrib.purl2url.get_inferred_urls(purl)从包URL返回所有推断出的URL(仓库、下载)。

>>> from packageurl.contrib import purl2url

>>> purl2url.get_repo_url("pkg:gem/bundler@2.3.23")
"https://rubygems.org.cn/gems/bundler/versions/2.3.23"

>>> purl2url.get_download_url("pkg:gem/bundler@2.3.23")
"https://rubygems.org.cn/downloads/bundler-2.3.23.gem"

>>> purl2url.get_inferred_urls("pkg:gem/bundler@2.3.23")
["https://rubygems.org.cn/gems/bundler/versions/2.3.23", "https://rubygems.org.cn/downloads/bundler-2.3.23.gem"]

运行测试

安装测试依赖项

python3 thirdparty/virtualenv.pyz --never-download --no-periodic-update .
bin/pip install -e ."[test]"

运行测试

bin/py.test tests

创建新版本

  • 启动新版本分支

  • 如有必要,更新CHANGELOG.rst、AUTHORS.rst和README.rst

  • 在setup.cfg中提升版本

  • 运行所有测试

  • 安装restview并验证所有.rst文档是否正确

  • 提交并推送此分支

  • 创建PR并在批准后合并

  • 标记并推送该标记。这会触发pypi-release.yml工作流程,该工作流程负责构建发行版文件并将其上传到PyPI

    VERSION=v0.x.x
    git tag -a $VERSION -m "Tag $VERSION"
    git push origin $VERSION
  • https://github.com/package-url/packageurl-python/releases审查由工作流程创建的GitHub发行版

项目详情


下载文件

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

源代码分发

packageurl_python-0.15.6.tar.gz (40.3 kB 查看哈希值)

上传时间 源代码

构建分发

packageurl_python-0.15.6-py3-none-any.whl (28.5 kB 查看哈希值)

上传时间 Python 3

由以下机构支持