This is the original implementation as found in Ca+4H2_Hstorage_iter.py .master
parent
dbd36e0f1f
commit
d8984cf032
1 changed files with 49 additions and 0 deletions
@ -0,0 +1,49 @@ |
|||||||
|
# $Id: params_struct.py,v 1.1 2011-03-10 17:17:48 wirawan Exp $ |
||||||
|
# |
||||||
|
# wpylib.params.params_struct module |
||||||
|
# Created: 20110310 |
||||||
|
# Wirawan Purwanto |
||||||
|
# |
||||||
|
""" |
||||||
|
params_struct.py |
||||||
|
|
||||||
|
This module hosts `Struct', the simplest structured datatype, |
||||||
|
which in python is basically the same as dict. |
||||||
|
However this syntactic sugar will make your code very much like other |
||||||
|
high-level language (less mess with a['member'] kind of thing). |
||||||
|
Also this class will allow us to provide a base class to more specialized |
||||||
|
classes of similar nature. |
||||||
|
|
||||||
|
Other classes that are similar in purpose: |
||||||
|
|
||||||
|
* wpylib.params.params_flat.Parameters |
||||||
|
For assisting parameter lookup in functions. |
||||||
|
|
||||||
|
* wpylib.db.result_base |
||||||
|
For storing result from program output file. |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
CHARACTERISTICS/USAGE PATTERN |
||||||
|
|
||||||
|
* Just like dict, it does not enforce a particular structure. |
||||||
|
* Use words only as keys (i.e. keys are valid python identifiers). |
||||||
|
* Do not prepend and append two underscores at the same time. |
||||||
|
|
||||||
|
|
||||||
|
""" |
||||||
|
|
||||||
|
|
||||||
|
class Struct(object): |
||||||
|
"""A simplistic structured datatype. |
||||||
|
No particular structure is assumed. |
||||||
|
Results are fetchable by either X.member or X['member'] syntax. |
||||||
|
Limited dict-like operations are supported.""" |
||||||
|
def __getitem__(self, item): |
||||||
|
if hasattr(self, item): |
||||||
|
return getattr(self, item) |
||||||
|
else: |
||||||
|
raise KeyError, "Invalid result name: %s" % (item) |
||||||
|
def __contains__(self, item): |
||||||
|
#return item in dir(self) |
||||||
|
return hasattr(self, item) |
Loading…
Reference in new issue