
    ؄_                     v    d 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
dS )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.

   )BIT)MySQLDialect)MySQLDialect_mysqldb   )utilc                       e Zd Zd ZdS )_cymysqlBITc                     d }|S )zJConvert a MySQL's 64 bit, variable length binary string to a
        long.c                 P    | #d}t          j        |           D ]
}|dz  |z  }|S | S )N       )r   	iterbytes)valuevis      f/var/www/book.euthymeo.com/html/venv/lib/python3.11/site-packages/sqlalchemy/dialects/mysql/cymysql.pyprocessz-_cymysqlBIT.result_processor.<locals>.process"   s?     .. # #AQ
AAL     )selfdialectcoltyper   s       r   result_processorz_cymysqlBIT.result_processor   s    	 	 	 r   N)__name__
__module____qualname__r   r   r   r   r	   r	      s#            r   r	   c                   z    e Zd ZdZdZdZdZdZ ej	        e
j        eei          Zed             Zd Zd Zd ZdS )	MySQLDialect_cymysqlcymysqlNTFc                      t          d          S )Nr   )
__import__)clss    r   dbapizMySQLDialect_cymysql.dbapi7   s    )$$$r   c                     |j         j        S N)
connectioncharset)r   r&   s     r   _detect_charsetz$MySQLDialect_cymysql._detect_charset;   s    $,,r   c                     |j         S r%   )errno)r   	exceptions     r   _extract_error_codez(MySQLDialect_cymysql._extract_error_code>   s
    r   c                     t          || j        j                  r|                     |          dv S t          || j        j                  rdS dS )N)i  i  i  i  i  TF)
isinstancer#   OperationalErrorr,   InterfaceError)r   er&   cursors       r   is_disconnectz"MySQLDialect_cymysql.is_disconnectA   s^    a455 	++A.. 3   4:455 	 45r   )r   r   r   driverdescription_encodingsupports_sane_rowcountsupports_sane_multi_rowcountsupports_unicode_statementsr   update_copyr   colspecsr   r	   classmethodr#   r(   r,   r3   r   r   r   r   r   -   s        F!#( "&t 5[7IJJH% % [%- - -      r   r   N)__doc__baser   r   mysqldbr    r   r	   r   r   r   r   r   <module>r@      s                  ) ) ) ) ) )          #    " " " " "/ " " "J r   