跳转到主要内容

用于访问typeshed中存根的库。

项目描述

此项目提供了一种从typeshedPEP 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日)

  • 初始发布

项目详情


下载文件

下载适合您平台的项目文件。如果您不确定要选择哪个,请了解有关 安装包 的更多信息。

源分布

typeshed_client-2.7.0.tar.gz (433.6 KB 查看散列值

上传时间 源代码

构建分布

typeshed_client-2.7.0-py3-none-any.whl (624.4 KB 查看散列值

上传时间 Python 3

支持者