MINI MINI MANI MO
3
  \CS                 @   st  d dl mZ d dlmZ d dlZd dlZd dlZd dlZd dl	Zd dl
Z
d dlmZ d dl
Z
ddddd	d
ddd
dddgZeddZde_dd Zdd Zd*dd	Zd+dd
Zed,ddZd-ddZejejje dd ZG dd dZG d d
 d
Zy.d dlZd d!lmZ d.d"d#Zejee W n e k
r<   Y nX d$d Z!d/d%dZ"d&d Z#d'd Z$d(d Z%d)d Z&dS )0    )
namedtuple)singledispatchN)
ModuleTypeget_importeriter_importers
get_loaderfind_loader
walk_packagesiter_modulesget_dataImpImporter	ImpLoader	read_codeextend_path
ModuleInfozmodule_finder name ispkgz.A namedtuple with minimal info about a module.c             C   sL   y
| j }W n4 tk
r>   | j|}|d kr0d S tjj||S X ||S d S )N)	find_specAttributeErrorfind_module	importlibutilspec_from_loader)findernamer   loader r   /usr/lib64/python3.6/pkgutil.py	_get_spec   s    
r   c             C   s6   dd l }| jd}|tjjkr"d S | jd |j| S )Nr         )marshalreadr   r   MAGIC_NUMBERload)streamr   magicr   r   r   r   (   s    
 c          
   #   s   i fdd xt | |D ]}|V  |jryt|j W nN tk
r\   |d k	rX||j Y q tk
r   |d k	r~||j n Y qX ttj|j dd pg }  fdd| D } t	| |jd |E d H  qW d S )Nc             S   s   | |krdS d|| <