Apywire reports it can't handle circular dependency: https://github.com/alganet/apywire/blob/1c9a39df36a9385d8b34...
However, apywire also throws CircularWiringError if you make objects that have circular dependencies as well (we do not solve it).
The paper seems like a worth read. I skimmed over it, and it seems like an interesting solution: proxy-like objects that only allow construction-type interaction but no method calls or property access until the container fully realizes the instance.
Our overall syntax allows for that implementation in the future, and python in theory is flexible enough to allow us to go for that route.
It does seem like a lot of work, but I might try to do it (for objects, for the scalars it's impossible). I was looking for a nice feature to make the project more distinct!
Thanks for your feedback!
Thanks!
I've made the changes and they'll be on the next version.
gaigalas•1mo ago
The idea is quite simple: you create clean objects in pure python, but the glue between them can be expressed declaratively (also in python, or maybe a ini/toml/json/yaml config file).
I know there are some challenges with this approach, such as IDE support and auto-complete. However, tab-completing agents are quite good at working with apywire config files, and I've been quite comfortable maintaining object specs without a dedicated extension.
Would love to hear feedback!