Skip to content

Commit c09c573

Browse files
committed
Refactor to #40
1 parent 30ecc6b commit c09c573

1 file changed

Lines changed: 19 additions & 14 deletions

File tree

harp/reader.py

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

Comments
 (0)