@@ -5,6 +5,7 @@ description = "OpenAPI v3 parser"
55readme = " readme.md"
66license = { file = " license.txt" }
77authors = [{ name = " Artem Manchenkov" , email = " artem@manchenkoff.me" }]
8+ requires-python = " >=3.10"
89keywords = [
910 " swagger" ,
1011 " python" ,
@@ -15,29 +16,30 @@ keywords = [
1516 " swagger-api" ,
1617]
1718classifiers = [
18- " Development Status :: 4 - Beta" ,
1919 " License :: OSI Approved :: MIT License" ,
2020 " Operating System :: OS Independent" ,
2121 " Intended Audience :: Developers" ,
22- " Programming Language :: Python :: 3.9 " ,
22+ " Programming Language :: Python :: 3.10 " ,
2323 " Topic :: Software Development :: Libraries" ,
2424]
25- requires-python = " >=3.9"
26- dependencies = [" openapi-spec-validator>=0.7.2" , " prance>=23.6.21.0" ]
25+ dependencies = [
26+ " openapi-spec-validator>=0.8.5" ,
27+ " prance>=25.4.8.0" ,
28+ ]
2729
2830[project .urls ]
2931homepage = " https://github.com/manchenkoff/openapi3-parser"
3032source = " https://github.com/manchenkoff/openapi3-parser"
3133
3234[dependency-groups ]
33- dev = [" mypy>=1.18.2 " , " pytest>=8.4.2 " ]
35+ dev = [" mypy>=2.1.0 " , " pytest>=9.0.3 " , " pytest-cov>=6.1.0 " , " ruff>=0.15.13 " , " ty>=0.0.37 " ]
3436
3537[build-system ]
36- requires = [" setuptools>=61.0 " ]
37- build-backend = " setuptools.build_meta "
38+ requires = [" uv_build>=0.11.12,<0.12 " ]
39+ build-backend = " uv_build "
3840
39- [tool .setuptools . packages . find ]
40- where = [ " src " ]
41+ [tool .uv . build-backend ]
42+ module-name = " openapi_parser "
4143
4244[[tool .uv .index ]]
4345name = " testpypi"
@@ -46,26 +48,35 @@ publish-url = "https://test.pypi.org/legacy/"
4648explicit = true
4749
4850[tool .mypy ]
49- python_version = 3.9
50-
51- check_untyped_defs = true
52- follow_imports = " silent"
53- no_implicit_reexport = true
54- no_implicit_optional = true
51+ python_version = " 3.10"
52+ strict = true
53+ mypy_path = [" src" ]
5554
56- strict_optional = true
57- strict_equality = true
55+ [[ tool . mypy . overrides ]]
56+ module = " tests.* "
5857
58+ [[tool .mypy .overrides ]]
59+ module = " prance"
5960ignore_missing_imports = true
60- ignore_errors = false
6161
62- disallow_any_generics = false
63- disallow_untyped_defs = true
64- disallow_untyped_calls = true
65- disallow_untyped_decorators = true
62+ [tool .ruff .lint ]
63+ extend-select = [
64+ " D" , # pydocstyle
65+ " UP" , # pyupgrade
66+ " B" , # flake8-bugbear
67+ " SIM" , # flake8-simplify
68+ " I" , # isort
69+ " ARG" , # unused arguments
70+ " RUF100" , # unused noqa
71+ " TID252" , # ban relative imports
72+ ]
73+
74+ [tool .ruff .lint .pydocstyle ]
75+ convention = " google"
76+
77+ [tool .ruff .lint .per-file-ignores ]
78+ "tests/**" = [" D" , " ARG" ]
6679
67- warn_redundant_casts = true
68- warn_unused_ignores = true
69- warn_unused_configs = true
70- warn_unreachable = true
71- warn_no_return = true
80+ [tool .coverage .run ]
81+ source = [" openapi_parser" ]
82+ omit = [" tests/*" ]
0 commit comments