aboutsummaryrefslogtreecommitdiff
path: root/.venv/lib/python3.12/site-packages/azure/ai/ml/_schema/assets/code_asset.py
diff options
context:
space:
mode:
Diffstat (limited to '.venv/lib/python3.12/site-packages/azure/ai/ml/_schema/assets/code_asset.py')
-rw-r--r--.venv/lib/python3.12/site-packages/azure/ai/ml/_schema/assets/code_asset.py47
1 files changed, 47 insertions, 0 deletions
diff --git a/.venv/lib/python3.12/site-packages/azure/ai/ml/_schema/assets/code_asset.py b/.venv/lib/python3.12/site-packages/azure/ai/ml/_schema/assets/code_asset.py
new file mode 100644
index 00000000..0610caff
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/azure/ai/ml/_schema/assets/code_asset.py
@@ -0,0 +1,47 @@
+# ---------------------------------------------------------
+# Copyright (c) Microsoft Corporation. All rights reserved.
+# ---------------------------------------------------------
+
+# pylint: disable=unused-argument
+
+import logging
+
+from marshmallow import ValidationError, fields, post_load, pre_dump
+
+from azure.ai.ml._schema.core.fields import ArmStr
+from azure.ai.ml.constants._common import BASE_PATH_CONTEXT_KEY, AzureMLResourceType
+
+from .artifact import ArtifactSchema
+from .asset import AnonymousAssetSchema
+
+module_logger = logging.getLogger(__name__)
+
+
+class CodeAssetSchema(ArtifactSchema):
+ id = ArmStr(azureml_type=AzureMLResourceType.CODE, dump_only=True)
+ path = fields.Str(
+ metadata={
+ "description": "A local path or a Blob URI pointing to a file or directory where code asset is located."
+ }
+ )
+
+ @post_load
+ def make(self, data, **kwargs):
+ from azure.ai.ml.entities._assets import Code
+
+ return Code(base_path=self.context[BASE_PATH_CONTEXT_KEY], **data)
+
+
+class AnonymousCodeAssetSchema(CodeAssetSchema, AnonymousAssetSchema):
+ @post_load
+ def make(self, data, **kwargs):
+ from azure.ai.ml.entities._assets import Code
+
+ return Code(is_anonymous=True, base_path=self.context[BASE_PATH_CONTEXT_KEY], **data)
+
+ @pre_dump
+ def validate(self, data, **kwargs):
+ # AnonymousCodeAssetSchema does not support None or arm string(fall back to ArmVersionedStr)
+ if data is None or not hasattr(data, "get"):
+ raise ValidationError("Code cannot be None")
+ return data