1# -*- coding: utf-8 -*-
2
3import warnings
4warnings.simplefilter('default', DeprecationWarning)
5
6from .utils import import_string, get_envvar
7
8
9def str_object(obj_path, silent=False, is_envvar=False):
10    """Get a configuration object from a string."""
11    if is_envvar:
12        obj_path = get_envvar(obj_path, silent=silent)
13
14    try:
15        obj = import_string(obj_path)
16    except (ImportError, ValueError):
17        if not silent:
18            raise
19        else:
20            obj = None
21
22    return obj
23
24
25def envvar_object(var_name, silent=False):
26    """Get a configuration object from an environment variable."""
27    warnings.warn('`envvar_object(name, silent)` is deprecated, use '
28                  '`str_object(name, silent, is_envvar=True)` instead.',
29                  DeprecationWarning)
30    return str_object(var_name, silent=silent, is_envvar=True)
31