|
[tool.poetry] |
|
name = "telegram-bot-template" |
|
version = "2.3.5" |
|
description = "Best way to create a scalable telegram bot with analytics" |
|
homepage = "https://github.com/donBarbos/telegram-bot-template" |
|
repository = "https://github.com/donBarbos/telegram-bot-template" |
|
authors = ["donBarbos <[email protected]>"] |
|
license = "LGPL-v3.0" |
|
readme = "README.md" |
|
package-mode = false |
|
|
|
[tool.poetry.dependencies] |
|
python = "^3.10" |
|
sqlalchemy = "^2.0.37" |
|
pydantic = "^2.10.6" |
|
pydantic-settings = "^2.7.1" |
|
|
|
[tool.poetry.group.bot.dependencies] |
|
aiogram = "^3.17.0" |
|
asyncpg = "^0.30.0" |
|
redis = "^5.2.1" |
|
loguru = "^0.7.3" |
|
sentry-sdk = {extras = ["loguru"], version = "^2.20.0"} |
|
aiohttp = {extras = ["speedups"], version = "^3.11.12"} |
|
uvloop = "^0.21.0" |
|
babel = "^2.17.0" |
|
cachetools = "^5.5.1" |
|
orjson = "^3.10.15" |
|
alembic = "^1.14.1" |
|
prometheus-client = "^0.21.1" |
|
|
|
[tool.poetry.group.admin.dependencies] |
|
gunicorn = "^23.0.0" |
|
flask = "^3.1.0" |
|
flask-admin = "^1.6.1" |
|
flask-security-too = "^5.5.2" |
|
flask-caching = "^2.3.0" |
|
flask-babel = "^4.0.0" |
|
flask-sqlalchemy = "^3.1.1" |
|
psycopg2-binary = "^2.9.10" |
|
tablib = {extras = ["xlsx"], version = "^3.8.0"} |
|
|
|
[tool.poetry.group.dev.dependencies] |
|
ruff = "^0.9.4" |
|
mypy = "^1.15.0" |
|
pre-commit = "^4.1.0" |
|
types-cachetools = "^5.5.0.20240820" |
|
|
|
[tool.ruff] |
|
fix = true |
|
unsafe-fixes = true |
|
line-length = 120 |
|
lint.select = ["ALL"] |
|
lint.ignore = ["D", "ANN401", "FIX002", "COM812", "ISC001", "FBT001", "FBT002", "ERA", "ARG005", "PGH003", "A005"] |
|
cache-dir = "/tmp/ruff-cache/" |
|
extend-exclude = ["logs", "configs", "migrations"] |
|
|
|
[tool.ruff.lint.isort] |
|
no-lines-before = ["future", "standard-library"] |
|
known-local-folder = ["bot", "admin"] |
|
|
|
[tool.ruff.lint.extend-per-file-ignores] |
|
"tests/*.py" = ["ANN401", "S101", "S311"] |
|
|
|
[tool.mypy] |
|
python_version = "3.10" |
|
files = "bot/*.py" |
|
plugins = ["pydantic.mypy"] |
|
ignore_missing_imports = false |
|
warn_return_any = true |
|
warn_unused_configs = true |
|
show_error_codes = true |
|
show_error_context = true |
|
pretty = 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 |
|
follow_imports_for_stubs = true |
|
namespace_packages = true |
|
show_absolute_path = true |
|
|
|
[[tool.mypy.overrides]] |
|
module = "asyncpg.*" |
|
ignore_missing_imports = true |
|
|
|
[build-system] |
|
requires = ["poetry-core>=1.0.0"] |
|
build-backend = "poetry.core.masonry.api" |
|
|