Commit Graph

158 Commits

Author SHA1 Message Date
08cf7ca4b1 avoid calling to_polygons on Polygons (for speed) 2020-09-29 01:01:10 -07:00
de4726955b add load_libraryfile convenience wrapper 2020-09-29 01:00:37 -07:00
ce5d386a24 Determine if an existing file is gzipped based on magic bytes, not suffix 2020-09-29 00:57:47 -07:00
aa5696d884 Add Library management functionality 2020-09-26 17:37:23 -07:00
7cad46fa46 add klamath-based gds read/write 2020-09-26 17:35:05 -07:00
c6684936cf Improve docs, error messages, and type annotations 2020-09-26 17:33:46 -07:00
84f811e9d1 move clean_vertices functionality out into a common function 2020-09-26 17:32:12 -07:00
0e4b6828df Disable height warning for DXF 2020-09-26 17:24:04 -07:00
5f72fe318f Loosen requirements from List to Sequence 2020-09-20 16:32:17 -07:00
64fbd08cac don't attempt to set structure properties 2020-09-20 16:32:17 -07:00
c4dfd06a42 improve type annotations 2020-09-20 16:32:17 -07:00
f996a1629f limit number of arguments on more functions 2020-09-20 16:32:17 -07:00
49a3b4e322 add support for annotations
and other fixes
2020-09-20 16:32:17 -07:00
ea21353d2e fix incorrect variable name 2020-09-20 16:32:17 -07:00
92a3b9b72e documentation fixes/updates 2020-09-20 16:32:17 -07:00
e7c8708f7f prefer f-strings 2020-09-20 16:32:17 -07:00
3ec28d4720 typo fixes 2020-09-20 16:32:17 -07:00
b845b0f7bc move shape conversions to their own functions, and use raw mode 2020-09-20 16:32:17 -07:00
352c03c0ae remove use_dtype_as_dose arg 2020-09-20 16:32:17 -07:00
b98553a770 set repetition on subpattern 2020-09-20 16:32:17 -07:00
7ce601dc1d Enable repeated shapes in gdsii and oasis 2020-09-20 16:32:17 -07:00
ad6fa88e53 Expect name to still be a string after disambiguation
Check that encode('ascii') doesn't make it zero-length, but don't
actually return the encoded form.
2020-09-20 16:32:16 -07:00
794ebb6b37 repetition related fixup 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
09615eaea6 use set() to remove any duplicates in patterns 2020-05-23 19:38:17 -07:00
e401f37993 Improve documentation on disambiguate_pattern_names 2020-05-23 19:37:55 -07:00
f204d917c9 Add basic support for OASIS and update setup/docs for OASIS and DXF support 2020-05-19 01:00:00 -07:00
6e957d761a newline 2020-05-19 00:29:30 -07:00
8082743e17 move dose2dtype() into masque.file.utils, add dtype2dose(), and add a note that use_dtype_as_dose 2020-05-19 00:13:50 -07:00
1b0b056bf9 break out build() which returns the gdsii.library.Library object 2020-05-19 00:03:29 -07:00
22b2834d55 Documentation improvements 2020-05-17 22:59:54 -07:00
f9fb7ccad3 move gdsii import below standard packages 2020-05-17 17:22:50 -07:00
5bd1e85d89 add experimental support for dxf 2020-05-17 14:13:01 -07:00
f260fe1374 comment fixup 2020-05-17 14:12:38 -07:00
8302286a7a allow using a string for the layer
Can't use it in gdsii, but no reason to forbit it in masque...
2020-05-17 14:11:47 -07:00
247b31a9d6 Don't include None in referenced_patterns_by_id() by default 2020-05-17 14:05:19 -07:00
f312f50751 some typing clarifications 2020-05-12 14:17:35 -07:00
ee8f015172 add subpattern_t type (generalizattion of SubPattern and GridRepetition) 2020-05-12 14:17:17 -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
8493364e9c Use a tuple for .identifier 2020-05-11 18:59:47 -07:00
00394a62f0 Formally allow instances to point to None (i.e. an 'empty' pattern) 2020-05-11 18:58:57 -07:00
9fa527ea11 improve handling of patterns with no bounding box 2020-05-11 18:42:31 -07:00
334633662e Remove extra __author__ declarations 2020-05-11 18:41:13 -07:00
df179c9233 Improve type annotations for layer 2020-05-11 18:39:02 -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
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
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
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
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
f3669f2dfd fixup mirroring for subpatterns 2019-12-06 22:19:16 -08:00
49982f1207 Add newlines to long log messages 2019-05-25 12:40:17 -07:00
jan
0ab5674fb9 strans needs starting value (0) 2019-05-20 21:04:07 -07:00
75b42f6b63 Use normalize_mirror for all 2d-to-1d mirroring 2019-05-18 15:05:30 -07:00
76f213a7ce use .identifier instead of the dynamically-created .ref_name 2019-05-17 20:51:53 -07:00
67c9b510cb Rename svg functions to reflect their gds counterparts
Backwards incompatible!
2019-05-17 01:16:18 -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
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
bc43be48bc Implement SquareCustom end-caps and gds output 2019-05-15 00:14:17 -07:00
0bbcf3823a Fix .gz suffix detection 2019-05-15 00:11:28 -07:00
380393dbc3 Fix mirror axis for arrays 2019-05-07 00:58:39 -07:00
0018891200 handle defaults for path params 2019-04-20 15:42:42 -07:00
485a7bc29d General overhaul of gdsii read/write functions
- read() and write() now take streams instead of filenames
- readfile() and writefile() were added to handle filenames and can
detect and handle '.gz' suffixed/compressed files.
- write_dose2dtype() and and read_dtype2dose() were removed in favor of
read(use_dtype_as_dose=True) and dose2dtype()
2019-04-20 15:29:56 -07:00
d6d26b4e46 Add modify_originals param and don't modify the pattern by default 2019-04-20 15:26:27 -07:00
783c0c0844 Add support for gds paths 2019-04-20 15:25:19 -07:00
79c89b2a4b Rename empty-named patterns on gdsii save 2019-04-18 01:14:08 -07:00
8987cf8c44 mirror_signs are per-coordinate, not per-vector 2019-04-18 01:12:33 -07:00
11bbf6aa0b Fix auto-renaming for structures 2019-04-16 00:41:18 -07:00
5e6485f410 allow setting library name 2019-04-15 22:43:03 -07:00
3094aa4043 Automatically disambiguate repeated pattern names.
Also check for >32 char names
2019-04-13 21:10:08 -07:00
3815069136 Fix out-of-range angles 2019-04-13 17:34:28 -07:00
f7ce17c293 Fix mirroring 2019-04-13 17:34:01 -07:00
bc723d96f3 Counts should be ints 2019-04-13 17:33:15 -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
64cb1ced34 fix spacing (cosmetic) 2018-10-28 13:31:23 -07:00
jan
a064e74fc1 Merge branch 'master' of mpxd.net:jan/masque 2018-09-16 20:37:44 -07:00
jan
d17cf5b6be label should have a list of 1 point 2018-09-16 20:35:14 -07:00
48b8087d0c Make read output consistent with write args 2018-09-16 20:19:28 -07:00
4323d81abd Change default written library name 2018-09-16 20:18:21 -07:00
7eda7ea873 Clarify docs -- read returns a dict 2018-09-16 20:18:04 -07:00
jan
108694551b add support for labels (e.g. GDS TEXT) 2018-08-30 23:06:31 -07:00
jan
8623dbbeac Put masque-layer to gds-layer conversion into a private function, and only call once per shape 2018-08-30 23:05:30 -07:00
jan
1f17c07bef remove errant print 2018-04-16 14:55:01 -07:00
jan
70f3ea9304 Handle mirrored gds shapes 2018-04-14 15:29:44 -07:00
jan
358f45c5fd Error out when we see absolute positioning in GDS
We don't support it (yet?)
2018-04-14 15:23:01 -07:00
jan
c14daf2e5e Fix GDS AREF handling 2018-04-14 15:20:39 -07:00
jan
0170f45f75 GDS stores rotation in degrees 2018-04-14 15:19:48 -07:00
jan
04ff11d3cb check for zero-length names 2018-04-14 15:06:12 -07:00
jan
e4545bfa30 use is_scalar for checking if layer is a tuple 2018-04-14 15:02:13 -07:00
jan
2ca27b0792 fix typo 2017-11-14 10:17:11 -08:00
jan
b7b0da7432 Allow writing a list of patterns to gds (multiple topcells) 2017-11-04 12:18:42 -07:00
jan
c451e93df0 Add option to check for invalid polygons when reading gds 2017-11-04 12:15:35 -07:00
jan
6aa1787ba0 add comment specifying what gdsii lib is used 2017-11-04 12:12:05 -07:00
jan
583dd7b018 allow caller to specify gdsii logical unit 2017-09-05 11:00:36 -07:00
jan
3b3ee216c2 add missing import 2017-08-29 16:55:58 -07:00