Skip to content

Commit dfee840

Browse files
committed
.get for CVS and STATES immediately returns lists
1 parent 885e304 commit dfee840

File tree

5 files changed

+26
-12
lines changed

5 files changed

+26
-12
lines changed

paths_cli/cli.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ def get_command(self, ctx, name):
5151
return self._get_command.get(name)
5252

5353
def format_commands(self, ctx, formatter):
54-
sec_order = ['Simulation', 'Analysis', 'Miscellaneous']
54+
sec_order = ['Simulation', 'Analysis', 'Miscellaneous', 'Workflow']
5555
for sec in sec_order:
5656
cmds = self._sections.get(sec, [])
5757
rows = []

paths_cli/commands/strip_snapshots.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,11 +21,10 @@ def strip_snapshots(input_file, output_file, cv, blocksize):
2121
By giving the --cv option (once for each CV), you can select to only
2222
save certain CVs. If you do not give that option, all CVs will be saved.
2323
"""
24-
loaded_cvs = [CVS.get(cv) for cv in cv]
2524
return strip_snapshots_main(
2625
input_storage=INPUT_FILE.get(input_file),
2726
output_storage=OUTPUT_FILE.get(output_file),
28-
cvs=loaded_cvs,
27+
cvs=CVS.get(cv),
2928
blocksize=blocksize
3029
)
3130

paths_cli/parameters.py

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -46,13 +46,14 @@ def __init__(self, param, store):
4646
super(OPSStorageLoadNames, self).__init__(param)
4747
self.store = store
4848

49-
def get(self, storage, name):
50-
return getattr(storage, self.store)[name]
49+
def get(self, storage, names):
50+
return [getattr(storage, self.store)[name] for name in names]
5151

5252

53-
class OPSStorageLoadSingle(OPSStorageLoadNames):
53+
class OPSStorageLoadSingle(AbstractLoader):
5454
def __init__(self, param, store, fallback=None, num_store=None):
55-
super(OPSStorageLoadSingle, self).__init__(param, store)
55+
super(OPSStorageLoadSingle, self).__init__(param)
56+
self.store = store
5657
self.fallback = fallback
5758
if num_store is None:
5859
num_store = store
@@ -99,6 +100,8 @@ def get(self, storage, name):
99100

100101
return result
101102

103+
104+
102105
def init_traj_fallback(parameter, storage, name):
103106
result = None
104107
if isinstance(name, int):

paths_cli/tests/test_parameters.py

Lines changed: 16 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -208,23 +208,34 @@ def test_get_file(self):
208208
pytest.skip()
209209

210210

211-
class TestCVS(ParamInstanceTest):
211+
class MultiParamInstanceTest(ParamInstanceTest):
212+
def _getter_test(self, getter):
213+
test_file = self.create_file(getter)
214+
storage = paths.Storage(self._filename(getter), mode='r')
215+
get_arg = self.get_arg[getter]
216+
obj_list = self.PARAMETER.get(storage, get_arg)
217+
for obj in obj_list:
218+
assert obj.__uuid__ == self.obj.__uuid__
219+
assert obj == self.obj
220+
221+
222+
class TestCVS(MultiParamInstanceTest):
212223
PARAMETER = CVS
213224
def setup(self):
214225
super(TestCVS, self).setup()
215-
self.get_arg = {'name': "x", 'number': 0}
226+
self.get_arg = {'name': ["x"], 'number': [0]}
216227
self.obj = self.cv
217228

218229
@pytest.mark.parametrize("getter", ['name', 'number'])
219230
def test_get(self, getter):
220231
self._getter_test(getter)
221232

222233

223-
class TestSTATES(ParamInstanceTest):
234+
class TestSTATES(MultiParamInstanceTest):
224235
PARAMETER = STATES
225236
def setup(self):
226237
super(TestSTATES, self).setup()
227-
self.get_arg = {'name': "A", 'number': 0}
238+
self.get_arg = {'name': ["A"], 'number': [0]}
228239
self.obj = self.state_A
229240

230241
@pytest.mark.parametrize("getter", ['name', 'number'])
@@ -233,6 +244,6 @@ def test_get(self, getter):
233244

234245
@pytest.mark.parametrize("getter", ['name', 'number'])
235246
def test_get_other(self, getter):
236-
self.get_arg = {'name': 'B', 'number': 1}
247+
self.get_arg = {'name': ['B'], 'number': [1]}
237248
self.obj = self.state_B
238249
self._getter_test(getter)

setup.cfg

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ long_description_content_type = text/markdown
88
author = David W.H. Swenson
99
author_email = dwhs@hyperblazer.net
1010
license = MIT
11+
license-file = LICENSE
1112
url = https://github.com/openpathsampling/openpathsampling-cli
1213
classifiers =
1314
License :: OSI Approved :: MIT License

0 commit comments

Comments
 (0)