Coverage of the FastAPI, Pydantic and SQLAlchemy documentation
py2axum is measured on the examples of the official documentation: every app of FastAPI's docs_src/ (FastAPI 0.142.3), replayed with FastAPI's own tests (tests/test_tutorial/) against the Python reference and against the binary, and every Pydantic 2.14.0 documentation block that validates a model, served by a minimal FastAPI route around each model. Responses are compared as the conformance harness compares them: status, headers, body byte for byte, key order included. The SQLAlchemy documentation has its own section. The bench is in corpus/ (how it works).
| Status |
Meaning |
| identical |
every compared response is the same |
| documented |
the responses differ only by a documented difference (the order of a set, an integer beyond 64 bits) |
| differs |
at least one response differs (a bug, unless listed in supported.md) |
| refused |
py2axum refuses the example at translation, with the reason at file:line |
| error |
the translator crashed, or the generated code did not compile or start |
| untested |
translated, but no official test sends it a request |
| docs-only |
its tests only request /openapi.json or /docs, which the binary does not serve |
| nondeterministic |
Python's own responses vary from run to run (random): compared, never counted |
| reference-fails |
the Python reference itself fails (SQLAlchemy section only): listed, never counted |
The OpenAPI schema and documentation pages are not served by the binary (see supported.md): those requests are sent to both servers but not compared. Requests a test sends while it sets app.dependency_overrides are not compared either (only the in-process app sees the override). A JWT in a body is compared claim by claim, its exp/iat/nbf within 2 seconds (the two servers are called one after the other). The share is that of the identical and documented examples among those a test exercises over HTTP (untested, docs-only and nondeterministic ones are counted apart).
Summary
| Corpus |
Examples |
identical |
documented |
differs |
refused |
error |
untested |
docs-only |
nondeterministic |
reference-fails |
Share |
| FastAPI |
339 |
284 |
5 |
0 |
35 |
0 |
11 |
4 |
0 |
0 |
90.6 % |
| Pydantic |
238 |
213 |
3 |
0 |
22 |
0 |
0 |
0 |
0 |
0 |
90.8 % |
Bench run: discover 9.8 s, check 93.4 s, generate 543.6 s, build 740.4 s, replay 558.0 s, total 1945.2 s.
Most frequent refusals
An example may be refused for several reasons; each is counted once per example.
| Construction |
Examples |
| Enum or non-Pydantic type |
13 |
| dependency |
9 |
| type … |
8 |
| module-level statement |
5 |
| Pydantic validator |
5 |
| route option …= |
4 |
| library sqlmodel |
4 |
| app.mount |
4 |
| non-constant value |
3 |
| Annotated metadata |
3 |
| router registration |
2 |
| FastAPI() option |
2 |
| type Json |
2 |
| Python construct |
1 |
| library opentelemetry |
1 |
| library yaml |
1 |
| Field option |
1 |
Tutorial - User Guide
Tutorial - User Guide: refused, differing and failing examples
### Query Parameters and String Validations
- `docs_src/query_params_str_validations/tutorial015_an_py310.py` — refused: Pydantic validator at `docs_src/query_params_str_validations/tutorial015_an_py310.py:24`
### Response Model - Return Type
- `docs_src/response_model/tutorial003_04_py310.py` — refused: type … at `docs_src/response_model/tutorial003_04_py310.py:8`
### SQL (Relational) Databases
- `docs_src/sql_databases/tutorial001_an_py310.py` — refused: library sqlmodel at `docs_src/sql_databases/tutorial001_an_py310.py:22` (+4 more)
- `docs_src/sql_databases/tutorial001_py310.py` — refused: library sqlmodel at `docs_src/sql_databases/tutorial001_py310.py:20` (+4 more)
- `docs_src/sql_databases/tutorial002_an_py310.py` — refused: library sqlmodel at `docs_src/sql_databases/tutorial002_an_py310.py:39` (+5 more)
- `docs_src/sql_databases/tutorial002_py310.py` — refused: library sqlmodel at `docs_src/sql_databases/tutorial002_py310.py:37` (+5 more)
### Static Files
- `docs_src/static_files/tutorial001_py310.py` — refused: app.mount at `docs_src/static_files/tutorial001_py310.py:6`
Advanced User Guide
Advanced User Guide: refused, differing and failing examples
### Stream Data
- `docs_src/stream_data/tutorial002_py310.py` — refused: route option …= at `docs_src/stream_data/tutorial002_py310.py:23` (+4 more)
### Path Operation Advanced Configuration
- `docs_src/path_operation_advanced_configuration/tutorial007_py310.py` — refused: library yaml at `docs_src/path_operation_advanced_configuration/tutorial007_py310.py:25`
### Custom Response - HTML, Stream, File, others
- `docs_src/custom_response/tutorial001_py310.py` — refused: route option …= at `docs_src/custom_response/tutorial001_py310.py:7`
- `docs_src/custom_response/tutorial001b_py310.py` — refused: route option …= at `docs_src/custom_response/tutorial001b_py310.py:7`
- `docs_src/custom_response/tutorial008_py310.py` — refused: Python construct at `docs_src/custom_response/tutorial008_py310.py:12`
- `docs_src/custom_response/tutorial009c_py310.py` — refused: route option …= at `docs_src/custom_response/tutorial009c_py310.py:17`
### Advanced Dependencies
- `docs_src/dependencies/tutorial013_an_py310.py` — refused: dependency at `docs_src/dependencies/tutorial013_an_py310.py:21`
- `docs_src/dependencies/tutorial014_an_py310.py` — refused: dependency at `docs_src/dependencies/tutorial014_an_py310.py:21`
### OAuth2 scopes
- `docs_src/security/tutorial005_an_py310.py` — refused: type … at `docs_src/security/tutorial005_an_py310.py:109` (+2 more)
- `docs_src/security/tutorial005_py310.py` — refused: type … at `docs_src/security/tutorial005_py310.py:108` (+2 more)
### Using Dataclasses
- `docs_src/dataclasses_/tutorial001_py310.py` — refused: Enum or non-Pydantic type at `docs_src/dataclasses_/tutorial001_py310.py:18`
- `docs_src/dataclasses_/tutorial002_py310.py` — refused: Enum or non-Pydantic type at `docs_src/dataclasses_/tutorial002_py310.py:18`
- `docs_src/dataclasses_/tutorial003_py310.py` — refused: Enum or non-Pydantic type at `docs_src/dataclasses_/tutorial003_py310.py:27` (+1 more)
### Sub Applications - Mounts
- `docs_src/sub_applications/tutorial001_py310.py` — refused: app.mount at `docs_src/sub_applications/tutorial001_py310.py:19`
### Templates
- `docs_src/templates/tutorial001_py310.py` — refused: app.mount at `docs_src/templates/tutorial001_py310.py:8`
### OpenTelemetry
- `docs_src/opentelemetry/tutorial002_py310.py` — refused: FastAPI() option at `docs_src/opentelemetry/tutorial002_py310.py:8` (+1 more)
- `docs_src/opentelemetry/tutorial003_py310.py` — refused: FastAPI() option at `docs_src/opentelemetry/tutorial003_py310.py:3`
### Including WSGI - Flask, Django, others
- `docs_src/wsgi/tutorial001_py310.py` — refused: app.mount at `docs_src/wsgi/tutorial001_py310.py:23`
How To - Recipes
How To - Recipes: refused, differing and failing examples
### GraphQL
- `docs_src/graphql_/tutorial001_py310.py` — refused: router registration at `docs_src/graphql_/tutorial001_py310.py:25`
### Custom Request and APIRoute class
- `docs_src/custom_request_and_route/tutorial001_an_py310.py` — refused: module-level statement at `docs_src/custom_request_and_route/tutorial001_an_py310.py:31`
- `docs_src/custom_request_and_route/tutorial001_py310.py` — refused: module-level statement at `docs_src/custom_request_and_route/tutorial001_py310.py:30`
- `docs_src/custom_request_and_route/tutorial002_an_py310.py` — refused: module-level statement at `docs_src/custom_request_and_route/tutorial002_an_py310.py:25`
- `docs_src/custom_request_and_route/tutorial002_py310.py` — refused: module-level statement at `docs_src/custom_request_and_route/tutorial002_py310.py:24`
- `docs_src/custom_request_and_route/tutorial003_py310.py` — refused: router registration at `docs_src/custom_request_and_route/tutorial003_py310.py:26`
### Extending OpenAPI
- `docs_src/extending_openapi/tutorial001_py310.py` — refused: module-level statement at `docs_src/extending_openapi/tutorial001_py310.py:29`
### Custom Docs UI Static Assets (Self-Hosting)
- `docs_src/custom_docs_ui/tutorial001_py310.py` — refused: non-constant value at `docs_src/custom_docs_ui/tutorial001_py310.py:22`
- `docs_src/custom_docs_ui/tutorial002_py310.py` — refused: non-constant value at `docs_src/custom_docs_ui/tutorial002_py310.py:25`
### Use Old 403 Authentication Error Status Codes
- `docs_src/authentication_error_status_code/tutorial001_an_py310.py` — refused: dependency at `docs_src/authentication_error_status_code/tutorial001_an_py310.py:20`
Pydantic
Pydantic: refused, differing and failing examples
### standard_library_types
- `docs/api/standard_library_types.md:1415` — refused: type … at `docs/api/standard_library_types.md:1421`
- `docs/api/standard_library_types.md:512` — refused: non-constant value at `docs/api/standard_library_types.md:519`
### config
- `docs/concepts/config.md:236` — refused: Enum or non-Pydantic type at `docs/concepts/config.md:253`
### json_schema
- `docs/concepts/json_schema.md:646` — refused: Enum or non-Pydantic type at `docs/concepts/json_schema.md:695`
- `docs/concepts/json_schema.md:724` — refused: Annotated metadata at `docs/concepts/json_schema.md:761`
- `docs/concepts/json_schema.md:792` — refused: Annotated metadata at `docs/concepts/json_schema.md:812`
### normal copy gives the same object reference for bar:
- `docs/concepts/models.md:1420` — refused: Enum or non-Pydantic type at `docs/concepts/models.md (generated route, line 37)` (+1 more)
- `docs/concepts/models.md:1681` — refused: Field option at `docs/concepts/models.md:1689`
### We now create an `Annotated` wrapper that we'll use as the annotation for fields on `BaseModel`s, etc.
- `docs/concepts/types.md:518` — refused: Pydantic validator at `docs/concepts/types.md:539`
- `docs/concepts/types.md:557` — refused: Annotated metadata at `docs/concepts/types.md:634`
- `docs/concepts/types.md:695` — refused: Pydantic validator at `docs/concepts/types.md:705`
- `docs/concepts/types.md:746` — refused: type … at `docs/concepts/types.md:834`
- `docs/concepts/types.md:892` — refused: type … at `docs/concepts/types.md:946`
- `docs/concepts/types.md:972` — refused: Enum or non-Pydantic type at `docs/concepts/types.md:1003`
### this works, though
- `docs/errors/usage_errors.md:10` — refused: Enum or non-Pydantic type at `docs/errors/usage_errors.md:18`
- `docs/errors/usage_errors.md:403` — refused: Pydantic validator at `docs/errors/usage_errors.md:424`
### from Python
- `docs/errors/validation_errors.md:1261` — refused: type … at `docs/errors/validation_errors.md:1267`
- `docs/errors/validation_errors.md:1306` — refused: type Json at `docs/errors/validation_errors.md:1310`
- `docs/errors/validation_errors.md:1325` — refused: type Json at `docs/errors/validation_errors.md:1329`
- `docs/errors/validation_errors.md:1664` — refused: Enum or non-Pydantic type at `docs/errors/validation_errors.md:1675`
- `docs/errors/validation_errors.md:182` — refused: type … at `docs/errors/validation_errors.md:189`
### V1
- `docs/migration.md:416` — refused: Pydantic validator at `docs/migration.md:424`
SQLAlchemy
The SQLAlchemy 2.1.4 documentation is run as SQLAlchemy runs it, as doctests (the units of test/base/test_tutorials.py: the Unified Tutorial, the ORM Quick Start, the ORM Querying Guide, large collections, asyncio; then other ORM, extension and Core pages, as written). Each code block that executes SQL is an example: a minimal FastAPI route runs it, preceded by the earlier statements of the page it depends on, in a session of its own, and returns what the block prints and displays. A block that only shows a SELECT for its SQL text is executed too (rows returned). Each route exists twice: sync (a Session dependency) and async (an AsyncSession with expire_on_commit=False, await on its methods). PostgreSQL, the database put back to the page's seed data before every request; the Python reference and the binary are compared as above. reference-fails: the Python reference fails on the route (mostly a lazy load under AsyncSession, which raises MissingGreenlet).
The examples are in three scopes. ORM: queries a route runs with the ORM (select, joins, aggregates, CTE, subqueries, insert/update/delete, relationships, loader options, types, extensions); its share is the one py2axum 1.0 requires (90 %). Core: the Core chapters of the Unified Tutorial (Table, text()). Outside API use: a block about DDL, reflection, events or the pool, or about a session's state across statements (identity map, expunge, pending sets), the way a script or a long-lived session works. Core and outside are measured and published, without a threshold.
| Scope / variant |
Examples |
identical |
documented |
differs |
refused |
error |
untested |
docs-only |
nondeterministic |
reference-fails |
Share |
| SQLAlchemy ORM (1.0 threshold: 90 %) |
276 |
243 |
0 |
0 |
16 |
0 |
0 |
0 |
2 |
15 |
93.8 % |
| SQLAlchemy Core (aimed at for 1.1) |
126 |
110 |
0 |
0 |
14 |
0 |
0 |
0 |
2 |
0 |
88.7 % |
| outside API use (measured only) |
78 |
32 |
0 |
0 |
44 |
0 |
0 |
0 |
0 |
2 |
42.1 % |
| sync |
239 |
201 |
0 |
0 |
36 |
0 |
0 |
0 |
2 |
0 |
84.8 % |
| async |
241 |
184 |
0 |
0 |
38 |
0 |
0 |
0 |
2 |
17 |
82.9 % |
| all of SQLAlchemy |
480 |
385 |
0 |
0 |
74 |
0 |
0 |
0 |
4 |
17 |
83.9 % |
Not in the corpus: 22 examples (both variants) the bench cannot run as written: Python fails on PostgreSQL (22) (SQLite-only SQL, a statement of the page that fails before them).
SQLAlchemy: most frequent refusals
| Construction |
Examples |
| sqlalchemy.orm.aliased(): aliased(Model) or aliased(Model, name=...) only |
14 |
sqlalchemy.union_all() |
14 |
| method .cte() not in the runtime |
4 |
| method .over() not in the runtime |
4 |
| sqlalchemy.orm.with_polymorphic(): with_polymorphic(Base, [Sub, ...] or "*") only: aliased=, flat=, |
4 |
| @dataclass(eq=) is not supported (CaseInsensitiveWord) |
4 |
sqlalchemy.literal_column() |
2 |
| method .correlate() not in the runtime |
2 |
| sqlalchemy.orm.joinedload(): joinedload() takes exactly one positional argument here |
2 |
sqlalchemy.orm.contains_eager() |
2 |
sqlalchemy.orm.Bundle() |
2 |
| method .from_statement() not in the runtime |
2 |
| Model.table.join: the Core use of a mapped class's table is not supported (introspection only: n |
2 |
| method .yield_per() not in the runtime |
2 |
| method .partitions() not in the runtime |
2 |
sqlalchemy.orm.with_expression() |
2 |
conn.run_sync(fn): only run_sync(Base.metadata.create_all) is supported (its DDL is compiled at tr |
2 |
| option primaryjoin= is not supported |
2 |
| annotate with Mapped[...] |
2 |
| @word_insensitive.inplace.comparator is not supported (a hybrid's expression and setter only) |
2 |
| @dataclass(eq=) is not supported (Point) |
2 |
SQLAlchemy: per page
SQLAlchemy: refused, differing and failing examples
#### Using SELECT Statements (`doc/build/tutorial/data_select.rst`)
- `doc/build/tutorial/data_select.rst:302` async — refused: `sqlalchemy.literal_column()` at `doc/build/tutorial/data_select.rst:303`
- `doc/build/tutorial/data_select.rst:302` sync — refused: `sqlalchemy.literal_column()` at `doc/build/tutorial/data_select.rst:303`
- `doc/build/tutorial/data_select.rst:846` async — refused: method .cte() not in the runtime at `doc/build/tutorial/data_select.rst:846`
- `doc/build/tutorial/data_select.rst:846` sync — refused: method .cte() not in the runtime at `doc/build/tutorial/data_select.rst:846`
- `doc/build/tutorial/data_select.rst:905` async — refused: sqlalchemy.orm.aliased(): aliased(Model) or aliased(Model, name=...) only at `doc/build/tutorial/data_select.rst:906`
- `doc/build/tutorial/data_select.rst:905` sync — refused: sqlalchemy.orm.aliased(): aliased(Model) or aliased(Model, name=...) only at `doc/build/tutorial/data_select.rst:906`
- `doc/build/tutorial/data_select.rst:934` async — refused: method .cte() not in the runtime at `doc/build/tutorial/data_select.rst:934`
- `doc/build/tutorial/data_select.rst:934` sync — refused: method .cte() not in the runtime at `doc/build/tutorial/data_select.rst:934`
- `doc/build/tutorial/data_select.rst:1055` async — refused: method .correlate() not in the runtime at `doc/build/tutorial/data_select.rst:1044`
- `doc/build/tutorial/data_select.rst:1055` sync — refused: method .correlate() not in the runtime at `doc/build/tutorial/data_select.rst:1044`
- `doc/build/tutorial/data_select.rst:1166` async — refused: `sqlalchemy.union_all()` at `doc/build/tutorial/data_select.rst:1169`
- `doc/build/tutorial/data_select.rst:1166` sync — refused: `sqlalchemy.union_all()` at `doc/build/tutorial/data_select.rst:1169`
- `doc/build/tutorial/data_select.rst:1189` async — refused: `sqlalchemy.union_all()` at `doc/build/tutorial/data_select.rst:1169`
- `doc/build/tutorial/data_select.rst:1189` sync — refused: `sqlalchemy.union_all()` at `doc/build/tutorial/data_select.rst:1169`
- `doc/build/tutorial/data_select.rst:1239` async — refused: `sqlalchemy.union_all()` at `doc/build/tutorial/data_select.rst:1230`
- `doc/build/tutorial/data_select.rst:1239` sync — refused: `sqlalchemy.union_all()` at `doc/build/tutorial/data_select.rst:1230`
- `doc/build/tutorial/data_select.rst:1265` async — refused: `sqlalchemy.union_all()` at `doc/build/tutorial/data_select.rst:1230`
- `doc/build/tutorial/data_select.rst:1265` sync — refused: `sqlalchemy.union_all()` at `doc/build/tutorial/data_select.rst:1230`
- `doc/build/tutorial/data_select.rst:1596` async — refused: method .over() not in the runtime at `doc/build/tutorial/data_select.rst:1596`
- `doc/build/tutorial/data_select.rst:1596` sync — refused: method .over() not in the runtime at `doc/build/tutorial/data_select.rst:1596`
- `doc/build/tutorial/data_select.rst:1622` async — refused: method .over() not in the runtime at `doc/build/tutorial/data_select.rst:1622`
- `doc/build/tutorial/data_select.rst:1622` sync — refused: method .over() not in the runtime at `doc/build/tutorial/data_select.rst:1622`
#### Data Manipulation with the ORM (`doc/build/tutorial/orm_data_manipulation.rst`)
- `doc/build/tutorial/orm_data_manipulation.rst:464` async — the Python reference fails: `sqlalchemy.exc.StatementError: (sqlalchemy.exc.MissingGreenlet) greenlet_spawn has not been called; can't call await_() here. Was IO attemp…`
- `doc/build/tutorial/orm_data_manipulation.rst:545` async — the Python reference fails: `sqlalchemy.exc.StatementError: (sqlalchemy.exc.MissingGreenlet) greenlet_spawn has not been called; can't call await_() here. Was IO attemp…`
#### Working with ORM Related Objects (`doc/build/tutorial/orm_related_objects.rst`)
- `doc/build/tutorial/orm_related_objects.rst:243` async — the Python reference fails: `sqlalchemy.exc.StatementError: (sqlalchemy.exc.MissingGreenlet) greenlet_spawn has not been called; can't call await_() here. Was IO attemp…`
- `doc/build/tutorial/orm_related_objects.rst:490` async — refused: sqlalchemy.orm.joinedload(): joinedload() takes exactly one positional argument here at `doc/build/tutorial/orm_related_objects.rst:491`
- `doc/build/tutorial/orm_related_objects.rst:490` sync — refused: sqlalchemy.orm.joinedload(): joinedload() takes exactly one positional argument here at `doc/build/tutorial/orm_related_objects.rst:491`
- `doc/build/tutorial/orm_related_objects.rst:559` async — refused: `sqlalchemy.orm.contains_eager()` at `doc/build/tutorial/orm_related_objects.rst:560`
- `doc/build/tutorial/orm_related_objects.rst:559` sync — refused: `sqlalchemy.orm.contains_eager()` at `doc/build/tutorial/orm_related_objects.rst:560`
#### ORM Quick Start (`doc/build/orm/quickstart.rst`)
- `doc/build/orm/quickstart.rst:335` async — the Python reference fails: `sqlalchemy.exc.StatementError: (sqlalchemy.exc.MissingGreenlet) greenlet_spawn has not been called; can't call await_() here. Was IO attemp…`
- `doc/build/orm/quickstart.rst:381` async — the Python reference fails: `sqlalchemy.exc.StatementError: (sqlalchemy.exc.MissingGreenlet) greenlet_spawn has not been called; can't call await_() here. Was IO attemp…`
- `doc/build/orm/quickstart.rst:405` async — the Python reference fails: `sqlalchemy.exc.StatementError: (sqlalchemy.exc.MissingGreenlet) greenlet_spawn has not been called; can't call await_() here. Was IO attemp…`
- `doc/build/orm/quickstart.rst:418` async — the Python reference fails: `sqlalchemy.exc.StatementError: (sqlalchemy.exc.MissingGreenlet) greenlet_spawn has not been called; can't call await_() here. Was IO attemp…`
- `doc/build/orm/quickstart.rst:440` async — the Python reference fails: `sqlalchemy.exc.StatementError: (sqlalchemy.exc.MissingGreenlet) greenlet_spawn has not been called; can't call await_() here. Was IO attemp…`
#### Writing SELECT statements for ORM Mapped Classes (`doc/build/orm/queryguide/select.rst`)
- `doc/build/orm/queryguide/select.rst:214` async — refused: `sqlalchemy.orm.Bundle()` at `doc/build/orm/queryguide/select.rst:215`
- `doc/build/orm/queryguide/select.rst:214` sync — refused: `sqlalchemy.orm.Bundle()` at `doc/build/orm/queryguide/select.rst:215`
- `doc/build/orm/queryguide/select.rst:325` async — refused: method .from_statement() not in the runtime at `doc/build/orm/queryguide/select.rst:325`
- `doc/build/orm/queryguide/select.rst:325` sync — refused: method .from_statement() not in the runtime at `doc/build/orm/queryguide/select.rst:325`
- `doc/build/orm/queryguide/select.rst:341` async — refused: sqlalchemy.orm.aliased(): aliased(Model) or aliased(Model, name=...) only at `doc/build/orm/queryguide/select.rst:341`
- `doc/build/orm/queryguide/select.rst:341` sync — refused: sqlalchemy.orm.aliased(): aliased(Model) or aliased(Model, name=...) only at `doc/build/orm/queryguide/select.rst:341`
- `doc/build/orm/queryguide/select.rst:373` async — refused: sqlalchemy.orm.aliased(): aliased(Model) or aliased(Model, name=...) only at `doc/build/orm/queryguide/select.rst:375`
- `doc/build/orm/queryguide/select.rst:373` sync — refused: sqlalchemy.orm.aliased(): aliased(Model) or aliased(Model, name=...) only at `doc/build/orm/queryguide/select.rst:375`
- `doc/build/orm/queryguide/select.rst:393` async — refused: sqlalchemy.orm.aliased(): aliased(Model) or aliased(Model, name=...) only at `doc/build/orm/queryguide/select.rst:400`
- `doc/build/orm/queryguide/select.rst:393` sync — refused: sqlalchemy.orm.aliased(): aliased(Model) or aliased(Model, name=...) only at `doc/build/orm/queryguide/select.rst:400`
- `doc/build/orm/queryguide/select.rst:431` async — refused: `sqlalchemy.union_all()` at `doc/build/orm/queryguide/select.rst:432`
- `doc/build/orm/queryguide/select.rst:431` sync — refused: `sqlalchemy.union_all()` at `doc/build/orm/queryguide/select.rst:432`
- `doc/build/orm/queryguide/select.rst:457` async — refused: `sqlalchemy.union_all()` at `doc/build/orm/queryguide/select.rst:457`
- `doc/build/orm/queryguide/select.rst:457` sync — refused: `sqlalchemy.union_all()` at `doc/build/orm/queryguide/select.rst:457`
- `doc/build/orm/queryguide/select.rst:774` async — refused: sqlalchemy.orm.aliased(): aliased(Model) or aliased(Model, name=...) only at `doc/build/orm/queryguide/select.rst:774`
- `doc/build/orm/queryguide/select.rst:774` sync — refused: sqlalchemy.orm.aliased(): aliased(Model) or aliased(Model, name=...) only at `doc/build/orm/queryguide/select.rst:774`
- `doc/build/orm/queryguide/select.rst:801` async — refused: sqlalchemy.orm.aliased(): aliased(Model) or aliased(Model, name=...) only at `doc/build/orm/queryguide/select.rst:801`
- `doc/build/orm/queryguide/select.rst:801` sync — refused: sqlalchemy.orm.aliased(): aliased(Model) or aliased(Model, name=...) only at `doc/build/orm/queryguide/select.rst:801`
- `doc/build/orm/queryguide/select.rst:845` async — refused: sqlalchemy.orm.aliased(): aliased(Model) or aliased(Model, name=...) only at `doc/build/orm/queryguide/select.rst:838`
- `doc/build/orm/queryguide/select.rst:845` sync — refused: sqlalchemy.orm.aliased(): aliased(Model) or aliased(Model, name=...) only at `doc/build/orm/queryguide/select.rst:838`
- `doc/build/orm/queryguide/select.rst:917` async — refused: Model.__table__.join: the Core use of a mapped class's table is not supported (introspection only: n at `doc/build/orm/queryguide/select.rst:922`
- `doc/build/orm/queryguide/select.rst:917` sync — refused: Model.__table__.join: the Core use of a mapped class's table is not supported (introspection only: n at `doc/build/orm/queryguide/select.rst:922`
#### ORM API Features for Querying (`doc/build/orm/queryguide/api.rst`)
- `doc/build/orm/queryguide/api.rst:211` async — the Python reference fails: `sqlalchemy.ext.asyncio.exc.AsyncMethodRequired: Can't use the AsyncSession.execute() method with a server-side cursor. Use the AsyncSession…`
- `doc/build/orm/queryguide/api.rst:229` async — refused: method .yield_per() not in the runtime at `doc/build/orm/queryguide/api.rst:230`
- `doc/build/orm/queryguide/api.rst:229` sync — refused: method .yield_per() not in the runtime at `doc/build/orm/queryguide/api.rst:230`
- `doc/build/orm/queryguide/api.rst:245` async — refused: method .partitions() not in the runtime at `doc/build/orm/queryguide/api.rst:246`
- `doc/build/orm/queryguide/api.rst:245` sync — refused: method .partitions() not in the runtime at `doc/build/orm/queryguide/api.rst:246`
#### Writing SELECT statements for Inheritance Mappings (`doc/build/orm/queryguide/inheritance.rst`)
- `doc/build/orm/queryguide/inheritance.rst:90` async — the Python reference fails: `sqlalchemy.exc.StatementError: (sqlalchemy.exc.MissingGreenlet) greenlet_spawn has not been called; can't call await_() here. Was IO attemp…`
- `doc/build/orm/queryguide/inheritance.rst:528` async — refused: sqlalchemy.orm.with_polymorphic(): with_polymorphic(Base, [Sub, ...] or "*") only: aliased=, flat=, at `doc/build/orm/queryguide/inheritance.rst:528`
- `doc/build/orm/queryguide/inheritance.rst:528` sync — refused: sqlalchemy.orm.with_polymorphic(): with_polymorphic(Base, [Sub, ...] or "*") only: aliased=, flat=, at `doc/build/orm/queryguide/inheritance.rst:528`
- `doc/build/orm/queryguide/inheritance.rst:572` async — refused: sqlalchemy.orm.with_polymorphic(): with_polymorphic(Base, [Sub, ...] or "*") only: aliased=, flat=, at `doc/build/orm/queryguide/inheritance.rst:572`
- `doc/build/orm/queryguide/inheritance.rst:572` sync — refused: sqlalchemy.orm.with_polymorphic(): with_polymorphic(Base, [Sub, ...] or "*") only: aliased=, flat=, at `doc/build/orm/queryguide/inheritance.rst:572`
- `doc/build/orm/queryguide/inheritance.rst:947` async — the Python reference fails: `sqlalchemy.exc.StatementError: (sqlalchemy.exc.MissingGreenlet) greenlet_spawn has not been called; can't call await_() here. Was IO attemp…`
#### Column Loading Options (`doc/build/orm/queryguide/columns.rst`)
- `doc/build/orm/queryguide/columns.rst:89` async — the Python reference fails: `sqlalchemy.exc.StatementError: (sqlalchemy.exc.MissingGreenlet) greenlet_spawn has not been called; can't call await_() here. Was IO attemp…`
- `doc/build/orm/queryguide/columns.rst:129` async — the Python reference fails: `sqlalchemy.exc.StatementError: (sqlalchemy.exc.MissingGreenlet) greenlet_spawn has not been called; can't call await_() here. Was IO attemp…`
- `doc/build/orm/queryguide/columns.rst:180` async — the Python reference fails: `sqlalchemy.exc.StatementError: (sqlalchemy.exc.MissingGreenlet) greenlet_spawn has not been called; can't call await_() here. Was IO attemp…`
- `doc/build/orm/queryguide/columns.rst:225` async — the Python reference fails: `sqlalchemy.exc.StatementError: (sqlalchemy.exc.MissingGreenlet) greenlet_spawn has not been called; can't call await_() here. Was IO attemp…`
- `doc/build/orm/queryguide/columns.rst:356` async — the Python reference fails: `sqlalchemy.exc.StatementError: (sqlalchemy.exc.MissingGreenlet) greenlet_spawn has not been called; can't call await_() here. Was IO attemp…`
- `doc/build/orm/queryguide/columns.rst:507` async — the Python reference fails: `sqlalchemy.exc.StatementError: (sqlalchemy.exc.MissingGreenlet) greenlet_spawn has not been called; can't call await_() here. Was IO attemp…`
- `doc/build/orm/queryguide/columns.rst:723` async — refused: `sqlalchemy.orm.with_expression()` at `doc/build/orm/queryguide/columns.rst:724`
- `doc/build/orm/queryguide/columns.rst:723` sync — refused: `sqlalchemy.orm.with_expression()` at `doc/build/orm/queryguide/columns.rst:724`
- `doc/build/orm/queryguide/columns.rst:857` async — refused: `sqlalchemy.union_all()` at `doc/build/orm/queryguide/columns.rst:868`
- `doc/build/orm/queryguide/columns.rst:857` sync — refused: `sqlalchemy.union_all()` at `doc/build/orm/queryguide/columns.rst:868`
#### Asynchronous I/O (asyncio) (`doc/build/orm/extensions/asyncio.rst`)
- `doc/build/orm/extensions/asyncio.rst:63` async — refused: conn.run_sync(fn): only `run_sync(Base.metadata.create_all)` is supported (its DDL is compiled at tr at `doc/build/orm/extensions/asyncio.rst:76`
- `doc/build/orm/extensions/asyncio.rst:170` async — refused: conn.run_sync(fn): only `run_sync(Base.metadata.create_all)` is supported (its DDL is compiled at tr at `doc/build/orm/extensions/asyncio.rst:76`
#### Special Relationship Persistence Patterns (`doc/build/orm/relationship_persistence.rst`)
- `doc/build/orm/relationship_persistence.rst:105` async — refused: option primaryjoin= is not supported at `doc/build/orm/relationship_persistence.rst:92`
- `doc/build/orm/relationship_persistence.rst:105` sync — refused: option primaryjoin= is not supported at `doc/build/orm/relationship_persistence.rst:92`
#### Association Proxy (`doc/build/orm/extensions/associationproxy.rst`)
- `doc/build/orm/extensions/associationproxy.rst:592` async — refused: annotate with Mapped[...] at `doc/build/orm/extensions/associationproxy.rst:548`
- `doc/build/orm/extensions/associationproxy.rst:592` sync — refused: annotate with Mapped[...] at `doc/build/orm/extensions/associationproxy.rst:548`
#### Hybrid Attributes (`lib/sqlalchemy/ext/hybrid.py`)
- `lib/sqlalchemy/ext/hybrid.py:735` async — refused: @word_insensitive.inplace.comparator is not supported (a hybrid's expression and setter only) at `lib/sqlalchemy/ext/hybrid.py:725`
- `lib/sqlalchemy/ext/hybrid.py:735` sync — refused: @word_insensitive.inplace.comparator is not supported (a hybrid's expression and setter only) at `lib/sqlalchemy/ext/hybrid.py:725`
- `lib/sqlalchemy/ext/hybrid.py:922` async — refused: @dataclass(eq=) is not supported (CaseInsensitiveWord) at `lib/sqlalchemy/ext/hybrid.py:885`
- `lib/sqlalchemy/ext/hybrid.py:922` sync — refused: @dataclass(eq=) is not supported (CaseInsensitiveWord) at `lib/sqlalchemy/ext/hybrid.py:885`
- `lib/sqlalchemy/ext/hybrid.py:934` async — refused: @dataclass(eq=) is not supported (CaseInsensitiveWord) at `lib/sqlalchemy/ext/hybrid.py:885`
- `lib/sqlalchemy/ext/hybrid.py:934` sync — refused: @dataclass(eq=) is not supported (CaseInsensitiveWord) at `lib/sqlalchemy/ext/hybrid.py:885`
- `lib/sqlalchemy/ext/hybrid.py:1052` async — refused: @dataclass(eq=) is not supported (Point) at `lib/sqlalchemy/ext/hybrid.py:990`
- `lib/sqlalchemy/ext/hybrid.py:1052` sync — refused: @dataclass(eq=) is not supported (Point) at `lib/sqlalchemy/ext/hybrid.py:990`