Skip to content

Commit

Permalink
Store full preview in array metadata
Browse files Browse the repository at this point in the history
  • Loading branch information
Shelnutt2 committed Sep 4, 2023
1 parent 4acb021 commit 207d9d6
Show file tree
Hide file tree
Showing 2 changed files with 23 additions and 2 deletions.
15 changes: 15 additions & 0 deletions tiledb/ml/models/_array_metadata.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
from enum import Enum, unique


@unique
class ModelArrayMetadata(Enum):
"""
Enum Class that contains all model array metadata.
"""

TILEDB_ML_MODEL_ML_FRAMEWORK = "TILEDB_ML_MODEL_ML_FRAMEWORK"
TILEDB_ML_MODEL_ML_FRAMEWORK_VERSION = "TILEDB_ML_MODEL_ML_FRAMEWORK_VERSION"
TILEDB_ML_MODEL_STAGE = "TILEDB_ML_MODEL_STAGE"
TILEDB_ML_MODEL_PYTHON_VERSION = "TILEDB_ML_MODEL_PYTHON_VERSION"
TILEDB_ML_MODEL_PREVIEW = "TILEDB_ML_MODEL_PREVIEW"
TILEDB_ML_MODEL_VERSION = "TILEDB_ML_MODEL_VERSION"
10 changes: 8 additions & 2 deletions tiledb/ml/models/_base.py
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@
from .. import __version__
from ._cloud_utils import get_cloud_uri, update_file_properties
from ._file_properties import ModelFileProperties
from ._array_metadata import ModelArrayMetadata

Artifact = TypeVar("Artifact")
Meta = Mapping[str, Any]
Expand Down Expand Up @@ -74,6 +75,11 @@ def __init__(
ModelFileProperties.TILEDB_ML_MODEL_PREVIEW.value: self.preview_short(),
ModelFileProperties.TILEDB_ML_MODEL_VERSION.value: __version__,
}
# Full/long versions of all properties
self._array_metadata = self._file_properties
self._array_metadata[
ModelArrayMetadata.TILEDB_ML_MODEL_PREVIEW.value
] = self.preview()

@abstractmethod
def save(self, *, meta: Optional[Meta] = None) -> None:
Expand Down Expand Up @@ -166,7 +172,7 @@ def _write_array(

if meta is None:
meta = {}
if not meta.keys().isdisjoint(self._file_properties.keys()):
if not meta.keys().isdisjoint(self._array_metadata.keys()):
raise ValueError(
"Please avoid using file property key names as metadata keys!"
)
Expand All @@ -191,7 +197,7 @@ def _write_array(
key: np.pad(value, (0, max_len - len(value)))
for key, value in one_d_buffers.items()
}
for mapping in meta, self._file_properties:
for mapping in meta, self._array_metadata:
for key, value in mapping.items():
model_array.meta[key] = value

Expand Down

0 comments on commit 207d9d6

Please sign in to comment.