Skip to content

Commit 4f4be8d

Browse files
committed
Move functions to element-data-loader
1 parent a0f49d2 commit 4f4be8d

File tree

1 file changed

+0
-69
lines changed

1 file changed

+0
-69
lines changed

element_array_ephys/__init__.py

Lines changed: 0 additions & 69 deletions
Original file line numberDiff line numberDiff line change
@@ -1,69 +0,0 @@
1-
import datajoint as dj
2-
import pathlib
3-
import uuid
4-
import hashlib
5-
6-
7-
dj.config['enable_python_native_blobs'] = True
8-
9-
10-
def find_full_path(root_directories, relative_path):
11-
"""
12-
Given a relative path, search and return the full-path
13-
from provided potential root directories (in the given order)
14-
:param root_directories: potential root directories
15-
:param relative_path: the relative path to find the valid root directory
16-
:return: root_directory (pathlib.Path object)
17-
"""
18-
relative_path = pathlib.Path(relative_path)
19-
20-
if relative_path.exists():
21-
return relative_path
22-
23-
# turn to list if only a single root directory is provided
24-
if isinstance(root_directories, (str, pathlib.Path)):
25-
root_directories = [root_directories]
26-
27-
for root_dir in root_directories:
28-
if (pathlib.Path(root_dir) / relative_path).exists():
29-
return pathlib.Path(root_dir) / relative_path
30-
31-
raise FileNotFoundError('No valid full-path found (from {})'
32-
' for {}'.format(root_directories, relative_path))
33-
34-
35-
def find_root_directory(root_directories, full_path):
36-
"""
37-
Given multiple potential root directories and a full-path,
38-
search and return one directory that is the parent of the given path
39-
:param root_directories: potential root directories
40-
:param full_path: the relative path to search the root directory
41-
:return: full-path (pathlib.Path object)
42-
"""
43-
full_path = pathlib.Path(full_path)
44-
45-
if not full_path.exists():
46-
raise FileNotFoundError(f'{full_path} does not exist!')
47-
48-
# turn to list if only a single root directory is provided
49-
if isinstance(root_directories, (str, pathlib.Path)):
50-
root_directories = [root_directories]
51-
52-
try:
53-
return next(pathlib.Path(root_dir) for root_dir in root_directories
54-
if pathlib.Path(root_dir) in set(full_path.parents))
55-
56-
except StopIteration:
57-
raise FileNotFoundError('No valid root directory found (from {})'
58-
' for {}'.format(root_directories, full_path))
59-
60-
61-
def dict_to_uuid(key):
62-
"""
63-
Given a dictionary `key`, returns a hash string as UUID
64-
"""
65-
hashed = hashlib.md5()
66-
for k, v in sorted(key.items()):
67-
hashed.update(str(k).encode())
68-
hashed.update(str(v).encode())
69-
return uuid.UUID(hex=hashed.hexdigest())

0 commit comments

Comments
 (0)