723d856915
repetitions affect bounds
2023-10-15 16:18:33 -07:00
079250e665
wip get_bounds
2023-10-15 16:18:33 -07:00
8959101162
faster get_bounds for manhattan refs
2023-10-15 16:18:33 -07:00
234264c0af
Make rotation matrix immutable and cache the value
2023-10-15 16:18:33 -07:00
93ab0a942d
misc fixes
2023-10-15 16:18:33 -07:00
9a077ea2df
move to dicty layers and targets
2023-10-15 16:18:33 -07:00
6b240de268
delete FlatBuilder (Builder subsumes it)
2023-10-15 16:18:33 -07:00
3028ea0941
pather fixes / type updates
2023-10-15 16:18:33 -07:00
5f24ceb13f
add RenderPather
2023-10-15 16:18:33 -07:00
75821c4ff9
comment
2023-10-15 16:18:33 -07:00
2ed868ec25
split out find_ptransform (static version, only need ports)
2023-10-15 16:18:33 -07:00
cbe5c07f8f
add todo about underscore
2023-10-15 16:18:33 -07:00
b13d7286e5
shorten labels
2023-10-15 16:18:33 -07:00
de0d35d3d7
cleanup
2023-10-15 16:18:33 -07:00
1008b6aabd
split pather into its own file
2023-10-15 16:18:33 -07:00
bb3caf1ad7
comment updates
2023-10-15 16:18:33 -07:00
c5c31a5f0f
only mutable variant should have rename_top
2023-10-15 16:18:33 -07:00
08291da167
fixes
2023-10-15 16:18:33 -07:00
68318a1382
add functions for dealing with the topcell and its name
2023-10-15 16:18:33 -07:00
31cf0047e7
add mktree
2023-10-15 16:18:33 -07:00
f0a71bfb8b
redo library class naming
2023-10-15 16:18:33 -07:00
a07446808a
should be union; we want to exclude dangling refs
2023-10-15 16:18:33 -07:00
340fe7f656
fixes to subtree and lshift, as well as some cast() improvements
2023-10-15 16:18:33 -07:00
45265faec4
oneshot available at toplevel
2023-10-15 16:18:33 -07:00
46a7f60460
add @oneshot decorator
2023-10-15 16:18:33 -07:00
d7e89ef5c8
lshift operator shouldn't special-case trees
...
Instead, just call .tops() if there are multiple cells, and fail if
there are multiple tops
2023-10-15 16:18:33 -07:00
0efd9afd16
find_toplevel -> tops
2023-10-15 16:18:33 -07:00
64413f69d4
create no longer exists. Make mk() give similar ordering as mkpat()
2023-10-15 16:18:33 -07:00
37e4c03547
fix return value
2023-10-15 16:18:33 -07:00
94691dac85
top is always a string
2023-10-15 16:18:33 -07:00
4eee4d19e9
cleanup
2023-10-15 16:18:33 -07:00
cbfbdf66a1
get rid of NamedPattern in favor of just returning a tuple
2023-10-15 16:18:33 -07:00
9115371b19
Drop ports when repeating
2023-10-15 16:18:33 -07:00
cf634f1c16
port translation is already handled in Pattern
2023-10-15 16:18:33 -07:00
ea2eaa4603
fix rounding
2023-10-15 16:18:33 -07:00
b744a11e8e
str(namedpattern) should just return its name
2023-10-15 16:18:33 -07:00
f54193edf0
updates to Pattern.polygonize()
2023-10-15 16:18:33 -07:00
59c8f47f4d
update to newer ezdxf
2023-10-15 16:18:33 -07:00
e5ed28a854
Need to check against self, since we may add new conflicts as we go
2023-10-15 16:18:33 -07:00
b4f36417fd
Pipe-operator does not support forward references
2023-10-15 16:18:33 -07:00
45081c2d31
add polygon() and label() convenience methods
2023-10-15 16:18:33 -07:00
4482ede3a7
use Self type
2023-10-15 16:18:33 -07:00
1463535676
modernize type annotations
2023-10-15 16:18:33 -07:00
ada8c591a0
fix error message
2023-10-15 16:18:33 -07:00
9d42df831e
remove per-shape polygonization state
2023-10-15 16:18:33 -07:00
7befe89af3
fixes based on mypy
2023-10-15 16:18:33 -07:00
f766a3ad64
add prune_empty and delete()
2023-10-15 16:18:33 -07:00
85a2eb6acc
fixes/updates
2023-10-15 16:18:33 -07:00
069dde3648
Drop ports by default
2023-10-15 16:18:33 -07:00
e0939049dd
force 'wb' mode for gzipfile
2023-10-15 16:18:33 -07:00
88adc08259
data_to_ports max_depth default to 0
...
Makes it more compatible with LazyLibrary -- with recursive approach, we
have to load all the subcells to run ports2data, but those subcells may
or may not exist (e.g. partial library, or maybe we've removed some
duplicates-to-be prior to merging with a different lib)
2023-10-15 16:18:33 -07:00
4ab718d578
pass along library for bounds
2023-10-15 16:18:33 -07:00
f834aaee47
fix precache
2023-10-15 16:18:33 -07:00
27d87a988d
redo library merging
2023-10-15 16:18:33 -07:00
6f97f7e6db
pass along tools
2023-10-15 16:18:33 -07:00
d0f76d150f
Make default quiet for underscores
2023-10-15 16:18:33 -07:00
5ffcadb362
always apply postprocess
2023-10-15 16:18:33 -07:00
2ccef554db
misc fixes
2023-10-15 16:18:33 -07:00
d349aa3366
Revert "allow ports2data to take a tree"
...
This reverts commit 44f823c736
.
LazyLibrary can't take Trees anymore, so no need for it.
2023-10-15 16:18:33 -07:00
680da46f5c
LazyLibrary should not contain Tree
s
...
altering itself during iteration is not a good idea
2023-10-15 16:18:33 -07:00
59a986546c
missing import
2023-10-15 16:18:33 -07:00
19ac45a4f4
fix type for __contains__
2023-10-15 16:18:33 -07:00
db7a98bb0f
allow ports2data to take a tree
2023-10-15 16:18:33 -07:00
8687badac5
misc fixes
2023-10-15 16:18:33 -07:00
4a6584a60a
Only allow 1-sized Libraries
2023-10-15 16:18:33 -07:00
4a94259249
Allow lshift to operate on any library. If only one name, return it, else None
2023-10-15 16:18:33 -07:00
7cc732248e
add missing functions to tree
2023-10-15 16:18:33 -07:00
98728521fd
add Pather.mk()
2023-10-15 16:18:33 -07:00
460222ce6e
add name arg
2023-10-15 16:18:33 -07:00
f1a380b170
pather reorganization/clenaup
2023-10-15 16:18:33 -07:00
38585e5a9e
add lshift operator to MutableLibrary
2023-10-15 16:18:33 -07:00
2449486a28
set default for library to None
2023-10-15 16:18:33 -07:00
4fc2e67b62
Turn Builder into a subset of Pather
2023-10-15 16:18:32 -07:00
039320d180
fix add_tree operator
2023-10-15 16:18:32 -07:00
853c20e8df
Allow LazyLibrary to store Trees as well?
2023-10-15 16:18:32 -07:00
f642c226c7
Use lshift for tree combination
2023-10-15 16:18:32 -07:00
103eb4f1f8
stringy type
2023-10-15 16:18:32 -07:00
abc721cf67
ergonomics
2023-10-15 16:18:32 -07:00
d8e789f179
Add Tree as a possible way to allow construction of whole subtrees at once
2023-10-15 16:18:32 -07:00
234557dc93
Add move_references() and auto-move references during add()-with-rename
...
Also remove enable_cache, since we now rely on the cache.
2023-10-15 16:18:32 -07:00
439d5914e0
implement auto-renaming during merge, and change _merge() to support it
2023-10-15 16:18:32 -07:00
ac9776628a
remove some trailing undescores
2023-10-15 16:18:32 -07:00
ab8fd9b351
add NamedPattern
2023-10-15 16:18:32 -07:00
1a9116cdbe
add .create()
2023-10-15 16:18:32 -07:00
7a8a3ef3c7
note in comments
2023-10-15 16:18:32 -07:00
f8b5cec340
Add recurse arg to get_bounds
2023-10-15 16:18:32 -07:00
1598582865
remove log messages
2023-10-15 16:18:32 -07:00
42ee4db989
Return WrapLibrary from read() and readfile()
2023-10-15 16:18:32 -07:00
a35bf9770a
Default to adding ports at the origin
2023-10-15 16:18:32 -07:00
5c48a28661
some cleanup
2023-10-15 16:18:32 -07:00
a8da0fc429
add FlatBuilder
2023-10-15 16:18:32 -07:00
cb87543e0c
import ports2data at top level
2023-10-15 16:18:32 -07:00
e5029ae21d
add library .rename(...)
2023-10-15 16:18:32 -07:00
0172b7488e
missing comma
2023-10-15 16:18:32 -07:00
d44374bf1f
writefile should write to a temporary file first
2023-10-15 16:18:32 -07:00
5fcd31a719
add name_and_set
2023-10-15 16:18:32 -07:00
2940316c48
add missing comments
2023-10-15 16:18:32 -07:00
c0e4ee1b6b
Allow library __setitem__ to take in either Pattern or Callable
...
No longer need it to be Generic!
2023-10-15 16:18:32 -07:00
963918d1d9
various fixes and cleanup
...
mainly involving ports_to_data and data_to_ports
2023-10-15 16:18:32 -07:00
16567c8a66
move builder.port_utils into utils.ports2data
...
and rename functions
2023-10-15 16:18:32 -07:00