File: //usr/lib64/python3.8/__pycache__/pkgutil.cpython-38.opt-2.pyc
U
    e5d�S  �                   @   st  d dl mZ d dlmZ d dlZd dlZd dlZd dlZd dl	Zd dl
Z
d dlmZ d dl
Z
ddddd	d
ddd
dddgZedd�Zde_dd� Zdd� Zd*dd	�Zd+dd
�Zed,dd��Zd-dd�Ze�ejje� dd� ZG dd� d�ZG d d
� d
�Zz.d dlZd d!lmZ d.d"d#�Ze�ee� W n e k
�r<   Y nX d$d� Z!d/d%d�Z"d&d� Z#d'd� Z$d(d� Z%d)d� Z&dS )0�    )�
namedtuple)�singledispatchN)�
ModuleType�get_importer�iter_importers�
get_loader�find_loader�
walk_packages�iter_modules�get_data�ImpImporter�	ImpLoader�	read_code�extend_path�
ModuleInfozmodule_finder name ispkgz.A namedtuple with minimal info about a module.c                 C   sR   z
| j }W n: tk
rD   | �|�}|d kr2Y d S tj�||� Y S X ||�S d S �N)�	find_spec�AttributeError�find_module�	importlib�util�spec_from_loader)�finder�namer   �loader� r   �/usr/lib64/python3.8/pkgutil.py�	_get_spec   s    
r   c                 C   s6   dd l }| �d�}|tjjkr"d S | �d� |�| �S )Nr   �   �   )�marshal�readr   r   �MAGIC_NUMBER�load)�streamr    �magicr   r   r   r   (   s    
� c              	   #   s�   i fdd�� t | |�D ]�}|V  |jrzt|j� W nN tk
rZ   |d k	rV||j� Y q tk
r�   |d k	r|||j� n� Y qX ttj|j dd �p�g } � fdd�| D �} t	| |jd |�E d H  qd S )Nc                 S   s   | |krdS d|| <