
    b^                        d dl mZ  eee          Zd dlZd dlZd dlZd dlZdZdej	        v r e
e          ddlmZ ddlmZ ddlmZ dd	lmZ dd
lmZ eZeZeZi Zej                            ej                            e          d          Z ej        d          Zeej	        ej        <   ej        e_        ej        e_        ej        dd         Z dj        e Z ej                      G d dej                  Z ede          ej	        d<    ede          ej	        d<    ede          ej	        d<    ede          ej	        d<    ede          ej	        d<   d Z d Z!d Z"d Z#ddZ$dS )    )extend_pathNzWhen using gi.repository you must not import static modules like "gobject". Please change all occurrences of "import gobject" to "from gi.repository import GObject". See: https://bugzilla.gnome.org/show_bug.cgi?id=709183gobject   )_gi)_API)
Repository)PyGIDeprecationWarning)PyGIWarning	overrideszgi._gobjectz{0}.{1}.{2}c                       e Zd ZdZd ZdS )_DummyStaticModuleNc                 *    t          t                    N)AttributeError_static_binding_error)selfnames     -/usr/lib/python3/dist-packages/gi/__init__.py__getattr__z_DummyStaticModule.__getattr__D   s    2333    )__name__
__module____qualname____path__r    r   r   r   r   A   s(        H4 4 4 4 4r   r   glibgiogtkzgtk.gdkc                     t          | t                    r6t          t          t          |                     d                              }n| }|t          k    rt          d| dt          d          d S )N.zpygobject's version z! required, and available version z is not recent enough)	
isinstancestrtuplemapintsplitversion_info
ValueError__version__)versionversion_lists     r   check_versionr,   O   sx    '3 SgmmC&8&899::l""j*1'';;;@ 
 
 	
 #"r   c                    t          j                    }t          |t                    st	          d          | |                                v r0|                    |           }||k    rt	          d| d|          | t          v r1t          |          |k    r t	          d| dt          |                    |                    |           }|st	          d| z            ||vrt	          d| d|          |t          | <   dS )a   Ensures the correct versions are loaded when importing `gi` modules.

    :param namespace: The name of module to require.
    :type namespace: str
    :param version: The version of module to require.
    :type version: str
    :raises ValueError: If module/version is already loaded, already required, or unavailable.

    :Example:

    .. code-block:: python

        import gi
        gi.require_version('Gtk', '3.0')

    z'Namespace version needs to be a string.z
Namespace z  is already loaded with version z already requires version zNamespace %s not availablez not available for version N)	r   get_defaultr!   r"   r(   get_loaded_namespacesget_version	_versionsenumerate_versions)	namespacer*   
repositoryloaded_versionavailable_versionss        r   require_versionr7   \   sH   " '))Jgs## DBCCCJ446666#//	::W$$*'ii9 : : : I)I"6'"A"Aj#))Yy%9%9; < < 	< $66yAA C5	ABBB(((j#))WW. / / 	/ #Iir   c                 Z    |                                  D ]\  }}t          ||           dS )a3   Utility function for consolidating multiple `gi.require_version()` calls.

    :param requires: The names and versions of modules to require.
    :type requires: dict

    :Example:

    .. code-block:: python

        import gi
        gi.require_versions({'Gtk': '3.0', 'GLib': '2.0', 'Gio': '2.0'})
    N)itemsr7   )requiresmodule_namemodule_versions      r   require_versionsr=      s?     (0~~'7'7 5 5#^^44445 5r   c                 8    t                               | d           S r   )r1   get)r3   s    r   get_required_versionr@      s    ==D)))r   c                     	 t          j        | |           n.# t          $ r!}t          t	          |                    d}~ww xY wt          j        d|            dS )a  Ensure the given foreign marshaling module is available and loaded.

    :param str namespace:
        Introspection namespace of the foreign module (e.g. "cairo")
    :param symbol:
        Optional symbol typename to ensure a converter exists.
    :type symbol: str or None
    :raises: ImportError

    :Example:

    .. code-block:: python

        import gi
        import cairo
        gi.require_foreign('cairo')

    Nzgi.repository)r   require_foreign	ExceptionImportErrorr"   	importlibimport_module)r3   symboles      r   rB   rB      si    &"Iv.... " " "#a&&!!!"OY77777s    
A>Ar   )%pkgutilr   r   r   sysosrE   typesr   modulesrD    r   r   r   r	   r
   r1   pathjoindirname__file___overridesdir
ModuleType_gobject_PyGObject_APIpygobject_versionr'   formatr)   register_foreignr   r,   r7   r=   r@   rB   r   r   r   <module>rZ      s  ,       ;x** 



 				     R  
++
,
,,                   ' ' ' ' ' '      / 	RW__X66DD 5M**!)H ,  2 $QQQ'"m"L1     4 4 4 4 4) 4 4 4 )(1FGGF ++I7LMMI ''/DEEE ''/DEEE ++I7LMMI 

 

 

(# (# (#V5 5 5"* * *8 8 8 8 8 8r   