From 6c62ecc115a34c61c4d204ae7ceab25f40b33afb Mon Sep 17 00:00:00 2001 From: Kalev Takkis Date: Tue, 10 Sep 2024 14:50:35 +0100 Subject: [PATCH 1/2] stashing --- viewer/utils.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/viewer/utils.py b/viewer/utils.py index 95eb6953..dcd1baae 100644 --- a/viewer/utils.py +++ b/viewer/utils.py @@ -566,3 +566,8 @@ def sanitize_directory_name(name: str, path: Path | None = None) -> str: sanitized_name = new_name return sanitized_name + + +def clean_object_id(name: str) -> str: + """Replace '/' and '+' with '/' in XCA object identifiers""" + return name.replace('+', '/').replace('_', '/') From 13b0da4a984af89af1708d881299b16300da5b66 Mon Sep 17 00:00:00 2001 From: Kalev Takkis Date: Wed, 11 Sep 2024 16:54:12 +0100 Subject: [PATCH 2/2] feat: changed tag name format / instead of + and _ --- viewer/target_loader.py | 7 +++++-- viewer/utils.py | 6 +++++- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/viewer/target_loader.py b/viewer/target_loader.py index 42526189..0c434906 100644 --- a/viewer/target_loader.py +++ b/viewer/target_loader.py @@ -44,7 +44,7 @@ XtalformQuatAssembly, XtalformSite, ) -from viewer.utils import alphanumerator, sanitize_directory_name +from viewer.utils import alphanumerator, clean_object_id, sanitize_directory_name logger = logging.getLogger(__name__) @@ -407,7 +407,6 @@ def wrapper_create_objects( # index data here probs result[instance_data.versioned_key] = m - result = {} if result: msg = "{} {} objects processed, {} created, {} fetched from database".format( created + existing + failed, @@ -2157,6 +2156,10 @@ def _tag_observations( tag = tag if short_tag is None else short_tag short_name = name if short_tag is None else f"{prefix} - {short_tag}" + tag = clean_object_id(tag) + name = clean_object_id(name) + short_name = clean_object_id(short_name) + try: so_tag = SiteObservationTag.objects.get( upload_name=name, target=self.target diff --git a/viewer/utils.py b/viewer/utils.py index dcd1baae..748f5530 100644 --- a/viewer/utils.py +++ b/viewer/utils.py @@ -570,4 +570,8 @@ def sanitize_directory_name(name: str, path: Path | None = None) -> str: def clean_object_id(name: str) -> str: """Replace '/' and '+' with '/' in XCA object identifiers""" - return name.replace('+', '/').replace('_', '/') + splits = name.split('-x') + if len(splits) > 1: + return f"{splits[0]}-x{splits[1].replace('+', '/').replace('_', '/')}" + else: + return name.replace('+', '/').replace('_', '/')