Skip to content

Conversation

@holocronweaver
Copy link

@holocronweaver holocronweaver commented Nov 8, 2023

Python type checker libraries such as Pyright have built a consensus around PEP 484 for how to export symbols from a py.typed library. This requires redundantly re-exporting symbols to make them publicly visible.

Without re-exporting the symbol type checkers will complain that the symbol (e.g., from aws_error_utils.errors) is not exported, but a direct import will work as expected (e.g., from aws_error_utils.aws_error_utils import errors).

Based on official Python guidance to type checkers: https://github.com/python/typing/blob/master/docs/source/libraries.rst#library-interface-public-and-private-symbols

For more detail from author of Pyright (for a similar issue in PyTorch): microsoft/pylance-release#2953 (comment)

This should resolve #9.

Python type checker libraries such as Pyright have built a consensus around PEP 484 for how to export
symbols from a py.typed library. This requires redundantly re-exporting symbols
to make them publicly visible.

Without re-exporting the symbol type checkers will
complain that the symbol  (e.g., from aws_error_utils.errors) is not exported,
but a direct import will work as expected (e.g., from aws_error_utils.aws_error_utils
import errors).

Based on official Python guidance to type checkers: https://github.com/python/typing/blob/master/docs/source/libraries.rst#library-interface-public-and-private-symbols

For more detail from author of Pyright (for a similar issue in PyTorch):
microsoft/pylance-release#2953 (comment)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Pyright thinks symbols are not exported

1 participant