1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106
|
[build-system]
requires = ["hatchling"]
build-backend = "hatchling.build"
[project]
dynamic = ["version"]
name = "aiosmtplib"
description = "asyncio SMTP client"
authors = [{ name = "Cole Maclean", email = "hi@colemaclean.dev" }]
license = { text = "MIT" }
readme = "README.rst"
requires-python = ">=3.10"
keywords = ["smtp", "email", "asyncio"]
classifiers = [
"Development Status :: 5 - Production/Stable",
"Environment :: No Input/Output (Daemon)",
"Framework :: AsyncIO",
"Intended Audience :: Developers",
"Natural Language :: English",
"Operating System :: OS Independent",
"Topic :: Communications",
"Topic :: Communications :: Email",
"Topic :: Software Development :: Libraries",
"Topic :: Software Development :: Libraries :: Python Modules",
"Typing :: Typed",
]
[project.urls]
Documentation = "https://aiosmtplib.readthedocs.io/en/stable/"
Changelog = "https://github.com/cole/aiosmtplib/blob/main/CHANGELOG.rst"
GitHub = "https://github.com/cole/aiosmtplib"
[project.optional-dependencies]
uvloop = ["uvloop>=0.18"]
# Docs extra is planned for removal in 4.x
docs = [
"sphinx>=7.0.0",
"sphinx_autodoc_typehints>=1.24.0",
"sphinx-copybutton>=0.5.0",
"furo>=2023.9.10",
]
[tool.hatch.version]
path = "src/aiosmtplib/__init__.py"
[tool.pytest.ini_options]
pythonpath = "src"
asyncio_mode = "auto"
asyncio_default_fixture_loop_scope = "function"
minversion = "6.0"
junit_family = "xunit2"
addopts = ["--import-mode=importlib", "--strict-markers"]
testpaths = ["tests"]
markers = [
"smtpd_options",
"smtpd_mocks",
"smtp_client_options",
"skip_if_uvloop",
]
[tool.ruff]
target-version = "py38"
line-length = 88
[tool.ruff.lint]
# Enable flake8-bugbear (`B`) rules.
select = ["E", "F", "B"]
# Never enforce `E501` (line length violations).
ignore = ["E501"]
# Avoid trying to fix flake8-bugbear (`B`) violations.
unfixable = ["B"]
[tool.coverage]
[tool.coverage.run]
source = ["aiosmtplib"]
branch = true
parallel = true
patch = ["subprocess"]
[tool.coverage.report]
show_missing = true
exclude_lines = [
"pass",
"pragma: no cover",
"raise NotImplementedError",
]
[tool.coverage.paths]
source = [
"src/aiosmtplib",
"/opt/pypy/lib/pypy3.*/site-packages/aiosmtplib",
"/usr/local/lib/python3.*/site-packages/aiosmtplib",
"/root/project/.venv/lib/python3.*/site-packages/aiosmtplib",
]
[tool.pyright]
strict = ["src/aiosmtplib"]
# exclude all tests except pyright_usage
exclude = [
"tests/test_*.py",
"tests/auth.py",
"tests/compat.py",
"tests/conftest.py",
"tests/smtpd.py",
]
|