
    ˀh                        d dl mZ d dlZd dlmZmZ d dlmZ d dlm	Z	 d dl
mZ erd dlmZ d dlmZ d d	lmZ dd
Z	 	 	 	 	 d	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 ddZ	 d	 	 	 	 	 	 	 	 	 ddZddZy)    )annotationsN)TYPE_CHECKINGAny)parse_version)
from_arrow)import_optional)	Coroutine)	DataFrame)
SchemaDictc                |    ddl }ddl}|j                  j                  j	                          |j                  |       S )z/Run asynchronous code as if it was synchronous.r   N)asynciopolars._utils.nest_asyncio_utilsnest_asyncioapplyrun)cor   polarss      u/var/www/html/wine-match-dev/backend/winematch-backend/venv/lib/python3.12/site-packages/polars/io/database/_utils.py
_run_asyncr      s,    %
MM$$&;;r?    c           	     "   t        d      }	 t        |j                        dk  rdnd}|j                  || |||||      }	t        |	|      S # t        $ r7}
t        j                  ddt        |
            } t        |
      |      |
d }
~
ww xY w)	N
connectorx)r         arrow2arrow)connqueryreturn_typepartition_onpartition_rangepartition_numprotocolz://[^:]+:[^:]+@z://***:***@schema_overrides)
r   r   __version__read_sqlBaseExceptionresubstrtyper   )r   connection_urir!   r"   r#   r$   r&   cxr    tblerrerrmsgs               r   _read_sql_connectorxr3      s     
	&B)"/"?)"KhQXkk#%+'  
 c,<==  ))=#c(Cd3iS()s   4A 	B2B		Bc                    t        |      5 }|j                         5 } |j                  | fi |xs i  |j                         }d d d        d d d        t	        |      S # 1 sw Y   xY w# 1 sw Y   "xY w)Nr%   )_open_adbc_connectioncursorexecutefetch_arrow_tabler   )r   r.   r&   execute_optionsr   r6   r0   s          r   _read_sql_adbcr:   8   sx     
~	. )$ )u8!6B8&&() ) c,<==) ) ) )s"   A.(A"A."A+	'A..A7c                   | j                  dd      d   j                         }ddi}|j                  ||      }d| d}t        |dd	d
| d      }|dv rt	        j
                  d| dd|       } |j                  |       S )N:   r   postgres
postgresqladbc_driver_z.dbapiADBCzdriver not detectedzDIf ADBC supports this database, please run: pip install adbc-driver-z pyarrow)
err_prefix
err_suffixinstall_message)sqlite	snowflake^z:/{,3} )splitlowergetr   r*   r+   connect)r.   driver_namemodule_suffix_mapmodule_suffixmodule_nameadbc_drivers         r   r5   r5   D   s     &&sA.q1779K 	L) &))+{CM v6K!(^_j^kkst	K --!K= 92~N~..r   )r   zCoroutine[Any, Any, Any]returnr   )NNNNN)r   zstr | list[str]r.   r,   r!   
str | Noner"   ztuple[int, int] | Noner#   z
int | Noner$   rS   r&   SchemaDict | NonerR   r
   )N)
r   r,   r.   r,   r&   rT   r9   zdict[str, Any] | NonerR   r
   )r.   r,   rR   r   )
__future__r   r*   typingr   r   polars._utils.variousr   polars.convertr   polars.dependenciesr   collections.abcr	   r   r
   polars._typingr   r   r3   r:   r5    r   r   <module>r]      s    " 	 % / % /) )  $.2 $*.>>> > ,	>
 > > (> >B .2		>	>	> (	> +		>
 	>/r   