Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/enpaul/peewee-plus
Various extensions, helpers, and utilities for Peewee
https://github.com/enpaul/peewee-plus
peewee peewee-orm python python3 sqlite
Last synced: 2 months ago
JSON representation
Various extensions, helpers, and utilities for Peewee
- Host: GitHub
- URL: https://github.com/enpaul/peewee-plus
- Owner: enpaul
- License: mit
- Created: 2021-11-24T21:30:08.000Z (about 3 years ago)
- Default Branch: devel
- Last Pushed: 2023-10-13T20:19:50.000Z (about 1 year ago)
- Last Synced: 2024-09-18T04:59:55.758Z (3 months ago)
- Topics: peewee, peewee-orm, python, python3, sqlite
- Language: Python
- Homepage:
- Size: 352 KB
- Stars: 6
- Watchers: 1
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE.md
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
README
# peewee+
Various extensions, helpers, and utilities for [Peewee](http://peewee-orm.com)
[![CI Status](https://github.com/enpaul/peewee-plus/workflows/CI/badge.svg?event=push)](https://github.com/enpaul/peewee-plus/actions)
[![PyPI Version](https://img.shields.io/pypi/v/peewee-plus)](https://pypi.org/project/peewee-plus/)
[![PyPI Downloads](https://img.shields.io/pypi/dm/peewee-plus)](https://libraries.io/pypi/peewee-plus)
[![License](https://img.shields.io/pypi/l/peewee-plus)](https://opensource.org/licenses/MIT)
[![Python Supported Versions](https://img.shields.io/pypi/pyversions/peewee-plus)](https://www.python.org)
[![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)See the [Changelog](https://github.com/enpaul/peewee-plus/blob/devel/CHANGELOG.md) for
release history.## Documentation
*The documentation for this project is currently a work in progress. Please see the source
code for complete docs*- [Installing](#installing)
- [Features](#features)
- [For Developers](#for-developers)## Installing
peewee+ is [available on PyPI](https://pypi.org/project/peewee-plus/) and can be installed
using Poetry, Pipenv, or Pip:```bash
# 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:
```python
import peewee_plus
```## Features
### Constants
`SQLITE_DEFAULT_PRAGMAS` - The default pragmas to use with an SQLite database connection,
taken directly from the
[Peewee docs](http://docs.peewee-orm.com/en/latest/peewee/database.html#recommended-settings).`SQLITE_DEFAULT_VARIABLE_LIMIT` - The maximum number of variables an SQL query can use
when using SQLite### Functions
`calc_batch_size` - Helper function for writing backend-agnostic batch queries while
accounting for the
[SQLite max variable limit](https://www.sqlite.org/limits.html#max_variable_number).`flat_transaction` - Decorator function for wrapping callables in a database transaction
without creating nested transactions### Classes
`PathField` - A Peewee database field for storing
[Pathlib](https://docs.python.org/3/library/pathlib.html) objects, optionally relative to
a runtime value.`PrecisionFloatField` - A Peewee database field for storing floats while specifying the
[MySQL precision parameters](https://dev.mysql.com/doc/refman/8.0/en/floating-point-types.html)
`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`](https://docs.python.org/3/library/datetime.html#datetime.timedelta)
objects## For Developers
All project contributors and participants are expected to adhere to the
[Contributor Covenant Code of Conduct, v2](CODE_OF_CONDUCT.md)
([external link](https://www.contributor-covenant.org/version/2/0/code_of_conduct/)).The `devel` branch has the latest (and potentially unstable) changes. The stable releases
are tracked on [Github](https://github.com/enpaul/peewee-plus/releases),
[PyPi](https://pypi.org/project/peewee-plus/#history), and in the
[Changelog](CHANGELOG.md).- To report a bug, request a feature, or ask for assistance, please
[open an issue on the Github repository](https://github.com/enpaul/peewee-plus/issues/new).
- 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](https://docs.github.com/en/enterprise/2.20/user/github/getting-started-with-github/fork-a-repo)
and [open a pull request](https://github.com/enpaul/peewee-plus/compare).Developing this project requires [Python 3.10](https://www.python.org/downloads/) or later
and [Poetry 1.2](https://python-poetry.org/docs/#installation) 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:
```bash
# Clone the repository...
# ...over HTTPS
git clone https://github.com/enpaul/peewee-plus.git
# ...over SSH
git clone [email protected]:enpaul/peewee-plus.gitcd peewee-plus/
# Create and configure the local dev environment
make dev# See additional make targets
make help
```