Source code for pyramid.scripts.common
import os
from pyramid.compat import configparser
from logging.config import fileConfig
def parse_vars(args):
"""
Given variables like ``['a=b', 'c=d']`` turns it into ``{'a':
'b', 'c': 'd'}``
"""
result = {}
for arg in args:
if '=' not in arg:
raise ValueError(
'Variable assignment %r invalid (no "=")'
% arg)
name, value = arg.split('=', 1)
result[name] = value
return result
[docs]def setup_logging(config_uri, global_conf=None,
fileConfig=fileConfig,
configparser=configparser):
"""
Set up logging via :func:`logging.config.fileConfig` with the filename
specified via ``config_uri`` (a string in the form
``filename#sectionname``).
ConfigParser defaults are specified for the special ``__file__``
and ``here`` variables, similar to PasteDeploy config loading.
Extra defaults can optionally be specified as a dict in ``global_conf``.
"""
path = config_uri.split('#', 1)[0]
parser = configparser.ConfigParser()
parser.read([path])
if parser.has_section('loggers'):
config_file = os.path.abspath(path)
full_global_conf = dict(
__file__=config_file,
here=os.path.dirname(config_file))
if global_conf:
full_global_conf.update(global_conf)
return fileConfig(config_file, full_global_conf)