ndtools package#
- total_equality(cls: type[T], /) type[T][source]#
Class decorator that fills in missing multidimensional equality methods.
- Parameters:
cls (type[T]) – Class to be decorated.
- Returns:
The same class with missing multidimensional equality methods.
- Return type:
type[T]
Examples
import numpy as np from ndtools import total_equality @total_equality class Even: def __eq__(self, array): return ~((array % 2).astype(bool)) result = (np.arange(3) == Even()) expected = np.array([True, False, True]) assert (result == expected).all()
- total_ordering(cls: type[T], /) type[T][source]#
Class decorator that fills in missing multidimensional ordering methods.
- Parameters:
cls (type[T]) – Class to be decorated.
- Returns:
The same class with missing multidimensional ordering methods.
- Return type:
type[T]
Examples
import numpy as np from dataclasses import dataclass from ndtools import total_ordering @dataclass @total_ordering class Interval: lower: float upper: float def __eq__(self, array): return (array >= self.lower) & (array < self.upper) def __ge__(self, array): return array < self.upper result = (np.arange(3) == Interval(1, 2)) expected = np.array([False, True, False]) assert (result == expected).all() result = (np.arange(3) < Interval(1, 2)) expected = np.array([True, False, False]) assert (result == expected).all()