prefect.server.utilities.schemas.bases
IDBaseModel
Bases: PrefectBaseModel
A PrefectBaseModel with an auto-generated UUID ID value.
The ID is reset on copy() and not included in equality comparisons.
Source code in src/prefect/server/utilities/schemas/bases.py
174 175 176 177 178 179 180 181 182 |
|
ORMBaseModel
Bases: IDBaseModel
A PrefectBaseModel with an auto-generated UUID ID value and created / updated timestamps, intended for compatibility with our standard ORM models.
The ID, created, and updated fields are reset on copy() and not included in equality comparisons.
Source code in src/prefect/server/utilities/schemas/bases.py
185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 |
|
PrefectBaseModel
Bases: BaseModel
A base pydantic.BaseModel for all Prefect schemas and pydantic models.
As the basis for most Prefect schemas, this base model usually ignores extra fields that are passed to it at instantiation. Because adding new fields to API payloads is not considered a breaking change, this ensures that any Prefect client loading data from a server running a possibly-newer version of Prefect will be able to process those new fields gracefully. However, when PREFECT_TEST_MODE is on, extra fields are forbidden in order to catch subtle unintentional testing errors.
Source code in src/prefect/server/utilities/schemas/bases.py
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 99 100 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 |
|
__eq__(other)
Equaltiy operator that ignores the resettable fields of the PrefectBaseModel.
NOTE: this equality operator will only be applied if the PrefectBaseModel is the left-hand operand. This is a limitation of Python.
Source code in src/prefect/server/utilities/schemas/bases.py
72 73 74 75 76 77 78 79 80 81 82 83 84 |
|
model_dump_for_orm(*, include=None, exclude=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False)
Prefect extension to BaseModel.model_dump
. Generate a Python dictionary
representation of the model suitable for passing to SQLAlchemy model
constructors, INSERT
statements, etc. The critical difference here is that
this method will return any nested BaseModel objects as BaseModel
instances,
rather than serialized Python dictionaries.
Accepts the standard Pydantic model_dump
arguments, except for mode
(which
is always "python"), round_trip
, and warnings
.
Usage docs: https://docs.pydantic.dev/2.6/concepts/serialization/#modelmodel_dump
Parameters:
Name | Type | Description | Default |
---|---|---|---|
include
|
Optional[IncEx]
|
A list of fields to include in the output. |
None
|
exclude
|
Optional[IncEx]
|
A list of fields to exclude from the output. |
None
|
by_alias
|
bool
|
Whether to use the field's alias in the dictionary key if defined. |
False
|
exclude_unset
|
bool
|
Whether to exclude fields that have not been explicitly set. |
False
|
exclude_defaults
|
bool
|
Whether to exclude fields that are set to their default value. |
False
|
exclude_none
|
bool
|
Whether to exclude fields that have a value of |
False
|
Returns:
Type | Description |
---|---|
Dict[str, Any]
|
A dictionary representation of the model, suitable for passing |
Dict[str, Any]
|
to SQLAlchemy model constructors, INSERT statements, etc. |
Source code in src/prefect/server/utilities/schemas/bases.py
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 |
|
reset_fields()
Reset the fields of the model that are in the _reset_fields
set.
Returns:
Name | Type | Description |
---|---|---|
PrefectBaseModel |
Self
|
A new instance of the model with the reset fields. |
Source code in src/prefect/server/utilities/schemas/bases.py
105 106 107 108 109 110 111 112 113 114 115 116 117 |
|
get_class_fields_only(model)
Gets all the field names defined on the model class but not any parent classes. Any fields that are on the parent but redefined on the subclass are included.
Source code in src/prefect/server/utilities/schemas/bases.py
31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 |
|