3 P\ @ s d Z ddlZddlZddlmZ ddlmZ G dd deZG d d d eZ G dd de Z G d d de Zdd ZdddgZ dS )zEModule implementing the Pool for :mod:``requests_toolbelt.threaded``. N )thread )queuec @ sn e Zd ZdZdddejfddZdd Zedd Z edd d Z dd Zd d Zdd Z dd Zdd ZdS )Poola> Pool that manages the threads containing sessions. :param queue: The queue you're expected to use to which you should add items. :type queue: queue.Queue :param initializer: Function used to initialize an instance of ``session``. :type initializer: collections.Callable :param auth_generator: Function used to generate new auth credentials for the session. :type auth_generator: collections.Callable :param int num_process: Number of threads to create. :param session: :type session: requests.Session Nc s| |d krt j pd}|dk r$td| _tj _tj _| _|pJt _ |pTt _| _ fddt jD _d S )Nr z)Number of processes should at least be 1.c s&