Ë
   ÀiT:Ë`æ–ã                   ó¦  — d dl Z d dlmZ dZdZdZdZdZdZg d	¢Z	d
Z
e j                  j                  dd«      Z G d„ de«      Z G d„ dee«      Z G d„ dee«      Z G d„ dee«      Z G d„ dee«      Z G d„ dee«      Z G d„ dee«      Z G d„ dee«      Zd„ Zd„ Zd,d„Zd„ Zd „ Zd!„ Zd"„ Z d#„ Z!d$„ Z"d%„ Z#d&„ Z$d'„ Z%d(e j                  d)fd*„Z&d-d+„Z'y).é    N)ÚTextIOWrapperzArijit Basuzsayanarijit@gmail.comz)https://github.com/sayanarijit/expandvarsz"Expand system variables Unix stylezv0.12.0ÚMIT)
ÚBadSubstitutionÚExpandvarsExceptionÚMissingClosingBraceÚMissingExcapedCharÚNegativeSubStringExpressionÚOperandExpectedÚParameterNullOrNotSetÚUnboundVariableÚexpandÚ
expandvarsÚ\ÚEXPANDVARS_RECOVER_NULLc                   ó   — e Zd ZdZy)r   z5The base exception for all the handleable exceptions.N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__© ó    ú›/home/sim/yocto/scarthgap/build/tmp/work/x86_64-linux/python3-expandvars-native/0.12.0/recipe-sysroot-native/usr/lib/python3.12/site-packages/expandvars.pyr   r   +   s   „ Ù?àr   r   c                   ó   ‡ — e Zd Zˆ fd„Zˆ xZS )r   c                 óB   •— t         ‰| �  dj                  |«      «       y )Nz{0}: missing '}}'©ÚsuperÚ__init__Úformat©ÚselfÚparamÚ	__class__s     €r   r   zMissingClosingBrace.__init__2   s   ø€ Ü‰ÑÐ,×3Ñ3°EÓ:Õ;r   ©r   r   r   r   Ú__classcell__©r"   s   @r   r   r   1   s   ø„ ÷<ð <r   r   c                   ó   ‡ — e Zd Zˆ fd„Zˆ xZS )r   c                 óB   •— t         ‰| �  dj                  |«      «       y )Nz{0}: missing escaped characterr   r   s     €r   r   zMissingExcapedChar.__init__7   s   ø€ Ü‰ÑÐ9×@Ñ@ÀÓGÕHr   r#   r%   s   @r   r   r   6   s   ø„ ÷Ið Ir   r   c                   ó   ‡ — e Zd Zˆ fd„Zˆ xZS )r
   c                 óV   •— t         ‰| �  dj                  |t        |«      «      «       y )Nz*{0}: operand expected (error token is {1}))r   r   r   Úrepr)r    r!   Úoperandr"   s      €r   r   zOperandExpected.__init__<   s$   ø€ Ü‰ÑØ8×?Ñ?ÀÄtÈGÃ}ÓUõ	
r   r#   r%   s   @r   r
   r
   ;   s   ø„ ÷
ð 
r   r
   c                   ó   ‡ — e Zd Zˆ fd„Zˆ xZS )r	   c                 óD   •— t         ‰| �  dj                  ||«      «       y )Nz"{0}: {1}: substring expression < 0r   )r    r!   Úexprr"   s      €r   r   z$NegativeSubStringExpression.__init__C   s   ø€ Ü‰ÑÐ=×DÑDÀUÈDÓQÕRr   r#   r%   s   @r   r	   r	   B   s   ø„ ÷Sð Sr   r	   c                   ó   ‡ — e Zd Zˆ fd„Zˆ xZS )r   c                 óB   •— t         ‰| �  dj                  |«      «       y )Nz{0}: bad substitutionr   r   s     €r   r   zBadSubstitution.__init__H   ó   ø€ Ü‰ÑÐ0×7Ñ7¸Ó>Õ?r   r#   r%   s   @r   r   r   G   ó   ø„ ÷@ð @r   r   c                   ó    ‡ — e Zd Zdˆ fd„	Zˆ xZS )r   c                 óL   •— |€d}t         ‰| �  dj                  ||«      «       y )Nzparameter null or not setz{0}: {1}r   )r    r!   Úmsgr"   s      €r   r   zParameterNullOrNotSet.__init__M   s'   ø€ Øˆ;Ø-ˆCÜ‰Ñ˜×*Ñ*¨5°#Ó6Õ7r   ©Nr#   r%   s   @r   r   r   L   s   ø„ ÷8ñ 8r   r   c                   ó   ‡ — e Zd Zˆ fd„Zˆ xZS )r   c                 óB   •— t         ‰| �  dj                  |«      «       y )Nz{0}: unbound variabler   r   s     €r   r   zUnboundVariable.__init__T   r1   r   r#   r%   s   @r   r   r   S   r2   r   r   c                 ó0   — | j                  «       xs | dk(  S )NÚ_)Úisalnum)Úchars    r   Ú_valid_charr=   X   s   € Ø�<‰<‹>Ò(˜T S™[Ð(r   c                 ó:   — 	 t        | «       y# t        $ r Y yw xY w)NTF)ÚintÚ
ValueError)Úvals    r   Ú_isintrB   \   s#   € ðÜˆCŒØøÜò Ùðús   ‚ Ž	™c                 ó’   — |j                  | «      }|�|r|j                  |«      }|r|S |�|S |rt        �t        S t        | «      ‚y)a  Get value from environment variable.

    When nounset is True, it behaves like bash's "set -o nounset" or "set -u"
    and raises UnboundVariable exception.

    When indirect is True, it will use the value of the resolved variable as
    the name of the final variable.
    Ú )ÚgetÚRECOVER_NULLr   )ÚvarÚnounsetÚindirectÚenvironÚdefaultrA   s         r   ÚgetenvrL   d   sW   € ð �+‰+�cÓ
€CØ
€™8Ø�k‰k˜#Óˆá
Øˆ
àÐØˆáÜÐ#ÜÐÜ˜cÓ"Ð"Ør   c                 óz  — t        | «      dk(  rt        | «      ‚t        | «      dk(  r| d   S | d   |k(  r| d   t        | dd ||¬«      z   S | d   t        k(  rF| d   |k(  rt        t        | dd |||¬«      z   S | d   t        k(  rt        t	        | dd |||¬«      z   S t        | d   z   t        | dd |||¬«      z   S )zEscape the first character.r   é   N)rJ   Ú
var_symbol©rH   rJ   rO   é   )Úlenr   r   ÚESCAPE_CHARÚescape)Úvars_rH   rJ   rO   s       r   rT   rT      sò   € ä
ˆ5ƒz�Q‚Ü  Ó'Ð'ä
ˆ5ƒz�Q‚Ø�Q‰xˆàˆQ�x�:ÒØ�Q‰xœ&  q r °GÈ
ÔSÑSÐSàˆQ�x”;ÒØ�‰8�zÒ!Ü¤Ø�a�b�	 7°GÈ
ô"ñ ð ð �‰8”{Ò"Ü¤Ø�a�b�	 7°GÈ
ô"ñ ð ô
 	Ø
�‰(ñ	ä
��q�r� G°WÈÔ
Tñ	Uðr   c                 ó
  — t        | «      dk(  r|S | d   t        k(  r|t        | dd |||¬«      z   S | d   |k(  r0t        t	        j
                  «       «      t        | dd |||¬«      z   S | d   dk(  rt        | dd |||¬«      S g }| D ]\  }t        |«      r|j                  |«       Œ t        |«      }t        dj                  |«      |d|¬«      t        | |d |||¬«      z   c S  t        dj                  |«      |d|¬«      S )	zExpand a single variable.r   rN   NrP   Ú{rD   F©rH   rI   rJ   )rR   rS   rT   ÚstrÚosÚgetpidr   Úexpand_modifier_varr=   ÚappendrL   Újoin©rU   rH   rJ   rO   ÚbuffÚcÚns          r   Ú
expand_varrc   ›   s*  € ô ˆ5ƒz�Q‚ØÐàˆQ�x”;ÒØœFØ�!�"ˆI˜w°ÀJô
ñ 
ð 	
ð ˆQ�x�:ÒÜ”2—9‘9“;Ó¤&Ø�!�"ˆI˜w°ÀJô#
ñ 
ð 	
ð ˆQ�x�3‚Ü"Ø�!�"ˆI˜w°ÀJô
ð 	
ð €DÛˆÜ�qŒ>Ø�K‰K˜�Nä�D“	ˆAÜØ—‘˜“ w¸ÈôäØ�a�b�	 7°GÈ
ôñò ð ô �"—'‘'˜$“-¨¸5È'ÔRÐRr   c           	      óÖ  — t        | «      dk  rt        | «      ‚| d   dk(  rd}| dd } nd}g }| D ]ž  }t        |«      r|j                  |«       Œ |dk(  rAt        |«      dz   }t	        dj                  |«      |||¬	«      t        | |d |||¬
«      z   c S t        |«      }|dk(  r|dz  }t        dj                  |«      | |d ||||¬«      c S  t        dj                  |«      «      ‚)zExpand variables with modifier.rN   r   Ú!TNFÚ}rD   rX   rP   Ú:)rH   rI   rJ   rO   )	rR   r   r=   r]   rL   r^   r   Úexpand_advancedr   )rU   rH   rJ   rO   rI   r`   ra   rb   s           r   r\   r\   ¾   s  € ô ˆ5ƒz�Q‚Ü˜eÓ$Ð$àˆQ�x�3‚ØˆØ�a�b�	‰àˆà€DÛˆÜ�qŒ>Ø�K‰K˜�NØ�#ŠXÜ�D“	˜A‘ˆAÜØ—‘˜“ w¸È7ôäØ�a�b�	 7°GÈ
ôñò ô �D“	ˆAØ�CŠxØ�Q‘�Ü"Ø—‘˜“Ø�a�b�	ØØ!ØØ%ôò ð ô. ˜bŸg™g d›mÓ
,Ð,r   c                 ó  — t        |«      dk(  rt        | «      ‚g }d}|D ]R  }|dk(  r|dz  }|j                  |«       Œ|dk(  r|dz  }|dk(  r n%|j                  |«       ŒB|j                  |«       ŒT |dk7  rt        | «      ‚|t        |«      dz   d }t        dj	                  |«      |||¬«      }|st        | «      ‚|d   dk(  r$t        | |dd d	|||¬
«      t        ||||¬«      z   S |d   dk(  r$t        | |dd d|||¬
«      t        ||||¬«      z   S |d   dk(  r!t        | |dd |¬«      t        ||||¬«      z   S |d   dk(  r!t        | |dd |¬«      t        ||||¬«      z   S t        | |||¬«      t        ||||¬«      z   S )zExpand substitution.r   rN   rW   rf   NrD   rP   Ú-F)ÚmodifierÚset_rH   rI   rJ   Ú=TÚ+)rk   rJ   Ú?)rk   rH   rJ   )
rR   r   r]   r   r^   r   Úexpand_defaultÚexpand_substituteÚexpand_strictÚexpand_offset)	rG   rU   rH   rI   rJ   rO   rk   Údepthra   s	            r   rh   rh   å   s  € ô ˆ5ƒz�Q‚Ü! #Ó&Ð&à€HØ€EÛˆØ�Š8Ø�Q‰JˆEØ�O‰O˜AÕØ�#ŠXØ�Q‰JˆEØ˜ŠzÙà—‘ Õ"à�O‰O˜AÕð ð �‚zÜ! #Ó&Ð&à”#�h“- !Ñ#Ð%Ð&€EÜØ
�‰�Ó 7°GÈ
ô€Hñ Ü˜cÓ"Ð"à��{�cÒÜØØ˜a˜b�\ØØØØô
ô �5 '°7ÀzÔRñSð 	Sð ��{�cÒÜØØ˜a˜b�\ØØØØô
ô �5 '°7ÀzÔRñSð 	Sð ��{�cÒÜ ØØ˜a˜b�\Øô
ô �5 '°7ÀzÔRñ	Sð 	Sð ��{�cÒÜØØ˜a˜b�\Øô
ô �5 '°7ÀzÔRñ	Sð 	Sô ØØØØô	ô
 	ˆu˜g¨wÀ:ÔNñOð Or   c                 ón   — |j                  | d«      }|r|S t        �t        S t        | |r|«      ‚d«      ‚)z%Expand variable that must be defined.rD   N)rE   rF   r   )rG   rk   rJ   rA   s       r   rr   rr   /  s?   € ð �+‰+�c˜2Ó
€CÙ
Øˆ
ÜÐÜÐÜ
 ± XÓ
DÐD¸tÓ
DÐDr   c                 ó’  — g }|D ]g  }|dk(  rOt        |«      dz   }dj                  |«      }|rt        |«      sd}nt        |«      }t	        | ||d |||¬«      c S |j                  |«       Œi t        |«      dz   }dj                  |«      j                  «       }|rt        |«      sd}nt        |«      }t        | |d|¬«      |d S )	zExpand variable with offset.rg   rN   rD   r   N)rk   ÚoffsetrH   rJ   FrX   )rR   r^   rB   r?   Úexpand_lengthr]   ÚstriprL   )	rG   rk   rH   rJ   r`   ra   rb   Ú
offset_strrw   s	            r   rs   rs   :  sÐ   € ð €DÛˆØ�Š8Ü�D“	˜A‘ˆAØŸ™ ›ˆJÙ¤V¨JÔ%7Ø‘ä˜Z›�ä ØØ! ! "˜ØØØôò ð 	�‰�A�ð# ô& 	ˆD‹	�A‰€AØ—‘˜“×$Ñ$Ó&€JÙœV JÔ/Ø‰ä�Z“ˆÜ�#˜w°ÀÔHÈÈÐQÐQr   c                 óô   — |j                  «       }|sd}nHt        |«      s!t        d„ |D «       «      st        | |«      ‚d}nt	        |«      }|dk  rt        | |«      ‚|€d}n||z   }t        | |d|¬«      || S )z'Expand variable with offset and length.Nc              3   ó2   K  — | ]  }t        |«      –— Œ y ­wr6   )r=   )Ú.0ra   s     r   Ú	<genexpr>z expand_length.<locals>.<genexpr>a  s   è ø€ Ð6©: a”;˜q—>©:ùs   ‚r   FrX   )ry   rB   Úallr
   r?   r	   rL   )rG   rk   rw   rH   rJ   Ú
length_strÚlengthÚwidths           r   rx   rx   Z  s‰   € ð —‘Ó!€JÙØ‰Ü�JÔÜÑ6©:Ó6Ô6Ü! # zÓ2Ð2à‰Fä�Z“ˆØ�AŠ:Ü-¨c°:Ó>Ð>à€~Ø‰à˜‘ˆä�#˜w°ÀÔHÈÐPUÐVÐVr   c                 ó*   — |j                  | «      r|S y)zExpand or return substitute.rD   )rE   )rG   rk   rJ   s      r   rq   rq   r  s   € ð ‡{�{�3ÔØˆØr   c                 ón   — |r$|j                  | «      s|j                  | |i«       t        | ||||¬«      S )zExpand var or return default.)rH   rI   rK   rJ   )rE   ÚupdaterL   )rG   rk   rl   rH   rI   rJ   s         r   rp   rp   z  s>   € ñ �G—K‘K Ô$Ø�‰˜˜X�Ô'ÜØØØØØôð r   FÚ$c                 ó<  — t        | t        «      r| j                  «       j                  «       } t	        | «      dk(  ryg }	 | D ]‰  }||k(  r4t	        |«      dz   }dj                  |«      t        | |d |||¬«      z   c S |t        k(  r4t	        |«      dz   }dj                  |«      t        | |d |||¬«      z   c S |j                  |«       Œ‹ dj                  |«      S # t        $ r t        | «      ‚t        $ r t        | «      ‚t        $ r t        | «      ‚w xY w)aÐ  Expand variables Unix style.

    Params:
        vars_ (str):  Variables to expand.
        nounset (bool): If True, enables strict parsing (similar to set -u / set -o nounset in bash).
        environ (Mapping): Elements to consider during variable expansion. Defaults to os.environ
        var_symbol (str): Character used to identify a variable. Defaults to $

    Returns:
        str: Expanded values.

    Example usage: ::

        from expandvars import expand

        print(expand("%PATH:$HOME/bin:%{SOME_UNDEFINED_PATH:-/default/path}", environ={"PATH": "/example"}, var_symbol="%"))
        # /example:$HOME/bin:/default/path

        # Or
        with open(somefile) as f:
            print(expand(f))
    r   rD   rN   NrP   )Ú
isinstancer   Úreadry   rR   r^   rc   rS   rT   r]   r   r   r   r_   s          r   r   r   ˆ  s"  € ô. �%œÔ'à—
‘
“×"Ñ"Ó$ˆä
ˆ5ƒz�Q‚Øà€Dð%ÛˆAØ�JŠÜ˜“I ‘M�Ø—w‘w˜t“}¤zØ˜!˜"�I w¸ÈJô(ñ ò ð ”KÒÜ˜“I ‘M�Ø—w‘w˜t“}¤vØ˜!˜"�I w¸ÈJô(ñ ò ð �K‰K˜�Nð ð �w‰w�t‹}ÐøÜò (Ü  Ó'Ð'Üò )Ü! %Ó(Ð(Üò %Ü˜eÓ$Ð$ð%ús   Á=C  Á?<C  Â<#C  Ã ;Dc                 ó   — t        | |¬«      S )a#  Expand system variables Unix style.

    Params:
        vars_ (str): System variables to expand.
        nounset (bool): If True, enables strict parsing (similar to set -u / set -o nounset in bash).

    Returns:
        str: Expanded values.

    Example usage: ::

        from expandvars import expandvars

        print(expandvars("$PATH:$HOME/bin:${SOME_UNDEFINED_PATH:-/default/path}"))
        # /bin:/sbin:/usr/bin:/usr/sbin:/home/you/bin:/default/path

        # Or
        with open(somefile) as f:
            print(expandvars(f))
    )rH   )r   )rU   rH   s     r   r   r   À  s   € ô* �% Ô)Ð)r   r6   )F)(rZ   Úior   Ú
__author__Ú	__email__Ú__homepage__Ú__description__Ú__version__Ú__license__Ú__all__rS   rJ   rE   rF   Ú	Exceptionr   ÚSyntaxErrorr   r   r
   Ú
IndexErrorr	   r   ÚKeyErrorr   r   r=   rB   rL   rT   rc   r\   rh   rr   rs   rx   rq   rp   r   r   r   r   r   Ú<module>r—      s+  ðó 
Ý à€
Ø#€	Ø:€Ø6€Ø€Ø€ò€ð €ð �z‰z�~‰~Ð7¸Ó>€ô	˜)ô 	ô<Ð-¨{ô <ô
IÐ,¨kô Iô

Ð)¨;ô 
ôSÐ"5°zô Sô
@Ð)¨;ô @ô
8Ð/°ô 8ô@Ð)¨8ô @ò
)òóò6ò8 SòF$-òNGOòTEòRò@Wò0òð  ¨¯©Àó 5%ôp*r   