mirror of
https://github.com/pacnpal/django-anymail.git
synced 2025-12-20 11:51:05 -05:00
The cryptography package is no longer installable on PyPy 3.8, because PyO3 requires Python 3.9. Since there were already problems installing cryptography on darwin-arm64 for cpython 3.8 (and since cpython 3.8 passed EOL on all platforms last month), just limit Postal's extra dependency on cryptography to Python >=3.9. If you are using Postal tracking webhooks with Python 3.8, you'll get an ImportError unless you also install cryptography somehow (or upgrade to Python 3.9 or later).
131 lines
3.9 KiB
TOML
131 lines
3.9 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,
|
|
MailerSend, Mailgun, Mailjet, Mandrill, Postal, Postmark, Resend,
|
|
SendGrid, SparkPost and Unisender Go
|
|
(EmailBackend, transactional email tracking and inbound email signals)\
|
|
"""
|
|
# readme: see tool.hatch.metadata.hooks.custom below
|
|
keywords = [
|
|
"Django", "email", "email backend", "EmailBackend",
|
|
"ESP", "email service provider", "transactional mail",
|
|
"email tracking", "inbound email", "webhook",
|
|
"Amazon SES", "AWS SES", "Simple Email Service",
|
|
"Brevo", "SendinBlue",
|
|
"MailerSend",
|
|
"Mailgun", "Mailjet", "Sinch",
|
|
"Mandrill", "MailChimp",
|
|
"Postal",
|
|
"Postmark", "ActiveCampaign",
|
|
"Resend",
|
|
"SendGrid", "Twilio",
|
|
"SparkPost", "Bird",
|
|
"Unisender Go",
|
|
]
|
|
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.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 :: 4.0",
|
|
"Framework :: Django :: 4.1",
|
|
"Framework :: Django :: 4.2",
|
|
"Framework :: Django :: 5.0",
|
|
"Framework :: Django :: 5.1",
|
|
"Environment :: Web Environment",
|
|
]
|
|
|
|
requires-python = ">=3.8"
|
|
dependencies = [
|
|
"django>=4.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>=1.10.17"]
|
|
brevo = []
|
|
mailersend = []
|
|
mailgun = []
|
|
mailjet = []
|
|
mandrill = []
|
|
postmark = []
|
|
resend = ["svix"]
|
|
sendgrid = []
|
|
sendinblue = []
|
|
sparkpost = []
|
|
unisender-go = []
|
|
postal = [
|
|
# Postal requires cryptography for verifying webhooks.
|
|
# Cryptography's wheels are broken on darwin-arm64 before Python 3.9,
|
|
# and unbuildable on PyPy 3.8 due to PyO3 limitations. Since cpython 3.8
|
|
# has also passed EOL, just require Python 3.9+ with Postal.
|
|
"cryptography; 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'
|
|
target-version = ["py38"]
|
|
|
|
[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 = "38"
|