Код: Выделить всё
.
├── foo
│ ├── __init__.py
│ └── classic.py
├── foo-stubs
│ ├── __init__.pyi
│ └── classic.pyi
├── pyproject.toml
└── t.py
< /code>
Содержание: < /p>
$ cat foo/__init__.py
from foo.classic import my_func
$ cat foo/classic.py
def my_func(a):
return 3
$ cat foo-stubs/__init__.pyi
from typing import Any
from foo.classic import my_func
__all__ = ['my_func']
$ cat foo-stubs/classic.pyi
from typing import Any
def my_func(a: Any) -> int: ...
$ cat pyproject.toml
[build-system]
requires = ["hatchling"]
build-backend = "hatchling.build"
[project]
name = "foo"
version = "0.1.0"
requires-python = ">=3.9"
Код: Выделить всё
from foo import my_func
reveal_type(my_func)
Код: Выделить всё
t.py:3: note: Revealed type is "def (a: Any) -> Any"
Success: no issues found in 1 source file
< /code>
но ... почему? Разве это не должно быть обнаружено как def (a: ance) -> buldins.int
, однако, не может быть поставлен в зависимости от STUBSUREDEDELEVERTELEVERCEUDEDELEVERICELICTIBUTELEVERICELICTICEBRIBUTELENTELEVELICELEVELICELICELIGEDELED. Третьи стороны также могут найти этот метод полезным, если они хотят распространять файлы STUB. Имя пакета STUB должно следовать схеме Foopkg-Stubs для типовых заглушек для пакета с именем foopkg.
Подробнее здесь: https://stackoverflow.com/questions/796 ... bs-package