Utils

Utility module

Data management

class moldyn.utils.data_mng.DynState(treant, *, extraction_path='/home/docs/.local/share/open-moldyn/tmp')[source]

A Treant specialized for handling .npy and .json files for moldyn

POS

standard name of the position file (“pos.npy”)

Type:str
POS_H

standard name of the position history file (“pos_history.npy”)

Type:str
VEL

standard name of the velocity file (“velocities.npy”)

Type:str
STATE_FCT

standard name of the state function file (“state_fct.json”)

Type:str
PAR

standard name of the parameter file (“parameters.json”)

Type:str
open(file, mode='r')[source]

Open the file in this tree (ie. directory and subdir). Return the appropriate IO class depending of the type of the file.

If the type is not recognize, it opens the file and return the BytesIO or StringIO object.

Parameters:
  • file (str) – The name of the file. This file must be in this tree (ie. directory and subdir).
  • mode (str (default='r')) –
    The mode with which to open the file :
    • ’r’ to read
    • ’w’ to write
    • ’a’ to append
    • ’b’ to read or write bytes (eg. ‘w+b’ to write bytes)
Returns:

  • If file is a .npy file, return a NumpyIO object.
  • If file is a .json file, return a ParamIO object.
  • Else, return a StringIO or a BytesIO depending on mode.

Note

This method is designed to be used wih a context manager like this

t = DynState(dirpath)
# here t.open returns a NumpyIO object as the file is .npy
with t.open("pos.npy", 'r') as IO:
    arr = IO.load() #load an array
with t.open("pos.npy", 'w') as IO:
    IO.save(arr) #save an array
save_model(model)[source]

Save the positions, the velocities and the parameters of the model.

The position and velocity arrays are saved as numpy files and the parameter dictionary as a .json file

Parameters:model (simulation.builder.Model) – The model to be saved.
to_zip(path)[source]

Zip every leaf (aka. file) of the dynState treant into an archive at path.

Parameters:path (str) – The path of the archive.
class moldyn.utils.data_mng.NumpyIO(dynState, file, mode)[source]

An interface to interact with numpy save files with a context manager.

dynState

The treant that support the leaf (file) associated with it.

Type:datreant.Treant
mode

The access mode of the file (usually ‘r’ or ‘w’ or ‘a’)

Type:str
file_name

The file name of the .npy file associated with it.

Type:datreant.Leaf
file

the file that is opened (contains None until entering a context manager)

Type:file object

Example

t = DynState(dirpath)
# here t.open returns a NumpyIO object as the file is .npy
with t.open("pos.npy", 'r') as IO:
    arr = IO.load() #load an array
with t.open("pos.npy", 'w') as IO:
    IO.save(arr) #save an array
close()[source]

Close the internal file.

load()[source]

Load an array stored in the file.

Returns:arr – the array loaded
Return type:ndarray
open()[source]

Open the internal file.

save(arr)[source]

Save an array to the opened file.

Parameters:arr (ndarray (numpy)) – The array to be stored
class moldyn.utils.data_mng.ParamIO(dynState, file, **kwargs)[source]

An interface to interact with json files as a dictionary.

Designed to be used with context manager (the with statement) and datreant. Upon entering the with statement it will attempt to load the json file at self.file_name into itself (as a dict). When leaving this context, it will store itself into the json file.

Inherits dict.

It will try to update the tags and categories of the treant dynState.

dynState

The treant that support the leaf (file) associated with it.

Type:datreant.Treant
file_name

The file name of the json file associated with it.

Type:datreant.Leaf

Example

t = DynState(dirpath)
# here t.open returns a ParamIO object as the file is .json
with t.open("params.json") as IO:
    IO["my_key"] = "my_value"
    random_var = IO[some_key]
# upon exiting the with block, the content of IO is stored
# in the .json file
Parameters:
  • dynState (Treant) –
  • file (Leaf) –
  • kwargs
__enter__()[source]

Try to load the content of the json file into itself

Try to open the json file from file_name and load the informtions it contains into itself. Will catch FileNotFoundError and JSONDecodeError

Returns:self
Return type:ParamIO
__exit__(exc_type, exc_val, exc_tb)[source]

Open the json file file_name and dump itself into it.

Open the json file file_name and dump itself into it + update the tags and categories of dynState according to the CATEGORY_LIST of the module.

Parameters:
  • exc_type
  • exc_val
  • exc_tb
from_dict(rdict)[source]

Copy rdict into itself

Parameters:rdict (dict) – The remote dictionary from which to copy
to_attr(obj)[source]

Dump the parameter dictionary in the object (obj) as attributes of said object.

Warning

Will change the value of each attribute of obj that have a name corresponding to a key of ParamIO.

Parameters:obj (an object) – The object to which it will dump its content as attributes
to_dict(rdict)[source]

Copy itself into the remote dictionary :type rdict: dict :param rdict: The remot dictionary to which to copy :type rdict: dict

OpenGL utility tools

moldyn.utils.gl_util.source(uri, consts={})[source]

Reads and replaces constants (in all caps) in a text file.

Parameters:
  • uri (str) – URI of the file to read.
  • consts (dict) – Dictionary containing the values to replace.
Returns:

File contents with replacements.

Return type:

str

moldyn.utils.gl_util.testGL()[source]

Tries to initialize a compute shader.

Returns:Initialisation success.
Return type:bool