Files
mariadb-connector-python/mariadb/__init__.py
2021-08-01 11:16:19 +02:00

136 lines
5.2 KiB
Python

'''
MariaDB Connector/Python enables python programs to access MariaDB and MySQL
atabases, using an API which is compliant with the Python DB API 2.0 (PEP-249).
It is written in C and uses MariaDB Connector/C client library for client
server communication.
Minimum supported Python version is 3.6
'''
from ._mariadb import (
DataError,
DatabaseError,
Error,
IntegrityError,
InterfaceError,
InternalError,
NotSupportedError,
OperationalError,
PoolError,
ProgrammingError,
Warning,
mariadbapi_version,
)
from .field import fieldinfo
_POOLS= _CONNECTION_POOLS= {}
from mariadb.dbapi20 import *
from mariadb.connectionpool import *
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 *
def connect(*args, connectionclass= mariadb.connections.Connection, **kwargs):
"""
Creates a MariaDB Connection object.
By default the standard connectionclass mariadb.connections.Connection will
be created.
Connection parameters are provided as a set of keyword arguments:
host: string
The host name or IP address of the database server
user: string
username: string
The username used to authenticate with the database server
password: string
passwd: string
The password of the given user
database: string
db: string
database (schema) name to use when connecting with the database
server
unix_socket: string
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: integer
port number of the database server. If not specified the default
value of 3306 will be used.
connect_timeout: integer
connect timeout in seconds
read_timeout: integer
read timeout in seconds
write_timeout: integer
write timeout in seconds
local_infile: boolean
Eenables or disables the use of LOAD DATA LOCAL INFILE statements.
compress: boolean
Uses the compressed protocol for client server communication. If the
server doesn't support compressed protocol, the default protocol will
be used
init_command: string
Command(s) which will be executed when connecting and reconnecting to
the database server
default_file: string
Read options from the specified option file. If the file is an empty
string, default configuration file(s) will be used
default_group: string
Read options from the specified group
plugin_dir:
Directory which contains MariaDB client plugins.
ssl_key: string
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: string
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: string
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: string
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: string
Defines a list of permitted cipher suites to use for TLS
ssl_crlpath: string
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: boolean
Enables server certificate verification.
ssl: Boolean
The connection must use TLS security or it will fail.
autocommit: Boolean or None
Specifies the autocommit settings: None will use the server default,
True will enable autocommit, False will disable it (default).
"""
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
Connection= connect