ed433861e3
make sure transform is float-typed
2023-10-20 23:15:38 -07:00
e710fa44b5
improve type annotations
2023-10-20 23:15:13 -07:00
9a7a5583ed
Add Tree/TreeView and allow Builder to ingest them
2023-10-20 23:14:47 -07:00
b4d31903c1
update required python version
2023-10-15 23:55:41 -07:00
d6ab8a1f34
Bump version to v3.0. Note that MAJOR BREAKING CHANGES were introduced almost everywhere in this version -- see the readme to understand how everything works now.
2023-10-15 23:12:33 -07:00
83e82db5da
doc typo
2023-10-15 23:10:58 -07:00
73ce794fec
import pack2d by default
2023-10-15 23:07:37 -07:00
3a6807707b
Add more docs
2023-10-15 23:07:28 -07:00
1bdb998085
Generalize underscore into SINGLE_USE_PREFIX
2023-10-15 23:01:47 -07:00
668d4b5d8b
docstring updates
2023-10-15 18:31:58 -07:00
2229ee5d25
surface BasicTool and PathTool at top level
2023-10-15 16:24:20 -07:00
6ba44e375b
remove todo
2023-10-15 16:21:51 -07:00
f12f14e087
Add RenderPather tutorial, tutorial README, and some minor doc updates
2023-10-15 16:18:34 -07:00
ef3bec01ce
Replicate routing using paths
2023-10-15 16:18:34 -07:00
5f5c78455b
Add missing final vertex when the path ends in a bend
2023-10-15 16:18:34 -07:00
1c7b0ce5e1
Start working on a pather tutorial
2023-10-15 16:18:34 -07:00
8c14401788
add Library.map_layers
2023-10-15 16:18:34 -07:00
4de82ab2ba
fix transition calculation
2023-10-15 16:18:34 -07:00
5a6826f8e5
stop taking in base_name -- tools can set their own cell names
2023-10-15 16:18:34 -07:00
bfd81f777c
Cleanup based on flake8 lint
2023-10-15 16:18:34 -07:00
dec084818a
some further work on Tool interface
2023-10-15 16:18:34 -07:00
590b6b36bd
No need for Builder
2023-10-15 16:18:34 -07:00
80e0c5daa8
path() should return a tree
2023-10-15 16:18:34 -07:00
5001664547
doc updates
2023-10-15 16:18:34 -07:00
333b21ecf4
more design pattern docs
2023-10-15 16:18:34 -07:00
0aa4a6ee7a
doc updates
2023-10-15 16:18:34 -07:00
fa7a850ec3
Add some notes on shorthand
2023-10-15 16:18:34 -07:00
621f8420f8
comment grammar
2023-10-15 16:18:34 -07:00
a3b356ac14
save new name on a separate line, for debugging convenience
2023-10-15 16:18:34 -07:00
2f9c7e61ee
add <= operator for library (returns an Abstract)
2023-10-15 16:18:34 -07:00
3245de99b3
Add NoReturn __contains__ with a more descriptive error message
2023-10-15 16:18:34 -07:00
c02c2f90ef
add mkport() for safely making ports
2023-10-15 16:18:34 -07:00
772e42ebf1
references to Pattern should be forward references
2023-10-15 16:18:34 -07:00
8d2d1ffd50
Allow Pattern.ref() to take an Abstract
2023-10-15 16:18:34 -07:00
ceaa4923ef
fix broken import
2023-10-15 16:18:34 -07:00
f40c74adb5
improve docs and variable names
2023-10-15 16:18:34 -07:00
9de382b856
Fix major bugs in presort
2023-10-15 16:18:34 -07:00
169e5a1f12
Lots of doc updates
2023-10-15 16:18:34 -07:00
d79a0a6388
get rid of Pather.mk()
2023-10-15 16:18:34 -07:00
6975787717
remove unused import
2023-10-15 16:18:34 -07:00
c4ff53a0ba
fix isinstance call arg order
2023-10-15 16:18:34 -07:00
3415a16cd1
Give a more explicit error message
2023-10-15 16:18:34 -07:00
0ea3b6625f
add missing end condition
2023-10-15 16:18:34 -07:00
272cfb7e48
fix arclength calculations giving invalid values or non-integral steps
2023-10-15 16:18:34 -07:00
8fe7b14f4b
repr updates
2023-10-15 16:18:34 -07:00
086d07a82d
Add the option to use explicit x= or y= in path_to
2023-10-15 16:18:33 -07:00
d02ea400a0
Move plug/place/interface to Pattern
...
Since Pattern has ports already, these should live in Pattern and get
wrapped elsewhere. Builder becomes a context-holder (holding .library
and .dead) and some code duplication goes away.
2023-10-15 16:18:33 -07:00
4bca0e2638
clean some old code
2023-10-15 16:18:33 -07:00
33377df883
add notes about ports
2023-10-15 16:18:33 -07:00
63e8f0b10e
fix old variable name
2023-10-15 16:18:33 -07:00