Skip to content

Commit 5446d44

Browse files
committed
Batch update locked dependencies, adjust bounds for compatibility reasons
1 parent 17bcac7 commit 5446d44

22 files changed

Lines changed: 1464 additions & 1286 deletions

File tree

.github/dependabot.yaml

Lines changed: 0 additions & 18 deletions
This file was deleted.

.pre-commit-config.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ repos:
2626
- id: debug-statements
2727

2828
- repo: https://github.com/charliermarsh/ruff-pre-commit
29-
rev: "v0.11.4"
29+
rev: "v0.15.7"
3030
hooks:
3131
# Run the linter.
3232
- id: ruff

poetry.lock

Lines changed: 1400 additions & 1230 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

pyproject.toml

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,10 @@ lsprotocol = { version = ">=2023,<2024", optional = true }
7171
drawsvg = { version = ">=2.0.0,<3.0.0", optional = true }
7272
typing-extensions = ">=4.12,<5.0"
7373
pygments = { 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]
7780
poethepoet = "^0.30.0"
@@ -115,7 +118,7 @@ reportlab = { extras = ["pycairo"], version = "^4.2.5" }
115118
optional = true
116119

117120
[tool.poetry.group.style.dependencies]
118-
ruff = "^0.11.4"
121+
ruff = "^0.15.7"
119122
mypy = "^1.13.0"
120123
pre-commit = "^3.3.3"
121124

@@ -129,6 +132,7 @@ twine = "^5.1"
129132
optional = true
130133

131134
[tool.poetry.group.docs.dependencies]
135+
docutils = "!=0.21.post1"
132136
mkdocs = "^1.5.2"
133137
mkdocs-material = "^9.6.5"
134138
mkdocstrings = { 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
]
232237
show-fixes = true
233238
target-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
# ---------------------------------------------------------------------------- #

scripts/deploy_docs.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ def find_latest_stable(versions: list[Version]) -> Version:
6666

6767

6868
def find_latest_unstable(versions: list[Version]) -> Version:
69-
return max(filter(lambda v: (v.is_devrelease or v.is_prerelease), versions))
69+
return max(filter(lambda v: v.is_devrelease or v.is_prerelease, versions))
7070

7171

7272
if __name__ == "__main__":

src/pygerber/builder/gerber.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -219,8 +219,8 @@ def _create_state_updates( # noqa: C901
219219
selected_aperture: Optional[ApertureIdStr] = None,
220220
polarity: Optional[Polarity] = None,
221221
rotation: Optional[float] = None,
222-
mirror_x: Optional[bool] = None,
223-
mirror_y: Optional[bool] = None,
222+
mirror_x: Optional[bool] = None, # noqa: FBT001
223+
mirror_y: Optional[bool] = None, # noqa: FBT001
224224
scale: Optional[float] = None,
225225
plot_mode: Optional[PlotMode] = None,
226226
) -> Iterable[Node]:
@@ -645,7 +645,7 @@ def __init__(self, ast: File) -> None:
645645

646646
def dump(self, dst: TextIO) -> None:
647647
"""Dump the Gerber code to file or other buffer."""
648-
from pygerber.gerber.formatter import Formatter
648+
from pygerber.gerber.formatter import Formatter # noqa: PLC0415
649649

650650
Formatter().format(self._ast, dst)
651651

src/pygerber/console/commands.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,9 @@ def main() -> None:
1818

1919
@main.command("is-language-server-available")
2020
def _is_language_server_available() -> None:
21-
from pygerber.gerber.language_server.status import is_language_server_available
21+
from pygerber.gerber.language_server.status import ( # noqa: PLC0415
22+
is_language_server_available,
23+
)
2224

2325
if is_language_server_available():
2426
click.echo("Language server is available.")

src/pygerber/console/gerber.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -591,8 +591,8 @@ def merge_convert_jpeg(
591591
)
592592
def lint(files: str, rules: list[str]) -> None:
593593
"""Lint Gerber files with specified rules."""
594-
from pygerber.gerber.linter import lint
595-
from pygerber.gerber.parser import parse
594+
from pygerber.gerber.linter import lint # noqa: PLC0415
595+
from pygerber.gerber.parser import parse # noqa: PLC0415
596596

597597
if len(files) == 0:
598598
msg = "At least one file must be specified."
@@ -623,7 +623,7 @@ def _parse_rules(rules: list[str]) -> Iterable[str]:
623623
)
624624
def list_lint_rules(*, quiet: bool) -> None:
625625
"""List available linting rules."""
626-
from pygerber.gerber.linter.rules import RULE_REGISTRY
626+
from pygerber.gerber.linter.rules import RULE_REGISTRY # noqa: PLC0415
627627

628628
for rule_id in RULE_REGISTRY:
629629
if quiet:

src/pygerber/gerber/api/_gerber_file.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -712,7 +712,7 @@ def formats(self, options: Optional[formatter.Options]) -> str:
712712
@pp.cached_property
713713
def sha256(self) -> str:
714714
"""SHA256 hash of Gerber source code."""
715-
import hashlib
715+
import hashlib # noqa: PLC0415
716716

717717
return hashlib.sha256(self._source_code.encode("utf-8")).hexdigest()
718718

src/pygerber/gerber/ast/state_tracking_visitor.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -262,8 +262,11 @@ class Attributes(_StateModel):
262262
class ImageAttributes(_StateModel):
263263
"""Legacy attributes of the image."""
264264

265-
polarity: ImagePolarity = Field(default=None)
265+
polarity: ImagePolarity = Field(default=ImagePolarity.POSITIVE)
266266
"""The name of the image. (Spec reference: 8.1.4)"""
267+
# I haven't found an explicit statement about what is the default polarity, but
268+
# in 99% cases assumption is that image is positive (not inverted), thus chosen for
269+
# simplicity.
267270

268271
rotation: Double = Field(default=0.0)
269272
"""The rotation of the image. (Spec reference: 8.1.5)"""

0 commit comments

Comments
 (0)