Skip to content
This repository was archived by the owner on May 20, 2025. It is now read-only.

Commit ea5839c

Browse files
committed
Add types to all the base classes
1 parent 786c968 commit ea5839c

File tree

1 file changed

+9
-6
lines changed

1 file changed

+9
-6
lines changed

func_adl_servicex/ServiceX.py

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
import logging
44
from abc import ABC
55
from collections import Iterable
6-
from typing import Any, Optional, Union, cast
6+
from typing import Any, Optional, TypeVar, Union, cast
77

88
from func_adl import EventDataset
99
from qastle import python_ast_to_text_ast
@@ -17,7 +17,10 @@ def __init__(self, msg):
1717
Exception.__init__(self, msg)
1818

1919

20-
class ServiceXDatasetSourceBase (EventDataset, ABC):
20+
T = TypeVar('T')
21+
22+
23+
class ServiceXDatasetSourceBase (EventDataset[T], ABC):
2124
'''
2225
Base class for a ServiceX backend dataset.
2326
@@ -169,7 +172,7 @@ async def execute_result_async(self, a: ast.Call, title: Optional[str] = None) -
169172
return await attr(q_str, title=title)
170173

171174

172-
class ServiceXSourceCPPBase(ServiceXDatasetSourceBase):
175+
class ServiceXSourceCPPBase(ServiceXDatasetSourceBase[T]):
173176
def __init__(self, sx: Union[ServiceXDataset, DatasetType], backend_name: str):
174177
'''Create a C++ backend data set source
175178
@@ -183,23 +186,23 @@ def __init__(self, sx: Union[ServiceXDataset, DatasetType], backend_name: str):
183186
self.query_ast.args.append(ast.Str(s='bogus.root')) # type: ignore
184187

185188

186-
class ServiceXSourceXAOD(ServiceXSourceCPPBase):
189+
class ServiceXSourceXAOD(ServiceXSourceCPPBase[T]):
187190
def __init__(self, sx: Union[ServiceXDataset, DatasetType], backend='xaod'):
188191
'''
189192
Create a servicex dataset sequence from a servicex dataset
190193
'''
191194
super().__init__(sx, backend)
192195

193196

194-
class ServiceXSourceCMSRun1AOD(ServiceXSourceCPPBase):
197+
class ServiceXSourceCMSRun1AOD(ServiceXSourceCPPBase[T]):
195198
def __init__(self, sx: Union[ServiceXDataset, DatasetType], backend='cms_run1_aod'):
196199
'''
197200
Create a servicex dataset sequence from a servicex dataset
198201
'''
199202
super().__init__(sx, backend)
200203

201204

202-
class ServiceXSourceUpROOT(ServiceXDatasetSourceBase):
205+
class ServiceXSourceUpROOT(ServiceXDatasetSourceBase[T]):
203206
def __init__(self, sx: Union[ServiceXDataset, DatasetType], treename: str, backend_name='uproot'):
204207
'''
205208
Create a servicex dataset sequence from a servicex dataset

0 commit comments

Comments
 (0)