[build-system] requires = ["hatchling", "hatch-vcs", "hatch-fancy-pypi-readme"] build-backend = "hatchling.build" [tool.hatch.version] source = "vcs" [project] name = "jsonschema" description = "An implementation of JSON Schema validation for Python" license = {text = "MIT"} requires-python = ">=3.8" 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.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", "Topic :: File Formats :: JSON", "Topic :: File Formats :: JSON :: JSON Schema", ] dynamic = ["version", "readme"] dependencies = [ "attrs>=22.2.0", "jsonschema-specifications>=2023.03.6", "referencing>=0.27.2", "rpds-py>=0.7.1", "importlib_resources>=1.4.0;python_version<'3.9'", "pkgutil_resolve_name>=1.3.10;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", ] [project.scripts] jsonschema = "jsonschema.cli:main" [project.urls] Homepage = "https://github.com/python-jsonschema/jsonschema" Documentation = "https://python-jsonschema.readthedocs.io/" Issues = "https://github.com/python-jsonschema/jsonschema/issues/" Funding = "https://github.com/sponsors/Julian" Tidelift = "https://tidelift.com/subscription/pkg/pypi-jsonschema?utm_source=pypi-jsonschema&utm_medium=referral&utm_campaign=pypi-link" Changelog = "https://github.com/python-jsonschema/jsonschema/blob/main/CHANGELOG.rst" Source = "https://github.com/python-jsonschema/jsonschema" [tool.hatch.metadata.hooks.fancy-pypi-readme] content-type = "text/x-rst" [[tool.hatch.metadata.hooks.fancy-pypi-readme.fragments]] path = "README.rst" end-before = ".. start cut from PyPI" [[tool.hatch.metadata.hooks.fancy-pypi-readme.fragments]] path = "README.rst" start-after = ".. end cut from PyPI\n\n\n" [[tool.hatch.metadata.hooks.fancy-pypi-readme.fragments]] text = """ Release Information ------------------- """ [[tool.hatch.metadata.hooks.fancy-pypi-readme.fragments]] path = "CHANGELOG.rst" pattern = "(^v.+?)\nv" [tool.isort] combine_as_imports = true from_first = true include_trailing_comma = true multi_line_output = 3 [tool.mypy] ignore_missing_imports = true show_error_codes = true [tool.ruff] line-length = 79 target-version = "py38" select = ["B", "D", "D204", "E", "F", "Q", "SIM", "UP", "W"] ignore = [ # It's totally OK to call functions for default arguments. "B008", # raise SomeException(...) is fine. "B904", # It's fine to not have docstrings for magic methods. "D105", # __init__ especially doesn't need a docstring "D107", # This rule makes diffs uglier when expanding docstrings (and it's uglier) "D200", # No blank lines before docstrings. "D203", # Start docstrings on the second line. "D212", # This rule misses sassy docstrings ending with ! or ?. "D400", # Section headers should end with a colon not a newline "D406", # Underlines aren't needed "D407", # Plz spaces after section headers "D412", ] extend-exclude = ["json"] [tool.ruff.flake8-quotes] docstring-quotes = "double" [tool.ruff.per-file-ignores] "docs/*" = ["D"] "jsonschema/cli.py" = ["D", "SIM", "UP"] "jsonschema/_utils.py" = ["D"] "jsonschema/benchmarks/*" = ["D"] "jsonschema/tests/*" = ["D", "SIM"] [tool.ruff.pyupgrade] # We support 3.8 + 3.9 keep-runtime-typing = true