"""
__author__ = "Oleg Broytman <phd@phdru.name>"
-__copyright__ = "Copyright (C) 2024 PhiloSoft Design"
+__copyright__ = "Copyright (C) 2024, 2025 PhiloSoft Design"
__license__ = "GNU GPL"
__all__ = ['robot_aio']
import aiohttp
import aiohttp.client_exceptions
-from Robots.multi_mixin import multi_mixin
+from Robots.multi_base import multi_base
current_href = contextvars.ContextVar('current_href')
-class robot_aio(multi_mixin):
+class robot_aio(multi_base):
def __init__(self, *args, **kw):
- multi_mixin.__init__(self, *args, **kw)
+ multi_base.__init__(self, *args, **kw)
# We need one event loop for the entire application
# so that we can save pending tasks between calls to self.wait().
-"""Mix-in for robots based on concurrent.futures, processes multiple URLs in parallel.
+"""Base classes for robots based on concurrent.futures to
+processes multiple URLs in parallel.
This file is a part of Bookmarks database and Internet robot.
from bkmk_objects import copy_bkmk
from robots import import_robot, set_params, robot_params
-from Robots.multi_mixin import multi_mixin
+from Robots.multi_base import multi_base
cpu_count = os.cpu_count()
-class concurrent_futures(multi_mixin):
+class concurrent_futures(multi_base):
# We're I/O-bound, not CPU-bound
max_urls = 2*cpu_count if cpu_count else 10
def __init__(self, *args, **kw):
self.concurrent_class_name = self.concurrent_class.__name__
- multi_mixin.__init__(self, *args, **kw)
+ multi_base.__init__(self, *args, **kw)
self.executor = self.concurrent_class(max_workers=self.max_urls)
def version_str(self):
-"""Mix-in for robots that process multiple URLs in parallel.
+"""Base class for robots that process multiple URLs in parallel.
This file is a part of Bookmarks database and Internet robot.
"""
__author__ = "Oleg Broytman <phd@phdru.name>"
-__copyright__ = "Copyright (C) 2024 PhiloSoft Design"
+__copyright__ = "Copyright (C) 2024, 2025 PhiloSoft Design"
__license__ = "GNU GPL"
-__all__ = ['multi_mixin']
+__all__ = ['multi_base']
from Robots.base import robot_base
-class multi_mixin(robot_base):
+class multi_base(robot_base):
max_urls = 10 # Small default
report_checked = False