Skip to content

Commit

Permalink
Merge pull request #155 from siapy/fix
Browse files Browse the repository at this point in the history
Add missing __all__ attributes
  • Loading branch information
janezlapajne authored Sep 17, 2024
2 parents 866af9f + e94e1a8 commit ccb22f2
Show file tree
Hide file tree
Showing 28 changed files with 179 additions and 2 deletions.
6 changes: 6 additions & 0 deletions siapy/core/configs.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,11 @@
from pathlib import Path

__all__ = [
"BASE_DIR",
"SIAPY_DIR",
"TEST_DATA_DIR",
]

BASE_DIR = Path(__file__).parent.parent.parent.absolute()
SIAPY_DIR = Path(BASE_DIR, "siapy")
TEST_DATA_DIR = Path(BASE_DIR, "tests", "data")
11 changes: 11 additions & 0 deletions siapy/core/exceptions.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,16 @@
from typing import Any

__all__ = [
"SiapyError",
"InvalidFilepathError",
"InvalidInputError",
"InvalidTypeError",
"ProcessingError",
"ConfigurationError",
"MethodNotImplementedError",
"DirectInitializationError",
]


class SiapyError(Exception):
"""Base exception for SiaPy library."""
Expand Down
2 changes: 2 additions & 0 deletions siapy/core/logger.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
import logging

__all__ = ["logger"]

logger = logging.getLogger("siapy")
15 changes: 13 additions & 2 deletions siapy/core/types.py
Original file line number Diff line number Diff line change
@@ -1,11 +1,22 @@
from typing import Any, Sequence

import numpy as np
import pandas as pd
import spectral as sp
from PIL.Image import Image
import pandas as pd
from typing import Sequence, Any

from siapy.entities import SpectralImage, SpectralImageSet

__all__ = [
"SpectralType",
"ImageType",
"ImageSizeType",
"ImageDataType",
"ImageContainerType",
"ArrayLike1dType",
"ArrayLike2dType",
]

SpectralType = sp.io.envi.BilFile | sp.io.envi.BipFile | sp.io.envi.BsqFile
ImageType = SpectralImage | np.ndarray | Image
ImageSizeType = int | tuple[int, int]
Expand Down
6 changes: 6 additions & 0 deletions siapy/datasets/helpers.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,12 @@
if TYPE_CHECKING:
from .schemas import ClassificationTarget, RegressionTarget, TabularDatasetData

__all__ = [
"generate_classification_target",
"generate_regression_target",
"merge_signals_from_multiple_cameras",
]


def generate_classification_target(
dataframe: pd.DataFrame,
Expand Down
6 changes: 6 additions & 0 deletions siapy/datasets/schemas.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,12 @@

from .helpers import generate_classification_target, generate_regression_target

__all__ = [
"ClassificationTarget",
"RegressionTarget",
"TabularDatasetData",
]


class Target(BaseModel, ABC):
model_config = ConfigDict(arbitrary_types_allowed=True)
Expand Down
4 changes: 4 additions & 0 deletions siapy/datasets/tabular.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,10 @@
from siapy.datasets.schemas import TabularDatasetData
from siapy.entities import Signatures, SpectralImage, SpectralImageSet

__all__ = [
"TabularDataset",
]


class MetaDataEntity(BaseModel):
image_idx: int
Expand Down
6 changes: 6 additions & 0 deletions siapy/entities/images.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,12 @@
from .pixels import Pixels


__all__ = [
"GeometricShapes",
"SpectralImage",
]


@dataclass
class GeometricShapes:
def __init__(
Expand Down
4 changes: 4 additions & 0 deletions siapy/entities/imagesets.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,10 @@

from .images import SpectralImage

__all__ = [
"SpectralImageSet",
]


@dataclass
class SpectralImageSet:
Expand Down
4 changes: 4 additions & 0 deletions siapy/entities/pixels.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,10 @@
import numpy as np
import pandas as pd

__all__ = [
"Pixels",
]


class Coordinates(NamedTuple):
U: Annotated[str, "u - x coordinate on the image"] = "u"
Expand Down
7 changes: 7 additions & 0 deletions siapy/entities/shapes.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,13 @@

from .pixels import Pixels

__all__ = [
"Shape",
"Rectangle",
"Point",
"FreeDraw",
]

SHAPE_TYPE_RECTANGLE = "rectangle"
SHAPE_TYPE_POINT = "point"
SHAPE_TYPE_FREEDRAW = "freedraw"
Expand Down
5 changes: 5 additions & 0 deletions siapy/entities/signatures.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,11 @@

from .pixels import Pixels

__all__ = [
"Signatures",
"Signals",
]


@dataclass
class Signals:
Expand Down
7 changes: 7 additions & 0 deletions siapy/features/features.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,13 @@
from siapy.features.spectral_indices import compute_spectral_indices
from siapy.utils.general import set_random_seed

__all__ = [
"AutoFeatClassification",
"AutoFeatRegression",
"AutoSpectralIndicesClassification",
"AutoSpectralIndicesRegression",
]


class AutoFeatClassification(AutoFeatClassifier):
def __init__(
Expand Down
5 changes: 5 additions & 0 deletions siapy/features/helpers.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,11 @@

from siapy.core.exceptions import InvalidInputError

__all__ = [
"FeatureSelectorConfig",
"feature_selector_factory",
]


class FeatureSelectorConfig(BaseModel):
k_features: Annotated[
Expand Down
5 changes: 5 additions & 0 deletions siapy/features/spectral_indices.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,11 @@
)
import spyndex # type: ignore

__all__ = [
"get_spectral_indices",
"compute_spectral_indices",
]


def _convert_str_to_list(bands_acronym: Any) -> Any:
if isinstance(bands_acronym, str):
Expand Down
5 changes: 5 additions & 0 deletions siapy/models/metrics.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,11 @@

from siapy.core.exceptions import InvalidInputError

__all__ = [
"calculate_classification_metrics",
"calculate_regression_metrics",
]


def normalized_RMSE(
y_true: np.ndarray,
Expand Down
6 changes: 6 additions & 0 deletions siapy/optimizers/configs.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,12 @@
from siapy.optimizers.parameters import TrialParameters
from siapy.optimizers.scorers import Scorer

__all__ = [
"CreateStudyConfig",
"OptimizeStudyConfig",
"TabularOptimizerConfig",
]


class CreateStudyConfig(BaseModel):
model_config = ConfigDict(arbitrary_types_allowed=True)
Expand Down
4 changes: 4 additions & 0 deletions siapy/optimizers/optimizers.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,10 @@
IntParameter,
)

__all__ = [
"TabularOptimizer",
]


class TabularOptimizer:
def __init__(
Expand Down
7 changes: 7 additions & 0 deletions siapy/optimizers/parameters.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,13 @@

from pydantic import BaseModel

__all__ = [
"FloatParameter",
"IntParameter",
"CategoricalParameter",
"TrialParameters",
]


class FloatParameter(BaseModel):
name: str
Expand Down
4 changes: 4 additions & 0 deletions siapy/optimizers/scorers.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,10 @@
from siapy.utils.evaluators import ScorerFuncType, cross_validation, hold_out_validation
from siapy.utils.general import initialize_object

__all__ = [
"Scorer",
]


class Scorer:
def __init__(self, scorer):
Expand Down
7 changes: 7 additions & 0 deletions siapy/transformations/corregistrator.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,13 @@

from siapy.entities.pixels import Pixels

__all__ = [
"map_affine_approx_2d",
"affine_matx_2d",
"align",
"transform",
]


def map_affine_approx_2d(points_ref: np.ndarray, points_mov: np.ndarray) -> np.ndarray:
"""Affine transformation"""
Expand Down
9 changes: 9 additions & 0 deletions siapy/transformations/image.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,15 @@
from siapy.core.types import ImageSizeType, ImageType
from siapy.utils.validators import validate_image_size, validate_image_to_numpy

__all__ = [
"add_gaussian_noise",
"random_crop",
"random_mirror",
"random_rotation",
"rescale",
"area_normalization",
]


def add_gaussian_noise(
image: ImageType,
Expand Down
4 changes: 4 additions & 0 deletions siapy/utils/enums.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,9 @@
from enum import Enum, auto

__all__ = [
"InteractiveButtonsEnum",
]


class InteractiveButtonsEnum(Enum):
SAVE = auto()
Expand Down
5 changes: 5 additions & 0 deletions siapy/utils/evaluators.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,11 @@

from .validators import check_model_prediction_methods

__all__ = [
"cross_validation",
"hold_out_validation",
]

ScorerFuncType = Callable[[BaseEstimator, ArrayLike2dType, ArrayLike1dType], float]


Expand Down
12 changes: 12 additions & 0 deletions siapy/utils/general.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,18 @@
from siapy.core import logger
from siapy.core.exceptions import InvalidInputError

__all__ = [
"initialize_object",
"initialize_function",
"ensure_dir",
"get_number_cpus",
"dict_zip",
"get_increasing_seq_indices",
"set_random_seed",
"get_classmethods",
"match_iterable_items_by_regex",
]


def initialize_object(
module: types.ModuleType | Any,
Expand Down
10 changes: 10 additions & 0 deletions siapy/utils/images.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,16 @@
from siapy.transformations.image import rescale
from siapy.utils.validators import validate_image_to_numpy

__all__ = [
"save_image",
"create_image",
"merge_images_by_specter",
"convert_radiance_image_to_reflectance",
"calculate_correction_factor_from_panel",
"blockfy_image",
"calculate_image_background_percentage",
]


def save_image(
image: Annotated[np.ndarray, "The image to save."],
Expand Down
8 changes: 8 additions & 0 deletions siapy/utils/plots.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,14 @@
from siapy.utils.enums import InteractiveButtonsEnum
from siapy.utils.validators import validate_image_to_numpy_3channels

__all__ = [
"pixels_select_click",
"pixels_select_lasso",
"display_image_with_areas",
"display_multiple_images_with_areas",
"display_signals",
]


def pixels_select_click(image: ImageType) -> Pixels:
image_display = validate_image_to_numpy_3channels(image)
Expand Down
7 changes: 7 additions & 0 deletions siapy/utils/validators.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,13 @@
from siapy.core.types import ImageSizeType, ImageType
from siapy.entities import SpectralImage

__all__ = [
"validate_image_to_numpy_3channels",
"validate_image_to_numpy",
"validate_image_size",
"check_model_prediction_methods",
]


def validate_image_to_numpy_3channels(image: ImageType) -> np.ndarray:
if isinstance(image, SpectralImage):
Expand Down

0 comments on commit ccb22f2

Please sign in to comment.