Skip to content

Commit

Permalink
dp del val
Browse files Browse the repository at this point in the history
  • Loading branch information
sdafni committed Jan 30, 2024
1 parent 1eec29b commit 89c6057
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 3 deletions.
3 changes: 3 additions & 0 deletions dagshub/data_engine/model/datapoint.py
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,9 @@ def __getitem__(self, item):
def __setitem__(self, key, value):
self.datasource.implicit_update_context.update_metadata(self.path, {key: value})

def delete_metadata_value(self, key):
self.datasource.implicit_update_context.update_metadata(self.path, {key: None}, remove=True)

def save(self):
"""
Commit changes to metadata done with one or more dictionary assignment syntax usages.
Expand Down
10 changes: 7 additions & 3 deletions dagshub/data_engine/model/datasource.py
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,7 @@ class DatapointMetadataUpdateEntry(json.JSONEncoder):
value: str
valueType: MetadataFieldType = field(metadata=config(encoder=lambda val: val.value))
allowMultiple: bool = False
remove: bool = False


@dataclass
Expand Down Expand Up @@ -959,7 +960,7 @@ def __init__(self, datasource: Datasource):
self._metadata_entries: List[DatapointMetadataUpdateEntry] = []
self._multivalue_fields = datasource._get_multivalue_fields()

def update_metadata(self, datapoints: Union[List[str], str], metadata: Dict[str, Any]):
def update_metadata(self, datapoints: Union[List[str], str], metadata: Dict[str, Any], remove=False):
"""
Update metadata for the specified datapoints.
Expand Down Expand Up @@ -994,7 +995,8 @@ def update_metadata(self, datapoints: Union[List[str], str], metadata: Dict[str,

for dp in datapoints:
for k, v in metadata.items():
if v is None:
# remove operation can send None
if v is None and remove is False:
continue
if k in autogenerated_columns:
continue
Expand Down Expand Up @@ -1025,6 +1027,7 @@ def update_metadata(self, datapoints: Union[List[str], str], metadata: Dict[str,
# todo: preliminary type check
valueType=value_type,
allowMultiple=k in self._multivalue_fields,
remove=remove,
)
)

Expand All @@ -1044,10 +1047,11 @@ def update_metadata(self, datapoints: Union[List[str], str], metadata: Dict[str,
DatapointMetadataUpdateEntry(
url=dp,
key=k,
value=str(v),
value=str(v) if not remove else "",
valueType=value_type,
# todo: preliminary type check
allowMultiple=k in self._multivalue_fields,
remove=remove,
)
)

Expand Down

0 comments on commit 89c6057

Please sign in to comment.