jan
4d58516049
Remove object locking/unlocking.
...
- It was *slow*. Often >50% of runtime for large designs.
- It didn't catch all corner cases. True immutability would require
language-level support.
- (minor) It doesn't play nice with type checking via mypy.
1 year ago
Jan Petykiewicz
ed9b0df057
fix scaling for objects with repetitions
2 years ago
jan
0471addd65
add get_bounds_nonempty
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
576077c461
add docstring for Pattern.rename()
3 years ago
Jan Petykiewicz
dbee0027b2
fix wrap_repated_shapes for labels
3 years ago
Jan Petykiewicz
4796676a4e
use ArrayLike when accepting pseudo-ndarrays
3 years ago
Jan Petykiewicz
78a4416f4c
Fix wrap_repeated_shapes
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
a5900f6ade
BREAKING change shape identifers generated when flattening
3 years ago
Jan Petykiewicz
88d42807be
label axes in visualization
4 years ago
Jan Petykiewicz
09a5e4a2db
type-related fixes and improvements
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
f364970403
style and type fixes (per flake8)
...
could potentially fix some bugs in `Library` class and dxf reader
4 years ago
Jan Petykiewicz
7ed3b26b02
skip assignment in dfs() to avoid PatternLockedError on unmodified patterns
4 years ago
Jan Petykiewicz
c6684936cf
Improve docs, error messages, and type annotations
4 years ago
Jan Petykiewicz
f51144ae6a
misc doc/import/typing fixes
4 years ago
Jan Petykiewicz
3f59168cec
Use chain() instead of adding lists
4 years ago
Jan Petykiewicz
0e04633f61
Force use of keyword args on most constructors
4 years ago
Jan Petykiewicz
49a3b4e322
add support for annotations
...
and other fixes
4 years ago
Jan Petykiewicz
629a6a9ba2
enable per-shape repetitions
4 years ago
Jan Petykiewicz
bab40474a0
Add repetitions and split up code into traits
4 years ago
Jan Petykiewicz
89bd1e6abe
only add new_children (marginally faster)
4 years ago
Jan Petykiewicz
a4b5776208
Don't return early, since we add patterns to memo before they've been checked
4 years ago
Jan Petykiewicz
1ae9225130
add rename() method for Pattern
4 years ago
Jan Petykiewicz
53d2a9ca1a
Only swap between tuple/list if actually necessary
4 years ago
Jan Petykiewicz
07ee25e735
add subpatterns_by_id()
4 years ago
Jan Petykiewicz
1976c6e684
Add `recursive` arg to referenced_patterns_by_id
4 years ago
Jan Petykiewicz
247b31a9d6
Don't include None in referenced_patterns_by_id() by default
4 years ago
Jan Petykiewicz
ee8f015172
add subpattern_t type (generalizattion of SubPattern and GridRepetition)
4 years ago
Jan Petykiewicz
c236fdb81b
Add __repr__ methods to most objects`
...
These are closer to what __str__ should be and will likely change in the
future.
4 years ago
Jan Petykiewicz
c79eee2a8c
Stricter locking (lock contained ndarrays and turn lists into tuples)
4 years ago
Jan Petykiewicz
79990e3806
cosmetic changes
4 years ago
Jan Petykiewicz
157df47884
Improve type annotations based on mypy errors
4 years ago
Jan Petykiewicz
d33afc2bfd
disambiguate some variable names
4 years ago
Jan Petykiewicz
f8e347c997
fix scale -> scale_by
4 years ago
Jan Petykiewicz
00394a62f0
Formally allow instances to point to None (i.e. an 'empty' pattern)
4 years ago
Jan Petykiewicz
334633662e
Remove extra __author__ declarations
4 years ago
Jan Petykiewicz
a4f556c3b3
clarify docs for referenced_patterns_by_id()
4 years ago
Jan Petykiewicz
e684bd0e40
add Pattern.find_toplevel()
...
Topological sort for lists of Pattern objects, useful for finding top
cell of gds
4 years ago
Jan Petykiewicz
9f27a5093a
add Pattern.referenced_patterns_by_name()
4 years ago
jan
5adabfd25a
Docstring format change
...
(new param and return format)
Also some minor code formatting fixes in utils
4 years ago
Jan Petykiewicz
e0db621595
allow locking of all objects
5 years ago
Jan Petykiewicz
e5f28a7a92
Fix Pattern.get_bounds()
5 years ago
Jan Petykiewicz
6801ee7fc0
Account for rotation/mirror in Pattern.dfs()
5 years ago
Jan Petykiewicz
b5bd7cd9c8
Pattern.get_bounds() should return None if it's empty
...
s
5 years ago