Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Enable the use of mypy --no-explicit-reexport on downstream projects #338

Merged
merged 1 commit into from
Jan 29, 2024

Commits on Jan 29, 2024

  1. Enable the use of mypy --no-explicit-reexport on downstream projects

    When testing simple python code like this with mypy for type-safety:
    
    ```
    import gssapi
    gsc:gssapi.SecurityContext
    gsc = gssapi.SecurityContext(
           usage='initiate',
           name=gssapi.Name('imap@localhost',
                            gssapi.NameType.hostbased_service))
    ```
    
    I see these errors:
    
    ```
    0 $ mypy --no-implicit-reexport ./test.py
    test.py:3: error: Name "gssapi.SecurityContext" is not defined  [name-defined]
    test.py:4: error: Module "gssapi" does not explicitly export attribute "SecurityContext"  [attr-defined]
    test.py:4: error: Module "gssapi" does not explicitly export attribute "Name"  [attr-defined]
    test.py:4: error: Module "gssapi" does not explicitly export attribute "NameType"  [attr-defined]
    Found 4 errors in 1 file (checked 1 source file)
    1 $
    ```
    
    The same thing happens when using `mypy --strict`.
    
    [a
    blogpost](https://til.codeinthehole.com/posts/how-to-handle-convenience-imports-with-mypy/)
    suggested that the `__all__` variable in `gssapi/__init__.py` might be
    the way to fix this.
    
    I can confirm that it does clear the error, but I'm not enough of a
    python module expert to know whether there might be some undesirable
    side effects as well to making this change.  Please review!
    
    Tested on debian testing/unstable, with:
    
    - python3  3.11.6-1
    - python3-gssapi 1.8.2-1+b2
    - mypy 1.8.0-1
    
    Signed-off-by: Daniel Kahn Gillmor <dkg@fifthhorseman.net>
    dkg committed Jan 29, 2024
    Configuration menu
    Copy the full SHA
    b7acdda View commit details
    Browse the repository at this point in the history