Metadata-Version: 2.4
Name: sheraf
Version: 0.6.0
Summary: Versatile ZODB abstraction layer
Keywords: zodb,orm
Author: Yaal team
Author-email: Yaal team <contact@yaal.coop>
License-Expression: MIT
License-File: LICENSE.md
Classifier: Intended Audience :: Developers
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Classifier: Programming Language :: Python :: Implementation :: CPython
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Framework :: ZODB
Requires-Dist: click>=8.0
Requires-Dist: legacycrypt>=0.3
Requires-Dist: rich>=10
Requires-Dist: zodb>=5.6
Requires-Dist: zodburi>=3.0
Requires-Dist: sheraf[relstorage-pg,zeo] ; extra == 'all'
Requires-Dist: psycopg2>=2.9.10 ; extra == 'relstorage-pg'
Requires-Dist: psycopg2cffi>=2.9 ; extra == 'relstorage-pg'
Requires-Dist: relstorage>=4.2 ; extra == 'relstorage-pg'
Requires-Dist: zeo>=6.0 ; extra == 'zeo'
Maintainer: Éloi Rivard
Maintainer-email: Éloi Rivard <eloi@yaal.coop>
Requires-Python: >=3.10
Project-URL: homepage, https://sheraf.readthedocs.io/en/latest/
Project-URL: documentation, https://sheraf.readthedocs.io/en/latest/
Project-URL: repository, https://gitlab.com/yaal/sheraf
Provides-Extra: all
Provides-Extra: relstorage-pg
Provides-Extra: zeo
Description-Content-Type: text/markdown

# A versatile ZODB abstraction layer

sheraf is a wrapper library around [ZODB](https://www.zodb.org) that provides models management and indexation. It aims to make the use of `ZODB` simple by providing ready-to-use tools and explicit tools. sheraf is currently compatible with `ZODB 5.6+` and `ZODB 6.x`, and `python 3.10+`.

You can expect sheraf to:

- Do few things, but do them right;
- Be simple enough so beginners can do a lot with a few lines;
- Be powerful enough and tunable for python experts;
- Have a simple and expressive code, that allows you to hack it if needed.

## Installation

sheraf is compatible with Python 3.10+

    uv add sheraf
    # or
    pip install sheraf

If you need pytest fixtures for your project check out [pytest-sheraf](https://gitlab.com/yaal/pytest-sheraf). There are also [sheraf fixtures for unittest](https://gitlab.com/yaal/unittest-sheraf).

    pip install pytest-sheraf

## Contributing

Bug reports and pull requests are highly encouraged!

 - Test some code : `uv run pytest` and `uv run tox`
 - Format code : `uvx prek run --all-files`
 - Generate documentation : `uv run tox -e doc`

## Documentation

You can build it with the following commands, or read it on [readthedocs](https://sheraf.readthedocs.io/en/latest/).

    uv run tox -e doc
    open build/sphinx/html/index.html

## Development installation

sheraf uses [uv](https://docs.astral.sh/uv/) as its main build tool.

    uv sync
