
    	i{                     \   d Z ddlZddlmZmZmZmZmZmZm	Z	m
Z
mZmZmZmZmZ ddlmZ ddlT ddlT 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 i xZZg dZej        j        ddZ  e!d  ej"        d          D                       Z#e#d         dz  e#d         dz  z   e#d         z   Z$dS )z
MariaDB Connector/Python module enables python programs to access MariaDB and
MySQL databases, using an API which is compliant with the Python DB API 2.0
(PEP-249).
    N   )	DataErrorDatabaseErrorErrorIntegrityErrorInterfaceErrorInternalErrorNotSupportedErrorOperationalError	PoolErrorProgrammingErrorWarningmariadbapi_version
_have_asan)	fieldinfo)*)Cursor)__version__)__version_info__)
__author__)
Connection)r   r   r   r   r   r	   r
   r   r   r   r   r   r   r   r   r   r   r   )connectionclassc                 6   |rXd|v rT|d         t           j        vrt          j        di |}nt           j        |d                  }|                                }|S  | |i |}t	          |t           j        j                  st          j        d|z            |S )a  
    Creates a MariaDB Connection object.

    By default, the standard connectionclass mariadb.connections.Connection
    will be created.

    Parameter connectionclass specifies a subclass of
    mariadb.Connection object. If not specified, default will be used.
    This optional parameter was added in version 1.1.0.

    Connection parameters are provided as a set of keyword arguments:

    - **`host`** - The host name or IP address of the database server. If MariaDB Connector/Python was built with MariaDB Connector/C 3.3, it is also possible to provide a comma separated list of hosts for simple fail over in case of one or more hosts are not available.
    - **`user`, `username`** - The username used to authenticate with the database server
    - **`password`, `passwd`** - The password of the given user
    - **`database`, `db`** - Database (schema) name to use when connecting with the database server
    - **`unix_socket`** - The location of the unix socket file to use instead of using an IP port to connect. If socket authentication is enabled, this can also be used in place of a password.
    - **`port`** - Port number of the database server. If not specified, the default value of 3306 will be used.
    - **`connect_timeout`** - Connect timeout in seconds
    - **`read_timeout`** - Read timeout in seconds
    - **`write_timeout`** - Write timeout in seconds
    - **`local_infile`** - Enables or disables the use of LOAD DATA LOCAL INFILE statements.
    - **`compress`** (default: `False`) - Uses the compressed protocol for client server communication. If the server doesn't support compressed protocol, the default protocol will be used.
    - **`init_command`** - Command(s) which will be executed when connecting and reconnecting to the database server
    - **`default_file`** - Read options from the specified option file. If the file is an empty string, default configuration file(s) will be used
    - **`default_group`** - Read options from the specified group
    - **`plugin_dir`** - Directory which contains MariaDB client plugins.
    - **`reconnect`** - Enables or disables automatic reconnect. Available since version 1.1.4
    - **`ssl_key`** - Defines a path to a private key file to use for TLS. This option requires that you use the absolute path, not a relative path. The specified key must be in PEM format
    - **`ssl_cert`** - Defines a path to the X509 certificate file to use for TLS. This option requires that you use the absolute path, not a relative path. The X609 certificate must be in PEM format.
    - **`ssl_ca`** - Defines a path to a PEM file that should contain one or more X509 certificates for trusted Certificate Authorities (CAs) to use for TLS. This option requires that you use the absolute path, not a relative path.
    - **`ssl_capath`** - Defines a path to a directory that contains one or more PEM files that contains one X509 certificate for a trusted Certificate Authority (CA)
    - **`ssl_cipher`** - Defines a list of permitted cipher suites to use for TLS
    - **`ssl_crlpath`** - Defines a path to a PEM file that should contain one or more revoked X509 certificates to use for TLS. This option requires that you use the absolute path, not a relative path.
    - **`ssl_verify_cert`** - Enables server certificate verification.
    - **`ssl`** - The connection must use TLS security, or it will fail.
    - **`tls_version`** - A comma-separated list (without whitespaces) of TLS versions. Valid versions are TLSv1.0, TLSv1.1,TLSv1.2 and TLSv1.3. Added in version 1.1.7.
    - **`autocommit`** (default: `False`) - Specifies the autocommit settings. True will enable autocommit, False will disable it (default).
    - **`converter`** - Specifies a conversion dictionary, where keys are FIELD_TYPE values and values are conversion functions

    	pool_namez+%s is not an instance of mariadb.Connection )mariadb_CONNECTION_POOLSConnectionPoolget_connection
isinstanceconnectionsr   r   )r   argskwargspoolc
connections         H/srv/django_bis/venv311/lib/python3.11/site-packages/mariadb/__init__.pyconnectr(   +   s    T  &  +&'*CCC-777701DE##%%AH $1&11Jj'"5"@AA J& (<>H(I J J 	J    c              #   6   K   | ]}t          |d           V  dS )
   N)int).0xs     r'   	<genexpr>r/   e   s*      NN1C2JJNNNNNNr)   .i'  i     )%__doc__r   _mariadbr   r   r   r   r   r	   r
   r   r   r   r   r   r   fieldr   mariadb.dbapi20mariadb.connectionpoolmariadb.cursorsr   mariadb.release_infor   r   r   mariadb.connectionsr   _POOLSr   __all__r!   r(   tuplesplitclient_version_infoclient_versionr   r)   r'   <module>r@      s   
                                          $ $ $ $ " " " " " " ; ; ; ; ; ; E E E E E E 9 9 9 9 9 9 * * * * * *   	> > > $+#6#A 7 7 7 7 7t eNN0H0B0H0M0MNNNNN $Q'%/T!"$7$:;r)   