From c2de2921297d315117acdc1a3fd6305c27245e72 Mon Sep 17 00:00:00 2001 From: danghai Date: Sun, 3 Dec 2023 15:35:51 -0500 Subject: [PATCH] Update firestore to use FieldFilter. Fix: #431 UserWarning in build log: Detected filter using positional arguments. Prefer using the 'filter' keyword argument instead The filter argument takes BaseFilter class which is an abstract class and it is implemented in FieldFilter. This class can be imported from google.cloud.firestore_v1.base_query Reference: https://github.com/googleapis/python-firestore/issues/705 https://github.com/GoogleCloudPlatform/python-docs-samples/pull/10407 --- kcidb/monitor/spool/__init__.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/kcidb/monitor/spool/__init__.py b/kcidb/monitor/spool/__init__.py index c531bb80..1eeececf 100644 --- a/kcidb/monitor/spool/__init__.py +++ b/kcidb/monitor/spool/__init__.py @@ -12,6 +12,7 @@ import email import email.policy from google.cloud import firestore +from google.cloud.firestore_v1.base_query import FieldFilter from kcidb.misc import ArgumentParser, iso_timestamp, log_and_print_excepthook from kcidb.monitor.misc import is_valid_firestore_id from kcidb.monitor.output import Notification @@ -238,8 +239,9 @@ def wipe(self, until=None): isinstance(until, datetime.datetime) and until.tzinfo if until is None: until = datetime.datetime.now(datetime.timezone.utc) + field_filter = FieldFilter("created_at", "<=", until) for snapshot in \ - self._get_coll().where("created_at", "<=", until). \ + self._get_coll().where(filter=field_filter). \ select([]).stream(): snapshot.reference.delete() @@ -259,8 +261,9 @@ def unpicked(self, timestamp=None): isinstance(timestamp, datetime.datetime) and timestamp.tzinfo if timestamp is None: timestamp = datetime.datetime.now(datetime.timezone.utc) + field_filter = FieldFilter("picked_until", "<", timestamp) for snapshot in \ - self._get_coll().where("picked_until", "<", timestamp). \ + self._get_coll().where(filter=field_filter). \ select([]).stream(): id = snapshot.id assert Client.is_valid_id(id)