gromacs.fileformats.convert
— converting entries of tables¶
The Autoconverter
class was taken and slightly adapted from
RecSQL, recsql.converter
. It is mainly used by
gromacs.fileformats.xpm.XPM
to automagically generate useful
NumPy arrays from xpm files. Custom conversions beyond the default
ones in Autoconverter
can be provided with the constructor
keyword mapping.
-
class
gromacs.fileformats.convert.
Autoconverter
(mode='fancy', mapping=None, active=True, sep=False, **kwargs)¶ Automatically convert an input value to a special python object.
The
Autoconverter.convert()
method turns the value into a special python value and casts strings to the “best” type (seebesttype()
).The defaults for the conversion of a input field value to a special python value are:
value python ‘ ---
‘None
‘’ None
‘True’ True
‘x’ True
‘X’ True
‘yes’ True
‘Present’ True
‘False’ False
‘-‘ False
‘no’ False
‘None’ False
‘none’ False
If the sep keyword is set to a string instead of
False
then values are split into tuples. Probably the most convenient way to use this is to set sep =True
(orNone
) because this splits on all white space whereas sep = ‘ ‘ would split multiple spaces.- Example
- With sep =
True
: ‘foo bar 22 boing---
‘ –> (‘foo’, ‘boing’, 22, None) - With sep = ‘,’: 1,2,3,4 –> (1,2,3,4)
- With sep =
Initialize the converter.
Arguments: - mode
defines what the converter does
- “simple”
convert entries with
besttype()
- “singlet”
convert entries with
besttype()
and apply mappings- “fancy”
first splits fields into lists, tries mappings, and does the stuff that “singlet” does
- “unicode”
convert all entries with
to_unicode()
- mapping
any dict-like mapping that supports lookup. If``None`` then the hard-coded defaults are used
- active or autoconvert
initial state of the
Autoconverter.active
toggle.False
deactivates any conversion. [True
]- sep
character to split on (produces lists); use
True
orNone
(!) to split on all white space.- encoding
encoding of the input data [utf-8]
-
convert
(x)¶ Convert x (if in the active state)
-
active
¶ If set to
True
then conversion takes place;False
just returnsbesttype()
applid to the value.
-
active
Toggle the state of the Autoconverter.
True
uses the mode,False
does nothing
-
gromacs.fileformats.convert.
besttype
(x, encoding='utf-8')¶ Convert string x to the most useful type, i.e. int, float or unicode string.
If x is a quoted string (single or double quotes) then the quotes are stripped and the enclosed string returned.
Note
Strings will be returned as Unicode strings (using
unicode()
), based on the encoding argument, which is “utf-8” by default.
-
gromacs.fileformats.convert.
to_unicode
(obj, encoding='utf-8')¶ Convert obj to unicode (if it can be be converted)