Pydantic Types
Pydantic model compatible types, implementation follows pydantic documentation at:
Customizing validation with __get_pydantic_core_schema__
and it requires pydantic>=2.4.0.
iso_week_date.pydantic.T_ISOWeek
Bases: str
T_ISOWeek parses iso week in the ISO 8601 format.
New in version 1.2.0
Examples:
>>> from pydantic import BaseModel
>>> from iso_week_date.pydantic import T_ISOWeek
>>>
>>> class Model(BaseModel):
... isoweek: T_ISOWeek
>>> model = Model(isoweek="2024-W01")
>>> model
Model(isoweek='2024-W01')
>>> _ = Model(isoweek="2024-W53")
Traceback (most recent call last):
...
pydantic_core._pydantic_core.ValidationError: 1 validation error for Model
isoweek
Invalid week number. Year 2024 has only 52 weeks. [type=T_ISOWeek, input_value='2024-W53', input_type=str]
>>> _ = Model(isoweek="abc")
Traceback (most recent call last):
...
pydantic_core._pydantic_core.ValidationError: 1 validation error for Model
isoweek
Invalid iso week pattern [type=T_ISOWeek, input_value='abc', input_type=str]
Source code in src/iso_week_date/pydantic.py
28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 | |
__get_pydantic_core_schema__
classmethod
__get_pydantic_core_schema__(source: type[Any], handler: GetCoreSchemaHandler) -> core_schema.CoreSchema
Return a Pydantic CoreSchema with the IsoWeek pattern validation.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
source
|
type[Any]
|
The source type to be converted. |
required |
handler
|
GetCoreSchemaHandler
|
The handler to get the CoreSchema. |
required |
Returns:
| Type | Description |
|---|---|
CoreSchema
|
A Pydantic CoreSchema with the IsoWeek pattern validation. |
Source code in src/iso_week_date/pydantic.py
61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 | |
iso_week_date.pydantic.T_ISOWeekDate
Bases: str
T_ISOWeekDate parses iso week date in the ISO 8601 format.
New in version 1.2.0
Examples:
>>> from pydantic import BaseModel
>>> from iso_week_date.pydantic import T_ISOWeekDate
>>>
>>> class Model(BaseModel):
... isoweekdate: T_ISOWeekDate
>>> model = Model(isoweekdate="2024-W01-1")
>>> model
Model(isoweekdate='2024-W01-1')
>>> _ = Model(isoweekdate="2024-W53-1")
Traceback (most recent call last):
...
pydantic_core._pydantic_core.ValidationError: 1 validation error for Model
isoweekdate
Invalid week number. Year 2024 has only 52 weeks. [...]
>>> _ = Model(isoweekdate="abc")
Traceback (most recent call last):
...
pydantic_core._pydantic_core.ValidationError: 1 validation error for Model
isoweekdate
Invalid iso week date pattern [...]
Source code in src/iso_week_date/pydantic.py
101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 | |
__get_pydantic_core_schema__
classmethod
__get_pydantic_core_schema__(source: type[Any], handler: GetCoreSchemaHandler) -> core_schema.CoreSchema
Return a Pydantic CoreSchema with the IsoWeekDate pattern validation.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
source
|
type[Any]
|
The source type to be converted. |
required |
handler
|
GetCoreSchemaHandler
|
The handler to get the CoreSchema. |
required |
Returns:
| Type | Description |
|---|---|
CoreSchema
|
A Pydantic CoreSchema with the IsoWeekDate pattern validation. |
Source code in src/iso_week_date/pydantic.py
134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 | |