@@ -71,7 +71,10 @@ lsprotocol = { version = ">=2023,<2024", optional = true }
7171drawsvg = { version = " >=2.0.0,<3.0.0" , optional = true }
7272typing-extensions = " >=4.12,<5.0"
7373pygments = { version = " >=2.10.0,<3.0.0" , optional = true }
74- shapely = { version = " >=2.0.0,<3.0.0" , optional = true }
74+ shapely = [
75+ { version = " >=2.0.0,<2.1.0" , python = " <3.10" , optional = true },
76+ { version = " >=2.1.0,<3.0.0" , python = " >=3.10" , optional = true }
77+ ]
7578
7679[tool .poetry .group .dev .dependencies ]
7780poethepoet = " ^0.30.0"
@@ -115,7 +118,7 @@ reportlab = { extras = ["pycairo"], version = "^4.2.5" }
115118optional = true
116119
117120[tool .poetry .group .style .dependencies ]
118- ruff = " ^0.11.4 "
121+ ruff = " ^0.15.7 "
119122mypy = " ^1.13.0"
120123pre-commit = " ^3.3.3"
121124
@@ -129,6 +132,7 @@ twine = "^5.1"
129132optional = true
130133
131134[tool .poetry .group .docs .dependencies ]
135+ docutils = " !=0.21.post1"
132136mkdocs = " ^1.5.2"
133137mkdocs-material = " ^9.6.5"
134138mkdocstrings = { extras = [" python" ], version = " >=0.25.1,<0.27" }
@@ -228,6 +232,7 @@ lint.ignore = [
228232 " A004" , # Import `X` is shadowing a Python builtin
229233 " PYI063" , # Use PEP 570 syntax for positional-only parameters - too late.
230234 " LOG015" , # We are using global logger for now.
235+ " PLW1641" ,# In places where `__hash__` is necessary, its usually implemented by Model type from pydantic.
231236]
232237show-fixes = true
233238target-version = " py38"
@@ -266,11 +271,18 @@ line-ending = "lf"
266271# https://mypy.readthedocs.io/en/stable/command_line.html #
267272# https://mypy.readthedocs.io/en/stable/cheat_sheet_py3.html #
268273# ---------------------------------------------------------------------------- #
269- python_version = " 3.8"
274+ # Python version setting is not included, as by default current running version
275+ # is used. When version is hardcoded, we start to have issues due to wide range
276+ # of version supported. For example when testing on Python 3.10, some libraries
277+ # already use `match` statement, but then mypy complains that it is not allowed
278+ # in 3.8 (minimal version supported, a value we would have to hard code)
279+ # Instead we should just make sure CI tests on oldest and latest and that
280+ # dependency versions are correct.
281+ # ---------------------------------------------------------------------------- #
270282# A regular expression that matches file names, directory names and paths which
271283# mypy should ignore while recursively discovering files to check. Use forward
272284# slashes (/) as directory separators on all platforms.
273- exclude = [" external/" , " .tox/ " , " . venv/" , " .vscode/" , " docs/" , " scripts/" ]
285+ exclude = [" external/" , " .venv/" , " .vscode/" , " docs/" , " scripts/" ]
274286# ---------------------------------------------------------------------------- #
275287# Import discovery #
276288# ---------------------------------------------------------------------------- #
0 commit comments