用于处理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-64,rh6_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 cite>字段。
错误修复
为无效的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的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 8aacccce9266629b7dd5d8f2ec01a4effa2b4d676517349f7933f9742f6f0c4a |
|
MD5 | 1c09a89b06497335b338f7b2ef5182e2 |
|
BLAKE2b-256 | cceedddfa93a4153057a51053fa9d387a947dfcdb399ee7a473d4c844bed5834 |
okonomiyaki-2.0.0-py2.py3-none-any.whl的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 9d2b63cb5cbb3288a37c078b4ccda6adc1d6ac2d1c8990572b3de4f767ad72eb |
|
MD5 | 992910e7eac7847516f107ef4f9b792b |
|
BLAKE2b-256 | f2d6d41a5628dc2166150b9fa2f7ad812ec3a125aab25d957bf95cd2dbc54ae4 |