-
Notifications
You must be signed in to change notification settings - Fork 16
Closed
Labels
status:confirmedThis issue has been reviewed and confirmedThis issue has been reviewed and confirmedtype:enhancementImproving an existing featureImproving an existing feature
Description
Description
pygitguardian has type-hints but they are not complete and the package does not announce itself as typed.
As per PEP-561, a Python package can announce itself as typed by shipping a py.typed
marker file.
By not announcing itself as typed, pygitguardian forces its users such as ggshield to ignore its imports. To see what this implies, one can do the following with ggshield:
- edit
pyproject.toml
, remove theignore_missing_imports = true
- run mypy:
ggshield/output/json/schemas.py:4: error: Skipping analyzing "pygitguardian.iac_models": module is installed, but missing library stubs or py.typed marker
ggshield/output/json/schemas.py:5: error: Skipping analyzing "pygitguardian.models": module is installed, but missing library stubs or py.typed marker
ggshield/cmd/debug_logs.py:4: error: Skipping analyzing "pygitguardian": module is installed, but missing library stubs or py.typed marker
ggshield/output/text/message.py:5: error: Skipping analyzing "pygitguardian.client": module is installed, but missing library stubs or py.typed marker
ggshield/output/text/message.py:6: error: Skipping analyzing "pygitguardian.iac_models": module is installed, but missing library stubs or py.typed marker
ggshield/output/text/message.py:7: error: Skipping analyzing "pygitguardian.models": module is installed, but missing library stubs or py.typed marker
ggshield/core/filter.py:10: error: Skipping analyzing "pygitguardian.models": module is installed, but missing library stubs or py.typed marker
ggshield/core/utils.py:12: error: Skipping analyzing "pygitguardian.models": module is installed, but missing library stubs or py.typed marker
ggshield/core/cache.py:5: error: Skipping analyzing "pygitguardian.models": module is installed, but missing library stubs or py.typed marker
ggshield/core/client.py:3: error: Skipping analyzing "pygitguardian": module is installed, but missing library stubs or py.typed marker
ggshield/scan/scanner.py:9: error: Skipping analyzing "pygitguardian": module is installed, but missing library stubs or py.typed marker
ggshield/scan/scanner.py:10: error: Skipping analyzing "pygitguardian.config": module is installed, but missing library stubs or py.typed marker
ggshield/scan/scanner.py:11: error: Skipping analyzing "pygitguardian.iac_models": module is installed, but missing library stubs or py.typed marker
ggshield/scan/scanner.py:12: error: Skipping analyzing "pygitguardian.models": module is installed, but missing library stubs or py.typed marker
ggshield/cmd/status.py:5: error: Skipping analyzing "pygitguardian": module is installed, but missing library stubs or py.typed marker
ggshield/cmd/status.py:6: error: Skipping analyzing "pygitguardian.models": module is installed, but missing library stubs or py.typed marker
ggshield/cmd/quota.py:5: error: Skipping analyzing "pygitguardian": module is installed, but missing library stubs or py.typed marker
ggshield/cmd/quota.py:6: error: Skipping analyzing "pygitguardian.models": module is installed, but missing library stubs or py.typed marker
ggshield/scan/docker.py:12: error: Skipping analyzing "pygitguardian": module is installed, but missing library stubs or py.typed marker
ggshield/output/text/text_output_handler.py:5: error: Skipping analyzing "pygitguardian.models": module is installed, but missing library stubs or py.typed marker
ggshield/output/text/iac_text_output_handler.py:5: error: Skipping analyzing "pygitguardian.iac_models": module is installed, but missing library stubs or py.typed marker
ggshield/output/json/json_output_handler.py:3: error: Skipping analyzing "pygitguardian.client": module is installed, but missing library stubs or py.typed marker
ggshield/output/json/json_output_handler.py:4: error: Skipping analyzing "pygitguardian.models": module is installed, but missing library stubs or py.typed marker
ggshield/output/json/iac_json_output_handler.py:3: error: Skipping analyzing "pygitguardian.iac_models": module is installed, but missing library stubs or py.typed marker
ggshield/output/gitlab_webui/gitlab_webui_output_handler.py:1: error: Skipping analyzing "pygitguardian.models": module is installed, but missing library stubs or py.typed marker
ggshield/scan/repo.py:10: error: Skipping analyzing "pygitguardian": module is installed, but missing library stubs or py.typed marker
ggshield/scan/repo.py:11: error: Skipping analyzing "pygitguardian.config": module is installed, but missing library stubs or py.typed marker
ggshield/cmd/iac/scan.py:5: error: Skipping analyzing "pygitguardian": module is installed, but missing library stubs or py.typed marker
ggshield/cmd/iac/scan.py:5: note: See https://mypy.readthedocs.io/en/stable/running_mypy.html#missing-imports
ggshield/cmd/iac/scan.py:6: error: Skipping analyzing "pygitguardian.iac_models": module is installed, but missing library stubs or py.typed marker
ggshield/cmd/iac/scan.py:7: error: Skipping analyzing "pygitguardian.models": module is installed, but missing library stubs or py.typed marker
ggshield/cmd/secret/scan/repo.py:7: error: Skipping analyzing "pygitguardian": module is installed, but missing library stubs or py.typed marker
Found 31 errors in 19 files (checked 82 source files)
Even with the ignore_missing_imports
flag, there are some places in ggshield code it has to use # type:ignore
because mypy does not know the type returned by a py-gitguardian function.
Definition of Done
- Type-hints are checked by the CI
- Installing the package installs a py.typed mark
Metadata
Metadata
Assignees
Labels
status:confirmedThis issue has been reviewed and confirmedThis issue has been reviewed and confirmedtype:enhancementImproving an existing featureImproving an existing feature