File: //usr/local/lib/python3.6/site-packages/importlib_resources/__pycache__/readers.cpython-36.pyc
3
LBj�
� @ s� d dl Z d dlZd dlZddlmZ ddlmZ ddlmZ dd� Z G dd � d ej
�ZG d
d� dej
�ZG dd
� d
ej
�ZG dd� dej
�ZdS )� N� )�abc)�unique_everseen)�ZipPathc C s t tjj| ��S )N)�iter�collections�OrderedDict�fromkeys)�items� r �J/tmp/pip-build-44150kxb/importlib-resources/importlib_resources/readers.py�remove_duplicates s r
c @ s$ e Zd Zdd� Zdd� Zdd� ZdS )�
FileReaderc C s t j|j�j| _d S )N)�pathlib�Path�path�parent)�self�loaderr r r �__init__ s zFileReader.__init__c C s t | jj|��S )z{
Return the file system path to prevent
`resources.path()` from creating a temporary
copy.
)�strr �joinpath)r �resourcer r r �
resource_path s zFileReader.resource_pathc C s | j S )N)r )r r r r �files s zFileReader.filesN)�__name__�
__module__�__qualname__r r r r r r r r s r c s4 e Zd Zdd� Z� fdd�Zdd� Zdd� Z� ZS ) � ZipReaderc C s4 |j d�\}}}|jjdd�| d | _|j| _d S )N�.�\�/)�
rpartition�prefix�replace�archive)r r �module�_�namer r r r s zZipReader.__init__c sB yt � j|�S tk
r< } zt|jd ��W Y d d }~X nX d S )Nr )�super�
open_resource�KeyError�FileNotFoundError�args)r r �exc)� __class__r r r* % s zZipReader.open_resourcec C s | j � j|�}|j� o|j� S )N)r r �is_file�exists)r r �targetr r r �is_resource+ s zZipReader.is_resourcec C s t | j| j�S )N)r r% r# )r r r r r 1 s zZipReader.files)r r r r r* r3 r �
__classcell__r r )r/ r r s r c @ sh e Zd ZdZdd� Zdd� Zdd� Zdd � Zd
d� Zdd
� Z dd� Z
e
Zdd� Ze
dd� �Zdd� ZdS )�MultiplexedPathz�
Given a series of Traversable objects, implement a merged
version of the interface across all objects. Useful for
namespace packages which may be multihomed at a single
name.
c G sH t ttjt|���| _| js(d}t|��tdd� | jD ��sDtd��d S )Nz.MultiplexedPath must contain at least one pathc s s | ]}|j � V qd S )N)�is_dir)�.0r r r r � <genexpr>B s z+MultiplexedPath.__init__.<locals>.<genexpr>z)MultiplexedPath only supports directories) �list�mapr r r
�_pathsr, �all�NotADirectoryError)r �paths�messager r r r = s zMultiplexedPath.__init__c C s"