SQL Tools
Description
This is simply a turbodbc wrapper. To reduce boilerplate on routine SQL actions, making a code a little bit cleaner.
Content
Core functionality include:
SQLConfig: Collection of connection configuration options. WithTurbODBCOptionsfor advanced optionsQuery: Query objectQuerySequence: Collection of Queries
from driven_sql_tool import SQLConfig, TurbODBCOptions, Query, QuerySequence
Usage samples
# prepare sample instanced config ...
turbodbc_options = TurbODBCOptions(autocommit=False, use_async_io=False)
conf = SQLConfig(server=r'server.address', database=r'db', turbodbc_options=turbodbc_options)
# ... or simply set defaults
SQLConfig.default_server = r'default.server'
SQLConfig.default_database = r'default.database'
Most common actions (Data Query Language):
# regular querying
df_res = Query('SELECT * FROM db.schema.table', conf=conf).execute()
# not specifying conf attribute will grab class defaults
df_res = Query('SELECT * FROM db.schema.table').execute()
# the result is also stored in `data` property of `Query` object
query = Query('SELECT * FROM db.schema.table')
query.execute()
df_res = query.data
# .sql file querying
df_res = Query('./path/to/file.sql').execute()
Parametrized actions
# parametrized insertion ...
Query(
"""
INSERT INTO db.schema.table
([ID], [field1], [field2], [date])
VALUES (?, ?, ?, ?)
""",
data=df_insert[['ID', 'field1', 'field2', 'date']]
).execute()
# ... or execution
Query('EXEC db.schema.sproc @p1=?, @p2=?', data=df_exec[['p1', 'p2']]).execute()
Running multiple queries
# prepare sequence of queries
queries = QuerySequence()
queries.case_1 = Query('SELECT * FROM db.schema.table', conf=conf_1)
queries.case_2 = Query('./query.sql', conf=conf_2)
queries.case_3 = Query('EXEC db.schema.sproc @p1=?', data=df_exec[['p1']])
# run multiple queries sequentially ...
queries.run_seq()
# ... or, alternatively, in parallel (`joblib`)
queries.run_par()
# then access `data` property
df_res_1 = queries.case_1.data
Metadata
Release files for driven-sql-tool 0.1.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| driven_sql_tool-0.1.1.tar.gz | 7.4 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| driven_sql_tool-0.1.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 15.3 kB
Release files / driven_sql_tool-0.1.1.tar.gz
| Download URL | driven_sql_tool-0.1.1.tar.gz |
|---|---|
| Size | 7.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
6ffd1914427e597c1bc50ae551b2fdb491d16c4ad9f760a4b349c56b4f20fb62
|
|
BLAKE2b-256 checksum How to use checksums |
de1083b261341d0dd74b40b6e35ca1b3d5ae60d745760c33c3bdac84a87188f6
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.3
|
Release files / driven_sql_tool-0.1.1-py3-none-any.whl
| Download URL | driven_sql_tool-0.1.1-py3-none-any.whl |
|---|---|
| Size | 8.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
cef8b44d25106a689abf626887107057fa2a310c8ebb14df26fc8094cc6b703f
|
|
BLAKE2b-256 checksum How to use checksums |
6f63ef338405a048649924e0d63ac4e6842388c65e324bab7caf8d034981c9b6
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.3
|