diff --git a/.gitignore b/.gitignore index 45669d6..1b6dc5a 100644 --- a/.gitignore +++ b/.gitignore @@ -2,8 +2,6 @@ .* !.gitignore !.readthedocs.yaml -!.flake8 -!.flake8_nb !.github # Byte / compiled / optimized diff --git a/pyproject.toml b/pyproject.toml index e708b68..89a10c2 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -16,6 +16,7 @@ classifiers = [ ] requires-python = ">=3.10" dependencies = [ + "defusedxml", "ewokscore<5", "reportlab", "typing-extensions; python_version < '3.11'", @@ -35,7 +36,7 @@ test = [ ] dev = [ "pytest >=7", - "ruff", + "ruff>=0.16.0", "mypy", ] doc = [ @@ -61,10 +62,21 @@ src = ["."] line-length = 88 [tool.ruff.lint] -select = ["E", "F", "I"] +select = [ + "E", # pycodestyle errors + "F", # pyflakes + "I", # isort + "S", # flake8-bandit +] + +[tool.ruff.lint.per-file-ignores] +"src/ewoksdraw/tests/*.py" = [ + "S101" # allow asserts +] [tool.ruff.lint.isort] force-single-line = true +known-first-party = ["ewoksdraw"] [tool.mypy] ignore_missing_imports = true diff --git a/src/ewoksdraw/svg/svg_canvas.py b/src/ewoksdraw/svg/svg_canvas.py index b2f445e..46c5694 100644 --- a/src/ewoksdraw/svg/svg_canvas.py +++ b/src/ewoksdraw/svg/svg_canvas.py @@ -2,11 +2,11 @@ from typing import Iterator from typing import List from typing import Union -from xml.dom import minidom from xml.etree.ElementTree import Element from xml.etree.ElementTree import tostring import xmltodict +from defusedxml import minidom from .svg_background import SvgBackground from .svg_element import SvgElement diff --git a/src/ewoksdraw/tests/test_graph_to_svg.py b/src/ewoksdraw/tests/test_graph_to_svg.py index 99be1c3..02e86b4 100644 --- a/src/ewoksdraw/tests/test_graph_to_svg.py +++ b/src/ewoksdraw/tests/test_graph_to_svg.py @@ -1,7 +1,7 @@ from pathlib import Path -from xml.etree import ElementTree import pytest +from defusedxml import ElementTree from ewokscore import load_graph from ewokscore.tests.examples.graphs import get_graph from ewokscore.tests.examples.graphs import graph_names diff --git a/src/ewoksdraw/tests/test_svg_path_integration.py b/src/ewoksdraw/tests/test_svg_path_integration.py index bd5c148..ec113c5 100644 --- a/src/ewoksdraw/tests/test_svg_path_integration.py +++ b/src/ewoksdraw/tests/test_svg_path_integration.py @@ -1,5 +1,6 @@ from pathlib import Path -from xml.etree import ElementTree + +from defusedxml import ElementTree from ewoksdraw.geometry.cubic_bezier_path import CubicBezierPath from ewoksdraw.geometry.cubic_bezier_path import CubicBezierSegment