
    yIf                        d Z ddlmZ ddlZddlmZ ddlm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mZ d	d
lmZmZ e	rddlmZ  G d de          ZddZddZddZddZddZdZdS )zPThis module pulls together this package: create and parse CLI arguments for tox.    )annotationsN)redirect_stderr)Path)TYPE_CHECKINGCallable
NamedTupleSequencecast)Sourcediscover_source)
ToxHandlersetup_report   )Parsed	ToxParser)Statec                  B    e Zd ZU ded<   ded<   ded<   ded<   d	ed
<   dS )Optionsr   parsedzSequence[str] | Nonepos_argsr   sourcez!dict[str, Callable[[State], int]]cmd_handlersr   log_handlerN)__name__
__module____qualname____annotations__     H/var/www/piapp/venv/lib/python3.11/site-packages/tox/config/cli/parse.pyr   r      sH         NNN""""NNN3333r   r   argsstrreturnc                 V   d }	 |                      d          }t          | |dz   d                    }| d |         } n# t          $ r Y nw xY wt          |           \  }}}t	          |           \  }}||j        k    r|                    |j                   t          |||||          S )Nz--r   )indextuple
ValueError	_get_base_get_all	verbosityupdate_verbosityr   )r!   r   
pos_arg_atguess_verbosityr   r   r   r   s           r    get_optionsr.      s    '+H!ZZ%%
 j1n../00KZK 	     ,5T??(O[&#D>>FL&***$$V%566668V\;GGGs   > 
A
ASequence[str]tuple[int, ToxHandler, Source]c                "   t          j                    }t                      }	 t          t          j                                      d          5 }t          |          5  |                    | |           ddd           n# 1 swxY w Y   ddd           n# 1 swxY w Y   n# t          $ r Y nw xY w|j
        }t          ||j                  }ddlm} t          |j        |j                  }|                    |j                   |||fS )zRFirst just load the base options (verbosity+color) to setup the logging framework.w)	namespaceNr   MANAGER)r   baser   r   osdevnullopenr   parse_known_args
SystemExitr*   r   
is_coloredtox.plugin.managerr5   r   config_fileroot_dirload_pluginspath)r!   
tox_parserr   file_handlerr-   handlerr5   r   s           r    r(   r(   ,   s   !!JXXF"*""3'' 	@<9V9V 	@ 	@'''???	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@   &O?F,=>>G******V/AAF%%%GV++sY   ,B& BB7BB	B
B	BB& BB& !B"B& &
B32B30tuple[Parsed, dict[str, Callable[[State], int]]]c                    t                      }t          t          |                    |                     }d |j                                        D             }||fS )zParse all the options.c                     i | ]\  }\  }}||S r   r   ).0k_ps       r    
<dictcomp>z_get_all.<locals>.<dictcomp>D   s"    BBBFQ1BBBr   )_get_parserr
   r   
parse_argshandlersitems)r!   rB   r   rO   s       r    r)   r)   @   sU    J&*//5566FBBj&9&?&?&A&ABBBH8r   r   c                     t          j                    } ddlm} |                    |            |                                  | S Nr   r4   )r   corer=   r5   tox_add_optionfix_defaults)rB   r5   s     r    rM   rM   H   sM    !!J******:&&&r   c                 v    ddl m}  |                     t          j                               t                      S rR   )r=   r5   r@   r   cwdrM   r4   s    r    _get_parser_docrX   R   s8    ******$$$==r   )r   r.   )r!   r"   r#   r   )r!   r/   r#   r0   )r!   r/   r#   rE   )r#   r   ) __doc__
__future__r   r7   
contextlibr   pathlibr   typingr   r   r   r	   r
   tox.config.sourcer   r   
tox.reportr   r   parserr   r   tox.session.stater   r   r.   r(   r)   rM   rX   __all__r   r   r    <module>rc      ss   V V " " " " " " 				 & & & & & &       F F F F F F F F F F F F F F 5 5 5 5 5 5 5 5 / / / / / / / / % % % % % % % % (''''''    j   H H H H", , , ,(         r   