B
    SW•\[
  ã               @   sV   d Z ddlmZ ddlZddlZddlZddlZddlZddlZe	Z
G dd„ dƒZdS )a[  
>>> root = Path(getfixture('zipfile_abcde'))
>>> a, b = root.iterdir()
>>> a
Path('abcde.zip', 'a.txt')
>>> b
Path('abcde.zip', 'b/')
>>> b.name
'b'
>>> c = b / 'c.txt'
>>> c
Path('abcde.zip', 'b/c.txt')
>>> c.name
'c.txt'
>>> c.read_text()
'content of c'
>>> c.exists()
True
>>> (b / 'missing.txt').exists()
False
>>> str(c)
'abcde.zip/b/c.txt'
é    )ÚdivisionNc               @   s¤   e Zd ZdZd#dd„Zedd„ ƒZedd„ ƒZed	d
„ ƒZ	dd„ Z
dd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd „ Zejd!k r eZd"S )$ÚPathz>{self.__class__.__name__}({self.root.filename!r}, {self.at!r})Ú c             C   s,   t |tjƒr|nt |  |¡¡| _|| _d S )N)Ú
isinstanceÚzipfileZZipFileÚ_pathlib_compatÚrootÚat)Úselfr   r	   © r   ú#lib/python3.7/site-packages/zipp.pyÚ__init__(   s    zPath.__init__c             C   s&   y|   ¡ S  tk
r    t| ƒS X dS )zu
        For path-like objects, convert to a filename for compatibility
        on Python 3.6.1 and earlier.
        N)Ú
__fspath__ÚAttributeErrorÚstr)Úpathr   r   r   r   -   s    zPath._pathlib_compatc             C   s   t  | jj| j¡S )N)Ú	functoolsÚpartialr   Úopenr	   )r
   r   r   r   r   8   s    z	Path.openc             C   s   t  | j d¡¡S )Nú/)Ú	posixpathÚbasenamer	   Úrstrip)r
   r   r   r   Úname<   s    z	Path.namec          	   O   s*   |   ¡ }tj|f|ž|Ž ¡ S Q R X d S )N)r   ÚioÚTextIOWrapperÚread)r
   ÚargsÚkwargsÚstrmr   r   r   Ú	read_text@   s    
zPath.read_textc          	   C   s   |   ¡ 
}| ¡ S Q R X d S )N)r   r   )r
   r   r   r   r   Ú
read_bytesD   s    
zPath.read_bytesc             C   s   t  |j d¡¡| j d¡kS )Nr   )r   Údirnamer	   r   )r
   r   r   r   r   Ú	_is_childH   s    zPath._is_childc             C   s   t | j|ƒS )N)r   r   )r
   r	   r   r   r   Ú_nextK   s    z
Path._nextc             C   s   | j  p| j  d¡S )Nr   )r	   Úendswith)r
   r   r   r   Úis_dirN   s    zPath.is_dirc             C   s
   |   ¡  S )N)r&   )r
   r   r   r   Úis_fileQ   s    zPath.is_filec             C   s   | j | j ¡ kS )N)r	   r   Únamelist)r
   r   r   r   ÚexistsT   s    zPath.existsc             C   s>   |   ¡ stdƒ‚tt d¡| j ¡ ƒ}t| j|ƒ}t| j	|ƒS )NzCan't listdir a fileÚfilename)
r&   Ú
ValueErrorÚmapÚoperatorÚ
attrgetterr   Zinfolistr$   Úfilterr#   )r
   ÚnamesZsubsr   r   r   ÚiterdirW   s
    zPath.iterdirc             C   s   t  | jj| j¡S )N)r   Újoinr   r*   r	   )r
   r   r   r   Ú__str__^   s    zPath.__str__c             C   s   | j j| dS )N)r
   )Ú_Path__reprÚformat)r
   r   r   r   Ú__repr__a   s    zPath.__repr__c             C   sP   |   |¡}t | j|¡}t | j|d¡}| j ¡ }|  ||krJ||krJ|n|¡S )Nr   )r   r   r2   r	   r   r(   r$   )r
   ÚaddÚnextZnext_dirr0   r   r   r   Ú__truediv__d   s    

zPath.__truediv__)é   N)r   )Ú__name__Ú
__module__Ú__qualname__r4   r   Ústaticmethodr   Úpropertyr   r   r    r!   r#   r$   r&   r'   r)   r1   r3   r6   r9   ÚsysÚversion_infoZ__div__r   r   r   r   r   %   s$   
	
r   )Ú__doc__Z
__future__r   r   r@   r   r   r-   r   ÚtypeZ__metaclass__r   r   r   r   r   Ú<module>   s   