Skip to content

Commit 4b6713c

Browse files
authored
Merge pull request #35 from ssl-hep/feat/scope-finder-ds-resolver
Add find_scope function to resolve dataset scopes
2 parents 47c9c9a + 3304e04 commit 4b6713c

File tree

2 files changed

+29
-0
lines changed

2 files changed

+29
-0
lines changed

servicex_analysis_utils/dataset_resolver.py

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,29 @@ def ds_type_resolver(
4545
dataset: The dataset object
4646
"""
4747

48+
def find_scope(name):
49+
50+
scopes = [
51+
"mc23_13p6TeV",
52+
"mc22_13p6TeV",
53+
"mc21_13TeV",
54+
"mc20_13TeV",
55+
"mc16_13TeV",
56+
"mc15_13TeV",
57+
"data25_13p6TeV",
58+
"data24_13p6TeV",
59+
"data23_13p6TeV",
60+
"data22_13p6TeV",
61+
"data18_13TeV",
62+
"data17_13TeV",
63+
"data16_13TeV",
64+
"data15_13TeV",
65+
]
66+
for scope in scopes:
67+
if name.startswith(scope):
68+
return scope
69+
return None
70+
4871
if isinstance(ds_name, list):
4972
return dataset.FileList(ds_name)
5073

@@ -66,6 +89,10 @@ def ds_type_resolver(
6689
elif ds_name.count(":") == 1 and "/" not in ds_name:
6790
return dataset.Rucio(ds_name)
6891

92+
scope = find_scope(ds_name)
93+
if scope is not None and "/" not in ds_name:
94+
return dataset.Rucio(scope + ":" + ds_name)
95+
6996
elif ds_name.isdigit():
7097
return dataset.CERNOpenData(int(ds_name))
7198

tests/test_dataset_resolver.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,8 @@
4040
("root://eosatlas.cern.ch//eos/", dataset.FileList),
4141
("root://eosatlas.cern.ch//eos/*", dataset.XRootD),
4242
(["root://eosatlas.cern.ch//eos/", "https://test.com"], dataset.FileList),
43+
("mc20_13TeV_valid_dataset_name", dataset.Rucio),
44+
("data22_13p6TeV_valid_dataset_name", dataset.Rucio),
4345
],
4446
)
4547
def test_find_dataset(input_ds, expected_type):

0 commit comments

Comments
 (0)