ddcDatabases


NameddcDatabases JSON
Version 2.0.5 PyPI version JSON
download
home_pageNone
SummaryDatabase ORM Connections and Queries
upload_time2025-08-12 19:11:40
maintainerDaniel Costa
docs_urlNone
authorDaniel Costa
requires_python<4.0,>=3.12
licenseMIT
keywords python3 python-3 python databases database ddcdatabases mongodb mongodb-database mssql mssql-database mysql mysql-database oracle oracle-database pgsql postgres postgresql postgressql postgresql-database sqlite sqlite3 sqlite3-database
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # ddcDatabases

[![Donate](https://img.shields.io/badge/Donate-PayPal-brightgreen.svg?style=plastic)](https://www.paypal.com/ncp/payment/6G9Z78QHUD4RJ)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
[![PyPi](https://img.shields.io/pypi/v/ddcDatabases.svg)](https://pypi.python.org/pypi/ddcDatabases)
[![PyPI Downloads](https://static.pepy.tech/badge/ddcDatabases)](https://pepy.tech/projects/ddcDatabases)
[![codecov](https://codecov.io/gh/ddc/ddcDatabases/graph/badge.svg?token=XWB53034GI)](https://codecov.io/gh/ddc/ddcDatabases)
[![CI/CD Pipeline](https://github.com/ddc/ddcDatabases/actions/workflows/workflow.yml/badge.svg)](https://github.com/ddc/ddcDatabases/actions/workflows/workflow.yml)
[![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=ddc_ddcDatabases&metric=alert_status)](https://sonarcloud.io/dashboard?id=ddc_ddcDatabases)  
[![Build Status](https://img.shields.io/endpoint.svg?url=https%3A//actions-badge.atrox.dev/ddc/ddcDatabases/badge?ref=main&label=build&logo=none)](https://actions-badge.atrox.dev/ddc/ddcDatabases/goto?ref=main)
[![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)
[![Python](https://img.shields.io/pypi/pyversions/ddcDatabases.svg)](https://www.python.org/downloads)

[![Support me on GitHub](https://img.shields.io/badge/Support_me_on_GitHub-154c79?style=for-the-badge&logo=github)](https://github.com/sponsors/ddc)


A Python library for database connections and ORM queries with support for multiple database engines including SQLite, PostgreSQL, MySQL, MSSQL, Oracle, and MongoDB.

## Table of Contents

- [Installation](#installation)
  - [Basic Installation (SQLite only)](#basic-installation-sqlite-only)
  - [Database-Specific Installations](#database-specific-installations)
- [Features](#features)
  - [Default Session Settings](#default-session-settings)
- [Database Classes](#database-classes)
  - [SQLite](#sqlite)
  - [MSSQL (SQL Server)](#mssql-sql-server)
  - [PostgreSQL](#postgresql)
  - [MySQL](#mysql)
  - [Oracle](#oracle)
  - [MongoDB](#mongodb)
- [Database Engines](#database-engines)
- [Database Utilities](#database-utilities)
  - [Available Methods](#available-methods)
- [Development](#development)
  - [Building from Source](#building-from-source)
  - [Running Tests](#running-tests)
- [License](#license)
- [Support](#support)


## Features

- **Multiple Database Support**: SQLite, PostgreSQL, MySQL, MSSQL, Oracle, and MongoDB
- **Sync and Async Support**: Both synchronous and asynchronous operations
- **Environment Configuration**: Optional parameters with `.env` file fallback
- **SQLAlchemy Integration**: Built on top of SQLAlchemy ORM
- **Connection Pooling**: Configurable connection pooling for better performance

### Default Session Settings

**Synchronous Sessions:**
- `autoflush = True`
- `expire_on_commit = True` 
- `echo = False`

**Asynchronous Sessions:**
- `autoflush = True`
- `expire_on_commit = False`
- `echo = False`

**Note:** All constructor parameters are optional and fall back to [.env](./ddcDatabases/.env.example) file variables.


## Installation

### Basic Installation (SQLite only)
```shell
pip install ddcDatabases
```

**Note:** The basic installation includes only SQlite. Database-specific drivers are optional extras that you can install as needed.

### Database-Specific Installations

Install only the database drivers you need:

```shell
# All database drivers (recommended for development)
pip install ddcDatabases[all]

# SQL Server / MSSQL
pip install ddcDatabases[mssql]

# MySQL / MariaDB
pip install ddcDatabases[mysql]

# PostgreSQL
pip install ddcDatabases[pgsql]

# Oracle Database
pip install ddcDatabases[oracle]

# MongoDB
pip install ddcDatabases[mongodb]

# Multiple databases (example)
pip install ddcDatabases[mysql,pgsql,mongodb]
```

**Available Database Extras:**
- `all` - All database drivers
- `mssql` - Microsoft SQL Server (pyodbc, aioodbc)
- `mysql` - MySQL/MariaDB (pymysql, aiomysql)
- `pgsql` - PostgreSQL (psycopg2-binary, asyncpg)
- `oracle` - Oracle Database (cx-oracle)
- `mongodb` - MongoDB (pymongo)

**Platform Notes:**
- SQLite support is included by default (no extra installation required)
- PostgreSQL extras may have compilation requirements on some systems
- All extras support both synchronous and asynchronous operations where applicable


## Database Classes

### SQLite

```python
class Sqlite(
    filepath: Optional[str] = None,
    echo: Optional[bool] = None,
    autoflush: Optional[bool] = None,
    expire_on_commit: Optional[bool] = None,
    extra_engine_args: Optional[dict] = None,
)
```

**Example:**
```python
import sqlalchemy as sa
from ddcDatabases import DBUtils, Sqlite
from your_models import User  # Your SQLAlchemy model

with Sqlite() as session:
    db_utils = DBUtils(session)
    stmt = sa.select(User).where(User.id == 1)
    results = db_utils.fetchall(stmt)
    for row in results:
        print(row)
```





### MSSQL (SQL Server)

```python
class MSSQL(
    host: Optional[str] = None,
    port: Optional[int] = None,
    user: Optional[str] = None,
    password: Optional[str] = None,
    database: Optional[str] = None,
    schema: Optional[str] = None,
    echo: Optional[bool] = None,
    pool_size: Optional[int] = None,
    max_overflow: Optional[int] = None,
    autoflush: Optional[bool] = None,
    expire_on_commit: Optional[bool] = None,
    extra_engine_args: Optional[dict] = None,
)
```

**Synchronous Example:**
```python
import sqlalchemy as sa
from ddcDatabases import DBUtils, MSSQL
from your_models import User

with MSSQL() as session:
    stmt = sa.select(User).where(User.id == 1)
    db_utils = DBUtils(session)
    results = db_utils.fetchall(stmt)
    for row in results:
        print(row)
```

**Asynchronous Example:**
```python
import sqlalchemy as sa
from ddcDatabases import DBUtilsAsync, MSSQL
from your_models import User

async def main():
    async with MSSQL() as session:
        stmt = sa.select(User).where(User.id == 1)
        db_utils = DBUtilsAsync(session)
        results = await db_utils.fetchall(stmt)
        for row in results:
            print(row)
```






### PostgreSQL

```python
class PostgreSQL(
    host: Optional[str] = None,
    port: Optional[int] = None,
    user: Optional[str] = None,
    password: Optional[str] = None,
    database: Optional[str] = None,
    echo: Optional[bool] = None,
    autoflush: Optional[bool] = None,
    expire_on_commit: Optional[bool] = None,
    engine_args: Optional[dict] = None,
)
```

**Synchronous Example:**
```python
import sqlalchemy as sa
from ddcDatabases import DBUtils, PostgreSQL
from your_models import User

with PostgreSQL() as session:
    stmt = sa.select(User).where(User.id == 1)
    db_utils = DBUtils(session)
    results = db_utils.fetchall(stmt)
    for row in results:
        print(row)
```

**Asynchronous Example:**
```python
import sqlalchemy as sa
from ddcDatabases import DBUtilsAsync, PostgreSQL
from your_models import User

async def main():
    async with PostgreSQL() as session:
        stmt = sa.select(User).where(User.id == 1)
        db_utils = DBUtilsAsync(session)
        results = await db_utils.fetchall(stmt)
        for row in results:
            print(row)
```

### MySQL

**Synchronous Example:**
```python
import sqlalchemy as sa
from ddcDatabases import DBUtils, MySQL

with MySQL() as session:
    stmt = sa.text("SELECT * FROM users WHERE id = :user_id")
    db_utils = DBUtils(session)
    results = db_utils.fetchall(stmt, {"user_id": 1})
    for row in results:
        print(row)
```




### Oracle

```python
class Oracle(
    host: Optional[str] = None,
    port: Optional[int] = None,
    user: Optional[str] = None,
    password: Optional[str] = None,
    servicename: Optional[str] = None,
    echo: Optional[bool] = None,
    autoflush: Optional[bool] = None,
    expire_on_commit: Optional[bool] = None,
    extra_engine_args: Optional[dict] = None,
)
```

**Example with explicit credentials:**
```python
import sqlalchemy as sa
from ddcDatabases import DBUtils, Oracle

credentials = {
    "host": "127.0.0.1",
    "user": "system",
    "password": "oracle",
    "servicename": "xe",
    "echo": False,
}

with Oracle(**credentials) as session:
    stmt = sa.text("SELECT * FROM dual")
    db_utils = DBUtils(session)
    results = db_utils.fetchall(stmt)
    for row in results:
        print(row)
```








### MongoDB

```python
class MongoDB(
    host: Optional[str] = None,
    port: Optional[int] = None,
    user: Optional[str] = None,
    password: Optional[str] = None,
    database: Optional[str] = None,
    batch_size: Optional[int] = None,
    limit: Optional[int] = None,
)
```

**Example with explicit credentials:**
```python
from ddcDatabases.mongodb import MongoDB
from bson.objectid import ObjectId

credentials = {
    "host": "127.0.0.1",
    "user": "admin",
    "password": "admin",
    "database": "admin",
}

with MongoDB(**credentials) as mongodb:
    query = {"_id": ObjectId("6772cf60f27e7e068e9d8985")}
    collection = "movies"
    with mongodb.cursor(collection, query) as cursor:
        for document in cursor:
            print(document)
```








## Database Engines

Access the underlying SQLAlchemy engine for advanced operations:

**Synchronous Engine:**
```python
from ddcDatabases import PostgreSQL

with PostgreSQL() as session:
    engine = session.bind
    # Use engine for advanced operations
```

**Asynchronous Engine:**
```python
from ddcDatabases import PostgreSQL

async def main():
    async with PostgreSQL() as session:
        engine = session.bind
        # Use engine for advanced operations
```




## Database Utilities

The `DBUtils` and `DBUtilsAsync` classes provide convenient methods for common database operations:

### Available Methods

```python
from ddcDatabases import DBUtils, DBUtilsAsync

# Synchronous utilities
db_utils = DBUtils(session)
results = db_utils.fetchall(stmt)           # Returns list of RowMapping objects
value = db_utils.fetchvalue(stmt)           # Returns single value as string
db_utils.insert(stmt)                       # Insert into model table
db_utils.deleteall(model)                   # Delete all records from model
db_utils.insertbulk(model, data_list)      # Bulk insert from list of dictionaries
db_utils.execute(stmt)                      # Execute any SQLAlchemy statement

# Asynchronous utilities (similar interface with await)
db_utils_async = DBUtilsAsync(session)
results = await db_utils_async.fetchall(stmt)
```




## Development

### Building from Source
```shell
poetry build -f wheel
```

### Running Tests
```shell
poetry update --with test
poe tests
```

## License

Released under the [MIT License](LICENSE)

## Support

If you find this project helpful, consider supporting development:

- [GitHub Sponsor](https://github.com/sponsors/ddc)
- [ko-fi](https://ko-fi.com/ddcsta)
- [PayPal](https://www.paypal.com/ncp/payment/6G9Z78QHUD4RJ)


            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "ddcDatabases",
    "maintainer": "Daniel Costa",
    "docs_url": null,
    "requires_python": "<4.0,>=3.12",
    "maintainer_email": null,
    "keywords": "python3, python-3, python, databases, database, ddcDatabases, mongodb, mongodb-database, mssql, mssql-database, mysql, mysql-database, oracle, oracle-database, pgsql, postgres, postgresql, postgressql, postgresql-database, sqlite, sqlite3, sqlite3-database",
    "author": "Daniel Costa",
    "author_email": "danieldcsta@gmail.com",
    "download_url": "https://files.pythonhosted.org/packages/ff/29/dd8ca6bb90b96009c7c54e1802397ec794846e3f99609e40b301809d276c/ddcdatabases-2.0.5.tar.gz",
    "platform": null,
    "description": "# ddcDatabases\n\n[![Donate](https://img.shields.io/badge/Donate-PayPal-brightgreen.svg?style=plastic)](https://www.paypal.com/ncp/payment/6G9Z78QHUD4RJ)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n[![PyPi](https://img.shields.io/pypi/v/ddcDatabases.svg)](https://pypi.python.org/pypi/ddcDatabases)\n[![PyPI Downloads](https://static.pepy.tech/badge/ddcDatabases)](https://pepy.tech/projects/ddcDatabases)\n[![codecov](https://codecov.io/gh/ddc/ddcDatabases/graph/badge.svg?token=XWB53034GI)](https://codecov.io/gh/ddc/ddcDatabases)\n[![CI/CD Pipeline](https://github.com/ddc/ddcDatabases/actions/workflows/workflow.yml/badge.svg)](https://github.com/ddc/ddcDatabases/actions/workflows/workflow.yml)\n[![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=ddc_ddcDatabases&metric=alert_status)](https://sonarcloud.io/dashboard?id=ddc_ddcDatabases)  \n[![Build Status](https://img.shields.io/endpoint.svg?url=https%3A//actions-badge.atrox.dev/ddc/ddcDatabases/badge?ref=main&label=build&logo=none)](https://actions-badge.atrox.dev/ddc/ddcDatabases/goto?ref=main)\n[![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)\n[![Python](https://img.shields.io/pypi/pyversions/ddcDatabases.svg)](https://www.python.org/downloads)\n\n[![Support me on GitHub](https://img.shields.io/badge/Support_me_on_GitHub-154c79?style=for-the-badge&logo=github)](https://github.com/sponsors/ddc)\n\n\nA Python library for database connections and ORM queries with support for multiple database engines including SQLite, PostgreSQL, MySQL, MSSQL, Oracle, and MongoDB.\n\n## Table of Contents\n\n- [Installation](#installation)\n  - [Basic Installation (SQLite only)](#basic-installation-sqlite-only)\n  - [Database-Specific Installations](#database-specific-installations)\n- [Features](#features)\n  - [Default Session Settings](#default-session-settings)\n- [Database Classes](#database-classes)\n  - [SQLite](#sqlite)\n  - [MSSQL (SQL Server)](#mssql-sql-server)\n  - [PostgreSQL](#postgresql)\n  - [MySQL](#mysql)\n  - [Oracle](#oracle)\n  - [MongoDB](#mongodb)\n- [Database Engines](#database-engines)\n- [Database Utilities](#database-utilities)\n  - [Available Methods](#available-methods)\n- [Development](#development)\n  - [Building from Source](#building-from-source)\n  - [Running Tests](#running-tests)\n- [License](#license)\n- [Support](#support)\n\n\n## Features\n\n- **Multiple Database Support**: SQLite, PostgreSQL, MySQL, MSSQL, Oracle, and MongoDB\n- **Sync and Async Support**: Both synchronous and asynchronous operations\n- **Environment Configuration**: Optional parameters with `.env` file fallback\n- **SQLAlchemy Integration**: Built on top of SQLAlchemy ORM\n- **Connection Pooling**: Configurable connection pooling for better performance\n\n### Default Session Settings\n\n**Synchronous Sessions:**\n- `autoflush = True`\n- `expire_on_commit = True` \n- `echo = False`\n\n**Asynchronous Sessions:**\n- `autoflush = True`\n- `expire_on_commit = False`\n- `echo = False`\n\n**Note:** All constructor parameters are optional and fall back to [.env](./ddcDatabases/.env.example) file variables.\n\n\n## Installation\n\n### Basic Installation (SQLite only)\n```shell\npip install ddcDatabases\n```\n\n**Note:** The basic installation includes only SQlite. Database-specific drivers are optional extras that you can install as needed.\n\n### Database-Specific Installations\n\nInstall only the database drivers you need:\n\n```shell\n# All database drivers (recommended for development)\npip install ddcDatabases[all]\n\n# SQL Server / MSSQL\npip install ddcDatabases[mssql]\n\n# MySQL / MariaDB\npip install ddcDatabases[mysql]\n\n# PostgreSQL\npip install ddcDatabases[pgsql]\n\n# Oracle Database\npip install ddcDatabases[oracle]\n\n# MongoDB\npip install ddcDatabases[mongodb]\n\n# Multiple databases (example)\npip install ddcDatabases[mysql,pgsql,mongodb]\n```\n\n**Available Database Extras:**\n- `all` - All database drivers\n- `mssql` - Microsoft SQL Server (pyodbc, aioodbc)\n- `mysql` - MySQL/MariaDB (pymysql, aiomysql)\n- `pgsql` - PostgreSQL (psycopg2-binary, asyncpg)\n- `oracle` - Oracle Database (cx-oracle)\n- `mongodb` - MongoDB (pymongo)\n\n**Platform Notes:**\n- SQLite support is included by default (no extra installation required)\n- PostgreSQL extras may have compilation requirements on some systems\n- All extras support both synchronous and asynchronous operations where applicable\n\n\n## Database Classes\n\n### SQLite\n\n```python\nclass Sqlite(\n    filepath: Optional[str] = None,\n    echo: Optional[bool] = None,\n    autoflush: Optional[bool] = None,\n    expire_on_commit: Optional[bool] = None,\n    extra_engine_args: Optional[dict] = None,\n)\n```\n\n**Example:**\n```python\nimport sqlalchemy as sa\nfrom ddcDatabases import DBUtils, Sqlite\nfrom your_models import User  # Your SQLAlchemy model\n\nwith Sqlite() as session:\n    db_utils = DBUtils(session)\n    stmt = sa.select(User).where(User.id == 1)\n    results = db_utils.fetchall(stmt)\n    for row in results:\n        print(row)\n```\n\n\n\n\n\n### MSSQL (SQL Server)\n\n```python\nclass MSSQL(\n    host: Optional[str] = None,\n    port: Optional[int] = None,\n    user: Optional[str] = None,\n    password: Optional[str] = None,\n    database: Optional[str] = None,\n    schema: Optional[str] = None,\n    echo: Optional[bool] = None,\n    pool_size: Optional[int] = None,\n    max_overflow: Optional[int] = None,\n    autoflush: Optional[bool] = None,\n    expire_on_commit: Optional[bool] = None,\n    extra_engine_args: Optional[dict] = None,\n)\n```\n\n**Synchronous Example:**\n```python\nimport sqlalchemy as sa\nfrom ddcDatabases import DBUtils, MSSQL\nfrom your_models import User\n\nwith MSSQL() as session:\n    stmt = sa.select(User).where(User.id == 1)\n    db_utils = DBUtils(session)\n    results = db_utils.fetchall(stmt)\n    for row in results:\n        print(row)\n```\n\n**Asynchronous Example:**\n```python\nimport sqlalchemy as sa\nfrom ddcDatabases import DBUtilsAsync, MSSQL\nfrom your_models import User\n\nasync def main():\n    async with MSSQL() as session:\n        stmt = sa.select(User).where(User.id == 1)\n        db_utils = DBUtilsAsync(session)\n        results = await db_utils.fetchall(stmt)\n        for row in results:\n            print(row)\n```\n\n\n\n\n\n\n### PostgreSQL\n\n```python\nclass PostgreSQL(\n    host: Optional[str] = None,\n    port: Optional[int] = None,\n    user: Optional[str] = None,\n    password: Optional[str] = None,\n    database: Optional[str] = None,\n    echo: Optional[bool] = None,\n    autoflush: Optional[bool] = None,\n    expire_on_commit: Optional[bool] = None,\n    engine_args: Optional[dict] = None,\n)\n```\n\n**Synchronous Example:**\n```python\nimport sqlalchemy as sa\nfrom ddcDatabases import DBUtils, PostgreSQL\nfrom your_models import User\n\nwith PostgreSQL() as session:\n    stmt = sa.select(User).where(User.id == 1)\n    db_utils = DBUtils(session)\n    results = db_utils.fetchall(stmt)\n    for row in results:\n        print(row)\n```\n\n**Asynchronous Example:**\n```python\nimport sqlalchemy as sa\nfrom ddcDatabases import DBUtilsAsync, PostgreSQL\nfrom your_models import User\n\nasync def main():\n    async with PostgreSQL() as session:\n        stmt = sa.select(User).where(User.id == 1)\n        db_utils = DBUtilsAsync(session)\n        results = await db_utils.fetchall(stmt)\n        for row in results:\n            print(row)\n```\n\n### MySQL\n\n**Synchronous Example:**\n```python\nimport sqlalchemy as sa\nfrom ddcDatabases import DBUtils, MySQL\n\nwith MySQL() as session:\n    stmt = sa.text(\"SELECT * FROM users WHERE id = :user_id\")\n    db_utils = DBUtils(session)\n    results = db_utils.fetchall(stmt, {\"user_id\": 1})\n    for row in results:\n        print(row)\n```\n\n\n\n\n### Oracle\n\n```python\nclass Oracle(\n    host: Optional[str] = None,\n    port: Optional[int] = None,\n    user: Optional[str] = None,\n    password: Optional[str] = None,\n    servicename: Optional[str] = None,\n    echo: Optional[bool] = None,\n    autoflush: Optional[bool] = None,\n    expire_on_commit: Optional[bool] = None,\n    extra_engine_args: Optional[dict] = None,\n)\n```\n\n**Example with explicit credentials:**\n```python\nimport sqlalchemy as sa\nfrom ddcDatabases import DBUtils, Oracle\n\ncredentials = {\n    \"host\": \"127.0.0.1\",\n    \"user\": \"system\",\n    \"password\": \"oracle\",\n    \"servicename\": \"xe\",\n    \"echo\": False,\n}\n\nwith Oracle(**credentials) as session:\n    stmt = sa.text(\"SELECT * FROM dual\")\n    db_utils = DBUtils(session)\n    results = db_utils.fetchall(stmt)\n    for row in results:\n        print(row)\n```\n\n\n\n\n\n\n\n\n### MongoDB\n\n```python\nclass MongoDB(\n    host: Optional[str] = None,\n    port: Optional[int] = None,\n    user: Optional[str] = None,\n    password: Optional[str] = None,\n    database: Optional[str] = None,\n    batch_size: Optional[int] = None,\n    limit: Optional[int] = None,\n)\n```\n\n**Example with explicit credentials:**\n```python\nfrom ddcDatabases.mongodb import MongoDB\nfrom bson.objectid import ObjectId\n\ncredentials = {\n    \"host\": \"127.0.0.1\",\n    \"user\": \"admin\",\n    \"password\": \"admin\",\n    \"database\": \"admin\",\n}\n\nwith MongoDB(**credentials) as mongodb:\n    query = {\"_id\": ObjectId(\"6772cf60f27e7e068e9d8985\")}\n    collection = \"movies\"\n    with mongodb.cursor(collection, query) as cursor:\n        for document in cursor:\n            print(document)\n```\n\n\n\n\n\n\n\n\n## Database Engines\n\nAccess the underlying SQLAlchemy engine for advanced operations:\n\n**Synchronous Engine:**\n```python\nfrom ddcDatabases import PostgreSQL\n\nwith PostgreSQL() as session:\n    engine = session.bind\n    # Use engine for advanced operations\n```\n\n**Asynchronous Engine:**\n```python\nfrom ddcDatabases import PostgreSQL\n\nasync def main():\n    async with PostgreSQL() as session:\n        engine = session.bind\n        # Use engine for advanced operations\n```\n\n\n\n\n## Database Utilities\n\nThe `DBUtils` and `DBUtilsAsync` classes provide convenient methods for common database operations:\n\n### Available Methods\n\n```python\nfrom ddcDatabases import DBUtils, DBUtilsAsync\n\n# Synchronous utilities\ndb_utils = DBUtils(session)\nresults = db_utils.fetchall(stmt)           # Returns list of RowMapping objects\nvalue = db_utils.fetchvalue(stmt)           # Returns single value as string\ndb_utils.insert(stmt)                       # Insert into model table\ndb_utils.deleteall(model)                   # Delete all records from model\ndb_utils.insertbulk(model, data_list)      # Bulk insert from list of dictionaries\ndb_utils.execute(stmt)                      # Execute any SQLAlchemy statement\n\n# Asynchronous utilities (similar interface with await)\ndb_utils_async = DBUtilsAsync(session)\nresults = await db_utils_async.fetchall(stmt)\n```\n\n\n\n\n## Development\n\n### Building from Source\n```shell\npoetry build -f wheel\n```\n\n### Running Tests\n```shell\npoetry update --with test\npoe tests\n```\n\n## License\n\nReleased under the [MIT License](LICENSE)\n\n## Support\n\nIf you find this project helpful, consider supporting development:\n\n- [GitHub Sponsor](https://github.com/sponsors/ddc)\n- [ko-fi](https://ko-fi.com/ddcsta)\n- [PayPal](https://www.paypal.com/ncp/payment/6G9Z78QHUD4RJ)\n\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "Database ORM Connections and Queries",
    "version": "2.0.5",
    "project_urls": {
        "Homepage": "https://pypi.org/project/ddcDatabases",
        "Repository": "https://github.com/ddc/ddcDatabases"
    },
    "split_keywords": [
        "python3",
        " python-3",
        " python",
        " databases",
        " database",
        " ddcdatabases",
        " mongodb",
        " mongodb-database",
        " mssql",
        " mssql-database",
        " mysql",
        " mysql-database",
        " oracle",
        " oracle-database",
        " pgsql",
        " postgres",
        " postgresql",
        " postgressql",
        " postgresql-database",
        " sqlite",
        " sqlite3",
        " sqlite3-database"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "9bd4157352eba3a9576571a4f8b7392bf5b64686f9bdf3e36f033d21df9c2ff6",
                "md5": "ba032fe356fa0999de99b8b572b62c9b",
                "sha256": "49fa9fd433af3bfe00df9e9bb3d326d9a70b03d6e2c3af01075afe025ec4478e"
            },
            "downloads": -1,
            "filename": "ddcdatabases-2.0.5-cp312-cp312-macosx_14_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "ba032fe356fa0999de99b8b572b62c9b",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": "<4.0,>=3.12",
            "size": 16811,
            "upload_time": "2025-08-12T19:11:34",
            "upload_time_iso_8601": "2025-08-12T19:11:34.873625Z",
            "url": "https://files.pythonhosted.org/packages/9b/d4/157352eba3a9576571a4f8b7392bf5b64686f9bdf3e36f033d21df9c2ff6/ddcdatabases-2.0.5-cp312-cp312-macosx_14_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "b903f18c860945f206b65e68c1ce3cf6b79ee4ac6a391e6ac5b20bd1e8fc0be1",
                "md5": "7bb8571f5e6e712dab89ec64de136cc6",
                "sha256": "abbe4c4d0a18cb3b86efb26f007d260d6c65845afcd87af021c4b316d616b645"
            },
            "downloads": -1,
            "filename": "ddcdatabases-2.0.5-cp312-cp312-macosx_15_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "7bb8571f5e6e712dab89ec64de136cc6",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": "<4.0,>=3.12",
            "size": 16810,
            "upload_time": "2025-08-12T19:11:35",
            "upload_time_iso_8601": "2025-08-12T19:11:35.792505Z",
            "url": "https://files.pythonhosted.org/packages/b9/03/f18c860945f206b65e68c1ce3cf6b79ee4ac6a391e6ac5b20bd1e8fc0be1/ddcdatabases-2.0.5-cp312-cp312-macosx_15_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "ae001354b994a43240ca484784b01e3c1e3ee4c7549c54a97dd270bb29a7ef76",
                "md5": "cd9b655d575a79461de7b3c6d8e06572",
                "sha256": "59ee55a96ebaf2409579aeb633d029cd57923b3dc3f8f1a7995c727bb7ac51ff"
            },
            "downloads": -1,
            "filename": "ddcdatabases-2.0.5-cp312-cp312-manylinux_2_39_x86_64.whl",
            "has_sig": false,
            "md5_digest": "cd9b655d575a79461de7b3c6d8e06572",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": "<4.0,>=3.12",
            "size": 16815,
            "upload_time": "2025-08-12T19:11:36",
            "upload_time_iso_8601": "2025-08-12T19:11:36.472977Z",
            "url": "https://files.pythonhosted.org/packages/ae/00/1354b994a43240ca484784b01e3c1e3ee4c7549c54a97dd270bb29a7ef76/ddcdatabases-2.0.5-cp312-cp312-manylinux_2_39_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "b2735973999677875ee14211cb1d696ab49da6293d6f8cdfb783cd69478f19f3",
                "md5": "a2deeadc1245b12b3b264aafd3469737",
                "sha256": "365b806639f3897bc8c6f52ed9322d1252c1521c482f2bee80244424063bf0ff"
            },
            "downloads": -1,
            "filename": "ddcdatabases-2.0.5-cp312-cp312-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "a2deeadc1245b12b3b264aafd3469737",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": "<4.0,>=3.12",
            "size": 16928,
            "upload_time": "2025-08-12T19:11:37",
            "upload_time_iso_8601": "2025-08-12T19:11:37.146159Z",
            "url": "https://files.pythonhosted.org/packages/b2/73/5973999677875ee14211cb1d696ab49da6293d6f8cdfb783cd69478f19f3/ddcdatabases-2.0.5-cp312-cp312-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "4f115fe7d8fbb9062213a9718073255ae3a83d0db6c88b066a9f731cdb65674c",
                "md5": "6dea22bf087d14e3481a22d4c310d5c8",
                "sha256": "7a83e22c5f34a5245b19b1a59db64f1dae9c64d917d0e358b205afd81305673b"
            },
            "downloads": -1,
            "filename": "ddcdatabases-2.0.5-cp313-cp313-macosx_14_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "6dea22bf087d14e3481a22d4c310d5c8",
            "packagetype": "bdist_wheel",
            "python_version": "cp313",
            "requires_python": "<4.0,>=3.12",
            "size": 16811,
            "upload_time": "2025-08-12T19:11:37",
            "upload_time_iso_8601": "2025-08-12T19:11:37.844798Z",
            "url": "https://files.pythonhosted.org/packages/4f/11/5fe7d8fbb9062213a9718073255ae3a83d0db6c88b066a9f731cdb65674c/ddcdatabases-2.0.5-cp313-cp313-macosx_14_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "0ba6de5984467364c51fe47816b38909dbb105629b58686eb3eca5a267590b4a",
                "md5": "8cdf9d5ae458d39ed3429466eb752239",
                "sha256": "4d381a8a655883c146c08f76cb2a3e11f4b7863934cd0c9bc765094663757617"
            },
            "downloads": -1,
            "filename": "ddcdatabases-2.0.5-cp313-cp313-macosx_15_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "8cdf9d5ae458d39ed3429466eb752239",
            "packagetype": "bdist_wheel",
            "python_version": "cp313",
            "requires_python": "<4.0,>=3.12",
            "size": 16809,
            "upload_time": "2025-08-12T19:11:38",
            "upload_time_iso_8601": "2025-08-12T19:11:38.596200Z",
            "url": "https://files.pythonhosted.org/packages/0b/a6/de5984467364c51fe47816b38909dbb105629b58686eb3eca5a267590b4a/ddcdatabases-2.0.5-cp313-cp313-macosx_15_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "65809e0398d1a4368c3170de27310a9a464f4344186c7f733833639ee736a0d4",
                "md5": "e25f6aed639bfff1ce66c248ef11050d",
                "sha256": "f17ed9c45ab062100a203efc25bc2e5b3e2ef7639378c6819f55e737cca7dfc9"
            },
            "downloads": -1,
            "filename": "ddcdatabases-2.0.5-cp313-cp313-manylinux_2_39_x86_64.whl",
            "has_sig": false,
            "md5_digest": "e25f6aed639bfff1ce66c248ef11050d",
            "packagetype": "bdist_wheel",
            "python_version": "cp313",
            "requires_python": "<4.0,>=3.12",
            "size": 16814,
            "upload_time": "2025-08-12T19:11:39",
            "upload_time_iso_8601": "2025-08-12T19:11:39.314558Z",
            "url": "https://files.pythonhosted.org/packages/65/80/9e0398d1a4368c3170de27310a9a464f4344186c7f733833639ee736a0d4/ddcdatabases-2.0.5-cp313-cp313-manylinux_2_39_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "5fea277840dbcf12b213b6ec61cbf7f14f09a1089aae8b91d12ea1c1017527f5",
                "md5": "088ab51cb29c877a668ab2f572c67c84",
                "sha256": "5878d77090268997945f114a9ae0b7fee8ddef7d0db2acd602ddf41b8643b406"
            },
            "downloads": -1,
            "filename": "ddcdatabases-2.0.5-cp313-cp313-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "088ab51cb29c877a668ab2f572c67c84",
            "packagetype": "bdist_wheel",
            "python_version": "cp313",
            "requires_python": "<4.0,>=3.12",
            "size": 16927,
            "upload_time": "2025-08-12T19:11:40",
            "upload_time_iso_8601": "2025-08-12T19:11:40.046034Z",
            "url": "https://files.pythonhosted.org/packages/5f/ea/277840dbcf12b213b6ec61cbf7f14f09a1089aae8b91d12ea1c1017527f5/ddcdatabases-2.0.5-cp313-cp313-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "ff29dd8ca6bb90b96009c7c54e1802397ec794846e3f99609e40b301809d276c",
                "md5": "8573f446164056bacb3ce8c55d793cf1",
                "sha256": "c166723dc6309b1494fe2c5d5444d64111742c5c6be7ec548c62ffdf94cad50b"
            },
            "downloads": -1,
            "filename": "ddcdatabases-2.0.5.tar.gz",
            "has_sig": false,
            "md5_digest": "8573f446164056bacb3ce8c55d793cf1",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": "<4.0,>=3.12",
            "size": 15808,
            "upload_time": "2025-08-12T19:11:40",
            "upload_time_iso_8601": "2025-08-12T19:11:40.748549Z",
            "url": "https://files.pythonhosted.org/packages/ff/29/dd8ca6bb90b96009c7c54e1802397ec794846e3f99609e40b301809d276c/ddcdatabases-2.0.5.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-08-12 19:11:40",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "ddc",
    "github_project": "ddcDatabases",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "ddcdatabases"
}
        
Elapsed time: 1.80267s