31 lines
864 B
Python
31 lines
864 B
Python
|
import dna
|
||
|
|
||
|
|
||
|
class Reader:
|
||
|
"""
|
||
|
A utility class used for reading DNA files
|
||
|
"""
|
||
|
|
||
|
@staticmethod
|
||
|
def create_stream_reader(dna_path: str) -> dna.BinaryStreamReader:
|
||
|
"""
|
||
|
Creates a stream reader needed for reading values from the DNA file.
|
||
|
|
||
|
@type dna_path: str
|
||
|
@param dna_path: The path of the DNA file
|
||
|
|
||
|
@rtype: dna.BinaryStreamReader
|
||
|
@returns: The stream reader needed for reading values from the DNA file
|
||
|
"""
|
||
|
|
||
|
stream = dna.FileStream(
|
||
|
dna_path, dna.FileStream.AccessMode_Read, dna.FileStream.OpenMode_Binary
|
||
|
)
|
||
|
|
||
|
reader = dna.BinaryStreamReader(stream, dna.DataLayer_All)
|
||
|
reader.read()
|
||
|
if not dna.Status.isOk():
|
||
|
status = dna.Status.get()
|
||
|
raise RuntimeError(f"Error loading DNA: {status.message}")
|
||
|
return reader
|