将 __future__ 注释回退到 python<3.7
项目描述
future-annotations
将 __future__ 注释回退到 python<3.7。
安装
pip install future-annotations
使用
在文件的顶部包含以下编码cookie(如果已经存在 utf-8 cookie,则替换它)
# -*- coding: future_annotations -*-
然后像往常一样编写 python3.7+ 前向注释代码!
# -*- coding: future_annotations -*-
class C:
@classmethod
def make(cls) -> C:
return cls()
print(C.make())
$ python3.6 main.py
<__main__.C object at 0x7fb50825dd90>
$ mypy main.py
Success: no issues found in 1 source file
显示转换后的源代码
future-annotations
还包括一个命令行界面来显示转换后的源代码。
$ future-annotations-show main.py
# ****************************** -*-
class C:
@classmethod
def make(cls) -> 'C':
return cls()
print(C.make())
这是如何工作的?
future-annotations
有两个部分
- 一个与 UTF-8 兼容的
codec
,它执行源操作- 该
codec
首先使用 UTF-8 编码解码源字节 - 然后该
codec
利用 tokenize-rt 重写注释。
- 该
- 一个
.pth
文件,它在解释器启动时注册一个编码器。
如果你不使用正常的 site
注册
在设置(如 aws lambda)中,你使用 PYTHONPATH
或 sys.path
而不是真正安装的包,上面的 .pth
魔法将不起作用。
在这种情况下,你需要在非注释包装器中手动初始化 future-annotations
。例如
import future_annotations
future_annotations.register()
from actual_main import main
if __name__ == '__main__':
exit(main())
你可能还喜欢
项目详情
下载文件
下载适用于您平台的文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。
源分发
future_annotations-1.0.0.tar.gz (5.6 kB 查看哈希值)
构建分发
关闭
future_annotations-1.0.0.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | c707d19f7c74e08d9e67b310fd6a7438ff510ba5cbfb7334695627f8f69c6378 |
|
MD5 | 19897525a7f4dfe2df9e14e494b6e233 |
|
BLAKE2b-256 | 453a168feb6471a3142b1a501947e2f45afbbe9753e44f9d05317553ad7c04c0 |
关闭
future_annotations-1.0.0-py2.py3-none-any.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | a38cc5d9602181a7eb04550d34644508a63e5550c82c4b45b28b86923be203d2 |
|
MD5 | 68c4c03370fd13fc71d459dc2d996a89 |
|
BLAKE2b-256 | 2aa695dd5f6dd2a785d69fa2fd2c7c217c13a6eb9c1f37eddc232eb11bfd8fa7 |