Skip to content

Commit c4798a7

Browse files
committed
Small additions.
1 parent 06dcbbb commit c4798a7

File tree

3 files changed

+59
-55
lines changed

3 files changed

+59
-55
lines changed

xboinc/retrieve.py

Lines changed: 39 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -20,11 +20,11 @@
2020
class ResultRetriever:
2121
"""
2222
Class to retrieve and manage results from Xboinc simulations.
23-
23+
2424
This class provides functionality to retrieve, index, and manage simulation
2525
results from BOINC work units. It can untar result files, create indexes,
2626
and provide various views and statistics about completed jobs.
27-
27+
2828
Attributes
2929
----------
3030
_user : str
@@ -37,7 +37,7 @@ class ResultRetriever:
3737
Whether using development server
3838
_df : pd.DataFrame
3939
Indexed DataFrame of all available results
40-
40+
4141
Examples
4242
--------
4343
>>> retriever = ResultRetriever('myuser', dev_server=True)
@@ -68,17 +68,17 @@ def _untar_results(self, path: FsPath, silent: bool = False):
6868
def _index_results(self, path: FsPath, silent: bool = False) -> pd.DataFrame:
6969
"""
7070
Index all result files in the given path and create a DataFrame.
71-
71+
7272
Scans for .bin files in subdirectories and extracts metadata from
7373
filenames to create a structured index of available results.
74-
74+
7575
Parameters
7676
----------
7777
path : FsPath
7878
Directory path to scan for result files
7979
silent : bool, optional
8080
If True, suppress progress bar output (default: False)
81-
81+
8282
Returns
8383
-------
8484
pd.DataFrame
@@ -117,7 +117,7 @@ def _index_results(self, path: FsPath, silent: bool = False) -> pd.DataFrame:
117117
def __init__(self, user, dev_server=False, silent=False):
118118
"""
119119
Initialize the ResultRetriever for a specific user.
120-
120+
121121
Parameters
122122
----------
123123
user : str
@@ -127,14 +127,14 @@ def __init__(self, user, dev_server=False, silent=False):
127127
Whether to retrieve from the development server (default: False)
128128
silent : bool, optional
129129
Whether to suppress output messages and progress bars (default: False)
130-
130+
131131
Raises
132132
------
133133
NotImplementedError
134134
If dev_server=False (regular server not yet operational)
135135
ConnectionError
136136
If EOS is not accessible when domain is 'eos'
137-
137+
138138
Examples
139139
--------
140140
>>> retriever = ResultRetriever('myuser', dev_server=True, silent=True)
@@ -167,7 +167,7 @@ def __init__(self, user, dev_server=False, silent=False):
167167
def get_overview(self):
168168
"""
169169
Get a comprehensive overview of all available results.
170-
170+
171171
Returns
172172
-------
173173
pd.DataFrame
@@ -179,7 +179,7 @@ def get_overview(self):
179179
def get_study_list(self):
180180
"""
181181
Get a list of all unique study names in the available results.
182-
182+
183183
Returns
184184
-------
185185
list of str
@@ -190,28 +190,28 @@ def get_study_list(self):
190190
def get_study_status(self, study_name, verbose=False):
191191
"""
192192
Get detailed status information for a specific study.
193-
193+
194194
Compares local results with server work units to provide comprehensive
195195
status information including completion rates and missing jobs.
196-
196+
197197
Parameters
198198
----------
199199
study_name : str
200200
Name of the study to check status for
201201
verbose : bool, optional
202202
If True, print detailed job lists (default: False)
203-
203+
204204
Returns
205205
-------
206206
tuple of (list, set)
207207
- list: Job names available in results
208208
- set: Job names missing from results but present on server
209-
209+
210210
Raises
211211
------
212212
ValueError
213213
If study_name is not found in results or server work units
214-
214+
215215
Warnings
216216
--------
217217
UserWarning
@@ -288,30 +288,30 @@ def get_study_status(self, study_name, verbose=False):
288288
def iterate_results(self, study_name):
289289
"""
290290
Iterate over all results for a specific study.
291-
291+
292292
Yields tuples of job names and their corresponding particle data
293293
for all completed jobs in the specified study.
294-
294+
295295
Parameters
296296
----------
297297
study_name : str
298298
Name of the study to iterate over
299-
299+
300300
Yields
301301
------
302302
tuple of (str, xpart.Particles)
303303
Job name and corresponding particles object for each result
304-
304+
305305
Raises
306306
------
307307
ValueError
308308
If study_name is not found in available results
309-
309+
310310
Warnings
311311
--------
312312
UserWarning
313313
If a binary file is incompatible with current Xboinc version
314-
314+
315315
Examples
316316
--------
317317
>>> retriever = ResultRetriever('myuser', dev_server=True)
@@ -337,20 +337,20 @@ def iterate_results(self, study_name):
337337
def clean(self, study_name):
338338
"""
339339
Clean up results for a specific study.
340-
340+
341341
Removes all binary result files, empty directories, and clears
342342
the study from the internal DataFrame index.
343-
343+
344344
Parameters
345345
----------
346346
study_name : str
347347
Name of the study to clean up
348-
348+
349349
Raises
350350
------
351351
ValueError
352352
If study_name is not found in available results
353-
353+
354354
Warning
355355
-------
356356
This operation is irreversible. All result files for the study
@@ -374,10 +374,10 @@ def clean(self, study_name):
374374
def iterate(cls, user, study_name, dev_server=False, silent=False):
375375
"""
376376
Class method to directly iterate over results for a user and study.
377-
377+
378378
Convenient method that creates a ResultRetriever instance and immediately
379379
starts iterating over results without requiring explicit instantiation.
380-
380+
381381
Parameters
382382
----------
383383
user : str
@@ -388,12 +388,12 @@ def iterate(cls, user, study_name, dev_server=False, silent=False):
388388
Whether to use development server (default: False)
389389
silent : bool, optional
390390
Whether to suppress output messages (default: True)
391-
391+
392392
Yields
393393
------
394394
tuple of (str, xpart.Particles)
395395
Job name and corresponding particles object for each result
396-
396+
397397
Examples
398398
--------
399399
>>> for job_name, particles in ResultRetriever.iterate('myuser', 'my_study', dev_server=True):
@@ -407,7 +407,7 @@ def iterate(cls, user, study_name, dev_server=False, silent=False):
407407
def overview(cls, user, dev_server=False, silent=False):
408408
"""
409409
Class method to get an overview of results for a specific user.
410-
410+
411411
Parameters
412412
----------
413413
user : str
@@ -416,12 +416,12 @@ def overview(cls, user, dev_server=False, silent=False):
416416
Whether to use development server (default: False)
417417
silent : bool, optional
418418
Whether to suppress output messages (default: True)
419-
419+
420420
Returns
421421
-------
422422
pd.DataFrame
423423
DataFrame with overview of all available results
424-
424+
425425
Examples
426426
--------
427427
>>> overview_df = ResultRetriever.overview('myuser', dev_server=True)
@@ -434,7 +434,7 @@ def overview(cls, user, dev_server=False, silent=False):
434434
def status(cls, user, study_name, dev_server=False, silent=False, verbose=False):
435435
"""
436436
Class method to get status of results for a specific user and study.
437-
437+
438438
Parameters
439439
----------
440440
user : str
@@ -447,13 +447,13 @@ def status(cls, user, study_name, dev_server=False, silent=False, verbose=False)
447447
Whether to suppress output messages (default: True)
448448
verbose : bool, optional
449449
If True, print detailed job lists (default: False)
450-
450+
451451
Returns
452452
-------
453453
tuple of (list, set)
454454
- list: Job names available in results
455455
- set: Job names missing from results but present on server
456-
456+
457457
Examples
458458
--------
459459
>>> available, missing = ResultRetriever.status('myuser', 'my_study', dev_server=True)
@@ -466,7 +466,7 @@ def status(cls, user, study_name, dev_server=False, silent=False, verbose=False)
466466
def study_list(cls, user, dev_server=False, silent=False):
467467
"""
468468
Class method to get a list of all studies for a specific user.
469-
469+
470470
Parameters
471471
----------
472472
user : str
@@ -475,12 +475,12 @@ def study_list(cls, user, dev_server=False, silent=False):
475475
Whether to use development server (default: False)
476476
silent : bool, optional
477477
Whether to suppress output messages (default: True)
478-
478+
479479
Returns
480480
-------
481481
list of str
482482
Sorted list of unique study names found in the results
483-
483+
484484
Examples
485485
--------
486486
>>> studies = ResultRetriever.study_list('myuser', dev_server=True)

xboinc/simulation_io/input.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ class XbInput(xo.Struct):
4242
num_turns = xo.Int64
4343
num_elements = xo.Int64
4444
ele_start = xo.Int64 # The start index of the elements in the line
45-
ele_stop = xo.Int64 # The end index of the elements in the line
45+
ele_stop = xo.Int64 # The end index of the elements in the line
4646
checkpoint_every = xo.Int64
4747
_parity_check = xo.Int64 # TODO
4848
xb_state = XbState
@@ -145,12 +145,12 @@ def from_binary(cls, filename, offset=0, raise_version_error=True):
145145
"""
146146
Create an XbInput from a binary file. The file should not
147147
contain anything else (otherwise the offset will be wrong).
148-
148+
149149
Parameters
150150
----------
151151
filename : pathlib.Path
152152
The binary containing the simulation state.
153-
153+
154154
Returns
155155
-------
156156
XbInput
@@ -178,12 +178,12 @@ def from_binary(cls, filename, offset=0, raise_version_error=True):
178178
def to_binary(self, filename):
179179
"""
180180
Dump the XbInput to a binary file.
181-
181+
182182
Parameters
183183
----------
184184
filename : pathlib.Path
185185
The binary containing the simulation state.
186-
186+
187187
Returns
188188
-------
189189
None.

0 commit comments

Comments
 (0)