File: //lib/python3/dist-packages/compose/__pycache__/service.cpython-310.pyc
o
S�`� � @ s� d dl Z d dlZd dlZd dlZd dlZd dlZd dlZd dlZd dlm Z d dlm
Z
d dlmZ d dl
mZ d dl
mZ d dl
mZ d dlmZ d d lmZ d d
lmZ d dlmZ d dlmZ d d
lmZ d dlmZ ddlmZ ddlmZ ddlmZ ddl m!Z! ddl m"Z" ddl m#Z# ddl m$Z$ ddl%m&Z& ddl'm(Z( ddl'm)Z) ddl'm*Z* ddlm+Z+ ddlm,Z, ddlm-Z- ddlm.Z. ddlm/Z/ dd lm0Z0 dd!lm1Z1 dd"lm2Z2 dd#lm3Z3 dd$lm4Z4 dd%lm5Z5 dd&l6m7Z7 dd'l8m9Z9 dd(l8m:Z: dd)l8m;Z; dd*l8m<Z< dd+l=m>Z> dd,lm?Z? dd-lm@Z@ dd.lAmBZB dd/lAmCZC dd0lAmDZD dd1lAmEZE dd2lAmFZF dd3lAmGZG d d4lHmIZI e�JeK�ZLg d5�ZMd6ZNd7ZOd8ZPG d9d:� d:eQ�ZRG d;d<� d<eQ�ZSG d=d>� d>eQ�ZTe d?d@�ZUe dAdB�ZVe jWG dCdD� dDe jX��ZYe jWG dEdF� dFe jX��ZZe jWG dGdH� dHe jX��Z[G dIdJ� dJ�Z\dKdL� Z]G dMdN� dN�Z^G dOdP� dPe^�Z_G dQdR� dRe^�Z`G dSdT� dT�ZaG dUdV� dVea�ZbG dWdX� dXea�ZcG dYdZ� dZ�ZdG d[d\� d\�ZeG d]d^� d^�Zfd�d_d`�Zgdadb� Zhdcdd� Zidedf� Zjdgdh� Zkdidj� Zldkdl� Zmdmdn� Zndodp� Zodqdr� Zpdsdt� Zqdudv� Zrdwdx� Zsdydz� Ztd{d|� Zud}d~� ZvG dd�� d��ZwG d�d�� d��ZxG d�d�� d��ZydS )�� N)�
namedtuple)�OrderedDict)�
attrgetter)�APIError)�
ImageNotFound)�NotFound)� LogConfig)�Mount)�version_gte)�
version_lt)�build_port_bindings)�
split_port)�convert_tmpfs_mounts� )�__version__)�const)�progress_stream)�DOCKER_CONFIG_KEYS)�is_url)�merge_environment)�merge_labels)�DependencyError)� MountSpec)�ServicePort)�
VolumeSpec)�DEFAULT_TIMEOUT)�IS_WINDOWS_PLATFORM)�LABEL_CONFIG_HASH)�LABEL_CONTAINER_NUMBER)�
LABEL_ONE_OFF)�
LABEL_PROJECT)�
LABEL_SERVICE)�
LABEL_SLUG)�
LABEL_VERSION)�NANOCPUS_SCALE)�WINDOWS_LONGPATH_PREFIX)� Container)�CompletedUnsuccessfully)�HealthCheckFailed)�NoHealthCheckConfigured)�OperationFailedError��parallel_execute)�
stream_output)�StreamOutputError)�generate_random_id)� json_hash)�parse_bytes)�parse_seconds_float)�truncate_id)�unique_everseen)�binarystr_to_unicode)-�cap_add�cap_drop�
cgroup_parent� cpu_count�cpu_percent�
cpu_period� cpu_quota�
cpu_rt_period�cpu_rt_runtime�
cpu_shares�cpus�cpuset�device_cgroup_rules�devices�device_requests�dns�
dns_search�dns_opt�env_file�extra_hosts� group_add�init�ipc� isolation� read_only�
log_driver�log_opt� mem_limit�mem_reservation�
memswap_limit�mem_swappiness�oom_kill_disable�
oom_score_adj�pid�
pids_limit�
privileged�restart�runtime�security_opt�shm_size�storage_opt�sysctls�userns_mode�volumes_from�
volume_driver�service_started�service_healthy�service_completed_successfullyc @ � e Zd Zdd� ZdS )�
BuildErrorc C s || _ || _d S �N)�service�reason)�selfri rj � rl �1/usr/lib/python3/dist-packages/compose/service.py�__init__w s
zBuildError.__init__N��__name__�
__module__�__qualname__rn rl rl rl rm rg v � rg c @ rf )�NeedsBuildErrorc C �
|| _ d S rh �ri �rk ri rl rl rm rn } �
zNeedsBuildError.__init__Nro rl rl rl rm rt | rs rt c @ s e Zd ZdS )�NoSuchImageErrorN)rp rq rr rl rl rl rm ry � s ry �ServiceNamezproject service number�ConvergencePlanzaction containersc @ s( e Zd ZdZdZdZdZedd� �ZdS )�ConvergenceStrategyzrEnumeration for all possible convergence strategies. Values refer to
when containers should be recreated.
r � � c C s | t | �juS rh )�type�never�rk rl rl rm �allows_recreate� s z#ConvergenceStrategy.allows_recreateN) rp rq rr �__doc__�changed�alwaysr� �propertyr� rl rl rl rm r| � s r| c @ � e Zd ZdZdZdZdZdS )� ImageTypez5Enumeration for the types of images known to compose.r r r} N)rp rq rr r� �none�local�allrl rl rl rm r� � �
r� c @ r� )�BuildActionz+Enumeration for the possible build actions.r r r} N)rp rq rr r� r� �force�skiprl rl rl rm r� � r� r� c @ s| e Zd Z d�dd�Zdd� Zd�d d
�Zd�dd�Zd
d� Zdd� Zd�dd�Z d�dd�Z
ejddfdd�Z
dd� Zdd� Zedd� �Zedd� �Zejdfdd �Zd!d"� Zd�d#d$�Zd%d&� Zd'd(� Zd�d)d*�Z d�d,d-�Z + d�d.d/�Zd0d1� Zd�d2d3�Zd�d4d5�Zed6d7� �Z d�d8d9�Z!d�d:d;�Z"d<d=� Z#ed>d?� �Z$d@dA� Z%dBdC� Z&dDdE� Z'dFdG� Z(dHdI� Z)dJdK� Z*d�dLdM�Z+dNdO� Z,d�dPdQ�Z-dRdS� Z.dTdU� Z/dVdW� Z0 d�dXdY�Z1dZd[� Z2d�d\d]�Z3d^d_� Z4 d�d`da�Z5dbdc� Z6ddde� Z7d�dfdg�Z8edhdi� �Z9d�djdk�Z:dldm� Z;dndo� Z<dpdq� Z=d�drds�Z>d�dtdu�Z?dvdw� Z@dxdy� ZAdzd{� ZBd|d}� ZCd~d� ZDdS )��ServiceN�defaultFr c K s� || _ || _|| _|| _|pg | _|pg | _|ptd �| _|p"td �| _ |p)t
d �| _|p.i | _| p3g | _
|
| _|
| _|| _|pAg | _d S rh )�name�client�project�use_networking�linksra �IpcMode�ipc_mode�NetworkMode�network_mode�PidMode�pid_mode�networks�secrets� scale_num�default_platform�options�extra_labels)rk r� r� r� r� r� ra r� r� r� �scaler� r� r� r� r� rl rl rm rn � s
zService.__init__c C s d� | j�S )Nz
<Service: {}>)�formatr� r� rl rl rm �__repr__� s zService.__repr__c
s� |d u ri }|� d� j|d�|pg i� ttd � fdd�� jj||d�D ���}|r-|S |� d� j|dd�|p9g i� tt� fdd �td � fd
d�� jj||d�D ����S )N�label��one_offc � g | ] }t �� j|��qS rl �r&