Skip to content

Commit 5581d6e

Browse files
committed
✨ Refactor project and rabbitmq basic types to use TypeAlias with Annotated and StringConstraints
1 parent d047aa9 commit 5581d6e

File tree

2 files changed

+17
-9
lines changed

2 files changed

+17
-9
lines changed

packages/models-library/src/models_library/projects.py

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,14 @@
1111
from models_library.basic_types import ConstrainedStr
1212
from models_library.folders import FolderID
1313
from models_library.workspaces import WorkspaceID
14-
from pydantic import BaseModel, ConfigDict, Field, HttpUrl, field_validator
14+
from pydantic import (
15+
BaseModel,
16+
ConfigDict,
17+
Field,
18+
HttpUrl,
19+
StringConstraints,
20+
field_validator,
21+
)
1522

1623
from .basic_regex import DATE_RE, UUID_RE_BASE
1724
from .emails import LowerCaseEmailStr
@@ -35,8 +42,7 @@
3542
_DATETIME_FORMAT: Final[str] = "%Y-%m-%dT%H:%M:%S.%fZ"
3643

3744

38-
class ProjectIDStr(ConstrainedStr):
39-
pattern = UUID_RE_BASE
45+
ProjectIDStr: TypeAlias = Annotated[str, StringConstraints(pattern=UUID_RE_BASE)]
4046

4147

4248
class DateTimeStr(ConstrainedStr):

packages/models-library/src/models_library/rabbitmq_basic_types.py

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
1-
from typing import Final
1+
from typing import Annotated, Final, TypeAlias
22

33
from models_library.basic_types import ConstrainedStr
4-
from pydantic import TypeAdapter
4+
from pydantic import StringConstraints, TypeAdapter
55

66
REGEX_RABBIT_QUEUE_ALLOWED_SYMBOLS: Final[str] = r"^[\w\-\.]*$"
77

@@ -21,7 +21,9 @@ def from_entries(cls, entries: dict[str, str]) -> "RPCNamespace":
2121
return TypeAdapter(cls).validate_python(composed_string)
2222

2323

24-
class RPCMethodName(ConstrainedStr):
25-
pattern = REGEX_RABBIT_QUEUE_ALLOWED_SYMBOLS
26-
min_length: int = 1
27-
max_length: int = 252
24+
RPCMethodName: TypeAlias = Annotated[
25+
str,
26+
StringConstraints(
27+
pattern=REGEX_RABBIT_QUEUE_ALLOWED_SYMBOLS, min_length=1, max_length=252
28+
),
29+
]

0 commit comments

Comments
 (0)