Ë
    Ö—Äj%  ã                  óÚ  — U d dl mZ d dlZd dlmZmZmZmZmZ d dl	m
Z
mZ d dlmZ d dlmZmZ d dlmZ d dlmZ d d	lmZ d d
lmZmZmZ d dlmZmZmZ erd dlmZ d dl m!Z!m"Z"m#Z# d dl$m%Z% d dl&m'Z'  eddd¬«      Z(ejR                   G d„ d«      «       Z*ejR                   G d„ de*«      «       Z+dd„Z,dd„Z-	 	 	 d 	 	 	 	 	 	 	 	 	 	 	 d!d„Z.	 	 	 	 d"d„Z/d#d„Z0e
ee*f   Z1de2d<    e*«       Z3y)$é    )ÚannotationsN)ÚTYPE_CHECKINGÚAnyÚIterableÚMappingÚTextIO)Ú	AnnotatedÚ	TypeAlias)ÚGroup)ÚFieldÚextract_dataclass_metadata)Ú
Completion)ÚResolved)ÚState)ÚEmptyÚ	EmptyTypeÚTypeView)ÚTÚassert_typeÚfind_annotations)ÚFinalArg)ÚAliasÚCommandÚFinalCommand)ÚHelpFormattable)ÚOutputé   ÚSubcommandsé   )Úsectionc                  óø   — e Zd ZU dZeZded<   dZded<   eZ	ded<   d	Z
d
ed<    ej                  d„ ¬«      Zded<   eZded<    ej                  d„ ¬«      Zded<   edd„«       Z	 	 	 	 	 d	 	 	 	 	 	 	 	 	 	 	 dd„Zy)Ú
SubcommandaO  Describe a CLI subcommand.

    Arguments:
        field_name: Defaults to the name of the class, converted to dash case, but
            can be overridden here.
        required: Defaults to automatically inferring requiredness, based on whether the
            class's value has a default. By setting this, you can force a particular value.
        group: The subcommand group, for use in controlling help text for the subcommand, and
            where it is displayed. This can be any of: the string name (``'Subcommands'``),
            a 2-tuple of the `order` and the name (``(3, "Subcommands")``), or a :class:`Group`
            instance (``Group(3, 'Subcommands')``)
        hidden: Whether the argument should be hidden in help text. Defaults to False.
        options: A mapping of the subcommand names to the corresponding `Command` to which
            the subcommands refer. Unless imperatively constructing the CLI structure, this
            field should generally always be inferred automatically.
        types: Defaults to the class's annotated types, but can be overridden here.
    zstr | EmptyTypeÚ
field_nameNzbool | NoneÚrequiredzstr | tuple[int, str] | GroupÚgroupFÚboolÚhiddenc                 ó   — i S ©N© r*   ó    úUC:\Users\pivot\Documents\cueki\casual-preloader\Lib\site-packages\cappa/subcommand.pyÚ<lambda>zSubcommand.<lambda>3   s   € ÑTVr+   ©Údefault_factoryzMapping[str, Command[Any]]ÚoptionszIterable[type] | EmptyTypeÚtypesc                 ó   — i S r)   r*   r*   r+   r,   r-   zSubcommand.<lambda>9   s   € ¡r+   údict[str, tuple[str, Alias]]Ú	alias_mapc                ó‚   — t        |t        «      xs d }t        |t        «      }|r|}|sy t        |«      dk(  sJ ‚|d   S )Nr   r   )r   r"   r   Úlen)ÚclsÚfieldÚ	type_viewÚsubcommandsÚfield_metadatas        r,   ÚdetectzSubcommand.detect<   sJ   € ä& y´*Ó=ÒEÀˆä3°E¼:ÓFˆÙØ(ˆKáØä�;Ó 1Ò$Ð$Ð$Ø˜1‰~Ðr+   c           	     ó  — |€t        t        «      }|xs t        | j                  t        «      }t        | |«      }t        | |«      }t        | ||||¬«      }t        |«      }	t        | «      }
t        | j                  |||||	|
¬«      S )N)Úhelp_formatterÚpropagated_argumentsÚstate)r'   r#   r1   r$   r0   r4   r%   )r   r   r   r#   ÚstrÚinfer_typesÚinfer_requiredÚinfer_optionsÚbuild_alias_mapÚinfer_groupÚFinalSubcommandr'   )Úselfr9   r#   r>   r?   r@   r1   r$   r0   r4   r%   s              r,   Ú	normalizezSubcommand.normalizeJ   s•   € ð ÐÜ ¤›ˆIàÒD¤;¨t¯©ÄÓ#Dˆ
Ü˜D )Ó,ˆÜ! $¨	Ó2ˆÜØØØ)Ø!5Øô
ˆô $ GÓ,ˆ	Ü˜DÓ!ˆäØ—;‘;Ø!ØØØØØô
ð 	
r+   )r8   r   r9   úTypeView[Any]ÚreturnzSubcommand | None)NNNNN)r9   zTypeView[Any] | Noner#   ú
str | Noner>   úHelpFormattable | Noner?   úlist[FinalArg[Any]] | Noner@   úState[Any] | NonerK   rG   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r#   Ú__annotations__r$   ÚDEFAULT_SUBCOMMAND_GROUPr%   r'   Údataclassesr8   r0   r1   r4   Úclassmethodr<   rI   r*   r+   r,   r"   r"      sÙ   … ñð$ #(€J�Ó'Ø €HˆkÓ Ø+C€EÐ(ÓCØ€FˆDÓà*;¨+×*;Ñ*;ÉJÔ*W€GÐ'ÓWØ(-€EÐ%Ó-ð /@¨k×.?Ñ.?Ù"ô/€IÐ+ó ð òó ðð +/Ø!%Ø15Ø;?Ø#'ð 
à'ð 
ð ð 
ð /ð	 
ð
 9ð 
ð !ð 
ð 
ô 
r+   r"   c                  ó   — e Zd ZU dZdZded<   dZded<    ej                  d„ ¬	«      Z	d
ed<    ej                  e
¬	«      Zded<    ej                  e¬	«      Zded<   dd„Zdddœ	 	 	 	 	 	 	 	 	 	 	 dd„Zdd„Zdd„Zdd„Zdd„Zdd d„Zd!d„Zy)"rG   z‰Post-normalization form of :class:`Subcommand` with narrowed field types.

    Produced exclusively by :meth:`Subcommand.normalize`.
    Ú rA   r#   Fr&   r$   c                 ó   — t         S r)   )rU   r*   r+   r,   r-   zFinalSubcommand.<lambda>v   s   € Õ=Ur+   r.   r   r%   úIterable[type]r1   zMapping[str, FinalCommand[Any]]r0   c                ód   — || j                   v r|S || j                  v r| j                  |   d   S y)z�Return the canonical name for a typed-in name (canonical or alias).

        Returns `None` when `name` matches neither.
        r   N)r0   r4   )rH   Únames     r,   Úresolve_namezFinalSubcommand.resolve_name|   s8   € ð
 �4—<‘<ÑØˆKØ�4—>‘>Ñ!Ø—>‘> $Ñ'¨Ñ*Ð*Ør+   N)r@   Úinputc               óp   — |j                  d«      }| j                  |   }|j                  ||||||¬«      S )NrP   )Úoutputr@   r_   )Úpopr0   Ú
map_result)rH   ÚprogÚparsed_argsra   r@   r_   Ú	canonicalÚoptions           r,   rc   zFinalSubcommand.map_result‡   sE   € ð  —O‘O JÓ/ˆ	Ø—‘˜iÑ(ˆØ× Ñ Ø�D˜+¨f¸EÈð !ó 
ð 	
r+   c                óv   — | j                   j                  «       D �cg c]  }|j                  rŒ|‘Œ c}S c c}w r)   )r0   Úvaluesr'   )rH   Úos     r,   Úavailable_optionsz!FinalSubcommand.available_options–   s/   € ØŸ<™<×.Ñ.Ô0ÓAÑ0�a¸¿»’Ð0ÑAÐAùÒAs   �6¯6c                ó‚   — | j                   j                  «       D ��cg c]  \  }}|j                  rŒ|‘Œ c}}S c c}}w r)   )r0   Úitemsr'   )rH   Únrj   s      r,   ÚnameszFinalSubcommand.names™   s3   € Ø"Ÿl™l×0Ñ0Ô2ÔCÑ2‘d�a˜¸!¿(»(’Ð2ÒCÐCùÓCs   ž;³;c                ó    — | j                   j                  |«      }|€g S |j                  «       D �cg c]  }|j                  rŒ|‘Œ c}S c c}w )zEVisible (non-hidden) aliases for the given canonical subcommand name.)r0   ÚgetÚresolved_aliasesr'   )rH   rf   ÚcommandÚas       r,   Úvisible_aliases_forz#FinalSubcommand.visible_aliases_forœ   sI   € à—,‘,×"Ñ" 9Ó-ˆØˆ?ØˆIØ"×3Ñ3Ô5ÓFÑ5�a¸Q¿X»X’Ð5ÑFÐFùÒFs   ²AÁAc                ó¸   — g }| j                  «       D ]D  }|j                  |«       | j                  |«      D ]  }|j                  |j                  «       Œ ŒF |S )z;Canonical names plus visible aliases, in declaration order.)ro   Úappendru   r]   )rH   Úresultr]   Úaliass       r,   Úall_visible_namesz!FinalSubcommand.all_visible_names£   sO   € àˆØ—J‘J–LˆDØ�M‰M˜$ÔØ×1Ñ1°$Ö7�Ø—‘˜eŸj™jÕ)ñ 8ð !ð ˆr+   c                ó@   — |j                  | j                  «       «      S r)   )Újoinro   )rH   Ú	delimiters     r,   Ú	names_strzFinalSubcommand.names_str¬   s   € Ø�~‰~˜dŸj™j›lÓ+Ð+r+   c                ód   — | j                  «       D �cg c]  }||v sŒt        |«      ‘Œ c}S c c}w r)   )rz   r   )rH   Úpartialrj   s      r,   Ú
completionzFinalSubcommand.completion¯   s/   € Ø'+×'=Ñ'=Ô'?ÓPÑ'? !À7ÈaÂ<”
˜1•Ð'?ÑPÐPùÒPs   “	-�-)r]   rA   rK   rL   )rd   rA   re   zdict[str, Any]ra   r   r@   rO   r_   zTextIO | NonerK   z$tuple[Resolved[Any], dict[Any, Any]])rK   zlist[FinalCommand[Any]])rK   z	list[str])rf   rA   rK   zlist[Alias])z, )r}   rA   rK   rA   )r€   rA   )rP   rQ   rR   rS   r#   rT   r$   rV   r8   r%   Útupler1   Údictr0   r^   rc   rk   ro   ru   rz   r~   r�   r*   r+   r,   rG   rG   m   s×   … ñð
 €J�ÓØ€HˆdÓØ$�;×$Ñ$Ñ5UÔV€Eˆ5ÓVØ-˜K×-Ñ-¸eÔD€Eˆ>ÓDØ/@¨{×/@Ñ/@Øô0€GÐ,ó ó	ð" $(Ø#ñ
àð
ð $ð
ð
 ð
ð !ð
ð ð
ð 
.ó
óBóDóGóô,ôQr+   rG   c                ó¨   — | j                   t        ur| j                   S |j                  rt        d„ |j                  D «       «      S |j
                  fS )Nc              3  óN   K  — | ]  }|j                   rŒ|j                  –— Œ y ­wr)   )Úis_none_typeÚ
annotation)Ú.0Úts     r,   Ú	<genexpr>zinfer_types.<locals>.<genexpr>¸   s   è ø€ ÐWÑ+@ aÈÏË�Q—\•\Ñ+@ùs   ‚%”%)r1   r   Úis_unionr‚   Úinner_typesr‡   )Úargr9   s     r,   rB   rB   ³   sG   € Ø
‡y�yœÑØ�y‰yÐà×ÒÜÑW¨9×+@Ò+@ÓWÓWÐWà× Ñ Ð"Ð"r+   c                óL   — | j                   �| j                   S |j                   S r)   )r$   Úis_optional)r�   r‡   s     r,   rC   rC   ½   s%   € Ø
‡|�|ÐØ�|‰|Ðà×%Ñ%Ð%Ð%r+   c           	     ó8  — ddl m} | j                  r?| j                  j                  «       D ��ci c]  \  }}||j	                  ||¬«      “Œ c}}S i }|D ];  }	 |j
                  |	|¬«      }|j                  «       }
|j	                  |¬«      ||
<   Œ= |S c c}}w )Nr   )r   )r?   r@   )r>   )r?   )Úcappa.commandr   r0   rm   Úcollectrq   Ú	real_name)r�   r1   r>   r?   r@   r   r]   Útype_commandr0   Útype_Ú	type_names              r,   rD   rD   Ä   s½   € õ &à
‡{‚{ð '*§k¡k×&7Ñ&7Ô&9ô
ñ
 ':Ñ"��lð	 �,×&Ñ&Ø%9Øð 'ó ñ ð ':ò
ð 	
ð -/€GÛˆØ%0 W§[¡[°À~Ô%VˆØ ×*Ñ*Ó,ˆ	Ø)×1Ñ1Ø!5ð 2ó 
ˆ�	Òð ð €Nùó!
s   °Bc                ó”  — i }| j                  «       D ]²  \  }}|j                  «       D ]š  }|j                  |k(  rt        d|› d�«      ‚|j                  | v rt        d|j                  › d|› d�«      ‚|j                  |v r1||j                     \  }}t        d|j                  › d|› d|› d�«      ‚||f||j                  <   Œœ Œ´ |S )	a  Build alias name -> (canonical, Alias) for a set of subcommand options.

    Raises `ValueError` on collisions: an alias matching another command's
    canonical name, an alias colliding with another alias, or an alias that
    duplicates its own canonical name.
    zSubcommand 'z%' has an alias matching its own name.zSubcommand alias 'z' (for 'z+') collides with another subcommand's name.z' is declared on both 'z' and 'z'.)rm   rr   r]   Ú
ValueError)r0   r4   rf   rs   ry   Úother_canonicalÚ_s          r,   rE   rE   á   sý   € ð /1€IØ%Ÿm™mžoÑˆ	�7Ø×-Ñ-Ö/ˆEØ�z‰z˜YÒ&Ü Ø" 9 +Ð-RÐSóð ð �z‰z˜WÑ$Ü Ø(¨¯©¨°H¸Y¸Kð H?ð @óð ð �z‰z˜YÑ&Ø%.¨u¯z©zÑ%:Ñ"� Ü Ø(¨¯©¨ð 5Ø'Ð(¨°	¨{¸"ð>óð ð &/°Ð$6ˆI�e—j‘jÒ!ñ! 0ð .ð$ Ðr+   c                ó  — d }d}t        | j                  t        «      r| j                  S t        | j                  t        «      r| j                  }t        | j                  t        «      r| j                  \  }}|sJ ‚t        ||¬«      S )Nr   )r]   Úorder)Ú
isinstancer%   r   rA   r‚   )r�   r]   rœ   s      r,   rF   rF      sj   € Ø€DØ€Eä�#—)‘)œUÔ#Ø�y‰yÐä�#—)‘)œSÔ!Ø�y‰yˆä�#—)‘)œUÔ#Ø—i‘i‰ˆˆtá€Kˆ4Ü�d %Ô(Ð(r+   r
   )r�   r"   r9   rJ   rK   r[   )r�   r"   r‡   rJ   rK   r&   )NNN)r�   r"   r1   r[   r>   rM   r?   rN   r@   rO   rK   údict[str, FinalCommand[Any]])r0   rž   rK   r3   )r�   r"   rK   r   )4Ú
__future__r   rV   Útypingr   r   r   r   r   Útyping_extensionsr	   r
   Ú	cappa.argr   Úcappa.class_inspectr   r   Úcappa.completion.typesr   Úcappa.invoke.typesr   Úcappa.stater   Úcappa.type_viewr   r   r   Úcappa.typingr   r   r   r   r‘   r   r   r   Ú
cappa.helpr   Úcappa.outputr   rU   Ú	dataclassr"   rG   rB   rC   rD   rE   rF   r   rT   ÚDEFAULT_SUBCOMMANDr*   r+   r,   Ú<module>r­      s&  ðÞ "ã ß @Õ @ç 2å ß AÝ -Ý 'Ý ß 6Ñ 6ß 9Ñ 9áÝ"ß:Ñ:Ý*Ý#ñ !  M¸1Ô=Ð ð ×Ñ÷O
ð O
ó ðO
ðd ×ÑôBQ�jó BQó ðBQóJ#ó&ð .2Ø7;Ø#ðØ	ðàðð +ðð 5ð	ð
 ðð "óð:Ø)ðà!óó>)ð" # 1 j =Ñ1€ˆYÓ 1Ù“\Ñ r+   