如果我编译一个正则表达式>>>type(re.compile(""))并且想将该正则表达式传递给一个函数并使用Mypy进行类型检查defmy_func(compiled_regex:_sre.SRE_Pattern):我遇到了这个问题>>>import_sre>>>from_sreimportSRE_PatternTraceback(mostrecentcalllast):File"",line1,inImportError:cannotimportname'SRE_Pattern'似乎您可以导入_sre但由于某些原因SRE_Pattern不可导入。 最佳答
一些背景知识,我基本上需要定义一个int包装类型,比如MyInt(在其他一些类中),以及另一个通用的Interval可以接受MyInt的类型对象以及其他类型的对象。由于Interval可接受的类型不要陷入整洁的层次结构,我认为这将是实验性Protocol的完美用例,在我的例子中需要几个方法和几个@classmethod秒。所有方法都返回一个“self类型”,即MyInt.my_method返回MyInt.这是一个MCVE:fromdataclassesimportdataclassfromtypingimportUnion,ClassVar,TypeVar,Generic,Typefr
因此,让我们从一个例子开始。假设我们有几种可以组合在一起的类型,假设我们使用__add__来实现这一点。不幸的是,由于无法控制的情况,所有内容都必须是“可空的”,因此我们被迫在各处使用Optional。fromtypingimportOptional,List,overloadclassFoo:value:intdef__init__(self,value:int)->None:self.value=valuedef__add__(self,other:'Foo')->'Optional[Foo]':result=self.value-other.valueifresult>42:re
新版本应该支持2.7,但是pip安装失败并在python3类型注释语法的一行上出现SyntaxError(这有点讽刺):Traceback(mostrecentcalllast):...frommypyimportgitFile"mypy/git.py",line10defis_git_repo(dir:str)->bool:^SyntaxError:invalidsyntax 最佳答案 您不能在Python2上运行Mypy。该项目的README对此有具体说明:YouneedPython3.2orlatertorunmypy.你ca
我正在尝试Python3.5引入的打字提示,但在使用本地stub作为mypy的打字提示时遇到了问题。我做的实验是创建kk.py包含deftype_check(a):pass另外,我把kk.pyi包含deftype_check(a:int):...在同一目录中。通过这种方式,我尝试通过将字符串传递给kk.py中的type_check来触发“incompatibletypesinassignment”的错误。但是,当我运行mypykk.py时,我没有收到任何错误。因此我尝试了mypydoc建议的另一种方法,即将环境变量MYPYPATH设置为~/some/path/stub并将kk.pyi放
我正在使用Python3.5.1和新发布的MyPyv0.4.1静态类型分析器。我有一些更复杂的代码,我已将其简化为重现错误所需的最简单的python类:classMyObject(object):def__init__(self,value:int=5)->None:self.value=valuedef__eq__(self,other:MyObject)->bool:returnself.value==other.value运行类型检查器mypytest.py产生以下错误:test.py:note:Inclass"MyObject":test.py:5:error:Argument
我正在尝试将我们在代码库中使用的模式提取到更通用、可重用的结构中。但是,我似乎无法获得与mypy一起使用的通用类型注释。这是我得到的:fromabcimport(ABC,abstractmethod)importasyncioimportcontextlibfromtypingimport(Any,Iterator,Generic,TypeVar)_TMsg=TypeVar('_TMsg')classMsgQueueExposer(ABC,Generic[_TMsg]):@abstractmethoddefsubscribe(self,subscriber:'MsgQueueSubsc
只是检查是否有人在收听,已经为`pandas`生成了一组可以正常工作的mypy/typeshedstub。我天真地在本地pandas安装上运行了stubgen,这产生了一些错误。我可以从我必须开始的事情开始,但希望其他人把球推得更远。(虽然有一张旧票stub,但在GitHub上没有明显的结果。) 最佳答案 到现在(2021年3月)有adedicatedpandasstubproject进行中。然而,它不是由pandas团队开发的(感谢@remeus指出)。data-science-types项目已弃用。在GitHub上theywri
我正在使用mypy在我的python项目中进行类型检查。我还使用PyYAML来读取和写入项目配置文件。不幸的是,在使用recommendedimportmechanismfromthePyYAMLdocumentation时这会在尝试导入native库的try/except子句中生成虚假错误:fromyamlimportload,dumptry:fromyamlimportCLoaderasLoader,CDumperasDumperexceptImportError:fromyamlimportLoader,Dumper在我的系统上CLoader和CDumper不存在,这导致错误er
我正在使用Python3.5和Mypy对我的脚本进行一些基本的静态检查。最近我重构了一些返回OrderedDict的方法,但是当我尝试使用指定了Key和Value类型的返回注解时遇到了“'type'objectisnotsubscriptable”错误。简化示例:#!/usr/bin/envpython3.5fromcollectionsimportOrderedDict#thisworksdeffoo()->OrderedDict:result=OrderedDict()#type:OrderedDict[str,int]result['foo']=123returnresult#t