32 Commits
Author SHA1 Message Date
Patrick Kidger 6a64ef114e Now provides PyTreeDef, and can detect PyTrees via issubclass(x, PyTree) 2023-06-01 10:56:00 -07:00
Patrick Kidger 849b15db3b Added better docs; added PRNGKeys. Packaging with pyproject.toml.
Also added support for matching dtypes using regexes, and for nesting e.g. Shaped[Float[Array, "dim1 dim2"], "dim3"].
2023-05-10 15:27:25 -07:00
Patrick Kidger 46c7896c99 Transitive test now uses typeguard instead of beartype 2023-04-19 11:48:08 -07:00
Patrick Kidger c92b0d0ab1 Some improvements (#77)
* Various improvements.

- Added support for functions in symbolic dimensions, e.g. "min(foo,bar)", which were previously disallowed due to the presence of a comma. (#51)
- Added support for adding ignored names to dimensions, e.g. "cols=4". (#76)

* Now works with Python 3.10 A | B union types.
2023-04-13 19:18:55 +01:00
Patrick Kidger 158b8b8f0c Now works with torch.compile? (#72) 2023-04-13 18:53:14 +01:00
Patrick Kidger f0b240df5f Switched to ruff 2023-03-15 22:36:24 -07:00
Patrick Kidger a4d27c7cc1 Fixed _Jaxtyped.__get__, e.g. swallowing abstractmethod decorations 2023-03-15 22:27:36 -07:00
Patrick Kidger e03c1c329e We now have Float[np.ndarray, ...] <: np.ndarray. Added basic torch tests. (#68)
This required quite a lot of refactoring! JAX supports virtual subclass registration (its metaclass is ABCMeta) but NumPy does not, so we have to actually subclass `np.ndarray`.
Simple stuff like __base__ hacking fails due to deallocator conflicts.
2023-03-04 17:29:04 +00:00
Patrick Kidger fef81cf0a0 The import hook now supports BeartypeConf/BeartypeStrategy 2023-03-03 10:34:03 -08:00
Patrick Kidger 5600a1aac8 Fixed cloudpickle breaking, mark 2 2023-03-02 17:37:53 -08:00
Patrick Kidger 2b339715f9 Fixed cloudpickle breaking 2023-03-02 12:35:38 -08:00
Patrick Kidger ffc56bf782 Edge case fix 2023-02-25 17:38:45 -08:00
Patrick Kidger e2f004afd4 Added support for jax.typing.ArrayLike; now works with PyTorch's bool 2023-02-25 17:01:27 -08:00
Patrick Kidger 81c56052e5 Fixes for some new failures. (Where did they come from?) (#65)
* Fixes for some new failures. (Where did they come from?)

* Fixed isort?
2023-02-16 10:08:57 -08:00
Brent Yi 4b3f834e12 Fix vanilla dataclasses (#56) 2023-01-15 10:52:18 +01:00
Patrick Kidger 7dba3516c2 Fixed working with the new (unreleased) version of typeguard (#53) 2022-12-29 17:46:25 +00:00
Patrick Kidger a220df9964 The import hook now decorates dataclass __init__ methods (#48) 2022-11-16 13:38:04 -08:00
Peter Roelants d3651ca70e NamedTuple example (#36) 2022-10-03 07:40:51 -07:00
Patrick Kidger 39439c2790 More fixes (#27)
* Edge-case doc fixes for parameterising types with PyTrees or AbstractDtypes

* Fixes for threading

* version bump
2022-09-20 15:12:21 -07:00
Patrick Kidger c2e9d913d5 Fixed jaxtyped breaking descriptors. Fixed long module names. (#25) 2022-09-19 22:40:25 -07:00
Patrick Kidger 62ddcc25b5 Threading fix (#24) 2022-09-16 08:04:28 -07:00
Patrick Kidger 01f8f20bf5 Fixed a few names 2022-09-07 12:20:42 -07:00
Patrick Kidger a53fe6af57 Changes from feedback:
- Float32 introduced to replace f32 (etc.)
- Old f32 aliases were previously around for backward-compatibility, but
  the code is pretty hideous, and all stakeholders are now on board
  through RFC #13.
- Overall feedback was that Int{Sign,Unsign} was too long and not enough
  like numpy. Changed to Int, UInt, and Integer.
2022-09-07 11:09:48 -07:00
Patrick Kidger 48e8131247 Added jaxtyping.Array=jnp.ndarray 2022-08-30 12:56:47 -07:00
Patrick Kidger 903000f3d5 Rewrote syntax 2022-08-30 12:47:45 -07:00
Patrick Kidger 07259aa5c8 Added support for symbolic expressions in axes. Closes #9. 2022-08-01 01:00:18 +01:00
Patrick Kidger 6ff4620d1a Broadcast+variadic is now more lenient, and supports anything broadcastable together. Closes #8 2022-07-31 23:59:20 +01:00
Patrick Kidger 6e2837e5b7 Tidied up _#* into acting as prefixes, regardless of order. Closes #10 2022-07-31 23:45:40 +01:00
Patrick Kidger e162e1281a Made missing beartype result in test skips rather than tests not running 2022-07-12 10:07:42 +01:00
Patrick Kidger 9f75958b2d Make test/helpers.py a relative import 2022-07-12 10:03:19 +01:00
Patrick Kidger 81238e38e8 Update tests to make beartype optional 2022-07-11 19:27:16 +01:00
Patrick Kidger 0800e5fa38 renamed tests->test so release workflow works 2022-07-11 13:06:54 +01:00