...
Code Block | ||||
---|---|---|---|---|
| ||||
def put(self, ids, occurrence = 0) |
IDS
...
put slice
Code Block | ||||
---|---|---|---|---|
| ||||
def put_slice(self, ids, occurrence = 0) |
...
IDS get slice
Code Block | ||||
---|---|---|---|---|
| ||||
def get_slice(self, ids_name, time_requested, interpolation_method, occurrence=0): # idsName (e.g. 'equilibrium') return ids |
Partial Get
Code Block |
---|
def partial_get(self, ids_name, data_path, occurrence = 0, db_entry = None): |
IDS superclass
IDSBase
- Parent class for all classes representing particular IDSes. For internal use only - it should not be called by users.
...
Warning | ||
---|---|---|
| ||
Backward compatibility, understood as possibility of using 'old' and 'new' approach at the same time is kept: All 'old' scripts will work - no modifications needed Currently all methods use context kept in IDS that was a reason of many problems. New API is designed to overcome this issue. Keeping compatibility means that methods still have to be able to use context stored in IDS that is error prone. All unwanted, messy methods operating on context stored (setCtx, etc) must be kept Compatibility can be also ensured by introducing new names of methods - |
IDS storing / reading
DBEntry
is used to provide explicitly context to methods. This parameter is optional to keep To provide database context user has to pass explicitly DBEntry object to all methods responsible for saving / reading data. This parameter should be mandatory but has to be kept optional to ensure backward compatibility....
...
Code Block |
---|
def put(self, occurrence=0, db_entry=None): def get(self, occurrence=0, db_entry=None): def putSlice(self, occurrence=0, db_entry=None): def getSlice(self, time_requested, interpolation_method, occurrence=0, db_entry=None): def partialGet(self, dataPath, occurrence=0, db_entry = None): |
"Messy" methods
... that are not in line with proposed design but they must be kept to ensure backward compatibility.
...
PUT | GET | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
|
|
IDS names
Code Block |
---|
Info |
To avoid any mistakes, |
...
typos, argument describing IDS should not be a string (ida name - 'equilibrium', 'wall' etc) but a constant pre-defined value. |
It can be implemented using enum or class attribute
Enum
class IDSName(enum):
EQUILIBRIUM = 'equilibrium'
WALL = 'wall'
Code Block |
---|
class IDSName(enum):
AMNS_DATA = 'amns_data'
......
WAVES = 'waves' |
Suggested methods of specifying IDS name are:
|
Code Block |
---|
from ids_names import IDSName
ids =
|
Warning |
---|
It is not enough to call |
Given IDS class attribute
e.g. Wall.__name__
|
Code Block |
---|
ids =
|