Commit Graph

462 Commits

Author SHA1 Message Date
Jan Petykiewicz
00394a62f0 Formally allow instances to point to None (i.e. an 'empty' pattern) 2020-05-11 18:58:57 -07:00
Jan Petykiewicz
f8c49cdb5e Add setter/getter for .pattern to catch wrong types 2020-05-11 18:52:17 -07:00
Jan Petykiewicz
fa8fc52dd6 Improve consistency of ndarray members 2020-05-11 18:49:30 -07:00
Jan Petykiewicz
9fa527ea11 improve handling of patterns with no bounding box 2020-05-11 18:42:31 -07:00
Jan Petykiewicz
334633662e Remove extra __author__ declarations 2020-05-11 18:41:13 -07:00
Jan Petykiewicz
df179c9233 Improve type annotations for layer 2020-05-11 18:39:02 -07:00
Jan Petykiewicz
95ab0934b7 bump version to v1.3 2020-03-14 15:54:20 -07:00
Jan Petykiewicz
e9244055c6 Add type check for SubPattern's pattern arg 2020-03-14 15:53:35 -07:00
Jan Petykiewicz
a4f556c3b3 clarify docs for referenced_patterns_by_id() 2020-03-14 15:53:05 -07:00
Jan Petykiewicz
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
Jan Petykiewicz
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
jan
20981f10b9 Fix error name
InvalidDataError -> PatternError
2020-02-16 18:17:28 -08:00
jan
a930c65d42 fix gridrepetition mirror 2020-02-10 10:09:07 -08:00
Jan Petykiewicz
2a53d8ef4d bump version to 1.2 2020-02-07 23:49:53 -08:00
Jan Petykiewicz
0db70d2c50 Change GridRepetition rotation/mirrored/scale properties so that they consistently apply only to the individual instances; the rotate()/mirror()/scale_by() functions apply to the full array. Add *_elements() versions of the functions 2020-02-07 23:01:14 -08:00
Jan Petykiewicz
64b8e4dec8 Fix duplicates in gds with multiple top-level cells
Since the different patterns we are handed might reference the same
Patterns, we have to deepcopy the entire list at once so that we
don't make multiple copies of them.
2020-01-07 22:17:00 -08:00
jan
5ba67af816 bump version to 1.1 2019-12-31 13:56:18 -08:00
Jan Petykiewicz
25c9e591cb shapes: unlock before modifying during deepcopy 2019-12-13 21:18:31 -08:00
Jan Petykiewicz
f2e6548d21 fix locking issue in __deepcopy__ 2019-12-13 21:18:31 -08:00
Jan Petykiewicz
e0db621595 allow locking of all objects 2019-12-13 21:18:31 -08:00
Jan Petykiewicz
09711116a7 allow more freedom in pattern names (e.g. names which violate spec, longer suffixes, filter warning, etc) 2019-12-12 01:48:36 -08:00
Jan Petykiewicz
0118bf0eb3 update ellip_grating.py example to use new gdsii interface 2019-12-12 01:48:36 -08:00
Jan Petykiewicz
df9c4b52f4 add some todos 2019-12-12 01:48:24 -08:00
Jan Petykiewicz
fcc4770534 Mirroring fix for gdsii import 2019-12-11 21:16:31 -08:00
Jan Petykiewicz
97b7eda21a Force repetition counts to be integers 2019-12-06 22:28:11 -08:00
Jan Petykiewicz
f3669f2dfd fixup mirroring for subpatterns 2019-12-06 22:19:16 -08:00
Jan Petykiewicz
4bc51f765f custom __copy__ for SubPattern and GridRepetition
the difference between copy/deepcopy should be whether a copy is made of
the contained pattern
2019-12-06 22:19:11 -08:00
Jan Petykiewicz
7b0a567625 .mirrored should be an ndarray 2019-12-04 23:30:46 -08:00
Jan Petykiewicz
bece3136be Bump version number to 1.0
Note MAJOR incompatibilities with previous version, including
- order of Pattern() args
- save format
- i/o functions
2019-09-30 23:54:21 -07:00
Jan Petykiewicz
7fd64e0abf give better instructions for extras 2019-09-30 23:50:40 -07:00
Jan Petykiewicz
7a3738bd0c update TODO list 2019-09-30 23:50:29 -07:00
Jan Petykiewicz
f471374b68 Use separate VERSION file 2019-09-27 21:03:52 -07:00
Jan Petykiewicz
2259e7987b don't rename shape.to_polygons() args 2019-06-09 23:59:55 -07:00
Jan Petykiewicz
e5f28a7a92 Fix Pattern.get_bounds() 2019-06-09 23:57:54 -07:00
Jan Petykiewicz
e057f6e4a2 Add binary files and vim buffers into gitignore 2019-05-25 12:46:17 -07:00
Jan Petykiewicz
6801ee7fc0 Account for rotation/mirror in Pattern.dfs() 2019-05-25 12:41:51 -07:00
Jan Petykiewicz
b5bd7cd9c8 Pattern.get_bounds() should return None if it's empty
s
2019-05-25 12:41:30 -07:00
Jan Petykiewicz
49982f1207 Add newlines to long log messages 2019-05-25 12:40:17 -07:00
jan
dcd8324eb4 Use to_polygons() for bounds calculation for simple path shapes 2019-05-20 21:06:28 -07:00
jan
2c9af3f63f Simplify normalize_mirror 2019-05-20 21:04:31 -07:00
jan
0ab5674fb9 strans needs starting value (0) 2019-05-20 21:04:07 -07:00
Jan Petykiewicz
02c3d300e0 Wrap long lines (cosmetic) 2019-05-18 15:05:38 -07:00
Jan Petykiewicz
75b42f6b63 Use normalize_mirror for all 2d-to-1d mirroring 2019-05-18 15:05:30 -07:00
Jan Petykiewicz
194a90fe7a Add Pattern.dfs()
Depth-first traversal with hierarchy and transform tracking
2019-05-18 15:05:05 -07:00
Jan Petykiewicz
76f213a7ce use .identifier instead of the dynamically-created .ref_name 2019-05-17 20:51:53 -07:00
Jan Petykiewicz
ca80b14ee4 Fix text get_bounds
was addressing list using numpy slices
2019-05-17 01:20:10 -07:00
Jan Petykiewicz
67c9b510cb Rename svg functions to reflect their gds counterparts
Backwards incompatible!
2019-05-17 01:16:18 -07:00
Jan Petykiewicz
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
Jan Petykiewicz
28084dfe45 Make name the first argument to Pattern() init
Major incompatibility with previous versions!!
2019-05-17 00:42:55 -07:00