python 3和python 2的输入工具箱。

pytypes的Python项目详细描述


欢迎使用pytypes项目

pytypes是一个输入工具箱w.r.t. pep 484 (PEP) 在路线图上, 526 , 稍后还会 544 如果 接受)。

它的主要功能是

  • @typechecked 用于运行时类型检查的decorator,支持 存根文件 类型评论
  • @override 声明存在与类型兼容的父方法的decorator
  • @annotations decorator将类型信息从存根文件或类型注释转换为 \u annotations
  • @typelogged decorator在运行时观察函数和方法调用,并从获取的类型信息生成存根文件
  • 服务函数,用于在整个模块范围内,甚至在全局范围内应用这些装饰器,即在运行时范围内
  • 打字检查也可以以无装饰的方式进行(对调试器更友好)
  • 上面所有的修饰符都能顺利地与oop一起工作,即使用方法、静态方法、类方法和属性,即使类是嵌套的
  • 将存根文件转换为符合Python2.7的格式
  • 许多关于类型的实用函数,例如符合Python2.7的实用函数,以及 获取类型提示的实际功能实现
  • 对所有这些功能的完整Python2.7支持

将来的另一个目标是在jython上运行时与java类型系统集成。除此之外,还计划使用一些生成器实用程序为python框架生成类型安全的java绑定。

在更广泛的意义上,pep 484样式的类型注释可以用于构建类型安全接口,从而允许其他编程语言调用python代码(类似于反向ffi)。从这个意义上说,项目名是指"cTypes",它提供C的Python绑定。

巨蟒2.7、3.5、3.6

pytypes的所有描述的特性都得到了仔细的实现,因此它们在cpython 3.5、3.6、2.7和jython 2.7.1上都同样可行(其他的解释器也可以工作,但是还没有测试)。 对于Python2.7,pytypes完全支持通过类型注释来进行类型注释。 它还支持Python3.5代码中的Python2.7样式的类型注释,以便更轻松地进行2.7/3.5多版本开发。

为什么还要编写另一个运行时类型检查修饰符?

以前也有运行时类型检查的方法。然而,它们大多早于pep 484,或者缺少一些关键的特性,比如支持python 2.7或支持stubfile。而且,它们都没有使用类型检查重写装饰器。重写装饰器有不同的方法,但这些方法通常根本不考虑pep 484。所以我们决定现在是时候开发一个新的运行时类型检查框架了,这个框架旨在支持来自他以根为根,包括其广泛的特性,如(python 2.7-style-)类型的注释和存根文件。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java希望直接扫描要上传到网页的文档   java JavaFX使对象可见,但不使用(忽略)点击   java LibGdx奇怪的纹理行为   java JavaFx ComboBox在第一次单击时未获得正确的值   api WebDav服务器库最好使用Java   java在Android中维护应用程序状态   java保存在Android中拖放RecyclerView后所做的更改我已经阅读了所有内容   无法读取项目中所需库tomcatembedwebsocket的java存档,或者该存档不是有效的ZIP文件   c#类在系统中有哪些关联?如何在UML中最好地表示它们?   java如何使用bazaar访问两台计算机上的同一文件夹   Java易失性与缓存一致性   java如何解决http11。校长:例外?   java liferaymavenplugin从maven Liferay 6.2.5(6.2 ga6)部署war   安卓的jar for java在哪里。木卫一。文件   java邻接矩阵中BFS的顺序是什么?   虚拟机如何从java启动linux虚拟机?   向DefaultListModel添加元素时java JList未更新   java JMSListener批注无法与REST服务一起使用   java DirectoryStream返回路径的顺序是什么?文件名,上次修改,文件大小?   java DropWizard Hibernate doc想说什么?