o
    QDi                     @  sx   d dl mZ d dlmZmZmZ ddlmZ ddlm	Z	 ddl
mZ G dd deZG d	d
 d
eZG dd deZdS )    )annotations)AnyOptionalUnion   )helpers)FrictionlessException)Resourcec                   @  s2   e Zd ZdZdZddddd	Z	ddddZdS )TextResourcetextN)sizer   Optional[int]returnstrc                C  sJ   | j rt| jS t|  | j|W  d   S 1 sw   Y  dS )zORead text into memory

        Returns:
            str: resource text
        N)memoryr   datar   ensure_opentext_streamread)selfr    r   T/var/www/Datamplify/venv/lib/python3.10/site-packages/frictionless/resources/text.py	read_text   s
   

$zTextResource.read_texttarget"Optional[Union[TextResource, Any]]optionsr   c                 K  sf   |}t |tstdi |}t |tstd|  }||jp!d}|js(J tj	|j|dd |S )zWrite text data to the targetztarget must be a text resourcezutf-8wb)modeNr   )

isinstancer	   r
   r   r   encodeencodingnormpathr   
write_file)r   r   r   resourcer   bytesr   r   r   
write_text   s   


zTextResource.write_text)r   r   r   r   )N)r   r   r   r   )__name__
__module____qualname__typedatatyper   r%   r   r   r   r   r
   
   s    r
   c                   @     e Zd ZdZdS )ArticleResourcearticleNr&   r'   r(   r*   r   r   r   r   r,   /       r,   c                   @  r+   )ScriptResourcescriptNr.   r   r   r   r   r0   3   r/   r0   N)
__future__r   typingr   r   r    r   	exceptionr   r#   r	   r
   r,   r0   r   r   r   r   <module>   s    %