11import os
2- import re
32from math import log2
43from os import PathLike
54from pathlib import Path
1110from typing import Any , BinaryIO , Callable , Iterable , Optional , Protocol , Union
1211from pandas ._typing import Axes
1312from harp .model import BitMask , GroupMask , Model , PayloadMember , Register
14- from harp .io import read
13+ from harp .io import MessageType , read
1514from harp .schema import read_schema
1615
17- _camel_to_snake_regex = re .compile (r"(?<!^)(?=[A-Z])" )
18-
1916
2017@dataclass
2118class _ReaderParams :
@@ -75,18 +72,14 @@ def parser(
7572 ):
7673 df = g (file , columns , epoch , keep_type )
7774 result = f (df )
78- type_col = df .get ("type" )
75+ type_col = df .get (MessageType . __name__ )
7976 if type_col is not None :
80- result ["type" ] = type_col
77+ result [MessageType . __name__ ] = type_col
8178 return result
8279
8380 return parser
8481
8582
86- def _id_camel_to_snake (id : str ):
87- return _camel_to_snake_regex .sub ("_" , id ).lower ()
88-
89-
9083def _create_bit_parser (mask : int ):
9184 def parser (xs : Series ) -> Series :
9285 return (xs & mask ) != 0
@@ -95,10 +88,7 @@ def parser(xs: Series) -> Series:
9588
9689
9790def _create_bitmask_parser (bitMask : BitMask ):
98- lookup = [
99- (_id_camel_to_snake (k ), _create_bit_parser (int (v .root )))
100- for k , v in bitMask .bits .items ()
101- ]
91+ lookup = [(k , _create_bit_parser (int (v .root ))) for k , v in bitMask .bits .items ()]
10292
10393 def parser (df : DataFrame ):
10494 return DataFrame ({n : f (df [0 ]) for n , f in lookup }, index = df .index )
@@ -203,7 +193,7 @@ def _create_register_parser(device: Model, name: str, params: _ReaderParams):
203193
204194 if register .payloadSpec is not None :
205195 payload_parsers = [
206- (_id_camel_to_snake ( key ) , _create_payloadmember_parser (device , member ))
196+ (key , _create_payloadmember_parser (device , member ))
207197 for key , member in register .payloadSpec .items ()
208198 ]
209199
@@ -213,8 +203,7 @@ def parser(df: DataFrame):
213203 reader = _compose_parser (parser , reader , params )
214204 return RegisterReader (register , reader )
215205
216- columns = [_id_camel_to_snake (name )]
217- reader = partial (reader , columns = columns )
206+ reader = partial (reader , columns = [name ])
218207 return RegisterReader (register , reader )
219208
220209
0 commit comments