Ctrl K
ComunidadGuías…

pyproject.toml

Rama main · réplica de lectura del repositorio original.

Archivo original ↗Preguntar a KiBot
# Lenovmail — authored by satuapps (satuapps.com)
[project]
name = "lenovmail"
version = "0.1.0"
description = "Multi-account mail infrastructure: IMAP + Microsoft Graph, web GUI, MCP agent API"
authors = [{ name = "satuapps" }]
requires-python = ">=3.13,<3.14"
dependencies = [
    "fastapi>=0.141,<0.142",
    "uvicorn[standard]>=0.53,<0.54",
    "sqlalchemy[asyncio]>=2.0,<2.1",
    "alembic>=1.20,<1.21",
    "asyncpg>=0.31,<0.32",
    "pydantic-settings>=2.0,<3",
    "arq>=0.28,<0.29",
    "redis>=5.2,<6",
    "imapclient>=4.1,<4.2",
    "aiosmtplib>=5.1,<5.2",
    "httpx>=0.28,<0.29",
    "msal>=1.39,<2",
    "cryptography>=50,<51",
    "argon2-cffi>=25,<26",
    "dnspython>=2.8,<3",
    "nh3>=0.3,<0.4",
    "structlog>=25,<27",
    "typer>=0.20,<1",
    "mcp>=2.2,<3",
    "pyyaml>=6,<7",
]

[project.scripts]
lenovmail = "lenovmail.cli:app"

[dependency-groups]
dev = [
    "pytest>=8",
    "pytest-asyncio>=1.4",
    "ruff>=0.16",
    "mypy>=1.14",
]

[build-system]
requires = ["hatchling"]
build-backend = "hatchling.build"

[tool.hatch.build.targets.wheel]
packages = ["src/lenovmail"]

[tool.pytest.ini_options]
asyncio_mode = "auto"
testpaths = ["tests"]
filterwarnings = ["ignore::DeprecationWarning"]

[tool.ruff]
line-length = 100
target-version = "py313"
src = ["src", "tests"]

[tool.ruff.lint]
select = ["E", "F", "I", "UP", "B", "ASYNC", "C4", "SIM"]
ignore = ["B008", "SIM108"]

[tool.mypy]
python_version = "3.13"
mypy_path = "src"
packages = ["lenovmail"]
ignore_missing_imports = true
check_untyped_defs = true