From ea384c345693fe8b0c18c7dcd0dc30962e9995ff Mon Sep 17 00:00:00 2001 From: james-encord Date: Thu, 12 Dec 2024 14:57:00 +0000 Subject: [PATCH 1/2] misc: define add_scalar alias --- encord/metadata_schema.py | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/encord/metadata_schema.py b/encord/metadata_schema.py index da4127b42..e2bee5a9f 100644 --- a/encord/metadata_schema.py +++ b/encord/metadata_schema.py @@ -337,6 +337,35 @@ def add_scalar( ) self._dirty = True + def set_scalar( + self, + k: str, + *, + data_type: Union[ + Literal["boolean", "datetime", "number", "uuid", "varchar", "text", "string", "long_string"], + MetadataSchemaScalarType, + ], + ) -> None: + """ + Sets a simple metadata type for a given key in the schema. + + Alias of add_scalar + + **Parameters:** + + - k : str: The key for which the metadata type is being set. + - data_type : Literal["boolean", "datetime", "number", "uuid", "varchar", "text", "string", "long_string"] + The type of metadata to be associated with the key. Must be a valid identifier. + "string" is an alias of "varchar" + "long_string" is an alias of "text" + + **Raises:** + + MetadataSchemaError: If the key `k` is already defined in the schema with a conflicting type. + ValueError: If `data_type` is not a valid type of metadata identifier. + """ + self.add_scalar(k, data_type=data_type) + def delete_key(self, k: str, *, hard: bool = False) -> None: """ Delete a metadata key from the schema. From 41c0153ab17f7b9c5ccaa153c09b53dca879db83 Mon Sep 17 00:00:00 2001 From: james-encord Date: Thu, 12 Dec 2024 14:59:40 +0000 Subject: [PATCH 2/2] misc: add test --- tests/test_metadata_schema.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/tests/test_metadata_schema.py b/tests/test_metadata_schema.py index 81eaf90f0..b5d5a1431 100644 --- a/tests/test_metadata_schema.py +++ b/tests/test_metadata_schema.py @@ -44,6 +44,8 @@ def test_metadata_schema() -> None: meta.add_scalar("g", data_type="number") meta.add_scalar("g", data_type="text") meta.add_scalar("g", data_type="number") + meta.set_scalar("g", data_type="text") + meta.set_scalar("g", data_type="number") assert meta.has_key("g") assert not meta.has_key("g2")