Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This is primarily a bug fix release.
Runtime error messages (those from
eqx.error_if
, in particular when wrapped witheqx.filter_jit
) should now be compatible with PyCharm's debugger, and with certain multithreaded contexts. (Thanks @adam-hartshorne, @dlwh! Add_FilteredStderr.flush
. #828, Infinite recursion with the stderr wrapper thing #844, Now filtering pure_callback's messages via logs rather than at stderr. #849)Marking a
jax.Array
ornp.ndarray
as aneqx.field(static=True)
will now raise a warning. This was technically okay as long as you use it in certain very narrow contexts (e.g. to smuggle it into a JIT'd region without being traced), but in practice it was nearly always just a common new-user footgun. (Thanks @lockwo! Disable static arrays #800)Using
eqx.tree_at
for replacing empty tuples is improved. (Thanks @danielward27! _DistinctTuple is not a tuple causing errors in tree_at #818, Make _DinstinctTuple inherit from tuple #819)eqx.nn.RotaryEmbedding
no longer promote input dtypes to at least float32. (Thanks @knyazer! fix: RoPE embeddings do not preserve dtypes #836)Mypy now understands that
eqx.Module
s are dataclasses. (Pyright always did, but mypy needed a slightly different approach to appreciate this fact.) (Thanks @NeilGirdhar! Fix MyPy's view of _ModuleMeta #822)Multiple
eqx.Module
s participating in co-operative multiple inheritance (at least 5 inheriting from each other seem to be necessary?), with some of them overriding the__post_init__
s of others, should now follow their expected resolution order. (Thanks @NeilGirdhar! Equinox seems to break cooperative multiple inheritance #832, Fixes cooperative multiple inheritance with__post_init__
#834)Improvements for contributors: we now have a
.editorconfig
file, (thanks @NeilGirdhar! Add editorconfig #821) and test-time dependencies can now be installed aspip install equinox[tests]
(thanks @dlwh! Add [test] and update CONTRIBUTING #848)Doc improvements. (Thanks @garymm, @ColCarroll! Update parallelism.ipynb #804, Remove polyfill #805)