@@ -76,8 +76,9 @@ def __dir__(self) -> Iterable[str]:
7676 def __getattr__ (self , __name : str ) -> RegisterReader :
7777 return self .registers [__name ]
7878
79- @staticmethod
79+ @classmethod
8080 def from_file (
81+ cls ,
8182 filepath : PathLike ,
8283 base_path : Optional [PathLike ] = None ,
8384 include_common_registers : bool = True ,
@@ -118,13 +119,14 @@ def from_file(
118119 base_path = Path (base_path ).absolute ().resolve () / device .device
119120
120121 reg_readers = {
121- name : _create_register_parser (device , name , _ReaderParams (base_path , epoch , keep_type ))
122+ name : _create_register_handler (device , name , _ReaderParams (base_path , epoch , keep_type ))
122123 for name in device .registers .keys ()
123124 }
124- return DeviceReader (device , reg_readers )
125+ return cls (device , reg_readers )
125126
126- @staticmethod
127+ @classmethod
127128 def from_url (
129+ cls ,
128130 url : str ,
129131 base_path : Optional [PathLike ] = None ,
130132 include_common_registers : bool = True ,
@@ -169,13 +171,14 @@ def from_url(
169171 base_path = Path (base_path ).absolute ().resolve ()
170172
171173 reg_readers = {
172- name : _create_register_parser (device , name , _ReaderParams (base_path , epoch , keep_type ))
174+ name : _create_register_handler (device , name , _ReaderParams (base_path , epoch , keep_type ))
173175 for name in device .registers .keys ()
174176 }
175- return DeviceReader (device , reg_readers )
177+ return cls (device , reg_readers )
176178
177- @staticmethod
179+ @classmethod
178180 def from_str (
181+ cls ,
179182 schema : str ,
180183 base_path : Optional [PathLike ] = None ,
181184 include_common_registers : bool = True ,
@@ -215,13 +218,14 @@ def from_str(
215218 base_path = Path (base_path ).absolute ().resolve ()
216219
217220 reg_readers = {
218- name : _create_register_parser (device , name , _ReaderParams (base_path , epoch , keep_type ))
221+ name : _create_register_handler (device , name , _ReaderParams (base_path , epoch , keep_type ))
219222 for name in device .registers .keys ()
220223 }
221- return DeviceReader (device , reg_readers )
224+ return cls (device , reg_readers )
222225
223- @staticmethod
226+ @classmethod
224227 def from_model (
228+ cls ,
225229 model : Model ,
226230 base_path : Optional [PathLike ] = None ,
227231 epoch : Optional [datetime ] = None ,
@@ -255,13 +259,14 @@ def from_model(
255259 base_path = Path (base_path ).absolute ().resolve ()
256260
257261 reg_readers = {
258- name : _create_register_parser (model , name , _ReaderParams (base_path , epoch , keep_type ))
262+ name : _create_register_handler (model , name , _ReaderParams (base_path , epoch , keep_type ))
259263 for name in model .registers .keys ()
260264 }
261- return DeviceReader (model , reg_readers )
265+ return cls (model , reg_readers )
262266
263- @staticmethod
267+ @classmethod
264268 def from_dataset (
269+ cls ,
265270 dataset : PathLike ,
266271 include_common_registers : bool = True ,
267272 epoch : Optional [datetime ] = None ,
@@ -295,7 +300,7 @@ def from_dataset(
295300 is_dir = os .path .isdir (path )
296301 if is_dir :
297302 filepath = path / "device.yml"
298- return DeviceReader .from_file (
303+ return cls .from_file (
299304 filepath = filepath ,
300305 base_path = path ,
301306 include_common_registers = include_common_registers ,
0 commit comments