
    zig                     J   d dl mZ d dlmZ ddlmZ dZ G d de          Zdd	d
edede	de	de
eeeeef         f         ee
eedz  f         ef         f         f
dZdddd
edee         de	de	dee         f
dZd
ededede	de	de
edz  edz  f         fdZdede	fdZdS )    )Mapping)
NamedTuple   )
ParseErrorz#;c                   J    e Zd ZU eed<   edz  ed<   edz  ed<   edz  ed<   dS )
ParsedLinelinenoNsectionnamevalue)__name__
__module____qualname__int__annotations__str     [/var/www/tmov.alphamb/tmov_inventario/venv/lib/python3.11/site-packages/iniconfig/_parse.pyr   r   	   sK         KKK4Z
*:r   r   F)strip_section_whitespacepathdatastrip_inline_commentsr   returnNc                @   t          | |                    d          ||          }i }i }|D ]n\  }}}	}
|t          | |d          ||||	f<   |	||v rt          | |d|          i ||<   A|	||         v rt          | |d|	          |
J |
||         |	<   o||fS )aO  Parse INI data and return sections and sources mappings.

    Args:
        path: Path for error messages
        data: INI content as string
        strip_inline_comments: Whether to strip inline comments from values
        strip_section_whitespace: Whether to strip whitespace from section and key names
            (default: False). When True, addresses issue #4 by stripping Unicode whitespace.

    Returns:
        Tuple of (sections_data, sources) where:
        - sections_data: mapping of section -> {name -> value}
        - sources: mapping of (section, name) -> line number
    Tr   r   Nzno section header definedzduplicate section zduplicate name )parse_lines
splitlinesr   )r   r   r   r   tokenssourcessections_datar	   r
   r   r   s              r   parse_ini_datar"      s   * 3!9	  F 24G/1M(. 1 1$u?T6+FGGG!'<-'' v/OG/O/OPPP%'M'""}W--- v/I/I/IJJJ$$$+0M'"4(('!!r   r   	line_iterc          	      f   g }d }t          |          D ]\  }}t          | ||||          \  }}	|(|	&|                    t          ||||	                     F|=|	;|st	          | |d          |}|                    t          ||d d                      ||	|st	          | |d          |                                }
|
j        t	          | |d          |
j        r!|
                    |
j         d|	           }
n|
                    |	          }
|                    |
           |S )Nzempty section namezunexpected value continuation
)r   )		enumerate
_parselineappendr   r   popr   r   _replace)r   r#   r   r   resultr
   r	   liner   r   lasts              r   r   r   @   so     "FG!),,    $ 57O
 

d  0MM*VWdDAABBBB$, E v/CDDDGMM*VWdDAABBBB\d. P v/NOOO::<<Dy  v/NOOOz 1}}dj+B+BD+B+B}CC}}4}00MM$Mr   r,   r	   c                    t          |          rd}n|                                }|sdS |d         dk    r|}t          D ]/}|                    |          d                                         }0|d         dk    r$|dd         }|r|                                }|d fS d |                                fS |d                                         s	 |                    dd          \  }}	d	|v rt                      nN# t          $ rA 	 |                    d	d          \  }}	n## t          $ r t          | |d
|          d w xY wY nw xY w|                                }
|	                                }	|r7t          D ]/}|	                    |          d                                         }	0|
|	fS |                                }|r7t          D ]/}|                    |          d                                         }0d |fS )N )NNr   []r   =:zunexpected line: )iscommentlinerstripCOMMENTCHARSsplitstripisspace
ValueErrorr   )r   r,   r	   r   r   reallinecsection_namer   r   key_names              r   r'   r'   f   sK    T {{}} zAw#~~ 	- 	-A::a==#**,,DD8s??":L' 4+1133%%X^^%%%%!W__ 	W**S!,,KD%d{{ ll"  	W 	W 	WW"jja00ee W W W v/K4/K/KLLRVVW e	W ::<<   	3! 3 3Aq)0022 zz||  	1! 1 1zz!}}Q'..00Tzs*   +C= =
ED"!E" EEEc                 L    |                                  d d         }|t          v S )Nr   )lstripr7   )r,   r=   s     r   r5   r5      s#    bqbAr   )collections.abcr   typingr   
exceptionsr   r7   r   r   booltupler   r"   listr   r'   r5   r   r   r   <module>rH      s   # # # # # #       " " " " " "        &+-" -" -"
-"
-"  	-"
 #-" 73S))*GE#sTz/4JC4O,PPQ-" -" -" -"h #(%*# # #
#Cy#  	#
 ## 
*# # # #L8
8
8 8  	8
 #8 3:sTz!"8 8 8 8v       r   