Ñò
u©×Nc           @   sb   d  d k  l Z d  d k l Z d  d k Z d e f d „  ƒ  YZ d „  Z d d	 d „  ƒ  YZ d S(
   iÿÿÿÿ(   t   SafeConfigParser(   t	   LocalEvalNt   CustomConfigParserc           B   sG   e  Z d  „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z RS(   c         O   s6   |  i  | | ƒ o |  i | | f | | Ž  S| Sd S(   sb   Same as config.get, but returns the "default" option if there
        is no such option specified.N(   t
   has_optiont   get(   t   selft   sectiont   optiont   defaultt   argst   kwargs(    (    s|   /projectLibrary/707976 EPBuoyPrototypeAndTesting/SpotWatchCircleAlarm/spaetz-offlineimap-5f3ac2c/offlineimap/CustomConfig.pyt
   getdefault   s    c         O   s6   |  i  | | ƒ o |  i | | f | | Ž  S| Sd  S(   N(   R   t   getint(   R   R   R   R   R	   R
   (    (    s|   /projectLibrary/707976 EPBuoyPrototypeAndTesting/SpotWatchCircleAlarm/spaetz-offlineimap-5f3ac2c/offlineimap/CustomConfig.pyt   getdefaultint   s    c         O   s6   |  i  | | ƒ o |  i | | f | | Ž  S| Sd  S(   N(   R   t   getfloat(   R   R   R   R   R	   R
   (    (    s|   /projectLibrary/707976 EPBuoyPrototypeAndTesting/SpotWatchCircleAlarm/spaetz-offlineimap-5f3ac2c/offlineimap/CustomConfig.pyt   getdefaultfloat%   s    c         O   s6   |  i  | | ƒ o |  i | | f | | Ž  S| Sd  S(   N(   R   t
   getboolean(   R   R   R   R   R	   R
   (    (    s|   /projectLibrary/707976 EPBuoyPrototypeAndTesting/SpotWatchCircleAlarm/spaetz-offlineimap-5f3ac2c/offlineimap/CustomConfig.pyt   getdefaultboolean+   s    c         C   sL   t  i i |  i d d d ƒ ƒ } t  i i | ƒ p t  i | d ƒ n | S(   Nt   generalt   metadatas   ~/.offlineimapiÀ  (   t   ost   patht
   expanduserR   t   existst   mkdir(   R   t   metadatadir(    (    s|   /projectLibrary/707976 EPBuoyPrototypeAndTesting/SpotWatchCircleAlarm/spaetz-offlineimap-5f3ac2c/offlineimap/CustomConfig.pyt   getmetadatadir1   s    !c         C   sE   |  i  d d ƒ o" t i i |  i d d ƒ ƒ } n d  } t | ƒ S(   NR   t
   pythonfile(   R   R   R   R   R   t   NoneR   (   R   R   (    (    s|   /projectLibrary/707976 EPBuoyPrototypeAndTesting/SpotWatchCircleAlarm/spaetz-offlineimap-5f3ac2c/offlineimap/CustomConfig.pyt   getlocaleval7   s    "c         C   sM   | d } g  } |  i  ƒ  D]+ } | i | ƒ o | | t | ƒ q q ~ S(   sô   Returns a list of sections that start with key + " ".  That is,
        if key is "Account", returns all section names that start with
        "Account ", but strips off the "Account ".  For instance, for
        "Account Test", returns "Test".t    (   t   sectionst
   startswitht   len(   R   t   keyt   _[1]t   x(    (    s|   /projectLibrary/707976 EPBuoyPrototypeAndTesting/SpotWatchCircleAlarm/spaetz-offlineimap-5f3ac2c/offlineimap/CustomConfig.pyt   getsectionlist>   s    
(	   t   __name__t
   __module__R   R   R   R   R   R   R%   (    (    (    s|   /projectLibrary/707976 EPBuoyPrototypeAndTesting/SpotWatchCircleAlarm/spaetz-offlineimap-5f3ac2c/offlineimap/CustomConfig.pyR      s   						c           C   s   d S(   sÈ   Just a constant that won't occur anywhere else.

    This allows us to differentiate if the user has passed in any
    default value to the getconf* functions in ConfigHelperMixin
    derived classes.N(    (    (    (    s|   /projectLibrary/707976 EPBuoyPrototypeAndTesting/SpotWatchCircleAlarm/spaetz-offlineimap-5f3ac2c/offlineimap/CustomConfig.pyt   CustomConfigDefaultH   s    t   ConfigHelperMixinc           B   sG   e  Z d  Z d „  Z e d „ Z e d „ Z e d „ Z e d „ Z RS(   s³  Allow comfortable retrieving of config values pertaining to a section.

    If a class inherits from this cls:`ConfigHelperMixin`, it needs
    to provide 2 functions: meth:`getconfig` (returning a
    ConfigParser object) and meth:`getsection` (returning a string
    which represents the section to look up). All calls to getconf*
    will then return the configuration values for the ConfigParser
    object in the specific section.c         C   sA   | t  j o | |  i ƒ  | g Œ  S| |  i ƒ  | | g Œ  Sd S(   s$   Return config value for getsection()N(   R(   t
   getsection(   R   R   R   t   defaultfunct   mainfunc(    (    s|   /projectLibrary/707976 EPBuoyPrototypeAndTesting/SpotWatchCircleAlarm/spaetz-offlineimap-5f3ac2c/offlineimap/CustomConfig.pyt   _confighelper_runnerZ   s    c         C   s(   |  i  | | |  i ƒ  i |  i ƒ  i ƒ S(   N(   R-   t	   getconfigR   R   (   R   R   R   (    (    s|   /projectLibrary/707976 EPBuoyPrototypeAndTesting/SpotWatchCircleAlarm/spaetz-offlineimap-5f3ac2c/offlineimap/CustomConfig.pyt   getconfb   s    c         C   s(   |  i  | | |  i ƒ  i |  i ƒ  i ƒ S(   N(   R-   R.   R   R   (   R   R   R   (    (    s|   /projectLibrary/707976 EPBuoyPrototypeAndTesting/SpotWatchCircleAlarm/spaetz-offlineimap-5f3ac2c/offlineimap/CustomConfig.pyt   getconfbooleanh   s    c         C   s(   |  i  | | |  i ƒ  i |  i ƒ  i ƒ S(   N(   R-   R.   R   R   (   R   R   R   (    (    s|   /projectLibrary/707976 EPBuoyPrototypeAndTesting/SpotWatchCircleAlarm/spaetz-offlineimap-5f3ac2c/offlineimap/CustomConfig.pyt
   getconfintm   s    c         C   s(   |  i  | | |  i ƒ  i |  i ƒ  i ƒ S(   N(   R-   R.   R   R   (   R   R   R   (    (    s|   /projectLibrary/707976 EPBuoyPrototypeAndTesting/SpotWatchCircleAlarm/spaetz-offlineimap-5f3ac2c/offlineimap/CustomConfig.pyt   getconffloatr   s    (	   R&   R'   t   __doc__R-   R(   R/   R0   R1   R2   (    (    (    s|   /projectLibrary/707976 EPBuoyPrototypeAndTesting/SpotWatchCircleAlarm/spaetz-offlineimap-5f3ac2c/offlineimap/CustomConfig.pyR)   P   s   		(    (   t   ConfigParserR    t   offlineimap.localevalR   R   R   R(   R)   (    (    (    s|   /projectLibrary/707976 EPBuoyPrototypeAndTesting/SpotWatchCircleAlarm/spaetz-offlineimap-5f3ac2c/offlineimap/CustomConfig.pyt   <module>   s
   2	