l
Ě	g]c               @   s   d  d l  m Z d  d l  m Z d d l m Z d d l m Z d  d l Z d  d l Z Gd   d e	  Z
 Gd	   d
  Z d S(   i    (   u   path(   u   _exiti   (   u   Dbg(   u   dumpNc             B   s    |  Ee  Z d    Z d   Z d S(   c             C   s   | |  _  d  S(   N(   u   msg(   u   selfu   error(    (    u'   /srv/kernel/kteam-tools/libs/ktl/cfg.pyu   __init__   s    c             C   s   |  j  S(   N(   u   msg(   u   self(    (    u'   /srv/kernel/kteam-tools/libs/ktl/cfg.pyu   __str__   s    N(   u   __name__u
   __module__u   __init__u   __str__(   u
   __locals__(    (    u'   /srv/kernel/kteam-tools/libs/ktl/cfg.pyu   CfgError   s   
	u   CfgErrorc             B   s,   |  Ee  Z e d     Z e d    Z d S(   c             C   sŁ   t  j d  i  } t j |  r t | d  \ } y t j |  } Wn. t k
 rw | j d  t	 j
 |  } Yn Xt  j d |  Wd QXn  t  j d  | S(   uN   
        Load the passed in file as a json format configuration file.
        u   utils.load_user_configu   ri    u   user config file (%s) loaded
N(   u   Dbgu   enteru   pathu   existsu   openu   jsonu   loadu
   ValueErroru   seeku   yamlu	   safe_loadu   verboseu   leave(   u   clsu   fnameu   user_configu   f(    (    u'   /srv/kernel/kteam-tools/libs/ktl/cfg.pyu   load_user_config   s    c             C   sş  t  j d  i  } x | D] } | | | | <q Wd } d | k rU | d | d <n* d | k rr | d | d <n t  j d  d | k rt  j d | d  d | d k rÖ | d j d t j d   | d <n  |  j | d  } x | D] } | | | | <qđ Wn  x | D] } | | | | <qWd t  j k rŠt  j d  t  j d  x3 | D]+ } d	 | } t  j d
 | | | f  qZWd | d k rŠt	 d  qŠn  t  j
 d  | S(   uĐ   
        Merge the application options together into a final options dictionary. Options
        are taken from application defaults, an optional configuration file and from the
        command line.
        u   utils.merge_config_optionsu   configuration_fileu'   No configuration_file option specified
u)   configuration_file option specified (%s)
u   ~u   cfgu   Configuration:
u2   -------------------------------------------------
u   %su       %-25s = "%s"
u   exitu   debugi    N(   u   Dbgu   enteru   Noneu   verboseu   replaceu   pathu
   expanduseru   load_user_configu   levelsu   _exitu   leave(   u   clsu   defaultsu   cmdline_optionsu   cfgu   ku	   cfg_fnameu   cfg_file_optionsu   str(    (    u'   /srv/kernel/kteam-tools/libs/ktl/cfg.pyu   merge_options2   s:    &
 N(   u   __name__u
   __module__u   classmethodu   load_user_configu   merge_options(   u
   __locals__(    (    u'   /srv/kernel/kteam-tools/libs/ktl/cfg.pyu   Cfg   s   
u   Cfg(   u   osu   pathu   _exitu   dbgu   Dbgu   utilsu   dumpu   jsonu   yamlu	   Exceptionu   CfgErroru   Cfg(    (    (    u'   /srv/kernel/kteam-tools/libs/ktl/cfg.pyu   <module>   s   