BaseRealWithUnits

class ase2sprkkr.common.grammar_types.basic.BaseRealWithUnits(prefix=None, postfix=None, format='', after_format=None, default_value=None, condition=None, after_convert=None, description='', min=None, max=None, nan=None)[source]

The base class for float value, which can have units append. The value is converted automatically to the base units.

Class hierarchy

Inheritance diagram of ase2sprkkr.common.grammar_types.basic.BaseRealWithUnits

Constructor

Parameters:
  • prefix (str | None)

  • postfix (str | None)

  • format (str)

  • after_format (str | None)

  • default_value (Any)

  • condition (Callable[[Any], bool | str] | None)

  • after_convert (Callable[[Any], Any] | None)

  • min (int | None)

  • max (int | None)

__init__(prefix=None, postfix=None, format='', after_format=None, default_value=None, condition=None, after_convert=None, description='', min=None, max=None, nan=None)
Parameters:
  • min (int | None) – Minimal allowed value.

  • max (int | None) – Maximal allowed value.

  • prefix (str | None)

  • postfix (str | None)

  • format (str)

  • after_format (str | None)

  • default_value (Any)

  • condition (Callable[[Any], bool | str] | None)

  • after_convert (Callable[[Any], Any] | None)

grammar_cache = {}

The grammar for units is cached

property unit_strings
_grammar_units(units)[source]
_grammar(param_name)[source]

Token for matching strings that match a given regular expression. Defined with string specifying the regular expression in a form recognized by the stdlib Python re module. If the given regex contains named groups (defined using (?P<name>...)), these will be preserved as named ParseResults.

If instead of the Python stdlib re module you wish to use a different RE module (such as the regex module), you can do so by building your Regex object with a compiled RE that was compiled using regex.

Example:

realnum = Regex(r"[+-]?\d+\.\d*")
# ref: https://stackoverflow.com/questions/267399/how-do-you-match-only-valid-roman-numerals-with-a-regular-expression
roman = Regex(r"M{0,4}(CM|CD|D?{0,3})(XC|XL|L?X{0,3})(IX|IV|V?I{0,3})")

# named fields in a regex will be returned as named results
date = Regex(r'(?P<year>\d{4})-(?P<month>\d\d?)-(?P<day>\d\d?)')

# the Regex class will accept re's compiled using the regex module
import regex
parser = pp.Regex(regex.compile(r'[0-9]'))
convert(value)[source]

Convert a value from user to the “cannonical form”

_validate(value, why='set')[source]

Return error message if the value is not valid.

_string(value)[source]

Convert the value to the ouput.

The string() apply format and do some additional transformation (add prefix, postfix etc.), so the actual way how to convert the value for the output should be here.

grammar_name()[source]

Human readable expression of the grammar. By default, this is what is set by grammar.set_name, however, sometimes is desirable to set even shorter string

numpy_type

alias of float