From 15b7e7e65e24e748eddbb4747be70c92f1d99202 Mon Sep 17 00:00:00 2001 From: Pim Nelissen Date: Sat, 31 Jan 2026 09:42:21 +0100 Subject: [PATCH 1/5] refactor code into modules --- src/pg_rad/{ => dataloader}/dataloader.py | 0 src/pg_rad/{ => exceptions}/exceptions.py | 0 src/pg_rad/{ => isotopes}/isotope.py | 0 src/pg_rad/{ => landscape}/landscape.py | 2 +- src/pg_rad/{ => logging}/logger.py | 0 src/pg_rad/{ => objects}/objects.py | 0 src/pg_rad/{ => objects}/sources.py | 2 +- src/pg_rad/{ => path}/path.py | 0 8 files changed, 2 insertions(+), 2 deletions(-) rename src/pg_rad/{ => dataloader}/dataloader.py (100%) rename src/pg_rad/{ => exceptions}/exceptions.py (100%) rename src/pg_rad/{ => isotopes}/isotope.py (100%) rename src/pg_rad/{ => landscape}/landscape.py (99%) rename src/pg_rad/{ => logging}/logger.py (100%) rename src/pg_rad/{ => objects}/objects.py (100%) rename src/pg_rad/{ => objects}/sources.py (97%) rename src/pg_rad/{ => path}/path.py (100%) diff --git a/src/pg_rad/dataloader.py b/src/pg_rad/dataloader/dataloader.py similarity index 100% rename from src/pg_rad/dataloader.py rename to src/pg_rad/dataloader/dataloader.py diff --git a/src/pg_rad/exceptions.py b/src/pg_rad/exceptions/exceptions.py similarity index 100% rename from src/pg_rad/exceptions.py rename to src/pg_rad/exceptions/exceptions.py diff --git a/src/pg_rad/isotope.py b/src/pg_rad/isotopes/isotope.py similarity index 100% rename from src/pg_rad/isotope.py rename to src/pg_rad/isotopes/isotope.py diff --git a/src/pg_rad/landscape.py b/src/pg_rad/landscape/landscape.py similarity index 99% rename from src/pg_rad/landscape.py rename to src/pg_rad/landscape/landscape.py index a3b3b83..fec1dfe 100644 --- a/src/pg_rad/landscape.py +++ b/src/pg_rad/landscape/landscape.py @@ -5,7 +5,7 @@ from matplotlib.patches import Circle import numpy as np from pg_rad.path import Path -from pg_rad.sources import PointSource +from pg_rad.objects import PointSource logger = logging.getLogger(__name__) diff --git a/src/pg_rad/logger.py b/src/pg_rad/logging/logger.py similarity index 100% rename from src/pg_rad/logger.py rename to src/pg_rad/logging/logger.py diff --git a/src/pg_rad/objects.py b/src/pg_rad/objects/objects.py similarity index 100% rename from src/pg_rad/objects.py rename to src/pg_rad/objects/objects.py diff --git a/src/pg_rad/sources.py b/src/pg_rad/objects/sources.py similarity index 97% rename from src/pg_rad/sources.py rename to src/pg_rad/objects/sources.py index 7d2d317..af57890 100644 --- a/src/pg_rad/sources.py +++ b/src/pg_rad/objects/sources.py @@ -1,7 +1,7 @@ import logging from pg_rad.objects import Object -from pg_rad.isotope import Isotope +from pg_rad.isotopes import Isotope logger = logging.getLogger(__name__) diff --git a/src/pg_rad/path.py b/src/pg_rad/path/path.py similarity index 100% rename from src/pg_rad/path.py rename to src/pg_rad/path/path.py From a4e965c9d6afa7a7f81d60ce029f7f559b87066a Mon Sep 17 00:00:00 2001 From: Pim Nelissen Date: Sat, 31 Jan 2026 09:44:18 +0100 Subject: [PATCH 2/5] Add init files for modularization, generated using mkinit (now a dependency on dev) --- pyproject.toml | 2 +- src/pg_rad/dataloader/__init__.py | 8 ++++++++ src/pg_rad/exceptions/__init__.py | 10 ++++++++++ src/pg_rad/isotopes/__init__.py | 8 ++++++++ src/pg_rad/landscape/__init__.py | 8 ++++++++ src/pg_rad/logging/__init__.py | 5 +++++ src/pg_rad/objects/__init__.py | 13 +++++++++++++ src/pg_rad/path/__init__.py | 9 +++++++++ 8 files changed, 62 insertions(+), 1 deletion(-) create mode 100644 src/pg_rad/dataloader/__init__.py create mode 100644 src/pg_rad/exceptions/__init__.py create mode 100644 src/pg_rad/isotopes/__init__.py create mode 100644 src/pg_rad/landscape/__init__.py create mode 100644 src/pg_rad/logging/__init__.py create mode 100644 src/pg_rad/objects/__init__.py create mode 100644 src/pg_rad/path/__init__.py diff --git a/pyproject.toml b/pyproject.toml index e187ba3..3c295a1 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -29,4 +29,4 @@ Homepage = "https://github.com/pim-n/pg-rad" Issues = "https://github.com/pim-n/pg-rad/issues" [project.optional-dependencies] -dev = ["pytest", "notebook", "mkdocs-material", "mkdocstrings-python", "mkdocs-jupyter"] \ No newline at end of file +dev = ["pytest", "mkinit", "notebook", "mkdocs-material", "mkdocstrings-python", "mkdocs-jupyter"] \ No newline at end of file diff --git a/src/pg_rad/dataloader/__init__.py b/src/pg_rad/dataloader/__init__.py new file mode 100644 index 0000000..0f01fd4 --- /dev/null +++ b/src/pg_rad/dataloader/__init__.py @@ -0,0 +1,8 @@ +# do not expose internal logger when running mkinit +__ignore__ = ["logger"] + +from pg_rad.dataloader import dataloader + +from pg_rad.dataloader.dataloader import (load_data,) + +__all__ = ['dataloader', 'load_data'] diff --git a/src/pg_rad/exceptions/__init__.py b/src/pg_rad/exceptions/__init__.py new file mode 100644 index 0000000..426b7e7 --- /dev/null +++ b/src/pg_rad/exceptions/__init__.py @@ -0,0 +1,10 @@ +# do not expose internal logger when running mkinit +__ignore__ = ["logger"] + +from pg_rad.exceptions import exceptions + +from pg_rad.exceptions.exceptions import (ConvergenceError, DataLoadError, + InvalidCSVError,) + +__all__ = ['ConvergenceError', 'DataLoadError', 'InvalidCSVError', + 'exceptions'] diff --git a/src/pg_rad/isotopes/__init__.py b/src/pg_rad/isotopes/__init__.py new file mode 100644 index 0000000..0c7976d --- /dev/null +++ b/src/pg_rad/isotopes/__init__.py @@ -0,0 +1,8 @@ +# do not expose internal logger when running mkinit +__ignore__ = ["logger"] + +from pg_rad.isotopes import isotope + +from pg_rad.isotopes.isotope import (Isotope,) + +__all__ = ['Isotope', 'isotope'] diff --git a/src/pg_rad/landscape/__init__.py b/src/pg_rad/landscape/__init__.py new file mode 100644 index 0000000..9a0c85c --- /dev/null +++ b/src/pg_rad/landscape/__init__.py @@ -0,0 +1,8 @@ +# do not expose internal logger when running mkinit +__ignore__ = ["logger"] + +from pg_rad.landscape import landscape + +from pg_rad.landscape.landscape import (Landscape, create_landscape_from_path,) + +__all__ = ['Landscape', 'create_landscape_from_path', 'landscape'] diff --git a/src/pg_rad/logging/__init__.py b/src/pg_rad/logging/__init__.py new file mode 100644 index 0000000..666f5de --- /dev/null +++ b/src/pg_rad/logging/__init__.py @@ -0,0 +1,5 @@ +from pg_rad.logging import logger + +from pg_rad.logging.logger import (setup_logger,) + +__all__ = ['logger', 'setup_logger'] diff --git a/src/pg_rad/objects/__init__.py b/src/pg_rad/objects/__init__.py new file mode 100644 index 0000000..855c7cc --- /dev/null +++ b/src/pg_rad/objects/__init__.py @@ -0,0 +1,13 @@ +# do not expose internal logger when running mkinit +__ignore__ = ["logger"] + +from pg_rad.objects import detectors +from pg_rad.objects import objects +from pg_rad.objects import sources + +from pg_rad.objects.detectors import (Detector,) +from pg_rad.objects.objects import (Object,) +from pg_rad.objects.sources import (PointSource,) + +__all__ = ['Detector', 'Object', 'PointSource', 'detectors', 'objects', + 'sources'] diff --git a/src/pg_rad/path/__init__.py b/src/pg_rad/path/__init__.py new file mode 100644 index 0000000..20be9b2 --- /dev/null +++ b/src/pg_rad/path/__init__.py @@ -0,0 +1,9 @@ +# do not expose internal logger when running mkinit +__ignore__ = ["logger"] + +from pg_rad.path import path + +from pg_rad.path.path import (Path, PathSegment, path_from_RT90, + simplify_path,) + +__all__ = ['Path', 'PathSegment', 'path', 'path_from_RT90', 'simplify_path'] From 85f80ace977651cbdb612bea90c71e250ad27bea Mon Sep 17 00:00:00 2001 From: Pim Nelissen Date: Sat, 31 Jan 2026 10:01:54 +0100 Subject: [PATCH 3/5] resolve circular imports --- src/pg_rad/logging/logger.py | 1 - src/pg_rad/objects/sources.py | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/src/pg_rad/logging/logger.py b/src/pg_rad/logging/logger.py index 40b0c50..0697432 100644 --- a/src/pg_rad/logging/logger.py +++ b/src/pg_rad/logging/logger.py @@ -1,5 +1,4 @@ import logging -import logging.config import pathlib import yaml diff --git a/src/pg_rad/objects/sources.py b/src/pg_rad/objects/sources.py index af57890..ec7c18d 100644 --- a/src/pg_rad/objects/sources.py +++ b/src/pg_rad/objects/sources.py @@ -1,6 +1,6 @@ import logging -from pg_rad.objects import Object +from .objects import Object from pg_rad.isotopes import Isotope logger = logging.getLogger(__name__) From c1b827c8715bad99f0994e56288a18ce0bcce830 Mon Sep 17 00:00:00 2001 From: Pim Nelissen Date: Sat, 31 Jan 2026 10:06:12 +0100 Subject: [PATCH 4/5] ignore dev tools folder --- .gitignore | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.gitignore b/.gitignore index b7faf40..2ed2400 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,6 @@ +# Custom +dev-tools/ + # Byte-compiled / optimized / DLL files __pycache__/ *.py[codz] From f5a126b9274fde60ca1ef5656c02a39645e99911 Mon Sep 17 00:00:00 2001 From: Pim Nelissen Date: Sat, 31 Jan 2026 10:10:14 +0100 Subject: [PATCH 5/5] bump version --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 3c295a1..cabfe73 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -7,7 +7,7 @@ where = ["src"] [project] name = "pg-rad" -version = "0.2.0" +version = "0.2.1" authors = [ { name="Pim Nelissen", email="pi0274ne-s@student.lu.se" }, ]