typeHintedDict¶
- class Stoner.core.base.typeHintedDict(*args: Any, **kargs: Any)[source]¶
Bases:
regexpDict
Extends a
regedpDict
to include type hints of what each key contains.The CM Physics Group at Leeds makes use of a standard file format that closely matches the
DataFile
data structure. However, it is convenient for this file format to be ASCII text for ease of use with other programs. In order to represent metadata which can have arbitrary types, the LabVIEW code that generates the data file from our measurements adds a type hint string. The Stoner Python code can then make use of this type hinting to choose the correct representation for the metadata. The type hinting information is retained so that files output from Python will retain type hints to permit them to be loaded into strongly typed languages (sch as LabVIEW).- __regexGetType¶
Used to extract the type hint from a string
- Type:
re
- __regexSignedInt¶
matches type hint strings for signed integers
- Type:
re
- __regexUnsignedInt¶
matches the type hint string for unsigned integers
- Type:
re
- __regexFloat¶
matches the type hint strings for floats
- Type:
re
- __regexBoolean¶
matches the type hint string for a boolean
- Type:
re
- __regexStrng¶
matches the type hint string for a string variable
- Type:
re
- __regexEvaluatable¶
matches the type hint string for a compoind data type
- Type:
re
Attributes Summary
Return the dictionary of value types.
Methods Summary
clear
()copy
()Provide a copy method that is aware of the type hinting strings.
export
(key)Export a single metadata value to a string representation with type hint.
Return all the entries in the typeHintedDict as a list of exported lines.
filter
(name)Filter the dictionary keys by name.
findtype
(value)Determine the correct string type to return for common python classes.
fromkeys
([value])Create a new ordered dictionary with keys from iterable and values set to value.
get
(key[, default])Return the value for key if key is in the dictionary, else default.
has_key
(name)Key is definitely in dictionary as literal.
import_all
(lines)Read multiple lines of strings and tries to import keys from them.
import_key
(line)Import a single key from a string like key{type hint} = value.
items
()keys
()move_to_end
(key[, last])Move an existing element to the end (or beginning if last is false).
pop
(key[,default])If the key is not found, return the default if given; otherwise, raise a KeyError.
popitem
([last])Remove and return a (key, value) pair from the dictionary.
setdefault
(key[, default])Insert key with a value of default if key is not in the dictionary.
type
(key)Return the typehint for the given k(s).
update
([E, ]**F)If E is present and has a .keys() method, then does: for k in E: D[k] = E[k] If E is present and lacks a .keys() method, then does: for k, v in E: D[k] = v In either case, this is followed by: for k in F: D[k] = F[k]
values
()Attributes Documentation
- types¶
Return the dictionary of value types.
Methods Documentation
- clear() None. Remove all items from od. ¶
- copy() typeHintedDict [source]¶
Provide a copy method that is aware of the type hinting strings.
This produces a flat dictionary with the type hint embedded in the key name.
- Returns:
A copy of the current typeHintedDict
- export(key: Union[str, Pattern]) str [source]¶
Export a single metadata value to a string representation with type hint.
In the ASCII based file format, the type hinted metadata is represented in the first column of a tab delimited text file as a series of lines with format keyname{typhint}=string_value.
- Parameters:
key (string) – The metadata key to export
- Returns:
A string of the format – key{type hint} = value
- export_all() List[str] [source]¶
Return all the entries in the typeHintedDict as a list of exported lines.
- Returns:
(list of str) – A list of exported strings
Notes
The keys are returned in sorted order as a result of the underlying OrderedDict meothd.
- filter(name: Union[str, Pattern, Callable]) None [source]¶
Filter the dictionary keys by name.
Reduce the metadata dictionary leaving only keys satisfied by name.
- findtype(value: Any) str [source]¶
Determine the correct string type to return for common python classes.
- Parameters:
value (any) – The data value to determine the type hint for.
- Returns:
A type hint string
Note
Understands booleans, strings, integers, floats and np arrays(as arrays), and dictionaries (as clusters).
- fromkeys(value=None)¶
Create a new ordered dictionary with keys from iterable and values set to value.
- get(key, default=None, /)¶
Return the value for key if key is in the dictionary, else default.
- import_all(lines: List[str]) None [source]¶
Read multiple lines of strings and tries to import keys from them.
- Parameters:
lines (list of str) – The lines of metadata values to import.
- import_key(line: str) None [source]¶
Import a single key from a string like key{type hint} = value.
This is the inverse of the
typeHintedDict.export()
method.- Parameters:
line (str) – he string line to be interpreted as a key-value pair.
- items() a set-like object providing a view on D's items ¶
- keys() a set-like object providing a view on D's keys ¶
- move_to_end(key, last=True)¶
Move an existing element to the end (or beginning if last is false).
Raise KeyError if the element does not exist.
- pop(key[, default]) v, remove specified key and return the corresponding value. ¶
If the key is not found, return the default if given; otherwise, raise a KeyError.
- popitem(last=True)¶
Remove and return a (key, value) pair from the dictionary.
Pairs are returned in LIFO order if last is true or FIFO order if false.
- setdefault(key, default=None)¶
Insert key with a value of default if key is not in the dictionary.
Return the value for key if key is in the dictionary, else default.
- type(key: Union[str, Pattern, Sequence[Union[str, Pattern]]]) Union[str, List[str]] [source]¶
Return the typehint for the given k(s).
This simply looks up the type hinting dictionary for each key it is given.
- Parameters:
key (string or sequence of strings) – Either a single string key or a iterable type containing keys
- Returns:
The string type hint (or a list of string type hints)
- update([E, ]**F) None. Update D from dict/iterable E and F. ¶
If E is present and has a .keys() method, then does: for k in E: D[k] = E[k] If E is present and lacks a .keys() method, then does: for k, v in E: D[k] = v In either case, this is followed by: for k in F: D[k] = F[k]
- values() an object providing a view on D's values ¶