Module sls_tools.param_store.param_store_result

Expand source code
import json


class ParamStoreResult:
    """Encapsulates the value of a key.

    Provides helper methods to transform values.
    """

    def __init__(self, key, value, store):
        """Initializes the class with a key/value pair.

        Args:
            key: The key.
            value: The value.
        """
        self._key = key
        self._value = value
        self._store = store

    @property
    def key(self):
        """Gets the key."""
        return self._key

    @property
    def value(self):
        """Gets the value."""
        return self._value

    @property
    def store(self):
        """Gets the the key/value store name this instance was retrieved from."""
        return self._store

    def to_int(self):
        """Parses the value into an integer.

        Returns:
            The value as an integer or None
        """
        if isinstance(self.value, int):
            return self.value
        elif self.value is not None and str(self.value).strip() == '':
            return None
        elif self.value is not None:
            return int(self.value)

    def to_float(self):
        """Parses the value into a float.

        Returns:
            The value as a float or None
        """
        if isinstance(self.value, float):
            return self.value
        elif self.value is not None and str(self.value).strip() == '':
            return None
        elif self.value is not None:
            return float(self.value)

    def to_bool(self, true_values=['true', 't', '1']):
        """Parses the value into a boolean.

        Args:
            true_values: List of string values that evaluate to True. These are case insensitive.

        Returns:
            The value as a boolean or None
        """
        if isinstance(self.value, bool):
            return self.value
        elif self.value is None:
            return False
        else:
            bool_value = str(self.value).strip().lower()
            return bool_value in map(str.lower, true_values)

    def to_list(self, delimiter=','):
        """Parses the value into a list.

        Args:
            delimiter: The delimiter to split the value on.

        Returns:
            A list with any empty values removed.
        """
        if self.value:
            values = self.value.split(delimiter)
            return [v.strip() for v in values if v and v.strip()]
        return []

    def to_json(self):
        """Parses the value into a Python object from a JSON string.

        A value of None or an empty string will not be parsed and will return None.

        Returns:
            Python object or None.
        """
        if self.value is None or (isinstance(self.value, str) and len(self.value.strip()) == 0):
            return None
        else:
            return json.loads(self.value)

Classes

class ParamStoreResult (key, value, store)

Encapsulates the value of a key.

Provides helper methods to transform values.

Initializes the class with a key/value pair.

Args

key
The key.
value
The value.
Expand source code
class ParamStoreResult:
    """Encapsulates the value of a key.

    Provides helper methods to transform values.
    """

    def __init__(self, key, value, store):
        """Initializes the class with a key/value pair.

        Args:
            key: The key.
            value: The value.
        """
        self._key = key
        self._value = value
        self._store = store

    @property
    def key(self):
        """Gets the key."""
        return self._key

    @property
    def value(self):
        """Gets the value."""
        return self._value

    @property
    def store(self):
        """Gets the the key/value store name this instance was retrieved from."""
        return self._store

    def to_int(self):
        """Parses the value into an integer.

        Returns:
            The value as an integer or None
        """
        if isinstance(self.value, int):
            return self.value
        elif self.value is not None and str(self.value).strip() == '':
            return None
        elif self.value is not None:
            return int(self.value)

    def to_float(self):
        """Parses the value into a float.

        Returns:
            The value as a float or None
        """
        if isinstance(self.value, float):
            return self.value
        elif self.value is not None and str(self.value).strip() == '':
            return None
        elif self.value is not None:
            return float(self.value)

    def to_bool(self, true_values=['true', 't', '1']):
        """Parses the value into a boolean.

        Args:
            true_values: List of string values that evaluate to True. These are case insensitive.

        Returns:
            The value as a boolean or None
        """
        if isinstance(self.value, bool):
            return self.value
        elif self.value is None:
            return False
        else:
            bool_value = str(self.value).strip().lower()
            return bool_value in map(str.lower, true_values)

    def to_list(self, delimiter=','):
        """Parses the value into a list.

        Args:
            delimiter: The delimiter to split the value on.

        Returns:
            A list with any empty values removed.
        """
        if self.value:
            values = self.value.split(delimiter)
            return [v.strip() for v in values if v and v.strip()]
        return []

    def to_json(self):
        """Parses the value into a Python object from a JSON string.

        A value of None or an empty string will not be parsed and will return None.

        Returns:
            Python object or None.
        """
        if self.value is None or (isinstance(self.value, str) and len(self.value.strip()) == 0):
            return None
        else:
            return json.loads(self.value)

Instance variables

var key

Gets the key.

Expand source code
@property
def key(self):
    """Gets the key."""
    return self._key
var store

Gets the the key/value store name this instance was retrieved from.

Expand source code
@property
def store(self):
    """Gets the the key/value store name this instance was retrieved from."""
    return self._store
var value

Gets the value.

Expand source code
@property
def value(self):
    """Gets the value."""
    return self._value

Methods

def to_bool(self, true_values=['true', 't', '1'])

Parses the value into a boolean.

Args

true_values
List of string values that evaluate to True. These are case insensitive.

Returns

The value as a boolean or None

Expand source code
def to_bool(self, true_values=['true', 't', '1']):
    """Parses the value into a boolean.

    Args:
        true_values: List of string values that evaluate to True. These are case insensitive.

    Returns:
        The value as a boolean or None
    """
    if isinstance(self.value, bool):
        return self.value
    elif self.value is None:
        return False
    else:
        bool_value = str(self.value).strip().lower()
        return bool_value in map(str.lower, true_values)
def to_float(self)

Parses the value into a float.

Returns

The value as a float or None

Expand source code
def to_float(self):
    """Parses the value into a float.

    Returns:
        The value as a float or None
    """
    if isinstance(self.value, float):
        return self.value
    elif self.value is not None and str(self.value).strip() == '':
        return None
    elif self.value is not None:
        return float(self.value)
def to_int(self)

Parses the value into an integer.

Returns

The value as an integer or None

Expand source code
def to_int(self):
    """Parses the value into an integer.

    Returns:
        The value as an integer or None
    """
    if isinstance(self.value, int):
        return self.value
    elif self.value is not None and str(self.value).strip() == '':
        return None
    elif self.value is not None:
        return int(self.value)
def to_json(self)

Parses the value into a Python object from a JSON string.

A value of None or an empty string will not be parsed and will return None.

Returns

Python object or None.

Expand source code
def to_json(self):
    """Parses the value into a Python object from a JSON string.

    A value of None or an empty string will not be parsed and will return None.

    Returns:
        Python object or None.
    """
    if self.value is None or (isinstance(self.value, str) and len(self.value.strip()) == 0):
        return None
    else:
        return json.loads(self.value)
def to_list(self, delimiter=',')

Parses the value into a list.

Args

delimiter
The delimiter to split the value on.

Returns

A list with any empty values removed.

Expand source code
def to_list(self, delimiter=','):
    """Parses the value into a list.

    Args:
        delimiter: The delimiter to split the value on.

    Returns:
        A list with any empty values removed.
    """
    if self.value:
        values = self.value.split(delimiter)
        return [v.strip() for v in values if v and v.strip()]
    return []