@@ -39,6 +39,9 @@ def configure_paging(self, config=None, skip_key=None, limit_key=None, total_key
3939 self .next_page_url_base = next_page_url_base
4040 elif self .pagination_type in ["offset" , "page" ]:
4141 self .skip_key = config .get ("skip_key" , skip_key )
42+ logger .info ("configure_paging: self.limit_key='{}', self.pagination_type='{}', self.next_page_key='{}', self.next_page_url_base='{}', self.skip_key='{}'" .format (
43+ self .limit_key , self .pagination_type , self .next_page_key , self .next_page_url_base , self .skip_key
44+ ))
4245
4346 def reset_paging (self , counting_key = None , url = None ):
4447 self .remaining_records = 0
@@ -53,9 +56,11 @@ def reset_paging(self, counting_key=None, url=None):
5356 self .is_last_batch_empty = False
5457 self .is_first_batch = True
5558 self .is_paging_started = True
59+ logger .info ("reset_paging:next_page_url={}, counting_key={}, next_page_number={}" .format (self .next_page_url , self .counting_key , self .next_page_number ))
5660
5761 def set_counting_key (self , counting_key ):
5862 self .counting_key = counting_key
63+ logger .info ("set_counting_key: counting_key set to {}" .format (self .counting_key ))
5964
6065 def update_next_page (self , data , response_links = None ):
6166 response_links = response_links or {}
@@ -67,13 +72,19 @@ def update_next_page(self, data, response_links=None):
6772 if next_page_url :
6873 self .next_page_url = next_page_url
6974 self .params_must_be_blanked = True
75+ logger .info ("update_next_page:next_link={}, next_page_url={}, params_must_be_blanked={}, next_page_number={}, counter={}" .format (
76+ next_link , self .next_page_url , self .params_must_be_blanked , self .next_page_number , self .counter
77+ ))
7078 self .data_is_list = False
7179 if isinstance (data , list ):
7280 self .data_is_list = True
7381 batch_size = len (data )
7482 self .records_to_skip = self .records_to_skip + batch_size
7583 if batch_size == 0 :
7684 self .is_last_batch_empty = True
85+ logger .info ("update_next_page:update_next_page:data is list:batch_size={}, records_to_skip={}, is_last_batch_empty={}" .format (
86+ batch_size , self .records_to_skip , self .is_last_batch_empty
87+ ))
7788 return
7889 elif self .counting_key :
7990 extracted_data = get_value_from_path (data , self .counting_key .split ("." ), can_raise = False )
@@ -90,15 +101,25 @@ def update_next_page(self, data, response_links=None):
90101 self .next_page_url = "/" .join ([self .next_page_url_base , next_page_path ])
91102 else :
92103 self .next_page_url = next_page_path
104+ logger .info ("update_next_page:next_page_url_base={}, next_page_path={}, next_page_url={}" .format (
105+ self .next_page_url_base , next_page_path , self .next_page_url
106+ ))
93107 if self .skip_key :
94108 self .skip = data .get (self .skip_key )
109+ logger .info ("update_next_page:skip=data[{}]={}" .format (self .skip_key , self .skip ))
95110 if self .limit_key :
96111 self .limit = data .get (self .limit_key )
112+ logger .info ("update_next_page:limit=data[{}]={}" .format (self .limit_key , self .limit ))
97113 if self .total_key :
98114 self .total = data .get (self .total_key )
115+ logger .info ("update_next_page:total=data[{}]={}" .format (self .total_key , self .total ))
99116 self .records_to_skip = self .records_to_skip + batch_size
117+ logger .info ("update_next_page:records_to_skip={}, batch_size={}" .format (self .records_to_skip , batch_size ))
100118 if self .total :
101119 self .remaining_records = self .total - self .records_to_skip
120+ logger .info ("update_next_page:remaining_records={}, total={}, records_to_skip={}" .format (
121+ self .remaining_records , self .total , self .records_to_skip
122+ ))
102123
103124 def has_next_page (self ):
104125 if self .is_last_batch_empty :
@@ -118,14 +139,18 @@ def has_next_page(self):
118139 if self .pagination_type in ["page" , "offset" ]:
119140 if self .counting_key :
120141 # There is a counting key and we already know the last batch was not empty
142+ logger .info ("has_next_page:pagination_type={}, counting_key={} -> True" .format (self .pagination_type , self .counting_key ))
121143 return True
122144 else :
123145 if self .data_is_list :
124146 # for lists is_last_batch_empty is set correctly and handled by the code above
147+ logger .info ("has_next_page:pagination_type={}, data_is_list={} -> True" .format (self .pagination_type , self .data_is_list ))
125148 return True
126149 # Without a counting_key we have no mean to know if the last batch was empty.
127150 # To avoid infinite loop we stop pagination here
151+ logger .info ("has_next_page:pagination_type={} -> False" .format (self .pagination_type ))
128152 return False
153+ logger .info ("has_next_page:pagination_type={} -> False" .format (self .pagination_type ))
129154 return False
130155
131156 def get_params (self ):
0 commit comments