You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
[PY] Distinguish FFI input and output annotations (#621)
## Summary
- Add separate input/output rendering APIs for `TypeSchema` so stubgen
can widen callable and constructor inputs without weakening returned or
field types.
- Add a `__ffi_convert_type_schema__` TypeAttr hook for object
conversions and wire `py_class`/`c_class` dataclass transform converter
metadata.
- Generate `type_schema` metadata for Python-defined `@method`
TypeMethods so reflection-driven stubgen can render their signatures.
- Cover container asymmetry, object convert schema recursion, stubgen
signatures, partial type maps, `@method` metadata, and dataclass
metadata with regression tests.
- Update the PR CI workflow to avoid Apache-disallowed third-party setup
actions and run pre-commit without syncing the project during lint.
## Validation
- pre-commit hooks during commits, including ruff, ty, clang-format,
cython-lint, CMake lint/format, and workflow YAML checks
- `python -m pytest
tests/python/test_stubgen.py::test_py_class_method_metadata_renders_stub_signature
tests/python/test_typed_method.py -q`
- `python -m pytest tests/python/test_stubgen.py -q`
- `CUDA_VISIBLE_DEVICES="" python -m pytest tests/python -q` (`2322
passed, 18 skipped, 2 xfailed`)
- Manual output dumped under
`tmp/2026-06-14-update-ffi/manual_check.out`
- GitHub CI is green for lint, docs, Ubuntu, Ubuntu ARM, macOS, and
Windows
0 commit comments