diff --git a/PostPyro_documentation.md b/PostPyro_documentation.md index 2a4be3c..feb2f2a 100644 --- a/PostPyro_documentation.md +++ b/PostPyro_documentation.md @@ -8,7 +8,7 @@ PostPyro is an async PostgreSQL driver for Python built with PyO3/`pyo3-asyncio` This is the full reference - every method, type, and exception. If you just want a query running, [`README.md`](README.md) has a shorter quick start. -PostPyro runs `sqlx`'s binary protocol under PyO3, so every `await` releases the GIL for the duration of the wait instead of blocking the interpreter. Rust's ownership system rules out the memory-safety bugs (leaks, segfaults) that hand-rolled C bindings are prone to. TLS is available through `sqlx`'s `rustls` backend, and errors surface through a DB-API 2.0-flavored exception hierarchy rather than raw `sqlx` errors. The type system covers booleans, integers, floats, `NUMERIC`, text, dates/times, UUIDs, and JSON/JSONB automatically - see the [type table](#supported-type-conversions) for exactly what's decodable today (arrays and network types aren't yet). +PostPyro runs `sqlx`'s binary protocol under PyO3, so every `await` releases the GIL for the duration of the wait instead of blocking the interpreter. Rust's ownership system rules out the memory-safety bugs (leaks, segfaults) that hand-rolled C bindings are prone to. TLS is available through `sqlx`'s `rustls` backend, and errors surface through a DB-API 2.0-flavored exception hierarchy rather than raw `sqlx` errors. The type system covers booleans, integers, floats, `NUMERIC`, text, dates/times, UUIDs, JSON/JSONB, `BYTEA`, and bool/int/float/text arrays automatically - see the [type table](#supported-type-conversions) for exactly what's decodable today (network types and custom/enum types aren't yet). ## Installation diff --git a/README.md b/README.md index 8ec8608..54be1a5 100644 --- a/README.md +++ b/README.md @@ -6,7 +6,7 @@ [![Python versions](https://img.shields.io/pypi/pyversions/PostPyro)](https://pypi.org/project/PostPyro/) [![License](https://img.shields.io/pypi/l/PostPyro)](https://github.com/magi8101/PostPyro/blob/main/LICENSE) -PostPyro wraps `sqlx` in a `PyO3`/`pyo3-asyncio` binding: every I/O method is `async def` and releases the GIL while waiting on Postgres, errors come back as a DB-API 2.0-flavored exception hierarchy, and connections can use `sqlx`'s `rustls` backend for TLS. +PostPyro wraps `sqlx` in a `PyO3`/`pyo3-asyncio` binding: every I/O method is `async def` and releases the GIL while waiting on Postgres, errors come back as a DB-API 2.0-flavored exception hierarchy, and connections can use `sqlx`'s `rustls` backend for TLS. Parameters bind natively - `bool`/`int`/`float`/`str`/`None`, `datetime`/`date`/`time`, `uuid.UUID`, `decimal.Decimal`, `dict`, homogeneous `list`/`tuple` (as a real Postgres array), and `bytes`/`bytearray`/`memoryview` - with no manual `$1::type` casting in the SQL text. > **Status: Beta.** PostPyro is mid-rewrite from a synchronous driver to a fully async one. The API described below is the real, current surface (`python/PostPyro/__init__.pyi`) - not a roadmap. Expect breaking changes before a 1.0/stable release. @@ -77,6 +77,8 @@ docker run -d --name postgres-test -e POSTGRES_PASSWORD=postgres -p 5433:5432 po python tests/pool_and_row.py python tests/transaction.py python tests/type_conversion_bugs.py +python tests/native_binding.py +python tests/native_array_binding.py ``` ## License