1414try :
1515 import maxminddb .extension
1616except ImportError :
17- maxminddb .extension = None # type: ignore
17+ maxminddb .extension = None # type: ignore[assignment]
1818
1919from maxminddb import InvalidDatabaseError , open_database
2020from maxminddb .const import (
2828from maxminddb .reader import Reader
2929
3030
31- def get_reader_from_file_descriptor (filepath , mode ) -> Reader :
31+ def get_reader_from_file_descriptor (filepath : str , mode : int ) -> Reader :
3232 """Patches open_database() for class TestFDReader()."""
3333 if mode == MODE_FD :
3434 with open (filepath , "rb" ) as mmdb_fh :
@@ -53,7 +53,7 @@ class BaseTestReader(unittest.TestCase):
5353 if os .name != "nt" :
5454 mp = multiprocessing .get_context ("fork" )
5555
56- def ipf (self , ip ) -> Union [ipaddress .IPv4Address , ipaddress .IPv6Address ]:
56+ def ipf (self , ip : str ) -> Union [ipaddress .IPv4Address , ipaddress .IPv6Address , str ]:
5757 if self .use_ip_objects :
5858 return ipaddress .ip_address (ip )
5959 return ip
@@ -314,8 +314,8 @@ def test_opening_path(self) -> None:
314314 self .assertEqual (reader .metadata ().database_type , "MaxMind DB Decoder Test" )
315315
316316 def test_no_extension_exception (self ) -> None :
317- real_extension = maxminddb ._extension
318- maxminddb ._extension = None # type: ignore
317+ real_extension = maxminddb ._extension # noqa: SLF001
318+ maxminddb ._extension = None # type: ignore[assignment] # noqa: SLF001
319319 with self .assertRaisesRegex (
320320 ValueError ,
321321 "MODE_MMAP_EXT requires the maxminddb.extension module to be available" ,
@@ -375,11 +375,11 @@ def test_database_with_invalid_utf8_key(self) -> None:
375375
376376 def test_too_many_constructor_args (self ) -> None :
377377 with self .assertRaises (TypeError ):
378- self .reader_class ("README.md" , self .mode , 1 ) # type: ignore
378+ self .reader_class ("README.md" , self .mode , 1 ) # type: ignore[arg-type,call-arg]
379379
380380 def test_bad_constructor_mode (self ) -> None :
381381 with self .assertRaisesRegex (ValueError , r"Unsupported open mode \(100\)" ):
382- self .reader_class ("README.md" , mode = 100 ) # type: ignore
382+ self .reader_class ("README.md" , mode = 100 ) # type: ignore[arg-type]
383383
384384 def test_no_constructor_args (self ) -> None :
385385 with self .assertRaisesRegex (
@@ -389,15 +389,15 @@ def test_no_constructor_args(self) -> None:
389389 r"takes at least 2 arguments|"
390390 r"function missing required argument \'database\' \(pos 1\)" ,
391391 ):
392- self .reader_class () # type: ignore
392+ self .reader_class () # type: ignore[call-arg]
393393
394394 def test_too_many_get_args (self ) -> None :
395395 reader = open_database (
396396 "tests/data/test-data/MaxMind-DB-test-decoder.mmdb" ,
397397 self .mode ,
398398 )
399399 with self .assertRaises (TypeError ):
400- reader .get (self .ipf ("1.1.1.1" ), "blah" ) # type: ignore
400+ reader .get (self .ipf ("1.1.1.1" ), "blah" ) # type: ignore[call-arg]
401401 reader .close ()
402402
403403 def test_no_get_args (self ) -> None :
@@ -406,7 +406,7 @@ def test_no_get_args(self) -> None:
406406 self .mode ,
407407 )
408408 with self .assertRaises (TypeError ):
409- reader .get () # type: ignore
409+ reader .get () # type: ignore[call-arg]
410410 reader .close ()
411411
412412 def test_incorrect_get_arg_type (self ) -> None :
@@ -415,7 +415,7 @@ def test_incorrect_get_arg_type(self) -> None:
415415 TypeError ,
416416 "argument 1 must be a string or ipaddress object" ,
417417 ):
418- reader .get (1 ) # type: ignore
418+ reader .get (1 ) # type: ignore[arg-type]
419419 reader .close ()
420420
421421 def test_metadata_args (self ) -> None :
@@ -424,7 +424,7 @@ def test_metadata_args(self) -> None:
424424 self .mode ,
425425 )
426426 with self .assertRaises (TypeError ):
427- reader .metadata ("blah" ) # type: ignore
427+ reader .metadata ("blah" ) # type: ignore[call-arg]
428428 reader .close ()
429429
430430 def test_metadata_unknown_attribute (self ) -> None :
@@ -437,7 +437,7 @@ def test_metadata_unknown_attribute(self) -> None:
437437 AttributeError ,
438438 "'Metadata' object has no attribute 'blah'" ,
439439 ):
440- metadata .blah # type: ignore
440+ metadata .blah # type: ignore[attr-defined] # noqa: B018
441441 reader .close ()
442442
443443 def test_close (self ) -> None :
@@ -560,11 +560,16 @@ def lookup(pipe) -> None:
560560
561561 reader .close ()
562562
563- count = sum ([p .recv () for (p , c ) in pipes ])
563+ count = sum ([p .recv () for (p , _ ) in pipes ])
564564
565565 self .assertEqual (count , 32 , "expected number of successful lookups" )
566566
567- def _check_metadata (self , reader , ip_version , record_size ) -> None :
567+ def _check_metadata (
568+ self ,
569+ reader : Reader ,
570+ ip_version : int ,
571+ record_size : int ,
572+ ) -> None :
568573 metadata = reader .metadata ()
569574
570575 self .assertEqual (2 , metadata .binary_format_major_version , "major version" )
@@ -582,7 +587,7 @@ def _check_metadata(self, reader, ip_version, record_size) -> None:
582587
583588 self .assertEqual (metadata .record_size , record_size )
584589
585- def _check_ip_v4 (self , reader , file_name ) -> None :
590+ def _check_ip_v4 (self , reader : Reader , file_name : str ) -> None :
586591 for i in range (6 ):
587592 address = "1.1.1." + str (pow (2 , i ))
588593 self .assertEqual (
@@ -612,7 +617,7 @@ def _check_ip_v4(self, reader, file_name) -> None:
612617 for ip in ["1.1.1.33" , "255.254.253.123" ]:
613618 self .assertIsNone (reader .get (self .ipf (ip )))
614619
615- def _check_ip_v6 (self , reader , file_name ) -> None :
620+ def _check_ip_v6 (self , reader : Reader , file_name : str ) -> None :
616621 subnets = ["::1:ffff:ffff" , "::2:0:0" , "::2:0:40" , "::2:0:50" , "::2:0:58" ]
617622
618623 for address in subnets :
@@ -645,10 +650,10 @@ def _check_ip_v6(self, reader, file_name) -> None:
645650
646651
647652def has_maxminddb_extension () -> bool :
648- return maxminddb .extension and hasattr (
653+ return maxminddb .extension is not None and hasattr (
649654 maxminddb .extension ,
650655 "Reader" ,
651- ) # type: ignore
656+ )
652657
653658
654659@unittest .skipIf (
0 commit comments