microsoft / microsoft/typespec

[Bug]: [typing] "_models" in typing annotation confuses sphinx

Open
#6,152 0 comments 0 reactions 0 assignees View on GitHub
bug emitter:client:python
Dominant language
Java
Stars
5.9k
Forks
394
Avg merge
1d 23h
Merged PRs (30d)
104

Description

### Describe the bug

This is transferred from https://github.com/Azure/autorest.python/issues/2964

we add "_models." in our generated code.

e.g.

def init(
self,
*,
vectorizer_name: str,
ai_services_vision_parameters: Optional["_models.AIServicesVisionParameters"] = None,
**kwargs: Any
) -> None:

The reason is to avoid name conflicts. we've had issues in the past, for example, if an enum is named the same thing as a model, by tying it to _models (we also make it private so we're not exposing anything), we avoid naming conflicts.

Unfortunately, Sphinx cannot parse the model "_models.AIServicesVisionParameters" correctly.

In Sphinx generated code, it shows
_models.SearchIndexerDataIdentity
and loses xref.

We need to find some other ways to solve the name conflicts.

### Reproduction

As above

### Checklist

- [x] Follow our [Code of Conduct](https://github.com/microsoft/typespec/blob/main/CODE_OF_CONDUCT.md)
- [x] Check that there isn't already an issue that request the same bug to avoid creating a duplicate.
- [x] Check that this is a concrete bug. For Q&A open a [GitHub Discussion](https://github.com/Microsoft/typespec/discussions).
- [x] The provided reproduction is a [minimal reproducible example](https://stackoverflow.com/help/minimal-reproducible-example) of the bug.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.