@@ -126,13 +126,17 @@ def unparsed(self):
126
126
def unparsed_length (self ):
127
127
return len (self ._parsable ) - self ._parsed_length
128
128
129
+ @abc .abstractmethod
130
+ def _parse_numeric (self , name , converter , item_size ):
131
+ raise NotImplementedError ()
132
+
129
133
def parse_parsable (self , name , parsable_class , item_size = None ):
130
134
if item_size is None :
131
135
parsed_object , parsed_length = parsable_class .parse_immutable (
132
136
self ._parsable [self ._parsed_length :]
133
137
)
134
138
else :
135
- parsable_length , _ = self ._parse_numeric_array (name , 1 , item_size , int )
139
+ parsable_length , _ = self ._parse_numeric (name , int , item_size )
136
140
parsable_length = parsable_length [0 ]
137
141
parsed_object = parsable_class .parse_exact_size (
138
142
self ._parsable [self ._parsed_length + item_size :self ._parsed_length + parsable_length + item_size ]
@@ -242,6 +246,9 @@ def _parse_numeric_array( # pylint: disable=too-many-arguments,too-many-positio
242
246
243
247
return value , item_offset - self ._parsed_length
244
248
249
+ def _parse_numeric (self , name , converter , item_size ):
250
+ raise NotImplementedError ()
251
+
245
252
def parse_numeric (self , name , converter = int ):
246
253
value , parsed_length = self ._parse_numeric_array (name , 1 , None , converter , False )
247
254
self ._parsed_values [name ] = value [0 ]
@@ -529,6 +536,9 @@ def _parse_numeric_array(self, name, item_num, item_size, item_numeric_class):
529
536
530
537
return value , item_num * item_size
531
538
539
+ def _parse_numeric (self , name , converter , item_size ):
540
+ return self ._parse_numeric_array (name , 1 , item_size , converter )
541
+
532
542
def parse_numeric (self , name , size , converter = int ):
533
543
value , parsed_length = self ._parse_numeric_array (name , 1 , size , converter )
534
544
0 commit comments