3
3
import logging
4
4
from abc import ABC
5
5
from collections import Iterable
6
- from typing import Any , Optional , Union , cast
6
+ from typing import Any , Optional , TypeVar , Union , cast
7
7
8
8
from func_adl import EventDataset
9
9
from qastle import python_ast_to_text_ast
@@ -17,7 +17,10 @@ def __init__(self, msg):
17
17
Exception .__init__ (self , msg )
18
18
19
19
20
- class ServiceXDatasetSourceBase (EventDataset , ABC ):
20
+ T = TypeVar ('T' )
21
+
22
+
23
+ class ServiceXDatasetSourceBase (EventDataset [T ], ABC ):
21
24
'''
22
25
Base class for a ServiceX backend dataset.
23
26
@@ -169,7 +172,7 @@ async def execute_result_async(self, a: ast.Call, title: Optional[str] = None) -
169
172
return await attr (q_str , title = title )
170
173
171
174
172
- class ServiceXSourceCPPBase (ServiceXDatasetSourceBase ):
175
+ class ServiceXSourceCPPBase (ServiceXDatasetSourceBase [ T ] ):
173
176
def __init__ (self , sx : Union [ServiceXDataset , DatasetType ], backend_name : str ):
174
177
'''Create a C++ backend data set source
175
178
@@ -183,23 +186,23 @@ def __init__(self, sx: Union[ServiceXDataset, DatasetType], backend_name: str):
183
186
self .query_ast .args .append (ast .Str (s = 'bogus.root' )) # type: ignore
184
187
185
188
186
- class ServiceXSourceXAOD (ServiceXSourceCPPBase ):
189
+ class ServiceXSourceXAOD (ServiceXSourceCPPBase [ T ] ):
187
190
def __init__ (self , sx : Union [ServiceXDataset , DatasetType ], backend = 'xaod' ):
188
191
'''
189
192
Create a servicex dataset sequence from a servicex dataset
190
193
'''
191
194
super ().__init__ (sx , backend )
192
195
193
196
194
- class ServiceXSourceCMSRun1AOD (ServiceXSourceCPPBase ):
197
+ class ServiceXSourceCMSRun1AOD (ServiceXSourceCPPBase [ T ] ):
195
198
def __init__ (self , sx : Union [ServiceXDataset , DatasetType ], backend = 'cms_run1_aod' ):
196
199
'''
197
200
Create a servicex dataset sequence from a servicex dataset
198
201
'''
199
202
super ().__init__ (sx , backend )
200
203
201
204
202
- class ServiceXSourceUpROOT (ServiceXDatasetSourceBase ):
205
+ class ServiceXSourceUpROOT (ServiceXDatasetSourceBase [ T ] ):
203
206
def __init__ (self , sx : Union [ServiceXDataset , DatasetType ], treename : str , backend_name = 'uproot' ):
204
207
'''
205
208
Create a servicex dataset sequence from a servicex dataset
0 commit comments