2023-01-12 02:49:58 +02:00
|
|
|
[build-system]
|
|
|
|
|
requires = ["hatchling"]
|
|
|
|
|
build-backend = "hatchling.build"
|
|
|
|
|
|
|
|
|
|
[project]
|
2019-11-15 12:18:21 +02:00
|
|
|
name = "aiogram"
|
2023-01-12 02:49:58 +02:00
|
|
|
description = 'Modern and fully asynchronous framework for Telegram Bot API'
|
|
|
|
|
readme = "README.rst"
|
|
|
|
|
requires-python = ">=3.8"
|
|
|
|
|
license = "MIT"
|
2021-10-11 01:26:41 +03:00
|
|
|
authors = [
|
2023-01-12 02:49:58 +02:00
|
|
|
{ name = "Alex Root Junior", email = "jroot.junior@gmail.com" },
|
2021-10-11 01:26:41 +03:00
|
|
|
]
|
|
|
|
|
maintainers = [
|
2023-01-12 02:49:58 +02:00
|
|
|
{ name = "Alex Root Junior", email = "jroot.junior@gmail.com" },
|
2021-10-11 01:26:41 +03:00
|
|
|
]
|
2020-01-22 00:38:36 +02:00
|
|
|
keywords = [
|
2021-01-26 21:20:52 +02:00
|
|
|
"telegram",
|
|
|
|
|
"bot",
|
|
|
|
|
"api",
|
|
|
|
|
"framework",
|
|
|
|
|
"wrapper",
|
|
|
|
|
"asyncio",
|
2020-01-22 00:38:36 +02:00
|
|
|
]
|
2019-11-18 18:05:47 +02:00
|
|
|
classifiers = [
|
2021-12-12 19:06:29 +02:00
|
|
|
"License :: OSI Approved :: MIT License",
|
2023-08-02 21:32:15 +03:00
|
|
|
"Development Status :: 5 - Production/Stable",
|
2021-01-26 21:20:52 +02:00
|
|
|
"Environment :: Console",
|
|
|
|
|
"Framework :: AsyncIO",
|
2021-12-12 19:06:29 +02:00
|
|
|
"Typing :: Typed",
|
2021-01-26 21:20:52 +02:00
|
|
|
"Intended Audience :: Developers",
|
|
|
|
|
"Intended Audience :: System Administrators",
|
|
|
|
|
"Programming Language :: Python :: 3.8",
|
|
|
|
|
"Programming Language :: Python :: 3.9",
|
2021-10-06 22:59:23 +03:00
|
|
|
"Programming Language :: Python :: 3.10",
|
2022-10-26 22:22:44 +03:00
|
|
|
"Programming Language :: Python :: 3.11",
|
2022-10-02 18:24:26 +03:00
|
|
|
"Programming Language :: Python :: Implementation :: PyPy",
|
2021-01-26 21:20:52 +02:00
|
|
|
"Topic :: Software Development :: Libraries :: Application Frameworks",
|
2022-10-02 18:24:26 +03:00
|
|
|
"Topic :: Software Development :: Libraries :: Python Modules",
|
|
|
|
|
"Topic :: Communications :: Chat",
|
2019-11-18 18:05:47 +02:00
|
|
|
]
|
2023-01-12 02:49:58 +02:00
|
|
|
dependencies = [
|
2023-10-01 16:22:26 +03:00
|
|
|
"magic-filter>=1.0.12,<1.1",
|
2023-07-28 21:54:09 +03:00
|
|
|
"aiohttp~=3.8.5",
|
2023-11-14 13:35:37 +03:00
|
|
|
"pydantic>=2.4.1,<2.6",
|
2023-10-01 16:22:26 +03:00
|
|
|
"aiofiles~=23.2.1",
|
2023-07-28 21:54:09 +03:00
|
|
|
"certifi>=2023.7.22",
|
2023-10-28 23:09:30 +03:00
|
|
|
"typing-extensions>=4.7.0,<=5.0",
|
2023-01-12 02:49:58 +02:00
|
|
|
]
|
|
|
|
|
dynamic = ["version"]
|
|
|
|
|
|
|
|
|
|
[tool.hatch.version]
|
2023-06-25 01:39:26 +03:00
|
|
|
path = "aiogram/__meta__.py"
|
2023-01-12 02:49:58 +02:00
|
|
|
|
|
|
|
|
[project.optional-dependencies]
|
|
|
|
|
fast = [
|
|
|
|
|
"uvloop>=0.17.0; (sys_platform == 'darwin' or sys_platform == 'linux') and platform_python_implementation != 'PyPy'",
|
2023-10-01 16:22:26 +03:00
|
|
|
"aiodns>=3.0.0",
|
2023-01-12 02:49:58 +02:00
|
|
|
]
|
|
|
|
|
redis = [
|
2023-10-01 16:22:26 +03:00
|
|
|
"redis[hiredis]~=5.0.1",
|
2023-01-12 02:49:58 +02:00
|
|
|
]
|
|
|
|
|
proxy = [
|
2023-10-01 16:22:26 +03:00
|
|
|
"aiohttp-socks~=0.8.3",
|
2023-01-12 02:49:58 +02:00
|
|
|
]
|
|
|
|
|
i18n = [
|
2023-10-21 21:44:52 +03:00
|
|
|
"Babel~=2.13.0",
|
2023-01-12 02:49:58 +02:00
|
|
|
]
|
2023-08-16 22:00:11 +03:00
|
|
|
cli = [
|
2023-10-01 16:22:26 +03:00
|
|
|
"aiogram-cli~=1.0.3",
|
2023-08-16 22:00:11 +03:00
|
|
|
]
|
2023-01-12 02:49:58 +02:00
|
|
|
test = [
|
2023-10-01 16:22:26 +03:00
|
|
|
"pytest~=7.4.2",
|
|
|
|
|
"pytest-html~=4.0.2",
|
|
|
|
|
"pytest-asyncio~=0.21.1",
|
2023-01-12 02:49:58 +02:00
|
|
|
"pytest-lazy-fixture~=0.6.3",
|
2023-10-21 21:44:52 +03:00
|
|
|
"pytest-mock~=3.12.0",
|
2023-10-01 16:22:26 +03:00
|
|
|
"pytest-mypy~=0.10.3",
|
2023-10-01 15:28:54 +03:00
|
|
|
"pytest-cov~=4.1.0",
|
2023-10-01 16:22:26 +03:00
|
|
|
"pytest-aiohttp~=1.0.5",
|
2023-01-12 02:49:58 +02:00
|
|
|
"aresponses~=2.1.6",
|
2023-10-01 15:28:54 +03:00
|
|
|
"pytz~=2023.3",
|
2023-10-01 16:22:26 +03:00
|
|
|
"pycryptodomex~=3.19.0",
|
2023-01-12 02:49:58 +02:00
|
|
|
]
|
|
|
|
|
docs = [
|
2023-10-01 16:22:26 +03:00
|
|
|
"Sphinx~=7.2.6",
|
|
|
|
|
"sphinx-intl~=2.1.0",
|
2023-01-12 02:49:58 +02:00
|
|
|
"sphinx-autobuild~=2021.3.14",
|
2023-07-28 21:54:09 +03:00
|
|
|
"sphinx-copybutton~=0.5.2",
|
2023-10-01 16:22:26 +03:00
|
|
|
"furo~=2023.9.10",
|
2023-01-12 02:49:58 +02:00
|
|
|
"Sphinx-Substitution-Extensions~=2022.2.16",
|
2023-07-28 21:54:09 +03:00
|
|
|
"towncrier~=23.6.0",
|
2023-10-01 16:22:26 +03:00
|
|
|
"pygments~=2.16.1",
|
|
|
|
|
"pymdown-extensions~=10.3",
|
2023-07-28 21:54:09 +03:00
|
|
|
"markdown-include~=0.8.1",
|
2023-10-01 16:22:26 +03:00
|
|
|
"Pygments~=2.16.1",
|
2023-07-28 21:54:09 +03:00
|
|
|
"sphinxcontrib-towncrier~=0.3.2a0",
|
2023-01-12 02:49:58 +02:00
|
|
|
]
|
|
|
|
|
dev = [
|
2023-10-21 21:44:52 +03:00
|
|
|
"black~=23.10.0",
|
2023-10-01 16:22:26 +03:00
|
|
|
"isort~=5.12.0",
|
2023-10-21 21:44:52 +03:00
|
|
|
"ruff~=0.1.1",
|
|
|
|
|
"mypy~=1.6.1",
|
2023-01-12 02:49:58 +02:00
|
|
|
"toml~=0.10.2",
|
2023-10-21 21:44:52 +03:00
|
|
|
"pre-commit~=3.5.0",
|
2023-10-01 16:22:26 +03:00
|
|
|
"packaging~=23.1",
|
2023-01-12 02:49:58 +02:00
|
|
|
]
|
|
|
|
|
|
|
|
|
|
[project.urls]
|
|
|
|
|
Homepage = "https://aiogram.dev/"
|
|
|
|
|
Documentation = "https://docs.aiogram.dev/"
|
|
|
|
|
Repository = "https://github.com/aiogram/aiogram/"
|
|
|
|
|
|
|
|
|
|
[tool.hatch.envs.default]
|
|
|
|
|
features = [
|
|
|
|
|
"dev",
|
|
|
|
|
"fast",
|
|
|
|
|
"redis",
|
|
|
|
|
"proxy",
|
|
|
|
|
"i18n",
|
2023-08-16 22:00:11 +03:00
|
|
|
"cli",
|
2023-01-12 02:49:58 +02:00
|
|
|
]
|
|
|
|
|
post-install-commands = [
|
|
|
|
|
"pre-commit install",
|
|
|
|
|
]
|
|
|
|
|
|
|
|
|
|
[tool.hatch.envs.default.scripts]
|
|
|
|
|
reformat = [
|
|
|
|
|
"black aiogram tests",
|
|
|
|
|
"isort aiogram tests",
|
|
|
|
|
]
|
|
|
|
|
lint = "ruff aiogram"
|
|
|
|
|
|
|
|
|
|
[tool.hatch.envs.docs]
|
|
|
|
|
features = [
|
|
|
|
|
"fast",
|
|
|
|
|
"redis",
|
|
|
|
|
"proxy",
|
|
|
|
|
"i18n",
|
|
|
|
|
"docs",
|
2023-08-16 22:00:11 +03:00
|
|
|
"cli",
|
2023-01-12 02:49:58 +02:00
|
|
|
]
|
|
|
|
|
[tool.hatch.envs.docs.scripts]
|
|
|
|
|
serve = "sphinx-autobuild --watch aiogram/ --watch CHANGELOG.rst --watch README.rst docs/ docs/_build/ {args}"
|
|
|
|
|
|
|
|
|
|
[tool.hatch.envs.dev]
|
2023-03-11 20:46:36 +02:00
|
|
|
python = "3.11"
|
2023-01-12 02:49:58 +02:00
|
|
|
features = [
|
|
|
|
|
"dev",
|
|
|
|
|
"fast",
|
|
|
|
|
"redis",
|
|
|
|
|
"proxy",
|
|
|
|
|
"i18n",
|
|
|
|
|
"test",
|
2023-08-16 22:00:11 +03:00
|
|
|
"cli",
|
2023-01-12 02:49:58 +02:00
|
|
|
]
|
|
|
|
|
|
2023-04-21 00:17:06 +03:00
|
|
|
[tool.hatch.envs.dev.scripts]
|
|
|
|
|
update = [
|
|
|
|
|
"butcher parse",
|
|
|
|
|
"butcher refresh",
|
|
|
|
|
"butcher apply all",
|
|
|
|
|
]
|
|
|
|
|
|
2023-01-12 02:49:58 +02:00
|
|
|
[tool.hatch.envs.test]
|
|
|
|
|
features = [
|
|
|
|
|
"fast",
|
|
|
|
|
"redis",
|
|
|
|
|
"proxy",
|
|
|
|
|
"i18n",
|
|
|
|
|
"test",
|
2023-08-16 22:00:11 +03:00
|
|
|
"cli",
|
2023-01-12 02:49:58 +02:00
|
|
|
]
|
|
|
|
|
|
|
|
|
|
[tool.hatch.envs.test.scripts]
|
|
|
|
|
cov = [
|
|
|
|
|
"pytest --cov-config pyproject.toml --cov=aiogram --html=reports/py{matrix:python}/tests/index.html {args}",
|
|
|
|
|
"coverage html -d reports/py{matrix:python}/coverage",
|
|
|
|
|
]
|
|
|
|
|
cov-redis = [
|
|
|
|
|
"pytest --cov-config pyproject.toml --cov=aiogram --html=reports/py{matrix:python}/tests/index.html --redis {env:REDIS_DNS:'redis://localhost:6379'} {args}",
|
|
|
|
|
"coverage html -d reports/py{matrix:python}/coverage",
|
|
|
|
|
]
|
|
|
|
|
view-cov = "google-chrome-stable reports/py{matrix:python}/coverage/index.html"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
[[tool.hatch.envs.test.matrix]]
|
|
|
|
|
python = ["38", "39", "310", "311"]
|
|
|
|
|
|
|
|
|
|
[tool.ruff]
|
|
|
|
|
line-length = 99
|
|
|
|
|
select = [
|
|
|
|
|
# "C", # TODO: mccabe - code complecity
|
|
|
|
|
"C4",
|
|
|
|
|
"E",
|
|
|
|
|
"F",
|
|
|
|
|
"T10",
|
|
|
|
|
"T20",
|
|
|
|
|
"Q",
|
|
|
|
|
"RET",
|
|
|
|
|
]
|
|
|
|
|
ignore = [
|
|
|
|
|
"F401"
|
|
|
|
|
]
|
|
|
|
|
src = ["aiogram", "tests"]
|
|
|
|
|
exclude = [
|
|
|
|
|
".git",
|
|
|
|
|
"build",
|
|
|
|
|
"dist",
|
|
|
|
|
"venv",
|
|
|
|
|
".venv",
|
|
|
|
|
"docs",
|
|
|
|
|
"tests",
|
|
|
|
|
"dev",
|
|
|
|
|
"scripts",
|
|
|
|
|
"*.egg-info",
|
|
|
|
|
]
|
|
|
|
|
target-version = "py310"
|
|
|
|
|
|
|
|
|
|
[tool.ruff.isort]
|
|
|
|
|
known-first-party = [
|
|
|
|
|
"aiogram",
|
|
|
|
|
"finite_state_machine",
|
|
|
|
|
"handlers",
|
|
|
|
|
"routes",
|
|
|
|
|
]
|
|
|
|
|
|
|
|
|
|
[tool.ruff.per-file-ignores]
|
|
|
|
|
"aiogram/client/bot.py" = ["E501"]
|
|
|
|
|
"aiogram/types/*" = ["E501"]
|
|
|
|
|
"aiogram/methods/*" = ["E501"]
|
|
|
|
|
"aiogram/enums/*" = ["E501"]
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
[tool.pytest.ini_options]
|
|
|
|
|
asyncio_mode = "auto"
|
|
|
|
|
testpaths = [
|
|
|
|
|
"tests",
|
|
|
|
|
]
|
2023-10-01 15:28:54 +03:00
|
|
|
filterwarnings = [
|
|
|
|
|
"error",
|
|
|
|
|
"ignore::pytest.PytestUnraisableExceptionWarning",
|
|
|
|
|
]
|
2023-01-12 02:49:58 +02:00
|
|
|
|
|
|
|
|
[tool.coverage.run]
|
|
|
|
|
branch = false
|
|
|
|
|
parallel = true
|
|
|
|
|
omit = [
|
|
|
|
|
"aiogram/__about__.py",
|
|
|
|
|
]
|
|
|
|
|
|
|
|
|
|
[tool.coverage.report]
|
|
|
|
|
exclude_lines = [
|
|
|
|
|
"if __name__ == .__main__.:",
|
|
|
|
|
"pragma: no cover",
|
|
|
|
|
"if TYPE_CHECKING:",
|
|
|
|
|
"@abstractmethod",
|
|
|
|
|
"@overload",
|
|
|
|
|
]
|
|
|
|
|
|
|
|
|
|
[tool.mypy]
|
|
|
|
|
plugins = "pydantic.mypy"
|
|
|
|
|
python_version = "3.8"
|
|
|
|
|
show_error_codes = true
|
|
|
|
|
show_error_context = true
|
|
|
|
|
pretty = true
|
|
|
|
|
ignore_missing_imports = false
|
|
|
|
|
warn_unused_configs = true
|
|
|
|
|
disallow_subclassing_any = true
|
|
|
|
|
disallow_any_generics = true
|
|
|
|
|
disallow_untyped_calls = true
|
|
|
|
|
disallow_untyped_defs = true
|
|
|
|
|
disallow_incomplete_defs = true
|
|
|
|
|
check_untyped_defs = true
|
|
|
|
|
disallow_untyped_decorators = true
|
|
|
|
|
no_implicit_optional = true
|
|
|
|
|
warn_redundant_casts = true
|
|
|
|
|
warn_unused_ignores = true
|
|
|
|
|
warn_return_any = true
|
|
|
|
|
follow_imports_for_stubs = true
|
|
|
|
|
namespace_packages = true
|
|
|
|
|
show_absolute_path = true
|
|
|
|
|
|
|
|
|
|
[[tool.mypy.overrides]]
|
|
|
|
|
module = [
|
|
|
|
|
"aiofiles",
|
|
|
|
|
"async_lru",
|
|
|
|
|
"uvloop",
|
|
|
|
|
"redis.*",
|
|
|
|
|
"babel.*",
|
|
|
|
|
]
|
|
|
|
|
ignore_missing_imports = true
|
|
|
|
|
disallow_untyped_defs = true
|
2019-11-20 01:32:15 +02:00
|
|
|
|
2019-06-29 19:53:18 +03:00
|
|
|
[tool.black]
|
|
|
|
|
line-length = 99
|
2023-01-12 02:49:58 +02:00
|
|
|
target-version = ['py38', 'py39', 'py310', 'py311']
|
2019-06-29 19:53:18 +03:00
|
|
|
exclude = '''
|
|
|
|
|
(
|
2019-11-15 12:18:21 +02:00
|
|
|
\.eggs
|
|
|
|
|
| \.git
|
|
|
|
|
| \.tox
|
|
|
|
|
| build
|
|
|
|
|
| dist
|
|
|
|
|
| venv
|
|
|
|
|
| docs
|
2019-06-29 19:53:18 +03:00
|
|
|
)
|
2019-11-15 12:18:21 +02:00
|
|
|
'''
|
|
|
|
|
|
|
|
|
|
[tool.isort]
|
2023-01-12 02:49:58 +02:00
|
|
|
profile = "black"
|
2019-11-15 12:18:21 +02:00
|
|
|
|
2021-08-01 19:08:03 +03:00
|
|
|
[tool.towncrier]
|
|
|
|
|
package = "aiogram"
|
|
|
|
|
filename = "CHANGES.rst"
|
|
|
|
|
directory = "CHANGES/"
|
|
|
|
|
template = "CHANGES/.template.rst.jinja2"
|
2021-08-03 23:50:10 +03:00
|
|
|
issue_format = "`#{issue} <https://github.com/aiogram/aiogram/issues/{issue}>`_"
|
|
|
|
|
|
|
|
|
|
[[tool.towncrier.section]]
|
|
|
|
|
path = ""
|
|
|
|
|
|
|
|
|
|
[[tool.towncrier.type]]
|
|
|
|
|
directory = "feature"
|
|
|
|
|
name = "Features"
|
|
|
|
|
showcontent = true
|
|
|
|
|
|
|
|
|
|
[[tool.towncrier.type]]
|
|
|
|
|
directory = "bugfix"
|
|
|
|
|
name = "Bugfixes"
|
|
|
|
|
showcontent = true
|
|
|
|
|
|
|
|
|
|
[[tool.towncrier.type]]
|
|
|
|
|
directory = "doc"
|
|
|
|
|
name = "Improved Documentation"
|
|
|
|
|
showcontent = true
|
|
|
|
|
|
|
|
|
|
[[tool.towncrier.type]]
|
|
|
|
|
directory = "removal"
|
|
|
|
|
name = "Deprecations and Removals"
|
|
|
|
|
showcontent = true
|
|
|
|
|
|
|
|
|
|
[[tool.towncrier.type]]
|
|
|
|
|
directory = "misc"
|
|
|
|
|
name = "Misc"
|
|
|
|
|
showcontent = true
|