509318396
Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­
<!DOCTYPE html>
<html>
3
‰å<_¨  ã               @   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	d
„ ƒZdd„ ZG dd„ deƒZdS )é    )Úabsolute_importN)Úcontextmanageré   )Ú
RepositoryÚRepositoryError)ÚPyGIWarning)Úget_introspection_module)Úload_overridesc             c   s^   t j| ƒ}dV  |rdS | dkr$dS tj| ƒdk	r6dS t j| ƒ}tjd| |dœ t|d� dS )	aO  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()
    NÚGLibÚGObjectÚGioz±%(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.)Ú	namespaceÚversion)Ú
stacklevel)r
   r   r   )Ú
repositoryÚis_registeredÚgiZget_required_versionZget_versionÚwarningsÚwarnr   )r   r   Z
was_loadedr   © r   ú /usr/lib64/python3.6/importer.pyÚ_check_require_version+   s    


r   c             C   sZ   t jdd… }|dkr"| rdS dS |dkr6| r2dS dS |d	krJ| rFdS dS | rRdS dS dS )
a2  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)
    Né   é   é   é   é
   )r   r   )r   r   )r   r   )ÚsysÚversion_info)Úimport_hookÚ
py_versionr   r   r   Úget_import_stacklevelR   s    	r!   c               @   s&   e Zd Zdd„ Zddd„Zdd„ ZdS )	ÚDynamicImporterc             C   s
   || _ d S )N)Úpath)Úselfr#   r   r   r   Ú__init__l   s    zDynamicImporter.__init__Nc             C   sV   |j | jƒsd S |jddƒ\}}|| jkr.d S tj|ƒsBtj|ƒrF| S td| ƒ‚d S )NÚ.r   z6cannot import name %s, introspection typelib not found)Ú
startswithr#   Úrsplitr   r   Zenumerate_versionsÚImportError)r$   Úfullnamer#   r   r   r   r   Úfind_moduleo   s    


zDynamicImporter.find_modulec       	      C   sÐ   |t jkrt j| S |jddƒ\}}tdd�}t||d��r yt|ƒ}W n* tk
rr } zt|ƒ‚W Y d d }~X nX x*tj	|ƒD ]}t
jd|jdƒd  ƒ q€W t|ƒ}W d Q R X d	| |_| |_|t j|< |S )
Nr&   r   T)r   )r   zgi.repository.ú-r   z<%s>)r   Úmodulesr(   r!   r   r   r   r)   r   Zget_immediate_dependenciesÚ	importlibÚimport_moduleÚsplitr	   Ú__file__Ú
__loader__)	r$   r*   r#   r   r   Zintrospection_moduleÚeZdepZdynamic_moduler   r   r   Úload_module�   s     




zDynamicImporter.load_module)N)Ú__name__Ú
__module__Ú__qualname__r%   r+   r4   r   r   r   r   r"   h   s   
r"   )Z
__future__r   r   r   r.   Ú
contextlibr   r   Z_gir   r   r   Úmoduler   Z	overridesr	   Zget_defaultr   r-   r   r!   Úobjectr"   r   r   r   r   Ú<module>   s   '