l
d`c            
   @   s?  d  d l  m Z m Z y d  d l m Z Wn d  d l m Z Yn Xd  d l m Z d  d l Z d  d l	 m
 Z
 m Z d  d l m Z d  d l m Z d  d l m Z d	   Z d
   Z d d d  Z d   Z d d d  Z d   Z d   Z d   Z d   Z d   Z d   Z Gd   d e  Z d   Z d   Z  d S(   i    (   u   stdoutu   stderr(   u   getstatusoutput(   u   DecimalN(   u   existsu   getmtime(   u   time(   u   datetime(   u   Dbgc             C   s   d  } t |   t k r t |   t k r? |  j d d  } q t |   t k r` t |   } q t |   t k r t |   } q n |  } | S(   Nu   asciiu   ignore(   u   Noneu   typeu   stru   unicodeu   encodeu   Decimalu   int(   u   obju   retval(    (    u)   /srv/kernel/kteam-tools/libs/ktl/utils.pyu   o2ascii   s    c             C   s!   t  |   s d  St   t |   S(   N(   u   existsu   Noneu   timeu   getmtime(   u   filename(    (    u)   /srv/kernel/kteam-tools/libs/ktl/utils.pyu   fileage$   s    c             C   s~   d } d } | sZ t  |   \ } } t d |  |  t d | |  t d | |  n t d |  d  | | j d  f S(   u   
        Run a command in the shell, returning status and the output.
        prints a message if there's an error, and raises an exception.
        u    u        cmd: '%s'
u     status: '%d'
u     result: '%s'
u   run_command: '%s'
u   
T(   u   getstatusoutputu   debugu   Trueu   split(   u   cmdu   dbgu   dry_runu   statusu   result(    (    u)   /srv/kernel/kteam-tools/libs/ktl/utils.pyu   run_command.   s    c             C   s   t  j d |   t  j   d  S(   Nu   
 ** Error: %s
(   u   stderru   writeu   flush(   u   out(    (    u)   /srv/kernel/kteam-tools/libs/ktl/utils.pyu   errorC   s    c             C   s*   | r& | r t  d  n  t  |   n  d  S(   Nu   debug: (   u   stdo(   u   outu   dbgu   prefix(    (    u)   /srv/kernel/kteam-tools/libs/ktl/utils.pyu   debugK   s    c             C   s9   t  j d  t  j d |   t  j d  t  j   d  S(   Nu   
u     ** Error: %s(   u   stderru   writeu   flush(   u   emsg(    (    u)   /srv/kernel/kteam-tools/libs/ktl/utils.pyu   eoutV   s    c             C   s   t  j |   t  j   d  S(   N(   u   stdoutu   writeu   flush(   u   ostr(    (    u)   /srv/kernel/kteam-tools/libs/ktl/utils.pyu   stdoa   s    
c             C   s   t  j |   t  j   d  S(   N(   u   stderru   writeu   flush(   u   ostr(    (    u)   /srv/kernel/kteam-tools/libs/ktl/utils.pyu   stdef   s    
c             C   s-   t  t j |  d d d d  t  d  d  S(   Nu	   sort_keysu   indenti   u   
T(   u   stdou   jsonu   dumpsu   True(   u   obj(    (    u)   /srv/kernel/kteam-tools/libs/ktl/utils.pyu   dumpk   s    c             C   s   |  d k r d S|  j d  S(   us   
    Return a standard, string representation of the date given. It is assumed that the
    date is UTC based.
    u   Noneu   %A, %d. %B %Y %H:%M UTCN(   u   Noneu   strftime(   u   date(    (    u)   /srv/kernel/kteam-tools/libs/ktl/utils.pyu   date_to_stringq   s    c             C   s   t  j |  d  S(   uN   
    Return a datetime object based on the string in a well known format.
    u   %A, %d. %B %Y %H:%M UTC(   u   datetimeu   strptime(   u   date(    (    u)   /srv/kernel/kteam-tools/libs/ktl/utils.pyu   string_to_datez   s    c             B   s,   |  Ee  Z d  d  Z d   Z d   Z d S(   u    c             C   s   | |  _  d  S(   N(   u	   file_name(   u   selfu	   file_name(    (    u)   /srv/kernel/kteam-tools/libs/ktl/utils.pyu   __init__   s    c             C   s   t  d |  j  d  S(   Nu   The file (%s) does not exist.
(   u   erroru	   file_name(   u   self(    (    u)   /srv/kernel/kteam-tools/libs/ktl/utils.pyu   print_std_error   s    c             C   s   t  d |  j  d  S(   Nu*   ** Warning: The file (%s) does not exist.
(   u   stdeu	   file_name(   u   self(    (    u)   /srv/kernel/kteam-tools/libs/ktl/utils.pyu   print_std_warning   s    N(   u   __name__u
   __module__u   __init__u   print_std_erroru   print_std_warning(   u
   __locals__(    (    u)   /srv/kernel/kteam-tools/libs/ktl/utils.pyu   FileDoesntExist   s   
	u   FileDoesntExistc          	   C   sf   t  j d  d } t |   rI t |  d   } t j |  } Wd QXn t |    t  j d  | S(   uL   
    Load the indicated json format file, returning the created object.
    u	   json_loadu   rN(	   u   Dbgu   enteru   Noneu   existsu   openu   jsonu   loadu   FileDoesntExistu   leave(   u	   file_nameu   retvalu   f(    (    u)   /srv/kernel/kteam-tools/libs/ktl/utils.pyu	   json_load   s    c             C   sc   t  j d  d } t |   rF t |  d   } | j   } Wd QXn t |    t  j d  | S(   uF   
    Load the indicated file into a string and return the string.
    u	   file_loadu   rN(   u   Dbgu   enteru   Noneu   existsu   openu   readu   FileDoesntExistu   leave(   u	   file_nameu   retvalu   f(    (    u)   /srv/kernel/kteam-tools/libs/ktl/utils.pyu	   file_load    s    FT(!   u   sysu   stdoutu   stderru   commandsu   getstatusoutputu
   subprocessu   decimalu   Decimalu   jsonu   os.pathu   existsu   getmtimeu   timeu   datetimeu   ktl.dbgu   Dbgu   o2asciiu   fileageu   Falseu   run_commandu   erroru   Trueu   debugu   eoutu   stdou   stdeu   dumpu   date_to_stringu   string_to_dateu	   Exceptionu   FileDoesntExistu	   json_loadu	   file_load(    (    (    u)   /srv/kernel/kteam-tools/libs/ktl/utils.pyu   <module>   s0   		
									