o
    QDi                     @  s   d dl mZ d dlZd dlmZmZ ddlmZmZ ddl	m
Z
 ddlmZ ddlmZ dd	lmZ d
dlmZ G dd deZdS )    )annotationsN)AnyList   )errorstypes)FrictionlessException)platform)TableResource)Parser   )GsheetsControlc                   @  s*   e Zd ZdZdgZdddZdd	d
ZdS )GsheetsParserz$Google Sheets parser implementation.stringreturntypes.ICellStreamc                 c  s    | j jsJ | j j}td|}d}d\}}|r#|d}|d}|||f }|r1d||f }t|d}| j j|_|jE d H  W d    d S 1 sMw   Y  d S )N-.*/d/(?P<key>[^/]+)/.*?(?:gid=(?P<gid>\d+))?$zAhttps://docs.google.com/spreadsheets/d/%s/export?format=csv&id=%s) r   keygidz	%s&gid=%s)path)resourcenormpathresearchgroupr
   statscell_stream)selfr   matchr   r   r    r    \/var/www/Datamplify/venv/lib/python3.10/site-packages/frictionless/formats/gsheets/parser.pyread_cell_stream_create   s    


"z%GsheetsParser.read_cell_stream_createsourcer
   c                 C  s   | j jsJ | j j}t| j j}td|}|s&tjd| d}t	||
d}|
d}tjj|jd}||}	|rD|	|n|	d }
g }| ||jj |jD ]	}||  qWW d    n1 skw   Y  |
d| |S )	Nr   zCannot save )noter   r   )service_account_filer   A1)r   r   r   from_dialectdialectr   r   r   FormatErrorr   r   r	   	pygsheets	authorizecredentialsopen_by_keyworksheet_by_idappendschemafield_names
row_streamto_listupdate_values)r   r#   r   controlr   errorr   r   gcshwksdatarowr    r    r!   write_row_stream*   s*   



zGsheetsParser.write_row_streamN)r   r   )r#   r
   )__name__
__module____qualname____doc__supported_typesr"   r<   r    r    r    r!   r      s    
r   )
__future__r   r   typingr   r   r   r   r   	exceptionr   r	   	resourcesr
   systemr   r5   r   r   r    r    r    r!   <module>   s    