Ë
    ðmxi�  ã                  ó  — d 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 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 er*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 ddlmZ ddlmZ  G d„ de«      Z G d„ de«      ZeZy)a“  

.. dialect:: mysql+cymysql
    :name: CyMySQL
    :dbapi: cymysql
    :connectstring: mysql+cymysql://<username>:<password>@<host>/<dbname>[?<options>]
    :url: https://github.com/nakagami/CyMySQL

.. note::

    The CyMySQL dialect is **not tested as part of SQLAlchemy's continuous
    integration** and may have unresolved issues.  The recommended MySQL
    dialects are mysqlclient and PyMySQL.

é    )Úannotations)ÚAny)ÚIterable)ÚOptional)ÚTYPE_CHECKING)ÚUnioné   )ÚMySQLDialect)ÚMySQLDialect_mysqldb)ÚBITé   )Úutil)Ú
Connection)ÚDBAPIConnection)ÚDBAPICursor)ÚDBAPIModule)ÚDialect)ÚPoolProxiedConnection)Ú_ResultProcessorTypec                  ó    — e Zd Z	 	 	 	 	 	 dd„Zy)Ú_cymysqlBITc                ó   — dd„}|S )z@Convert MySQL's 64 bit, variable length binary string to a long.c                óB   — | �d}t        | «      D ]
  }|dz  |z  }Œ |S | S )Nr   é   )Úiter)ÚvalueÚvÚis      úX/home/htdocs/ttos/venv/lib/python3.12/site-packages/sqlalchemy/dialects/mysql/cymysql.pyÚprocessz-_cymysqlBIT.result_processor.<locals>.process4   s7   € ØÐ Ø�Ü˜e›ò #�AØ˜Q™ ™
‘Að#à�ØˆLó    )r   zOptional[Iterable[int]]ÚreturnzOptional[int]© )ÚselfÚdialectÚcoltyper    s       r   Úresult_processorz_cymysqlBIT.result_processor/   s   € ó
	ð ˆr!   N)r%   r   r&   Úobjectr"   z#Optional[_ResultProcessorType[Any]])Ú__name__Ú
__module__Ú__qualname__r'   r#   r!   r   r   r   .   s   „ ðØðØ)/ðà	,ôr!   r   c                  óœ   — e Zd ZdZdZdZdZdZdZ e	j                  ej                  eei«      Zed	d„«       Zd
d„Zdd„Z	 	 	 	 	 	 	 	 dd„Zy)ÚMySQLDialect_cymysqlÚcymysqlTNFc                ó   — t        d«      S )Nr.   )Ú
__import__)Úclss    r   Úimport_dbapiz!MySQLDialect_cymysql.import_dbapiJ   s   € ä˜)Ó$Ð$r!   c                ó.   — |j                   j                  S ©N)Ú
connectionÚcharset)r$   r5   s     r   Ú_detect_charsetz$MySQLDialect_cymysql._detect_charsetN   s   € Ø×$Ñ$×,Ñ,Ð,r!   c                ó   — |j                   S r4   )Úerrno)r$   Ú	exceptions     r   Ú_extract_error_codez(MySQLDialect_cymysql._extract_error_codeQ   s   € Ø�‰Ðr!   c                ó¬   — t        || j                  j                  «      r| j                  |«      dv S t        || j                  j                  «      ryy)N)iÖ  iÝ  iÞ  iý  i  TF)Ú
isinstanceÚloaded_dbapiÚOperationalErrorr;   ÚInterfaceError)r$   Úer5   Úcursors       r   Úis_disconnectz"MySQLDialect_cymysql.is_disconnectT   sW   € ô �a˜×*Ñ*×;Ñ;Ô<Ø×+Ñ+¨AÓ.ð 3ð ð ô ˜˜4×,Ñ,×;Ñ;Ô<ð àr!   )r"   r   )r5   r   r"   Ústr)r:   úDBAPIModule.Errorr"   Úint)rA   rE   r5   z7Optional[Union[PoolProxiedConnection, DBAPIConnection]]rB   zOptional[DBAPICursor]r"   Úbool)r)   r*   r+   ÚdriverÚsupports_statement_cacheÚdescription_encodingÚsupports_sane_rowcountÚsupports_sane_multi_rowcountÚsupports_unicode_statementsr   Úupdate_copyr
   Úcolspecsr   r   Úclassmethodr2   r7   r;   rC   r#   r!   r   r-   r-   ?   sŒ   „ Ø€FØ#ÐàÐØ!ÐØ#(Ð Ø"&Ðàˆt×Ñ × 5Ñ 5¸¸[Ð7IÓJ€Hàò%ó ð%ó-óðàðð Lðð &ð	ð
 
ôr!   r-   N)Ú__doc__Ú
__future__r   Útypingr   r   r   r   r   Úbaser
   Úmysqldbr   Útypesr   Ú r   Úengine.baser   Úengine.interfacesr   r   r   r   r   Úsql.type_apir   r   r-   r%   r#   r!   r   ú<module>r[      sc   ðñõ #å Ý Ý Ý  Ý å Ý )Ý Ý áÝ)Ý4Ý0Ý0Ý,Ý:Ý4ô�#ô ô"(Ð/ô (ðV �r!   