Commit Graph

76 Commits

Author SHA1 Message Date
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
576077c461 add docstring for Pattern.rename() 2021-06-23 22:39:24 -07:00
dbee0027b2 fix wrap_repated_shapes for labels 2021-06-23 22:39:02 -07:00
4796676a4e use ArrayLike when accepting pseudo-ndarrays 2021-06-22 18:59:13 -07:00
78a4416f4c Fix wrap_repeated_shapes 2021-06-15 16:11:55 -07:00
jan
5b84a436a0 Make flatten() work in-place on all subpatterns (avoid copies and repeated calls). Also fix a bug around identifier generation introduced in a5900f6ad. 2021-03-22 11:29:50 -07:00
a5900f6ade BREAKING change shape identifers generated when flattening 2021-03-08 17:10:42 -08:00
88d42807be label axes in visualization 2021-01-08 21:20:03 -08:00
09a5e4a2db type-related fixes and improvements 2020-11-09 22:04:04 -08:00
1b400605b1 use addsp() to consolidate some existing code 2020-11-01 19:35:12 -08:00
3a9eca91b5 add addsp() convenience function to Pattern 2020-11-01 19:34:47 -08:00
517a6dec98 remove duplicate setattr definition
already set by LockableImpl
2020-11-01 19:34:25 -08:00
2bc03cbbf4 improve some more type annotations using TypeVar 2020-11-01 19:33:43 -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
7ed3b26b02 skip assignment in dfs() to avoid PatternLockedError on unmodified patterns 2020-10-10 19:12:17 -07:00
c6684936cf Improve docs, error messages, and type annotations 2020-09-26 17:33:46 -07:00
f51144ae6a misc doc/import/typing fixes 2020-09-20 16:32:17 -07:00
3f59168cec Use chain() instead of adding lists 2020-09-20 16:32:17 -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
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
89bd1e6abe only add new_children (marginally faster) 2020-07-12 03:50:32 -07:00
a4b5776208 Don't return early, since we add patterns to memo before they've been checked 2020-07-12 03:50:19 -07:00
1ae9225130 add rename() method for Pattern 2020-07-08 18:36:19 -07:00
53d2a9ca1a Only swap between tuple/list if actually necessary 2020-05-23 19:39:48 -07:00
07ee25e735 add subpatterns_by_id() 2020-05-23 19:39:03 -07:00
1976c6e684 Add recursive arg to referenced_patterns_by_id 2020-05-23 19:38:48 -07:00
247b31a9d6 Don't include None in referenced_patterns_by_id() by default 2020-05-17 14:05:19 -07:00
ee8f015172 add subpattern_t type (generalizattion of SubPattern and GridRepetition) 2020-05-12 14:17:17 -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
79990e3806 cosmetic changes 2020-05-11 19:10:00 -07:00
157df47884 Improve type annotations based on mypy errors 2020-05-11 19:09:35 -07:00
d33afc2bfd disambiguate some variable names 2020-05-11 19:01:02 -07:00
f8e347c997 fix scale -> scale_by 2020-05-11 19:00:25 -07:00
00394a62f0 Formally allow instances to point to None (i.e. an 'empty' pattern) 2020-05-11 18:58:57 -07:00
334633662e Remove extra __author__ declarations 2020-05-11 18:41:13 -07:00
a4f556c3b3 clarify docs for referenced_patterns_by_id() 2020-03-14 15:53:05 -07:00
e684bd0e40 add Pattern.find_toplevel()
Topological sort for lists of Pattern objects, useful for finding top
cell of gds
2020-03-14 15:52:49 -07:00
9f27a5093a add Pattern.referenced_patterns_by_name() 2020-03-14 15:52:10 -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
e0db621595 allow locking of all objects 2019-12-13 21:18:31 -08:00
e5f28a7a92 Fix Pattern.get_bounds() 2019-06-09 23:57:54 -07:00
6801ee7fc0 Account for rotation/mirror in Pattern.dfs() 2019-05-25 12:41:51 -07:00
b5bd7cd9c8 Pattern.get_bounds() should return None if it's empty
s
2019-05-25 12:41:30 -07:00
02c3d300e0 Wrap long lines (cosmetic) 2019-05-18 15:05:38 -07:00
194a90fe7a Add Pattern.dfs()
Depth-first traversal with hierarchy and transform tracking
2019-05-18 15:05:05 -07:00
503a77925e Move away from __dict__ style save/load
Incompatible with previous versions, but necessary given the move to
__slots__.

Also use pickle.HIGHEST_PROTOCOL
2019-05-17 00:44:10 -07:00