Releases: Quantco/ndonnx
Releases · Quantco/ndonnx
0.9.3 (2024-10-25)
0.9.3 (2024-10-25)
- Reduced the number of unnecessary casts in
ndonnx.argmax
andndonnx.argmin
.
0.9.2 (2024-10-03)
0.9.2 (2024-10-03)
- Technical release that adds back source distribution.
0.9.1 (2024-10-01)
0.9.1 (2024-10-01)
Bug fix
- Fixed a bug in the construction of nullable arrays using
ndonnx.asarray
where the shape of the null field would not match the values field if the providednp.ma.MaskedArray
's mask was scalar. - Fixed a bug in the implementation of
ndonnx.ones_like
where the static shape was being used to construct the array of ones.
0.9.0 (2024-08-30)
0.9.0 (2024-08-30)
New features
- User defined data types can now define how arrays with that dtype are constructed by implementing the
make_array
function. - User defined data types can now define how they are indexed (via
__getitem__
) by implementing thegetitem
function. ndonnx.NullableCore
is now public, encapsulating nullable variants ofCoreType
s exported by ndonnx.
Bug fixes
- Various operations that depend on the array's shape have been updated to work correctly with lazy arrays.
ndonnx.cumulative_sum
now correctly applies theinclude_initial
parameter and works around missing onnxruntime kernels for unsigned integral types.ndonnx.additional.make_nullable
applies broadcasting to the provided null array (instead of reshape like it did previously). This allows writingmake_nullable(x, False)
to turn an array into nullable.- User-defined data types that implement
ndonnx._core.UniformShapeOperations
may now implementndonnx.where
without requiring both data types be promotable.
Breaking change
- Iterating over dynamic dimensions of
ndonnx.Array
is no longer allowed since it commonly lead to infinite loops when used without an explicit break condition.
0.8.0 (2024-08-22)
0.8.0 (2024-08-22)
Bug fixes
- Fixes parsing numpy arrays of type
object
(consisting of strings) asutf8
. Previously this worked correctly only for 1d arrays.
Breaking change
ndonnx.Array.shape
now strictly returns atuple[int | None, ...]
, with unknown dimensions denoted byNone
. This relies on ONNX shape inference for lazy arrays.
0.7.0 (2024-08-12)
0.7.0 (2024-08-12)
New features
- Expose the
ndonnx.isdtype
function. - Custom data types can now override array functions:
ndonnx.zeros
ndonnx.zeros_like
ndonnx.ones
ndonnx.ones_like
ndonnx.full
ndonnx.full_like
ndonnx.arange
ndonnx.arange
ndonnx.eye
ndonnx.tril
ndonnx.triu
ndonnx.linspace
ndonnx.where
ndonnx._experimental.UniformShapeOperations
now provides implementations of shape operations that are generic across all data types where each constituent field has the same shape (that of the overall array).
Other changes
- Fixed various deprecation warnings.
- Invoking a function using arrays with data types that lack a corresponding implementation now raise a
UnsupportedOperationError
.
Bug fixes
- Numerical operations like
ndx.sin
now raiseUnsupportedOperationError
when invoked using invalid data types likendx.utf8
rather than implicitly casting. - Fixes bug causing a promotion error when implementing numerical operations like
ndx.add
that involve type promotion. - Fixes scalar promotion logic to more accurately reflect the Array API standard. Promotion requires at least one array to be present and scalars adopt the dtype of the arrays being promoted with it.
ndx.utf8
andndx.nutf8
cannot be promoted with any other dtypes. - Fixes failure when broadcasting nullable data type arrays together in
ndx.broadcast_arrays
.
0.6.1 (2024-07-12)
0.6.1 (2024-07-12)
Bug fixes
- Division now complies more strictly with the Array API standard by returning a floating-point result regardless of input data types.
0.6.0 (2024-07-11)
Other changes
- Function
ndonnx.promote_nullable
is now publicly exported
0.5.0 (2024-07-01)
0.5.0 (2024-07-01)
Other changes
- ndonnx now exports type annotations.
Bug fixes
__array_namespace__
now accepts the optionalapi_version
argument to specify the version of the Array API to use.
0.4.0 (2024-05-16)
0.4.0 (2024-05-16)
Breaking changes
- The constant propagated value is no longer accessed from the
eager_value
property but instead theto_numpy()
method. - Non Array API functions have been moved to the
ndonnx.additional
namespace.