@@ -124,7 +124,12 @@ def start_browser():
124124
125125
126126def str_list_with_prefix (prefix , list_ ):
127- return "\n " .join ([prefix + r for r in list_ ])
127+ return "\n " .join (prefix + r for r in list_ )
128+
129+
130+ def chunked_list (l , size ):
131+ for i in range (0 , len (l ), size ):
132+ yield l [i :i + size ]
128133
129134
130135async def main_async (args ):
@@ -168,42 +173,35 @@ async def main_async(args):
168173 relays_new .append (relay_copy )
169174 relays = relays_new
170175 if not relays :
171- print ("There are no relays within specified port number constrains !" , file = sys .stderr )
176+ print ("There are no relays within specified port number constraints !" , file = sys .stderr )
172177 print ("Try changing port numbers." , file = sys .stderr )
173178 return 2
174179
175180 working_relays = list ()
176- ntry = 0
177- relaypos = 0
178- numtries = round (len (relays ) / NUM_RELAYS )
179- for ntry in range (numtries ):
181+ numtries = (len (relays ) + NUM_RELAYS - 1 ) // NUM_RELAYS
182+ for ntry , chunk in enumerate (chunked_list (relays , NUM_RELAYS )):
180183 if len (working_relays ) >= WORKING_RELAY_NUM_GOAL :
181184 break
182185
183- relaynum = min (NUM_RELAYS , len (relays ) - relaypos - 1 )
184- test_relays = [TorRelay (relays [x ])
185- for x in range (relaypos , relaypos + relaynum )]
186- relaypos += NUM_RELAYS
187-
188- if not test_relays :
189- break
186+ relaynum = len (chunk )
187+ test_relays = [TorRelay (r ) for r in chunk ]
190188
191189 print (
192- f"\n Try { ntry } /{ numtries } , We'll test the following { NUM_RELAYS } random relays:" , file = sys .stderr )
190+ f"\n Try { ntry + 1 } /{ numtries } , We'll test the following { relaynum } random relays:" , file = sys .stderr )
193191 for relay in test_relays :
194192 print (relay , file = sys .stderr )
195- print ("" , file = sys .stderr )
193+ print (file = sys .stderr )
196194
197195 if ntry :
198- print (f"Found { len (working_relays )} good relays so far. Test { ntry } /{ numtries } started…" , file = sys .stderr )
196+ print (f"Found { len (working_relays )} good relays so far. Test { ntry + 1 } /{ numtries } started…" , file = sys .stderr )
199197 else :
200198 print (f"Test started…" , file = sys .stderr )
201199
202200 tasks = list ()
203201 for relay in test_relays :
204202 tasks .append (asyncio .create_task (relay .check (TIMEOUT )))
205203 fin = await asyncio .gather (* tasks )
206- print ("" , file = sys .stderr )
204+ print (file = sys .stderr )
207205
208206 print ("The following relays are reachable this try:" , file = sys .stderr )
209207 for relay in test_relays :
@@ -216,7 +214,7 @@ async def main_async(args):
216214 print ("No relays are reachable this try." , file = sys .stderr )
217215
218216 if ntry > 1 :
219- print ("" , file = sys .stderr )
217+ print (file = sys .stderr )
220218 print ("All reachable relays:" , file = sys .stderr )
221219 for relay in working_relays :
222220 if relay :
0 commit comments