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" r r r r )r r ÚfullnameÚparent_nameÚparentr r r r r Ú find_specB s" r) c c sŽ | t jk}t jj| ƒ}|s6tt ƒ| ƒ}d|_|t j| <