| How well does Mandala extend beyond the Numpy ecosystem? I’m experimenting with Python CAD programming using the CadQuery and Build123d libraries. I’d like to speed up iteration time and intelligent caching would help. These libraries are pretty opinionated, which make it a bit challenging to imagine how to squeeze cache decorators in there. They have a couple different APIs, all of which ultimately use the Open CASCADE (OCCT) kernel via https://github.com/CadQuery/OCP CadQuery is a Fluent programming design that relies on long Method Chains [0]. It also has an experimental Free Function API [1]. Build123d iterates on CadQuery [2] with the goal of integrating better with the Python programming language. It has two supported APIs. The Builder API uses Python’s context manager (‘with’ blocks) heavily. The secondary Algebraic API is more functional, using arithmetic operators to define geometric operations [3]. The simplest way to integrate Mandala would probably be to use Build123d’s Algebraic API, wrapping subassemblies in functions decorated with @op. However, it would be even better to proactively cache function/argument pairs provided by the underlying APIs. For example, if I change 50% of the edges passed to a Fillet() call, it would be nice to have it complete in half the time. I guess this would require me to fork the underlying library and integrate Mandala at that level. [0] https://cadquery.readthedocs.io/en/latest/intro.html [1] https://cadquery.readthedocs.io/en/latest/free-func.html [2] https://build123d.readthedocs.io/en/latest/introduction.html... [3] https://build123d.readthedocs.io/en/latest/key_concepts_alge... |