11import datetime
22import os
3- from typing import Any , Dict , List
3+ from typing import Any , Dict , List , Optional
44
55from viam .app .viam_client import ViamClient
66
@@ -12,7 +12,7 @@ class ResourceDataConsumer:
1212 """
1313
1414 @classmethod
15- def construct_query (cls , part_id : str , resource_name : str , time_back : datetime .timedelta ):
15+ def construct_query (cls , part_id : str , resource_name : str , time_back : datetime .timedelta ) -> List [ Dict [ str , Any ]] :
1616 return [
1717 {
1818 "$match" : {
@@ -24,12 +24,18 @@ def construct_query(cls, part_id: str, resource_name: str, time_back: datetime.t
2424 ]
2525
2626 @classmethod
27- async def query_tabular_data (cls , resource_name : str , time_back : datetime .timedelta , ** kwargs ) -> List [Dict [str , Any ]]:
27+ async def query_tabular_data (
28+ cls , resource_name : str , time_back : datetime .timedelta , additional_stages : Optional [List [Dict [str , Any ]]] = None , ** kwargs
29+ ) -> List [Dict [str , Any ]]:
2830 """Return historical data for this module, queried with MQL."""
2931 viam_client = await ViamClient .create_from_env_vars ()
3032
3133 org_id = os .environ ["VIAM_PRIMARY_ORG_ID" ]
3234 part_id = os .environ ["VIAM_MACHINE_PART_ID" ]
3335
3436 query = cls .construct_query (part_id = part_id , resource_name = resource_name , time_back = time_back )
37+
38+ if additional_stages is not None :
39+ query += additional_stages
40+
3541 return await viam_client .data_client .tabular_data_by_mql (org_id , query )
0 commit comments