Commit Graph

603 Commits (master)

Author SHA1 Message Date
Jan Petykiewicz 19ac45a4f4 fix type for __contains__ 7 months ago
Jan Petykiewicz db7a98bb0f allow ports2data to take a tree 7 months ago
Jan Petykiewicz 8687badac5 misc fixes 7 months ago
Jan Petykiewicz 4a6584a60a Only allow 1-sized Libraries 7 months ago
Jan Petykiewicz 4a94259249 Allow lshift to operate on any library. If only one name, return it, else None 7 months ago
Jan Petykiewicz 7cc732248e add missing functions to tree 7 months ago
Jan Petykiewicz 98728521fd add Pather.mk() 7 months ago
Jan Petykiewicz 460222ce6e add name arg 7 months ago
Jan Petykiewicz f1a380b170 pather reorganization/clenaup 7 months ago
Jan Petykiewicz 38585e5a9e add lshift operator to MutableLibrary 7 months ago
Jan Petykiewicz 2449486a28 set default for library to None 7 months ago
Jan Petykiewicz 4fc2e67b62 Turn Builder into a subset of Pather 7 months ago
Jan Petykiewicz 039320d180 fix add_tree operator 7 months ago
Jan Petykiewicz 853c20e8df Allow LazyLibrary to store Trees as well? 7 months ago
Jan Petykiewicz f642c226c7 Use lshift for tree combination 7 months ago
Jan Petykiewicz 103eb4f1f8 stringy type 7 months ago
Jan Petykiewicz abc721cf67 ergonomics 7 months ago
Jan Petykiewicz d8e789f179 Add Tree as a possible way to allow construction of whole subtrees at once 7 months ago
Jan Petykiewicz 234557dc93 Add move_references() and auto-move references during add()-with-rename
Also remove enable_cache, since we now rely on the cache.
7 months ago
Jan Petykiewicz 439d5914e0 implement auto-renaming during merge, and change _merge() to support it 7 months ago
jan ac9776628a remove some trailing undescores 7 months ago
Jan Petykiewicz ab8fd9b351 add NamedPattern 7 months ago
Jan Petykiewicz 1a9116cdbe add .create() 7 months ago
Jan Petykiewicz 7a8a3ef3c7 note in comments 7 months ago
Jan Petykiewicz f8b5cec340 Add recurse arg to get_bounds 7 months ago
Jan Petykiewicz 1598582865 remove log messages 7 months ago
Jan Petykiewicz 42ee4db989 Return WrapLibrary from read() and readfile() 7 months ago
Jan Petykiewicz a35bf9770a Default to adding ports at the origin 7 months ago
Jan Petykiewicz 5c48a28661 some cleanup 7 months ago
Jan Petykiewicz a8da0fc429 add FlatBuilder 7 months ago
Jan Petykiewicz cb87543e0c import ports2data at top level 7 months ago
Jan Petykiewicz e5029ae21d add library .rename(...) 7 months ago
Jan Petykiewicz 0172b7488e missing comma 7 months ago
Jan Petykiewicz d44374bf1f writefile should write to a temporary file first 7 months ago
Jan Petykiewicz 5fcd31a719 add name_and_set 7 months ago
Jan Petykiewicz 2940316c48 add missing comments 7 months ago
Jan Petykiewicz c0e4ee1b6b Allow library __setitem__ to take in either Pattern or Callable
No longer need it to be Generic!
7 months ago
Jan Petykiewicz 963918d1d9 various fixes and cleanup
mainly involving ports_to_data and data_to_ports
7 months ago
Jan Petykiewicz 16567c8a66 move builder.port_utils into utils.ports2data
and rename functions
7 months ago
Jan Petykiewicz 5452bc5608 more fixes and improvements 7 months ago
Jan Petykiewicz d9fe295f4f get things working with a LazyLibrary hack while we think about cycles 7 months ago
Jan Petykiewicz f4537a0feb Lots of progress on tutorials 7 months ago
Jan Petykiewicz c31d7dfa2c Add note about reproducibility for DXF 7 months ago
Jan Petykiewicz 61b381cfaa remove dead code 7 months ago
Jan Petykiewicz cca7cbaae1 formatting 7 months ago
Jan Petykiewicz b75c8de0c4 lots of fixes to get test_rep running 7 months ago
Jan Petykiewicz 92f7fce6ff improve gzipped file reproducibility
Mostly avoid writing the old filename and modification time to the gzip
header
7 months ago
Jan Petykiewicz ea87418bf5 clarify comment 7 months ago
Jan Petykiewicz e812c69bfb get rid of Mapping stuff on PortsList 7 months ago
Jan Petykiewicz 71db073a54 add todos 7 months ago
Jan Petykiewicz a6cb276468 add AbstractView 7 months ago
Jan Petykiewicz 090e86644a Move Abstract into its own file 7 months ago
Jan Petykiewicz a1073eca6b handle library=None 7 months ago
Jan Petykiewicz 0368cf7a00 library can generate abstracts 7 months ago
Jan Petykiewicz e288c3f5e0 B becomes BB for searchability 7 months ago
Jan Petykiewicz 3b8866732b PortsRef -> Abstract 7 months ago
Jan Petykiewicz 6b01b43559 flake8-aided fixes 7 months ago
Jan Petykiewicz db9b39dbc0 fix more type issues 7 months ago
Jan Petykiewicz 557c6c98dc more wip -- most central stuff is first pass done 7 months ago
Jan Petykiewicz 6549faddbb wip -- more fixes 7 months ago
jan 9efb6f0eeb wip 7 months ago
jan d9ae8dd6e3 wip 7 months ago
Jan Petykiewicz f7902fa517 busL -> mpath 7 months ago
Jan Petykiewicz 2635c6c20c some type updates 7 months ago
Jan Petykiewicz c7f3e7ee52 Remove support for dose
Since there isn't GDS/OASIS level support for dose, this can be mostly
handled by using arbitrary layers/dtypes directly. Dose scaling isn't
handled as nicely that way, but it corresponds more directly to what
gets written to file.
7 months ago
Jan Petykiewicz f7a2edfe23 fix some type-related issues 7 months ago
Jan Petykiewicz a0ca53f57a get rid of "identifier" 7 months ago
jan 7ca017d993 wip again 7 months ago
jan db9a6269a1 delete duplicate utils submodule 7 months ago
Jan Petykiewicz 6f696bfc71 partial work on device libraries 7 months ago
Jan Petykiewicz f7b8f2db0c various fixes 7 months ago
Jan Petykiewicz e3511ed852 remove duplicatre __delitem__ 7 months ago
Jan Petykiewicz a4f89e6f48 improve docs 7 months ago
Jan Petykiewicz 5f35e8c8e3 indirect type spec for Pattern 7 months ago
jan 52f0b4aa93 Add lib types 7 months ago
jan c95b2f4c0d bifurcate Device into DeviceRef 7 months ago
Jan Petykiewicz e932687210 make error message prettier 7 months ago
jan 7aaf73cb37 WIP: make libraries and names first-class! 7 months ago
Jan Petykiewicz f834ec6be5 Avoid generating a container if only a single port is passed 7 months ago
Jan Petykiewicz 885b259fb7 allow bounds to be passed as args 7 months ago
Jan Petykiewicz 3f986957ac allow passing a single Tool to be used as the default 7 months ago
Jan Petykiewicz 1c3c032434 Add functionality for building paths (single use wires/waveguides/etc) 7 months ago
Jan Petykiewicz afcbd315ae Fix extra vertex added during OASIS loading 1 year ago
jan 8edb7b0956 round().astype() -> rint(...) 1 year ago
Jan Petykiewicz 5b5cbe94d3 Move from setuputils and setup.py to hatch and pyproject.toml 1 year ago
Jan Petykiewicz a713967911 Add an alternate constructor for axis-aligned 2D grids 1 year ago
Jan Petykiewicz 51b7021bdc bump version to 2.7 2 years ago
Jan Petykiewicz b188589b60 Fix / simplify some cases where the arc is a sector 2 years ago
Jan Petykiewicz eb9682b1b8 Avoid calling new.unlock() in __deepcopy__()
since the new object's properties aren't necessarily deepcopied yet...
2 years ago
Jan Petykiewicz 48b28351ed speed up GDS writing
by preallocating xy array and directly rounding to target dtype
2 years ago
Jan Petykiewicz bfabd351c4 fix circular import 2 years ago
jan 4cc824526b fix deepcopy for locked shapes 2 years ago
Jan Petykiewicz e48183ee0b dose==1 is the identity situation 2 years ago
Jan Petykiewicz 6886360f6d fix getting displacements in Arbitrary repetition 2 years ago
Jan Petykiewicz b5ddb5749c fix calculation of displacements 2 years ago
jan 67d312162a speed up as_pattern()
mainly used by `flatten()`
2 years ago
Jan Petykiewicz 97db83a1d5 add utils.vertices.poly_contains_points 2 years ago
Jan Petykiewicz fd0b2ba4cd no longer ignore numpy types 2 years ago
Jan Petykiewicz 9f1c7aea01 add _displacements to __slots__ 2 years ago
Jan Petykiewicz 3640de27c7 Fix OASIS loading when strings are stored by-reference 2 years ago
Jan Petykiewicz ed9b0df057 fix scaling for objects with repetitions 2 years ago
jan a4aa50d814 fix another instance where numpy prohibits using `not bounds` 2 years ago
jan 2b8195ad3e move dev2pat and pat2dev into masque.builder.port_utils 2 years ago
jan 36f6edac21 fix wrong var name 2 years ago
jan 210f5c21bc wrap_device can be used on DeviceLibrary 2 years ago
jan bfee560693 simplify type hints 2 years ago
jan f4c2357737 fix type hint 2 years ago
jan 20be409341 fix numpy complaining about .any() / .all() 2 years ago
jan d8b60da827 use_ours & use_theirs should be passed verbatim to the underlying library 2 years ago
jan 3b0ef1e08d always couple LibDeviceLibrary keys to the underlying Library
See comment for why this is necessary
2 years ago
jan 7603a7a1c8 fix typevar naming 2 years ago
jan 0c1954c9d1 fix missing imports 2 years ago
jan 30025ba081 fixup dxf read 2 years ago
jan 5ef34794ff keep ordering stable for same-y ports 2 years ago
jan c8b4075fcc Avoid circular import 2 years ago
jan 40b98b2511 add missing colon 2 years ago
jan 0471addd65 add get_bounds_nonempty 2 years ago
jan 780d1ca97f export LibDeviceLibrary 2 years ago
jan fc7a6c6f4a fix some unused code 2 years ago
jan 81430fe632 add LibDeviceLibrary 2 years ago
jan 6a1208bc33 add some helper functions to libraries 2 years ago
jan f36350ebee Add some warnings around cache invalidation when mutating items 2 years ago
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
2 years ago
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
2 years ago
jan 86315fc32b improve DeviceLibrary docstring 2 years ago
jan f178e94d82 remove old overloads 2 years ago
jan 7612a2660c add DeviceLibraryError 2 years ago
Jan Petykiewicz 7aa850a239 add todo note 2 years ago
Jan Petykiewicz 9a9a05d1d7 add guillotine_bssf_sas 2 years ago
Jan Petykiewicz c2994b74bd add utils.pack2d.pack_patterns 2 years ago
Jan Petykiewicz a9e3bf8b2a return a set of rejected indices 2 years ago
Jan Petykiewicz fc1a0f5a5a break apart utils into submodules, and add utils.pack2d 2 years ago
jan a4fe3d9e2e Use ArrayLike and NDArray wherever possible. Some type fixes and some related corner cases 2 years ago
jan 89f327ba37 reformat some multiline arg lists and add missing 'None' return types 2 years ago
Jan Petykiewicz 47e8cab73c fix format string now that ptypes are str-typed 3 years ago
Jan Petykiewicz a92ab9425b typo in 4788fa3c 3 years ago
Jan Petykiewicz 576077c461 add docstring for Pattern.rename() 3 years ago
Jan Petykiewicz 4788fa3ca5 add Device.rename() 3 years ago
Jan Petykiewicz dbee0027b2 fix wrap_repated_shapes for labels 3 years ago
Jan Petykiewicz 52c6634a25 fix port comparison regression 3 years ago
Jan Petykiewicz 886bd59726 should be casting with numpy.array() not .ndarray() 3 years ago
Jan Petykiewicz 4796676a4e use ArrayLike when accepting pseudo-ndarrays 3 years ago
Jan Petykiewicz 3aefa644e5 fix type annotations for Device.__getitem__ 3 years ago
Jan Petykiewicz 65466a5986 Force keyword args in more cases 3 years ago
Jan Petykiewicz 21ef4207df Enable repetition arg for other Polygon constructors 3 years ago
Jan Petykiewicz 78a4416f4c Fix wrap_repeated_shapes 3 years ago
Jan Petykiewicz 0d733bdc6f Breaking change: Use string-valued ptypes, with default value 'unk' 3 years ago
jan 44b08a8dae bump version to 2.5 3 years ago
jan e2fdd5a347 make klamath the default gdsii reader/writer, and install it automatically
python-gdsii code is now under masque.file.python_gdsii
3 years ago
jan 689312cc87 don't include newlines in version string 3 years ago
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. 3 years ago
Jan Petykiewicz 8ad4082f6d Fix offset complaining if it gets a Vec3 3 years ago
Jan Petykiewicz a5900f6ade BREAKING change shape identifers generated when flattening 3 years ago
Jan Petykiewicz db4148a0ff Don't trash label identifiers 3 years ago
Jan Petykiewicz 7225fd5715 add traceback to port type warnings 3 years ago
jan 1dc7d5bd56 2-element paths are not polygons 3 years ago
jan 5aa41f5e12 fix reading lwpolylines 3 years ago
Jan Petykiewicz 939ad5451c enable pickling of LockableImpl 3 years ago
Jan Petykiewicz 88d42807be label axes in visualization 3 years ago
Jan Petykiewicz 29ee13a8ab fix comment 3 years ago
Jan Petykiewicz cf2413f9e3 remove_colinear_vertices implementation assumes no duplicate vertices, so we need to remove them first 3 years ago
Jan Petykiewicz bce3d9f37c Avoid placing duplicate vertices when polygonizing an arc 3 years ago
Jan Petykiewicz 0fce7fd099 bump version to v2.4 3 years ago
Jan Petykiewicz 479e0c3c2e fix mirroring for rotated ports/devices 3 years ago
Jan Petykiewicz b7383a30ca fix mirroring across y for arcs and ellipses 3 years ago
Jan Petykiewicz 177f9952a5 Add builder submodule, Device and Port definitions, and DeviceLibrary 4 years ago
Jan Petykiewicz ad51801c5d minor fixes to rotate() 4 years ago
Jan Petykiewicz 6c4fe0e9e4 Add octagon constructor 4 years ago
Jan Petykiewicz 8e1c05cf73 add mirror2d() to Rotatable 4 years ago
Jan Petykiewicz 09a5e4a2db type-related fixes and improvements 4 years ago
Jan Petykiewicz 4308bdeb56 Add parent class MasqueError and use it for traits and all other exceptions 4 years ago
Jan Petykiewicz 3653a33534 add implementation notes 4 years ago
Jan Petykiewicz 6402c6242e add `full_load` option to `load_library` 4 years ago
Jan Petykiewicz 6ead7231a8 make `raw_mode`` an arg to `read()` 4 years ago
Jan Petykiewicz 74a0a4f7d2 bump version to 2.3 4 years ago
Jan Petykiewicz ccb42e220f cosmetic and doc changes 4 years ago
Jan Petykiewicz b9322be77f move VERSION into a .py file that gets directly parsed by setup.py
avoids possible issues with pyinstaller
4 years ago
Jan Petykiewicz 1b400605b1 use addsp() to consolidate some existing code 4 years ago
Jan Petykiewicz 3a9eca91b5 add `addsp()` convenience function to Pattern 4 years ago
Jan Petykiewicz 517a6dec98 remove duplicate setattr definition
already set by LockableImpl
4 years ago
Jan Petykiewicz 2bc03cbbf4 improve some more type annotations using TypeVar 4 years ago
Jan Petykiewicz eb11f31960 improve type hints for Library 4 years ago
Jan Petykiewicz f364970403 style and type fixes (per flake8)
could potentially fix some bugs in `Library` class and dxf reader
4 years ago
Jan Petykiewicz f6ad272c2c bump version to v2.2 4 years ago
Jan Petykiewicz 7ed3b26b02 skip assignment in dfs() to avoid PatternLockedError on unmodified patterns 4 years ago
Jan Petykiewicz 5bc82b9d49 __iter__ should actually return an iterator 4 years ago
Jan Petykiewicz 0f35eb5e58 fix dxf reader 4 years ago
Jan Petykiewicz 4a7e20d6ba improve type annotations in dxf writer 4 years ago
Jan Petykiewicz c23c391d83 disable locking for annotations
until I can find a better way to do it
4 years ago
Jan Petykiewicz 08cf7ca4b1 avoid calling to_polygons on Polygons (for speed) 4 years ago
Jan Petykiewicz de4726955b add load_libraryfile convenience wrapper 4 years ago
Jan Petykiewicz ce5d386a24 Determine if an existing file is gzipped based on magic bytes, not suffix 4 years ago
Jan Petykiewicz 03a359e446 add more dict-like methods 4 years ago
Jan Petykiewicz b873a5ddf3 make __getitem__ call get_primary rather than the other way around
this makes subclassing easier
4 years ago
Jan Petykiewicz 682a99470f Bump version to 2.1 4 years ago
Jan Petykiewicz aa5696d884 Add Library management functionality 4 years ago
Jan Petykiewicz 7cad46fa46 add klamath-based gds read/write 4 years ago
Jan Petykiewicz c6684936cf Improve docs, error messages, and type annotations 4 years ago
Jan Petykiewicz 84f811e9d1 move clean_vertices functionality out into a common function 4 years ago
Jan Petykiewicz 0e4b6828df Disable height warning for DXF 4 years ago