Open anna-hope opened 2 years ago
The type annotations in general are problematic throughout the API. For instance, the AsyncQuery#get
method:
async def get(
self,
transaction: Transaction = None,
retry: retries.Retry = gapic_v1.method.DEFAULT,
timeout: float = None,
) -> list:
the transaction here is not market as Optional[Transaction], which causes type checker configured to strict to complain that None is invalid value.
Additionally, in comment of this method:
transaction
(Optional[:class:`~google.cloud.firestore_v1.transaction.Transaction`]):
the transaction is supposed to be an Optional[Transaction], but not an AsyncTransaction - when you use AsyncClient, you get AsyncTransaction.
As a general note, given the popularity of VisualStudio Code, and thus pylance type checker, it would be awesome if you folks could allocate a day or two of someone's work life to just go through the APIs documentation and annotation and double check that simple use of the library does not involve frequent use of # type:ignore
.
Indeed there are mistyped annotations that should be fixed.
And at the moment there are 168 uses of # type: ignore
so this will take some time to address.
Related to #447
The type annotation for
client
inAsyncTransaction
constructor should be...async_client.AsyncClient
, not...client.Client
: https://github.com/googleapis/python-firestore/blob/3f1fd365688980c9f82a9fc69650129fa8c01dcf/google/cloud/firestore_v1/async_transaction.py#L56I can submit a PR to fix this.
I am not sure if the annotation for
_commit_with_retry
https://github.com/googleapis/python-firestore/blob/3f1fd365688980c9f82a9fc69650129fa8c01dcf/google/cloud/firestore_v1/async_transaction.py#L346 should also refer to AsyncClient. If it should, I can fix that too.