diff --git a/packages/gapic-generator/gapic/templates/%namespace/%name_%version/%sub/__init__.py.j2 b/packages/gapic-generator/gapic/templates/%namespace/%name_%version/%sub/__init__.py.j2 index 497592654d20..c887c3c96025 100644 --- a/packages/gapic-generator/gapic/templates/%namespace/%name_%version/%sub/__init__.py.j2 +++ b/packages/gapic-generator/gapic/templates/%namespace/%name_%version/%sub/__init__.py.j2 @@ -12,6 +12,23 @@ __version__ = package_version.__version__ from importlib import metadata +if sys.version_info >= (3, 15): # pragma: NO COVER + __lazy_modules__ = { + {% filter sort_lines -%} + {% for subpackage, _ in api.subpackages|dictsort -%} + f"{__name__}.{{ subpackage }}", + {% endfor -%} + {% for service in api.services.values() + if service.meta.address.subpackage == api.subpackage_view -%} + f"{__name__}.services.{{ service.name|snake_case }}", + {% endfor -%} + {% for proto in api.protos.values() + if proto.meta.address.subpackage == api.subpackage_view -%} + f"{__name__}.types.{{ proto.module_name }}", + {% endfor -%} + {% endfilter %} + } + {# Import subpackages. -#} {% for subpackage, _ in api.subpackages|dictsort %} from . import {{ subpackage }} diff --git a/packages/gapic-generator/tests/integration/goldens/asset/google/cloud/asset_v1/__init__.py b/packages/gapic-generator/tests/integration/goldens/asset/google/cloud/asset_v1/__init__.py index f272a61b7a4e..bc3fb4d7d41a 100755 --- a/packages/gapic-generator/tests/integration/goldens/asset/google/cloud/asset_v1/__init__.py +++ b/packages/gapic-generator/tests/integration/goldens/asset/google/cloud/asset_v1/__init__.py @@ -22,6 +22,14 @@ from importlib import metadata +if sys.version_info >= (3, 15): # pragma: NO COVER + __lazy_modules__ = { +f"{__name__}.services.asset_service", +f"{__name__}.types.asset_enrichment_resourceowners", +f"{__name__}.types.asset_service", +f"{__name__}.types.assets", + } + from .services.asset_service import AssetServiceClient from .services.asset_service import AssetServiceAsyncClient diff --git a/packages/gapic-generator/tests/integration/goldens/credentials/google/iam/credentials_v1/__init__.py b/packages/gapic-generator/tests/integration/goldens/credentials/google/iam/credentials_v1/__init__.py index 943687313e36..636624603e76 100755 --- a/packages/gapic-generator/tests/integration/goldens/credentials/google/iam/credentials_v1/__init__.py +++ b/packages/gapic-generator/tests/integration/goldens/credentials/google/iam/credentials_v1/__init__.py @@ -22,6 +22,13 @@ from importlib import metadata +if sys.version_info >= (3, 15): # pragma: NO COVER + __lazy_modules__ = { +f"{__name__}.services.iam_credentials", +f"{__name__}.types.common", +f"{__name__}.types.iamcredentials", + } + from .services.iam_credentials import IAMCredentialsClient from .services.iam_credentials import IAMCredentialsAsyncClient diff --git a/packages/gapic-generator/tests/integration/goldens/eventarc/google/cloud/eventarc_v1/__init__.py b/packages/gapic-generator/tests/integration/goldens/eventarc/google/cloud/eventarc_v1/__init__.py index c2c65d30a333..92758ec90259 100755 --- a/packages/gapic-generator/tests/integration/goldens/eventarc/google/cloud/eventarc_v1/__init__.py +++ b/packages/gapic-generator/tests/integration/goldens/eventarc/google/cloud/eventarc_v1/__init__.py @@ -22,6 +22,23 @@ from importlib import metadata +if sys.version_info >= (3, 15): # pragma: NO COVER + __lazy_modules__ = { +f"{__name__}.services.eventarc", +f"{__name__}.types.channel", +f"{__name__}.types.channel_connection", +f"{__name__}.types.discovery", +f"{__name__}.types.enrollment", +f"{__name__}.types.eventarc", +f"{__name__}.types.google_api_source", +f"{__name__}.types.google_channel_config", +f"{__name__}.types.logging_config", +f"{__name__}.types.message_bus", +f"{__name__}.types.network_config", +f"{__name__}.types.pipeline", +f"{__name__}.types.trigger", + } + from .services.eventarc import EventarcClient from .services.eventarc import EventarcAsyncClient diff --git a/packages/gapic-generator/tests/integration/goldens/logging/google/cloud/logging_v2/__init__.py b/packages/gapic-generator/tests/integration/goldens/logging/google/cloud/logging_v2/__init__.py index 8b559fb0b227..30892a95156f 100755 --- a/packages/gapic-generator/tests/integration/goldens/logging/google/cloud/logging_v2/__init__.py +++ b/packages/gapic-generator/tests/integration/goldens/logging/google/cloud/logging_v2/__init__.py @@ -22,6 +22,17 @@ from importlib import metadata +if sys.version_info >= (3, 15): # pragma: NO COVER + __lazy_modules__ = { +f"{__name__}.services.config_service_v2", +f"{__name__}.services.logging_service_v2", +f"{__name__}.services.metrics_service_v2", +f"{__name__}.types.log_entry", +f"{__name__}.types.logging", +f"{__name__}.types.logging_config", +f"{__name__}.types.logging_metrics", + } + from .services.config_service_v2 import ConfigServiceV2Client from .services.config_service_v2 import ConfigServiceV2AsyncClient diff --git a/packages/gapic-generator/tests/integration/goldens/logging_internal/google/cloud/logging_v2/__init__.py b/packages/gapic-generator/tests/integration/goldens/logging_internal/google/cloud/logging_v2/__init__.py index 0469de869617..51ac410a1ec1 100755 --- a/packages/gapic-generator/tests/integration/goldens/logging_internal/google/cloud/logging_v2/__init__.py +++ b/packages/gapic-generator/tests/integration/goldens/logging_internal/google/cloud/logging_v2/__init__.py @@ -22,6 +22,17 @@ from importlib import metadata +if sys.version_info >= (3, 15): # pragma: NO COVER + __lazy_modules__ = { +f"{__name__}.services.config_service_v2", +f"{__name__}.services.logging_service_v2", +f"{__name__}.services.metrics_service_v2", +f"{__name__}.types.log_entry", +f"{__name__}.types.logging", +f"{__name__}.types.logging_config", +f"{__name__}.types.logging_metrics", + } + from .services.config_service_v2 import BaseConfigServiceV2Client from .services.config_service_v2 import BaseConfigServiceV2AsyncClient diff --git a/packages/gapic-generator/tests/integration/goldens/redis/google/cloud/redis_v1/__init__.py b/packages/gapic-generator/tests/integration/goldens/redis/google/cloud/redis_v1/__init__.py index c2897c61e9d7..29e76ed5e656 100755 --- a/packages/gapic-generator/tests/integration/goldens/redis/google/cloud/redis_v1/__init__.py +++ b/packages/gapic-generator/tests/integration/goldens/redis/google/cloud/redis_v1/__init__.py @@ -22,6 +22,12 @@ from importlib import metadata +if sys.version_info >= (3, 15): # pragma: NO COVER + __lazy_modules__ = { +f"{__name__}.services.cloud_redis", +f"{__name__}.types.cloud_redis", + } + from .services.cloud_redis import CloudRedisClient from .services.cloud_redis import CloudRedisAsyncClient diff --git a/packages/gapic-generator/tests/integration/goldens/redis_selective/google/cloud/redis_v1/__init__.py b/packages/gapic-generator/tests/integration/goldens/redis_selective/google/cloud/redis_v1/__init__.py index 043562140c7d..0597a66c810c 100755 --- a/packages/gapic-generator/tests/integration/goldens/redis_selective/google/cloud/redis_v1/__init__.py +++ b/packages/gapic-generator/tests/integration/goldens/redis_selective/google/cloud/redis_v1/__init__.py @@ -22,6 +22,12 @@ from importlib import metadata +if sys.version_info >= (3, 15): # pragma: NO COVER + __lazy_modules__ = { +f"{__name__}.services.cloud_redis", +f"{__name__}.types.cloud_redis", + } + from .services.cloud_redis import CloudRedisClient from .services.cloud_redis import CloudRedisAsyncClient diff --git a/packages/gapic-generator/tests/integration/goldens/storagebatchoperations/google/cloud/storagebatchoperations_v1/__init__.py b/packages/gapic-generator/tests/integration/goldens/storagebatchoperations/google/cloud/storagebatchoperations_v1/__init__.py index c1ad7c247ae0..5e2da0dda762 100755 --- a/packages/gapic-generator/tests/integration/goldens/storagebatchoperations/google/cloud/storagebatchoperations_v1/__init__.py +++ b/packages/gapic-generator/tests/integration/goldens/storagebatchoperations/google/cloud/storagebatchoperations_v1/__init__.py @@ -22,6 +22,13 @@ from importlib import metadata +if sys.version_info >= (3, 15): # pragma: NO COVER + __lazy_modules__ = { +f"{__name__}.services.storage_batch_operations", +f"{__name__}.types.storage_batch_operations", +f"{__name__}.types.storage_batch_operations_types", + } + from .services.storage_batch_operations import StorageBatchOperationsClient from .services.storage_batch_operations import StorageBatchOperationsAsyncClient