Mypy — на основе явного пакета и инструменты настройкиPython

Программы на Python
Ответить
Anonymous
 Mypy — на основе явного пакета и инструменты настройки

Сообщение Anonymous »

У меня есть проект, структурированный следующим образом:

Код: Выделить всё

.
├── hello
│   ├── __init__.py
│   └── animal.py
├── tests
│   ├── __init__.py
│   └── test_animal.py
├── README
└── pyproject.toml
Это просто личная библиотека Python, которую не нужно публиковать или распространять. Использование заключается в запуске pytest и mypy из корневого каталога.
Помимо прочего, pyproject.toml содержит следующие разделы:

Код: Выделить всё

[project.optional-dependencies]
test = [
"pytest",
]
lint = [
"ruff",
"mypy",
]

[tool.mypy]
exclude = [
'venv',
]
ignore_errors = false
warn_return_any = true
disallow_untyped_defs = true
Я устанавливаю зависимости локально следующим образом:

Код: Выделить всё

% $(brew --prefix python)/bin/python3 -m venv ./venv

% ./venv/bin/python -m pip install --upgrade pip '.[test]' '.[lint]'
Но мой GitHub CI выходит из строя со следующей ошибкой:

Код: Выделить всё

hello/__init__.py: error: Duplicate module named "hello" (also at "./build/lib/hello/__init__.py")
hello/__init__.py: note: See https://mypy.readthedocs.io/en/stable/running_mypy.html#mapping-file-paths-to-modules for more info
hello/__init__.py: note: Common resolutions include: a) using `--exclude` to avoid checking one of them, b) adding `__init__.py` somewhere, c) using `--explicit-package-bases` or adjusting MYPYPATH
Found 1 error in 1 file (errors prevented further checking)
Error: Process completed with exit code 2.
Как было предложено, запуск mypy с --explicit-package-bases решает эту проблему, но также добавляет следующий раздел в pyproject.toml.< /p>

Код: Выделить всё

[tool.setuptools]
py-modules = []
Я просмотрел документацию mypy и setuptools, но не уверен, какой из них лучше подходит для моих целей и зачем они вообще нужны. Как упоминалось ранее, я не пытаюсь публиковать или распространять это как пакет Python.
Какую из двух конфигураций рекомендуется использовать и почему?

Подробнее здесь: https://stackoverflow.com/questions/793 ... setuptools
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»