File: //proc/1233/cwd/usr/lib/python3/dist-packages/compose/__pycache__/parallel.cpython-310.pyc
o
S�`,- � @ s� d dl Zd dlZd dlZd dlZd dlmZ d dlmZ d dlm Z d dlm
Z
d dlmZ d dlm
Z
d dlmZ d d lmZ d d
lmZ d dlmZ d dlmZ d d
lmZ d dlmZ d dlmZ d dlmZ d dlmZ e�e�Ze� Z G dd� d�Z!dd� Z"d2dd�Z#dd� Z$G dd� d�Z%G dd� d�Z&dd� Z'd d!� Z(d"d#� Z)G d$d%� d%e*�Z+G d&d'� d'�Z,d(d)� Z-d*d+� Z.d,d-� Z/d.d/� Z0d0d1� Z1dS )3� N)�Empty)�Queue)�Lock)� Semaphore)�Thread)�APIError)�
ImageNotFound)�AnsiMode)�green)�red)�ShutdownException)�PARALLEL_LIMIT)�CompletedUnsuccessfully)�HealthCheckFailed)�NoHealthCheckConfigured)�OperationFailedErrorc @ s$ e Zd ZdZee�Zedd� �ZdS )�GlobalLimitz�Simple class to hold a global semaphore limiter for a project. This class
should be treated as a singleton that is instantiated when the project is.
c C s |d u rt }t|�| _d S �N)r
r �global_limiter)�cls�value� r �2/usr/lib/python3/dist-packages/compose/parallel.py�set_global_limit% s zGlobalLimit.set_global_limitN) �__name__�
__module__�__qualname__�__doc__r r
r �classmethodr r r r r r s
r c C s, d}| D ]�\}} }
|
du r0|dur ||�r |� |||�dt� n
|� |||�dt� |�| � qt|
t�rI|
j|||�<