MCPcopy Create free account
hub / github.com/eternnoir/pyTelegramBotAPI / __non_threaded_polling

Method __non_threaded_polling

telebot/__init__.py:1312–1357  ·  view source on GitHub ↗
(self, non_stop=False, interval=0, timeout=None, long_polling_timeout=None,
                               logger_level=logging.ERROR, allowed_updates=None)

Source from the content-addressed store, hash-verified

1310
1311
1312 def __non_threaded_polling(self, non_stop=False, interval=0, timeout=None, long_polling_timeout=None,
1313 logger_level=logging.ERROR, allowed_updates=None):
1314 if (not logger_level) or (logger_level < logging.INFO):
1315 warning = "\n Warning: this message appearance will be changed. Set logger_level=logging.INFO to continue seeing it."
1316 else:
1317 warning = ""
1318 #if logger_level and logger_level >= logging.INFO: # enable in future releases. Change output to logger.error
1319 logger.info('Started polling.' + warning)
1320 self.__stop_polling.clear()
1321 error_interval = 0.25
1322
1323 while not self.__stop_polling.wait(interval):
1324 try:
1325 self.__retrieve_updates(timeout, long_polling_timeout, allowed_updates=allowed_updates)
1326 error_interval = 0.25
1327 except apihelper.ApiException as e:
1328 handled = self._handle_exception(e)
1329 if not handled:
1330 if logger_level and logger_level >= logging.ERROR:
1331 logger.error("Polling exception: %s", str(e))
1332 if logger_level and logger_level >= logging.DEBUG:
1333 logger.error("Exception traceback:\n%s", traceback.format_exc())
1334 if not non_stop:
1335 self.__stop_polling.set()
1336 # if logger_level and logger_level >= logging.INFO: # enable in future releases. Change output to logger.error
1337 logger.info("Exception occurred. Stopping." + warning)
1338 else:
1339 # if logger_level and logger_level >= logging.INFO: # enable in future releases. Change output to logger.error
1340 logger.info("Waiting for {0} seconds until retry".format(error_interval) + warning)
1341 time.sleep(error_interval)
1342 error_interval *= 2
1343 else:
1344 time.sleep(error_interval)
1345 except KeyboardInterrupt:
1346 # if logger_level and logger_level >= logging.INFO: # enable in future releases. Change output to logger.error
1347 logger.info("KeyboardInterrupt received." + warning)
1348 self.__stop_polling.set()
1349 break
1350 except Exception as e:
1351 handled = self._handle_exception(e)
1352 if not handled:
1353 raise e
1354 else:
1355 time.sleep(error_interval)
1356 #if logger_level and logger_level >= logging.INFO: # enable in future releases. Change output to logger.error
1357 logger.info('Stopped polling.' + warning)
1358
1359
1360 def _exec_task(self, task, *args, **kwargs):

Callers 1

pollingMethod · 0.95

Calls 4

__retrieve_updatesMethod · 0.95
_handle_exceptionMethod · 0.95
waitMethod · 0.80
setMethod · 0.45

Tested by

no test coverage detected