Skip to content

Commit eca30ba

Browse files
committed
cleanup models
1 parent 555b07d commit eca30ba

File tree

1 file changed

+18
-13
lines changed
  • services/web/server/src/simcore_service_webserver/scicrunch

1 file changed

+18
-13
lines changed

services/web/server/src/simcore_service_webserver/scicrunch/models.py

Lines changed: 18 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,10 @@
55
import logging
66
import re
77
from datetime import datetime
8+
from functools import partial
9+
from typing import Annotated
810

9-
from pydantic import BaseModel, ConfigDict, Field, field_validator
11+
from pydantic import BaseModel, BeforeValidator, ConfigDict, Field
1012

1113
logger = logging.getLogger(__name__)
1214

@@ -49,26 +51,29 @@ def normalize_rrid_tags(rrid_tag: str, *, with_prefix: bool = True) -> str:
4951

5052

5153
class ResourceHit(BaseModel):
52-
rrid: str = Field(..., alias="rid")
54+
rrid: Annotated[str, Field(alias="rid")]
5355
name: str
5456

5557

5658
# webserver API models -----------------------------------------
5759
class ResearchResource(BaseModel):
58-
rrid: str = Field(
59-
...,
60-
description="Unique identifier used as classifier, i.e. to tag studies and services",
61-
pattern=STRICT_RRID_PATTERN,
62-
)
60+
rrid: Annotated[
61+
str,
62+
BeforeValidator(
63+
partial(normalize_rrid_tags, with_prefix=True),
64+
),
65+
Field(
66+
description="Unique identifier used as classifier, i.e. to tag studies and services",
67+
pattern=STRICT_RRID_PATTERN,
68+
),
69+
]
6370
name: str
6471
description: str
6572

66-
@field_validator("rrid", mode="before")
67-
@classmethod
68-
def _format_rrid(cls, v):
69-
return normalize_rrid_tags(v, with_prefix=True)
70-
71-
model_config = ConfigDict(from_attributes=True, str_strip_whitespace=True)
73+
model_config = ConfigDict(
74+
from_attributes=True,
75+
str_strip_whitespace=True,
76+
)
7277

7378

7479
# postgres_database.scicrunch_resources ORM --------------------

0 commit comments

Comments
 (0)