1- """
2- maxminddb.decoder
3- ~~~~~~~~~~~~~~~~~
4-
5- This package contains code for decoding the MaxMind DB data section.
6-
7- """
1+ """Decoder for the MaxMind DB data section."""
82
93import struct
10- from typing import Dict , List , Tuple , Union , cast
4+ from typing import Union , cast
115
126try :
137 # pylint: disable=unused-import
@@ -43,35 +37,35 @@ def __init__(
4337 self ._buffer = database_buffer
4438 self ._pointer_base = pointer_base
4539
46- def _decode_array (self , size : int , offset : int ) -> Tuple [ List [Record ], int ]:
40+ def _decode_array (self , size : int , offset : int ) -> tuple [ list [Record ], int ]:
4741 array = []
4842 for _ in range (size ):
4943 (value , offset ) = self .decode (offset )
5044 array .append (value )
5145 return array , offset
5246
53- def _decode_boolean (self , size : int , offset : int ) -> Tuple [bool , int ]:
47+ def _decode_boolean (self , size : int , offset : int ) -> tuple [bool , int ]:
5448 return size != 0 , offset
5549
56- def _decode_bytes (self , size : int , offset : int ) -> Tuple [bytes , int ]:
50+ def _decode_bytes (self , size : int , offset : int ) -> tuple [bytes , int ]:
5751 new_offset = offset + size
5852 return self ._buffer [offset :new_offset ], new_offset
5953
60- def _decode_double (self , size : int , offset : int ) -> Tuple [float , int ]:
54+ def _decode_double (self , size : int , offset : int ) -> tuple [float , int ]:
6155 self ._verify_size (size , 8 )
6256 new_offset = offset + size
6357 packed_bytes = self ._buffer [offset :new_offset ]
6458 (value ,) = struct .unpack (b"!d" , packed_bytes )
6559 return value , new_offset
6660
67- def _decode_float (self , size : int , offset : int ) -> Tuple [float , int ]:
61+ def _decode_float (self , size : int , offset : int ) -> tuple [float , int ]:
6862 self ._verify_size (size , 4 )
6963 new_offset = offset + size
7064 packed_bytes = self ._buffer [offset :new_offset ]
7165 (value ,) = struct .unpack (b"!f" , packed_bytes )
7266 return value , new_offset
7367
74- def _decode_int32 (self , size : int , offset : int ) -> Tuple [int , int ]:
68+ def _decode_int32 (self , size : int , offset : int ) -> tuple [int , int ]:
7569 if size == 0 :
7670 return 0 , offset
7771 new_offset = offset + size
@@ -82,15 +76,15 @@ def _decode_int32(self, size: int, offset: int) -> Tuple[int, int]:
8276 (value ,) = struct .unpack (b"!i" , packed_bytes )
8377 return value , new_offset
8478
85- def _decode_map (self , size : int , offset : int ) -> Tuple [ Dict [str , Record ], int ]:
86- container : Dict [str , Record ] = {}
79+ def _decode_map (self , size : int , offset : int ) -> tuple [ dict [str , Record ], int ]:
80+ container : dict [str , Record ] = {}
8781 for _ in range (size ):
8882 (key , offset ) = self .decode (offset )
8983 (value , offset ) = self .decode (offset )
90- container [cast (str , key )] = value
84+ container [cast (" str" , key )] = value
9185 return container , offset
9286
93- def _decode_pointer (self , size : int , offset : int ) -> Tuple [Record , int ]:
87+ def _decode_pointer (self , size : int , offset : int ) -> tuple [Record , int ]:
9488 pointer_size = (size >> 3 ) + 1
9589
9690 buf = self ._buffer [offset : offset + pointer_size ]
@@ -113,12 +107,12 @@ def _decode_pointer(self, size: int, offset: int) -> Tuple[Record, int]:
113107 (value , _ ) = self .decode (pointer )
114108 return value , new_offset
115109
116- def _decode_uint (self , size : int , offset : int ) -> Tuple [int , int ]:
110+ def _decode_uint (self , size : int , offset : int ) -> tuple [int , int ]:
117111 new_offset = offset + size
118112 uint_bytes = self ._buffer [offset :new_offset ]
119113 return int .from_bytes (uint_bytes , "big" ), new_offset
120114
121- def _decode_utf8_string (self , size : int , offset : int ) -> Tuple [str , int ]:
115+ def _decode_utf8_string (self , size : int , offset : int ) -> tuple [str , int ]:
122116 new_offset = offset + size
123117 return self ._buffer [offset :new_offset ].decode ("utf-8" ), new_offset
124118
@@ -138,7 +132,7 @@ def _decode_utf8_string(self, size: int, offset: int) -> Tuple[str, int]:
138132 15 : _decode_float ,
139133 }
140134
141- def decode (self , offset : int ) -> Tuple [Record , int ]:
135+ def decode (self , offset : int ) -> tuple [Record , int ]:
142136 """Decode a section of the data section starting at offset.
143137
144138 Arguments:
@@ -162,7 +156,7 @@ def decode(self, offset: int) -> Tuple[Record, int]:
162156 (size , new_offset ) = self ._size_from_ctrl_byte (ctrl_byte , new_offset , type_num )
163157 return decoder (self , size , new_offset )
164158
165- def _read_extended (self , offset : int ) -> Tuple [int , int ]:
159+ def _read_extended (self , offset : int ) -> tuple [int , int ]:
166160 next_byte = self ._buffer [offset ]
167161 type_num = next_byte + 7
168162 if type_num < 7 :
@@ -185,7 +179,7 @@ def _size_from_ctrl_byte(
185179 ctrl_byte : int ,
186180 offset : int ,
187181 type_num : int ,
188- ) -> Tuple [int , int ]:
182+ ) -> tuple [int , int ]:
189183 size = ctrl_byte & 0x1F
190184 if type_num == 1 or size < 29 :
191185 return size , offset
0 commit comments