Commit graph

63 commits

Author SHA1 Message Date
e009417eed [shapes] move to per-shape purpose-built _from_raw constructors 2026-06-20 16:23:08 -07:00
8d50f497f1 [repetition / others] copies should get their own repetitions 2026-03-31 22:15:21 -07:00
f34b9b2f5c [Text] fixup bounds and normalized form 2026-03-31 21:22:35 -07:00
jan
ff8ca92963 cleanup 2026-02-16 20:48:15 -08:00
51ced2fe83 [Text] use translate instead of offset 2026-02-15 00:07:43 -08:00
44986bac67 [Mirrorable / Flippable] Bifurcate mirror into flip (relative to line) vs mirror (relative to own offset/origin) 2026-02-15 00:05:53 -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
jan
284c7e4fd0 Use quoted first arg for cast()
ruff rule TC006
2025-04-15 17:25:56 -07:00
da7118f521 misc cleanup 2024-07-29 03:13:36 -07:00
e159c80b0c improve error generation and handling 2024-07-28 20:31:41 -07:00
8035daee7e mark intentionally unused args 2024-07-28 20:31:41 -07:00
d5adf57bc6 fix repr outside of class 2024-07-28 19:35:44 -07:00
jan
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
jan
0618be91d4 delete some old code 2023-10-15 16:18:33 -07:00
jan
91465b7175 don't keep track of y-mirroring separately from x 2023-10-15 16:18:33 -07:00
jan
9a28e1617c renderpather, get_bounds includes repetitions, Boundable 2023-10-15 16:18:33 -07:00
jan
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
jan
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
jan
7ca017d993 wip again 2023-10-15 16:18:32 -07:00
jan
7aaf73cb37 WIP: make libraries and names first-class! 2023-10-15 16:18:32 -07:00
jan
4cc824526b fix deepcopy for locked shapes 2022-04-17 19:04:18 -07:00
jan
a4fe3d9e2e Use ArrayLike and NDArray wherever possible. Some type fixes and some related corner cases 2022-02-23 15:47:38 -08:00
jan
89f327ba37 reformat some multiline arg lists and add missing 'None' return types 2022-02-23 15:16:25 -08:00
886bd59726 should be casting with numpy.array() not .ndarray() 2021-06-22 19:00:43 -07:00
8e1c05cf73 add mirror2d() to Rotatable 2020-11-09 22:05:56 -08: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
c6684936cf Improve docs, error messages, and type annotations 2020-09-26 17:33:46 -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
f57ccc073d add raw arg, which skips setter funcs 2020-09-20 16:32:17 -07:00
629a6a9ba2 enable per-shape repetitions 2020-09-20 16:32:16 -07:00
bab40474a0 Add repetitions and split up code into traits 2020-09-20 16:32:16 -07:00
c236fdb81b Add __repr__ methods to most objects`
These are closer to what __str__ should be and will likely change in the
future.
2020-05-11 20:31:07 -07:00
c79eee2a8c Stricter locking (lock contained ndarrays and turn lists into tuples) 2020-05-11 19:29:00 -07:00
157df47884 Improve type annotations based on mypy errors 2020-05-11 19:09:35 -07:00
fa8fc52dd6 Improve consistency of ndarray members 2020-05-11 18:49:30 -07:00
334633662e Remove extra __author__ declarations 2020-05-11 18:41:13 -07:00
df179c9233 Improve type annotations for layer 2020-05-11 18:39:02 -07:00
jan
5adabfd25a Docstring format change
(new param and return format)
Also some minor code formatting fixes in utils
2020-02-17 21:02:53 -08:00
25c9e591cb shapes: unlock before modifying during deepcopy 2019-12-13 21:18:31 -08:00
e0db621595 allow locking of all objects 2019-12-13 21:18:31 -08:00
2259e7987b don't rename shape.to_polygons() args 2019-06-09 23:59:55 -07:00