Skip to content

Commit 91edec1

Browse files
authored
Restricting extra fields in ConfigItem (#373)
1 parent 56a8d91 commit 91edec1

File tree

11 files changed

+16
-19
lines changed

11 files changed

+16
-19
lines changed

luxonis_ml/data/datasets/annotation.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,7 @@
2323
from typing_extensions import Self, override
2424

2525
from luxonis_ml.data.utils.parquet import ParquetRecord
26-
from luxonis_ml.typing import PathType, check_type
27-
from luxonis_ml.utils import BaseModelExtraForbid
26+
from luxonis_ml.typing import BaseModelExtraForbid, PathType, check_type
2827
from luxonis_ml.utils.logging import log_once
2928

3029
KeypointVisibility: TypeAlias = Literal[0, 1, 2]

luxonis_ml/data/datasets/metadata.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
from typing_extensions import TypedDict
55

66
from luxonis_ml.data.utils.constants import LDF_VERSION
7-
from luxonis_ml.utils.pydantic_utils import BaseModelExtraForbid
7+
from luxonis_ml.typing import BaseModelExtraForbid
88

99
from .source import LuxonisSource
1010

luxonis_ml/data/datasets/source.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
from pydantic import Field, field_validator
44

55
from luxonis_ml.data.utils import ImageType, MediaType
6-
from luxonis_ml.utils import BaseModelExtraForbid
6+
from luxonis_ml.typing import BaseModelExtraForbid
77

88

99
class LuxonisComponent(BaseModelExtraForbid):

luxonis_ml/nn_archive/config.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
from pydantic import Field, field_validator
44

5-
from luxonis_ml.utils import BaseModelExtraForbid
5+
from luxonis_ml.typing import BaseModelExtraForbid
66

77
from .model import Model
88

luxonis_ml/nn_archive/config_building_blocks/base_models/input.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
InputType,
1010
)
1111
from luxonis_ml.nn_archive.utils import infer_layout
12-
from luxonis_ml.utils import BaseModelExtraForbid
12+
from luxonis_ml.typing import BaseModelExtraForbid
1313

1414

1515
class PreprocessingBlock(BaseModelExtraForbid):

luxonis_ml/nn_archive/config_building_blocks/base_models/output.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55

66
from luxonis_ml.nn_archive.config_building_blocks.enums import DataType
77
from luxonis_ml.nn_archive.utils import infer_layout
8-
from luxonis_ml.utils import BaseModelExtraForbid
8+
from luxonis_ml.typing import BaseModelExtraForbid
99

1010

1111
class Output(BaseModelExtraForbid):

luxonis_ml/nn_archive/model.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
from pydantic import Field
22

3-
from luxonis_ml.utils import BaseModelExtraForbid
3+
from luxonis_ml.typing import BaseModelExtraForbid
44

55
from .config_building_blocks import HeadType, Input, Metadata, Output
66

luxonis_ml/typing.py

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
from typing import TYPE_CHECKING, Any, Literal, TypeAlias, TypeGuard, TypeVar
44

55
import typeguard
6-
from pydantic import BaseModel
6+
from pydantic import BaseModel, ConfigDict
77

88
# When used without installed dependencies
99
if TYPE_CHECKING: # pragma: no cover
@@ -83,7 +83,13 @@
8383
"""A keyword dictionary of arbitrary parameters."""
8484

8585

86-
class ConfigItem(BaseModel):
86+
class BaseModelExtraForbid(BaseModel):
87+
"""BaseModel with extra fields forbidden."""
88+
89+
model_config: ConfigDict = ConfigDict(extra="forbid")
90+
91+
92+
class ConfigItem(BaseModelExtraForbid):
8793
"""Configuration schema for dynamic object instantiation. Typically
8894
used to instantiate objects stored in registries.
8995

luxonis_ml/utils/__init__.py

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,15 +6,13 @@
66
from .filesystem import PUT_FILE_REGISTRY, LuxonisFileSystem
77
from .graph import is_acyclic, traverse_graph
88
from .logging import deprecated, log_once, setup_logging
9-
from .pydantic_utils import BaseModelExtraForbid
109
from .registry import AutoRegisterMeta, Registry
1110
from .rich_utils import make_progress_bar
1211

1312

1413
__all__ = [
1514
"PUT_FILE_REGISTRY",
1615
"AutoRegisterMeta",
17-
"BaseModelExtraForbid",
1816
"Environ",
1917
"LuxonisConfig",
2018
"LuxonisFileSystem",

luxonis_ml/utils/config.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,9 @@
55
import yaml
66
from typing_extensions import Self
77

8-
from luxonis_ml.typing import Params, PathType
8+
from luxonis_ml.typing import BaseModelExtraForbid, Params, PathType
99

1010
from .filesystem import LuxonisFileSystem
11-
from .pydantic_utils import BaseModelExtraForbid
1211

1312
T = TypeVar("T", bound="LuxonisConfig")
1413

0 commit comments

Comments
 (0)