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
25c9e591cb
shapes: unlock before modifying during deepcopy
2019-12-13 21:18:31 -08:00
f2e6548d21
fix locking issue in __deepcopy__
2019-12-13 21:18:31 -08:00
e0db621595
allow locking of all objects
2019-12-13 21:18:31 -08:00
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
0118bf0eb3
update ellip_grating.py example to use new gdsii interface
2019-12-12 01:48:36 -08:00
df9c4b52f4
add some todos
2019-12-12 01:48:24 -08:00
fcc4770534
Mirroring fix for gdsii import
2019-12-11 21:16:31 -08:00
97b7eda21a
Force repetition counts to be integers
2019-12-06 22:28:11 -08:00
f3669f2dfd
fixup mirroring for subpatterns
2019-12-06 22:19:16 -08:00
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
7b0a567625
.mirrored should be an ndarray
2019-12-04 23:30:46 -08:00
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
7fd64e0abf
give better instructions for extras
2019-09-30 23:50:40 -07:00
7a3738bd0c
update TODO list
2019-09-30 23:50:29 -07:00
f471374b68
Use separate VERSION file
2019-09-27 21:03:52 -07:00
2259e7987b
don't rename shape.to_polygons() args
2019-06-09 23:59:55 -07:00
e5f28a7a92
Fix Pattern.get_bounds()
2019-06-09 23:57:54 -07:00
e057f6e4a2
Add binary files and vim buffers into gitignore
2019-05-25 12:46:17 -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
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
02c3d300e0
Wrap long lines (cosmetic)
2019-05-18 15:05:38 -07:00
75b42f6b63
Use normalize_mirror for all 2d-to-1d mirroring
2019-05-18 15:05:30 -07:00
194a90fe7a
Add Pattern.dfs()
...
Depth-first traversal with hierarchy and transform tracking
2019-05-18 15:05:05 -07:00
76f213a7ce
use .identifier instead of the dynamically-created .ref_name
2019-05-17 20:51:53 -07:00
ca80b14ee4
Fix text get_bounds
...
was addressing list using numpy slices
2019-05-17 01:20:10 -07:00
67c9b510cb
Rename svg functions to reflect their gds counterparts
...
Backwards incompatible!
2019-05-17 01:16:18 -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
a154555902
Add TODO noting that polygon mirroring could be normalized
2019-05-17 00:42:14 -07:00
f00d283c56
Add missing imports
2019-05-17 00:41:43 -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
2e54cf1080
initialize identifier for text shapes
2019-05-17 00:39:56 -07:00
16c6bfc70a
Cosmetic changes to argument lists
2019-05-17 00:39:46 -07:00
58353b7884
Remove orphaned comment
2019-05-17 00:38:20 -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
0b962999b2
Add arbitrary identifier for labels and subpattern/repetition
2019-05-17 00:34:01 -07:00
703c1aa6d8
Custom deepcopy for labels
2019-05-17 00:32:51 -07:00
17451cd995
Force dose2dtype to accept only a list of patterns
...
Backwards incompatible, just like the rest of the gdsii rework
2019-05-17 00:30:32 -07:00
1ef8518c60
Fix dose2dtype
...
Was broken during gdsii refactor
2019-05-17 00:28:46 -07:00
a6a3ae797c
Fix Pattern.scale_by() for labels
...
Label offsets weren't being scaled.
2019-05-15 23:51:51 -07:00
4bd5542ce9
Clarify warning when adding suffix
2019-05-15 23:51:17 -07:00
3ff9a8a506
Shorten long names when writing
...
Maybe turn this into an option later?
2019-05-15 23:51:00 -07:00
376cbcce26
Use buffered IO
...
free ~10% speedup on read, probably similar on write
2019-05-15 23:50:31 -07:00
a461446059
Custom deepcopy() implementations to help speed things up
2019-05-15 00:19:37 -07:00