�
܍~c$� � �� � d Z ddlZddlZddlZddlZddlZddlZddlZddlm Z ddl
mZ ddlm
Z
ddlmZ ddlmZ ddlmZmZmZmZmZmZmZ ddlZdd lmZmZ dd
lmZ ddl m!Z!m"Z"m#Z# ddl$m%Z& e&Z%n
# e'$ r e(Z%Y nw xY w ee!d
�� � Z! ej) e*� � Z+dZ,dZ-dddd�Z.dZ/dZ0dZ1dZ2dZ3dZ4dZ5dZ6dZ7erddlZddl8m9Z9m:Z: G d� d e:� � Z;ne<Z; G d!� d"e%� � Z= G d#� d$e� � Z>ee> Z?dd%d&�d'e?d(ee@ d)e@d*e@fd+�ZA G d,� d-eB� � ZCd.� ZDdfd/ee@ d*e@fd0�ZEe=fdeFd1e<d2ee( fd3�ZGe=fd2ee( fd4�ZHe=fd2ee( fd5�ZId6� ZJdgd1e<fd7�ZK dhd9e<d1e<d:eFd;eFd<eFd=eFfd>�ZL G d?� d@� � ZMdddA�dBe<dCeNdDe<dEee? dFee? d*ee@eNf fdG�ZOdidH�ZPdI� ZQdJ� ZRdKe<dLe@d*ee@ fdM�ZSdKe<dNe<d*e@fdO�ZTd*e@fdP�ZUdQe<dNe<fdR�ZVdQe<fdS�ZWdTe<d*e@fdU�ZXdjd1e<dNe<d*e@fdW�ZYdXe;d*e@fdY�ZZdXe;d*e@fdZ�Z[dfdXe;d1ee< d*e@fd[�Z\d*e<fd\�Z]d]e^d*e@fd^�Z_d*e@fd_�Z`d*e<fd`�Zad*e<fda�Zbdfdb�Zcdc� Zddd� Zee*dek r ejf ee� � � � dS dS )kzFschema.py: Set of module functions for processing cloud-config schema.� N)�defaultdict)�Iterable)�deepcopy)�partial)�chain)�
TYPE_CHECKING�List�
NamedTuple�Optional�Type�Union�cast)�importer�safeyaml)�Init)�error�get_modules_from_dir� load_file��ValidationErrorT)�sys_exitz!versions.schema.cloud-config.jsonzschema-cloud-config-v1.json�true�false�null)TFNs
#cloud-configz�
{name}
{title_underbar}
**Summary:** {title}
{description}
**Internal name:** ``{id}``
**Module frequency:** {frequency}
**Supported distros:** {distros}
{activate_by_schema_keys}{property_header}
{property_doc}
{examples}
z**Config schema**:z3{prefix}**{prop_name}:** ({prop_type}){description}zH{prefix}Each object in **{prop_name}** list supports the following keys:z**Examples**::
z
# --- Example{0} ---�
deprecatedzDEPRECATED: )�NotRequired� TypedDictc � � e Zd ZU eed< |