HEX
Server: LiteSpeed
System: Linux php-prod-1.spaceapp.ru 5.15.0-157-generic #167-Ubuntu SMP Wed Sep 17 21:35:53 UTC 2025 x86_64
User: xnsbb3110 (1041)
PHP: 8.1.33
Disabled: NONE
Upload Files
File: //usr/local/CyberCP/lib/python3.10/site-packages/MySQLdb/__pycache__/connections.cpython-310.pyc
o

�h[3�@s�dZddlZddlmZmZddlmZmZmZm	Z	m
Z
mZmZm
Z
mZmZddddd	d
�Ze�d�Zdd
�ZGdd�dej�ZdS)a
This module implements connections for MySQLdb. Presently there is
only one class: Connection. Others are unlikely. However, you might
want to make your own subclasses. In most cases, you will probably
override Connection.default_cursor with a non-standard Cursor class.
�N�)�cursors�_mysql)
�Warning�Error�InterfaceError�	DataError�
DatabaseError�OperationalError�IntegrityError�
InternalError�NotSupportedError�ProgrammingError�utf8�cp1252�koi8_r�koi8_u)�utf8mb4�utf8mb3�latin1�koi8r�koi8uz^(\d+)cCs t�|�}|rt|�d��SdS)z�Returns the leading numeric part of a string.

    >>> numeric_part("20-alpha")
    20
    >>> numeric_part("foo")
    >>> numeric_part("16b")
    16
    rN)�re_numeric_part�match�int�group)�s�m�r�F/usr/local/CyberCP/lib/python3.10/site-packages/MySQLdb/connections.py�numeric_part#s

r cs�eZdZdZejZ�fdd�Z		d!dd�Zd	d
�Z	dd�Z
d
d�Zd"dd�Zdd�Z
dd�Zdd�Zdd�Zdd�Zd"�fdd�	Zdd�Zdd �ZeZeZeZeZeZeZeZeZeZeZ�ZS)#�
Connectionz MySQL Database Connection ObjectcsJddlm}m}ddlm}m}|��}d|vr|�d�|d<d|vr*|�d�|d<d|vr3|d}n|}i}	|��D]\}
}t	|
t
�rRt	|t�rR|d	d	�|	|
<q;||	|
<q;|	|d<|�d
|j�}|�
dd�}
|�d
d�}|�dd�}|�dd�}|�dd�|_|�
dd�}||jO}|�dd�}|r�||jO}||d<|�dd�}|j|i|��t�j|i|��||_dd�|��D�|_tdd�|���d�d	d�D��|_d|_|
s�|��}
|�|
|�|r�|�|�|�r|j|j|j |j!|j"|j#|j$fD]}||j%|<q�t&|j%|j'<|j(|j)@|_*|j*�r |d	u�r |�+|�g|_,d	S)aZ
        Create a connection to the database. It is strongly recommended
        that you only use keyword parameters. Consult the MySQL C API
        documentation for more information.

        :param str host:        host to connect
        :param str user:        user to connect as
        :param str password:    password to use
        :param str passwd:      alias of password (deprecated)
        :param str database:    database to use
        :param str db:          alias of database (deprecated)
        :param int port:        TCP/IP port to connect to
        :param str unix_socket: location of unix_socket to use
        :param dict conv:       conversion dictionary, see MySQLdb.converters
        :param int connect_timeout:
            number of seconds to wait before the connection attempt fails.

        :param bool compress:   if set, compression is enabled
        :param str named_pipe:  if set, a named pipe is used to connect (Windows only)
        :param str init_command:
            command which is run once the connection is created

        :param str read_default_file:
            file from which default client values are read

        :param str read_default_group:
            configuration group to use from the default file

        :param type cursorclass:
            class object, used to create cursors (keyword only)

        :param bool use_unicode:
            If True, text-like columns are returned as unicode objects
            using the connection's character set. Otherwise, text-like
            columns are returned as bytes. Unicode objects will always
            be encoded to the connection's character set regardless of
            this setting.
            Default to True.

        :param str charset:
            If supplied, the connection character set will be changed
            to this character set.

        :param str collation:
            If ``charset`` and ``collation`` are both supplied, the
            character set and collation for the current connection
            will be set.

            If omitted, empty string, or None, the default collation
            for the ``charset`` is implied.

        :param str auth_plugin:
            If supplied, the connection default authentication plugin will be
            changed to this value. Example values:
            `mysql_native_password` or `caching_sha2_password`

        :param str sql_mode:
            If supplied, the session SQL mode will be changed to this
            setting.
            For more details and legal values, see the MySQL documentation.

        :param int client_flag:
            flags to use or 0 (see MySQL docs or constants/CLIENTS.py)

        :param bool multi_statements:
            If True, enable multi statements for clients >= 4.1.
            Defaults to True.

        :param str ssl_mode:
            specify the security settings for connection to the server;
            see the MySQL documentation for more details
            (mysql_option(), MYSQL_OPT_SSL_MODE).
            Only one of 'DISABLED', 'PREFERRED', 'REQUIRED',
            'VERIFY_CA', 'VERIFY_IDENTITY' can be specified.

        :param dict ssl:
            dictionary or mapping contains SSL connection parameters;
            see the MySQL documentation for more details
            (mysql_ssl_set()).  If this is set, and the client does not
            support SSL, NotSupportedError will be raised.
            Since mysqlclient 2.2.4, ssl=True is alias of ssl_mode=REQUIRED
            for better compatibility with PyMySQL and MariaDB.

        :param str server_public_key_path:
            specify the path to a file RSA public key file for caching_sha2_password.
            See https://dev.mysql.com/doc/refman/9.0/en/caching-sha2-pluggable-authentication.html

        :param bool local_infile:
            enables LOAD LOCAL INFILE; zero disables

        :param bool autocommit:
            If False (default), autocommit is disabled.
            If True, autocommit is enabled.
            If None, autocommit isn't set and server default is used.

        :param bool binary_prefix:
            If set, the '_binary' prefix will be used for raw byte query
            arguments (e.g. Binary). This is disabled by default.

        There are a number of undocumented, non-standard methods. See the
        documentation for the MySQL C API for some hints on what they do.
        r)�CLIENT�
FIELD_TYPE)�conversions�
_bytes_or_str�db�database�passwd�password�convN�cursorclass�charset��	collation�use_unicodeT�sql_mode�
binary_prefixF�client_flag�multi_statements�
autocommitcSs"i|]
\}}t|�tur||�qSr)�typer)�.0�k�vrrr�
<dictcomp>�s
�z'Connection.__init__.<locals>.<dictcomp>cSsg|]}t|��qSr)r )r6�nrrr�
<listcomp>�sz'Connection.__init__.<locals>.<listcomp>�.��ascii)-�MySQLdb.constantsr"r#�MySQLdb.convertersr$r%�copy�pop�items�
isinstancer�list�default_cursor�get�_binary_prefix�
MULTI_RESULTS�MULTI_STATEMENTS�_set_attributes�super�__init__r+�encoders�tuple�get_server_info�split�_server_version�encoding�character_set_name�set_character_set�set_sql_mode�STRING�
VAR_STRING�VARCHAR�	TINY_BLOB�MEDIUM_BLOB�	LONG_BLOB�BLOB�	converter�str�JSON�server_capabilities�TRANSACTIONS�_transactionalr4�messages)�self�args�kwargsr"r#r$r%�kwargs2r*�conv2r7r8r+r,r.r/r0r2r3r4�t��	__class__rrrM8sxg



��
�	


zConnection.__init__Nr-��cKs(|r|sd}||_||_||_||_dS)zset some attributes for otel�	localhostN)�host�userr'r&)rerorpr)r'�port�unix_socketrgrrrrK�s
zConnection._set_attributescCs|S�Nr�rerrr�	__enter__szConnection.__enter__cCs|��dSrs)�close)re�exc_type�	exc_value�	tracebackrrr�__exit__szConnection.__exit__cCs*t|�}|��|krtj�||�dSdSrs)�bool�get_autocommitr�
connectionr4)re�onrrrr4s�zConnection.autocommitcCs|p|j|�S)z�
        Create a cursor on which queries may be performed. The
        optional cursorclass parameter is used to create the
        Cursor. By default, self.cursorclass=cursors.Cursor is
        used.
        )r+)rer+rrr�cursorszConnection.cursorcCs$t|t�r	t|�}tj�||�dSrs)rD�	bytearray�bytesrr}�query)rer�rrrr�s
zConnection.querycCs.t|ttf�s	J�|�|�}|jrd|S|S)Ns_binary)rDr�r��string_literalrH)re�bs�xrrr�_bytes_literals

zConnection._bytes_literalcCsdd�t|j|��S)Ns(%s)�,)�join�map�literal)rerjrrr�_tuple_literal!szConnection._tuple_literalcCs�t|t�r|�|�|j��}n5t|t�r|�|�}n*t|t�r%|�|�}nt|tt	f�r2|�
|�}n|�||j�}t|t�rD|�|j�}t|t�sKJ�|S)aIf o is a single object, returns an SQL literal as a string.
        If o is a non-string sequence, the items of the sequence are
        converted and returned as a sequence.

        Non-standard. For internal use; do not use this in your
        applications.
        )
rDr_r��encoderSr�r�r�rOrEr��escaperN)re�orrrrr�$s



zConnection.literalcCs|�d�dS)ziExplicitly begin a connection.

        This method is not used when autocommit=False (default).
        sBEGINN)r�rtrrr�begin;szConnection.begincsDt��|�t�||�|_|r |�d|�d|���|��dSdS)z,Set the connection character set to charset.z
SET NAMES z	 COLLATE N)rLrU�_charset_to_encodingrGrSr��store_result)rer,r.rkrrrUBs�zConnection.set_character_setcCs,|jdkr	td��|�d|�|��dS)zNSet the connection sql_mode. See MySQL documentation for
        legal values.��rz!server is too old to set sql_modezSET SESSION sql_mode='%s'N)rRr
r�r�)rer0rrrrVJs
zConnection.set_sql_modecCs.|jdkrdS|�d�|��}|�d�}|S)z�Return detailed information about warnings as a
        sequence of tuples of (Level, Code, Message). This
        is only supported in MySQL-4.1 and up. If your server
        is an earlier version, an empty sequence is returned.r�rz
SHOW WARNINGSr)rRr�r��	fetch_row)re�r�warningsrrr�
show_warningsRs


zConnection.show_warnings)NNNr-rmNrs) �__name__�
__module__�__qualname__�__doc__r�CursorrFrMrKrurzr4rr�r�r�r�r�rUrVr�rrrr	rr
rrrr
�
__classcell__rrrkrr!3s<:
�
	r!)r��rer-rr�_exceptionsrrrrr	r
rrr
rr��compilerr r}r!rrrr�<module>s0�