From f6d62ad3a77d53834a9fb75e9fd126e2a9a2ed06 Mon Sep 17 00:00:00 2001
From: Frederik Hennig <frederik.hennig@fau.de>
Date: Tue, 5 Mar 2024 13:43:54 +0100
Subject: [PATCH] move types module to root

---
 mypy.ini                                                   | 3 +++
 src/pystencils/backend/arrays.py                           | 2 +-
 src/pystencils/backend/ast/expressions.py                  | 2 +-
 src/pystencils/backend/constants.py                        | 2 +-
 src/pystencils/backend/emission.py                         | 2 +-
 src/pystencils/backend/jit/cpu_extension_module.py         | 4 ++--
 src/pystencils/backend/kernelcreation/context.py           | 4 ++--
 src/pystencils/backend/kernelcreation/freeze.py            | 2 +-
 src/pystencils/backend/kernelcreation/iteration_space.py   | 2 +-
 src/pystencils/backend/kernelcreation/typification.py      | 2 +-
 src/pystencils/backend/platforms/generic_cpu.py            | 2 +-
 src/pystencils/backend/platforms/x86.py                    | 4 ++--
 src/pystencils/backend/symbols.py                          | 2 +-
 .../backend/transformations/erase_anonymous_structs.py     | 2 +-
 .../backend/transformations/vector_intrinsics.py           | 2 +-
 src/pystencils/config.py                                   | 2 +-
 src/pystencils/defaults.py                                 | 2 +-
 src/pystencils/{backend => }/types/__init__.py             | 0
 src/pystencils/{backend => }/types/basic_types.py          | 7 +++----
 src/pystencils/{backend => }/types/exception.py            | 0
 src/pystencils/{backend => }/types/parsing.py              | 0
 src/pystencils/{backend => }/types/quick.py                | 0
 tests/nbackend/kernelcreation/test_options.py              | 2 +-
 tests/nbackend/kernelcreation/test_typification.py         | 4 ++--
 tests/nbackend/test_code_printing.py                       | 2 +-
 tests/nbackend/test_constant_folding.py                    | 2 +-
 tests/nbackend/test_cpujit.py                              | 2 +-
 tests/nbackend/types/test_constants.py                     | 4 ++--
 tests/nbackend/types/test_types.py                         | 6 +++---
 29 files changed, 36 insertions(+), 34 deletions(-)
 rename src/pystencils/{backend => }/types/__init__.py (100%)
 rename src/pystencils/{backend => }/types/basic_types.py (99%)
 rename src/pystencils/{backend => }/types/exception.py (100%)
 rename src/pystencils/{backend => }/types/parsing.py (100%)
 rename src/pystencils/{backend => }/types/quick.py (100%)

diff --git a/mypy.ini b/mypy.ini
index 999a7e590..8e9fe0833 100644
--- a/mypy.ini
+++ b/mypy.ini
@@ -8,6 +8,9 @@ ignore_errors=true
 [mypy-pystencils.backend.*]
 ignore_errors = False
 
+[mypy-pystencils.types.*]
+ignore_errors = False
+
 [mypy-setuptools.*]
 ignore_missing_imports=true
 
diff --git a/src/pystencils/backend/arrays.py b/src/pystencils/backend/arrays.py
index be159bcae..ccefa1d78 100644
--- a/src/pystencils/backend/arrays.py
+++ b/src/pystencils/backend/arrays.py
@@ -43,7 +43,7 @@ from types import EllipsisType
 from abc import ABC
 
 from .constants import PsConstant
-from .types import (
+from ..types import (
     PsAbstractType,
     PsPointerType,
     PsIntegerType,
diff --git a/src/pystencils/backend/ast/expressions.py b/src/pystencils/backend/ast/expressions.py
index a4b784dc4..0db3d98b6 100644
--- a/src/pystencils/backend/ast/expressions.py
+++ b/src/pystencils/backend/ast/expressions.py
@@ -6,7 +6,7 @@ from ..symbols import PsSymbol
 from ..constants import PsConstant
 from ..arrays import PsLinearizedArray, PsArrayBasePointer
 from ..functions import PsFunction
-from ..types import (
+from ...types import (
     PsAbstractType,
     PsScalarType,
     PsVectorType,
diff --git a/src/pystencils/backend/constants.py b/src/pystencils/backend/constants.py
index 2ebe855ae..6e76f6dbb 100644
--- a/src/pystencils/backend/constants.py
+++ b/src/pystencils/backend/constants.py
@@ -1,6 +1,6 @@
 from typing import Any
 
-from .types import PsNumericType, constify
+from ..types import PsNumericType, constify
 from .exceptions import PsInternalCompilerError
 
 
diff --git a/src/pystencils/backend/emission.py b/src/pystencils/backend/emission.py
index 829ffb53a..cd8b09303 100644
--- a/src/pystencils/backend/emission.py
+++ b/src/pystencils/backend/emission.py
@@ -30,7 +30,7 @@ from .ast.expressions import (
     PsCast,
 )
 
-from .types import PsScalarType
+from ..types import PsScalarType
 
 from .ast.kernelfunction import PsKernelFunction
 
diff --git a/src/pystencils/backend/jit/cpu_extension_module.py b/src/pystencils/backend/jit/cpu_extension_module.py
index ce0ab049b..060aab788 100644
--- a/src/pystencils/backend/jit/cpu_extension_module.py
+++ b/src/pystencils/backend/jit/cpu_extension_module.py
@@ -20,13 +20,13 @@ from ..arrays import (
     PsArrayShapeSymbol,
     PsArrayStrideSymbol,
 )
-from ..types import (
+from ...types import (
     PsAbstractType,
     PsUnsignedIntegerType,
     PsSignedIntegerType,
     PsIeeeFloatType,
 )
-from ..types.quick import Fp, SInt, UInt
+from ...types.quick import Fp, SInt, UInt
 from ..emission import emit_code
 
 
diff --git a/src/pystencils/backend/kernelcreation/context.py b/src/pystencils/backend/kernelcreation/context.py
index ba6574090..9ebc913d5 100644
--- a/src/pystencils/backend/kernelcreation/context.py
+++ b/src/pystencils/backend/kernelcreation/context.py
@@ -10,8 +10,8 @@ from ...sympyextensions.typed_sympy import TypedSymbol, BasicType, StructType
 
 from ..symbols import PsSymbol
 from ..arrays import PsLinearizedArray
-from ..types import PsAbstractType, PsIntegerType, PsNumericType
-from ..types.quick import make_type
+from ...types import PsAbstractType, PsIntegerType, PsNumericType
+from ...types.quick import make_type
 from ..constraints import PsKernelParamsConstraint
 from ..exceptions import PsInternalCompilerError, KernelConstraintsError
 
diff --git a/src/pystencils/backend/kernelcreation/freeze.py b/src/pystencils/backend/kernelcreation/freeze.py
index b69c6c2dd..d0bca50a0 100644
--- a/src/pystencils/backend/kernelcreation/freeze.py
+++ b/src/pystencils/backend/kernelcreation/freeze.py
@@ -27,7 +27,7 @@ from ..ast.expressions import (
 )
 
 from ..constants import PsConstant
-from ..types import constify, make_type, PsAbstractType, PsStructType
+from ...types import constify, make_type, PsAbstractType, PsStructType
 from ..exceptions import PsInputError
 from ..functions import PsMathFunction, MathFunctions
 
diff --git a/src/pystencils/backend/kernelcreation/iteration_space.py b/src/pystencils/backend/kernelcreation/iteration_space.py
index 7d99b47ca..2215c7e6a 100644
--- a/src/pystencils/backend/kernelcreation/iteration_space.py
+++ b/src/pystencils/backend/kernelcreation/iteration_space.py
@@ -16,7 +16,7 @@ from ..constants import PsConstant
 from ..ast.expressions import PsExpression, PsConstantExpr
 from ..arrays import PsLinearizedArray
 from ..ast.util import failing_cast
-from ..types import PsStructType, constify
+from ...types import PsStructType, constify
 from ..exceptions import PsInputError, KernelConstraintsError
 
 if TYPE_CHECKING:
diff --git a/src/pystencils/backend/kernelcreation/typification.py b/src/pystencils/backend/kernelcreation/typification.py
index 9e49ef758..5c041fb2a 100644
--- a/src/pystencils/backend/kernelcreation/typification.py
+++ b/src/pystencils/backend/kernelcreation/typification.py
@@ -3,7 +3,7 @@ from __future__ import annotations
 from typing import TypeVar
 
 from .context import KernelCreationContext
-from ..types import PsAbstractType, PsNumericType, PsStructType, deconstify
+from ...types import PsAbstractType, PsNumericType, PsStructType, deconstify
 from ..ast.structural import PsAstNode, PsBlock, PsLoop, PsExpression, PsAssignment
 from ..ast.expressions import (
     PsSymbolExpr,
diff --git a/src/pystencils/backend/platforms/generic_cpu.py b/src/pystencils/backend/platforms/generic_cpu.py
index 8f8c0fab8..d512153a6 100644
--- a/src/pystencils/backend/platforms/generic_cpu.py
+++ b/src/pystencils/backend/platforms/generic_cpu.py
@@ -18,7 +18,7 @@ from ..ast.expressions import (
     PsVectorArrayAccess,
     PsLookup,
 )
-from ..types import PsVectorType, PsCustomType
+from ...types import PsVectorType, PsCustomType
 from ..transformations.vector_intrinsics import IntrinsicOps
 
 
diff --git a/src/pystencils/backend/platforms/x86.py b/src/pystencils/backend/platforms/x86.py
index 7fa92c16d..7b42c4890 100644
--- a/src/pystencils/backend/platforms/x86.py
+++ b/src/pystencils/backend/platforms/x86.py
@@ -10,12 +10,12 @@ from ..ast.expressions import (
     PsSubscript,
 )
 from ..transformations.vector_intrinsics import IntrinsicOps
-from ..types import PsCustomType, PsVectorType
+from ...types import PsCustomType, PsVectorType
 from ..constants import PsConstant
 
 from .generic_cpu import GenericVectorCpu, IntrinsicsError
 
-from ..types.quick import Fp, SInt
+from ...types.quick import Fp, SInt
 from ..functions import CFunction
 
 
diff --git a/src/pystencils/backend/symbols.py b/src/pystencils/backend/symbols.py
index d4ff5eafd..7b266d05c 100644
--- a/src/pystencils/backend/symbols.py
+++ b/src/pystencils/backend/symbols.py
@@ -1,4 +1,4 @@
-from .types import PsAbstractType, PsTypeError
+from ..types import PsAbstractType, PsTypeError
 from .exceptions import PsInternalCompilerError
 
 
diff --git a/src/pystencils/backend/transformations/erase_anonymous_structs.py b/src/pystencils/backend/transformations/erase_anonymous_structs.py
index ebaeecdd7..ecca07aea 100644
--- a/src/pystencils/backend/transformations/erase_anonymous_structs.py
+++ b/src/pystencils/backend/transformations/erase_anonymous_structs.py
@@ -13,7 +13,7 @@ from ..ast.expressions import (
     PsCast,
 )
 from ..arrays import PsArrayBasePointer, TypeErasedBasePointer
-from ..types import PsStructType, PsPointerType
+from ...types import PsStructType, PsPointerType
 
 
 class EraseAnonymousStructTypes:
diff --git a/src/pystencils/backend/transformations/vector_intrinsics.py b/src/pystencils/backend/transformations/vector_intrinsics.py
index d2f58d2c3..e587ba129 100644
--- a/src/pystencils/backend/transformations/vector_intrinsics.py
+++ b/src/pystencils/backend/transformations/vector_intrinsics.py
@@ -4,7 +4,7 @@ from enum import Enum, auto
 
 from ..ast.structural import PsAstNode, PsAssignment, PsStatement
 from ..ast.expressions import PsExpression
-from ..types import PsVectorType, deconstify
+from ...types import PsVectorType, deconstify
 from ..ast.expressions import (
     PsVectorArrayAccess,
     PsSymbolExpr,
diff --git a/src/pystencils/config.py b/src/pystencils/config.py
index 1e811f231..300123a75 100644
--- a/src/pystencils/config.py
+++ b/src/pystencils/config.py
@@ -6,7 +6,7 @@ from .field import Field, FieldType
 
 from .backend.jit import JitBase
 from .backend.exceptions import PsOptionsError
-from .backend.types import PsIntegerType, PsNumericType, PsIeeeFloatType
+from .types import PsIntegerType, PsNumericType, PsIeeeFloatType
 
 from .defaults import DEFAULTS
 
diff --git a/src/pystencils/defaults.py b/src/pystencils/defaults.py
index a031fd58c..16357fe73 100644
--- a/src/pystencils/defaults.py
+++ b/src/pystencils/defaults.py
@@ -1,5 +1,5 @@
 from typing import TypeVar, Generic, Callable
-from .backend.types import PsAbstractType, PsIeeeFloatType, PsSignedIntegerType, PsStructType
+from .types import PsAbstractType, PsIeeeFloatType, PsSignedIntegerType, PsStructType
 
 from pystencils.sympyextensions.typed_sympy import TypedSymbol
 
diff --git a/src/pystencils/backend/types/__init__.py b/src/pystencils/types/__init__.py
similarity index 100%
rename from src/pystencils/backend/types/__init__.py
rename to src/pystencils/types/__init__.py
diff --git a/src/pystencils/backend/types/basic_types.py b/src/pystencils/types/basic_types.py
similarity index 99%
rename from src/pystencils/backend/types/basic_types.py
rename to src/pystencils/types/basic_types.py
index 8b7fdf794..947895e2c 100644
--- a/src/pystencils/backend/types/basic_types.py
+++ b/src/pystencils/types/basic_types.py
@@ -7,7 +7,6 @@ from copy import copy
 import numpy as np
 
 from .exception import PsTypeError
-from ..exceptions import PsInternalCompilerError
 
 
 class PsAbstractType(ABC):
@@ -198,7 +197,7 @@ class PsStructType(PsAbstractType):
     @property
     def name(self) -> str:
         if self._name is None:
-            raise PsInternalCompilerError(
+            raise PsTypeError(
                 "Cannot retrieve name from anonymous struct type"
             )
         return self._name
@@ -218,7 +217,7 @@ class PsStructType(PsAbstractType):
 
     def c_string(self) -> str:
         if self._name is None:
-            raise PsInternalCompilerError(
+            raise PsTypeError(
                 "Cannot retrieve C string for anonymous struct type"
             )
         return self._name
@@ -399,7 +398,7 @@ class PsVectorType(PsNumericType):
         )
 
     def c_string(self) -> str:
-        raise PsInternalCompilerError(
+        raise PsTypeError(
             "Cannot retrieve C type string for generic vector types."
         )
 
diff --git a/src/pystencils/backend/types/exception.py b/src/pystencils/types/exception.py
similarity index 100%
rename from src/pystencils/backend/types/exception.py
rename to src/pystencils/types/exception.py
diff --git a/src/pystencils/backend/types/parsing.py b/src/pystencils/types/parsing.py
similarity index 100%
rename from src/pystencils/backend/types/parsing.py
rename to src/pystencils/types/parsing.py
diff --git a/src/pystencils/backend/types/quick.py b/src/pystencils/types/quick.py
similarity index 100%
rename from src/pystencils/backend/types/quick.py
rename to src/pystencils/types/quick.py
diff --git a/tests/nbackend/kernelcreation/test_options.py b/tests/nbackend/kernelcreation/test_options.py
index 8d145da75..7fa7fc513 100644
--- a/tests/nbackend/kernelcreation/test_options.py
+++ b/tests/nbackend/kernelcreation/test_options.py
@@ -1,7 +1,7 @@
 import pytest
 
 from pystencils.field import Field, FieldType
-from pystencils.backend.types.quick import *
+from pystencils.types.quick import *
 from pystencils.config import (
     CreateKernelConfig,
     PsOptionsError,
diff --git a/tests/nbackend/kernelcreation/test_typification.py b/tests/nbackend/kernelcreation/test_typification.py
index 9b9aba35d..9f49b2ed0 100644
--- a/tests/nbackend/kernelcreation/test_typification.py
+++ b/tests/nbackend/kernelcreation/test_typification.py
@@ -6,8 +6,8 @@ from pystencils import Assignment, TypedSymbol, Field, FieldType
 
 from pystencils.backend.ast.structural import PsDeclaration
 from pystencils.backend.ast.expressions import PsConstantExpr, PsSymbolExpr, PsBinOp
-from pystencils.backend.types import constify
-from pystencils.backend.types.quick import Fp, make_numeric_type
+from pystencils.types import constify
+from pystencils.types.quick import Fp, make_numeric_type
 from pystencils.backend.kernelcreation.context import KernelCreationContext
 from pystencils.backend.kernelcreation.freeze import FreezeExpressions
 from pystencils.backend.kernelcreation.typification import Typifier, TypificationError
diff --git a/tests/nbackend/test_code_printing.py b/tests/nbackend/test_code_printing.py
index be690db7c..9480cbdf3 100644
--- a/tests/nbackend/test_code_printing.py
+++ b/tests/nbackend/test_code_printing.py
@@ -6,7 +6,7 @@ from pystencils.backend.ast.kernelfunction import PsKernelFunction
 from pystencils.backend.symbols import PsSymbol
 from pystencils.backend.constants import PsConstant
 from pystencils.backend.arrays import PsLinearizedArray, PsArrayBasePointer
-from pystencils.backend.types.quick import Fp, SInt, UInt
+from pystencils.types.quick import Fp, SInt, UInt
 from pystencils.backend.emission import CAstPrinter
 
 
diff --git a/tests/nbackend/test_constant_folding.py b/tests/nbackend/test_constant_folding.py
index b71b36ea8..ee214ff53 100644
--- a/tests/nbackend/test_constant_folding.py
+++ b/tests/nbackend/test_constant_folding.py
@@ -1,7 +1,7 @@
 #   TODO: Reimplement for constant folder
 # import pytest
 
-# from pystencils.backend.types.quick import *
+# from pystencils.types.quick import *
 # from pystencils.backend.constants import PsConstant
 
 
diff --git a/tests/nbackend/test_cpujit.py b/tests/nbackend/test_cpujit.py
index 1163c40ce..bf17b9812 100644
--- a/tests/nbackend/test_cpujit.py
+++ b/tests/nbackend/test_cpujit.py
@@ -11,7 +11,7 @@ from pystencils.backend.ast.expressions import PsArrayAccess, PsExpression
 from pystencils.backend.ast.structural import PsAssignment, PsBlock, PsLoop
 from pystencils.backend.ast.kernelfunction import PsKernelFunction
 
-from pystencils.backend.types.quick import SInt, Fp
+from pystencils.types.quick import SInt, Fp
 from pystencils.backend.jit import LegacyCpuJit
 
 import numpy as np
diff --git a/tests/nbackend/types/test_constants.py b/tests/nbackend/types/test_constants.py
index 4353973f5..4d948e4e3 100644
--- a/tests/nbackend/types/test_constants.py
+++ b/tests/nbackend/types/test_constants.py
@@ -1,8 +1,8 @@
 # import pytest
 
 # TODO: Re-implement for constant folder
-# from pystencils.backend.types.quick import *
-# from pystencils.backend.types import PsTypeError
+# from pystencils.types.quick import *
+# from pystencils.types import PsTypeError
 # from pystencils.backend.typed_expressions import PsTypedConstant
 
 
diff --git a/tests/nbackend/types/test_types.py b/tests/nbackend/types/test_types.py
index 9726fac47..5f11cd081 100644
--- a/tests/nbackend/types/test_types.py
+++ b/tests/nbackend/types/test_types.py
@@ -2,8 +2,8 @@ import pytest
 import numpy as np
 
 from pystencils.backend.exceptions import PsInternalCompilerError
-from pystencils.backend.types import *
-from pystencils.backend.types.quick import *
+from pystencils.types import *
+from pystencils.types.quick import *
 
 
 @pytest.mark.parametrize(
@@ -119,5 +119,5 @@ def test_struct_types():
 
     assert t.anonymous
     assert str(t) == "<anonymous>"
-    with pytest.raises(PsInternalCompilerError):
+    with pytest.raises(PsTypeError):
         t.c_string()
-- 
GitLab