''' 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). ''' import mariadb from ._mariadb import ( DataError, DatabaseError, Error, IntegrityError, InterfaceError, InternalError, NotSupportedError, OperationalError, PoolError, ProgrammingError, Warning, mariadbapi_version, ) from .field import fieldinfo from mariadb.dbapi20 import * # noqa: F401,F403 from mariadb.connectionpool import * # noqa: F401,F403 from mariadb.cursors import Cursor from mariadb.release_info import __version__ as __version__ from mariadb.release_info import __version_info__ as __version_info__ from mariadb.release_info import __author__ as __author__ from mariadb.connections import Connection # disable for now, until tests are in place # from mariadb.pooling import * _POOLS = _CONNECTION_POOLS = {} __all__ = ["DataError", "DatabaseError", "Error", "IntegrityError", "InterfaceError", "InternalError", "NotSupportedError", "OperationalError", "PoolError", "ProgrammingError", "Warning", "Connection", "__version__", "__version_info__", "__author__", "Cursor", "fieldinfo"] def connect(*args, connectionclass=mariadb.connections.Connection, **kwargs): """ 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= 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=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 """ if kwargs: if "pool_name" in kwargs: if not kwargs["pool_name"] in mariadb._CONNECTION_POOLS: pool = mariadb.ConnectionPool(**kwargs) else: pool = mariadb._CONNECTION_POOLS[kwargs["pool_name"]] c = pool.get_connection() return c connection = connectionclass(*args, **kwargs) if not isinstance(connection, mariadb.connections.Connection): raise mariadb.ProgrammingError("%s is not an instance of " "mariadb.Connection" % connection) return connection client_version_info = tuple(int(x, 10) for x in mariadbapi_version.split('.')) client_version = client_version_info[0] * 10000 +\ client_version_info[1] * 1000 + client_version_info[2]