From f85b5af37e3b931f838d8ab8fe672f61b80e3826 Mon Sep 17 00:00:00 2001
From: Florian Spreckelsen <f.spreckelsen@indiscale.com>
Date: Wed, 4 Sep 2024 15:30:18 +0200
Subject: [PATCH] WIP: Adapt imports to new submodule structure

---
 src/caoscrawler/__init__.py                  | 10 ----------
 src/caoscrawler/conv_impl/__init__.py        |  0
 src/caoscrawler/converters/__init__.py       | 11 +++++++++++
 src/caoscrawler/converters/converters.py     |  6 +++---
 src/caoscrawler/converters/hdf5_converter.py |  4 ++--
 src/caoscrawler/converters/spss.py           |  3 ++-
 6 files changed, 18 insertions(+), 16 deletions(-)
 delete mode 100644 src/caoscrawler/conv_impl/__init__.py

diff --git a/src/caoscrawler/__init__.py b/src/caoscrawler/__init__.py
index 27bdbfd3..9beadc11 100644
--- a/src/caoscrawler/__init__.py
+++ b/src/caoscrawler/__init__.py
@@ -1,15 +1,5 @@
 from . import converters, utils, xml_converter
-try:
-    from .conv_impl.spss import SPSSConverter
-except ImportError as err:
-    SPSSConverter: type = utils.MissingImport(
-        name="SPSSConverter", hint="Try installing with the `spss` extra option.",
-        err=err)
 from .crawl import Crawler, SecurityMode
 from .version import CfoodRequiredVersionError, get_caoscrawler_version
 
 __version__ = get_caoscrawler_version()
-
-# Convenience members #########################################################
-# mypy: disable-error-code="attr-defined"
-converters.SPSSConverter = SPSSConverter
diff --git a/src/caoscrawler/conv_impl/__init__.py b/src/caoscrawler/conv_impl/__init__.py
deleted file mode 100644
index e69de29b..00000000
diff --git a/src/caoscrawler/converters/__init__.py b/src/caoscrawler/converters/__init__.py
index a7fa95b3..b7bae03b 100644
--- a/src/caoscrawler/converters/__init__.py
+++ b/src/caoscrawler/converters/__init__.py
@@ -19,3 +19,14 @@
 # along with this program. If not, see <https://www.gnu.org/licenses/>.
 
 """Submdule containing all default and optional converters."""
+
+from .. import utils
+from .converters import *
+
+try:
+    from .converters.spss import SPSSConverter
+except ImportError as err:
+    SPSSConverter: type = utils.MissingImport(
+        name="SPSSConverter", hint="Try installing with the `spss` extra option.",
+        err=err)
+
diff --git a/src/caoscrawler/converters/converters.py b/src/caoscrawler/converters/converters.py
index 9805d110..d8efe1f3 100644
--- a/src/caoscrawler/converters/converters.py
+++ b/src/caoscrawler/converters/converters.py
@@ -41,12 +41,12 @@ import yaml
 import yaml_header_tools
 from jsonschema import ValidationError, validate
 
-from .stores import GeneralStore, RecordStore
-from .structure_elements import (BooleanElement, DictElement, Directory, File,
+from ..stores import GeneralStore, RecordStore
+from ..structure_elements import (BooleanElement, DictElement, Directory, File,
                                  FloatElement, IntegerElement, JSONFile,
                                  ListElement, NoneElement, StructureElement,
                                  TextElement)
-from .utils import has_parent
+from ..utils import has_parent
 
 # These are special properties which are (currently) treated differently
 # by the converters:
diff --git a/src/caoscrawler/converters/hdf5_converter.py b/src/caoscrawler/converters/hdf5_converter.py
index 482d59c1..a4d974bd 100644
--- a/src/caoscrawler/converters/hdf5_converter.py
+++ b/src/caoscrawler/converters/hdf5_converter.py
@@ -36,8 +36,8 @@ import linkahead as db
 
 from .converters import (convert_basic_element, Converter, DictElementConverter,
                          match_name_and_value, SimpleFileConverter)
-from .stores import GeneralStore, RecordStore
-from .structure_elements import DictElement, File, FloatElement, IntegerElement, StructureElement
+from ..stores import GeneralStore, RecordStore
+from ..structure_elements import DictElement, File, FloatElement, IntegerElement, StructureElement
 
 
 def convert_attributes(elt: Union[h5py.File, h5py.Group, h5py.Dataset]):
diff --git a/src/caoscrawler/converters/spss.py b/src/caoscrawler/converters/spss.py
index 5dfad0ff..3f1c3662 100644
--- a/src/caoscrawler/converters/spss.py
+++ b/src/caoscrawler/converters/spss.py
@@ -28,7 +28,8 @@ import pandas as pd
 import pyreadstat
 import yaml
 
-from .. import converters
+import .converters
+
 from ..stores import GeneralStore
 from ..structure_elements import (File, StructureElement)
 from typing import Optional, Any
-- 
GitLab