Patrick Kidger
Patrick Kidger
Interesting that `kw_only=True` seems to resolve things, I'd need to check why that is! Other than that, this is actually expectd Equinox behaviour: in subclasses, we prefer inheriting `__init__` methods...
> Thanks for the swift response ! So if I understand correcly, when an Equinox supermodule implements a custome `__init__`, and one of its submodule introduces new fields, we always...
Ah, I'm aware of this. The workaround is to explicitly define a custom `MyClass.__init__` method. Unfortunately I don't know of a good way to fool the typechecker on this one....
Thanks for the report ! Unfortunately I'm afraid I can't duplicate this, using `python=3.11.8`, `pyright==1.1.399` and `equinox==0.11.11`. FWIW I am running pyright via `pip install pyright; pyright file.py`.
Right, `pylint` is probably in the wrong here and failing to notice our usage of `dataclass_transform`. (I'd suggest switching to ruff anyway, it's by far the more common and performant...
They should usually both get the exact same performance! The reason for this is that they usually end up expressing pretty much the same JAX-level computation graph, and at that...
AFAIK it's not really possible. - Adding a new dispatch rule is mutating global state (the methods table); - I do not know of any way to have JAX automatically...
That sounds much more reasonable to me! Having the extent of a cross-library interaction be a "hey, did you really mean this?" warning sounds like a good compromise I think.
Actually, I think we might already support traced tolerances? At least, I think that was what I was aiming for when originally writing Optimistix. I think this might just be...
@matillda123 do you have an example of the kind of thing you'd like to do, using a particular solver for clarity? :)