Commit Graph

410 Commits

Author SHA1 Message Date
6886360f6d fix getting displacements in Arbitrary repetition 2022-04-01 17:35:21 -07:00
b5ddb5749c fix calculation of displacements 2022-04-01 17:35:12 -07:00
jan
67d312162a speed up as_pattern()
mainly used by `flatten()`
2022-04-01 17:33:24 -07:00
97db83a1d5 add utils.vertices.poly_contains_points 2022-04-01 17:30:25 -07:00
fd0b2ba4cd no longer ignore numpy types 2022-04-01 17:30:13 -07:00
9f1c7aea01 add _displacements to __slots__ 2022-04-01 17:30:07 -07:00
3640de27c7 Fix OASIS loading when strings are stored by-reference 2022-04-01 17:30:00 -07:00
ed9b0df057 fix scaling for objects with repetitions 2022-03-16 23:54:26 -07:00
jan
a4aa50d814 fix another instance where numpy prohibits using not bounds 2022-02-28 23:43:16 -08:00
jan
2b8195ad3e move dev2pat and pat2dev into masque.builder.port_utils 2022-02-28 23:38:55 -08:00
jan
36f6edac21 fix wrong var name 2022-02-28 23:38:34 -08:00
jan
210f5c21bc wrap_device can be used on DeviceLibrary 2022-02-28 23:38:17 -08:00
jan
bfee560693 simplify type hints 2022-02-28 23:37:48 -08:00
jan
f4c2357737 fix type hint 2022-02-28 23:03:42 -08:00
jan
20be409341 fix numpy complaining about .any() / .all() 2022-02-28 23:03:23 -08:00
jan
d8b60da827 use_ours & use_theirs should be passed verbatim to the underlying library 2022-02-28 23:03:01 -08:00
jan
3b0ef1e08d always couple LibDeviceLibrary keys to the underlying Library
See comment for why this is necessary
2022-02-28 23:02:36 -08:00
jan
7603a7a1c8 fix typevar naming 2022-02-28 23:00:53 -08:00
jan
0c1954c9d1 fix missing imports 2022-02-28 23:00:31 -08:00
jan
30025ba081 fixup dxf read 2022-02-28 22:59:45 -08:00
jan
5ef34794ff keep ordering stable for same-y ports 2022-02-28 22:59:30 -08:00
jan
c8b4075fcc Avoid circular import 2022-02-27 21:26:51 -08:00
jan
40b98b2511 add missing colon 2022-02-27 21:26:23 -08:00
jan
0471addd65 add get_bounds_nonempty 2022-02-27 21:23:03 -08:00
jan
780d1ca97f export LibDeviceLibrary 2022-02-27 21:23:03 -08:00
jan
fc7a6c6f4a fix some unused code 2022-02-27 21:23:03 -08:00
jan
81430fe632 add LibDeviceLibrary 2022-02-27 21:23:03 -08:00
jan
6a1208bc33 add some helper functions to libraries 2022-02-27 21:23:03 -08:00
jan
f36350ebee Add some warnings around cache invalidation when mutating items 2022-02-27 21:23:03 -08:00
jan
2e5d51b0af resolve name conflicts rather than just giving up
this lets us merge libraries without having to mutate `other`, which
brings a bunch of problems around cache invalidation
2022-02-27 21:23:03 -08:00
jan
566ba99f9c set_const doesn't need to take in a separate key, can just use the pattern's name
might as well make the convenience function convenient
2022-02-27 21:23:03 -08:00
jan
86315fc32b improve DeviceLibrary docstring 2022-02-27 21:23:03 -08:00
jan
f178e94d82 remove old overloads 2022-02-27 21:23:03 -08:00
jan
7612a2660c add DeviceLibraryError 2022-02-27 21:23:03 -08:00
7aa850a239 add todo note 2022-02-23 16:03:26 -08:00
9a9a05d1d7 add guillotine_bssf_sas 2022-02-23 16:03:26 -08:00
c2994b74bd add utils.pack2d.pack_patterns 2022-02-23 16:03:26 -08:00
a9e3bf8b2a return a set of rejected indices 2022-02-23 16:03:24 -08:00
fc1a0f5a5a break apart utils into submodules, and add utils.pack2d 2022-02-23 16:01:51 -08:00
jan
a4fe3d9e2e Use ArrayLike and NDArray wherever possible. Some type fixes and some related corner cases 2022-02-23 15:47:38 -08:00
jan
89f327ba37 reformat some multiline arg lists and add missing 'None' return types 2022-02-23 15:16:25 -08:00
47e8cab73c fix format string now that ptypes are str-typed 2021-06-24 23:25:15 -07:00
a92ab9425b typo in 4788fa3c 2021-06-23 22:42:39 -07:00
576077c461 add docstring for Pattern.rename() 2021-06-23 22:39:24 -07:00
4788fa3ca5 add Device.rename() 2021-06-23 22:39:12 -07:00
dbee0027b2 fix wrap_repated_shapes for labels 2021-06-23 22:39:02 -07:00
52c6634a25 fix port comparison regression 2021-06-23 22:35:43 -07:00
886bd59726 should be casting with numpy.array() not .ndarray() 2021-06-22 19:00:43 -07:00
4796676a4e use ArrayLike when accepting pseudo-ndarrays 2021-06-22 18:59:13 -07:00
3aefa644e5 fix type annotations for Device.__getitem__ 2021-06-22 18:26:05 -07:00
65466a5986 Force keyword args in more cases 2021-06-18 18:46:05 -07:00
21ef4207df Enable repetition arg for other Polygon constructors 2021-06-18 18:45:40 -07:00
78a4416f4c Fix wrap_repeated_shapes 2021-06-15 16:11:55 -07:00
0d733bdc6f Breaking change: Use string-valued ptypes, with default value 'unk' 2021-06-15 15:23:20 -07:00
jan
44b08a8dae bump version to 2.5 2021-03-26 10:34:30 -07:00
jan
e2fdd5a347 make klamath the default gdsii reader/writer, and install it automatically
python-gdsii code is now under masque.file.python_gdsii
2021-03-26 10:34:02 -07:00
jan
689312cc87 don't include newlines in version string 2021-03-26 10:29:48 -07:00
jan
5b84a436a0 Make flatten() work in-place on all subpatterns (avoid copies and repeated calls). Also fix a bug around identifier generation introduced in a5900f6ad. 2021-03-22 11:29:50 -07:00
8ad4082f6d Fix offset complaining if it gets a Vec3 2021-03-08 17:11:33 -08:00
a5900f6ade BREAKING change shape identifers generated when flattening 2021-03-08 17:10:42 -08:00
db4148a0ff Don't trash label identifiers 2021-03-08 17:10:42 -08:00
7225fd5715 add traceback to port type warnings 2021-03-08 17:10:42 -08:00
jan
1dc7d5bd56 2-element paths are not polygons 2021-02-13 15:47:04 -08:00
jan
5aa41f5e12 fix reading lwpolylines 2021-02-13 15:47:04 -08:00
939ad5451c enable pickling of LockableImpl 2021-01-08 21:21:17 -08:00
88d42807be label axes in visualization 2021-01-08 21:20:03 -08:00
29ee13a8ab fix comment 2020-12-20 20:43:02 -08:00
cf2413f9e3 remove_colinear_vertices implementation assumes no duplicate vertices, so we need to remove them first 2020-12-20 20:42:50 -08:00
bce3d9f37c Avoid placing duplicate vertices when polygonizing an arc 2020-12-20 20:40:59 -08:00
0fce7fd099 bump version to v2.4 2020-12-05 14:52:55 -08:00
479e0c3c2e fix mirroring for rotated ports/devices 2020-12-05 14:50:16 -08:00
b7383a30ca fix mirroring across y for arcs and ellipses 2020-12-05 14:49:57 -08:00
177f9952a5 Add builder submodule, Device and Port definitions, and DeviceLibrary 2020-11-09 22:09:47 -08:00
ad51801c5d minor fixes to rotate() 2020-11-09 22:06:44 -08:00
6c4fe0e9e4 Add octagon constructor 2020-11-09 22:06:19 -08:00
8e1c05cf73 add mirror2d() to Rotatable 2020-11-09 22:05:56 -08:00
09a5e4a2db type-related fixes and improvements 2020-11-09 22:04:04 -08:00
4308bdeb56 Add parent class MasqueError and use it for traits and all other exceptions 2020-11-09 21:59:28 -08:00
3653a33534 add implementation notes 2020-11-09 21:55:46 -08:00
6402c6242e add full_load option to load_library 2020-11-02 20:57:29 -08:00
6ead7231a8 make raw_mode an arg to read()` 2020-11-02 20:56:56 -08:00
74a0a4f7d2 bump version to 2.3 2020-11-01 19:46:25 -08:00
ccb42e220f cosmetic and doc changes 2020-11-01 19:45:57 -08:00
b9322be77f move VERSION into a .py file that gets directly parsed by setup.py
avoids possible issues with pyinstaller
2020-11-01 19:45:31 -08:00
1b400605b1 use addsp() to consolidate some existing code 2020-11-01 19:35:12 -08:00
3a9eca91b5 add addsp() convenience function to Pattern 2020-11-01 19:34:47 -08:00
517a6dec98 remove duplicate setattr definition
already set by LockableImpl
2020-11-01 19:34:25 -08:00
2bc03cbbf4 improve some more type annotations using TypeVar 2020-11-01 19:33:43 -08:00
eb11f31960 improve type hints for Library 2020-10-26 19:58:25 -07:00
f364970403 style and type fixes (per flake8)
could potentially fix some bugs in `Library` class and dxf reader
2020-10-16 19:00:50 -07:00
f6ad272c2c bump version to v2.2 2020-10-10 19:12:56 -07:00
7ed3b26b02 skip assignment in dfs() to avoid PatternLockedError on unmodified patterns 2020-10-10 19:12:17 -07:00
5bc82b9d49 __iter__ should actually return an iterator 2020-10-10 19:11:52 -07:00
0f35eb5e58 fix dxf reader 2020-10-10 19:11:35 -07:00
4a7e20d6ba improve type annotations in dxf writer 2020-10-10 19:11:22 -07:00
c23c391d83 disable locking for annotations
until I can find a better way to do it
2020-10-10 19:10:17 -07:00
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
03a359e446 add more dict-like methods 2020-09-28 23:49:42 -07:00