2424 ClientError , IpregistryLookupError , RequesterAutonomousSystem ,
2525 RequesterIpInfo , RequesterUserAgent , UserAgent )
2626from .request import (DefaultRequestHandler , IpregistryRequestHandler , _backoff_interval ,
27- _build_headers , _is_retryable_status , _raise_api_error , _retry_delay )
27+ _build_headers , _is_retryable_status , _prefix_batch_fields ,
28+ _raise_api_error , _retry_delay )
2829
2930try :
3031 import httpx
@@ -57,7 +58,7 @@ async def aclose(self):
5758 async def batch_lookup_asns (self , asns , options ):
5859 response = await self ._request_with_retry (
5960 'POST' ,
60- self ._build_base_url ('' , options ),
61+ self ._build_base_url ('' , _prefix_batch_fields ( options ) ),
6162 data = json .dumps (["AS" + str (asn ) for asn in asns ])
6263 )
6364 try :
@@ -73,7 +74,7 @@ async def batch_lookup_asns(self, asns, options):
7374 async def batch_lookup_ips (self , ips , options ):
7475 response = await self ._request_with_retry (
7576 'POST' ,
76- self ._build_base_url ('' , options ),
77+ self ._build_base_url ('' , _prefix_batch_fields ( options ) ),
7778 data = json .dumps (ips )
7879 )
7980 try :
@@ -89,7 +90,7 @@ async def batch_lookup_ips(self, ips, options):
8990 async def batch_parse_user_agents (self , user_agents , options ):
9091 response = await self ._request_with_retry (
9192 'POST' ,
92- self ._build_base_url ('user_agent' , options ),
93+ self ._build_base_url ('user_agent' , _prefix_batch_fields ( options ) ),
9394 data = json .dumps (user_agents )
9495 )
9596 try :
@@ -239,6 +240,10 @@ async def batch_request(self, items, request_handler_func, **options):
239240 )
240241
241242 fresh_item_info = response .data
243+ if len (fresh_item_info ) != len (cache_misses ):
244+ raise ClientError (
245+ "Batch response contained {} results for {} requested items." .format (
246+ len (fresh_item_info ), len (cache_misses )))
242247 j = 0
243248 k = 0
244249
0 commit comments