Commit Graph

91 Commits

Author SHA1 Message Date
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
jan
cc35ff802e clean up comments 2018-04-16 15:33:04 -07:00
jan
4c3250a2a1 add recursive option to subset 2018-04-16 15:32:15 -07:00
jan
f875ae89d7 make sure apply() only hits each pattern one 2018-04-16 15:31:18 -07:00
jan
52adb582dc copy name when using Pattern.subset() 2018-04-16 15:06:16 -07:00
jan
79ac6a59e4 Fix mirror axis in Pattern.mirror() 2018-04-16 13:59:44 -07:00
jan
f580e784f7 Add mirroring functions to patterns/subpatterns 2018-04-14 15:29:19 -07:00
jan
37a55e0d9b Add deepcopy() convenience method to Pattern 2018-04-14 15:02:35 -07:00
jan
3e06214b7e Add recursive "apply()" helper to pattern 2018-04-14 14:53:53 -07:00
jan
ffbaf8f4c4 Add manhattanization functionality 2017-09-06 01:16:24 -07:00
jan
934bfcd74e Clean up type info 2017-09-06 01:14:27 -07:00
jan
0a7c26bb08 No need to subclass 'object' in python3 2017-08-12 19:30:31 -07:00
jan
5bf486ac81 Add all files to repository 2016-03-15 19:12:39 -07:00