artifact
Artifact protocol implementation.
DEFAULT_ID = 'default'
module-attribute
Default id used if none is provided. Full id will be prefixed by type.
Artifact
Bases: Serializable, ABC
The MLTE artifact protocol implementation.
The Artifact type establishes the common interface for all MLTE artifacts. This ensures that, even though they have very different semantics, all artifacts abide by a common protocol that allows us to perform common operations with them, namely persistence.
Source code in mlte/artifact/artifact.py
26 27 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 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 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 | |
creator = None
instance-attribute
The user that created this artifact.
identifier = self.build_full_id(identifier)
instance-attribute
The identifier for the artifact, always having its type as prefix. An artifact identifier is unique within a MLTE context (model, version) and for a given artifact type.
level = ArtifactLevel.VERSION
instance-attribute
The artifact level, be it model or version, defaults to version.
timestamp = -1
instance-attribute
The Unix timestamp of when the artifact was saved to a store.
type = None
class-attribute
instance-attribute
By default have no type, but a base Artifact should never be instantiated.
__eq__(other)
Test instance for equality.
Source code in mlte/artifact/artifact.py
59 60 61 62 63 | |
__init__(identifier=None)
Main constructor for all artifacts.
Source code in mlte/artifact/artifact.py
40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 | |
__str__()
Return a string representation.
Source code in mlte/artifact/artifact.py
259 260 261 | |
build_artifact_header()
Generates the common header model for artifacts.
Source code in mlte/artifact/artifact.py
245 246 247 248 249 250 251 252 253 254 255 256 257 | |
build_full_id(base=None)
classmethod
Builds the full id for this artifact. If base is None, default base is used.
Source code in mlte/artifact/artifact.py
226 227 228 229 230 231 232 233 234 235 | |
load(identifier=None)
classmethod
Load an artifact from the configured global session.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
identifier
|
Optional[str]
|
The identifier for the artifact. If None, the default id is used. This is equivalent to calling: Artifact.load_with(session().context, session().store) |
None
|
Source code in mlte/artifact/artifact.py
157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 | |
load_models(artifact_type, context, store)
staticmethod
Loads all artifact models of the given type for the given context and store.
Source code in mlte/artifact/artifact.py
214 215 216 217 218 219 220 221 222 223 224 | |
load_models_for_session(artifact_type)
staticmethod
Loads all artifact models of the given type from the session.
Source code in mlte/artifact/artifact.py
203 204 205 206 207 208 209 210 211 212 | |
load_with(identifier=None, *, context, store)
classmethod
Load an artifact with the given context and store configuration.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
identifier
|
Optional[str]
|
The identifier for the artifact If None, the default id is used. |
None
|
context
|
Context
|
The context from which to load the artifact |
required |
store
|
ArtifactStore
|
The store from which to load the artifact |
required |
Source code in mlte/artifact/artifact.py
173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 | |
post_load_hook(context, store)
A method that artifact subclasses may override to enforce post-load invariants.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
context
|
Context
|
The context in which to save the artifact |
required |
store
|
ArtifactStore
|
The store in which to save the artifact |
required |
Raises:
| Type | Description |
|---|---|
RuntimeError
|
On broken invariant |
Source code in mlte/artifact/artifact.py
75 76 77 78 79 80 81 82 83 | |
pre_save_hook(context, store)
A method that artifact subclasses can override to enforce pre-save invariants.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
context
|
Context
|
The context in which to save the artifact |
required |
store
|
ArtifactStore
|
The store in which to save the artifact |
required |
Raises:
| Type | Description |
|---|---|
RuntimeError
|
On broken invariant |
Source code in mlte/artifact/artifact.py
65 66 67 68 69 70 71 72 73 | |
save(*, force=False, parents=False, user=None)
Save an artifact with parameters from the configured global session.
This is equivalent to calling: artifact.save_with(get_session().context, get_session().store)
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
force
|
bool
|
Indicates that an existing artifact may be overwritten |
False
|
parents
|
bool
|
Indicates whether organizational elements for the artifact are created implicitly on write (default: False) |
False
|
user
|
Optional[str]
|
The username of the user executing this action. |
None
|
Returns:
| Type | Description |
|---|---|
ArtifactModel
|
The ArtifactModel of the saved artifact. |
Source code in mlte/artifact/artifact.py
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 | |
save_with(context, store, *, force=False, parents=False, user=None)
Save an artifact with the given context and store configuration.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
context
|
Context
|
The context in which to save the artifact |
required |
store
|
ArtifactStore
|
The store in which to save the artifact |
required |
force
|
bool
|
Indicates that an existing artifact may be overwritten |
False
|
parents
|
bool
|
Indicates whether organizational elements for the artifact are created implicitly on write (default: False) |
False
|
user
|
Optional[str]
|
The username of the user executing this action. |
None
|
Returns:
| Type | Description |
|---|---|
ArtifactModel
|
The ArtifactModel of the saved artifact. |
Source code in mlte/artifact/artifact.py
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 | |