o
    ϐxeJ                     @   s   d dl mZ d dlZd dlZd dlmZmZmZ ddlm	Z	 ddl
mZmZ ddlmZ ddlmZ dd	lmZ dd
lmZmZmZmZmZmZmZ dee dedefddZdee deeef defddZeeeeeeeeeeeeegZdS )    )StringION)UnionListIO   )lib)NetDefinitionNetDefinitionIterator)Parser)State)_checked_lib_call)NetplanExceptionNetplanBackendExceptionNetplanEmitterExceptionNetplanFileExceptionNetplanFormatExceptionNetplanParserExceptionNetplanValidationExceptionprefix
input_fileoutput_filec                 C   s   t |tr!tjdd}| }t||d t|dtj n|	 }t |tr1tjdd}n|	 }t
tjd| d|| t |trMt| t |trwt|dtj}t|dtj t||}||d t| d S d S )Nnetplan_temp_input_file)nameutf-8r   netplan_temp_output_file	)
isinstancer   osmemfd_creategetvaluewriteencodelseekSEEK_SETfilenor   r   netplan_util_dump_yaml_subtreejoincloseSEEK_CURreaddecode)r   r   r   input_fddata	output_fdsize r/   2/usr/lib/python3/dist-packages/netplan/__init__.py_dump_yaml_subtree    s&   




r1   patch_object_pathpatch_payloadpatch_outputc                 C   s>   t |tr
t|}ttjd| d|d|	  d S )Nr   r   )
r   dictjsondumpsr   r   netplan_util_create_yaml_patchr&   r!   r$   )r2   r3   r4   r/   r/   r0   _create_yaml_patch;   s   

r9   )ior   r6   r   typingr   r   r   _netplan_cffir   netdefr   r	   parserr
   stater   _utilsr   r   r   r   r   r   r   r   strr1   r5   r9   __all__r/   r/   r/   r0   <module>   s$   $"
