diff --git a/dagshub/data_engine/client/data_client.py b/dagshub/data_engine/client/data_client.py index 4453cd71..c434d000 100644 --- a/dagshub/data_engine/client/data_client.py +++ b/dagshub/data_engine/client/data_client.py @@ -224,16 +224,14 @@ def delete_metadata(self, datasource: Datasource, entries: List[DatapointDeleteM assert len(entries) > 0 params = GqlMutations.delete_metadata_params( - datasource_id=datasource.source.id, datapoints=[e.to_dict() for e in entries] + datasource_id=datasource.source.id, metaDeletions=[e.to_dict() for e in entries] ) return self._exec(q, params) - def update_metadata_fields(self, datasource: Datasource, metadata_field_props: List[MetadataFieldSchema]): q = GqlMutations.update_metadata_field() assert datasource.source.id is not None - # assert len(entries) > 0 params = GqlMutations.update_metadata_fields_params( datasource_id=datasource.source.id, metadata_field_props=[e.to_dict() for e in metadata_field_props] diff --git a/dagshub/data_engine/client/gql_mutations.py b/dagshub/data_engine/client/gql_mutations.py index 45f25033..c6eec70b 100644 --- a/dagshub/data_engine/client/gql_mutations.py +++ b/dagshub/data_engine/client/gql_mutations.py @@ -55,14 +55,10 @@ def delete_metadata(): .operation( "mutation", name="deleteMetadata", - input={"$datasource": "ID!", "$datapoints": "[DatapointMetadataDeleteInput!]!"}, - ) - .query("deleteMetadata", input={"datasource": "$datasource", "datapoints": "$datapoints"}) - .fields( - [ - "path", - ] + input={"$datasource": "ID!", "$metaDeletions": "[DatapointMetadataDeleteInput!]!"}, ) + .query("deleteMetadata", input={"datasource": "$datasource", "metaDeletions": "$metaDeletions"}) + .generate() ) return q @@ -98,10 +94,10 @@ def update_metadata_params(datasource_id: Union[int, str], datapoints: List[Dict } @staticmethod - def delete_metadata_params(datasource_id: Union[int, str], datapoints: List[Dict[str, Any]]): + def delete_metadata_params(datasource_id: Union[int, str], metaDeletions: List[Dict[str, Any]]): return { "datasource": datasource_id, - "datapoints": datapoints, + "metaDeletions": metaDeletions, } def update_metadata_fields_params(datasource_id: Union[int, str], metadata_field_props: List[Dict[str, Any]]): diff --git a/dagshub/data_engine/model/datapoint.py b/dagshub/data_engine/model/datapoint.py index aaf3d264..0117ebf5 100644 --- a/dagshub/data_engine/model/datapoint.py +++ b/dagshub/data_engine/model/datapoint.py @@ -46,7 +46,7 @@ def __setitem__(self, key, value): self.datasource.implicit_update_context.update_metadata(self.path, {key: value}) def delete_metadata(self, name): - self.datasource.delete_metadata(self.path, name) + self.datasource.delete_metadata(self.path, self.datapoint_id, name) def save(self): """ diff --git a/dagshub/data_engine/model/datasource.py b/dagshub/data_engine/model/datasource.py index 9b43de65..0959c6ff 100644 --- a/dagshub/data_engine/model/datasource.py +++ b/dagshub/data_engine/model/datasource.py @@ -66,6 +66,7 @@ class DatapointMetadataUpdateEntry(json.JSONEncoder): @dataclass_json @dataclass class DatapointDeleteMetadataEntry(json.JSONEncoder): + datapointId: str url: str key: str @@ -550,8 +551,8 @@ def _upload_metadata(self, metadata_entries: List[DatapointMetadataUpdateEntry]) # Update the status from dagshub, so we get back the new metadata columns self.source.get_from_dagshub() - def delete_metadata(self, path, key): - metadata_entries = [DatapointDeleteMetadataEntry(url=path, key=key)] + def delete_metadata(self, path, id, key): + metadata_entries = [DatapointDeleteMetadataEntry(datapointId=id, url=path, key=key)] self.source.client.delete_metadata(self, metadata_entries) # Update the status from dagshub, so we get back the new metadata columns