0.19.a2
Pre-release0.19.a2 (2026-07-27)
Pre-release (alpha).
0.19.a2is published for early testing ahead of the0.19.0stable release. APIs may still change.
⚠️ Breaking Changes
- Build custom-operation leaf fields per query (#448)
-
feat!: build custom-operation leaf fields on access
- fix: import custom scalars used in custom-operation arguments
enable_custom_operationswith a scalar mapped to a non-builtin type
generated acustom_fields.pythat raised on import:NameError: name 'Decimal' is not definedArgumentGeneratorrecords the custom scalars it meets and only turns them
into imports whenadd_custom_scalar_imports()runs. The only place that
copied those imports into the module lived in_parse_object_type_definitions,
which executes in__init__- beforegenerate()calls
add_custom_scalar_imports(). The scalar imports were appended to a list
nobody read again.Copy the argument generator's imports once, in
generate(), after the scalar
imports are registered. This also drops the duplicateImportFromnodes the
old per-field copy accumulated.custom_operation.pyhad the same shape, which is whycustom_queries.py
was missingfrom uuid import UUID.Only schemas with a custom scalar in a field-argument or operation-argument
position are affected; output and input-object positions always emitted the
import. The existingcustom_query_builderandcustom_scalarsfixtures
cover the two features separately and never their combination, so add
custom_query_builder_scalars, which exercises a custom scalar in all three
argument positions. Its test imports the generated modules rather than
diffing their source - a source diff cannot see a missing import.- docs: tighten custom-operation field comments
✨ New Features
- Add multipart_uploads setting to disable file upload support (by @Minister944)
- Multipart upload opt in AR-6 (by @Minister944 in #437)
- Allow to use non-httpx HTTP clients in default clients [AR-1] (#440) (by @Kwaidan00 in #440)
- Add schema_paths for loading schema from local paths and installed packages AR-3 (#439) (by @Minister944 in #439)
- Allow to use custom client for fetching remote schema [AR-2] (#444) (by @Kwaidan00 in #444)
- Refactor documentation AR-8 (#446) (by @Minister944 in #446)
- Defer model build (#447) (by @DamianCzajkowski in #447)
- Alias generator (#449) (by @DamianCzajkowski in #449)
- Lazy imports (#450) (by @DamianCzajkowski in #450)
🐛 Bug Fixes
- Align ty suppressions for GraphQL and optional imports (#427) (by @DamianCzajkowski in #427)
- Use explicit UTF-8 encoding for ruff format subprocess (#422) (#428) (by @DamianCzajkowski in #428)
- Wrap long lines to satisfy ruff E501 (by @Minister944)
- Sanitize python keywords in enum default values (#451) (by @DamianCzajkowski in #451)
- Pass the config dict to custom remote schema http client (#453) (by @Kwaidan00 in #453)
📚 Documentation
- Document multipart_uploads setting in README and configuration guide (by @Minister944)
- Consolidate plugin docs into docs site AR-7 (#441) (by @Minister944 in #441)
🛠️ Build System
- Add git-cliff for automated changelog and release notes (#421) (by @DamianCzajkowski in #421)
- Bump starlette from 1.0.0 to 1.3.1 (#435) (by @dependabot[bot] in #435)
Full Changelog: 0.18.0...0.19.a2