Skip to content

Commit

Permalink
fix: add mypy checking + 'py.typed' file (#290)
Browse files Browse the repository at this point in the history
  • Loading branch information
tseaver committed Oct 13, 2021
1 parent e6a3489 commit 0023ee1
Show file tree
Hide file tree
Showing 6 changed files with 27 additions and 5 deletions.
2 changes: 1 addition & 1 deletion google/__init__.py
Expand Up @@ -21,4 +21,4 @@
except ImportError:
import pkgutil

__path__ = pkgutil.extend_path(__path__, __name__)
__path__ = pkgutil.extend_path(__path__, __name__) # type: ignore
3 changes: 3 additions & 0 deletions google/api_core/client_info.py
Expand Up @@ -19,6 +19,7 @@
"""

import platform
from typing import Union

import pkg_resources

Expand All @@ -27,6 +28,8 @@
_PY_VERSION = platform.python_version()
_API_CORE_VERSION = api_core_version.__version__

_GRPC_VERSION: Union[str, None]

try:
_GRPC_VERSION = pkg_resources.get_distribution("grpcio").version
except pkg_resources.DistributionNotFound: # pragma: NO COVER
Expand Down
9 changes: 5 additions & 4 deletions google/api_core/exceptions.py
Expand Up @@ -22,17 +22,18 @@
from __future__ import unicode_literals

import http.client
from typing import Dict
from typing import Union

try:
import grpc

except ImportError: # pragma: NO COVER
grpc = None

# Lookup tables for mapping exceptions from HTTP and gRPC transports.
# Populated by _GoogleAPICallErrorMeta
_HTTP_CODE_TO_EXCEPTION = {}
_GRPC_CODE_TO_EXCEPTION = {}
_HTTP_CODE_TO_EXCEPTION: Dict[int, Exception] = {}
_GRPC_CODE_TO_EXCEPTION: Dict[int, Exception] = {}

# Additional lookup table to map integer status codes to grpc status code
# grpc does not currently support initializing enums from ints
Expand Down Expand Up @@ -100,7 +101,7 @@ class GoogleAPICallError(GoogleAPIError, metaclass=_GoogleAPICallErrorMeta):
gRPC call metadata.
"""

code = None
code: Union[int, None] = None
"""Optional[int]: The HTTP status code associated with this error.
This may be ``None`` if the exception does not have a direct mapping
Expand Down
2 changes: 2 additions & 0 deletions google/api_core/py.typed
@@ -0,0 +1,2 @@
# Marker file for PEP 561.
# The google-api-core package uses inline types.
7 changes: 7 additions & 0 deletions mypy.ini
@@ -0,0 +1,7 @@
[mypy]
python_version = 3.6
namespace_packages = True
ignore_missing_imports = True

[mypy-google.protobuf]
ignore_missing_imports = True
9 changes: 9 additions & 0 deletions noxfile.py
Expand Up @@ -35,6 +35,7 @@
"unit_grpc_gcp",
"cover",
"pytype",
"mypy",
"lint",
"lint_setup_py",
"blacken",
Expand Down Expand Up @@ -155,6 +156,14 @@ def pytype(session):
session.run("pytype")


@nox.session(python=DEFAULT_PYTHON_VERSION)
def mypy(session):
"""Run type-checking."""
session.install(".[grpc, grpcgcp]", "mypy")
session.install("types-setuptools", "types-requests", "types-mock")
session.run("mypy", "google", "tests")


@nox.session(python="3.6")
def cover(session):
"""Run the final coverage report.
Expand Down

0 comments on commit 0023ee1

Please sign in to comment.