summaryrefslogtreecommitdiff
path: root/pyproject.toml
diff options
context:
space:
mode:
authorJulian Berman <Julian@GrayVines.com>2022-05-28 10:42:42 -0400
committerJulian Berman <Julian@GrayVines.com>2022-05-28 12:24:45 -0400
commitf61f3b7a73c14409178921bf4ce23050bf90560d (patch)
treef6681db659f242ccddfe11b0fb60f78599470f40 /pyproject.toml
parentf2fb1df342a27fdbfb0c007f2a141115964b3b86 (diff)
downloadjsonschema-f61f3b7a73c14409178921bf4ce23050bf90560d.tar.gz
Modernize the packaging setup via PEP 621 and Hatch.
Doing so jettisons setuptools in favor of a more modern, well-designed, legacy-free, and now well-supported packaging tool, Hatch. No end-user facing behavior changes are expected for any users using a recent packaging setup (within the past 2-3 years), so please report any issues. Hatch: https://hatch.pypa.io/latest/ PEP 621: https://peps.python.org/pep-0621/
Diffstat (limited to 'pyproject.toml')
-rw-r--r--pyproject.toml97
1 files changed, 89 insertions, 8 deletions
diff --git a/pyproject.toml b/pyproject.toml
index 477d5e6..fc1487b 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -1,16 +1,97 @@
[build-system]
-requires = [
- # The minimum setuptools version is specific to the PEP 517 backend,
- # and may be stricter than the version required in `setup.py`
- "setuptools>=40.6.0",
- "setuptools_scm[toml]>=3.4",
- "wheel",
+requires = ["hatchling", "hatch-vcs"]
+build-backend = "hatchling.build"
+
+[tool.hatch.version]
+source = "vcs"
+
+[project]
+name = "jsonschema"
+description = "An implementation of JSON Schema validation for Python"
+readme = "README.rst"
+requires-python = ">=3.7"
+license = {text = "MIT"}
+keywords = ["validation", "data validation", "jsonschema", "json"]
+authors = [
+ {email = "Julian+jsonschema@GrayVines.com"},
+ {name = "Julian Berman"},
+]
+classifiers = [
+ "Development Status :: 5 - Production/Stable",
+ "Intended Audience :: Developers",
+ "License :: OSI Approved :: MIT License",
+ "Operating System :: OS Independent",
+ "Programming Language :: Python",
+ "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 :: Implementation :: CPython",
+ "Programming Language :: Python :: Implementation :: PyPy",
+]
+dynamic = ["version"]
+
+dependencies = [
+ "attrs>=17.4.0",
+ "pyrsistent>=0.14.0,!=0.17.0,!=0.17.1,!=0.17.2",
+
+ "importlib_metadata;python_version<'3.8'",
+ "typing_extensions;python_version<'3.8'",
+ "importlib_resources>=1.4.0;python_version<'3.9'",
+]
+
+[project.optional-dependencies]
+format = [
+ "fqdn",
+ "idna",
+ "isoduration",
+ "jsonpointer>1.13",
+ "rfc3339-validator",
+ "rfc3987",
+ "uri_template",
+ "webcolors>=1.11",
+]
+format_nongpl = [
+ "fqdn",
+ "idna",
+ "isoduration",
+ "jsonpointer>1.13",
+ "rfc3339-validator",
+ "rfc3986-validator>0.1.0",
+ "uri_template",
+ "webcolors>=1.11",
]
-build-backend = "setuptools.build_meta"
+
+[project.scripts]
+jsonschema = "jsonschema.cli:main"
+
+[project.urls]
+homepage = "github.com/python-jsonschema/jsonschema"
+documentation = "python-jsonschema.readthedocs.io/en/latest/"
+issues = "github.com/python-jsonschema/jsonschema/issues/"
+funding = "github.com/sponsors/Julian"
+tidelift = "tidelift.com/subscription/pkg/pypi-jsonschema?utm_source=pypi-jsonschema&utm_medium=referral&utm_campaign=pypi-link"
+changelog = "github.com/python-jsonschema/jsonschema/blob/main/CHANGELOG.rst"
+source = "github.com/python-jsonschema/jsonschema"
[tool.isort]
from_first = true
include_trailing_comma = true
multi_line_output = 3
-[tool.setuptools_scm]
+[tool.mypy]
+ignore_missing_imports = true
+
+[tool.pydocstyle]
+match = "(?!(test_|_|compat|cli)).*\\.py" # see PyCQA/pydocstyle#323
+add-select = [
+ "D410", # Trailing whitespace plz
+]
+add-ignore = [
+ "D107", # Hah, no
+ "D200", # 1-line docstrings don't need to be on one line
+ "D202", # One line is fine.
+ "D412", # Trailing whitespace plz
+ "D413", # No trailing whitespace plz
+]