σ
§Zc           @@  sΪ   d  d l  m Z d  d l Z d  d l Z d  d l Z d  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 e	 j   Z i  Z e d	    Z d
   Z d e f d     YZ d S(   i    (   t   absolute_importN(   t   contextmanageri   (   t
   Repositoryt   RepositoryError(   t   PyGIWarning(   t   get_introspection_module(   t   load_overridesc         c@  s   t  j |   } d V| r d S|  d	 k r. d St j |   d k	 rG d St  j |   } t j d i |  d 6| d 6t d | d S(
   sO  A context manager which tries to give helpful warnings
    about missing gi.require_version() which could potentially
    break code if only an older version than expected is installed
    or a new version gets introduced.

    ::

        with _check_require_version("Gtk", stacklevel):
            load_namespace_and_overrides()
    Nt   GLibt   GObjectt   Gios±   %(namespace)s was imported without specifying a version first. Use gi.require_version('%(namespace)s', '%(version)s') before import to ensure that the right version gets loaded.t	   namespacet   versiont
   stacklevel(   R   R   R	   (	   t
   repositoryt   is_registeredt   git   get_required_versiont   Nonet   get_versiont   warningst   warnR   (   R
   R   t
   was_loadedR   (    (    s1   /usr/lib64/python2.7/site-packages/gi/importer.pyt   _check_require_version+   s    c         C@  sm   t  j d  } | d k r' |  r# d Sd S| d k rA |  r= d Sd S| d	 k r[ |  rW d Sd S|  re d Sd Sd S(
   s2  Returns the stacklevel value for warnings.warn() for when the warning
    gets emitted by an imported module, but the warning should point at the
    code doing the import.

    Pass import_hook=True if the warning gets generated by an import hook
    (warn() gets called in load_module(), see PEP302)
    i   i   i   i   i
   N(   i   i   (   i   i   (   i   i   (   t   syst   version_info(   t   import_hookt
   py_version(    (    s1   /usr/lib64/python2.7/site-packages/gi/importer.pyt   get_import_stacklevelR   s    	t   DynamicImporterc           B@  s&   e  Z d    Z d d  Z d   Z RS(   c         C@  s   | |  _  d  S(   N(   t   path(   t   selfR   (    (    s1   /usr/lib64/python2.7/site-packages/gi/importer.pyt   __init__l   s    c         C@  sw   | j  |  j  s d  S| j d d  \ } } | |  j k rA d  St j |  s_ t j |  rc |  St d |   d  S(   Nt   .i   s6   cannot import name %s, introspection typelib not found(   t
   startswithR   t   rsplitR   R   t   enumerate_versionst   ImportError(   R   t   fullnameR   R
   (    (    s1   /usr/lib64/python2.7/site-packages/gi/importer.pyt   find_moduleo   s    c   	   	   C@  sχ   | t  j k r t  j | S| j d d  \ } } t d t  } t | d | { y t |  } Wn t k
 r } t |   n Xx5 t	 j
 |  D]$ } t j d | j d  d  q Wt |  } Wd  QXd | | _ |  | _ | t  j | <| S(	   NR    i   R   R   s   gi.repository.t   -i    s   <%s>(   R   t   modulesR"   R   t   TrueR   R   R   R$   R   t   get_immediate_dependenciest	   importlibt   import_modulet   splitR   t   __file__t
   __loader__(	   R   R%   R   R
   R   t   introspection_modulet   et   dept   dynamic_module(    (    s1   /usr/lib64/python2.7/site-packages/gi/importer.pyt   load_module   s     "	N(   t   __name__t
   __module__R   R   R&   R4   (    (    (    s1   /usr/lib64/python2.7/site-packages/gi/importer.pyR   h   s   	(   t
   __future__R    R   R   R+   t
   contextlibR   R   t   _giR   R   R   t   moduleR   t	   overridesR   t   get_defaultR   R(   R   R   t   objectR   (    (    (    s1   /usr/lib64/python2.7/site-packages/gi/importer.pyt   <module>   s   '	