mypy的额外类型和特性的集合

mypy-extras的Python项目详细描述


我的临时演员

wemake.servicestestcodecovPython Versionwemake-python-styleguide

特点

  • 提供一个自定义的mypy插件以增强其可能性
  • 提供新的类型,可以用我们的插件在你的程序中使用
  • 带注释的完全类型化并使用mypy检查PEP561 compatible

安装

pip install mypy-extras

您还需要configuremypy正确安装我们的自定义插件:

^{pr2}$

我们还建议使用相同的mypy设置we use。在

使用

属性

我们提供了一个特殊类型来获取其他类型的命名属性,如下所示:

fromtyping_extensionsimportLiteral# or typing on python3.8+frommypy_extrasimportAttrOfclassUser(object):defauth(self,username:str,password:str)->bool:returnFalse# Just an exampledefget_callback(user:User)->AttrOf[User,Literal['auth']]:returnuser.authuser:Userreveal_type(get_callback(user))# Revealed type is 'def (username: builtins.str, password: builtins.str) -> builtins.bool'

确保属性

我们可以确保对象上存在某些str属性:

frommypy_extrasimportensure_attrclassUser(object):policy='update'reveal_type(ensure_attr(User,'policy'))# Revealed type is 'Literal['policy']'reveal_type(ensure_attr(User,'missing'))# Error: attribute "missing" does not exist on type "User"

当我们对基于字符串字段的对象执行任何操作时,它非常有用:

DEFAULT_POLICY_FIELD:Final=ensure_attr(User,'policy')# typesafe# vsDEFAULT_POLICY_FIELD:Final='policy'# User can rename the field, and this will blow now!

许可证

MIT

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

推荐PyPI第三方库


热门话题
java程序执行后如何释放内存   java枚举在加载映像时引发错误   c#DateTime的等价物是什么。Java中的FromOADate()(Java中的double to Datetime)   java Jackson多态集合序列化分多个步骤进行,以避免类型擦除   基于Quicksort Java实现的Stackoverflow算法   java我可以唤醒由于调用DatagramSocket而被阻塞的线程。接收()?   java Android post高分辨率图像内存不足   java cxf jsonprovider忽略响应中的$sign   java JavaFX扩展属性值工厂   Java OpenGL顶点缓冲区对象不工作   尝试将Xaxis上的日期放入折线图时发生java错误   java FileOutputStream webdata=新FileOutputStream();   java如何停止使用反射创建单例类对象,即使我从私有构造函数抛出异常(不使用枚举)   如何在Java中生成一个随机数,但偏向于1个特定的数字   java获取XML元素的文本内容而不获取其子节点的文本内容   java如何在Android中以肖像模式设计10英寸平板电脑?   java将Selenium报告发送到电子邮件   java手动将Eclipse库移动到NetBeans   从Groovy实例化Java类