Py26、Py32和PyPy3的链映射的backport/clone。
chainmap的Python项目详细描述
这个模块是一个polyfill, 为最近版本的python实现ChainMap 拥有collections.ChainMap–即python 2.6、python 3.2和pypy3 基于Python3.2的版本。(它也将在Python2.7上按预期工作, pypy和python 3.3+,但是在那里并不需要它,因为那些版本 collections模块包含良好的ChainMap实现。)
这个包的代码是从Python3.5源代码中派生出来的, (尤其是collections和reprlib模块)。有几个变化 确保了Python2.6的兼容性,并且测试和打包 补充。
典型用法:
from chainmap import ChainMap
如果您希望在以下情况下优先从python标准库导入 ChainMap在那里可用:
try: from collections import ChainMap except ImportError: from chainmap import ChainMap
请看the standard documentation 有关如何使用ChainMap的详细信息。
如果您不确定为什么有人会使用ChainMap,那么它们对于 管理“嵌套”上下文和“覆盖”。参见Myoptions、quoter和say包,它们广泛用于 灵活的期权处理。您可以在Context class中找到类似的用法 Django的模板引擎。
注释
- 自动多版本测试管理 pytest, pytest-cov, coverage,和 tox。 用pyroma包装绒布。
- 感谢travis ci,它成功地为所有 相当晚的python模型版本:2.6、2.7、3.2、3.3、3.4、3.5、3.6, 和3.7,以及pypy 5.8.0(基本上是python 2.7.13)和pypy35.10.1 (对应于Python3.5.3)。
- 作者,Jonathan Eunice或 @jeunice on Twitter 欢迎您的意见和建议。
安装
要安装或升级到最新版本:
pip install -U chainmap
到特定python版本下的easy_install(本例中为3.3):
python3.3 -m easy_install --upgrade chainmap
(您可能需要在它们前面加上sudo来授权 安装。在没有超级用户权限的环境中,您可能希望 使用pip的--user选项,只为单个用户安装,而不是 而不是整个系统。)