Skip to content

Commit 02a427e

Browse files
Remove re_visit_base (#248)
* Remove re_visit_base Just use os.sep, string manipulations * Use pathlib --------- Co-authored-by: Nicholas Devenish <ndevenish@gmail.com>
1 parent bd6a822 commit 02a427e

File tree

1 file changed

+15
-11
lines changed

1 file changed

+15
-11
lines changed

src/dlstbx/ispybtbx/__init__.py

Lines changed: 15 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
import pathlib
1111
import re
1212
import uuid
13+
from pathlib import Path
1314
from typing import Any, Optional, Tuple, Union
1415

1516
import gemmi
@@ -70,9 +71,6 @@ class Meta:
7071
setattr(class_, "__marshmallow__", schema_class)
7172

7273

73-
re_visit_base = re.compile(r"^(.*\/([a-z][a-z][0-9]+-[0-9]+))\/")
74-
75-
7674
class ispybtbx:
7775
def __init__(self):
7876
with Session() as session:
@@ -654,26 +652,32 @@ def classify_dc(self, dc_info, experiment_type: str | None):
654652
}
655653

656654
@staticmethod
657-
def get_visit_directory_from_image_directory(directory):
655+
def get_visit_directory_from_image_directory(
656+
directory: str | Path | None,
657+
) -> str | None:
658658
"""/dls/${beamline}/data/${year}/${visit}/...
659659
-> /dls/${beamline}/data/${year}/${visit}"""
660660
if not directory:
661661
return None
662-
visit_base = re_visit_base.search(directory)
663-
if not visit_base:
662+
directory = Path(directory)
663+
if not directory.is_absolute():
664+
raise ValueError("Got relative directory instead of absolute")
665+
if len(directory.parts) < 6:
664666
return None
665-
return visit_base.group(1)
667+
return str(directory.parents[-6])
666668

667669
@staticmethod
668-
def get_visit_from_image_directory(directory):
670+
def get_visit_from_image_directory(directory: str | Path | None) -> str | None:
669671
"""/dls/${beamline}/data/${year}/${visit}/...
670672
-> ${visit}"""
671673
if not directory:
672674
return None
673-
visit_base = re_visit_base.search(directory)
674-
if not visit_base:
675+
directory = Path(directory)
676+
if not directory.is_absolute():
677+
raise ValueError("Got relative directory instead of absolute")
678+
if len(directory.parts) < 6:
675679
return None
676-
return visit_base.group(2)
680+
return directory.parts[5]
677681

678682
def dc_info_to_working_directory(self, dc_info):
679683
directory = dc_info.get("imageDirectory")

0 commit comments

Comments
 (0)