aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNao Pross <np@0hm.ch>2024-03-06 12:01:39 +0100
committerNao Pross <np@0hm.ch>2024-03-06 12:01:39 +0100
commitfd26d918b4723c85ee762c6479fddc175c085acf (patch)
tree96ac175b44683f9c878df4b1c4a0c98688f6b36a
parentReplace Protocols with ABC in mdpoly.abc (diff)
downloadmdpoly-fd26d918b4723c85ee762c6479fddc175c085acf.tar.gz
mdpoly-fd26d918b4723c85ee762c6479fddc175c085acf.zip
Rename mdpoly.types to mdpoly.index as it only contains index types
-rw-r--r--mdpoly/abc.py2
-rw-r--r--mdpoly/algebra.py2
-rw-r--r--mdpoly/index.py (renamed from mdpoly/types.py)5
-rw-r--r--mdpoly/leaves.py2
-rw-r--r--mdpoly/representations.py2
-rw-r--r--mdpoly/state.py4
-rw-r--r--mdpoly/util.py6
7 files changed, 12 insertions, 11 deletions
diff --git a/mdpoly/abc.py b/mdpoly/abc.py
index 811910b..0a2e783 100644
--- a/mdpoly/abc.py
+++ b/mdpoly/abc.py
@@ -1,6 +1,6 @@
""" Abstract Base Classes of MDPoly """
-from .types import Number, Shape, MatrixIndex, PolyIndex
+from .index import Number, Shape, MatrixIndex, PolyIndex
from .constants import NUMERICS_EPS
from .util import iszero
diff --git a/mdpoly/algebra.py b/mdpoly/algebra.py
index abd15d5..a07c4d6 100644
--- a/mdpoly/algebra.py
+++ b/mdpoly/algebra.py
@@ -4,7 +4,7 @@ from .abc import Leaf, Expr, Repr
from .leaves import Nothing, Const, Param, Var
from .errors import AlgebraicError, InvalidShape
from .state import State
-from .types import Shape, MatrixIndex, PolyIndex
+from .index import Shape, MatrixIndex, PolyIndex
from .representations import HasRepr
from typing import Protocol, Self, Any, runtime_checkable
diff --git a/mdpoly/types.py b/mdpoly/index.py
index 9e4ecb7..2837a46 100644
--- a/mdpoly/types.py
+++ b/mdpoly/index.py
@@ -13,11 +13,6 @@ if TYPE_CHECKING:
Number = int | float
-def filtertype(t: type, seq: Iterable):
- """ Filter based on type. """
- yield from filter(lambda x: isinstance(x, t), seq)
-
-
class Shape(NamedTuple):
""" Describes the shape of a mathematical object. """
rows: int
diff --git a/mdpoly/leaves.py b/mdpoly/leaves.py
index dbfd332..af43435 100644
--- a/mdpoly/leaves.py
+++ b/mdpoly/leaves.py
@@ -1,5 +1,5 @@
from .abc import Leaf, Repr
-from .types import Number, Shape, MatrixIndex, PolyVarIndex, PolyIndex
+from .index import Number, Shape, MatrixIndex, PolyVarIndex, PolyIndex
from .state import State
from .errors import MissingParameters
from .representations import HasRepr
diff --git a/mdpoly/representations.py b/mdpoly/representations.py
index b7943ad..b541c3e 100644
--- a/mdpoly/representations.py
+++ b/mdpoly/representations.py
@@ -1,5 +1,5 @@
from .abc import Repr
-from .types import Number, Shape, MatrixIndex, PolyIndex
+from .index import Number, Shape, MatrixIndex, PolyIndex
from .state import State
from typing import Protocol, Iterable
diff --git a/mdpoly/state.py b/mdpoly/state.py
index 70fca24..e0a6bc5 100644
--- a/mdpoly/state.py
+++ b/mdpoly/state.py
@@ -2,10 +2,10 @@ from __future__ import annotations
from typing import TYPE_CHECKING
from dataclasses import dataclass, field
-from .types import PolyVarIndex
+from .index import PolyVarIndex
if TYPE_CHECKING:
- from .types import Number
+ from .index import Number
from .leaves import Var, Param, Const
diff --git a/mdpoly/util.py b/mdpoly/util.py
index 937e7d4..c7f3b51 100644
--- a/mdpoly/util.py
+++ b/mdpoly/util.py
@@ -1,6 +1,7 @@
from .constants import NUMERICS_EPS
from itertools import tee, filterfalse
+from typing import Iterable
def partition(pred, iterable):
"""Partition entries into false entries and true entries.
@@ -30,3 +31,8 @@ def iszero(x: float, eps: float =NUMERICS_EPS) -> bool:
``eps`` or the default value at :py:data:`mdpoly.constants.NUMERICS_EPS`.
"""
return isclose(x, 0.)
+
+
+def filtertype(t: type, seq: Iterable):
+ """ Filter based on type. """
+ yield from filter(lambda x: isinstance(x, t), seq)