Various extensions, helpers, and utilities for Peewee
See the Changelog for release history.
The documentation for this project is currently a work in progress. Please see the source code for complete docs
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
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
calc_batch_size
- Helper function for writing backend-agnostic batch queries while
accounting for the
SQLite max variable limit.
flat_transaction
- Decorator function for wrapping callables in a database transaction
without creating nested transactions
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
TimedeltaField
A Peewee database field for natively storing
datetime.timedelta
objects
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.
- To report a bug, request a feature, or ask for assistance, please open an issue on the Github repository.
- To report a security concern or code of conduct violation, please contact the project author directly at me [at] enp dot one.
- To submit an update, please fork the repository and open a pull request.
Developing this project requires Python 3.10 or later and Poetry 1.2 or later. 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