用于访问typeshed中存根的库。
项目描述
此项目提供了一种从typeshed和PEP 561存根软件包中检索信息的方法。
示例用例
查找特定模块的存根文件的路径。
查找存根中定义的名称。
查找在存根中定义特定名称的AST节点。
typeshed_client可能对以下项目有用的项目包括
想要访问typeshed注释的静态分析器。
检查存根正确性的工具。
使用typeshed进行运行时内省的工具。
安装
typeshed_client适用于所有支持的Python版本。要安装它,请运行python3 -m pip install typeshed_client。
查找存根
typeshed_client.finder模块提供了一些函数,用于根据模块名称查找存根文件。
提供的函数
get_search_context(*, typeshed: Optional[Path] = None, search_path: Optional[Sequence[Path]] = None, python_executable: Optional[str] = None, version: Optional[PythonVersion] = None, platform: str = sys.platform) -> SearchContext: 返回一个 SearchContext
typeshed_client.get_stub_file(module_name: str, *, search_context: Optional[SearchContext] = None) -> Optional[Path]: 返回模块 stub 在 typeshed 中的路径。例如,get_stub_file('typing', search_context=get_search_context(version=(2, 7))) 可能返回 Path('/path/to/typeshed/stdlib/@python2/typing.pyi')。如果没有该模块的 stub,则返回 None。
typeshed_client.get_stub_ast 具有相同的接口,但返回一个 AST 对象(使用标准库 ast 模块解析)。
从 stubs 收集名称
typeshed_client.parser 收集 stub 中定义的名称。它提供
typeshed_client.get_stub_names(module_name: str, *, search_context: Optional[SearchContext] = None) -> Optional[NameDict] 使用给定的 Python 版本和平台收集模块中定义的名称。它返回一个 NameDict,这是一个将模块中定义的对象名称映射到 NameInfo 记录的字典。
typeshed_client.NameInfo 是一个定义为
class NameInfo(NamedTuple): name: str is_exported: bool ast: Union[ast3.AST, ImportedName, OverloadedName] child_nodes: Optional[NameDict] = None
name 是对象的名称。 is_exported 表示名称是否是 stub 公共接口的一部分。 ast 是定义名称的 AST 节点,或者如果是从另一个模块导入或重载的名称,则是一个不同的结构。对于类, child_nodes 是一个包含类内部定义的名称的字典。
将名称解析为其定义
此包的第三个组件 typeshed_client.resolver,将名称映射到其定义,即使这些名称定义在其他 stub 中。
要使用解析器,您需要实例化 typeshed_client.Resolver 类。例如,给定 resolver = typeshed_client.Resolver(),您可以调用 resolver.get_fully_qualified_name('collections.Set') 来检索包含在 typeshed 中定义 collections.Set 的 AST 节点的 NameInfo。
变更日志
版本 2.7.0(2024 年 7 月 16 日)
更新内置 typeshed
版本 2.6.0(2024 年 7 月 12 日)
更新内置 typeshed
支持 stubs 中的 try 块
声明支持 Python 3.13
处理模块搜索路径上的条目不可访问或不存在的情况
修复由于使用已弃用的 AST 类而引起的警告
版本 2.5.1(2024 年 2 月 25 日)
修复仍然错误地声明支持 Python 3.7 的打包元数据
版本 2.5.0(2024 年 2 月 25 日)
更新内置 typeshed
停止支持 Python 3.7
typeshed_client.finder.get_search_path() 现已弃用,因为它不再有用
版本 2.4.0(2023 年 9 月 29 日)
更新内置 typeshed
声明支持 Python 3.12
版本 2.3.0(2023 年 4 月 30 日)
更新内置 typeshed
支持 __all__.append 和 __all__.extend
版本 2.2.0(2023 年 1 月 24 日)
更新内置 typeshed
修复使用 if MYPY 导致的崩溃
修复 stubs 中对 import * 的错误处理
停止支持 Python 3.6(感谢 Alex Waygood)
版本 2.1.0(2022 年 11 月 5 日)
更新内置 typeshed
声明支持 Python 3.11
添加 typeshed_client.resolver.Module.get_dunder_all 来获取 __all__ 的内容
添加对 __all__ += 语法的支持
使用 mypy(感谢 Nicolas)进行代码类型检查
版本 2.0.5(2022 年 4 月 17 日)
更新内置 typeshed
版本 2.0.4(2022 年 3 月 10 日)
更新内置 typeshed
版本 2.0.3(2022年2月2日)
更新内置 typeshed
版本 2.0.2(2022年1月28日)
更新内置 typeshed
版本 2.0.1(2022年1月14日)
更新内置 typeshed
版本 2.0.0(2021年12月22日)
重大变更:使用 ast 代替 typed_ast 进行解析
版本 1.2.3(2021年12月12日)
更新内置 typeshed
删除重复导入名称时的噪音警告
修复在 Python 3 中对存在于 Python 2 中的模块的 get_all_stub_files() 函数
版本 1.2.2(2021年12月9日)
进一步修复相对导入解析
版本 1.2.1(2021年12月9日)
修复相对导入解析的bug
更新内置 typeshed
版本 1.2.0(2021年12月6日)
支持重载方法
更新内置 typeshed
版本 1.1.4(2021年12月6日)
更新捆绑的typeshed
版本 1.1.3(2021年11月14日)
更新内置 typeshed
声明支持Python 3.10
修复对 mypy_extensions 的未声明依赖
版本 1.1.2(2021年11月5日)
更新内置 typeshed
版本 1.1.1(2021年7月31日)
更新内置 typeshed
改进遇到重复名称时的错误信息
版本 1.1.0(2021年6月24日)
更新内置 typeshed
处理缺少 @python2 目录
允许在 VERSIONS 文件中添加注释
版本 1.0.2(2021年5月5日)
处理typeshed VERSIONS文件中的版本范围
更新内置 typeshed
版本 1.0.1(2021年4月24日)
更新内置 typeshed
版本 1.0.0(2021年4月11日)
改进docstrings
版本 1.0.0rc1(2021年4月11日)
支持新的typeshed布局
支持PEP 561包
直接捆绑typeshed,而不是依赖于mypy
版本 0.4(2019年12月2日)
性能改进
代码质量改进
版本 0.3(2019年11月23日)
更新typeshed的位置以适应更新的mypy版本
版本 0.2(2017年5月25日)
支持使用自定义typeshed目录
添加 get_all_stub_files()
处理 from module import *
bug修复
版本 0.1(2017年5月4日)
初始发布
项目详情
下载文件
下载适合您平台的项目文件。如果您不确定要选择哪个,请了解有关 安装包 的更多信息。