Metadata-Version: 2.1
Name: dbilib
Version: 0.4.0rc1
Summary: A generalised and simple database interface library.
Author-email: The Developers <development@s3dev.uk>
License: MIT
Project-URL: Documentation, https://dbilib.readthedocs.io/en/latest/
Project-URL: Homepage, https://github.com/s3dev/dbilib
Project-URL: Repository, https://github.com/s3dev/dbilib
Keywords: database,interface,utilities
Classifier: Development Status :: 5 - Production/Stable
Classifier: License :: OSI Approved :: MIT License
Classifier: Intended Audience :: Developers
Classifier: Operating System :: POSIX :: Linux
Classifier: Operating System :: Microsoft :: Windows
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: Software Development
Classifier: Topic :: Software Development :: Libraries
Classifier: Topic :: Utilities
Requires-Python: >=3.10
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: pandas
Requires-Dist: sqlalchemy
Requires-Dist: utils4

[![Documentation Status](https://readthedocs.org/projects/dbilib/badge/?version=latest)](https://dbilib.readthedocs.io/en/latest/?badge=latest) ![Static Badge](https://img.shields.io/badge/tests-passing-brightgreen) ![Static Badge](https://img.shields.io/badge/coverage-100%25-brightgreen)   ![Static Badge](https://img.shields.io/badge/pylint_analysis-100%25-brightgreen)

# A generalised and simple database interface library

The ``dbilib`` project is a mid-level CPython database interface library which is designed to fit between ``sqlalchemy`` and *your* database interface library.

The interface exposes methods for easily accessing the database engine, executing SQL statements and calling stored procedures - with minimal setup.

As of this release, the following database engines are supported:

- MySQL / MariaDB
- Oracle
- SQLite3
- SQL Server (coming soon)


## Installation
Installing the library is as easy as:

```
pip install dbilib
```
This will install the library's required dependencies (e.g. `sqlalchemy`, etc.). However, it will *not* install the database-specific libraries, (e.g. `cx_Oracle`, `mysql-connector-python`, etc).  This design feature helps to not bloat your environment with unneeded packages and keeps cross-platform capability and flexibility.


## Using the Library
The [documentation suite](https://dbilib.readthedocs.io/en/latest/index.html) contains usage examples and detailed explanation for each of the library's importable modules. Please refer to the [Library API Documentation](https://dbilib.readthedocs.io/en/latest/library.html) section of the documentation.


## Database Support
Our currently supported databases are listed in the overview section on this page. However, for further detail regarding the databases supported by the [SQLAlchemy](https://www.sqlalchemy.org/) library, please refer to *their* documentation, specifically their [Included Dialects](https://docs.sqlalchemy.org/en/20/dialects/index.html#included-dialects) page, which lists the supported database dialects and their version(s).

### Connection Strings
For convenience, we have provided a link to the [connection string](https://docs.sqlalchemy.org/en/20/core/engines.html#backend-specific-urls) (or database URL) templates for each database dialect supported by `sqlalchemy`. Generally, the [database URLs](https://docs.sqlalchemy.org/en/20/core/engines.html#database-urls) follow this convention:

```
dialect+driver://username:password@host:port/database
```

For example, the MySQL / MariaDB specific database URL using the ``mysql-connector-python`` driver, is:

```
mysql+mysqlconnector://<user>:<pwd>@<host>:<port>/<database>
```

