svg-ultralight 0.45.4__tar.gz → 0.45.6__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of svg-ultralight might be problematic. Click here for more details.

Files changed (62) hide show
  1. {svg_ultralight-0.45.4/src/svg_ultralight.egg-info → svg_ultralight-0.45.6}/PKG-INFO +1 -1
  2. {svg_ultralight-0.45.4 → svg_ultralight-0.45.6}/pyproject.toml +2 -2
  3. {svg_ultralight-0.45.4 → svg_ultralight-0.45.6}/src/svg_ultralight/image_ops.py +7 -5
  4. {svg_ultralight-0.45.4 → svg_ultralight-0.45.6/src/svg_ultralight.egg-info}/PKG-INFO +1 -1
  5. {svg_ultralight-0.45.4 → svg_ultralight-0.45.6}/.gitignore +0 -0
  6. {svg_ultralight-0.45.4 → svg_ultralight-0.45.6}/.pre-commit-config.yaml +0 -0
  7. {svg_ultralight-0.45.4 → svg_ultralight-0.45.6}/README.md +0 -0
  8. {svg_ultralight-0.45.4 → svg_ultralight-0.45.6}/dev-requirements.txt +0 -0
  9. {svg_ultralight-0.45.4 → svg_ultralight-0.45.6}/experiments/encode_fonts3.txt +0 -0
  10. {svg_ultralight-0.45.4 → svg_ultralight-0.45.6}/experiments/font_css.py +0 -0
  11. {svg_ultralight-0.45.4 → svg_ultralight-0.45.6}/setup.cfg +0 -0
  12. {svg_ultralight-0.45.4 → svg_ultralight-0.45.6}/src/svg_ultralight/__init__.py +0 -0
  13. {svg_ultralight-0.45.4 → svg_ultralight-0.45.6}/src/svg_ultralight/animate.py +0 -0
  14. {svg_ultralight-0.45.4 → svg_ultralight-0.45.6}/src/svg_ultralight/attrib_hints.py +0 -0
  15. {svg_ultralight-0.45.4 → svg_ultralight-0.45.6}/src/svg_ultralight/bounding_boxes/__init__.py +0 -0
  16. {svg_ultralight-0.45.4 → svg_ultralight-0.45.6}/src/svg_ultralight/bounding_boxes/bound_helpers.py +0 -0
  17. {svg_ultralight-0.45.4 → svg_ultralight-0.45.6}/src/svg_ultralight/bounding_boxes/padded_text_initializers.py +0 -0
  18. {svg_ultralight-0.45.4 → svg_ultralight-0.45.6}/src/svg_ultralight/bounding_boxes/supports_bounds.py +0 -0
  19. {svg_ultralight-0.45.4 → svg_ultralight-0.45.6}/src/svg_ultralight/bounding_boxes/type_bound_collection.py +0 -0
  20. {svg_ultralight-0.45.4 → svg_ultralight-0.45.6}/src/svg_ultralight/bounding_boxes/type_bound_element.py +0 -0
  21. {svg_ultralight-0.45.4 → svg_ultralight-0.45.6}/src/svg_ultralight/bounding_boxes/type_bounding_box.py +0 -0
  22. {svg_ultralight-0.45.4 → svg_ultralight-0.45.6}/src/svg_ultralight/bounding_boxes/type_padded_text.py +0 -0
  23. {svg_ultralight-0.45.4 → svg_ultralight-0.45.6}/src/svg_ultralight/constructors/__init__.py +0 -0
  24. {svg_ultralight-0.45.4 → svg_ultralight-0.45.6}/src/svg_ultralight/constructors/new_element.py +0 -0
  25. {svg_ultralight-0.45.4 → svg_ultralight-0.45.6}/src/svg_ultralight/font_tools/__init__.py +0 -0
  26. {svg_ultralight-0.45.4 → svg_ultralight-0.45.6}/src/svg_ultralight/font_tools/comp_results.py +0 -0
  27. {svg_ultralight-0.45.4 → svg_ultralight-0.45.6}/src/svg_ultralight/font_tools/font_info.py +0 -0
  28. {svg_ultralight-0.45.4 → svg_ultralight-0.45.6}/src/svg_ultralight/font_tools/globs.py +0 -0
  29. {svg_ultralight-0.45.4 → svg_ultralight-0.45.6}/src/svg_ultralight/inkscape.py +0 -0
  30. {svg_ultralight-0.45.4 → svg_ultralight-0.45.6}/src/svg_ultralight/layout.py +0 -0
  31. {svg_ultralight-0.45.4 → svg_ultralight-0.45.6}/src/svg_ultralight/main.py +0 -0
  32. {svg_ultralight-0.45.4 → svg_ultralight-0.45.6}/src/svg_ultralight/metadata.py +0 -0
  33. {svg_ultralight-0.45.4 → svg_ultralight-0.45.6}/src/svg_ultralight/nsmap.py +0 -0
  34. {svg_ultralight-0.45.4 → svg_ultralight-0.45.6}/src/svg_ultralight/py.typed +0 -0
  35. {svg_ultralight-0.45.4 → svg_ultralight-0.45.6}/src/svg_ultralight/query.py +0 -0
  36. {svg_ultralight-0.45.4 → svg_ultralight-0.45.6}/src/svg_ultralight/root_elements.py +0 -0
  37. {svg_ultralight-0.45.4 → svg_ultralight-0.45.6}/src/svg_ultralight/string_conversion.py +0 -0
  38. {svg_ultralight-0.45.4 → svg_ultralight-0.45.6}/src/svg_ultralight/strings/__init__.py +0 -0
  39. {svg_ultralight-0.45.4 → svg_ultralight-0.45.6}/src/svg_ultralight/strings/svg_strings.py +0 -0
  40. {svg_ultralight-0.45.4 → svg_ultralight-0.45.6}/src/svg_ultralight/transformations.py +0 -0
  41. {svg_ultralight-0.45.4 → svg_ultralight-0.45.6}/src/svg_ultralight/unit_conversion.py +0 -0
  42. {svg_ultralight-0.45.4 → svg_ultralight-0.45.6}/src/svg_ultralight.egg-info/SOURCES.txt +0 -0
  43. {svg_ultralight-0.45.4 → svg_ultralight-0.45.6}/src/svg_ultralight.egg-info/dependency_links.txt +0 -0
  44. {svg_ultralight-0.45.4 → svg_ultralight-0.45.6}/src/svg_ultralight.egg-info/requires.txt +0 -0
  45. {svg_ultralight-0.45.4 → svg_ultralight-0.45.6}/src/svg_ultralight.egg-info/top_level.txt +0 -0
  46. {svg_ultralight-0.45.4 → svg_ultralight-0.45.6}/tests/__init__.py +0 -0
  47. {svg_ultralight-0.45.4 → svg_ultralight-0.45.6}/tests/conftest.py +0 -0
  48. {svg_ultralight-0.45.4 → svg_ultralight-0.45.6}/tests/resources/arrow.svg +0 -0
  49. {svg_ultralight-0.45.4 → svg_ultralight-0.45.6}/tests/test_bound_element.py +0 -0
  50. {svg_ultralight-0.45.4 → svg_ultralight-0.45.6}/tests/test_bounding.py +0 -0
  51. {svg_ultralight-0.45.4 → svg_ultralight-0.45.6}/tests/test_inkscape.py +0 -0
  52. {svg_ultralight-0.45.4 → svg_ultralight-0.45.6}/tests/test_layout.py +0 -0
  53. {svg_ultralight-0.45.4 → svg_ultralight-0.45.6}/tests/test_matrices.py +0 -0
  54. {svg_ultralight-0.45.4 → svg_ultralight-0.45.6}/tests/test_metadata.py +0 -0
  55. {svg_ultralight-0.45.4 → svg_ultralight-0.45.6}/tests/test_new_element.py +0 -0
  56. {svg_ultralight-0.45.4 → svg_ultralight-0.45.6}/tests/test_padded_text_initializers.py +0 -0
  57. {svg_ultralight-0.45.4 → svg_ultralight-0.45.6}/tests/test_padding.py +0 -0
  58. {svg_ultralight-0.45.4 → svg_ultralight-0.45.6}/tests/test_queries.py +0 -0
  59. {svg_ultralight-0.45.4 → svg_ultralight-0.45.6}/tests/test_root_elements.py +0 -0
  60. {svg_ultralight-0.45.4 → svg_ultralight-0.45.6}/tests/test_string_conversion.py +0 -0
  61. {svg_ultralight-0.45.4 → svg_ultralight-0.45.6}/tests/test_svg_ultralight.py +0 -0
  62. {svg_ultralight-0.45.4 → svg_ultralight-0.45.6}/tox.ini +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: svg-ultralight
3
- Version: 0.45.4
3
+ Version: 0.45.6
4
4
  Summary: a sensible way to create svg files with Python
5
5
  Author-email: Shay Hill <shay_public@hotmail.com>
6
6
  License: MIT
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "svg-ultralight"
3
- version = "0.45.4"
3
+ version = "0.45.6"
4
4
  description = "a sensible way to create svg files with Python"
5
5
  authors = [{ name = "Shay Hill", email = "shay_public@hotmail.com" }]
6
6
  license = { text = "MIT" }
@@ -53,7 +53,7 @@ convention = "pep257"
53
53
 
54
54
  [tool.commitizen]
55
55
  name = "cz_conventional_commits"
56
- version = "0.45.4"
56
+ version = "0.45.6"
57
57
  tag_format = "$version"
58
58
  version_files = ["pyproject.toml:^version"]
59
59
  annotated_tag = true
@@ -32,6 +32,7 @@ from lxml import etree
32
32
 
33
33
  from svg_ultralight import NSMAP
34
34
  from svg_ultralight.bounding_boxes.bound_helpers import bbox_dict
35
+ from svg_ultralight.bounding_boxes.type_bounding_box import BoundingBox
35
36
  from svg_ultralight.constructors import new_element
36
37
 
37
38
  if TYPE_CHECKING:
@@ -41,8 +42,6 @@ if TYPE_CHECKING:
41
42
  _Element as EtreeElement, # pyright: ignore [reportPrivateUsage]
42
43
  )
43
44
 
44
- from svg_ultralight.bounding_boxes.type_bounding_box import BoundingBox
45
-
46
45
 
47
46
  def _symmetric_crop(
48
47
  image: ImageType, center: tuple[float, float] | None = None
@@ -70,7 +69,7 @@ def _symmetric_crop(
70
69
 
71
70
 
72
71
  def _crop_image_to_bbox_ratio(
73
- image: ImageType, bbox: BoundingBox, center: tuple[float, float] | None = None
72
+ image: ImageType, bbox: BoundingBox, center: tuple[float, float] | None
74
73
  ) -> ImageType:
75
74
  """Crop an image to the ratio of a bounding box.
76
75
 
@@ -116,8 +115,8 @@ def _get_svg_embedded_image_str(image: ImageType) -> str:
116
115
 
117
116
  def new_image_elem_in_bbox(
118
117
  filename: str | os.PathLike[str],
119
- bbox: BoundingBox,
120
- center: tuple[float, float] | None,
118
+ bbox: BoundingBox | None = None,
119
+ center: tuple[float, float] | None = None,
121
120
  ) -> EtreeElement:
122
121
  """Create a new svg image element inside a bounding box.
123
122
 
@@ -128,6 +127,9 @@ def new_image_elem_in_bbox(
128
127
  (0.4, 0.5) would crop 20% off the right side of the image.
129
128
  :return: an etree image element with the cropped image embedded
130
129
  """
130
+ image = Image.open(filename)
131
+ if bbox is None:
132
+ bbox = BoundingBox(0, 0, image.width, image.height)
131
133
  image = _crop_image_to_bbox_ratio(Image.open(filename), bbox, center)
132
134
  svg_image = new_element("image", **bbox_dict(bbox))
133
135
  svg_image.set(
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: svg-ultralight
3
- Version: 0.45.4
3
+ Version: 0.45.6
4
4
  Summary: a sensible way to create svg files with Python
5
5
  Author-email: Shay Hill <shay_public@hotmail.com>
6
6
  License: MIT
File without changes