openmmtools.storage.storageinterface.StorageInterface¶
- class openmmtools.storage.storageinterface.StorageInterface(storage_driver)[source]¶
This class interfaces with a StorageIODriver class to internally hold what folders and variables are known to the file on the disk, and dynamically creates them on the fly. Any attempt to reference a property which is not explicitly listed below implies that you wish to define either a storage directory or variable, and creates a new StorageInterfaceVarDir (SIVD) with that name. The SIVD is what handles the read/write operations on this disk by interfacing with the StorageIODriver object you provide StorageInterface class’s __init__.
See StorageInterfaceVarDir for how the dynamic interfacing works.
Examples
Create a basic storage interface and write new my_data to disk >>> my_driver = NetCDFIODriver(‘my_store.nc’) >>> my_data = [4,2,1,6] >>> my_storage = StorageInterface(my_driver) >>> my_storage.my_variable.write(my_data)
Create a folder called “vardir” with two variables in it, “var1” and “var2” holding DATA1 and DATA2 respectively Then, fetch data from the same folders and variables as above >>> my_driver = NetCDFIODriver(‘my_store.nc’) >>> DATA1 = “some string” >>> DATA2 = (4.5, 7.0, -23.1) >>> my_storage = StorageInterface(my_driver) >>> my_storage.vardir.var1.write(DATA1) >>> my_storage.vardir.var2.write(DATA2) >>> var1 = my_storage.vardir.var1.read() >>> var2 = my_storage.vardir.var2.read()
Run some_function() to generate data over an iteration, store each value in a dynamically sized var called “looper” >>> my_driver = NetCDFIODriver(‘my_store.nc’) >>> mydata = [-1, 24, 5] >>> my_storage = StorageInterface(my_driver) >>> for i in range(10): … mydata = i**2 … my_storage.looper.append(mydata)
- Attributes:
file_name
Returns the protected _file_name variable, mentioned as an explicit method as it is one of the protected names
storage_driver
Pointer to the object which actually handles read/write operations
Methods
add_metadata
(name, data)Write additional meta data to attach to the storage_driver file itself.
- __init__(storage_driver)[source]¶
Initialize the class by reading in the StorageIODriver in storage_driver. The file name is inferred from the storage driver and the read/write/append actions are handled by the SIVD class which also act on the storage_driver.
- Parameters:
- storage_driverStorageIODriver object
What type of storage to use. Requires fully implemented and instanced StorageIODriver class to use.
Methods
__init__
(storage_driver)Initialize the class by reading in the StorageIODriver in storage_driver.
add_metadata
(name, data)Write additional meta data to attach to the storage_driver file itself.
Attributes
file_name
Returns the protected _file_name variable, mentioned as an explicit method as it is one of the protected names that cannot be a directory or variable pointer
storage_driver
Pointer to the object which actually handles read/write operations