
    g                         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mZ dee   dedefdZdee   deeef   defdZg dZy)    )StringION)UnionListIO   )lib)NetDefinitionNetDefinitionIterator)Parser)State)_checked_lib_call)NetplanExceptionNetplanBackendExceptionNetplanEmitterExceptionNetplanFileExceptionNetplanFormatExceptionNetplanParserExceptionNetplanValidationExceptionNetplanParserFlagsExceptionprefix
input_fileoutput_filec                    t        |t              rqt        j                  d      }|j	                         }t        j
                  ||j                  d             t        j                  |dt        j                         n|j                         }t        |t              rt        j                  d      }n|j                         }t        t        j                  dj                  |       j                  d      ||       t        |t              rt        j                  |       t        |t              rt        j                  |dt        j                        }t        j                  |dt        j                         t        j                   ||      }|j                  |j#                  d             t        j                  |       y y )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sizes          2/usr/lib/python3/dist-packages/netplan/__init__.py_dump_yaml_subtreer3       s6   *h'??(AB""$
4;;w/0
1bkk*$$&+x(OO)CD	&&(	c88$))F:K:R:RSZ:[]egpq*h'
+x(xx	1bkk2
Ar{{+wwy$'$++g./
 )    patch_object_pathpatch_payloadpatch_outputc                     t        |t              rt        j                  |      }t	        t
        j                  dj                  |       j                  d      |j                  d      |j                                y )Nr   r   )
r   dictjsondumpsr   r   netplan_util_create_yaml_patchr)   r$   r'   )r5   r6   r7   s      r2   _create_yaml_patchr=   ;   s\    -&

=1c88ii 1299'B#**73"))+-r4   )r   r   r	   r
   r3   r=   r   r   r   r   r   r   r   r   ) ior   r:   r    typingr   r   r   _netplan_cffir   netdefr	   r
   parserr   stater   _utilsr   r   r   r   r   r   r   r   r   strr3   r9   r=   __all__ r4   r2   <module>rH      s       	 " "  8   %N N NtCy b r 6-$s) -E#t)DT -df -Hr4   