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