62 Commits

Author SHA1 Message Date
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
28084dfe45 Make name the first argument to Pattern() init
Major incompatibility with previous versions!!
2019-05-17 00:42:55 -07:00
032c410b43 Add mirror_x to extrinsic properties
It's not implemented for Polygon shapes, since I haven't thought about
how to normalize those for reflection yet
2019-05-17 00:41:26 -07:00
16c6bfc70a Cosmetic changes to argument lists 2019-05-17 00:39:46 -07:00
38f64f7c62 Use __slots__ for class members
Also use the other sort of type hints for instance variables
2019-05-17 00:37:56 -07:00
a6a3ae797c Fix Pattern.scale_by() for labels
Label offsets weren't being scaled.
2019-05-15 23:51:51 -07:00
a461446059 Custom deepcopy() implementations to help speed things up 2019-05-15 00:19:37 -07:00
b8b848c28f add Pattern.is_empty() 2019-05-15 00:11:44 -07:00
347716ec6e Give shapes unique path-like identifiers when flattening 2019-05-13 23:55:42 -07:00
90a068da80 tabs-to-spaces 2019-04-13 17:33:04 -07:00
jan
c50bd8e148 Add GridRepetition: a SubPattern-like object which implements regular spatial arrays.
Also rework masque.file.gdsii to consolidate write() and
write_dose2dtype()
2019-03-31 20:57:10 -07:00
jan
108694551b add support for labels (e.g. GDS TEXT) 2018-08-30 23:06:31 -07:00
jan
4840c321c5 rename param for do_subset 2018-04-18 07:48:08 -07:00
jan
6fda991700 Rewrite/fix apply() implementation 2018-04-18 07:47:50 -07:00
jan
082236b6fd add missing arg 2018-04-16 15:34:14 -07:00