wulfric.SyntacticSugar#

class wulfric.SyntacticSugar[source]#

Syntactic sugar for any dictionary.

This class does only one thing. It allows to write atoms.names instead of atoms["names"] or spglib_data.number instead of spglib_data["number"].

Examples

Two code examples below give equivalent result

>>> import wulfric
>>> atoms = wulfric.SyntacticSugar()
>>> atoms.names = ["Cr1", "Cr2"]
>>> atoms.positions = [[0, 0, 0], [0.5, 0.5, 0.5]]
>>> atoms
{'names': ['Cr1', 'Cr2'], 'positions': [[0, 0, 0], [0.5, 0.5, 0.5]]}
>>> import wulfric
>>> atoms = {}
>>> atoms["names"] = ["Cr1", "Cr2"]
>>> atoms["positions"] = [[0, 0, 0], [0.5, 0.5, 0.5]]
>>> atoms
{'names': ['Cr1', 'Cr2'], 'positions': [[0, 0, 0], [0.5, 0.5, 0.5]]}

Methods:

clear()

copy()

fromkeys(iterable[, value])

Create a new 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.

items()

keys()

pop(key[, default])

If the key is not found, return the default if given; otherwise, raise a KeyError.

popitem(/)

Remove and return a (key, value) pair as a 2-tuple.

setdefault(key[, default])

Insert key with a value of default if key is not in the dictionary.

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()