@@ -113,16 +113,12 @@ def _firestore_endpoint_handler(
113113) -> None :
114114 event_attributes = raw ._get_attributes ()
115115 event_data : _typing .Any = raw .get_data ()
116- firestore_event_data : _firestore .DocumentEventData
116+ proto_event_data : _firestore .DocumentEventData
117117 content_type : str = event_attributes ["datacontenttype" ]
118118 if "application/json" in content_type or isinstance (event_data , dict ):
119- firestore_event_data = _typing .cast (
120- _firestore .DocumentEventData , _firestore .DocumentEventData .from_json (event_data )
121- )
119+ proto_event_data = _firestore .DocumentEventData .from_json (event_data )
122120 elif "application/protobuf" in content_type or isinstance (event_data , bytes ):
123- firestore_event_data = _typing .cast (
124- _firestore .DocumentEventData , _firestore .DocumentEventData .deserialize (event_data )
125- )
121+ proto_event_data = _firestore .DocumentEventData .deserialize (event_data )
126122 else :
127123 actual_type = type (event_data )
128124 raise TypeError (
@@ -147,47 +143,45 @@ def _firestore_endpoint_handler(
147143 value_snapshot : DocumentSnapshot | None = None
148144 old_value_snapshot : DocumentSnapshot | None = None
149145
150- if firestore_event_data .value :
146+ if proto_event_data .value :
151147 document_dict = _firestore_helpers .decode_dict (
152- firestore_event_data .value .fields , firestore_client
148+ proto_event_data .value .fields , firestore_client
153149 )
154150 value_snapshot = _firestore_v1 .DocumentSnapshot (
155151 firestore_ref ,
156152 document_dict ,
157153 True ,
158154 _datetime_to_pb_timestamp (event_time ),
159- firestore_event_data .value .create_time ,
160- firestore_event_data .value .update_time ,
155+ proto_event_data .value .create_time ,
156+ proto_event_data .value .update_time ,
161157 )
162- if firestore_event_data .old_value :
158+ if proto_event_data .old_value :
163159 document_dict = _firestore_helpers .decode_dict (
164- firestore_event_data .old_value .fields , firestore_client
160+ proto_event_data .old_value .fields , firestore_client
165161 )
166162 old_value_snapshot = _firestore_v1 .DocumentSnapshot (
167163 firestore_ref ,
168164 document_dict ,
169165 True ,
170166 _datetime_to_pb_timestamp (event_time ),
171- firestore_event_data .old_value .create_time ,
172- firestore_event_data .old_value .update_time ,
167+ proto_event_data .old_value .create_time ,
168+ proto_event_data .old_value .update_time ,
173169 )
174170
171+ domain_event_data : DocumentSnapshot | Change [DocumentSnapshot | None ] | None
175172 if event_type in (_event_type_deleted , _event_type_deleted_with_auth_context ):
176- firestore_event_data = _typing . cast ( _firestore . DocumentEventData , old_value_snapshot )
177- if event_type in (_event_type_created , _event_type_created_with_auth_context ):
178- firestore_event_data = _typing . cast ( _firestore . DocumentEventData , value_snapshot )
179- if event_type in (
173+ domain_event_data = old_value_snapshot
174+ elif event_type in (_event_type_created , _event_type_created_with_auth_context ):
175+ domain_event_data = value_snapshot
176+ elif event_type in (
180177 _event_type_written ,
181178 _event_type_updated ,
182179 _event_type_written_with_auth_context ,
183180 _event_type_updated_with_auth_context ,
184181 ):
185- firestore_event_data = _typing .cast (
186- _firestore .DocumentEventData ,
187- Change (
188- before = old_value_snapshot ,
189- after = value_snapshot ,
190- ),
182+ domain_event_data = Change (
183+ before = old_value_snapshot ,
184+ after = value_snapshot ,
191185 )
192186
193187 params : dict [str , str ] = {
@@ -205,7 +199,7 @@ def _firestore_endpoint_handler(
205199 source = event_attributes ["source" ],
206200 type = event_attributes ["type" ],
207201 time = event_time ,
208- data = firestore_event_data ,
202+ data = domain_event_data ,
209203 subject = event_attributes ["subject" ],
210204 params = params ,
211205 )
@@ -220,8 +214,7 @@ def _firestore_endpoint_handler(
220214 )
221215 func (database_event_with_auth_context )
222216 else :
223- # mypy cannot infer that the event type is correct, hence the cast
224- _typing .cast (_C1 | _C2 , func )(database_event ) # type: ignore[arg-type]
217+ func (database_event )
225218
226219
227220@_util .copy_func_kwargs (FirestoreOptions )
0 commit comments