drawlib 0.2.3.dev6__tar.gz → 0.2.3.dev7__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 drawlib might be problematic. Click here for more details.

Files changed (81) hide show
  1. {drawlib-0.2.3.dev6 → drawlib-0.2.3.dev7}/PKG-INFO +1 -1
  2. {drawlib-0.2.3.dev6 → drawlib-0.2.3.dev7}/drawlib/__init__.py +1 -1
  3. {drawlib-0.2.3.dev6 → drawlib-0.2.3.dev7}/drawlib/v0_2/private/smartarts/gridlayout.py +36 -31
  4. {drawlib-0.2.3.dev6 → drawlib-0.2.3.dev7}/pyproject.toml +1 -1
  5. {drawlib-0.2.3.dev6 → drawlib-0.2.3.dev7}/LICENSE.txt +0 -0
  6. {drawlib-0.2.3.dev6 → drawlib-0.2.3.dev7}/drawlib/__main__.py +0 -0
  7. {drawlib-0.2.3.dev6 → drawlib-0.2.3.dev7}/drawlib/apis.py +0 -0
  8. {drawlib-0.2.3.dev6 → drawlib-0.2.3.dev7}/drawlib/assets/__init__.py +0 -0
  9. {drawlib-0.2.3.dev6 → drawlib-0.2.3.dev7}/drawlib/assets/v0_2/__init__.py +0 -0
  10. {drawlib-0.2.3.dev6 → drawlib-0.2.3.dev7}/drawlib/assets/v0_2/fonticons/__init__.py +0 -0
  11. {drawlib-0.2.3.dev6 → drawlib-0.2.3.dev7}/drawlib/assets/v0_2/fonts/__init__.py +0 -0
  12. {drawlib-0.2.3.dev6 → drawlib-0.2.3.dev7}/drawlib/py.typed +0 -0
  13. {drawlib-0.2.3.dev6 → drawlib-0.2.3.dev7}/drawlib/v0_2/__init__.py +0 -0
  14. {drawlib-0.2.3.dev6 → drawlib-0.2.3.dev7}/drawlib/v0_2/__main__.py +0 -0
  15. {drawlib-0.2.3.dev6 → drawlib-0.2.3.dev7}/drawlib/v0_2/apis.py +0 -0
  16. {drawlib-0.2.3.dev6 → drawlib-0.2.3.dev7}/drawlib/v0_2/private/__init__.py +0 -0
  17. {drawlib-0.2.3.dev6 → drawlib-0.2.3.dev7}/drawlib/v0_2/private/command.py +0 -0
  18. {drawlib-0.2.3.dev6 → drawlib-0.2.3.dev7}/drawlib/v0_2/private/core/__init__.py +0 -0
  19. {drawlib-0.2.3.dev6 → drawlib-0.2.3.dev7}/drawlib/v0_2/private/core/colors.py +0 -0
  20. {drawlib-0.2.3.dev6 → drawlib-0.2.3.dev7}/drawlib/v0_2/private/core/dimage.py +0 -0
  21. {drawlib-0.2.3.dev6 → drawlib-0.2.3.dev7}/drawlib/v0_2/private/core/fonts.py +0 -0
  22. {drawlib-0.2.3.dev6 → drawlib-0.2.3.dev7}/drawlib/v0_2/private/core/model.py +0 -0
  23. {drawlib-0.2.3.dev6 → drawlib-0.2.3.dev7}/drawlib/v0_2/private/core/model_system_default.py +0 -0
  24. {drawlib-0.2.3.dev6 → drawlib-0.2.3.dev7}/drawlib/v0_2/private/core/theme.py +0 -0
  25. {drawlib-0.2.3.dev6 → drawlib-0.2.3.dev7}/drawlib/v0_2/private/core/theme_officials.py +0 -0
  26. {drawlib-0.2.3.dev6 → drawlib-0.2.3.dev7}/drawlib/v0_2/private/core/theme_style_caches.py +0 -0
  27. {drawlib-0.2.3.dev6 → drawlib-0.2.3.dev7}/drawlib/v0_2/private/core/util.py +0 -0
  28. {drawlib-0.2.3.dev6 → drawlib-0.2.3.dev7}/drawlib/v0_2/private/core_canvas/__init__.py +0 -0
  29. {drawlib-0.2.3.dev6 → drawlib-0.2.3.dev7}/drawlib/v0_2/private/core_canvas/base.py +0 -0
  30. {drawlib-0.2.3.dev6 → drawlib-0.2.3.dev7}/drawlib/v0_2/private/core_canvas/canvas.py +0 -0
  31. {drawlib-0.2.3.dev6 → drawlib-0.2.3.dev7}/drawlib/v0_2/private/core_canvas/image.py +0 -0
  32. {drawlib-0.2.3.dev6 → drawlib-0.2.3.dev7}/drawlib/v0_2/private/core_canvas/line.py +0 -0
  33. {drawlib-0.2.3.dev6 → drawlib-0.2.3.dev7}/drawlib/v0_2/private/core_canvas/original_arrow.py +0 -0
  34. {drawlib-0.2.3.dev6 → drawlib-0.2.3.dev7}/drawlib/v0_2/private/core_canvas/original_polygon.py +0 -0
  35. {drawlib-0.2.3.dev6 → drawlib-0.2.3.dev7}/drawlib/v0_2/private/core_canvas/patches.py +0 -0
  36. {drawlib-0.2.3.dev6 → drawlib-0.2.3.dev7}/drawlib/v0_2/private/core_canvas/text.py +0 -0
  37. {drawlib-0.2.3.dev6 → drawlib-0.2.3.dev7}/drawlib/v0_2/private/download.py +0 -0
  38. {drawlib-0.2.3.dev6 → drawlib-0.2.3.dev7}/drawlib/v0_2/private/dutil/__init__.py +0 -0
  39. {drawlib-0.2.3.dev6 → drawlib-0.2.3.dev7}/drawlib/v0_2/private/dutil/dutil_canvas.py +0 -0
  40. {drawlib-0.2.3.dev6 → drawlib-0.2.3.dev7}/drawlib/v0_2/private/dutil/dutil_color.py +0 -0
  41. {drawlib-0.2.3.dev6 → drawlib-0.2.3.dev7}/drawlib/v0_2/private/dutil/dutil_script.py +0 -0
  42. {drawlib-0.2.3.dev6 → drawlib-0.2.3.dev7}/drawlib/v0_2/private/dutil/settings.py +0 -0
  43. {drawlib-0.2.3.dev6 → drawlib-0.2.3.dev7}/drawlib/v0_2/private/icons/__init__.py +0 -0
  44. {drawlib-0.2.3.dev6 → drawlib-0.2.3.dev7}/drawlib/v0_2/private/icons/phosphor.py +0 -0
  45. {drawlib-0.2.3.dev6 → drawlib-0.2.3.dev7}/drawlib/v0_2/private/icons/util.py +0 -0
  46. {drawlib-0.2.3.dev6 → drawlib-0.2.3.dev7}/drawlib/v0_2/private/logging.py +0 -0
  47. {drawlib-0.2.3.dev6 → drawlib-0.2.3.dev7}/drawlib/v0_2/private/smartarts/__init__.py +0 -0
  48. {drawlib-0.2.3.dev6 → drawlib-0.2.3.dev7}/drawlib/v0_2/private/smartarts/boxlist.py +0 -0
  49. {drawlib-0.2.3.dev6 → drawlib-0.2.3.dev7}/drawlib/v0_2/private/smartarts/boxtree.py +0 -0
  50. {drawlib-0.2.3.dev6 → drawlib-0.2.3.dev7}/drawlib/v0_2/private/smartarts/bubblespeech.py +0 -0
  51. {drawlib-0.2.3.dev6 → drawlib-0.2.3.dev7}/drawlib/v0_2/private/smartarts/bulletpoints.py +0 -0
  52. {drawlib-0.2.3.dev6 → drawlib-0.2.3.dev7}/drawlib/v0_2/private/smartarts/dsart.py +0 -0
  53. {drawlib-0.2.3.dev6 → drawlib-0.2.3.dev7}/drawlib/v0_2/private/smartarts/pyramid.py +0 -0
  54. {drawlib-0.2.3.dev6 → drawlib-0.2.3.dev7}/drawlib/v0_2/private/smartarts/sourcecode.py +0 -0
  55. {drawlib-0.2.3.dev6 → drawlib-0.2.3.dev7}/drawlib/v0_2/private/smartarts/table.py +0 -0
  56. {drawlib-0.2.3.dev6 → drawlib-0.2.3.dev7}/drawlib/v0_2/private/smartarts/tree.py +0 -0
  57. {drawlib-0.2.3.dev6 → drawlib-0.2.3.dev7}/drawlib/v0_2/private/umls/activity.py +0 -0
  58. {drawlib-0.2.3.dev6 → drawlib-0.2.3.dev7}/drawlib/v0_2/private/umls/class_.py +0 -0
  59. {drawlib-0.2.3.dev6 → drawlib-0.2.3.dev7}/drawlib/v0_2/private/umls/communication.py +0 -0
  60. {drawlib-0.2.3.dev6 → drawlib-0.2.3.dev7}/drawlib/v0_2/private/umls/component.py +0 -0
  61. {drawlib-0.2.3.dev6 → drawlib-0.2.3.dev7}/drawlib/v0_2/private/umls/deployment.py +0 -0
  62. {drawlib-0.2.3.dev6 → drawlib-0.2.3.dev7}/drawlib/v0_2/private/umls/duml.py +0 -0
  63. {drawlib-0.2.3.dev6 → drawlib-0.2.3.dev7}/drawlib/v0_2/private/umls/object.py +0 -0
  64. {drawlib-0.2.3.dev6 → drawlib-0.2.3.dev7}/drawlib/v0_2/private/umls/package.py +0 -0
  65. {drawlib-0.2.3.dev6 → drawlib-0.2.3.dev7}/drawlib/v0_2/private/umls/sequence.py +0 -0
  66. {drawlib-0.2.3.dev6 → drawlib-0.2.3.dev7}/drawlib/v0_2/private/umls/state_machine.py +0 -0
  67. {drawlib-0.2.3.dev6 → drawlib-0.2.3.dev7}/drawlib/v0_2/private/umls/usecase.py +0 -0
  68. {drawlib-0.2.3.dev6 → drawlib-0.2.3.dev7}/drawlib/v0_2/private/util.py +0 -0
  69. {drawlib-0.2.3.dev6 → drawlib-0.2.3.dev7}/drawlib/v0_2/private/validators/__init__.py +0 -0
  70. {drawlib-0.2.3.dev6 → drawlib-0.2.3.dev7}/drawlib/v0_2/private/validators/args.py +0 -0
  71. {drawlib-0.2.3.dev6 → drawlib-0.2.3.dev7}/drawlib/v0_2/private/validators/color.py +0 -0
  72. {drawlib-0.2.3.dev6 → drawlib-0.2.3.dev7}/drawlib/v0_2/private/validators/coordinate.py +0 -0
  73. {drawlib-0.2.3.dev6 → drawlib-0.2.3.dev7}/drawlib/v0_2/private/validators/icon.py +0 -0
  74. {drawlib-0.2.3.dev6 → drawlib-0.2.3.dev7}/drawlib/v0_2/private/validators/image.py +0 -0
  75. {drawlib-0.2.3.dev6 → drawlib-0.2.3.dev7}/drawlib/v0_2/private/validators/line.py +0 -0
  76. {drawlib-0.2.3.dev6 → drawlib-0.2.3.dev7}/drawlib/v0_2/private/validators/shape.py +0 -0
  77. {drawlib-0.2.3.dev6 → drawlib-0.2.3.dev7}/drawlib/v0_2/private/validators/smartarts.py +0 -0
  78. {drawlib-0.2.3.dev6 → drawlib-0.2.3.dev7}/drawlib/v0_2/private/validators/style.py +0 -0
  79. {drawlib-0.2.3.dev6 → drawlib-0.2.3.dev7}/drawlib/v0_2/private/validators/text.py +0 -0
  80. {drawlib-0.2.3.dev6 → drawlib-0.2.3.dev7}/drawlib/v0_2/private/validators/types.py +0 -0
  81. {drawlib-0.2.3.dev6 → drawlib-0.2.3.dev7}/pypi.md +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: drawlib
3
- Version: 0.2.3.dev6
3
+ Version: 0.2.3.dev7
4
4
  Summary: Python drawing library. Illustration as Code.
5
5
  Home-page: https://www.drawlib.com
6
6
  Author: Yuichi Ito
@@ -14,7 +14,7 @@ import sys
14
14
  from typing import Final, List
15
15
 
16
16
  # please update here when you release new version
17
- LIB_VERSION = "0.2.3.dev6"
17
+ LIB_VERSION: Final[str] = "0.2.3.dev7"
18
18
 
19
19
  # please list active main committers (1+ commits per month)
20
20
  AUTHORS: Final[List[str]] = [
@@ -154,7 +154,7 @@ class GridLayout:
154
154
  width: float,
155
155
  height: float,
156
156
  margin: float,
157
- outer_r: int = 0,
157
+ outer_r: Optional[int] = None,
158
158
  outer_style: Union[str, ShapeStyle, None] = None,
159
159
  ) -> None:
160
160
  """Draw the grid layout.
@@ -169,15 +169,16 @@ class GridLayout:
169
169
  The style for the outer grid border. Can be a string key for a predefined style,
170
170
  a ShapeStyle object, or None.
171
171
  """
172
- column_widths = [width / self._num_column] * self._num_column
173
- row_heights = [height / self._num_row] * self._num_row
174
-
175
172
  if outer_style is None:
176
- column_margins = [margin] + [margin * 2] * (self._num_column - 1) + [margin]
177
- row_margins = [margin] + [margin * 2] * (self._num_row - 1) + [margin]
173
+ column_widths = [(width - margin * (self._num_column - 1)) / self._num_column] * self._num_column
174
+ row_heights = [(height - margin * (self._num_row - 1)) / self._num_row] * self._num_row
175
+ column_margins = [0] + [margin] * (self._num_column - 1) + [0]
176
+ row_margins = [0] + [margin] * (self._num_row - 1) + [0]
178
177
  else:
179
- column_margins = [margin * 2] * (self._num_column + 1)
180
- row_margins = [margin * 2] * (self._num_row + 1)
178
+ column_widths = [(width - margin * (self._num_column + 1)) / self._num_column] * self._num_column
179
+ row_heights = [(height - margin * (self._num_row + 1)) / self._num_row] * self._num_row
180
+ column_margins = [margin] * (self._num_column + 1)
181
+ row_margins = [margin] * (self._num_row + 1)
181
182
 
182
183
  self.draw_flexible(
183
184
  xy=xy,
@@ -197,7 +198,7 @@ class GridLayout:
197
198
  column_margins: List[float],
198
199
  row_heights: List[float],
199
200
  row_margins: List[float],
200
- outer_r: int = 0,
201
+ outer_r: Optional[int] = None,
201
202
  outer_style: Union[str, ShapeStyle, None] = None,
202
203
  ) -> None:
203
204
  """Draw the grid layout with flexible column widths and row heights.
@@ -232,19 +233,31 @@ class GridLayout:
232
233
  outer_style = dtheme.rectanglestyles.get(outer_style)
233
234
  outer_style.halign = "left"
234
235
  outer_style.valign = "bottom"
236
+ if outer_r is None:
237
+ outer_r = self._default_r
238
+
235
239
  rectangle(
236
240
  xy=xy,
237
- width=sum(column_widths),
238
- height=sum(row_heights),
241
+ width=sum(column_widths) + sum(column_margins),
242
+ height=sum(row_heights) + sum(row_margins),
239
243
  r=outer_r,
240
244
  style=outer_style,
241
245
  )
242
246
 
243
247
  # utility
244
- def sum_till_index(lst: List[float], index: int) -> float:
245
- if index == 0:
246
- return 0
247
- return sum([lst[i] for i in range(index)])
248
+ def get_position(column_index: int, row_index: int) -> Tuple[float, float]:
249
+ x, y = xy
250
+ if column_index == 0:
251
+ new_x = x + column_margins[0]
252
+ else:
253
+ new_x = x + sum(column_margins[: column_index + 1]) + sum(column_widths[:column_index])
254
+
255
+ if row_index == 0:
256
+ new_y = y + row_margins[0]
257
+ else:
258
+ new_y = y + sum(row_margins[: row_index + 1]) + sum(row_heights[:row_index])
259
+
260
+ return (new_x, new_y)
248
261
 
249
262
  for item in self._items:
250
263
  column_range = item.column_range
@@ -259,25 +272,17 @@ class GridLayout:
259
272
  rr0 = row_range[0]
260
273
  rr1 = row_range[1]
261
274
 
262
- # coordinate without margin
263
- lb_xy = (sum_till_index(column_widths, cr0), sum_till_index(row_heights, rr0))
264
- width = sum_till_index(column_widths, cr1 + 1) - lb_xy[0]
265
- height = sum_till_index(row_heights, rr1 + 1) - lb_xy[1]
266
-
267
- # get margins
268
- margin_left = column_margins[cr0] if cr0 == 0 else column_margins[cr0] / 2
269
- margin_right = column_margins[cr1 + 1] if cr1 + 1 == self._num_column else column_margins[cr1 + 1] / 2
270
- margin_bottom = row_margins[rr0] if rr0 == 0 else row_margins[rr0] / 2
271
- margin_top = row_margins[rr1 + 1] if rr1 + 1 == self._num_row else row_margins[rr1 + 1] / 2
275
+ item_xy_left_bottom = get_position(cr0, rr0)
276
+ t = get_position(cr1, rr1)
277
+ item_xy_right_top = (t[0] + column_widths[cr1], t[1] + row_heights[rr1])
272
278
 
273
- # update coordinate
274
- lb_xy = (lb_xy[0] + margin_left, lb_xy[1] + margin_bottom)
275
- width = width - margin_left - margin_right
276
- height = height - margin_bottom - margin_top
279
+ width, height = (
280
+ item_xy_right_top[0] - item_xy_left_bottom[0],
281
+ item_xy_right_top[1] - item_xy_left_bottom[1],
282
+ )
277
283
 
278
- # draw
279
284
  rectangle(
280
- xy=(xy[0] + lb_xy[0], xy[1] + lb_xy[1]),
285
+ xy=item_xy_left_bottom,
281
286
  width=width,
282
287
  height=height,
283
288
  r=r,
@@ -7,7 +7,7 @@ build-backend = "poetry.core.masonry.api"
7
7
 
8
8
  [tool.poetry]
9
9
  name = "drawlib"
10
- version = "0.2.3.dev6"
10
+ version = "0.2.3.dev7"
11
11
  description = "Python drawing library. Illustration as Code."
12
12
  homepage = "https://www.drawlib.com"
13
13
  repository = "https://github.com/yuichi110/drawlib"
File without changes
File without changes