
    k7i                         S SK r S SKJrJr  S SKJrJrJr  S SKJ	r	  \S   \\/\4   -  r
\
\\
   -  rS\S\S\\/S4   S	\4S
 jrg)    N)CallableIterable)AnyLiteralcast)is_iterable)return_valuecall_if_callable%print_non_int_return_int_as_exit_code!print_str_return_int_as_exit_codeprint_str_return_zero&print_non_none_return_int_as_exit_codeprint_non_none_return_zero!return_int_as_exit_code_else_zeroprint_non_int_sys_exitsys_exitreturn_nonereturn_zeroprint_return_zerosys_exit_zeroprint_sys_exit_zeroresultactionprint_fnreturnc                    [        U5      (       a,  [        [        [           U5       H  n[	        XU5      n M     U $ [        U5      (       a  U" U 5      $ U=S:X  a    [        U [        5      (       a   [        R                  " U (       a  SOS5        g[        U [        5      (       a  [        R                  " U 5        gU b  U" U 5        [        R                  " S5        g[        R                  " S5        g=S:X  a    U $ =S:X  a    [        U 5      (       a  U " 5       $ U $ =S:X  ay    [        U [        5      (       a   [        R                  " U (       a  SOS5        g[        U [        5      (       a  [        R                  " U 5        g[        R                  " S5        g=S:X  aE    [        U [        5      (       a  U (       a  S$ S$ [        U [        5      (       a  U $ U b	  U" U 5        gg=S	:X  aW    [        U [        5      (       a	  U" U 5        g[        U [        5      (       a  U (       a  S$ S$ [        U [        5      (       a  U $ g=S
:X  a    [        U [        5      (       a  U" U 5        g=S:X  aD    U b  U" U 5        [        U [        5      (       a  U (       a  S$ S$ [        U [        5      (       a  U $ g=S:X  a    U b  U" U 5        g=S:X  a9    [        U [        5      (       a  U (       a  S$ S$ [        U [        5      (       a  U $ g=S:X  a    g=S:X  a    g=S:X  a
    U" U 5        g=S:X  a    [        R                  " S5        gS:X  a  U" U 5        [        R                  " S5        g [        e)u  Handle command result based on result_action.

When ``action`` is a sequence, actions are applied left-to-right in a pipeline,
where each action receives the result of the previous action. For example,
with ``result_action=[uppercase, add_greeting]``:

    result → uppercase(result) → add_greeting(uppercase(result))

Parameters
----------
result : Any
    The command's return value.
action : ResultAction
    The action (or sequence of actions) to take with the result.
    If a sequence, actions are chained left-to-right.
print_fn : Callable[[Any], None]
    Function to call to print output (e.g., console.print).

Returns
-------
Any
    Processed result based on action (may call sys.exit() and not return).
r   r      Nr	   r
   r   r   r   r   r   r   r   r   r   r   r   r   )r   r   r   ResultActionSinglehandle_result_actioncallable
isinstanceboolsysexitintstr
ValueError)r   r   r   single_actions       Q/home/james-whalen/.local/lib/python3.13/site-packages/cyclopts/_result_action.pyr   r      s   8 6!(+=">GM)&JF Hf~
%&$''f!,FC(( # MxM&$''f!,FC(( 4&$''"q))FC((# 0&#&& FD))"q))FC(($&#&& 5! &$''"q))FC(()! 0&$''"q))FC(( VHHQK"VHHQK    )r#   collections.abcr   r   typingr   r   r   cyclopts.utilsr   r   ResultActionr    r*   r)   <module>r0      s    
 . % % & 	" ucz# * "H-?$@@ttt ud{#t 		tr*   