Ë
    Ö—Äju  ã                  ó¨   — d dl mZ d dlmZmZ d dlmZmZmZm	Z	m
Z
mZmZ  G d„ de	«      Z e
deeeef   ef   ¬«      Ze G d„ d	ee   «      «       Zy
)é    )Úannotations)Ú	dataclassÚfield)ÚAnyÚDictÚGenericÚ	TypedDictÚTypeVarÚUnionÚoverloadc                  ó   — e Zd Zy)ÚBaseTypedDictN)Ú__name__Ú
__module__Ú__qualname__© ó    úPC:\Users\pivot\Documents\cueki\casual-preloader\Lib\site-packages\cappa/state.pyr   r      s   … r   r   ÚS)Úboundc                  ó�   — e Zd ZU dZ ed„ ¬«      Zded<   dd„Zddœdd	„Ze	e
dd
„«       «       Ze	e
dd„«       «       Ze
dd„«       Zy)ÚStateaç  A store of arbitrary data.

    State can be used as arguments to `Arg.parse`, `Arg.action`,
    or `Arg.default=ValueFrom(...)` callables, as a way to propagate shared
    state between different parts of the overall parse execution.

    Example:
        >>> from typing_extensions import Annotated
        >>> import cappa

        >>> def parse_arg(state: State):
        ...     state.state["arg"] = state.state.get("arg", 0)
        ...     return state.state["arg"]

        >>> @dataclass
        ... class Command:
        ...     arg1: Annotated[int, cappa.Arg(action=parse_arg)]
        ...     arg2: Annotated[int, cappa.Arg(parse=parse_arg)]
        ...     arg3: Annotated[int, cappa.Arg(default=cappa.ValueFrom(parse_arg))]
    c                 ó   — i S ©Nr   r   r   r   Ú<lambda>zState.<lambda>$   s   € ©Rr   )Údefault_factoryr   Ústatec                ó"   — || j                   |<   y r   )r   )ÚselfÚkeyÚvalues      r   Úsetz	State.set&   s   € Øˆ�
‰
�3Šr   N)Údefaultc               ó:   — | j                   j                  ||«      S r   )r   Úget)r   r    r#   s      r   r%   z	State.get)   s   € Ø�z‰z�~‰~˜c 7Ó+Ð+r   c                 ó   — y r   r   ©Úclsr   s     r   ÚensurezState.ensure,   s   € à;>r   c                 ó   — y r   r   r'   s     r   r)   zState.ensure0   s   € à25r   c                ó   — |€
t        «       S |S r   )r   r'   s     r   r)   zState.ensure4   s   € àˆ=Ü“7ˆNØˆr   )r    Ústrr!   r   )r    r,   r#   r   )r   ÚNoneÚreturnzState[dict[str, Any]])r   úState[S]r.   r/   )r   zState[S] | Noner.   z State[S] | State[dict[str, Any]])r   r   r   Ú__doc__r   r   Ú__annotations__r"   r%   r   Úclassmethodr)   r   r   r   r   r      sg   … ññ* ¡ZÔ0€Eˆ1Ó0ó ð /3õ ,ð ØÚ>ó ó à>àØÚ5ó ó à5àòó ñr   r   N)Ú
__future__r   Údataclassesr   r   Útypingr   r   r   r	   r
   r   r   r   r,   r   r   r   r   r   Ú<module>r6      s]   ðÝ "ç (ß J× JÑ Jô $�IÔ #ñ ˆC�u˜T # s (™^¨]Ð:Ñ;Ô<€ð ô*ˆG�A‰Jó *ó ñ*r   