[gdal-dev] GSoC Proposal Idea: Strengthening GDAL Python Stub Generation via Runtime Consistency Validation

Even Rouault even.rouault at spatialys.com
Tue Mar 10 01:59:34 PDT 2026


Sionigdha,

Thanks for your proposal. We've discussed among several maintainers, but 
no one appears to be available to mentor a GSoC project.

Even

Le 09/03/2026 à 16:21, Sionigdha Sadhukhan via gdal-dev a écrit :
>
> I also wanted to ask is GDAL planning to participate under the OSGeo 
> GSoC 2026 umbrella this year? I noticed there isn't a GDAL-specific 
> ideas page yet and wanted to check before finalizing my proposal. I 
> have also shared my introduction and proposal direction on the OSGeo 
> Discourse here: 
> https://discourse.osgeo.org/t/introduction-sionigdha-sadhukhan-gsoc-2026-proposal-gdal-python-stub-hardening-runtime-validation-type-coverage/152757 
> <https://discourse.osgeo.org/t/introduction-sionigdha-sadhukhan-gsoc-2026-proposal-gdal-python-stub-hardening-runtime-validation-type-coverage/152757>
>
> If any maintainer would be open to mentoring or giving feedback on the 
> proposal draft, I would be very grateful.
>
>
> On Tue, 3 Mar 2026 at 18:46, Sionigdha Sadhukhan 
> <snigdha.lee75 at gmail.com> wrote:
>
>     Hello GDAL developers,
>
>     Over the past weeks, while contributing to GDAL and working on
>     Python binding-related issues and PRs, I have been studying the
>     current Python stub generation pipeline in detail. In particular,
>     I explored the |docstub| integration and the implementation in
>     |_analysis.py|, |_docstrings.py|, and |_stubs.py|, along with
>     recent PRs related to docstring cleanup and stub generation.
>
>     From examining the code, I understand that:
>
>      *
>
>         |.pyi| files are generated entirely from docstrings using a
>         custom Lark grammar.
>
>      *
>
>         Type resolution is handled through |TypeMatcher| and import
>         reconstruction.
>
>      *
>
>         Unresolved types fall back to |_typeshed.Incomplete|.
>
>      *
>
>         There is currently no mechanical validation step ensuring that
>         generated stubs remain consistent with the actual runtime
>         callable signatures produced by SWIG.
>
>     This means the stub layer is structurally decoupled from the
>     runtime bindings, and drift between:
>
>     C++ → SWIG → Python runtime → docstrings → generated stubs
>
>     is theoretically possible without automated detection.
>
>     For GSoC, I would like to explore a project focused on hardening
>     and modernizing this pipeline through runtime–stub consistency
>     validation and stricter enforcement mechanisms.
>
>     A possible scope could include:
>
>     *Runtime–Stub Signature Validator*
>
>      *
>
>         Import |osgeo| modules and inspect public callables using
>         |inspect.signature()|.
>
>      *
>
>         Parse generated |.pyi| files.
>
>      *
>
>         Detect mismatches in parameter names, counts, defaults, and
>         return presence.
>
>      *
>
>         Produce structured reports of inconsistencies.
>
>     *Stricter Stub Generation Mode*
>
>      *
>
>         Optionally fail (or emit stronger diagnostics) on unresolved
>         types instead of silently aliasing to |_typeshed.Incomplete|.
>
>      *
>
>         Provide measurable metrics on annotation coverage and
>         unresolved types.
>
>     *CI Integration*
>
>      *
>
>         Integrate validation checks into CI to prevent silent drift
>         over time.
>
>      *
>
>         Keep the approach incremental and compatible with the existing
>         docstring-driven workflow.
>
>     The goal would not be to redesign SWIG bindings or replace the
>     current system, but to introduce a validation and enforcement
>     layer that increases confidence in typing correctness, IDE
>     support, and long-term maintainability of the Python bindings.
>
>     Before developing this into a formal proposal, I would really
>     appreciate feedback on:
>
>      *
>
>         Whether runtime–stub consistency validation aligns with
>         current Python binding priorities.
>
>      *
>
>         Whether there are known constraints or prior efforts in this
>         direction.
>
>      *
>
>         Whether this scope would be appropriate and realistic for a
>         GSoC project.
>
>     Thank you very much for your time. I would be happy to refine or
>     narrow this idea based on feedback.
>
>     Best regards,
>     Sionigdha
>
>
> _______________________________________________
> gdal-dev mailing list
> gdal-dev at lists.osgeo.org
> https://lists.osgeo.org/mailman/listinfo/gdal-dev

-- 
http://www.spatialys.com
My software is free, but my time generally not.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/gdal-dev/attachments/20260310/4a95f27e/attachment.htm>


More information about the gdal-dev mailing list