
    g	                     f    d dl mZ d dlmZmZ ddlmZmZ ddlm	Z	  G d de      Z
 G d d	      Zy
)    )IntEnum)UnionIO   )ffilib)_checked_lib_callc                       e Zd ZdZy)Flagsr   N)__name__
__module____qualname__IGNORE_ERRORS     0/usr/lib/python3/dist-packages/netplan/parser.pyr   r      s    Mr   r   c                       e Zd Zd Zd Zdeeef   fdZddefdZ	defdZ
defd	Zded
efdZedefd       Zej                   defd       Zedefd       Zy)Parserc                 6    t        j                         | _        y N)r   netplan_parser_new_ptrselfs    r   __init__zParser.__init__   s    **,	r   c                 n    t        j                  d| j                        }t        j                  |       y )NzNetplanParser **)r   newr   r   netplan_parser_clear)r   refs     r   __del__zParser.__del__   s%    gg($))4  %r   
input_filec                     t        |t              r4t        t        j                  | j
                  |j                  d            S t        t        j                  | j
                  |j                               S Nzutf-8)	
isinstancestrr	   r   netplan_parser_load_yamlr   encode netplan_parser_load_yaml_from_fdfilenor   r!   s     r   	load_yamlzParser.load_yaml#   sT    j#&$S%A%A499jN_N_`gNhii$S%I%I499V`VgVgVijjr   Nrootdirc                     |r|j                  d      nt        j                  }t        t        j
                  | j                  |      S r#   )r'   r   NULLr	   r   "netplan_parser_load_yaml_hierarchyr   )r   r,   roots      r   load_yaml_hierarchyzParser.load_yaml_hierarchy)   s2    *1w~~g&sxx !G!GTXYYr   c                 j    t        t        j                  | j                  |j	                  d            S r#   )r	   r   netplan_parser_load_keyfiler   r'   r*   s     r   load_keyfilezParser.load_keyfile-   s'     !@!@$))ZM^M^_fMghhr   c                 h    t        t        j                  | j                  |j	                               S r   )r	   r   #netplan_parser_load_nullable_fieldsr   r)   r*   s     r   load_nullable_fieldszParser.load_nullable_fields0   s%     !H!H$))U_UfUfUhiir   
constraintc                     t        t        j                  | j                  |j	                         |j                  d            S r#   )r	   r   &netplan_parser_load_nullable_overridesr   r)   r'   )r   r!   r8   s      r   _load_nullable_overrideszParser._load_nullable_overrides3   s9     !K!K!%J,=,=,?ARARSZA[] 	]r   returnc                 @    t        j                  | j                        S r   )r   netplan_parser_get_flagsr   r   s    r   flagszParser.flags7   s    ++DII66r   r?   c                 N    t        t        j                  | j                  |      }y r   )r	   r   netplan_parser_set_flagsr   )r   r?   _s      r   r?   zParser.flags;   s    c::DIIuMr   c                 @    t        j                  | j                        S r   )r   netplan_parser_get_error_countr   r   s    r   error_countzParser.error_count?   s    11$))<<r   r   )r   r   r   r   r    r   r%   r   r+   r1   r4   r7   r;   propertyintr?   setterrE   r   r   r   r   r      s    -&kE#r'N kZ3 Zis ijr j]2 ]3 ] 7s 7 7 \\N3 N N =S = =r   r   N)enumr   typingr   r   _netplan_cffir   r   _utilsr	   r   r   r   r   r   <module>rM      s)       # %G &= &=r   