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
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
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
dcd8324eb4
Use to_polygons() for bounds calculation for simple path shapes
2019-05-20 21:06:28 -07:00
2c9af3f63f
Simplify normalize_mirror
2019-05-20 21:04:31 -07:00
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