U
    d                     @   sf   d dl Z d dlZddlmZmZ G dd dejZG dd dejZe dZ	e d	Z
dddZdS )    N   )hash_keyset_yaml_grammarc                   @   s   e Zd ZdS )OrderedIndentlessDumperN)__name__
__module____qualname__ r	   r	   h/mounts/lovelace/software/anaconda3/envs/qiime2-amplicon-2024.2/lib/python3.8/site-packages/yq/dumper.pyr      s   r   c                       s&   e Zd Zd fdd	Zdd Z  ZS )OrderedDumperFc                    s   t t| |dS )NF)superr   increase_indent)selfflow
indentless	__class__r	   r
   r      s    zOrderedDumper.increase_indentc                 C   s   dS )NTr	   )r   datar	   r	   r
   ignore_aliases   s    zOrderedDumper.ignore_aliases)FF)r   r   r   r   r   __classcell__r	   r	   r   r
   r      s   r   z(^__yq_(?P<type>tag|style)_(?P<key>.+)__$z7^__yq_(?P<type>tag|style)_(?P<key>\d+)_(?P<value>.+)__$F1.1c                    sL    fdd} fdd}|r t nt}|t| |t| t||d |S )Nc           
         s  g i i   }}}|  D ]~\}} rt|tr|dkr8qt|}|rf|ddkrf|||d< qn"|r|ddkr|||d< q|||f q| d|} r
|jD ]X\}}t	|j}	|	|krt|t
jjr||	 |_n||	 dkrd|_|	|kr||	 |_q|S )	NZ__yq_alias__typestylekeytagztag:yaml.org,2002:mapr   T)items
isinstancestryaml_value_annotation_rematchgroupappendrepresent_mappingvaluer   yamlnodes
ScalarNoder   
flow_styler   )
dumperr   pairscustom_stylescustom_tagskvZvalue_annotationmappingZ
hashed_keyuse_annotationsr	   r
   represent_dict!   s2    

z"get_dumper.<locals>.represent_dictc           	         s  g i i   }}}|D ]x} rt |trt|}|rZ|ddkrZ|d||d< qn(|r|ddkr|d||d< q|| q| |} rt|jD ]b\}}t||krt |t	j
jr|t| |_n|t| dkrd|_t||kr|t| |_q|S )Nr   r   r#   r   r   r   T)r   r   yaml_item_annotation_rer   r    r!   represent_list	enumerater#   r$   r%   r&   r   r'   r   )	r(   r   Zraw_listr*   r+   r-   Z
annotationsequenceir/   r	   r
   r3   <   s,    

z"get_dumper.<locals>.represent_list)grammar_version)r   r   add_representerdictlistr   )r0   r   r7   r1   r3   r(   r	   r/   r
   
get_dumper   s    r;   )FFr   )rer$   loaderr   r   
SafeDumperr   r   compiler   r2   r;   r	   r	   r	   r
   <module>   s   

