In substrait-python, we've started work to extract various bits of code that are generated from the Substrait specification into dedicated standalone packages. This work is based on discussions had by the community in
https://github.com/substrait-io/substrait/issues/925 around automating the release of generated code artifacts (i.e. protobuf bindings, antlr bindings, extension bindings), and separating artifacts releases from language library releases
For users of substrait-python, the biggest difference will be the introduction of a substrait-protobuf package, which will contain just the protobuf bindings. The intent is that other libraries in the ecosystem will also be able to re-use this library and share the bindings, instead of having to generate their own bindings. Because these are intended to be the canonical Python bindings, they will use the unchanged substrait namespace.
For folks interested in looking at or reviewing these changes before we implement them, they can look at the following.