diff --git a/.github/workflows/tests.yaml b/.github/workflows/tests.yaml index 9db56f8b0c..203388cdd4 100644 --- a/.github/workflows/tests.yaml +++ b/.github/workflows/tests.yaml @@ -405,13 +405,13 @@ jobs: - name: Install nox. run: | python -m pip install nox - - name: Run blacken and lint on the generated output. + - name: Run format, lint, and mypy on the generated output. run: | - nox -f tests/integration/goldens/asset/noxfile.py -s mypy-${{ env.LATEST_STABLE_PYTHON }} blacken lint - nox -f tests/integration/goldens/credentials/noxfile.py -s mypy-${{ env.LATEST_STABLE_PYTHON }} blacken lint - nox -f tests/integration/goldens/eventarc/noxfile.py -s mypy-${{ env.LATEST_STABLE_PYTHON }} blacken lint - nox -f tests/integration/goldens/logging/noxfile.py -s mypy-${{ env.LATEST_STABLE_PYTHON }} blacken lint - nox -f tests/integration/goldens/redis/noxfile.py -s mypy-${{ env.LATEST_STABLE_PYTHON }} blacken lint + nox -f tests/integration/goldens/asset/noxfile.py -s format lint mypy-${{ env.LATEST_STABLE_PYTHON }} + nox -f tests/integration/goldens/credentials/noxfile.py -s format lint mypy-${{ env.LATEST_STABLE_PYTHON }} + nox -f tests/integration/goldens/eventarc/noxfile.py -s format lint mypy-${{ env.LATEST_STABLE_PYTHON }} + nox -f tests/integration/goldens/logging/noxfile.py -s format lint mypy-${{ env.LATEST_STABLE_PYTHON }} + nox -f tests/integration/goldens/redis/noxfile.py -s format lint mypy-${{ env.LATEST_STABLE_PYTHON }} goldens-unit: runs-on: ubuntu-latest steps: diff --git a/gapic/templates/%namespace/%name_%version/%sub/services/%service/async_client.py.j2 b/gapic/templates/%namespace/%name_%version/%sub/services/%service/async_client.py.j2 index c5abf93ed6..6c15312390 100644 --- a/gapic/templates/%namespace/%name_%version/%sub/services/%service/async_client.py.j2 +++ b/gapic/templates/%namespace/%name_%version/%sub/services/%service/async_client.py.j2 @@ -98,7 +98,9 @@ class {{ service.async_client_name }}: Returns: {{ service.async_client_name }}: The constructed client. """ - sa_info_func = {{ service.client_name }}.from_service_account_info.__func__ # type: ignore + sa_info_func = ( + {{ service.client_name }}.from_service_account_info.__func__ # type: ignore + ) return sa_info_func({{ service.async_client_name }}, info, *args, **kwargs) @classmethod @@ -115,7 +117,9 @@ class {{ service.async_client_name }}: Returns: {{ service.async_client_name }}: The constructed client. """ - sa_file_func = {{ service.client_name }}.from_service_account_file.__func__ # type: ignore + sa_file_func = ( + {{ service.client_name }}.from_service_account_file.__func__ # type: ignore + ) return sa_file_func({{ service.async_client_name }}, filename, *args, **kwargs) from_service_account_json = from_service_account_file diff --git a/gapic/templates/mypy.ini.j2 b/gapic/templates/mypy.ini.j2 index a3cb5c2921..defc5b1ed8 100644 --- a/gapic/templates/mypy.ini.j2 +++ b/gapic/templates/mypy.ini.j2 @@ -1,3 +1,15 @@ [mypy] python_version = 3.14 namespace_packages = True +ignore_missing_imports = False + +# TODO(https://github.com/googleapis/gapic-generator-python/issues/2563): +# Dependencies that historically lacks py.typed markers +[mypy-google.iam.*] +ignore_missing_imports = True + +# Helps mypy navigate the 'google' namespace more reliably in 3.10+ +explicit_package_bases = True + +# Performance: reuse results from previous runs to speed up 'nox' +incremental = True \ No newline at end of file diff --git a/tests/integration/goldens/asset/google/cloud/asset_v1/services/asset_service/async_client.py b/tests/integration/goldens/asset/google/cloud/asset_v1/services/asset_service/async_client.py index 6671f3a75f..b769fef679 100755 --- a/tests/integration/goldens/asset/google/cloud/asset_v1/services/asset_service/async_client.py +++ b/tests/integration/goldens/asset/google/cloud/asset_v1/services/asset_service/async_client.py @@ -106,7 +106,9 @@ def from_service_account_info(cls, info: dict, *args, **kwargs): Returns: AssetServiceAsyncClient: The constructed client. """ - sa_info_func = AssetServiceClient.from_service_account_info.__func__ # type: ignore + sa_info_func = ( + AssetServiceClient.from_service_account_info.__func__ # type: ignore + ) return sa_info_func(AssetServiceAsyncClient, info, *args, **kwargs) @classmethod @@ -123,7 +125,9 @@ def from_service_account_file(cls, filename: str, *args, **kwargs): Returns: AssetServiceAsyncClient: The constructed client. """ - sa_file_func = AssetServiceClient.from_service_account_file.__func__ # type: ignore + sa_file_func = ( + AssetServiceClient.from_service_account_file.__func__ # type: ignore + ) return sa_file_func(AssetServiceAsyncClient, filename, *args, **kwargs) from_service_account_json = from_service_account_file diff --git a/tests/integration/goldens/asset/mypy.ini b/tests/integration/goldens/asset/mypy.ini index a3cb5c2921..e0e0da2e9e 100755 --- a/tests/integration/goldens/asset/mypy.ini +++ b/tests/integration/goldens/asset/mypy.ini @@ -1,3 +1,15 @@ [mypy] python_version = 3.14 namespace_packages = True +ignore_missing_imports = False + +# TODO(https://github.com/googleapis/gapic-generator-python/issues/2563): +# Dependencies that historically lacks py.typed markers +[mypy-google.iam.*] +ignore_missing_imports = True + +# Helps mypy navigate the 'google' namespace more reliably in 3.10+ +explicit_package_bases = True + +# Performance: reuse results from previous runs to speed up 'nox' +incremental = True diff --git a/tests/integration/goldens/credentials/google/iam/credentials_v1/services/iam_credentials/async_client.py b/tests/integration/goldens/credentials/google/iam/credentials_v1/services/iam_credentials/async_client.py index 47e6150e3f..3db8cc73e1 100755 --- a/tests/integration/goldens/credentials/google/iam/credentials_v1/services/iam_credentials/async_client.py +++ b/tests/integration/goldens/credentials/google/iam/credentials_v1/services/iam_credentials/async_client.py @@ -97,7 +97,9 @@ def from_service_account_info(cls, info: dict, *args, **kwargs): Returns: IAMCredentialsAsyncClient: The constructed client. """ - sa_info_func = IAMCredentialsClient.from_service_account_info.__func__ # type: ignore + sa_info_func = ( + IAMCredentialsClient.from_service_account_info.__func__ # type: ignore + ) return sa_info_func(IAMCredentialsAsyncClient, info, *args, **kwargs) @classmethod @@ -114,7 +116,9 @@ def from_service_account_file(cls, filename: str, *args, **kwargs): Returns: IAMCredentialsAsyncClient: The constructed client. """ - sa_file_func = IAMCredentialsClient.from_service_account_file.__func__ # type: ignore + sa_file_func = ( + IAMCredentialsClient.from_service_account_file.__func__ # type: ignore + ) return sa_file_func(IAMCredentialsAsyncClient, filename, *args, **kwargs) from_service_account_json = from_service_account_file diff --git a/tests/integration/goldens/credentials/mypy.ini b/tests/integration/goldens/credentials/mypy.ini index a3cb5c2921..e0e0da2e9e 100755 --- a/tests/integration/goldens/credentials/mypy.ini +++ b/tests/integration/goldens/credentials/mypy.ini @@ -1,3 +1,15 @@ [mypy] python_version = 3.14 namespace_packages = True +ignore_missing_imports = False + +# TODO(https://github.com/googleapis/gapic-generator-python/issues/2563): +# Dependencies that historically lacks py.typed markers +[mypy-google.iam.*] +ignore_missing_imports = True + +# Helps mypy navigate the 'google' namespace more reliably in 3.10+ +explicit_package_bases = True + +# Performance: reuse results from previous runs to speed up 'nox' +incremental = True diff --git a/tests/integration/goldens/eventarc/google/cloud/eventarc_v1/services/eventarc/async_client.py b/tests/integration/goldens/eventarc/google/cloud/eventarc_v1/services/eventarc/async_client.py index dbb6896c41..a122de3592 100755 --- a/tests/integration/goldens/eventarc/google/cloud/eventarc_v1/services/eventarc/async_client.py +++ b/tests/integration/goldens/eventarc/google/cloud/eventarc_v1/services/eventarc/async_client.py @@ -124,7 +124,9 @@ def from_service_account_info(cls, info: dict, *args, **kwargs): Returns: EventarcAsyncClient: The constructed client. """ - sa_info_func = EventarcClient.from_service_account_info.__func__ # type: ignore + sa_info_func = ( + EventarcClient.from_service_account_info.__func__ # type: ignore + ) return sa_info_func(EventarcAsyncClient, info, *args, **kwargs) @classmethod @@ -141,7 +143,9 @@ def from_service_account_file(cls, filename: str, *args, **kwargs): Returns: EventarcAsyncClient: The constructed client. """ - sa_file_func = EventarcClient.from_service_account_file.__func__ # type: ignore + sa_file_func = ( + EventarcClient.from_service_account_file.__func__ # type: ignore + ) return sa_file_func(EventarcAsyncClient, filename, *args, **kwargs) from_service_account_json = from_service_account_file diff --git a/tests/integration/goldens/eventarc/mypy.ini b/tests/integration/goldens/eventarc/mypy.ini index a3cb5c2921..e0e0da2e9e 100755 --- a/tests/integration/goldens/eventarc/mypy.ini +++ b/tests/integration/goldens/eventarc/mypy.ini @@ -1,3 +1,15 @@ [mypy] python_version = 3.14 namespace_packages = True +ignore_missing_imports = False + +# TODO(https://github.com/googleapis/gapic-generator-python/issues/2563): +# Dependencies that historically lacks py.typed markers +[mypy-google.iam.*] +ignore_missing_imports = True + +# Helps mypy navigate the 'google' namespace more reliably in 3.10+ +explicit_package_bases = True + +# Performance: reuse results from previous runs to speed up 'nox' +incremental = True diff --git a/tests/integration/goldens/logging/google/cloud/logging_v2/services/config_service_v2/async_client.py b/tests/integration/goldens/logging/google/cloud/logging_v2/services/config_service_v2/async_client.py index 0a88964f2a..bb6373fa8d 100755 --- a/tests/integration/goldens/logging/google/cloud/logging_v2/services/config_service_v2/async_client.py +++ b/tests/integration/goldens/logging/google/cloud/logging_v2/services/config_service_v2/async_client.py @@ -104,7 +104,9 @@ def from_service_account_info(cls, info: dict, *args, **kwargs): Returns: ConfigServiceV2AsyncClient: The constructed client. """ - sa_info_func = ConfigServiceV2Client.from_service_account_info.__func__ # type: ignore + sa_info_func = ( + ConfigServiceV2Client.from_service_account_info.__func__ # type: ignore + ) return sa_info_func(ConfigServiceV2AsyncClient, info, *args, **kwargs) @classmethod @@ -121,7 +123,9 @@ def from_service_account_file(cls, filename: str, *args, **kwargs): Returns: ConfigServiceV2AsyncClient: The constructed client. """ - sa_file_func = ConfigServiceV2Client.from_service_account_file.__func__ # type: ignore + sa_file_func = ( + ConfigServiceV2Client.from_service_account_file.__func__ # type: ignore + ) return sa_file_func(ConfigServiceV2AsyncClient, filename, *args, **kwargs) from_service_account_json = from_service_account_file diff --git a/tests/integration/goldens/logging/google/cloud/logging_v2/services/logging_service_v2/async_client.py b/tests/integration/goldens/logging/google/cloud/logging_v2/services/logging_service_v2/async_client.py index b2f472a6d0..dc8eb732d4 100755 --- a/tests/integration/goldens/logging/google/cloud/logging_v2/services/logging_service_v2/async_client.py +++ b/tests/integration/goldens/logging/google/cloud/logging_v2/services/logging_service_v2/async_client.py @@ -89,7 +89,9 @@ def from_service_account_info(cls, info: dict, *args, **kwargs): Returns: LoggingServiceV2AsyncClient: The constructed client. """ - sa_info_func = LoggingServiceV2Client.from_service_account_info.__func__ # type: ignore + sa_info_func = ( + LoggingServiceV2Client.from_service_account_info.__func__ # type: ignore + ) return sa_info_func(LoggingServiceV2AsyncClient, info, *args, **kwargs) @classmethod @@ -106,7 +108,9 @@ def from_service_account_file(cls, filename: str, *args, **kwargs): Returns: LoggingServiceV2AsyncClient: The constructed client. """ - sa_file_func = LoggingServiceV2Client.from_service_account_file.__func__ # type: ignore + sa_file_func = ( + LoggingServiceV2Client.from_service_account_file.__func__ # type: ignore + ) return sa_file_func(LoggingServiceV2AsyncClient, filename, *args, **kwargs) from_service_account_json = from_service_account_file diff --git a/tests/integration/goldens/logging/google/cloud/logging_v2/services/metrics_service_v2/async_client.py b/tests/integration/goldens/logging/google/cloud/logging_v2/services/metrics_service_v2/async_client.py index 6932957dc9..2e126f3784 100755 --- a/tests/integration/goldens/logging/google/cloud/logging_v2/services/metrics_service_v2/async_client.py +++ b/tests/integration/goldens/logging/google/cloud/logging_v2/services/metrics_service_v2/async_client.py @@ -90,7 +90,9 @@ def from_service_account_info(cls, info: dict, *args, **kwargs): Returns: MetricsServiceV2AsyncClient: The constructed client. """ - sa_info_func = MetricsServiceV2Client.from_service_account_info.__func__ # type: ignore + sa_info_func = ( + MetricsServiceV2Client.from_service_account_info.__func__ # type: ignore + ) return sa_info_func(MetricsServiceV2AsyncClient, info, *args, **kwargs) @classmethod @@ -107,7 +109,9 @@ def from_service_account_file(cls, filename: str, *args, **kwargs): Returns: MetricsServiceV2AsyncClient: The constructed client. """ - sa_file_func = MetricsServiceV2Client.from_service_account_file.__func__ # type: ignore + sa_file_func = ( + MetricsServiceV2Client.from_service_account_file.__func__ # type: ignore + ) return sa_file_func(MetricsServiceV2AsyncClient, filename, *args, **kwargs) from_service_account_json = from_service_account_file diff --git a/tests/integration/goldens/logging/mypy.ini b/tests/integration/goldens/logging/mypy.ini index a3cb5c2921..e0e0da2e9e 100755 --- a/tests/integration/goldens/logging/mypy.ini +++ b/tests/integration/goldens/logging/mypy.ini @@ -1,3 +1,15 @@ [mypy] python_version = 3.14 namespace_packages = True +ignore_missing_imports = False + +# TODO(https://github.com/googleapis/gapic-generator-python/issues/2563): +# Dependencies that historically lacks py.typed markers +[mypy-google.iam.*] +ignore_missing_imports = True + +# Helps mypy navigate the 'google' namespace more reliably in 3.10+ +explicit_package_bases = True + +# Performance: reuse results from previous runs to speed up 'nox' +incremental = True diff --git a/tests/integration/goldens/logging_internal/google/cloud/logging_v2/services/config_service_v2/async_client.py b/tests/integration/goldens/logging_internal/google/cloud/logging_v2/services/config_service_v2/async_client.py index 82ba68904f..b2fc579342 100755 --- a/tests/integration/goldens/logging_internal/google/cloud/logging_v2/services/config_service_v2/async_client.py +++ b/tests/integration/goldens/logging_internal/google/cloud/logging_v2/services/config_service_v2/async_client.py @@ -104,7 +104,9 @@ def from_service_account_info(cls, info: dict, *args, **kwargs): Returns: BaseConfigServiceV2AsyncClient: The constructed client. """ - sa_info_func = BaseConfigServiceV2Client.from_service_account_info.__func__ # type: ignore + sa_info_func = ( + BaseConfigServiceV2Client.from_service_account_info.__func__ # type: ignore + ) return sa_info_func(BaseConfigServiceV2AsyncClient, info, *args, **kwargs) @classmethod @@ -121,7 +123,9 @@ def from_service_account_file(cls, filename: str, *args, **kwargs): Returns: BaseConfigServiceV2AsyncClient: The constructed client. """ - sa_file_func = BaseConfigServiceV2Client.from_service_account_file.__func__ # type: ignore + sa_file_func = ( + BaseConfigServiceV2Client.from_service_account_file.__func__ # type: ignore + ) return sa_file_func(BaseConfigServiceV2AsyncClient, filename, *args, **kwargs) from_service_account_json = from_service_account_file diff --git a/tests/integration/goldens/logging_internal/google/cloud/logging_v2/services/logging_service_v2/async_client.py b/tests/integration/goldens/logging_internal/google/cloud/logging_v2/services/logging_service_v2/async_client.py index b2f472a6d0..dc8eb732d4 100755 --- a/tests/integration/goldens/logging_internal/google/cloud/logging_v2/services/logging_service_v2/async_client.py +++ b/tests/integration/goldens/logging_internal/google/cloud/logging_v2/services/logging_service_v2/async_client.py @@ -89,7 +89,9 @@ def from_service_account_info(cls, info: dict, *args, **kwargs): Returns: LoggingServiceV2AsyncClient: The constructed client. """ - sa_info_func = LoggingServiceV2Client.from_service_account_info.__func__ # type: ignore + sa_info_func = ( + LoggingServiceV2Client.from_service_account_info.__func__ # type: ignore + ) return sa_info_func(LoggingServiceV2AsyncClient, info, *args, **kwargs) @classmethod @@ -106,7 +108,9 @@ def from_service_account_file(cls, filename: str, *args, **kwargs): Returns: LoggingServiceV2AsyncClient: The constructed client. """ - sa_file_func = LoggingServiceV2Client.from_service_account_file.__func__ # type: ignore + sa_file_func = ( + LoggingServiceV2Client.from_service_account_file.__func__ # type: ignore + ) return sa_file_func(LoggingServiceV2AsyncClient, filename, *args, **kwargs) from_service_account_json = from_service_account_file diff --git a/tests/integration/goldens/logging_internal/google/cloud/logging_v2/services/metrics_service_v2/async_client.py b/tests/integration/goldens/logging_internal/google/cloud/logging_v2/services/metrics_service_v2/async_client.py index 69751fc378..c7ce33ffb2 100755 --- a/tests/integration/goldens/logging_internal/google/cloud/logging_v2/services/metrics_service_v2/async_client.py +++ b/tests/integration/goldens/logging_internal/google/cloud/logging_v2/services/metrics_service_v2/async_client.py @@ -90,7 +90,9 @@ def from_service_account_info(cls, info: dict, *args, **kwargs): Returns: BaseMetricsServiceV2AsyncClient: The constructed client. """ - sa_info_func = BaseMetricsServiceV2Client.from_service_account_info.__func__ # type: ignore + sa_info_func = ( + BaseMetricsServiceV2Client.from_service_account_info.__func__ # type: ignore + ) return sa_info_func(BaseMetricsServiceV2AsyncClient, info, *args, **kwargs) @classmethod @@ -107,7 +109,9 @@ def from_service_account_file(cls, filename: str, *args, **kwargs): Returns: BaseMetricsServiceV2AsyncClient: The constructed client. """ - sa_file_func = BaseMetricsServiceV2Client.from_service_account_file.__func__ # type: ignore + sa_file_func = ( + BaseMetricsServiceV2Client.from_service_account_file.__func__ # type: ignore + ) return sa_file_func(BaseMetricsServiceV2AsyncClient, filename, *args, **kwargs) from_service_account_json = from_service_account_file diff --git a/tests/integration/goldens/logging_internal/mypy.ini b/tests/integration/goldens/logging_internal/mypy.ini index a3cb5c2921..e0e0da2e9e 100755 --- a/tests/integration/goldens/logging_internal/mypy.ini +++ b/tests/integration/goldens/logging_internal/mypy.ini @@ -1,3 +1,15 @@ [mypy] python_version = 3.14 namespace_packages = True +ignore_missing_imports = False + +# TODO(https://github.com/googleapis/gapic-generator-python/issues/2563): +# Dependencies that historically lacks py.typed markers +[mypy-google.iam.*] +ignore_missing_imports = True + +# Helps mypy navigate the 'google' namespace more reliably in 3.10+ +explicit_package_bases = True + +# Performance: reuse results from previous runs to speed up 'nox' +incremental = True diff --git a/tests/integration/goldens/redis/google/cloud/redis_v1/services/cloud_redis/async_client.py b/tests/integration/goldens/redis/google/cloud/redis_v1/services/cloud_redis/async_client.py index 78f428b8ec..402a673002 100755 --- a/tests/integration/goldens/redis/google/cloud/redis_v1/services/cloud_redis/async_client.py +++ b/tests/integration/goldens/redis/google/cloud/redis_v1/services/cloud_redis/async_client.py @@ -114,7 +114,9 @@ def from_service_account_info(cls, info: dict, *args, **kwargs): Returns: CloudRedisAsyncClient: The constructed client. """ - sa_info_func = CloudRedisClient.from_service_account_info.__func__ # type: ignore + sa_info_func = ( + CloudRedisClient.from_service_account_info.__func__ # type: ignore + ) return sa_info_func(CloudRedisAsyncClient, info, *args, **kwargs) @classmethod @@ -131,7 +133,9 @@ def from_service_account_file(cls, filename: str, *args, **kwargs): Returns: CloudRedisAsyncClient: The constructed client. """ - sa_file_func = CloudRedisClient.from_service_account_file.__func__ # type: ignore + sa_file_func = ( + CloudRedisClient.from_service_account_file.__func__ # type: ignore + ) return sa_file_func(CloudRedisAsyncClient, filename, *args, **kwargs) from_service_account_json = from_service_account_file diff --git a/tests/integration/goldens/redis/mypy.ini b/tests/integration/goldens/redis/mypy.ini index a3cb5c2921..e0e0da2e9e 100755 --- a/tests/integration/goldens/redis/mypy.ini +++ b/tests/integration/goldens/redis/mypy.ini @@ -1,3 +1,15 @@ [mypy] python_version = 3.14 namespace_packages = True +ignore_missing_imports = False + +# TODO(https://github.com/googleapis/gapic-generator-python/issues/2563): +# Dependencies that historically lacks py.typed markers +[mypy-google.iam.*] +ignore_missing_imports = True + +# Helps mypy navigate the 'google' namespace more reliably in 3.10+ +explicit_package_bases = True + +# Performance: reuse results from previous runs to speed up 'nox' +incremental = True diff --git a/tests/integration/goldens/redis_selective/google/cloud/redis_v1/services/cloud_redis/async_client.py b/tests/integration/goldens/redis_selective/google/cloud/redis_v1/services/cloud_redis/async_client.py index 5dc91b1bd8..a1e1918ef2 100755 --- a/tests/integration/goldens/redis_selective/google/cloud/redis_v1/services/cloud_redis/async_client.py +++ b/tests/integration/goldens/redis_selective/google/cloud/redis_v1/services/cloud_redis/async_client.py @@ -114,7 +114,9 @@ def from_service_account_info(cls, info: dict, *args, **kwargs): Returns: CloudRedisAsyncClient: The constructed client. """ - sa_info_func = CloudRedisClient.from_service_account_info.__func__ # type: ignore + sa_info_func = ( + CloudRedisClient.from_service_account_info.__func__ # type: ignore + ) return sa_info_func(CloudRedisAsyncClient, info, *args, **kwargs) @classmethod @@ -131,7 +133,9 @@ def from_service_account_file(cls, filename: str, *args, **kwargs): Returns: CloudRedisAsyncClient: The constructed client. """ - sa_file_func = CloudRedisClient.from_service_account_file.__func__ # type: ignore + sa_file_func = ( + CloudRedisClient.from_service_account_file.__func__ # type: ignore + ) return sa_file_func(CloudRedisAsyncClient, filename, *args, **kwargs) from_service_account_json = from_service_account_file diff --git a/tests/integration/goldens/redis_selective/mypy.ini b/tests/integration/goldens/redis_selective/mypy.ini index a3cb5c2921..e0e0da2e9e 100755 --- a/tests/integration/goldens/redis_selective/mypy.ini +++ b/tests/integration/goldens/redis_selective/mypy.ini @@ -1,3 +1,15 @@ [mypy] python_version = 3.14 namespace_packages = True +ignore_missing_imports = False + +# TODO(https://github.com/googleapis/gapic-generator-python/issues/2563): +# Dependencies that historically lacks py.typed markers +[mypy-google.iam.*] +ignore_missing_imports = True + +# Helps mypy navigate the 'google' namespace more reliably in 3.10+ +explicit_package_bases = True + +# Performance: reuse results from previous runs to speed up 'nox' +incremental = True