
    -hT!                         S r SSKJr  SSKJr  SSKJr  SSKJr  SSKJr   " S S	\5      r	 " S
 S\5      r
 " S S\5      r\rg)a  

.. dialect:: mysql+oursql
    :name: OurSQL
    :dbapi: oursql
    :connectstring: mysql+oursql://<user>:<password>@<host>[:<port>]/<dbname>
    :url: https://packages.python.org/oursql/

.. note::

    The OurSQL MySQL dialect is legacy and is no longer supported upstream,
    and is **not tested as part of SQLAlchemy's continuous integration**.
    The recommended MySQL dialects are mysqlclient and PyMySQL.

.. deprecated:: 1.4 The OurSQL DBAPI is deprecated and will be removed
   in a future version. Please use one of the supported DBAPIs to
   connect to mysql.

Unicode
-------

Please see :ref:`mysql_unicode` for current recommendations on unicode
handling.


   )BIT)MySQLDialect)MySQLExecutionContext   )types)utilc                       \ rS rSrS rSrg)
_oursqlBIT+   c                     g)z'oursql already converts mysql bits, so.N )selfdialectcoltypes      uC:\Users\ROHAN GUPTA\OneDrive\Desktop\mathbuddy-assessment\venv\Lib\site-packages\sqlalchemy/dialects/mysql/oursql.pyresult_processor_oursqlBIT.result_processor,   s         r   N)__name__
__module____qualname____firstlineno__r   __static_attributes__r   r   r   r
   r
   +   s    r   r
   c                   $    \ rS rSr\S 5       rSrg)MySQLExecutionContext_oursql2   c                 :    U R                   R                  SS5      $ )N_oursql_plain_queryF)execution_optionsget)r   s    r   plain_query(MySQLExecutionContext_oursql.plain_query3   s    %%))*?GGr   r   N)r   r   r   r   propertyr!   r   r   r   r   r   r   2   s    H Hr   r   c                      \ rS rSrSrSr\R                  (       a  SrSr	Sr
SrSr\r\R                  " \R"                  \R&                  \R&                  \\05      r\S 5       rSS jrS rS rS	 rS
 r SS jr SS jrSS jrSS jr SS jr!SS jr"SS jr#S r$S r% SS jr&S r'S r(S r)S r*SS jr+SS jr,SS jr-Sr.g) MySQLDialect_oursql8   oursqlTc                 B    [         R                  " SSS9  [        S5      $ )NzThe OurSQL DBAPI is deprecated and will be removed in a future version. Please use one of the supported DBAPIs to connect to mysql.z1.4)versionr'   )r   warn_deprecated
__import__)clss    r   dbapiMySQLDialect_oursql.dbapiJ   s'      		
 (##r   Nc                 x    U(       a"  UR                   (       a  UR                  USS9  gUR                  X#5        g)zEProvide an implementation of
*cursor.execute(statement, parameters)*.Tr!   N)r!   execute)r   cursor	statement
parameterscontexts        r   
do_executeMySQLDialect_oursql.do_executeT   s+     w**NN9$N7NN91r   c                 @    UR                  5       R                  SSS9  g )NBEGINTr0   )r2   r1   r   
connections     r   do_beginMySQLDialect_oursql.do_begin]   s    ##G#>r   c                 :   [         R                  (       a  UR                  R                  U5      nOEU R                  nUR                  R                  UR                  U5      5      R                  U5      nSU-  nUR                  SS9R                  X$-  5        g )Nz'%s'Tr   )	r   py2kr;   _escape_string_connection_charsetencodedecoder   exec_driver_sql)r   r;   queryxidargcharsets         r   	_xa_queryMySQLDialect_oursql._xa_query`   s    99''66s;C..G''66

7#fWo  sl$$$>NNK	
r   c                 *    U R                  USU5        g )NzXA BEGIN %srJ   r   r;   rG   s      r   do_begin_twophase%MySQLDialect_oursql.do_begin_twophaser   s    z=#6r   c                 P    U R                  USU5        U R                  USU5        g )N	XA END %szXA PREPARE %srM   rN   s      r   do_prepare_twophase'MySQLDialect_oursql.do_prepare_twophaseu   s"    z;4z?C8r   c                 ^    U(       d  U R                  USU5        U R                  USU5        g )NrR   zXA ROLLBACK %srM   r   r;   rG   is_preparedrecovers        r   do_rollback_twophase(MySQLDialect_oursql.do_rollback_twophasey   s(     NN:{C8z#3S9r   c                 Z    U(       d  U R                  X5        U R                  USU5        g )NzXA COMMIT %s)rS   rJ   rV   s        r   do_commit_twophase&MySQLDialect_oursql.do_commit_twophase   s%     $$Z5z>37r   c                 j    [         R                  " U UR                  5       R                  SS9UU5      $ NTr?   )r   	has_tableconnectr   )r   r;   
table_nameschemas       r   r`   MySQLDialect_oursql.has_table   s8    %% 22t2L	
 	
r   c                 n    [         R                  " U UR                  5       R                  SS9U4SU0UD6$ NTr?   rc   )r   get_table_optionsra   r   r   r;   rb   rc   kws        r   rg   %MySQLDialect_oursql.get_table_options   sI    -- 22t2L
 	

 
 	
r   c                 n    [         R                  " U UR                  5       R                  SS9U4SU0UD6$ rf   )r   get_columnsra   r   rh   s        r   rl   MySQLDialect_oursql.get_columns   sI    '' 22t2L
 	

 
 	
r   c                 l    [         R                  " U UR                  5       R                  SS94SU0UD6$ rf   )r   get_view_namesra   r   r   r;   rc   ri   s       r   ro   "MySQLDialect_oursql.get_view_names   sF    ** 22t2L
 
 	
 	
r   c                 h    [         R                  " U UR                  5       R                  SS9U5      $ r_   )r   get_table_namesra   r   rp   s       r   rs   #MySQLDialect_oursql.get_table_names   s5    ++ 22t2L
 	
r   c                 h    [         R                  " U UR                  5       R                  SS940 UD6$ r_   )r   get_schema_namesra   r   )r   r;   ri   s      r   rv   $MySQLDialect_oursql.get_schema_names   s<    ,, 22t2L
 
 	
r   c                 H    [         R                  " XR                  SS95      $ r_   )r   
initializer   r:   s     r   ry   MySQLDialect_oursql.initialize   s&    &&..4.H
 	
r   c                 j    [         R                  " U UR                  SS9R                  SS9UUU5      $ )NT)close_with_resultr?   )r   _show_create_tablera   r   )r   r;   tablerI   	full_names        r   r}   &MySQLDialect_oursql._show_create_table   sJ     ..6HH$( I  
 	
r   c                     [        XR                  R                  5      (       aL  UR                  S L =(       a7    SUR                  S   ;  =(       a    UR                  S   R                  S5      $ UR                  S;   $ )Nr2   r   closed)i  i  i  i  i  )
isinstancer-   ProgrammingErrorerrnoargsendswith)r   er;   r2   s       r   is_disconnect!MySQLDialect_oursql.is_disconnect   si    a44554 1AFF1I-1FF1I&&x0 77<<<r   c                    UR                  SSSS9nUR                  UR                  5        [        R                  " US[
        5        [        R                  " US[        5        [        R                  " US[        5        [        R                  " US[        5        [        R                  " US	[        5        UR                  S	S
5      (       a  S US'   O[        R                  " US[        5        UR                  SS5      US'   [        R                  " US[        5        UR                  SS5        0 nS H3  nXB;   d  M
  X$   X4SS  '   [        R                  " X4SS  [        5        X$	 M5     U(       a  X2S'   / U/$ )Ndbuserpasswd)databaseusernamepasswordportcompressautopingraise_on_warningsdefault_charsetFrI   use_unicodeT
found_rows)ssl_cassl_keyssl_cert
ssl_capath
ssl_cipher   ssl)translate_connect_argsupdaterF   r   coerce_kw_typeintboolpopstrr    
setdefault)r   urloptsr   keys        r   create_connect_args'MySQLDialect_oursql.create_connect_args   sH   ))FX * 
 	CIID&#.D*d3D*d3D"5t<D"3T:88%u--"DOi5"hh}d;]D-6 	d+
C {#yG##CQR#6I
 KDzr   c                     UR                   $ N)r   )r   	exceptions     r   _extract_error_code'MySQLDialect_oursql._extract_error_code   s    r   c                 .    UR                   R                  $ )z:Sniff out the character set in use for connection results.)r;   rI   r:   s     r   _detect_charset#MySQLDialect_oursql._detect_charset   s     $$,,,r   c                 "    UR                  5       $ z.oursql isn't super-broken like MySQLdb, yaaay.)fetchallr   rprI   s      r   _compat_fetchall$MySQLDialect_oursql._compat_fetchall      {{}r   c                 "    UR                  5       $ r   )fetchoner   s      r   _compat_fetchone$MySQLDialect_oursql._compat_fetchone	  r   r   c                 "    UR                  5       $ r   )firstr   s      r   _compat_first!MySQLDialect_oursql._compat_first  s    xxzr   r   r   )TF)NN)/r   r   r   r   driversupports_statement_cacher   r@   supports_unicode_bindssupports_unicode_statementssupports_native_decimalsupports_sane_rowcountsupports_sane_multi_rowcountr   execution_ctx_clsupdate_copyr   colspecssqltypesTimer   r
   classmethodr-   r6   r<   rJ   rO   rS   rY   r\   r`   rg   rl   ro   rs   rv   ry   r}   r   r   r   r   r   r   r   r   r   r   r   r%   r%   8   s    F#yy!%&*#"!#' 4x}}c:NH $ $2?
$79
 :?: :?8






 :>
=&P-
r   r%   N)__doc__baser   r   r    r   r   r   r
   r   r%   r   r   r   r   <module>r      sL   8   ' !  H#8 HV, Vr r   