776 Commits

Author SHA1 Message Date
fcb622441b [AutoTool] consolidate duplicate code for path() and render() 2026-01-19 22:20:09 -08:00
2e57724095 [AutoTool] add add_complementary_transitions() 2026-01-19 22:20:09 -08:00
a69860ad9c [AutoTool] Use more dataclasses to clarify internal code 2026-01-19 22:20:09 -08:00
82f3e7ab8f [PolyCollection] rename setter arg to placate linter 2026-01-19 22:20:09 -08:00
a308b1515a [format_stacktrace] suppress linter 2026-01-19 22:20:09 -08:00
38d4c4b6af [AutoTool] support min/max length for straight segments 2026-01-19 22:20:09 -08:00
4822ae8708 [BasicTool/AutoTool] fix port orientation for straight segments when using RenderPather 2026-01-19 22:20:09 -08:00
d00899bb39 [AutoTool] Add first pass for AutoTool 2026-01-19 22:20:09 -08:00
a908fadfc3 [RenderPather] add wrapped label/ref/polygon/rect functions 2026-01-19 22:20:09 -08:00
92875cfdb6 [Pather/RenderPather/PatherMixin] clean up imports 2026-01-19 22:20:09 -08:00
11306dbb56 [Pather / RenderPather] move common functionality into PatherMixin; redo hierarchy
- (BREAKING change) Pather.mpath no longer wraps the whole bus into a
container, since this has no equivalent in RenderPather. Possible this
functionality will return in the future
- Removed `tool_port_names` arg from Pather functions
- In general RenderPather should be much closer to Pather now
2026-01-19 22:20:09 -08:00
fc9d4c6ba2 [pather] code style changes 2026-01-19 22:20:09 -08:00
8fa1d0479c [error] also exclude concurrent.futures.process from traces 2026-01-19 22:20:09 -08:00
a4b93419b4 [error] also exclude frames starting with '<frozen' 2026-01-19 22:20:09 -08:00
549193534f [file.svg] use logger.warning over warnings.warn (for flexibility) 2026-01-19 22:20:09 -08:00
6a494b99a0 [ports] make port mismatch deltas more obvious 2026-01-19 22:20:09 -08:00
705a1cef78 [error, ports] Make stack traces more directly reflect teh location of the issue 2026-01-19 22:20:09 -08:00
b8ab3b91f5 misc cleanup: variable naming, typing, comments 2026-01-19 22:20:09 -08:00
34a43a707c [Path / PolyCollection / Polygon] fix order of rotation/offset 2026-01-19 22:20:09 -08:00
aca49dc7e3 [Polygon / Path / PolyCollection] Force polygon/path offset to (0, 0)
And disallow setting it.

This offset was basically just a footgun.
2026-01-19 22:20:09 -08:00
e231fa89cb [Polygon.rect] use floats more explicitly 2026-01-19 22:20:09 -08:00
0c04bf8ea3 Various type-checking improvements 2026-01-19 22:20:09 -08:00
e5f0c85560 [BasicTool] enable straight to handle trees (not just flat patterns) 2026-01-19 22:20:09 -08:00
2961ae5471 [builder.tools] Handle in_ptype=None 2026-01-19 22:20:09 -08:00
ba05e40f84 [traits.annotatable] Don't break when setting annotations to None 2026-01-19 22:20:09 -08:00
314910d363 [shapes] Don't create empty dicts for annotations 2026-01-19 22:20:09 -08:00
jan
fbe804750b [PolyCollection] add PolyCollection shape
based on ndarrays of vertices and offsets
2026-01-19 22:20:09 -08:00
aee0d5b619 [utils.curves] ignore re-import of trapeziod 2026-01-19 22:20:09 -08:00
e00d82bbc4 allow annotations to be None
breaking change, but properties are seldom used by anyone afaik
2026-01-19 22:20:09 -08:00
jan
4d74eea253 [file.gdsii] attributes may have key=126 2025-10-12 23:34:39 -07:00
325a8b9590 [circle] fix mirror ignoring axis 2025-09-14 12:36:17 -07:00
jan
c071b33732 Bump version to v3.4 release v3.4 2025-08-17 21:05:15 +02:00
jan
42a7df3055 add pytest config 2025-08-17 21:03:23 +02:00
5e0eef7c59 [dxf] match ezdxf syntax changes 2025-05-28 00:40:24 -07:00
ad00ade097 [Tool] correctly set input ptype 2025-05-28 00:39:44 -07:00
385a37e0a2 [Pather] fix path_into for some 2-bend cases 2025-05-28 00:39:25 -07:00
35e28acb89 [polygon] Only call rotate if necessary 2025-04-21 19:07:21 -07:00
jan
c1bfee1ddd [library] minor stylistic cleanup 2025-04-15 17:34:05 -07:00
jan
560c165f2e remove deprecated rule from ignore list 2025-04-15 17:26:33 -07:00
jan
284c7e4fd0 Use quoted first arg for cast()
ruff rule TC006
2025-04-15 17:25:56 -07:00
jan
1eac3baf6a [pattern] add arg to , useful for whole-library scaling 2025-04-15 17:21:49 -07:00
5a4b9609bd close code block 2025-03-12 23:14:45 -07:00
30cfa0da31 Bump version to v3.3 v3.3 2025-03-12 23:11:35 -07:00
d11c910dfd [utils.curves] improve type annotations 2025-03-12 23:10:49 -07:00
9b2f8599e6 [utils.curves] use numpy.trapezoid for 2.0 compatibility
fall back to trapz if import fails
2025-03-12 23:09:45 -07:00
6c76e1f5cf Add R90 and R180 constants for rotation shorthand 2025-03-12 23:04:51 -07:00
6567394fbf [utils.curves.bezier] Fix and clarify bezier() code
- Accuracy fix (incorrect +1 term)
- Explicitly index last dim of `nodes`
- Suppress warnings about div by zero
- simplify `umul` and `udiv` calculation
2025-03-04 23:00:52 -08:00
858ef4a114 [utils.curves.euler_bend] add num_point arg and improve naming 2025-03-03 00:53:34 -08:00
b27b1d93d8 [utils.curves.bezier] improve handling of non-ndarray inputs 2025-03-03 00:52:51 -08:00
c74573e7dd [Arc] improve some variable names 2025-03-03 00:52:24 -08:00