Example #1
0
File: rex.py Project: sdot-b/rez
def optionvars(name, default=None):
    """Access arbitrary data from rez config setting 'optionvars'.

    Args:
        name (str): Name of the optionvar. Use dot notation for values in
            nested dicts.
        default (object): Default value if setting is missing.
    """
    value = config.optionvars or {}
    parts = name.split('.')

    for i, key in enumerate(parts):
        if not isinstance(value, dict):
            raise RexError("Optionvar %r is invalid because %r is not a dict" %
                           (name, '.'.join(parts[:i])))

        value = value.get(key, KeyError)
        if value is KeyError:
            return default

    return value
Example #2
0
 def disallow(cls, value):
     if isinstance(value, cls):
         raise RexError(
             "The command does not accept use of 'literal' or 'expandable'")
     return value