File: //lib/python3/dist-packages/compose/__pycache__/project.cpython-310.pyc
o
S�`w� � @ s� d dl Z d dlZd dlZd dlZd dlZd dlmZ d dlmZ d dl m
Z
d dl mZ d dl mZ d dl
mZ dd lmZ dd
lmZ ddlmZ ddlmZ dd
lmZ ddlmZ ddlmZ 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* ddl&m+Z+ ddl&m,Z, ddl&m-Z- ddl&m.Z. ddl&m/Z/ dd l&m0Z0 dd!l&m1Z1 dd"l&m2Z2 dd#l&m3Z3 dd$l&m4Z4 dd%l5m6Z6 dd&l5m7Z7 dd'l5m8Z8 dd(l9m:Z: e�;e<�Z=ej>G d)d*� d*ej?��Z@G d+d,� d,�ZAd-d.� ZBd/d0� ZCd1d2� ZDd3d4� ZEd5d6� ZFd7d8� ZGd9d:� ZHd;d<� ZId=d>� ZJd?d@� ZKG dAdB� dBeL�ZMG dCdD� dDeL�ZNG dEdF� dFeL�ZOG dGdH� dHeL�ZPG dIdJ� dJeL�ZQdS )K� N)�reduce)�path)�APIError)�
ImageNotFound)�NotFound)�
version_lt� )�parallel)� UserError)�ConfigurationError)�V1)�$get_container_name_from_network_mode)�"get_service_name_from_network_mode)�
LABEL_ONE_OFF)�
LABEL_PROJECT)�
LABEL_SERVICE)� Container)�build_networks)�get_networks)�ProjectNetworks)�read_status)�BuildAction)�ContainerIpcMode)�ContainerNetworkMode)�ContainerPidMode)�ConvergenceStrategy)�IpcMode)�NetworkMode)�NoSuchImageError)�parse_repository_tag)�PidMode)�Service)�ServiceIpcMode)�ServiceNetworkMode)�ServicePidMode)�filter_attached_for_up)�microseconds_from_time_nano)�truncate_string)�ProjectVolumesc @ s$ e Zd ZdZdZdZedd� �ZdS )�OneOffFilterr r � c C s` || j kr|�d�td�� d S || jkr |�d�td�� d S || jkr'd S td�t|����)N�{}={}�True�FalsezInvalid value for one_off: {})�only�append�formatr �exclude�include�
ValueError�repr)�cls�value�labels� r8 �1/usr/lib/python3/dist-packages/compose/project.py�
update_labels8 s
zOneOffFilter.update_labelsN)�__name__�
__module__�__qualname__r2 r1 r. �classmethodr: r8 r8 r8 r9 r) 2 s r) c @ s� e Zd ZdZ dQdd�Zejdfdd�Ze dRdd ��Z e
d
d� �Zdd
� Zdd� Z
dSdd�ZdTdd�Zdd� Zdd� Zdd� Zdd� Zdd� Zdd � ZdUd!d"�Zdejfd#d$�ZdUd%d&�ZdUd'd(�ZdUd)d*�Zdejfd+d,�Z dVd-d.�Zd/d0� ZdUd1d2�Z dWd3d4�Zde j!e"j#fd5d6�Z$d7d8� Z%dUd9d:�Z&dde j!e"j#dddddddddddddddfd;d<�Z'd=d>� Z(dXd?d@�Z) dYdAdB�Z*dZdCdD�Z+dTdEdF�Z,dejfdGdH�Z-ddejfdIdJ�Z.dKdL� Z/dMdN� Z0dOdP� Z1dS )[�Projectz#
A collection of services.
Nc C sD || _ || _|| _|pti �| _|pti d�| _|| _|pg | _d S �NF) �name�services�clientr( �volumesr �networks�config_version�enabled_profiles)�selfrA rB rC rE rD rF rG r8 r8 r9 �__init__H s zProject.__init__Fc C s6 | j }|rt�dd|�}d�t|�g}t�||� |S )Nz[_-]� r+ )rA �re�subr0 r r) r: )rH �one_off�legacyrA r7 r8 r8 r9 r7 R s zProject.labelsc s� |pg }|j o|j tk}t|||�}t�|j||�} t�|||�� | |g || � |j |�}
|jD ]�}t|�}|r=t ||�}ni }|�
dd� |
�|�}
|
�|�}|
�
|t|�� ��}|
�|�}t|
|�}|j tkrw� fdd�|�dg �D �|d<