Skip to main content

An easy to use mariadb context manager

Project description

MariaDB Conext Manager

Installation

pip install mariadb-context-manager

Manual Installation

Setting Up

Once you have your enviornment is set up, run the following in your terminal or command line to get the latest version:

pip install --upgrade git+https://github.com/avgra3/MariaDB-Context-Manager.git

An alternative to this would be to do the following:

git clone https://github.com/avgra3/MariaDB-Context-Manager.git
cd ./MariaDB-Context-Manager
python -m pip install --upgrade build
python -m build
python -m pip install install ./dist/MariaDB_Context_Manager-0.1.4-py3-none-any.whl

Note: For Linux or Mac systems, you may need to change "pip" to "pip3". Note: For Anaconda/Miniconda users, this module is not currently in any repositories, however, you can still use pip to install MariaDB package using the same command as above - but be aware that it may cause conflicts with packages you are using.

Implementing the Context Manager

Before you run your query, make sure that you have MariaDB installed locally or have a connection to a MariaDB database.

If you encounter an error/exception while trying to connect to the database, the connection will be closed and the exception will be printed to the console.

Example

from contextManager.contextManager import MariaDBCM
import pandas as pd
import polars as pl

# Our query we are using
query = """SELECT * FROM table;"""

# Database connection requirements
host = "HOST"
user = "USER"
password = "PASSWORD"
database = "DATABASE_NAME"
port = 3306 # The default MariaDB port
connection_params = {
    "user": user,
    "password": password,
    "host": host,
    "port": port,
    "database": database,
}

# A dictionary containing results, column names and warnings
with MariaDBCM(**connection_params) as maria:
    result_dictionary = maria.execute(query)

# Show data in a dataframe
df = pd.DataFrame(results["data"], columns=results["columns"])

# Maps the MariaDB data types to Python data types
df = df.astype(results["data_types"])

# Using Polars with some inital prep
prep = {}
i = 0
for column in result_dictionary["columns"]:
    prep[column] = [x[0] for x in result_dictionary["data"]]


df_pl = pl.DataFrame(prep)

Supported Data Types

Several standard python types are converted into SQL types and returned as Python objects when a statement is executed.

Python Type SQL Type
None NULL
Bool TINYINT
Float, Double DOUBLE
Decimal DECIMAL
Long TINYINT, SMALLINT, INT, BIGINT
String VARCHAR, VARSTRING, TEXT
ByteArray, Bytes TINYBLOB, MEDIUMBLOB, BLOB, LONGBLOB
DateTime DATETIME
Date DATE
Time TIME
Timestamp TIMESTAMP

For more information, see the documentation for more information.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mariadb_context_manager-0.1.15.tar.gz (5.5 kB view details)

Uploaded Source

Built Distribution

MariaDB_Context_Manager-0.1.15-py3-none-any.whl (6.0 kB view details)

Uploaded Python 3

File details

Details for the file mariadb_context_manager-0.1.15.tar.gz.

File metadata

File hashes

Hashes for mariadb_context_manager-0.1.15.tar.gz
Algorithm Hash digest
SHA256 ad25278d04ffec5e9f7bba4b5f30baf2e9620ed6313532bf4cb6032dfbd46f41
MD5 e2cbfd29df96b9da5e4b2e717bc92fbf
BLAKE2b-256 87aa115c9c8e198a06dbd5d2b24d0d37ab7a2e3917778b0c7e3ca4be0de17c90

See more details on using hashes here.

File details

Details for the file MariaDB_Context_Manager-0.1.15-py3-none-any.whl.

File metadata

File hashes

Hashes for MariaDB_Context_Manager-0.1.15-py3-none-any.whl
Algorithm Hash digest
SHA256 6722042bbe7d93dd6642ecea26a04ad00ba74bd9e7c056e2f0e9898420adc4aa
MD5 ceab98cafedb9d4f5ad97e4e90867570
BLAKE2b-256 378f93de732caf25fa241e4128f52bcaa67bfb8033ff02c95f6fb3553e42c1ef

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page