3beadd2bf0
[Path] preserve cap extensions in normalized form, and scale them with scale()
2026-03-31 09:24:22 -07:00
1bcf5901d6
[Path] preserve width from normalized form
2026-03-31 09:23:19 -07:00
db22237369
[PathCap] clean up comment
2026-03-09 11:20:04 -07:00
ea93a7ef37
[remove_colinear_vertices / Path] add preserve_uturns and use it for paths
2026-03-09 03:28:31 -07:00
495babf837
[Path] revert endcap changes to avoid double-counting
2026-03-09 03:27:39 -07:00
5d20a061fd
[Path / Polygon] improve normalized_form approach to follow documented order
2026-03-09 02:42:13 -07:00
25b8fe8448
[Path.to_polygons] Use linalg.solve() where possible; fallback to lstsq if singular
2026-03-09 02:41:15 -07:00
6c96968341
[Path] improve robustness of intersection calculations
2026-03-09 01:09:37 -07:00
a467a0baca
[Path] simplify conditional
2026-03-09 00:17:50 -07:00
838c742651
[Path] Improve comparisons: compare vertices
2026-03-08 22:41:37 -07:00
9a76ce5b66
[Path] cap_extensions=None should mean [0, 0] when using custom extensions
2026-03-08 22:41:11 -07:00
2019fc0d74
[Path] Circular cap extensions should translate to square, not empty
2026-03-08 22:40:08 -07:00
e3f8d28529
[Path] improve __lt__ for endcaps
2026-03-08 22:37:30 -07:00
accad3db9f
Prefer [1 - axis] for clarity
2026-02-14 19:20:50 -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
0c04bf8ea3
Various type-checking improvements
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
284c7e4fd0
Use quoted first arg for cast()
...
ruff rule TC006
2025-04-15 17:25:56 -07:00
0e34242ba5
misc type hint fixes
2025-03-03 00:52:04 -08:00
cae6de69c1
[path] Fix calls to numpy.linalg.solve for numpy 2
2025-02-25 21:15:32 -08:00
ef6c5df386
be more consistent about when copies are made
2024-07-29 03:13:23 -07:00
ad0adec8e8
numpy.array(..., copy=False) -> numpy.asarray(...)
...
For numpy 2.0
2024-07-29 02:37:48 -07:00
48ffc9709e
double quotes for docstrings
2024-07-28 20:31:41 -07:00
e159c80b0c
improve error generation and handling
2024-07-28 20:31:41 -07:00
6ec94fb3c3
import Sequence et al from collections.abc not typing
2024-07-28 19:33:16 -07:00
6db4bb96db
Create an ordering for everything
...
In order to make layouts more reproducible
Also add pattern.sort() and file.utils.preflight_check()
optionally don't sort elements
elements aren't re-ordered that often, sorting them is slow, and the
sort criteria are arbitrary, so we might want to only sort stuff by name
2024-06-03 17:00:20 -07:00
e2c7f8c8cc
various doc updates
2023-10-15 16:18:33 -07:00
e47f9b76b1
remove TODO labels from mypy #3004 comments
2023-10-15 16:18:33 -07:00
91465b7175
don't keep track of y-mirroring separately from x
2023-10-15 16:18:33 -07:00
9a28e1617c
renderpather, get_bounds includes repetitions, Boundable
2023-10-15 16:18:33 -07:00
9a077ea2df
move to dicty layers and targets
2023-10-15 16:18:33 -07:00
1463535676
modernize type annotations
2023-10-15 16:18:33 -07:00
9d42df831e
remove per-shape polygonization state
2023-10-15 16:18:33 -07:00
963918d1d9
various fixes and cleanup
...
mainly involving ports_to_data and data_to_ports
2023-10-15 16:18:32 -07:00
6b01b43559
flake8-aided fixes
2023-10-15 16:18:32 -07:00
db9b39dbc0
fix more type issues
2023-10-15 16:18:32 -07:00
d9ae8dd6e3
wip
2023-10-15 16:18:32 -07:00
c7f3e7ee52
Remove support for dose
...
Since there isn't GDS/OASIS level support for dose, this can be mostly
handled by using arbitrary layers/dtypes directly. Dose scaling isn't
handled as nicely that way, but it corresponds more directly to what
gets written to file.
2023-10-15 16:18:32 -07:00
a0ca53f57a
get rid of "identifier"
2023-10-15 16:18:32 -07:00
7ca017d993
wip again
2023-10-15 16:18:32 -07:00
7aaf73cb37
WIP: make libraries and names first-class!
2023-10-15 16:18:32 -07:00
4cc824526b
fix deepcopy for locked shapes
2022-04-17 19:04:18 -07:00
0471addd65
add get_bounds_nonempty
2022-02-27 21:23:03 -08:00
a4fe3d9e2e
Use ArrayLike and NDArray wherever possible. Some type fixes and some related corner cases
2022-02-23 15:47:38 -08:00
89f327ba37
reformat some multiline arg lists and add missing 'None' return types
2022-02-23 15:16:25 -08:00
4796676a4e
use ArrayLike when accepting pseudo-ndarrays
2021-06-22 18:59:13 -07:00
f364970403
style and type fixes (per flake8)
...
could potentially fix some bugs in `Library` class and dxf reader
2020-10-16 19:00:50 -07:00
0e04633f61
Force use of keyword args on most constructors
2020-09-20 16:32:17 -07:00
49a3b4e322
add support for annotations
...
and other fixes
2020-09-20 16:32:17 -07:00