Skip to content

Commit 3cefa8e

Browse files
committed
Fix rebasing
1 parent 13a6862 commit 3cefa8e

1 file changed

Lines changed: 1 addition & 242 deletions

File tree

harp/reader.py

Lines changed: 1 addition & 242 deletions
Original file line numberDiff line numberDiff line change
@@ -313,248 +313,7 @@ def from_dataset(
313313
keep_type=keep_type,
314314
)
315315
else:
316-
raise ValueError(
317-
"The dataset must be a directory containing a device.yml file."
318-
)
319-
320-
@staticmethod
321-
def from_file(
322-
filepath: PathLike,
323-
base_path: Optional[PathLike] = None,
324-
include_common_registers: bool = True,
325-
epoch: Optional[datetime] = None,
326-
keep_type: bool = False,
327-
) -> "DeviceReader":
328-
"""Creates a device reader object from the specified schema yml file.
329-
330-
Parameters
331-
----------
332-
filepath
333-
A path to the device yml schema describing the device.
334-
base_path
335-
The path to attempt to resolve the location of data files.
336-
include_common_registers
337-
Specifies whether to include the set of Harp common registers in the
338-
parsed device schema object. If a parsed device schema object is provided,
339-
this parameter is ignored.
340-
epoch
341-
The default reference datetime at which time zero begins. If specified,
342-
the data frames returned by each register reader will have a datetime index.
343-
keep_type
344-
Specifies whether to include a column with the message type by default.
345-
346-
Returns
347-
-------
348-
A device reader object which can be used to read binary data for each
349-
register or to access metadata about each register. Individual registers
350-
can be accessed using dot notation using the name of the register as the
351-
key.
352-
"""
353-
354-
device = read_schema(filepath, include_common_registers)
355-
if base_path is None:
356-
path = Path(filepath).absolute().resolve()
357-
base_path = path.parent / device.device
358-
else:
359-
base_path = Path(base_path).absolute().resolve() / device.device
360-
361-
reg_readers = {
362-
name: _create_register_parser(
363-
device, name, _ReaderParams(base_path, epoch, keep_type)
364-
)
365-
for name in device.registers.keys()
366-
}
367-
return DeviceReader(device, reg_readers)
368-
369-
@staticmethod
370-
def from_url(
371-
url: str,
372-
base_path: Optional[PathLike] = None,
373-
include_common_registers: bool = True,
374-
epoch: Optional[datetime] = None,
375-
keep_type: bool = False,
376-
timeout: int = 5,
377-
) -> "DeviceReader":
378-
"""Creates a device reader object from a url pointing to a device.yml file.
379-
380-
Parameters
381-
----------
382-
url
383-
The url pointing to the device.yml schema describing the device.
384-
base_path
385-
The path to attempt to resolve the location of data files.
386-
include_common_registers
387-
Specifies whether to include the set of Harp common registers in the
388-
parsed device schema object. If a parsed device schema object is provided,
389-
this parameter is ignored.
390-
epoch
391-
The default reference datetime at which time zero begins. If specified,
392-
the data frames returned by each register reader will have a datetime index.
393-
keep_type
394-
Specifies whether to include a column with the message type by default.
395-
timeout
396-
The number of seconds to wait for the server to send data before giving up.
397-
Returns
398-
-------
399-
A device reader object which can be used to read binary data for each
400-
register or to access metadata about each register. Individual registers
401-
can be accessed using dot notation using the name of the register as the
402-
key.
403-
"""
404-
405-
response = requests.get(url, timeout=timeout)
406-
text = response.text
407-
408-
device = read_schema(text, include_common_registers)
409-
if base_path is None:
410-
base_path = Path(device.device).absolute().resolve()
411-
else:
412-
base_path = Path(base_path).absolute().resolve()
413-
414-
reg_readers = {
415-
name: _create_register_parser(
416-
device, name, _ReaderParams(base_path, epoch, keep_type)
417-
)
418-
for name in device.registers.keys()
419-
}
420-
return DeviceReader(device, reg_readers)
421-
422-
@staticmethod
423-
def from_str(
424-
schema: str,
425-
base_path: Optional[PathLike] = None,
426-
include_common_registers: bool = True,
427-
epoch: Optional[datetime] = None,
428-
keep_type: bool = False,
429-
) -> "DeviceReader":
430-
"""Creates a device reader object from a string containing a device.yml schema.
431-
432-
Parameters
433-
----------
434-
schema
435-
The string containing the device.yml schema describing the device.
436-
base_path
437-
The path to attempt to resolve the location of data files.
438-
include_common_registers
439-
Specifies whether to include the set of Harp common registers in the
440-
parsed device schema object. If a parsed device schema object is provided,
441-
this parameter is ignored.
442-
epoch
443-
The default reference datetime at which time zero begins. If specified,
444-
the data frames returned by each register reader will have a datetime index.
445-
keep_type
446-
Specifies whether to include a column with the message type by default.
447-
448-
Returns
449-
-------
450-
A device reader object which can be used to read binary data for each
451-
register or to access metadata about each register. Individual registers
452-
can be accessed using dot notation using the name of the register as the
453-
key.
454-
"""
455-
456-
device = read_schema(schema, include_common_registers)
457-
if base_path is None:
458-
base_path = Path(device.device).absolute().resolve()
459-
else:
460-
base_path = Path(base_path).absolute().resolve()
461-
462-
reg_readers = {
463-
name: _create_register_parser(
464-
device, name, _ReaderParams(base_path, epoch, keep_type)
465-
)
466-
for name in device.registers.keys()
467-
}
468-
return DeviceReader(device, reg_readers)
469-
470-
@staticmethod
471-
def from_model(
472-
model: Model,
473-
base_path: Optional[PathLike] = None,
474-
epoch: Optional[datetime] = None,
475-
keep_type: bool = False,
476-
) -> "DeviceReader":
477-
"""Creates a device reader object from a parsed device schema object.
478-
479-
Parameters
480-
----------
481-
model
482-
The parsed device schema object describing the device.
483-
base_path
484-
The path to attempt to resolve the location of data files.
485-
epoch
486-
The default reference datetime at which time zero begins. If specified,
487-
the data frames returned by each register reader will have a datetime index.
488-
keep_type
489-
Specifies whether to include a column with the message type by default.
490-
491-
Returns
492-
-------
493-
A device reader object which can be used to read binary data for each
494-
register or to access metadata about each register. Individual registers
495-
can be accessed using dot notation using the name of the register as the
496-
key.
497-
"""
498-
499-
if base_path is None:
500-
base_path = Path(model.device).absolute().resolve()
501-
else:
502-
base_path = Path(base_path).absolute().resolve()
503-
504-
reg_readers = {
505-
name: _create_register_parser(
506-
model, name, _ReaderParams(base_path, epoch, keep_type)
507-
)
508-
for name in model.registers.keys()
509-
}
510-
return DeviceReader(model, reg_readers)
511-
512-
@staticmethod
513-
def from_dataset(
514-
dataset: PathLike,
515-
include_common_registers: bool = True,
516-
epoch: Optional[datetime] = None,
517-
keep_type: bool = False,
518-
) -> "DeviceReader":
519-
"""Creates a device reader object from the specified dataset folder.
520-
521-
Parameters
522-
----------
523-
dataset
524-
A path to the dataset folder containing a device.yml schema describing the device.
525-
include_common_registers
526-
Specifies whether to include the set of Harp common registers in the
527-
parsed device schema object. If a parsed device schema object is provided,
528-
this parameter is ignored.
529-
epoch
530-
The default reference datetime at which time zero begins. If specified,
531-
the data frames returned by each register reader will have a datetime index.
532-
keep_type
533-
Specifies whether to include a column with the message type by default.
534-
535-
Returns
536-
-------
537-
A device reader object which can be used to read binary data for each
538-
register or to access metadata about each register. Individual registers
539-
can be accessed using dot notation using the name of the register as the
540-
key.
541-
"""
542-
543-
path = Path(dataset).absolute().resolve()
544-
is_dir = os.path.isdir(path)
545-
if is_dir:
546-
filepath = path / "device.yml"
547-
return DeviceReader.from_file(
548-
filepath=filepath,
549-
base_path=path,
550-
include_common_registers=include_common_registers,
551-
epoch=epoch,
552-
keep_type=keep_type,
553-
)
554-
else:
555-
raise ValueError(
556-
"The dataset must be a directory containing a device.yml file."
557-
)
316+
raise ValueError("The dataset must be a directory containing a device.yml file.")
558317

559318

560319
def _compose_parser(

0 commit comments

Comments
 (0)