Metadata-Version: 2.1
Name: db4me
Version: 0.1.0
Summary: Basic sqlalchemy helpers
Author-email: Nicu Tofan <nicu.tofan@gmail.com>
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: License :: OSI Approved :: MIT License
Classifier: Development Status :: 3 - Alpha
Classifier: Topic :: Database
Classifier: Typing :: Typed
Requires-Python: >=3.9
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: SQLAlchemy >=2.0.23
Requires-Dist: pydantic >=2.5.2
Provides-Extra: a-postgres
Requires-Dist: asyncpg >=0.29.0 ; extra == 'a-postgres'
Provides-Extra: a-sqlite
Requires-Dist: aiosqlite >=0.18.0 ; extra == 'a-sqlite'
Provides-Extra: dev
Requires-Dist: black ; extra == 'dev'
Requires-Dist: build ; extra == 'dev'
Requires-Dist: flake8 ; extra == 'dev'
Requires-Dist: isort ; extra == 'dev'
Requires-Dist: mypy ; extra == 'dev'
Requires-Dist: pre-commit ; extra == 'dev'
Requires-Dist: pyproject-flake8 ; extra == 'dev'
Requires-Dist: pytest-asyncio ; extra == 'dev'
Requires-Dist: pytest-cov ; extra == 'dev'
Requires-Dist: pytest-mock ; extra == 'dev'
Requires-Dist: pytest ; extra == 'dev'
Requires-Dist: twine ; extra == 'dev'
Requires-Dist: wheel ; extra == 'dev'
Provides-Extra: docs
Requires-Dist: cairosvg ; extra == 'docs'
Requires-Dist: markdown-include ; extra == 'docs'
Requires-Dist: mkdocs-material ; extra == 'docs'
Requires-Dist: mkdocs-material[imaging] ; extra == 'docs'
Requires-Dist: mkdocs ; extra == 'docs'
Requires-Dist: mkdocstrings ; extra == 'docs'
Requires-Dist: mkdocstrings[python] ; extra == 'docs'
Requires-Dist: pillow ; extra == 'docs'
Requires-Dist: pymdown-extensions ; extra == 'docs'
Provides-Extra: tests
Requires-Dist: black ; extra == 'tests'
Requires-Dist: flake8 ; extra == 'tests'
Requires-Dist: isort ; extra == 'tests'
Requires-Dist: mypy ; extra == 'tests'
Requires-Dist: pyproject-flake8 ; extra == 'tests'
Requires-Dist: pytest-cov ; extra == 'tests'
Requires-Dist: pytest-mock ; extra == 'tests'
Requires-Dist: pytest ; extra == 'tests'
Requires-Dist: twine ; extra == 'tests'
Requires-Dist: wheel ; extra == 'tests'

# db4me

Basic sqlalchemy helpers

## Installation

```bash
python -m pip install db4me
```

## Usage

Include the database settings into your model and, at application
start-up time, create the connection based on these settings.

```python
from pydantic_settings import BaseSettings
from db4me import AllDatabaseSettings, get_engine


class AppSettings(BaseSettings):
    # ...
    database: AllDatabaseSettings = Field(
        description="Database settings.",
    )
    # ...


settings = AppSettings()
engine = get_engine(settings.database)
```

## Development

Start by creating a virtual environment and installing the dependencies.
If you have a `make` command available, you can run `make init` after
the virtual environment is created and activated. Otherwise, you can run
the following commands:

```bash
python -m venv venv
source venv/bin/activate
python -m pip install --upgrade pip
python -m pip install -e .[dev]
```

On Windows, to be able to serve the documentation, you may also need to
install the `cairo2` package:

```bash
pip install pipwin
pipwin install cairocffi
```
