File: //lib/python3/dist-packages/compose/config/__pycache__/validation.cpython-310.pyc
o
S�`�M � @ sP d dl Z d dlZd dlZd dlZd dlZd dlmZ d dlmZ d dlm Z d dlm
Z
d dlmZ ddlm
Z dd lmZ d
dlmZ d
dlmZ d
d
lmZ e�e�Zdddddddddddddd�
ZdZdZdZdjed�Zdjed�ZdZd � d!jeed"��!� �Z"e j#ded#�d$d%� �Z$e j#d&ed#�d'd(� �Z%e j#d)ed*�d+d,� �Z&d-d.� Z'd/d0� Z(d1d2� Z)d3d4� Z*d5d6� Z+d7d8� Z,d9d:� Z-d;d<� Z.d=d>� Z/d?d@� Z0dAdB� Z1dCdD� Z2dEdF� Z3dGdH� Z4dIdJ� Z5dKdL� Z6dMdN� Z7dOdP� Z8dQdR� Z9dSdT� Z:dUdV� Z;dWdX� Z<dYdZ� Z=d[d\� Z>d]d^� Z?d_d`� Z@dadb� ZAdcdd� ZBdedf� ZCdgdh� ZDdidj� ZEdkdl� ZFdS )m� N)�
split_port)�Draft4Validator)�
FormatChecker)�RefResolver)�ValidationError� )�COMPOSEFILE_V1)�NANOCPUS_SCALE� ��ConfigurationError)�VERSION_EXPLANATION)�"get_service_name_from_network_mode�
cpu_shares�extra_hosts�devices�links�
memswap_limit�ports�
privileged�volumes�working_dir)
� cpu_share�add_host�hosts�
extra_host�device�link�memory_swap�port� privilege�
priviliged� privilige�volume�workdirz[a-zA-Z0-9\._\-]z^\d+(\-\d+)?(\/[a-zA-Z]+)?$z!(\d{1,2}|1\d{2}|2[0-4]\d|25[0-5])z({IPV4_SEG}\.){{3}}{IPV4_SEG})�IPV4_SEGz!^{IPV4_ADDR}/(\d|[1-2]\d|3[0-2])$)� IPV4_ADDRz[0-9a-fA-F]{1,4}� a9
^
(
(({IPV6_SEG}:){{7}}{IPV6_SEG})|
(({IPV6_SEG}:){{1,7}}:)|
(({IPV6_SEG}:){{1,6}}(:{IPV6_SEG}){{1,1}})|
(({IPV6_SEG}:){{1,5}}(:{IPV6_SEG}){{1,2}})|
(({IPV6_SEG}:){{1,4}}(:{IPV6_SEG}){{1,3}})|
(({IPV6_SEG}:){{1,3}}(:{IPV6_SEG}){{1,4}})|
(({IPV6_SEG}:){{1,2}}(:{IPV6_SEG}){{1,5}})|
(({IPV6_SEG}:){{1,1}}(:{IPV6_SEG}){{1,6}})|
(:((:{IPV6_SEG}){{1,7}}|:))|
(fe80:(:{IPV6_SEG}){{0,4}}%[0-9a-zA-Z]{{1,}})|
(::(ffff(:0{{1,4}}){{0,1}}:){{0,1}}{IPV4_ADDR})|
(({IPV6_SEG}:){{1,4}}:{IPV4_ADDR})
)
/(\d|[1-9]\d|1[0-1]\d|12[0-8])
$
)�IPV6_SEGr&