跳转到主要内容

提供跨Python版本向前兼容性的模块

项目描述

https://img.shields.io/pypi/v/jaraco.compat.svg https://img.shields.io/pypi/pyversions/jaraco.compat.svg tests Ruff https://readthedocs.org/projects/jaracocompat/badge/?version=latest https://img.shields.io/badge/skeleton-2024-informational

Python包的前向兼容性,允许在标准库中可用之前借用未来构造。

♫ 它很快就会是未来。当使我很弱和奇怪的事情被工程化移除时,它不会总是这样。 ♫

用法

在您的Python代码中从适当的compat.pyXX模块导入函数。当一个包最终准备升级到pyXX以上时,可以轻松定位(使用grep)并用规范实现替换这些函数。

示例

假设您想在支持Python 2.5及以上的项目中使用namedtuple(在Python 2.6中引入)

from compat.py25 import namedtuple
MyTuple = namedtuple('MyTuple', 'a b c')
mt = MyTuple(1,2,3)

安装jaraco.compat后,此代码将在Python 2.5及以上版本上运行。当项目准备迁移到Python 2.6时,可以轻松grep py25并做出必要的替换,对代码的影响最小。在这种情况下

from collections import namedtuple
MyTuple = namedtuple('MyTuple', 'a b c')
mt = MyTuple(1,2,3)