Новый стандарт конфигурации Python-пакетов, заменяющий setup.py. Определяет:
[build-system]
# Что нужно для сборки пакета
requires = ["setuptools>=45", "wheel"]
build-backend = "setuptools.build_meta"
[project]
# Основные метаданные пакета
name = "genshin-tools"
version = "0.1.0"
description = "Инструменты для расчётов в Genshin Impact"
readme = "README.md"
requires-python = ">=3.8"
license = {text = "MIT"}
authors = [
{name = "Your Name", email = "your.email@example.com"}
]
# Зависимости пакета
dependencies = [
"numpy>=1.20",
"pandas>=1.3.0",
]
[project.optional-dependencies]
# Дополнительные зависимости
test = ["pytest>=6.0"]
dev = ["black", "flake8"]
[project.urls]
# Ссылки на ресурсы проекта
Homepage = "https://github.com/username/genshin-tools"
Documentation = "https://genshin-tools.readthedocs.io"
[metadata]
# Дополнительные метаданные
description-file = README.md
long_description_content_type = text/markdown
[options]
# Настройки пакета
package_dir =
= src
packages = find:
python_requires = >=3.8
[options.packages.find]
# Где искать пакеты
where = src
[tool:pytest]
# Настройки для тестов
testpaths = tests
python_files = test_*.py
addopts = --verbose
[project.dependencies]
numpy = ">=1.20,<2.0" # От 1.20 до 2.0
pandas = "~=1.3.0" # Совместимые с 1.3.0 (1.3.*)
requests = "==2.26.0" # Только версия 2.26.0
matplotlib = ">=3.4" # 3.4 или выше
[project.optional-dependencies]
# Группы дополнительных зависимостей
visualization = [
"plotly>=5.0.0",
"seaborn>=0.11.0",
]
dev = [
"pytest>=6.0",
"black>=21.0",
"mypy>=0.910",
]
Создайте конфигурационные файлы для пакета работы с артефактами:
Подсказка: Пример базовой структуры:
[project]
name = "genshin-artifacts"
version = "0.1.0"
description = "Анализатор артефактов для Genshin Impact"
dependencies = [
"pandas>=1.3.0",
]
[project.optional-dependencies]
viz = ["plotly>=5.0.0"]
dev = ["pytest>=6.0"]