Metadata-Version: 2.4
Name: pyrsql
Version: 0.0.1
Summary: ORM-oriented RSQL support for Python applications.
Keywords: rsql,orm,sqlalchemy,fastapi,query-language,rest
License-Expression: MIT
Classifier: Development Status :: 4 - Beta
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: Framework :: FastAPI
Classifier: Topic :: Database
Requires-Dist: ciso8601>=2.3,<3.0
Requires-Dist: msgspec>=0.18,<1.0
Requires-Dist: typing-extensions>=4.10.0 ; python_full_version < '3.11'
Requires-Dist: fastapi>=0.110,<1.0 ; extra == 'fastapi'
Requires-Dist: sqlalchemy>=2.0,<3.0 ; extra == 'sqlalchemy'
Requires-Python: >=3.10
Project-URL: Homepage, https://github.com/wskr00/pyrsql
Project-URL: Repository, https://github.com/wskr00/pyrsql
Project-URL: Issues, https://github.com/wskr00/pyrsql/issues
Project-URL: Documentation, https://github.com/wskr00/pyrsql/blob/main/README.md
Provides-Extra: fastapi
Provides-Extra: sqlalchemy
Description-Content-Type: text/markdown

## pyrsql

`pyrsql` is an ORM-oriented RSQL library for Python.

The project is being designed to support multiple ORMs, starting with
`SQLAlchemy 2.0`. The core package remains ORM-neutral, while ORM
implementations live in `orms`, and framework-specific integration lives
in `adapters`.

Current `SQLAlchemy` support includes:

- filters
- sorting
- pagination
- `distinct`
- `join_hints`
- PostgreSQL-style JSON / JSONB path support
- temporal JSON path semantics via `JSONOptions(use_datetime=True)`

Current adapter support includes:

- `FastAPI` request extraction via dependencies
- configurable `filter`, `sort`, `page`, and `size` parameters
- class-based and factory-based FastAPI dependencies
- `HTTP 422` translation for pyrsql parse and semantic failures

## Development Principles

- Object-oriented design
- SOLID principles
- Google Python Style Guide
- Strong typing
- ORM-neutral public API

## Documentation

- [Architecture](docs/architecture.md)
- [Usage](docs/usage.md)
- [Reference](docs/reference.md)
- [FastAPI Adapter Usage](docs/usage.md#fastapi-adapter)
- [Google Python Style Guide](docs/pyguide.md)
- [Quality and Tooling](docs/quality.md)
- [Testing](docs/testing.md)
