MINI MINI MANI MO
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 ddZd!ddZedd Zdd Zdd Zdd ZG dd dejZG dd dejZd
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 ds| S |s&tdt|  dd}x| D ]}|dkr>P |d7 }q0W t| |d  ||S )N.zno package specified for z% (required for relative module names)r   r   )
startswith
ValueErrorreprr   )namepackagelevel	character r   &/usr/lib64/python3.6/importlib/util.pyresolve_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)sysmodulesr   __spec__AttributeErrorr   format)r   pathmodulespecr   r   r   _find_spec_from_path#   s    
r!   c             C   s   | j drt| |n| }|tjkrZ|jdd }|rNt|dgd}t||jS t|d S n`tj| }|d krpd S y
|j}W n$ t	k
r   t
dj| d Y nX |d krt
dj| |S d S )Nr   r   __path__)fromlistz{}.__spec__ is not setz{}.__spec__ is None)r   r   r   r   
rpartition
__import__r   r"