跳转到主要内容

用于处理Enthought特定egg和运行时存档中元数据的自包含库

项目描述

Okonomiyaki是一个面向整合Enthought eggs使用的许多底层代码的实验性库。

该库包含以下代码:

  • 从树+元数据生成EDM和enpkg兼容的egg

  • egg元数据、版本以及平台表示的对象模型

它在Python >= 3.6上工作,预计在几乎所有兼容的Python实现上都能正常工作。

注意

  • 版本实例无需额外依赖即可使用,请使用pip install okonomiyaki

  • 通过安装pip install okonomiyaki[platforms]可获得平台实例

  • 通过安装pip install okonomiyaki[formats]可获得egg元数据和存档工具

  • 要使用完整功能,请使用pip install okonomiyaki[all]

示例

版本解析

要解析版本

from okonomiyaki.versions import EnpkgVersion
# Every Version class has a from_string constructor
v1 = EnpkgVersion.from_string("1.3.3-1")
v2 = EnpkgVersion.from_string("1.3.2-3")

assert v1 > v2

版本实例被设计为不可变的,并可以用作字典的键。

平台解析

一致地解析EPD平台字符串(如rh5-64rh6_x86_64等)

from okonomiyaki.platforms import EPDPlatform
# Internal representation is normalized.
rh5_new_name = EPDPlatform.from_string("rh5-x86_64")
rh5_old_name = EPDPlatform.from_string("rh5-64")

assert rh5_old_name == rh5_new_name

对于版本实例,EPDPlatform实例被设计为不可变,并用作字典中的键。

蛋元数据

解析Enthought eggs

from okonomiyaki.file_formats import EggMetadata

# Only works for Enthought eggs
metadata = EggMetadata.from_egg("numpy-1.10.1-1.egg")
print(metadata.metadata_version)
print(metadata.name)
print(metadata.version)

这将处理许多您不想了解的低级和遗留细节。

2024-08-23 2.0.0

增强

  • 在Arch中添加对ARM和ARM64架构的支持(#458)

  • 在EPDPlatform中添加对ARM64的支持(#458)

  • 为ARM64架构添加示例运行时和eggs(#462,#460)

  • 为Platform添加从字典创建构造函数(#410,#472)

破坏性变更

  • 移除对Python 2.x代码的支持。Okonomiyaki现在支持在> 3.6上运行(#380)

  • 从EPDPlatform实例中移除“短”属性(#485)

  • 移除LagacyEPDPlatform实例(#485)

  • 移除okonomiyaki.recipes子模块(#473)

  • 将okonomiyaki.recipes.tests.data文件移动到okonomiyaki.utils.test_data(#473)

  • 将依赖项移动到可选的额外部分(#474)

  • default_abi将不再在Windows上对Python > 3.11失败(#477)

错误修复

  • 修复在没有任何参数调用时okonomiyaki cli的问题(#459)

  • 弃用已弃用的别名assertRaisesRegexp(#486)

  • 跳过某些在不受支持的系统上的测试(#475)

维护

  • 更新Github ci以生成可下载的工件作为HTML覆盖率报告(#457)

  • 在MacOS M1运行器上运行测试(#460)

  • 在Python 3.11上运行测试(#461)

  • 在Python 3.12上运行测试(#477)

  • 简化setup.py(#476,#477)

2023-06-29 1.4.0

增强

  • 添加cp311虚拟运行时(#349)

  • 添加cp311虚拟eggs(#453)

  • 更新代码以从运行系统猜测Platform实例(#448)- 为Rocky Linux添加NameKind值 - Debian和RHEL兼容系统现在由“uknown”NameKind支持 - 添加对RH8平台的支持

  • 更新PythonImplementation实例以支持cp311(#451)

  • 更新okonomiyaki代码以不使用已弃用的LegacyEPDPlatform实例(#452)

维护

  • 移除旧的Jenkins CI构建设置(#440)

  • 更新GitHub动作上的测试矩阵并移除Python 2.7的测试(#441,#447)

  • 将大部分包配置移动到setup.cfg(#450)

错误修复

  • 修复pep245模块的行为以及测试方式(#441,#447)

  • 修复PEP440Version和RuntimeVersion的repr输出(#435,#436)

  • 修复不支持的平台组合的错误消息(#433)

  • 修复虚拟egg存档中的权限问题(#430)

2021-07-01 1.3.2

错误修复

  • 修复相对导入(#426)

  • 修复compute_abi_tag以支持Python 3.8(#424)

2021-06-29 1.3.1

错误修复

  • 更新虚拟eggs以保留正确的abi标签,以支持Python 3.8(#413)

  • 将运行时版本传递给from_epd_string构造函数(#414)

  • 修复_guess_abi_tag和_guess_abi_from_python以支持Python 3.8(#418)

2021-03-21 1.3.0

增强

  • 添加cp38虚拟运行时(#387)

  • 添加cp38虚拟eggs(#395,#398)

  • 更新默认abi函数以支持Python 3.8(#390)

维护

  • 启用GitHub动作(#384)

  • 修复构建徽标以指向travis-ci.com(#376)

  • 修复指向okonomiyaki测试构建项目的路径(#379)

  • 更新验证okonomiyaki可以读取eds eggs的脚本(#396)

错误修复

  • 将rh6和rh7虚拟eggs添加到setup.py(#369)

  • EPDPlatform.pep425_tag对于macos平台始终返回10.6(#374,#387)

  • 修复较旧的虚拟Windows运行时存档以与最近的EDM一起工作(#391,#397)

  • EPDPlatform.from_string始终返回固定版本号(#375,#387)

2019-11-08 1.2.0

增强

  • 针对Centos 7运行测试(#359)

维护

  • 在维护和标记分支上运行Travis CI(#352)

  • 仅在master和维护分支上测试分支构建的Appveyor(#364)

错误修复

  • 将许可证添加到清单中(#354)

  • 修复Centos 7上的平台检测问题(#161)

  • 修复Python运行时前缀中包含'$'时出现的错误。(#309)

2019-09-20 1.1.1

错误修复

  • 修复rh6的2.7.10虚拟运行时的名称。(#341)

2019-09-19 1.1.0

增强

  • 为python 3.6.5添加虚拟测试运行时。(#327)

  • 为rh7添加虚拟测试运行时。(#331)

  • 为rh6添加虚拟测试运行时。(#330)

  • 为rh7添加虚拟测试egg。(#329)

  • 为rh6添加虚拟测试egg。(#328)

2019-03-15 1.0.0

增强

  • 添加解析具有元数据版本2.1的setuptools eggs和wheels的功能。(#312)

错误修复

  • 改进使用连字符的spec要求字符串时出现的错误信息。(#319)

  • 修复与jasonschema和attrs不兼容的CI错误。(#318)

  • 修复Travis CI的flake8错误。(#316)

2018-03-12 0.17.4

错误修复

  • 修复包含osx系统文件的python 2.7.9测试数据虚拟运行时。(#304)

  • 修复测试数据虚拟Windows运行时fix_scripts以支持python 2和python 3。(#303)

2017-12-13 0.17.3

增强

  • WheelInfo为'scripts'和'headers'前缀方案提供属性。(#298)

2017-07-20 0.17.2

错误修复

  • 在osx上运行python 2.7.x时跳过预期失败的测试_simple_from_running_python。(#295)

2017-07-19 0.17.1

增强

  • 简化Travis CI测试。(#286)

  • 在appveyor和python 3上运行测试。(#288)

错误修复

  • 修复Windows上Python 3的Runtime.executable值。(#288)

  • 修复compute_abi_tag/compute_python_tag/compute_platform_tag,以便它们可以在冻结应用程序中使用。(#284)

2017-07-03 0.17.0

增强

  • 为ironpython/jython计算默认ABI。(#225)

  • 添加对CPython 3.6的支持。(#229)

  • 添加对PKG-INFO格式1.2和2.0的支持。(#261, #271)

  • 修复对attrs > = 17.x的支持。

  • PackageInfo.from_path可以从wheels和eggs中解析PKG-INFO元数据。(#274)

  • 添加WheelInfo类以解析wheel pep425标签。(#275)

  • 添加compute_abi_tag/compute_python_tag/compute_platform_tag函数,以便可以从任意Python可执行文件计算PEP 425标签。(#278)

  • 在README中添加一些基本示例。(#279)

  • 将常用wheel前缀添加到WheelInfo中。(#280)

错误修复

  • 修复setup.py中的author_*条目。(#235)

  • 测试运行时应包括pythonw.exe。(#238)

  • 修复applies("32")/applies("64")。(#244)

  • 修复通过writestr写入的egg元数据权限。(#249)

  • 修复包含'remains'的platform字符串的错误处理。(#253)

  • 修复setup.py中无效的trove分类器。(#258)

  • 将需要可散列的类标记为不可变。(#266)

  • 将(长)描述添加到setup.py中。(#272)

2016-06-29 0.16.0

本版本着重于加快EggMetadata的速度,并为EDM添加json序列化。

增强

  • 更新对attr >= 16.0.0的依赖,其中包含对验证器的某些加速。(#220)

  • 在EggMedata中延迟解析PKG-INFO。(#216)

  • 测试运行时的虚拟python输出正确的字符串,并且具有正确的位数。(#215)

  • 测试运行时现在在Unix上包含符号链接。(#214)

  • 为EggMetadata添加json序列化。(#213)

  • 将Kind枚举公开到okonomiyaki.runtimes。(#204)

  • 加速EggMetadata.from_egg。(#203)

  • EPDPlatform.from_epd_string已被EPDPlatform.from_string取代。(#199)

  • EggMetadata.from_egg不会重新打开zipfile 3次。(#195)

错误

  • 修复flake8违规。(#218)

  • 删除stevedore的冗余依赖。(#208)

  • 缺少enum34依赖。(#196)

2016-04-27 0.15.0:

增强

  • 为EggMetadata添加< cite>platform_abi字段。

错误修复

  • 为无效的egg元数据抛出正确的异常。(#156)

  • 为运行时中缺失的元数据抛出正确的异常。(#165)

内部更改

  • 使用enum34而不是traitlets。(#55)

  • 不再使用traitlets。(#56, #115, #145)

2015-12-09 0.14.0:

增强

  • 拒绝egg元数据中不兼容的metadata_version,并添加API以轻松调整输出的metadata_version。(#150)

  • 现在default_abi对替代实现也有效。(#149)

  • 已改进无效元数据的异常层次结构,以便提供更详细的错误消息。(#151)

向后不兼容的更改

  • default_abi函数现在需要3个参数。(#149)

错误修复

  • 更新python_tag黑名单以处理错误的元数据。(#146)

2015-10-02 0.13.0:

增强

  • 为运行时添加abi属性。(#134)

  • 为运行时添加metadata_version属性。(#143)

向后不兼容的更改

  • 从运行时中删除language属性。(#134)

  • 从EggMetadata中删除metadata_version_info属性。(#143)

错误修复

  • 更新PKG-INFO黑名单以处理每个pypi egg。(#141)

  • 更新平台黑名单以处理带有C扩展和未设置平台的Windows egg的错误元数据(#142)(#136)。

  • 修复PEP386版本后缀无dev部分时的往返问题(#136)。

2015-09-28 0.12.0:

改进

  • 现有egg的无效python标签的黑名单机制(#127)

  • egg构建器现在接受的filtre函数接受两个参数,以允许对存档的完整内容进行过滤(#128)

2015-09-14 0.11.0:

改进

  • 添加了SemanticVersion类

  • 添加了MetadataVersion类,以便轻松操作元数据版本。

  • 添加了PEP440Version类。

  • 添加了RuntimeVersion类以模拟edm运行时版本

  • IRuntimeMetadata.factory_from_path类函数用于解析和验证运行时包。

  • 现在为EPDPlatform实现了__str__。实现支持EPDPlatform.from_epd_string(str(epd_platform)) == epd_platform(#117)

2015-00-01 0.10.0:

改进

  • EnpkgVersion.from_string现在处理形式为1.3.0的版本,构建号隐式为0。

  • EggMetadata.from_egg现在可以处理为RedHat Enterprise Linux 3构建的egg(#88)。

  • 修复解析PKG-INFO时的解码错误(#86)

  • 修复解析RedHat 3 egg的spec/depend(#88)

  • 特殊情况无效需求‘numpy-1.8.0’

内部

  • 删除对six的依赖

  • 为EPDPlatform添加对平台名称中os和arch之间“-”和“_”作为分隔符的支持,即from_epd_string(“rh5-x86_64”)和from_epd_string(“rh5_x86_64”)都有效(#83)。

  • 黑名单机制以修复无效的PKG-INFO

  • 黑名单机制以处理特定平台的任何架构egg

  • 为brood添加特殊“private”API以绕过EggMetadata和PackageInfo中的校验和计算

2015-07-06 0.9.0:

改进

  • SetuptoolsEggMetadata现在可以猜测遗留情况下的ABI。(#74)

  • 使用PythonImplementation实例而不是字符串来存储python标签(#75)。

  • 添加okonomiyaki.__version_info__以方便版本比较(#76)。

2015-06-30 0.8.0:

新功能

  • 添加了新的EggRewriter类,用于从setuptools egg创建Enthought egg。

改进

  • 添加EPDPlatform.from_running_python构造函数(#62)

  • 在PackageInfo中拒绝不支持的元数据版本(#63)

  • 添加对“py2”python标签的支持(#64)

  • 在SetuptoolsEggMetadata中添加对Python 3的支持(#70)

错误修复

  • 在EggMetadata中处理没有PKG-INFO的Enthought egg(#65)

  • 修复PKG-INFO和EGG-INFO/spec/summary的Unicode处理(#72)

项目详情


下载文件

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

源分布

okonomiyaki-2.0.0.tar.gz (8.3 MB 查看哈希值

上传于 来源

构建的发行版

okonomiyaki-2.0.0-py2.py3-none-any.whl (8.3 MB 查看哈希值)

上传于 Python 2 Python 3

由以下支持