Skip to content

Commit 70cea11

Browse files
committed
Refactor to #40
1 parent 5a2b409 commit 70cea11

File tree

1 file changed

+19
-14
lines changed

1 file changed

+19
-14
lines changed

harp/reader.py

Lines changed: 19 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)