From 62eece198131a328fed6a8860dd78b86c6fdb0be Mon Sep 17 00:00:00 2001 From: purificant Date: Mon, 29 Jun 2026 12:46:24 +0100 Subject: [PATCH] chore: migrate pyproject metadata to PEP 621 [project] table --- poetry.lock | 4 ++-- pyproject.toml | 40 +++++++++++++++++++++------------------- 2 files changed, 23 insertions(+), 21 deletions(-) diff --git a/poetry.lock b/poetry.lock index 46c0aaa..3836d78 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1220,5 +1220,5 @@ typing-extensions = {version = ">=4.13.2", markers = "python_version < \"3.11\"" [metadata] lock-version = "2.1" -python-versions = "^3.10" -content-hash = "d31c16857068187b0aeabc0c66bed4f671bab51cefc80f18c6c43af3f627ce93" +python-versions = ">=3.10,<4.0" +content-hash = "6ea13441149f4d993c1050a3afbce43e361e74deeb09282815f13f800f40c31b" diff --git a/pyproject.toml b/pyproject.toml index 6ae1970..5b1bdd2 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,18 +1,17 @@ -[tool.poetry] +[project] name = "postmark-python" version = "0.3.3" description = "The Official Postmark Python SDK." -authors = ["Greg Svoboda "] +authors = [ + { name = "Greg Svoboda", email = "gsvoboda@activecampaign.com" }, +] license = "MIT" +license-files = ["LICENSE"] readme = "README.md" -packages = [{include = "postmark"}] -repository = "https://github.com/ActiveCampaign/postmark-python" -homepage = "https://postmarkapp.com/developer/integration/official-libraries" -documentation = "https://github.com/ActiveCampaign/postmark-python/wiki" +requires-python = ">=3.10,<4.0" classifiers = [ "Development Status :: 4 - Beta", "Intended Audience :: Developers", - "License :: OSI Approved :: MIT License", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", @@ -23,16 +22,22 @@ classifiers = [ "Topic :: Software Development :: Libraries :: Python Modules", "Typing :: Typed", ] +dependencies = [ + "httpx>=0.28.1,<0.29.0", # concurrency (async) and HTTP requests + "pydantic>=2.6.0,<3.0.0", # type safety and validation + "email-validator>=2.1.1,<3.0.0", # required by pydantic.EmailStr for email format validation + "tenacity>=8.2.3,<9.0.0", # resilience and retry logic +] -[tool.poetry.urls] -"Issues" = "https://github.com/ActiveCampaign/postmark-python/issues" +[project.urls] +Homepage = "https://postmarkapp.com/developer/integration/official-libraries" +Repository = "https://github.com/ActiveCampaign/postmark-python" +Documentation = "https://github.com/ActiveCampaign/postmark-python/wiki" +Issues = "https://github.com/ActiveCampaign/postmark-python/issues" -[tool.poetry.dependencies] -python = "^3.10" -httpx = "^0.28.1" # Concurrency (async) and HTTP requests -pydantic = "^2.6.0" # Type safety and validation -email-validator = "^2.1.1" # REQUIRED by pydantic.EmailStr for email format validation -tenacity = "^8.2.3" # Resilience and retry logic +# Poetry-specific build config; package dir differs from the normalized project name. +[tool.poetry] +packages = [{ include = "postmark" }] [tool.poetry.group.dev.dependencies] pytest = "^8.1.1" # Testing framework @@ -44,9 +49,6 @@ ruff = "^0.15.0" pre-commit = "^4.0.0" python-dotenv = "^1.2.2" - - - [tool.ruff] line-length = 88 @@ -69,5 +71,5 @@ exclude_dirs = ["tests"] omit = ["*/enums.py"] [build-system] -requires = ["poetry-core"] +requires = ["poetry-core>=2.4.0,<3.0.0"] build-backend = "poetry.core.masonry.api"