diff --git a/src/mock_vws/_mock_common.py b/src/mock_vws/_mock_common.py index 15c3776ae..2c975d86a 100644 --- a/src/mock_vws/_mock_common.py +++ b/src/mock_vws/_mock_common.py @@ -32,7 +32,7 @@ def __str__(self) -> str: @beartype -@dataclass(frozen=True) +@dataclass(frozen=True, kw_only=True) class RequestData: """A library-agnostic representation of an HTTP request. @@ -50,7 +50,7 @@ class RequestData: @beartype -@dataclass(frozen=True) +@dataclass(frozen=True, kw_only=True) class Route: """A representation of a VWS route. diff --git a/src/mock_vws/_services_validators/key_validators.py b/src/mock_vws/_services_validators/key_validators.py index 379daaddd..708d3b09d 100644 --- a/src/mock_vws/_services_validators/key_validators.py +++ b/src/mock_vws/_services_validators/key_validators.py @@ -15,7 +15,7 @@ @beartype -@dataclass +@dataclass(frozen=True, kw_only=True) class _Route: """A representation of a VWS route. diff --git a/src/mock_vws/database.py b/src/mock_vws/database.py index 7b27c238a..0d1d46fb1 100644 --- a/src/mock_vws/database.py +++ b/src/mock_vws/database.py @@ -50,7 +50,7 @@ def _random_hex() -> str: @beartype -@dataclass(eq=True, frozen=True) +@dataclass(eq=True, frozen=True, kw_only=True) class CloudDatabase: """Credentials for VWS APIs. @@ -180,7 +180,7 @@ def processing_targets(self) -> set[ImageTarget]: @beartype -@dataclass(eq=True, frozen=True) +@dataclass(eq=True, frozen=True, kw_only=True) class VuMarkDatabase: """Credentials for the VuMark generation API. diff --git a/src/mock_vws/target.py b/src/mock_vws/target.py index 0c567a799..557c0d2be 100644 --- a/src/mock_vws/target.py +++ b/src/mock_vws/target.py @@ -59,7 +59,7 @@ def _time_now() -> datetime.datetime: @beartype(conf=BeartypeConf(is_pep484_tower=True)) -@dataclass(frozen=True, eq=True) +@dataclass(frozen=True, eq=True, kw_only=True) class ImageTarget: """A Vuforia image target as managed in https://developer.vuforia.com/target-manager. @@ -219,7 +219,7 @@ def to_dict(self) -> ImageTargetDict: @beartype(conf=BeartypeConf(is_pep484_tower=True)) -@dataclass(frozen=True, eq=True) +@dataclass(frozen=True, eq=True, kw_only=True) class VuMarkTarget: """ A VuMark target as managed in diff --git a/tests/mock_vws/fixtures/credentials.py b/tests/mock_vws/fixtures/credentials.py index a9fb73451..ba357b30d 100644 --- a/tests/mock_vws/fixtures/credentials.py +++ b/tests/mock_vws/fixtures/credentials.py @@ -68,7 +68,7 @@ class _VuMarkCloudDatabaseSettings(BaseSettings): ) -@dataclass(frozen=True) +@dataclass(frozen=True, kw_only=True) class InactiveVuMarkCloudDatabase: """Credentials for an inactive VuMark database.""" @@ -77,7 +77,7 @@ class InactiveVuMarkCloudDatabase: server_secret_key: str = field(repr=False) -@dataclass(frozen=True) +@dataclass(frozen=True, kw_only=True) class VuMarkCloudDatabase: """Credentials for the VuMark generation API.""" diff --git a/tests/mock_vws/utils/__init__.py b/tests/mock_vws/utils/__init__.py index 08764a520..5f48d0664 100644 --- a/tests/mock_vws/utils/__init__.py +++ b/tests/mock_vws/utils/__init__.py @@ -16,7 +16,7 @@ from mock_vws._constants import ResultCodes -@dataclass(frozen=True) +@dataclass(frozen=True, kw_only=True) class Endpoint: """Details of endpoints to be called in tests.