B
    0a
                 @   sh   d dl mZ d dl mZ d dl mZ d dl mZ d dlZd dlZd dlZddlm	Z	 G dd	 d	e
ZdS )
    )absolute_import)division)print_function)unicode_literalsN   )extract_libtoolc               @   sB   e Zd Zdd ZedddZdd Zedd	 Zed
d ZdS )LibtoolImporterc             C   s   || _ || _d S )N)namepath)selfr	   r
    r   ;/usr/lib/gobject-introspection/giscanner/libtoolimporter.py__init__#   s    zLibtoolImporter.__init__Nc             C   s|   | d}| d }t|dkr>tjj| }tj|d}nd}x4tjD ]*}tj|||}tj|rJ| ||S qJW d S )N.z.lar   z.libs)splitpoplenosr
   joinsysexists)clsr	   ZpackagepathZmodpartsfilenameZ	modprefixr
   Zfullr   r   r   find_module'   s    
zLibtoolImporter.find_modulec             C   s4   t | j}ddtjf}t|t|||}| |_|S )N rb)r   r
   impC_EXTENSIONload_moduleopen
__loader__)r   r	   realpathsuffixmodr   r   r   r   ;   s
    
zLibtoolImporter.load_modulec             C   s   t j|  d S )N)r   	meta_pathappend)r   r   r   r   	__enter__H   s    zLibtoolImporter.__enter__c             C   s   t j|  d S )N)r   r$   remove)r   exc_typeZexc_valZexc_tbr   r   r   __exit__L   s    zLibtoolImporter.__exit__)N)	__name__
__module____qualname__r   classmethodr   r   r&   r)   r   r   r   r   r   !   s   r   )Z
__future__r   r   r   r   r   r   r   Zutilsr   objectr   r   r   r   r   <module>   s   