@@ -77,8 +77,9 @@ def __dir__(self) -> Iterable[str]:
7777 def __getattr__ (self , __name : str ) -> RegisterReader :
7878 return self .registers [__name ]
7979
80- @staticmethod
80+ @classmethod
8181 def from_file (
82+ cls ,
8283 filepath : PathLike ,
8384 base_path : Optional [PathLike ] = None ,
8485 include_common_registers : bool = True ,
@@ -119,13 +120,14 @@ def from_file(
119120 base_path = Path (base_path ).absolute ().resolve () / device .device
120121
121122 reg_readers = {
122- name : _create_register_parser (device , name , _ReaderParams (base_path , epoch , keep_type ))
123+ name : _create_register_handler (device , name , _ReaderParams (base_path , epoch , keep_type ))
123124 for name in device .registers .keys ()
124125 }
125- return DeviceReader (device , reg_readers )
126+ return cls (device , reg_readers )
126127
127- @staticmethod
128+ @classmethod
128129 def from_url (
130+ cls ,
129131 url : str ,
130132 base_path : Optional [PathLike ] = None ,
131133 include_common_registers : bool = True ,
@@ -170,13 +172,14 @@ def from_url(
170172 base_path = Path (base_path ).absolute ().resolve ()
171173
172174 reg_readers = {
173- name : _create_register_parser (device , name , _ReaderParams (base_path , epoch , keep_type ))
175+ name : _create_register_handler (device , name , _ReaderParams (base_path , epoch , keep_type ))
174176 for name in device .registers .keys ()
175177 }
176- return DeviceReader (device , reg_readers )
178+ return cls (device , reg_readers )
177179
178- @staticmethod
180+ @classmethod
179181 def from_str (
182+ cls ,
180183 schema : str ,
181184 base_path : Optional [PathLike ] = None ,
182185 include_common_registers : bool = True ,
@@ -216,13 +219,14 @@ def from_str(
216219 base_path = Path (base_path ).absolute ().resolve ()
217220
218221 reg_readers = {
219- name : _create_register_parser (device , name , _ReaderParams (base_path , epoch , keep_type ))
222+ name : _create_register_handler (device , name , _ReaderParams (base_path , epoch , keep_type ))
220223 for name in device .registers .keys ()
221224 }
222- return DeviceReader (device , reg_readers )
225+ return cls (device , reg_readers )
223226
224- @staticmethod
227+ @classmethod
225228 def from_model (
229+ cls ,
226230 model : Model ,
227231 base_path : Optional [PathLike ] = None ,
228232 epoch : Optional [datetime ] = None ,
@@ -256,13 +260,14 @@ def from_model(
256260 base_path = Path (base_path ).absolute ().resolve ()
257261
258262 reg_readers = {
259- name : _create_register_parser (model , name , _ReaderParams (base_path , epoch , keep_type ))
263+ name : _create_register_handler (model , name , _ReaderParams (base_path , epoch , keep_type ))
260264 for name in model .registers .keys ()
261265 }
262- return DeviceReader (model , reg_readers )
266+ return cls (model , reg_readers )
263267
264- @staticmethod
268+ @classmethod
265269 def from_dataset (
270+ cls ,
266271 dataset : PathLike ,
267272 include_common_registers : bool = True ,
268273 epoch : Optional [datetime ] = None ,
@@ -296,7 +301,7 @@ def from_dataset(
296301 is_dir = os .path .isdir (path )
297302 if is_dir :
298303 filepath = path / "device.yml"
299- return DeviceReader .from_file (
304+ return cls .from_file (
300305 filepath = filepath ,
301306 base_path = path ,
302307 include_common_registers = include_common_registers ,
0 commit comments