Small SQL helper utilities with optional external authsql.py config loading.
Project description
toolssql
Small SQL helper utilities (MySQL-focused) with flexible auth configuration.
Install
pip install toolssql
Auth config loading
This package will try to load CONNECTION_CONFIG and CONNECTION_CONFIG_DEFAULT
from an authsql.py module/file in this order:
AUTHSQL_MODULEenv var (importable module path, e.g.myapp.authsql)- Import
authsql(works when your project root is onsys.path) AUTHSQL_PATHenv var pointing directly to anauthsql.pyfile (supports~and$HOME)- Home directory fallbacks:
~/authsql.py~/.authsql.py~/.config/authsql.py
Example config:
from typing import Dict, Any
CONNECTION_CONFIG: Dict[str, Any] = {
'config1':
{
'host': 'localhost',
'user': 'Analyst',
'password': 'XXXXXXXXXXXXXXXXX',
'database': 'Playground',
},
'config2':
{
'host': 'localhost',
'user': 'Analyst2',
'password': 'XXXXXXXXXXXXXXXXX',
},
}
# default connection to be used, if nothing else is specified
CONNECTION_CONFIG_DEFAULT = "config1"
If none are found, it falls back to {} / None.
Important: Do not ship secrets inside this PyPI package. Keep authsql.py outside git.
Usage
from toolssql import MysqlConnect
db = MysqlConnect() # uses loaded defaults if available
df = db.select_df("SELECT 1 AS one")
print(df)
Or inject config explicitly:
from toolssql import MysqlConnect
cfg = {
"prod": {"host": "...", "user": "...", "password": "...", "database": "..."}
}
db = MysqlConnect(connection="prod", connection_config=cfg, connection_default="prod")
Retry on transient errors
MysqlFetch and MysqlInsertValues support automatic retries for transient
MySQL errors (deadlock, lock timeout, server gone, lost connection).
By default retries are disabled (retry_on_error=0). To enable, pass the
number of extra attempts and an optional delay between them:
from toolssql import MysqlFetch
# retry once (2 attempts total) with 10 s delay between them
sql = MysqlFetch("SELECT 1", retry_on_error=1, retry_delay=10)
sql.runsql()
from toolssql import MysqlInsertValues
ins = MysqlInsertValues(
"my_insert",
"INSERT INTO t (a, b) VALUES (%s, %s)",
retry_on_error=2, # up to 3 attempts total
retry_delay=5, # 5 s between retries
)
Non-retryable errors (e.g. syntax error, duplicate key) are never retried.
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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file toolssql-0.1.4.tar.gz.
File metadata
- Download URL: toolssql-0.1.4.tar.gz
- Upload date:
- Size: 12.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f40e0b2ce3f6382cad0b437030ce1a9edf1a41a819a1c88c4e18ae024d01fbdc
|
|
| MD5 |
154fcb70fc5cf93d6d9d84e21fc57b22
|
|
| BLAKE2b-256 |
9ba156249ee919d84708ec7db0d9c401c6c9eb5b11834ec704eee93a3fdb184b
|
File details
Details for the file toolssql-0.1.4-py3-none-any.whl.
File metadata
- Download URL: toolssql-0.1.4-py3-none-any.whl
- Upload date:
- Size: 10.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
cb851ec3dd8a1951b130a6b6d5160cae2a8b3956322da6966e1e8d54a94cbdd3
|
|
| MD5 |
50acbd92d7715382765bb8a67b96e926
|
|
| BLAKE2b-256 |
20a939a4af4303c38f8a70dd0bf5711cc8034e49c0a59d486a2661a8879122d9
|