mirror of
https://github.com/pacnpal/django-anymail.git
synced 2025-12-20 03:41:05 -05:00
Move the big ESP feature matrix table into a CSV file for easier maintenance. Remove the doc8 line-length exception the old table needed. Docutils csv-table directive doesn't support colspan on the subheadings like the old table did. Add some JS that replicates the old behavior. (The new table is still readable even with JS disabled.)
123 lines
3.6 KiB
TOML
123 lines
3.6 KiB
TOML
[build-system]
|
|
requires = ["hatchling"]
|
|
build-backend = "hatchling.build"
|
|
|
|
[project]
|
|
name = "django-anymail"
|
|
dynamic = ["readme", "version"]
|
|
license = {file = "LICENSE"}
|
|
|
|
authors = [
|
|
{name = "Mike Edmunds", email = "medmunds@gmail.com"},
|
|
{name = "Anymail Contributors"},
|
|
]
|
|
description = """\
|
|
Django email backends and webhooks for Amazon SES, Brevo (Sendinblue),
|
|
MailerSend, Mailgun, Mailjet, Mandrill, Postal, Postmark, Resend,
|
|
SendGrid, and SparkPost\
|
|
"""
|
|
# readme: see tool.hatch.metadata.hooks.custom below
|
|
keywords = [
|
|
"Django", "email", "email backend",
|
|
"ESP", "transactional mail",
|
|
"Amazon SES", "Brevo",
|
|
"MailerSend", "Mailgun", "Mailjet", "Mandrill",
|
|
"Postal", "Postmark",
|
|
"Resend",
|
|
"SendGrid", "SendinBlue", "SparkPost",
|
|
]
|
|
classifiers = [
|
|
"Development Status :: 5 - Production/Stable",
|
|
"Programming Language :: Python",
|
|
"Programming Language :: Python :: Implementation :: PyPy",
|
|
"Programming Language :: Python :: Implementation :: CPython",
|
|
"Programming Language :: Python :: 3",
|
|
"Programming Language :: Python :: 3.7",
|
|
"Programming Language :: Python :: 3.8",
|
|
"Programming Language :: Python :: 3.9",
|
|
"Programming Language :: Python :: 3.10",
|
|
"Programming Language :: Python :: 3.11",
|
|
"Programming Language :: Python :: 3.12",
|
|
"License :: OSI Approved :: BSD License",
|
|
"Topic :: Communications :: Email",
|
|
"Topic :: Software Development :: Libraries :: Python Modules",
|
|
"Intended Audience :: Developers",
|
|
"Framework :: Django",
|
|
"Framework :: Django :: 3.0",
|
|
"Framework :: Django :: 3.1",
|
|
"Framework :: Django :: 3.2",
|
|
"Framework :: Django :: 4.0",
|
|
"Framework :: Django :: 4.1",
|
|
"Framework :: Django :: 4.2",
|
|
"Framework :: Django :: 5.0",
|
|
"Environment :: Web Environment",
|
|
]
|
|
|
|
requires-python = ">=3.7"
|
|
dependencies = [
|
|
"django>=2.0",
|
|
"requests>=2.4.3",
|
|
"urllib3>=1.25.0", # requests dependency: fixes RFC 7578 header encoding
|
|
]
|
|
|
|
[project.optional-dependencies]
|
|
# ESP-specific additional dependencies.
|
|
# (For simplicity, requests is included in the base dependencies.)
|
|
# (Do not use underscores in extra names: they get normalized to hyphens.)
|
|
amazon-ses = ["boto3"]
|
|
mailersend = []
|
|
mailgun = []
|
|
mailjet = []
|
|
mandrill = []
|
|
postmark = []
|
|
resend = ["svix"]
|
|
sendgrid = []
|
|
sendinblue = []
|
|
sparkpost = []
|
|
postal = [
|
|
# Postal requires cryptography for verifying webhooks.
|
|
# Cryptography's wheels are broken on darwin-arm64 before Python 3.9.
|
|
"cryptography; sys_platform != 'darwin' or platform_machine != 'arm64' or python_version >= '3.9'"
|
|
]
|
|
|
|
[project.urls]
|
|
Homepage = "https://github.com/anymail/django-anymail"
|
|
Documentation = "https://anymail.dev/en/stable/"
|
|
Source = "https://github.com/anymail/django-anymail"
|
|
Changelog = "https://anymail.dev/en/stable/changelog/"
|
|
Tracker = "https://github.com/anymail/django-anymail/issues"
|
|
|
|
[tool.hatch.build]
|
|
packages = ["anymail"]
|
|
# Hatch automatically includes pyproject.toml, LICENSE, and hatch_build.py.
|
|
# Help it find the dynamic readme source (otherwise wheel will only build with
|
|
# `hatch build`, not with `python -m build`):
|
|
force-include = {"README.rst" = "README.rst"}
|
|
|
|
[tool.hatch.metadata.hooks.custom]
|
|
# Provides dynamic readme
|
|
path = "hatch_build.py"
|
|
readme = "README.rst"
|
|
|
|
[tool.hatch.version]
|
|
path = "anymail/_version.py"
|
|
|
|
|
|
[tool.black]
|
|
force-exclude = '^/tests/test_settings/settings_.*\.py'
|
|
max-line-length = 88
|
|
target-version = ["py37"]
|
|
|
|
[tool.doc8]
|
|
# for now, Anymail allows longer lines in docs source:
|
|
max-line-length = 120
|
|
|
|
[tool.flake8]
|
|
# See .flake8 file in project root
|
|
|
|
[tool.isort]
|
|
combine_as_imports = true
|
|
known_first_party = "anymail"
|
|
profile = "black"
|
|
py_version = "37"
|