Go to file
2022-09-07 15:34:45 -04:00
.github Update name of check CI workflow to improve clarity 2022-09-07 15:04:12 -04:00
tests Add default sqlite pragma dictionary 2021-11-24 22:52:45 -05:00
.coveragerc Initial commit 2021-11-24 16:30:47 -05:00
.gitignore Initial commit 2021-11-24 16:30:47 -05:00
.pre-commit-config.yaml Initial commit 2021-11-24 16:30:47 -05:00
.pylintrc Initial commit 2021-11-24 16:30:47 -05:00
CHANGELOG.md Update changelog with version 1.1 2022-01-20 01:03:12 -05:00
CODE_OF_CONDUCT.md Add initial documentation 2021-11-24 23:30:46 -05:00
LICENSE.md Initial commit 2021-11-24 16:30:47 -05:00
Makefile Add local pycache to clean target 2021-11-24 22:58:02 -05:00
peewee_plus.py Ensure NULL-able Enums don't raise peewee.IntegrityError 2022-09-07 15:34:45 -04:00
poetry.lock Update black to stable release 2022-09-07 15:04:12 -04:00
pyproject.toml Update black to stable release 2022-09-07 15:04:12 -04:00
README.md Add build status badge to readme 2022-08-05 00:05:34 -04:00
tox.ini Initial commit 2021-11-24 16:30:47 -05:00

peewee+

Various extensions, helpers, and utilities for Peewee

CI Status PyPI Version License Python Supported Versions Code style: black

See the Changelog for release history.

Documentation

The documentation for this project is currently a work in progress. Please see the source code for complete docs

Installing

Peewee+ is available on PyPI and can be installed using Poetry, Pipenv, or Pip:

# Using poetry
poetry add peewee-plus

# Using pipenv
pipenv install peewee-plus

# Using pip
python -m venv peewee
source peewee/bin/activate
python -m pip install peewee-plus

Once installed, Peewee+ can be imported like below:

import peewee_plus

Features

Constants

SQLITE_DEFAULT_PRAGMAS - The default pragmas to use with an SQLite database connection, taken directly from the Peewee docs.

SQLITE_DEFAULT_VARIABLE_LIMIT - The maximum number of variables an SQL query can use when using SQLite

Functions

calc_batch_size - Helper function for determining how to batch a create/update query with SQLite

flat_transaction - Decorator function for wrapping callables in a database transaction without creating nested transactions

Classes

PathField - A Peewee database field for storing Pathlib objects, optionally relative to a runtime value.

PrecisionFloatField - A Peewee database field for storing floats while specifying the MySQL precision parameters M and D

JSONField - A Peewee database field for storing arbitrary JSON-serializable data

EnumField - A Peewee database field for storing Enums by name

For Developers

All project contributors and participants are expected to adhere to the Contributor Covenant Code of Conduct, v2 (external link).

The devel branch has the latest (and potentially unstable) changes. The stable releases are tracked on Github, PyPi, and in the Changelog.

Developing this project requires at least Python 3.7 and at least Poetry 1.0. GNU Make can optionally be used to quickly setup a local development environment, but this is not required.

To setup a local development environment:

# Clone the repository...
# ...over HTTPS
git clone https://github.com/enpaul/peewee-plus.git
# ...over SSH
git clone git@github.com:enpaul/peewee-plus.git

cd peewee-plus/

# Create and configure the local dev environment
make dev

# See additional make targets
make help