Get config value with data type transformation (from str)

        :param str section: Section to get config for.
        :param str key: Key to get config for.
        :param default: Default value for key if key was not found.
        :return: Value for the section/key or `default` if set and key does not exist.
                 If not default is set, then return None.

def get(self, section, key, default=NO_DEFAULT_VALUE):
        """
        Get config value with data type transformation (from str)

        :param str section: Section to get config for.
        :param str key: Key to get config for.
        :param default: Default value for key if key was not found.
        :return: Value for the section/key or `default` if set and key does not exist.
                 If not default is set, then return None.
        """
        self._read_sources()

        if (section, key) in self._dot_keys:
            section, key = self._dot_keys[(section, key)]

        try:
            value = self._parser.get(section, key)
        except Exception:
            if default == NO_DEFAULT_VALUE:
                return None
            else:
                return default

        return self._typed_value(value)