drawlib 0.2.3.dev3__py3-none-any.whl → 0.2.3.dev4__py3-none-any.whl

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.

@@ -16,7 +16,6 @@ from matplotlib.patches import (
16
16
  Arc,
17
17
  Circle,
18
18
  Ellipse,
19
- Polygon,
20
19
  RegularPolygon,
21
20
  Wedge,
22
21
  )
@@ -26,7 +25,7 @@ from drawlib.v0_2.private.core.model import ShapeStyle, ShapeTextStyle
26
25
  from drawlib.v0_2.private.core.theme import dtheme
27
26
  from drawlib.v0_2.private.core.util import ShapeUtil
28
27
  from drawlib.v0_2.private.core_canvas.base import CanvasBase
29
- from drawlib.v0_2.private.util import error_handler, get_center_and_size
28
+ from drawlib.v0_2.private.util import error_handler
30
29
 
31
30
 
32
31
  class CanvasPatchesFeature(CanvasBase):
@@ -46,8 +45,8 @@ class CanvasPatchesFeature(CanvasBase):
46
45
  xy: Tuple[float, float],
47
46
  width: float,
48
47
  height: float,
49
- from_angle: Union[int, float] = 0.0,
50
- to_angle: Union[int, float] = 360.0,
48
+ angle_start: Union[int, float] = 0.0,
49
+ angle_end: Union[int, float] = 360.0,
51
50
  angle: Union[int, float] = 0.0,
52
51
  style: Union[ShapeStyle, str, None] = None,
53
52
  text: str = "",
@@ -60,8 +59,8 @@ class CanvasPatchesFeature(CanvasBase):
60
59
  xy: Center of the arc.
61
60
  width: Width of the arc.
62
61
  height: Height of the arc.
63
- from_angle (optional): Starting angle of the arc (default is 0.0).
64
- to_angle (optional): Ending angle of the arc (default is 360.0).
62
+ angle_start (optional): Starting angle of the arc (default is 0.0).
63
+ angle_end (optional): Ending angle of the arc (default is 360.0).
65
64
  angle (optional): Rotation angle of the arc.
66
65
  style (optional): Style of the arc.
67
66
  text (optional): Text shown at the center of the arc.
@@ -90,8 +89,8 @@ class CanvasPatchesFeature(CanvasBase):
90
89
  width=width,
91
90
  height=height,
92
91
  angle=angle,
93
- theta1=from_angle,
94
- theta2=to_angle,
92
+ theta1=angle_start,
93
+ theta2=angle_end,
95
94
  **options,
96
95
  )
97
96
  )
@@ -227,55 +226,6 @@ class CanvasPatchesFeature(CanvasBase):
227
226
  ),
228
227
  )
229
228
 
230
- @error_handler
231
- def polygon(
232
- self,
233
- xys: List[Tuple[float, float]],
234
- style: Union[ShapeStyle, str, None] = None,
235
- text: str = "",
236
- textsize: Optional[float] = None,
237
- textstyle: Union[ShapeTextStyle, str, None] = None,
238
- ) -> None:
239
- """Draw a polygon on the canvas.
240
-
241
- Args:
242
- xys: List of vertices [(x1, y1), ...(x_n, y_n)].
243
- style (optional): Style of the polygon.
244
- text (optional): Text shown at the center of the polygon.
245
- textsize (optional): Font size of the text.
246
- textstyle (optional): Style of the text.
247
-
248
- Returns:
249
- None
250
- """
251
- style, textstyle = ShapeUtil.format_styles(
252
- style,
253
- textstyle,
254
- dtheme.polygonstyles.get,
255
- dtheme.polygontextstyles.get,
256
- )
257
- validator.validate_shape_args(locals())
258
-
259
- if textsize is not None:
260
- textstyle.size = textsize
261
-
262
- style.halign = None
263
- style.valign = None
264
- options = ShapeUtil.get_shape_options(style)
265
- self._artists.append(Polygon(xy=xys, closed=True, **options))
266
-
267
- if not text:
268
- return
269
- center, (_, _) = get_center_and_size(xys)
270
- self._artists.append(
271
- ShapeUtil.get_shape_text(
272
- center,
273
- text=text,
274
- angle=0,
275
- style=textstyle,
276
- ),
277
- )
278
-
279
229
  @error_handler
280
230
  def regularpolygon(
281
231
  self,
@@ -345,8 +295,8 @@ class CanvasPatchesFeature(CanvasBase):
345
295
  xy: Tuple[float, float],
346
296
  radius: float,
347
297
  width: Optional[float] = None,
348
- from_angle: float = 0,
349
- to_angle: float = 360,
298
+ angle_start: float = 0,
299
+ angle_end: float = 360,
350
300
  angle: Union[int, float] = 0.0,
351
301
  style: Union[ShapeStyle, str, None] = None,
352
302
  text: str = "",
@@ -360,8 +310,8 @@ class CanvasPatchesFeature(CanvasBase):
360
310
  radius: Radius of the wedge.
361
311
  width (optional): Length from outer to inner circumference.
362
312
  Default is same as radius.
363
- from_angle (optional): Starting angle of the wedge (default is 0).
364
- to_angle (optional): Ending angle of the wedge (default is 360).
313
+ angle_start (optional): Starting angle of the wedge (default is 0).
314
+ angle_end (optional): Ending angle of the wedge (default is 360).
365
315
  angle (optional): Rotation angle of the wedge.
366
316
  style (optional): Style of the wedge.
367
317
  text (optional): Text shown at the center of the wedge.
@@ -391,8 +341,8 @@ class CanvasPatchesFeature(CanvasBase):
391
341
  center=xy,
392
342
  r=radius,
393
343
  width=width, # None makes no hole
394
- theta1=from_angle + angle,
395
- theta2=to_angle + angle,
344
+ theta1=angle_start + angle,
345
+ theta2=angle_end + angle,
396
346
  **options,
397
347
  )
398
348
  )
@@ -459,8 +409,8 @@ class CanvasPatchesFeature(CanvasBase):
459
409
  self,
460
410
  xy: Tuple[float, float],
461
411
  radius: float,
462
- from_angle: float = 0,
463
- to_angle: float = 180,
412
+ angle_start: float = 0,
413
+ angle_end: float = 180,
464
414
  angle: Union[int, float] = 0.0,
465
415
  style: Union[ShapeStyle, str, None] = None,
466
416
  text: str = "",
@@ -472,8 +422,8 @@ class CanvasPatchesFeature(CanvasBase):
472
422
  Args:
473
423
  xy: Center of the fan.
474
424
  radius: Radius of the fan.
475
- from_angle (optional): Starting angle of the fan (default is 0).
476
- to_angle (optional): Ending angle of the fan (default is 180).
425
+ angle_start (optional): Starting angle of the fan (default is 0).
426
+ angle_end (optional): Ending angle of the fan (default is 180).
477
427
  angle (optional): Rotation angle of the fan.
478
428
  style (optional): Style of the fan.
479
429
  text (optional): Text shown at the center of the fan.
@@ -495,8 +445,8 @@ class CanvasPatchesFeature(CanvasBase):
495
445
  xy=xy,
496
446
  radius=radius,
497
447
  width=None,
498
- from_angle=from_angle,
499
- to_angle=to_angle,
448
+ angle_start=angle_start,
449
+ angle_end=angle_end,
500
450
  angle=angle,
501
451
  style=style,
502
452
  text=text,
@@ -28,9 +28,9 @@ def bubblespeech(
28
28
  width: float,
29
29
  height: float,
30
30
  tail_edge: Literal["left", "top", "right", "bottom"],
31
- tail_from_ratio: float,
31
+ tail_start_ratio: float,
32
32
  tail_vertex_xy: Tuple[float, float],
33
- tail_to_ratio: float,
33
+ tail_end_ratio: float,
34
34
  style: Union[ShapeStyle, str, None] = None,
35
35
  text: str = "",
36
36
  textsize: Optional[float] = None,
@@ -43,9 +43,9 @@ def bubblespeech(
43
43
  width (float): The width of the bubble.
44
44
  height (float): The height of the bubble.
45
45
  tail_edge (Literal["left", "top", "right", "bottom"]): The edge on which the tail will be positioned.
46
- tail_from_ratio (float): The ratio along the edge where the tail starts.
46
+ tail_start_ratio (float): The ratio along the edge where the tail starts.
47
47
  tail_vertex_xy (Tuple[float, float]): The (x, y) coordinates of the tail's vertex.
48
- tail_to_ratio (float): The ratio along the edge where the tail ends.
48
+ tail_end_ratio (float): The ratio along the edge where the tail ends.
49
49
  style (Union[ShapeStyle, str, None], optional): The style of the bubble. Defaults to None.
50
50
  text (str, optional): The text to display inside the bubble. Defaults to an empty string.
51
51
  textsize (Optional[float], optional): The size of the text. Defaults to None.
@@ -66,33 +66,33 @@ def bubblespeech(
66
66
  if textsize is not None:
67
67
  textstyle.size = textsize
68
68
 
69
- if tail_from_ratio > tail_to_ratio:
70
- raise ValueError("tail_from_ratio must be smaller than tail_to_ratio.")
71
- if tail_to_ratio > 1.0:
72
- raise ValueError("tail_from_ratio and tail_to_ratio must be smaller than 1.0")
69
+ if tail_start_ratio > tail_end_ratio:
70
+ raise ValueError("tail_start_ratio must be smaller than tail_end_ratio.")
71
+ if tail_end_ratio > 1.0:
72
+ raise ValueError("tail_start_ratio and tail_end_ratio must be smaller than 1.0")
73
73
 
74
74
  x, y = xy
75
75
  xys = []
76
76
  xys.append((x, y)) # left bottom
77
77
  if tail_edge == "left":
78
- xys.append((x, y + height * tail_from_ratio))
78
+ xys.append((x, y + height * tail_start_ratio))
79
79
  xys.append(tail_vertex_xy)
80
- xys.append((x, y + height * tail_to_ratio))
80
+ xys.append((x, y + height * tail_end_ratio))
81
81
  xys.append((x, y + height)) # left top
82
82
  if tail_edge == "top":
83
- xys.append((x + width * tail_from_ratio, y + height))
83
+ xys.append((x + width * tail_start_ratio, y + height))
84
84
  xys.append(tail_vertex_xy)
85
- xys.append((x + width * tail_to_ratio, y + height))
85
+ xys.append((x + width * tail_end_ratio, y + height))
86
86
  xys.append((x + width, y + height)) # right top
87
87
  if tail_edge == "right":
88
- xys.append((x + width, y + height * tail_to_ratio))
88
+ xys.append((x + width, y + height * tail_end_ratio))
89
89
  xys.append(tail_vertex_xy)
90
- xys.append((x + width, y + height * tail_from_ratio))
90
+ xys.append((x + width, y + height * tail_start_ratio))
91
91
  xys.append((x + width, y)) # right bottom
92
92
  if tail_edge == "bottom":
93
- xys.append((x + width * tail_to_ratio, y))
93
+ xys.append((x + width * tail_end_ratio, y))
94
94
  xys.append(tail_vertex_xy)
95
- xys.append((x + width * tail_from_ratio, y))
95
+ xys.append((x + width * tail_start_ratio, y))
96
96
 
97
97
  options = ShapeUtil.get_shape_options(style)
98
98
  canvas._artists.append(Polygon(xy=xys, closed=True, **options))
@@ -19,7 +19,7 @@ import os.path
19
19
  import shutil
20
20
  import sys
21
21
  import traceback
22
- from typing import Any, Tuple
22
+ from typing import Any, List, Tuple, Union
23
23
 
24
24
  import drawlib.assets.v0_2.fonticons
25
25
  import drawlib.assets.v0_2.fonts
@@ -81,6 +81,121 @@ def error_handler(caller):
81
81
  return wrapper
82
82
 
83
83
 
84
+ @error_handler
85
+ def get_rotated_points(
86
+ xys: List[Tuple[float, float]],
87
+ center: Tuple[float, float],
88
+ angle: float,
89
+ ) -> List[Tuple[float, float]]:
90
+ """
91
+ Rotate a list of points around a given center by a given angle.
92
+
93
+ Args:
94
+ xys (list of tuples): List of (x, y) points to rotate.
95
+ center (tuple): The (x, y) coordinates of the center point.
96
+ angle (float): The angle to rotate the points by, in degrees.
97
+
98
+ Returns:
99
+ list of tuples: The rotated points.
100
+ """
101
+ angle = math.radians(angle)
102
+ cos_theta = math.cos(angle)
103
+ sin_theta = math.sin(angle)
104
+
105
+ rotated_points = []
106
+ cx, cy = center
107
+
108
+ for x, y in xys:
109
+ # Translate point to origin
110
+ translated_x = x - cx
111
+ translated_y = y - cy
112
+ # Rotate point
113
+ rotated_x = translated_x * cos_theta - translated_y * sin_theta
114
+ rotated_y = translated_x * sin_theta + translated_y * cos_theta
115
+ # Translate point back
116
+ final_x = rotated_x + cx
117
+ final_y = rotated_y + cy
118
+ rotated_points.append((final_x, final_y))
119
+
120
+ return rotated_points
121
+
122
+
123
+ @error_handler
124
+ def get_rotated_path_points(
125
+ path_points: List[
126
+ Union[
127
+ Tuple[float, float],
128
+ Tuple[Tuple[float, float], Tuple[float, float]],
129
+ Tuple[Tuple[float, float], Tuple[float, float], Tuple[float, float]],
130
+ ]
131
+ ],
132
+ center: Tuple[float, float],
133
+ angle: float,
134
+ ) -> List[
135
+ Union[
136
+ Tuple[float, float],
137
+ Tuple[Tuple[float, float], Tuple[float, float]],
138
+ Tuple[Tuple[float, float], Tuple[float, float], Tuple[float, float]],
139
+ ]
140
+ ]:
141
+ """
142
+ Rotate a list of points around a given center by a given angle.
143
+
144
+ Args:
145
+ path_points (list of tuples): List of (x, y) points to rotate.
146
+ center (tuple): The (x, y) coordinates of the center point.
147
+ angle (float): The angle to rotate the points by, in degrees.
148
+
149
+ Returns:
150
+ list of tuples: The rotated points.
151
+ """
152
+ angle = math.radians(angle)
153
+ cos_theta = math.cos(angle)
154
+ sin_theta = math.sin(angle)
155
+
156
+ rotated_path_points: List[
157
+ Union[
158
+ Tuple[float, float],
159
+ Tuple[Tuple[float, float], Tuple[float, float]],
160
+ Tuple[Tuple[float, float], Tuple[float, float], Tuple[float, float]],
161
+ ]
162
+ ] = []
163
+ cx, cy = center
164
+
165
+ for t in path_points:
166
+ # Translate point to origin
167
+ if not isinstance(t[0], tuple):
168
+ x: float = t[0] # type: ignore
169
+ y: float = t[1] # type: ignore
170
+ translated_x = x - cx
171
+ translated_y = y - cy
172
+ # Rotate point
173
+ rotated_x = translated_x * cos_theta - translated_y * sin_theta
174
+ rotated_y = translated_x * sin_theta + translated_y * cos_theta
175
+ # Translate point back
176
+ final_x = rotated_x + cx
177
+ final_y = rotated_y + cy
178
+ rotated_path_points.append((final_x, final_y))
179
+
180
+ else:
181
+ new_path_point = []
182
+ for xy in t:
183
+ x: float = xy[0] # type: ignore
184
+ y: float = xy[1] # type: ignore
185
+ translated_x = x - cx
186
+ translated_y = y - cy
187
+ # Rotate point
188
+ rotated_x = translated_x * cos_theta - translated_y * sin_theta
189
+ rotated_y = translated_x * sin_theta + translated_y * cos_theta
190
+ # Translate point back
191
+ final_x = rotated_x + cx
192
+ final_y = rotated_y + cy
193
+ new_path_point.append((final_x, final_y))
194
+ rotated_path_points.append(tuple(new_path_point))
195
+
196
+ return rotated_path_points
197
+
198
+
84
199
  @error_handler
85
200
  def get_angle(xy1: Tuple[float, float], xy2: Tuple[float, float]) -> float:
86
201
  """Calculate the angle in degrees between two points.
@@ -229,11 +229,11 @@ def validate_line_args(args: Dict[str, Any]) -> None: # noqa: C901
229
229
  elif "radius" == arg_name:
230
230
  types_validator.validate_plus_float("radius", value, is_0_ok=False)
231
231
 
232
- elif "from_angle" == arg_name:
233
- coordinate_validator.validate_angle("from_angle", value)
232
+ elif "angle_start" == arg_name:
233
+ coordinate_validator.validate_angle("angle_start", value)
234
234
 
235
- elif "to_angle" == arg_name:
236
- coordinate_validator.validate_angle("to_angle", value)
235
+ elif "angle_end" == arg_name:
236
+ coordinate_validator.validate_angle("angle_end", value)
237
237
 
238
238
  elif "style" == arg_name:
239
239
  style_validator.validate_linestyle("style", value)
@@ -317,11 +317,11 @@ def validate_shape_args( # noqa: C901
317
317
  elif "r" == arg_name:
318
318
  types_validator.validate_plus_float("r", value)
319
319
 
320
- elif "from_angle" == arg_name:
321
- coordinate_validator.validate_angle("from_angle", value)
320
+ elif "angle_start" == arg_name:
321
+ coordinate_validator.validate_angle("angle_start", value)
322
322
 
323
- elif "to_angle" == arg_name:
324
- coordinate_validator.validate_angle("to_angle", value)
323
+ elif "angle_end" == arg_name:
324
+ coordinate_validator.validate_angle("angle_end", value)
325
325
 
326
326
  elif "corner_angle" == arg_name:
327
327
  coordinate_validator.validate_angle_max90("corner_angle", value)
@@ -339,7 +339,7 @@ def validate_shape_args( # noqa: C901
339
339
  types_validator.validate_plus_float("head_length", value, is_0_ok=False)
340
340
 
341
341
  elif "head_angle" == arg_name:
342
- coordinate_validator.validate_angle("from_angle", value)
342
+ coordinate_validator.validate_angle("head_angle", value)
343
343
 
344
344
  elif "head" == arg_name:
345
345
  shape_validator.validate_head_style("head", value)
@@ -370,14 +370,14 @@ def validate_shape_args( # noqa: C901
370
370
  elif "tail_edge" == arg_name:
371
371
  smartart_validator.validate_tail_edge("tail_edge", value)
372
372
 
373
- elif "tail_from_ratio" == arg_name:
374
- types_validator.validate_float_0_to_1("tail_from_ratio", value)
373
+ elif "tail_start_ratio" == arg_name:
374
+ types_validator.validate_float_0_to_1("tail_start_ratio", value)
375
375
 
376
376
  elif "tail_vertex_xy" == arg_name:
377
377
  coordinate_validator.validate_xy("tail_vertex_xy", value)
378
378
 
379
- elif "tail_to_ratio" == arg_name:
380
- types_validator.validate_float_0_to_1("tail_to_ratio", value)
379
+ elif "tail_end_ratio" == arg_name:
380
+ types_validator.validate_float_0_to_1("tail_end_ratio", value)
381
381
 
382
382
  else:
383
383
  raise ValueError(f'Drawlib internal bug. Argument "{arg_name}" is not validated at arg validator.')
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: drawlib
3
- Version: 0.2.3.dev3
3
+ Version: 0.2.3.dev4
4
4
  Summary: Python drawing library. Illustration as Code.
5
5
  Home-page: https://www.drawlib.com
6
6
  Author: Yuichi Ito
@@ -1,4 +1,4 @@
1
- drawlib/__init__.py,sha256=dWTu4PVNY86EHUiD1eIaUOj_-xXfADi-s073eiCB_eY,2678
1
+ drawlib/__init__.py,sha256=jXsDFzb9eWZYUjfkP43y1J-umimTxB5iXTEx201e0Ow,2678
2
2
  drawlib/__main__.py,sha256=UDsH6DiEIWBEwlClbYI10aWYBw_gOmaNCB0TSImWZ-c,604
3
3
  drawlib/apis.py,sha256=Q1Uz4U6IK63ZtjaV_UTWPZq7xDpxTz99qHfpGsL8SnI,531
4
4
  drawlib/assets/__init__.py,sha256=bYT4EWquLr0oyEziAuixlD9M4EPnMY6PyhknOxJjxqY,437
@@ -8,7 +8,7 @@ drawlib/assets/v0_2/fonts/__init__.py,sha256=PeL8idl5hfNNoqygvpDJyqj28ZCek7qxh5G
8
8
  drawlib/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
9
9
  drawlib/v0_2/__init__.py,sha256=dy_hxP-s7e-ZGXQKRYgjT02nwGKB5G0Qc6yrJD9M8Zg,729
10
10
  drawlib/v0_2/__main__.py,sha256=NHcSZyv4gK-Nh8NQTujSx396OK05IBjeVmaDKWKHJLU,549
11
- drawlib/v0_2/apis.py,sha256=3ONZYm81D63T1GG1v9Z3b8QxndnfLCu8WZivNLMmIJ8,2118
11
+ drawlib/v0_2/apis.py,sha256=hOKuBUwR2i5DBOcEeUQ4AxiIXHIdotj27Cr5p-KIf0M,2152
12
12
  drawlib/v0_2/private/__init__.py,sha256=vPaj6RbUQj1xOBPRxcKkoOq3kSiOmOlNnY5JnjV_OiY,455
13
13
  drawlib/v0_2/private/command.py,sha256=m6yeuLJfUPbn4KVmchsRsCrtFRTbuCI_OUsYd0NoLEg,19471
14
14
  drawlib/v0_2/private/core/__init__.py,sha256=qzZ4oWmEnMaEAKuQU2x9NvuZLg06fJEOOpR1S31OTS8,454
@@ -22,13 +22,13 @@ drawlib/v0_2/private/core/theme_officials.py,sha256=AeZdENE-B8kSTcDAnWLKU-b77Pss
22
22
  drawlib/v0_2/private/core/theme_style_caches.py,sha256=k22Jrm0nsZITg_Mv0qGyv5pMkivLOb-s-svnWqqm8xY,186385
23
23
  drawlib/v0_2/private/core/util.py,sha256=FaOlxKnQPcJT2oHiy06ZtVq0ZNO3tppAL-8xvW9Un4c,28437
24
24
  drawlib/v0_2/private/core_canvas/__init__.py,sha256=6HANaWCLm6GjIU7cZGAOdUCrvIxbtQx3KTkQWK-nEhU,455
25
- drawlib/v0_2/private/core_canvas/base.py,sha256=hmCRe2MZdhS2nTQk3NIKb0wq13ya39DFDZZZ9hkEoHU,19125
26
- drawlib/v0_2/private/core_canvas/canvas.py,sha256=nJ-EsrSbq_mWq0gvkZP1PabGCgxSGHvT0cqkMiaaNI8,9510
25
+ drawlib/v0_2/private/core_canvas/base.py,sha256=FipdPyX9M-JWL9FQpAT1r8hoo9o1wyCS1QGx3kINwLQ,20603
26
+ drawlib/v0_2/private/core_canvas/canvas.py,sha256=haDITKf-Wz2zA2zDC_NmrdH-QsSagukQ7LT7xEB2crY,9594
27
27
  drawlib/v0_2/private/core_canvas/image.py,sha256=1KoLmCTbr4VoTZi0rI_e1_HIYOmpGklygeq5ACgwVus,6958
28
- drawlib/v0_2/private/core_canvas/line.py,sha256=0cL_MXxiv1gg9KZn4SiTfh-RQ2Dsg-f-vYATc8HyCU0,17623
29
- drawlib/v0_2/private/core_canvas/original_arrow.py,sha256=eA1Lylh54QlsP6Uvhv2RRkcgcsDNUc1SQArP5h5u7rY,21019
28
+ drawlib/v0_2/private/core_canvas/line.py,sha256=qp5IcQUTfLyH1hi4JOKa-h_8TVWRWCEthfSSEEErMgQ,17862
29
+ drawlib/v0_2/private/core_canvas/original_arrow.py,sha256=vTnL7krRxEtplF4CGF5pYnwI0T_YtuNaQ_5bI3zmvCU,21231
30
30
  drawlib/v0_2/private/core_canvas/original_polygon.py,sha256=uvBbfr72J3QEw9efxHdd5YXl1IKZhEA82qzEXdEK7Kc,14546
31
- drawlib/v0_2/private/core_canvas/patches.py,sha256=b1zrMlNUOPzIM9RngJqjGzUg2hS62MN--T9TO-p_MAA,15681
31
+ drawlib/v0_2/private/core_canvas/patches.py,sha256=uDRZMYqMnkh37lXVLGwTUmsb7XuNjNMNZBjP3Cgi5Eg,14211
32
32
  drawlib/v0_2/private/core_canvas/text.py,sha256=bqdiqptdXeV8HVjp0Fx2pl2eA0q29XHYtWcK4WSyCw8,3520
33
33
  drawlib/v0_2/private/download.py,sha256=JdrBsEecOHgRFTXRXszKc-Ak6kO2fhlNiOeXMkjInJU,3465
34
34
  drawlib/v0_2/private/dutil/__init__.py,sha256=D2Yvu1WGzI4kb306MlKKrRv6cDI0x7-B0tEUsVNK310,441
@@ -43,7 +43,7 @@ drawlib/v0_2/private/logging.py,sha256=tZT62wFfPbwY2JBQVtwoS2qf7HBvCjfB-oXdATEnu
43
43
  drawlib/v0_2/private/smartarts/__init__.py,sha256=ii_xf3fXWPvP4SqSdcLO0gIbx643oRbVch58KlaYAnA,445
44
44
  drawlib/v0_2/private/smartarts/boxlist.py,sha256=ymY5yAWhev3JpQi493_8mkTydYaqNMjohj7kpoMFnLw,6714
45
45
  drawlib/v0_2/private/smartarts/boxtree.py,sha256=f6EXkPMEkU8v4vvBxA2Bu2_vV6nJ1nIxppuj9UPhf2E,4655
46
- drawlib/v0_2/private/smartarts/bubblespeech.py,sha256=Fq-XDJmGNK4Yov_VnvbjIiIMW6FWSNaGQRE0dTUQUdE,4200
46
+ drawlib/v0_2/private/smartarts/bubblespeech.py,sha256=2ynQt0W5A0EGRpE1MX-1DQnd01NzM4zIjEUGunEWnIE,4219
47
47
  drawlib/v0_2/private/smartarts/bulletpoints.py,sha256=2wOa5O7pq1qlrdagPaiA9t3UrSCKYAZ5HuVGgrG04u4,6039
48
48
  drawlib/v0_2/private/smartarts/dsart.py,sha256=3wKpD4x_ZqZFG3QJAtD3NhKL7_lDlwJ3tY08sfUF02o,1245
49
49
  drawlib/v0_2/private/smartarts/gridlayout.py,sha256=5gJGNa5uILFOl7DDPB-GBE-MrzaLq74aMFbDnJI4ZRc,11472
@@ -62,9 +62,9 @@ drawlib/v0_2/private/umls/package.py,sha256=umvvXWLt311XFHmYsHZ4qTxcXwoXWy8vDZeL
62
62
  drawlib/v0_2/private/umls/sequence.py,sha256=0s5EQfSVEq_HpH2ph5Fq_BptFDhIaqS5wjHt4lHY0x8,454
63
63
  drawlib/v0_2/private/umls/state_machine.py,sha256=VSPH7jsOmuPeSV6UbD5-V4PIXd9-dBuCP0N4sdoSfgo,459
64
64
  drawlib/v0_2/private/umls/usecase.py,sha256=QiALmJV4lQyH1zaVUWt7S4_CJ3jgXfo1D3zaqnGC-xM,453
65
- drawlib/v0_2/private/util.py,sha256=1jr3MfpnNXVXv3F2Bex1yGhdxNZj2DtwUJqaskbk2eo,9772
65
+ drawlib/v0_2/private/util.py,sha256=edH_HTzjzMPhaCROkuT1BPD3lbWngbjcHIH2_AXssQg,13452
66
66
  drawlib/v0_2/private/validators/__init__.py,sha256=BYnkfTT0x65pmPpFhh6HKJEOzXvsTZsQcrtTVrq1uxw,444
67
- drawlib/v0_2/private/validators/args.py,sha256=Nz1uNzQ-u2GBa9B6GzBQO0ZmWZdL5ZltA-HcRNZT5sg,13914
67
+ drawlib/v0_2/private/validators/args.py,sha256=fNrxU4GpGaQb-9jq0v1n24rsAVIAGe7R4KQxpayWUVU,13926
68
68
  drawlib/v0_2/private/validators/color.py,sha256=tUmY-6Cw1bPPmDqhWj7Vp85XlMSDon5lBvTaEgNV8YY,2353
69
69
  drawlib/v0_2/private/validators/coordinate.py,sha256=KtOB5VjoBRRVw4-SwFa6cfQEfrT2KFvsNUKsnfSwFpM,6078
70
70
  drawlib/v0_2/private/validators/icon.py,sha256=Q7FrnOy2IAEoMnysc4YNjMyi_TuCR4c-7HMVVMVwWkc,1067
@@ -75,8 +75,8 @@ drawlib/v0_2/private/validators/smartarts.py,sha256=fOAlC0syvZVk-GCLQgaPhhfWr3gc
75
75
  drawlib/v0_2/private/validators/style.py,sha256=R7aLlaVfzdo33L7GLQ3WVfzzD_EsgV2-Y7ERcbFq7QI,3308
76
76
  drawlib/v0_2/private/validators/text.py,sha256=ELT87nekr9hMx7m-wpVTku0QPxL3qCIX4cxI5RbFoIc,1126
77
77
  drawlib/v0_2/private/validators/types.py,sha256=KtiIgivuaFyFaxIGeqr5N8xpzqIk9soiacSzcFDdjSA,4155
78
- drawlib-0.2.3.dev3.dist-info/LICENSE.txt,sha256=h_ZiliCgEDqIYpxmUPmqGGP87VBcUHil1S4wUI48ZKg,11344
79
- drawlib-0.2.3.dev3.dist-info/METADATA,sha256=6Za_GcAXu2SYMAypSVQGEg-qYA26dBI70zbANLDfxNY,4007
80
- drawlib-0.2.3.dev3.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
81
- drawlib-0.2.3.dev3.dist-info/entry_points.txt,sha256=Lp6mbrRMP-g6c7P6Iz21CEjceLITCWrma3b0ncP30oQ,49
82
- drawlib-0.2.3.dev3.dist-info/RECORD,,
78
+ drawlib-0.2.3.dev4.dist-info/LICENSE.txt,sha256=h_ZiliCgEDqIYpxmUPmqGGP87VBcUHil1S4wUI48ZKg,11344
79
+ drawlib-0.2.3.dev4.dist-info/METADATA,sha256=keuYahbx9v68956lsqVpKMBmY3l0G6rHq28VVvphFkc,4007
80
+ drawlib-0.2.3.dev4.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
81
+ drawlib-0.2.3.dev4.dist-info/entry_points.txt,sha256=Lp6mbrRMP-g6c7P6Iz21CEjceLITCWrma3b0ncP30oQ,49
82
+ drawlib-0.2.3.dev4.dist-info/RECORD,,