File: //usr/lib/python3/dist-packages/django/core/files/__pycache__/base.cpython-310.pyc
o
ʎ�_� � @ sp d dl Z d dlmZmZmZ d dlmZ d dlmZ G dd� de�Z G dd� de �Z
d d
� Zdd� Zd
d� Z
dS )� N)�BytesIO�StringIO�UnsupportedOperation)�FileProxyMixin)�cached_propertyc @ s� e Zd ZdZddd�Zdd� Zdd� Zd d
� Zdd� Ze d
d� �Z
ddd�Zddd�Zdd� Z
dd� Zdd� Zddd�Zdd� ZdS )�Filei Nc C s: || _ |d u r
t|dd �}|| _t|d�r|j| _d S d S )N�name�mode)�file�getattrr �hasattrr )�selfr
r � r �8/usr/lib/python3/dist-packages/django/core/files/base.py�__init__ s
�z
File.__init__c C s
| j pdS )N� �r �r
r r r �__str__ �
zFile.__str__c C s d| j j| pdf S )Nz<%s: %s>�None)� __class__�__name__r r r r �__repr__ s z
File.__repr__c C s
t | j�S �N)�boolr r r r r �__bool__ r z
File.__bool__c C s | j S r )�sizer r r r �__len__ s zFile.__len__c C s� t | jd�r
| jjS t | jd�r%z tj�| jj�W S ttfy$ Y nw t | jd�rKt | jd�rK| j� � }| j�
dtj� | j� � }| j�
|� |S td��)Nr r �tell�seekr z$Unable to determine the file's size.)
r r
r �os�path�getsizer �OSError� TypeErrorr r �SEEK_END�AttributeError)r
�posr r r r r s �
z File.sizec c sN � |p| j }z| �d� W n ttfy Y nw | �|�}|s#dS |V q)z{
Read the file and yield chunks of ``chunk_size`` bytes (defaults to
``File.DEFAULT_CHUNK_SIZE``).
r TN)�DEFAULT_CHUNK_SIZEr r'