python#
通用 Python 软件包格式实用程序。
类#
描述基于锚文件路径的 python 发行版的基本对象。 |
|
通过 distutils 安装的 Python 发行版。 |
|
通过 setuptools 安装的 Python 发行版。 |
|
通过 setuptools 安装的 Python 发行版。 |
|
表示由锚点给出的 Python 发行版的元数据的对象 |
|
此类用于评估标记表达式。 |
函数#
|
|
|
|
|
通过删除多余的空格和括号来标准化版本。 |
|
按分隔符拆分规范并返回去除空格的开头和结尾部分。 |
|
从 python 发行版元数据解析需求并返回一个 |
|
获取 site packages 目录的所有锚文件。 |
|
返回跟随 egg link 的 egg info 文件路径。 |
|
解析标记字符串并返回包含标记表达式的字典。 |
|
|
返回解析标记时使用的默认上下文字典。 |
|
|
解释标记并返回取决于环境的结果。 |
属性#
- PYPI_TO_CONDA#
- PYPI_CONDA_DEPS#
- PARTIAL_PYPI_SPEC_PATTERN#
- PY_FILE_RE#
- PySpec#
- class PythonDistribution(anchor_full_path, python_version)#
描述基于锚文件路径的 python 发行版的基本对象。
- property name#
- property norm_name#
- property conda_name#
- property version#
- MANIFEST_FILES = ()#
- REQUIRES_FILES = ()#
- MANDATORY_FILES = ()#
- ENTRY_POINTS_FILES = ('entry_points.txt',)#
- static init(prefix_path, anchor_file, python_version)#
- _check_files()#
检查给定发行版的强制性文件是否存在。
- _check_path_data(path, checksum, size)#
规范化记录数据内容和格式。
- static _parse_requires_file_data(data, global_section='__global__')#
- static _parse_entries_file_data(data)#
- _load_requires_provides_file()#
- manifest_full_path()#
- get_paths()#
从记录或源文件读取已安装路径的列表。
示例
- [(u'skdata/__init__.py', u'sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU', 0),
(u'skdata/diabetes.py', None, None), ...
]
- get_dist_requirements()#
- get_python_requirements()#
- get_external_requirements()#
- get_extra_provides()#
- get_conda_dependencies()#
处理提供依赖信息的元数据字段。
这包括规范化字段和评估环境标记。
- abstract get_optional_dependencies()#
- get_entry_points()#
- class PythonInstalledDistribution(prefix_path, anchor_file, python_version)#
-
通过 distutils 安装的 Python 发行版。
注释
- MANIFEST_FILES = ('RECORD',)#
- REQUIRES_FILES = ()#
- MANDATORY_FILES = ('METADATA',)#
- ENTRY_POINTS_FILES = ()#
- is_manageable = True#
- class PythonEggInfoDistribution(anchor_full_path, python_version, sp_reference)#
-
通过 setuptools 安装的 Python 发行版。
注释
- property is_manageable#
- MANIFEST_FILES = ('installed-files.txt', 'SOURCES', 'SOURCES.txt')#
- REQUIRES_FILES = ('requires.txt', 'depends.txt')#
- MANDATORY_FILES = ()#
- ENTRY_POINTS_FILES = ('entry_points.txt',)#
- class PythonEggLinkDistribution(prefix_path, anchor_file, python_version)#
-
通过 setuptools 安装的 Python 发行版。
注释
- is_manageable = False#
- class PythonDistributionMetadata(path)#
表示由锚文件(或目录)路径给出的 Python 发行版的元数据的对象。
此元数据是从单个文件提取的。Python 发行版可能会创建补充此元数据信息的其他文件,但这在 python 发行版级别处理。
注释
https://packaging.pythonlang.cn/specifications/core-metadata/
元数据 2.0:https://pythonlang.cn/dev/peps/pep-0426/ (已撤回)
- property name#
- property version#
- FILE_NAMES = ('METADATA', 'PKG-INFO')#
- SINGLE_USE_KEYS#
- MULTIPLE_USE_KEYS#
- static _process_path(path, metadata_filenames)#
在 dist-info 文件夹中查找元数据文件,或检查直接文件。
- classmethod _message_to_dict(message)#
将 RFC-822 标头数据转换为字典。
message 是 email.parser.Message 实例。
将元数据字段转换为这种数据结构的标准方法如下
原始的键值格式应该用 email.parser.HeaderParser 读取
所有转换后的键都应简化为小写。连字符应替换为下划线,但否则应保留所有其他字符
对于任何标记为“(多次使用”)的字段,转换后的值应是包含给定键的所有原始值的单个列表
关键字字段应通过在空白字符上拆分原始值来转换为列表
消息正文(如果存在)应设置为 description 键的值。
结果应存储为字符串键字典。
- classmethod _read_metadata(fpath)#
读取以 RFC-822 标头存储的原始格式。
- _get_multiple_data(keys)#
通过键获取多个数据值的辅助方法。
Keys 是一个可迭代对象,包括按顺序排列的首选键,以包含可能已被替换(弃用)的键的值,例如键可以是 ['requires_dist', 'requires'],其中键 'requires' 已弃用并替换为 'requires_dist'。
- get_dist_requirements()#
在版本 2.1 中更改:字段格式规范已放宽,以接受流行的发布工具使用的语法。
每个条目都包含一个字符串,命名此发行版所需的其他 distutils 项目。
- 需求字符串的格式包含一到四个部分
项目名称,格式与 Name: 字段相同。唯一强制的部分。
以逗号分隔的“额外”名称列表。这些由所需项目定义,指的是可能需要额外依赖项的特定功能。
版本说明符。解析格式的工具应接受此项周围的可选括号,但生成它的工具不应使用括号。
环境标记位于分号之后。这意味着该要求仅在指定条件下才需要。
此字段后可能跟一个环境标记,标记位于分号之后。
示例
- frozenset(['pkginfo', 'PasteDeploy', 'zope.interface (>3.5.0)',
'pywin32 >1.0; sys_platform == "win32"'])
如果“Requires-Dist”为空,则返回“Requires”。
- get_python_requirements()#
1.2 版本新增。
此字段指定了发行版保证兼容的 Python 版本。安装工具在选择要安装的项目版本时可能会参考此字段。
该值必须采用版本说明符中指定的格式。
此字段后可能跟一个环境标记,标记位于分号之后。
示例
- frozenset(['>=3', '>2.6,!=3.0.*,!=3.1.*', '~=2.6',
'>=3; sys_platform == "win32"'])
- get_external_requirements()#
在版本 2.1 中更改:字段格式规范已放宽,以接受流行的发布工具使用的语法。
每个条目包含一个字符串,描述了系统中使用该发行版时所需的一些依赖项。此字段旨在为下游项目维护者提供提示,对于 distutils 发行版而言,它没有有意义的语义。
需求字符串的格式是外部依赖项的名称,可以选择后跟括号内的版本声明。
此字段后可能跟一个环境标记,标记位于分号之后。
由于它们引用的是非 Python 软件版本,因此此字段的版本号不需要符合 PEP 440 中指定的格式:它们应与外部依赖项使用的版本方案相对应。
请注意,对于要使用的字符串,没有特定的规则!
示例
frozenset(['C', 'libpng (>=1.5)', 'make; sys_platform != "win32"'])
- get_extra_provides()#
2.1 版本新增。
一个字符串,包含可选功能的名称。必须是有效的 Python 标识符。可用于使依赖项取决于是否已请求可选功能。
示例
frozenset(['pdf', 'doc', 'test'])
- get_dist_provides()#
1.2 版本新增。
在版本 2.1 中更改:字段格式规范已放宽,以接受流行的发布工具使用的语法。
每个条目包含一个字符串,命名了此发行版中包含的 Distutils 项目。此字段必须包含在“Name”字段中标识的项目,后跟版本:Name(Version)。
发行版可以提供其他名称,例如,指示已将多个项目捆绑在一起。例如,ZODB 项目的源代码发行版历史上包含了 transaction 项目,该项目现在作为单独的发行版提供。安装这样的源代码发行版可以满足对 ZODB 和 transaction 的要求。
发行版还可以提供“虚拟”项目名称,该名称与任何单独发行的项目都不对应:这样的名称可能用于指示抽象功能,该功能可以由多个项目之一提供。例如,多个项目可能为给定的 ORM 提供 RDBMS 绑定:每个项目都可以声明它提供 ORM 绑定,从而允许其他项目仅依赖于安装了它们中的最多一个。
可以提供版本声明,并且必须遵循版本说明符中描述的规则。如果未指定版本,则将暗示发行版的版本号。
此字段后可能跟一个环境标记,标记位于分号之后。
如果 Provides-Dist 为空,则返回 Provides。
- get_dist_obsolete()#
1.2 版本新增。
在版本 2.1 中更改:字段格式规范已放宽,以接受流行的发布工具使用的语法。
每个条目包含一个字符串,描述了此发行版使其过时的 distutils 项目的发行版,这意味着这两个项目不应同时安装。
可以提供版本声明。版本号必须采用版本说明符 [1] 中指定的格式。
此字段最常见的用途是在项目名称更改的情况下,例如,Gorgon 2.3 被并入 Torqued Python 1.0。当您安装 Torqued Python 时,应删除 Gorgon 发行版。
此字段后可能跟一个环境标记,标记位于分号之后。
如果 Obsoletes-Dist 为空,则返回 Obsoletes。
示例
frozenset(['Gorgon', "OtherProject (<3.0) ; python_version == '2.7'"])
注释
- get_classifiers()#
分类器在 PEP 301 中进行了描述,Python 包索引发布了当前定义的分类器的动态列表。
此字段后可能跟一个环境标记,标记位于分号之后。
示例
- frozenset(['Development Status :: 4 - Beta',
"Environment :: Console (Text Based) ; os_name == "posix"])
- norm_package_name(name)#
- pypi_name_to_conda_name(pypi_name)#
- norm_package_version(version)#
通过删除多余的空格和括号来标准化版本。
- split_spec(spec, sep)#
按分隔符拆分规范并返回去除空格的开头和结尾部分。
- parse_specification(spec)#
从 python 发行版元数据解析需求,并返回一个命名元组,其中包含 name、extras、constraints、marker 和 url 组件。
此方法不强制执行严格的规范,但提取被认为是正确的信息。因此,不会引发任何错误。
示例
- PySpec(name='requests', extras=['security'], constraints='>=3.3.0',
marker='foo >= 2.7 or bar == 1', url=''])
- get_site_packages_anchor_files(site_packages_path, site_packages_dir)#
获取 site packages 目录的所有锚文件。
- get_dist_file_from_egg_link(egg_link_file, prefix_path)#
返回跟随 egg link 的 egg info 文件路径。
- parse_marker(marker_string)#
解析标记字符串并返回包含标记表达式的字典。
字典将包含表达式语法中非终结符的键“op”、“lhs”和“rhs”,或字符串。引号中包含的字符串应解释为文字字符串,而引号中未包含的字符串是变量(例如 os_name)。
- IDENTIFIER#
- VERSION_IDENTIFIER#
- COMPARE_OP#
- MARKER_OP#
- OR#
- AND#
- NON_SPACE#
- STRING_CHUNK#
- _is_literal(o)#
- class Evaluator#
此类用于评估标记表达式。
- operations#
- evaluate(expr, context)#
评估
parse_requirement()函数在指定上下文中返回的标记表达式。
- get_default_marker_context()#
返回解析标记时使用的默认上下文字典。
- DEFAULT_MARKER_CONTEXT#
- evaluator#