googleapis / googleapis/google-cloud-python

Add wrap logic directly to the property methods for callables for long running operations

Ouverte
#15,037 2 commentaires 0 réactions 1 personne assignée Réclamée par @ohmayr Voir sur GitHub
priority: p3 type: feature request
Langage dominant
Python
Étoiles
5.4k
Forks
1.8k
Merge moyen
3 j 4 h
PR mergées (30 j)
122

Description

Instead of implementing `_prep_wrapped_messages` in the base class and overriding it in the async classes, we should wrap the logic directly within the property callable methods and get rid of this method (both from the base class and the subclasses).

What we have now:

```python3
@property
def get_operation(
self,
) -> Callable[
[operations_pb2.GetOperationRequest],
Coroutine[Any, Any, operations_pb2.Operation],
]:
return self._get_operation
```

Instead we could do something like:
```python3
@property
def get_operation(
self,
) -> Callable[
[operations_pb2.GetOperationRequest],
Coroutine[Any, Any, operations_pb2.Operation],
]:
return gapic_v1.method_async.wrap_method(
self.list_operations,
default_retry=retries_async.AsyncRetry(
initial=0.5,
maximum=10.0,
multiplier=2.0,
predicate=retries_async.if_exception_type(
core_exceptions.ServiceUnavailable,
),
deadline=10.0,
),
default_timeout=10.0,
client_info=self.client_info,
),
```

Guide de contribution

Ouvrir le guide de contribution

Évaluation

Cette issue n'a pas encore été évaluée.

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.