diff --git a/luxonis_ml/data/datasets/annotation.py b/luxonis_ml/data/datasets/annotation.py index f59a5082..8efbb175 100644 --- a/luxonis_ml/data/datasets/annotation.py +++ b/luxonis_ml/data/datasets/annotation.py @@ -23,8 +23,7 @@ from typing_extensions import Self, override from luxonis_ml.data.utils.parquet import ParquetRecord -from luxonis_ml.typing import PathType, check_type -from luxonis_ml.utils import BaseModelExtraForbid +from luxonis_ml.typing import BaseModelExtraForbid, PathType, check_type from luxonis_ml.utils.logging import log_once KeypointVisibility: TypeAlias = Literal[0, 1, 2] diff --git a/luxonis_ml/data/datasets/metadata.py b/luxonis_ml/data/datasets/metadata.py index 90c55c3a..90c27a76 100644 --- a/luxonis_ml/data/datasets/metadata.py +++ b/luxonis_ml/data/datasets/metadata.py @@ -4,7 +4,7 @@ from typing_extensions import TypedDict from luxonis_ml.data.utils.constants import LDF_VERSION -from luxonis_ml.utils.pydantic_utils import BaseModelExtraForbid +from luxonis_ml.typing import BaseModelExtraForbid from .source import LuxonisSource diff --git a/luxonis_ml/data/datasets/source.py b/luxonis_ml/data/datasets/source.py index 47091d9e..d915940e 100644 --- a/luxonis_ml/data/datasets/source.py +++ b/luxonis_ml/data/datasets/source.py @@ -3,7 +3,7 @@ from pydantic import Field, field_validator from luxonis_ml.data.utils import ImageType, MediaType -from luxonis_ml.utils import BaseModelExtraForbid +from luxonis_ml.typing import BaseModelExtraForbid class LuxonisComponent(BaseModelExtraForbid): diff --git a/luxonis_ml/nn_archive/config.py b/luxonis_ml/nn_archive/config.py index a04e5f6e..579bc5d0 100644 --- a/luxonis_ml/nn_archive/config.py +++ b/luxonis_ml/nn_archive/config.py @@ -2,7 +2,7 @@ from pydantic import Field, field_validator -from luxonis_ml.utils import BaseModelExtraForbid +from luxonis_ml.typing import BaseModelExtraForbid from .model import Model diff --git a/luxonis_ml/nn_archive/config_building_blocks/base_models/input.py b/luxonis_ml/nn_archive/config_building_blocks/base_models/input.py index 1fe060ea..553dc00f 100644 --- a/luxonis_ml/nn_archive/config_building_blocks/base_models/input.py +++ b/luxonis_ml/nn_archive/config_building_blocks/base_models/input.py @@ -9,7 +9,7 @@ InputType, ) from luxonis_ml.nn_archive.utils import infer_layout -from luxonis_ml.utils import BaseModelExtraForbid +from luxonis_ml.typing import BaseModelExtraForbid class PreprocessingBlock(BaseModelExtraForbid): diff --git a/luxonis_ml/nn_archive/config_building_blocks/base_models/output.py b/luxonis_ml/nn_archive/config_building_blocks/base_models/output.py index 2736f280..4ee29193 100644 --- a/luxonis_ml/nn_archive/config_building_blocks/base_models/output.py +++ b/luxonis_ml/nn_archive/config_building_blocks/base_models/output.py @@ -5,7 +5,7 @@ from luxonis_ml.nn_archive.config_building_blocks.enums import DataType from luxonis_ml.nn_archive.utils import infer_layout -from luxonis_ml.utils import BaseModelExtraForbid +from luxonis_ml.typing import BaseModelExtraForbid class Output(BaseModelExtraForbid): diff --git a/luxonis_ml/nn_archive/model.py b/luxonis_ml/nn_archive/model.py index b322ab73..d79df249 100644 --- a/luxonis_ml/nn_archive/model.py +++ b/luxonis_ml/nn_archive/model.py @@ -1,6 +1,6 @@ from pydantic import Field -from luxonis_ml.utils import BaseModelExtraForbid +from luxonis_ml.typing import BaseModelExtraForbid from .config_building_blocks import HeadType, Input, Metadata, Output diff --git a/luxonis_ml/typing.py b/luxonis_ml/typing.py index d5859889..d5f38ce1 100644 --- a/luxonis_ml/typing.py +++ b/luxonis_ml/typing.py @@ -3,7 +3,7 @@ from typing import TYPE_CHECKING, Any, Literal, TypeAlias, TypeGuard, TypeVar import typeguard -from pydantic import BaseModel +from pydantic import BaseModel, ConfigDict # When used without installed dependencies if TYPE_CHECKING: # pragma: no cover @@ -83,7 +83,13 @@ """A keyword dictionary of arbitrary parameters.""" -class ConfigItem(BaseModel): +class BaseModelExtraForbid(BaseModel): + """BaseModel with extra fields forbidden.""" + + model_config: ConfigDict = ConfigDict(extra="forbid") + + +class ConfigItem(BaseModelExtraForbid): """Configuration schema for dynamic object instantiation. Typically used to instantiate objects stored in registries. diff --git a/luxonis_ml/utils/__init__.py b/luxonis_ml/utils/__init__.py index d95bb332..12170d65 100644 --- a/luxonis_ml/utils/__init__.py +++ b/luxonis_ml/utils/__init__.py @@ -6,7 +6,6 @@ from .filesystem import PUT_FILE_REGISTRY, LuxonisFileSystem from .graph import is_acyclic, traverse_graph from .logging import deprecated, log_once, setup_logging - from .pydantic_utils import BaseModelExtraForbid from .registry import AutoRegisterMeta, Registry from .rich_utils import make_progress_bar @@ -14,7 +13,6 @@ __all__ = [ "PUT_FILE_REGISTRY", "AutoRegisterMeta", - "BaseModelExtraForbid", "Environ", "LuxonisConfig", "LuxonisFileSystem", diff --git a/luxonis_ml/utils/config.py b/luxonis_ml/utils/config.py index f5f971e9..ee919ebc 100644 --- a/luxonis_ml/utils/config.py +++ b/luxonis_ml/utils/config.py @@ -5,10 +5,9 @@ import yaml from typing_extensions import Self -from luxonis_ml.typing import Params, PathType +from luxonis_ml.typing import BaseModelExtraForbid, Params, PathType from .filesystem import LuxonisFileSystem -from .pydantic_utils import BaseModelExtraForbid T = TypeVar("T", bound="LuxonisConfig") diff --git a/luxonis_ml/utils/pydantic_utils.py b/luxonis_ml/utils/pydantic_utils.py deleted file mode 100644 index a5cf3980..00000000 --- a/luxonis_ml/utils/pydantic_utils.py +++ /dev/null @@ -1,5 +0,0 @@ -from pydantic import BaseModel, ConfigDict - - -class BaseModelExtraForbid(BaseModel): - model_config: ConfigDict = ConfigDict(extra="forbid")