File: //lib64/python3.6/importlib/__pycache__/util.cpython-36.opt-2.pyc
3
  \�*  �               @   s  d dl mZ d dlmZ d dlmZ d dlmZ d dlmZ d dlmZ d dlm	Z	 d dlm
Z
 d d	lmZ d d
lmZ ddl
mZ dd
lZdd
lZdd
lZdd
lZdd� Zd dd�Zd!dd�Zedd� �Zdd� Zdd� Zdd� ZG dd� dej�ZG dd� dej�Zd
S )"�   )�abc)�module_from_spec)�
_resolve_name)�spec_from_loader)�
_find_spec)�MAGIC_NUMBER)�cache_from_source)�
decode_source)�source_from_cache)�spec_from_file_location�    )�contextmanagerNc             C   s^   | j d�s| S |s&tdt| �� d���d}x| D ]}|dkr>P |d7 }q0W t| |d � ||�S )N�.zno package specified for z% (required for relative module names)r   r   )�
startswith�
ValueError�reprr   )�name�package�level�	character� r   �&/usr/lib64/python3.6/importlib/util.py�resolve_name   s    
r   c             C   sx   | t jkrt| |�S t j|  }|d kr*d S y
|j}W n$ tk
rX   tdj| ��d �Y nX |d krptdj| ���|S d S )Nz{}.__spec__ is not setz{}.__spec__ is None)�sys�modulesr   �__spec__�AttributeErrorr   �format)r   �path�module�specr   r   r   �_find_spec_from_path#   s    
r!   c             C   s�   | j d�rt| |�n| }|tjkrZ|jd�d }|rNt|dgd�}t||j�S t|d �S n`tj| }|d krpd S y
|j}W n$ t	k
r�   t
dj| ��d �Y nX |d kr�t
dj| ���|S d S )Nr   r   �__path__)�fromlistz{}.__spec__ is not setz{}.__spec__ is None)r   r   r   r   �
rpartition�
__import__r   r"