§
    ÈtºfÒ  ã                   ó  — d Z ddlZddlmZmZ ddlmZ ddlmZmZm	Z	m
Z
mZmZmZ ddlmZ ddlmZ ddlmZmZmZmZ dd	lmZ dd
lmZmZ ddlmZmZmZ ddl m!Z!m"Z" ddl#m$Z$ e%Z&dede'gdf         de'ddfd„Z( G d„ de¦  «        Z)dS )z$
Command line options for C{twist}.
é    N)ÚstderrÚstdout)Údedent)ÚCallableÚIterableÚMappingÚOptionalÚSequenceÚTupleÚcast)Úversion)ÚIReactorCore)ÚInvalidLogLevelErrorÚLogLevelÚjsonFileLogObserverÚtextFileLogObserver)Ú
getPlugins)ÚOptionsÚ
UsageErroré   )ÚNoSuchReactorÚgetReactorTypesÚinstallReactor)Ú
ExitStatusÚexit)ÚIServiceMakerÚoptÚTwistOptionsÚkwargsÚreturnc                 óR   —  t          | j        pd¦  «        j        di |¤Ž| _        dS )z‘
    Update the docstring of a method that implements an option.
    The string is dedented and the given keyword arguments are substituted.
    Ú N© )r   Ú__doc__Úformat)r   r   s     úa/var/www/surfInsights/venv3-11/lib/python3.11/site-packages/twisted/application/twist/_options.pyÚ_update_docr'      s1   € ð
 3•&˜œÐ*¨Ñ+Ô+Ô2Ð<Ð<°VÐ<Ð<€C„K€K€Kó    c            	       ó8  — e Zd ZdZdZej        Zdd„Zde	fd„Z
dd„Zd	e	ddfd
„Z eed                     d„  e¦   «         D ¦   «         ¦  «        ¬¦  «         d	e	defd„Zde	ddfd„Z eed                     d„  ej        ¦   «         D ¦   «         ¦  «        ej        ¬¦  «         de	ddfd„Zde	ddfd„Z ee¦  «         dd„Zddeee	                  ddfd„Zedee	ef         fd„¦   «         Zedee e	de!ege"f         e	f                  fd„¦   «         Z#dd„Z$dS ) r   z,
    Command line options for C{twist}.
    Údefaultr    Nc                 óx   — t          j        | ¦  «         | j        | d<   | j        | d<   t          | d<   d| _        d S )NÚreactorNameÚlogLevelÚlogFiler"   )r   Ú__init__ÚdefaultReactorNameÚdefaultLogLevelr   Úlongdesc©Úselfs    r&   r/   zTwistOptions.__init__/   sC   € ÝÔ˜ÑÔÐà"Ô5ˆˆ]ÑØÔ/ˆˆZÑÝ ˆˆY‰ð ˆŒˆˆr(   c                 ó0   — t          j        | ¦  «        › d�S )Nz plugin [plugin_options])r   ÚgetSynopsisr3   s    r&   r6   zTwistOptions.getSynopsis:   s   € ÝÔ% dÑ+Ô+ÐEÐEÐEÐEr(   útyping.NoReturnc                 óF   — t          t          j        t          › ¦  «         dS )z)
        Print version and exit.
        N)r   r   ÚEX_OKr   r3   s    r&   Úopt_versionzTwistOptions.opt_version=   s   € õ 	�ZÔ¥'˜|Ñ,Ô,Ð,Ð,Ð,r(   Únamec                 ó‚   — 	 |                       |¦  «        | d<   || d<   dS # t          $ r t          d|› �¦  «        ‚w xY w)zN
        The name of the reactor to use.
        (options: {options})
        Úreactorr,   zUnknown reactor: N)r   r   r   )r4   r;   s     r&   Úopt_reactorzTwistOptions.opt_reactorC   sd   € ð	'Ø"×1Ò1°$Ñ7Ô7ˆD�‰Oð #'ˆD�ÑÐÐøõ ð 	9ð 	9ð 	9ÝÐ7°Ð7Ð7Ñ8Ô8Ð8ð	9øøøs   ‚! ¡>z, c              #   ó,   K  — | ]}d |j         › d �V — ŒdS ©ú"N)Ú	shortName)Ú.0Úrts     r&   ú	<genexpr>zTwistOptions.<genexpr>T   s0   è è € ÐJÐJ°"Ð-˜bœlÐ-Ð-Ð-ÐJÐJÐJÐJÐJÐJr(   ©Úoptionsc                 ól   — || j         k    rddlm} t          t          |¦  «        S t          |¦  «        S )z&
        Install the reactor.
        r   )r=   )r0   Útwisted.internetr=   r   r   r   )r4   r;   r=   s      r&   r   zTwistOptions.installReactorW   sB   € ð �4Ô*Ò*Ð*Ø0Ð0Ð0Ð0Ð0Ð0å� gÑ.Ô.Ð.å! $Ñ'Ô'Ð'r(   Ú	levelNamec                 óv   — 	 t          j        |¦  «        | d<   dS # t          $ r t          d|› �¦  «        ‚w xY w)z[
        Set default log level.
        (options: {options}; default: "{default}")
        r-   zInvalid log level: N)r   ÚlevelWithNamer   r   )r4   rJ   s     r&   Úopt_log_levelzTwistOptions.opt_log_levelb   sY   € ð
	@Ý'Ô5°iÑ@Ô@ˆD�ÑÐÐøÝ#ð 	@ð 	@ð 	@ÝÐ>°9Ð>Ð>Ñ?Ô?Ð?ð	@øøøs   ‚ ›8c              #   ó,   K  — | ]}d |j         › d �V — ŒdS r@   )r;   )rC   Úconstants     r&   rE   zTwistOptions.<genexpr>n   sA   è è € ð 
ð 
Ø%-Ð �”Ð Ð Ð ð
ð 
ð 
ð 
ð 
ð 
r(   )rG   r*   ÚfileNamec                 óæ   — |dk    rt           | d<   dS |dk    rt          | d<   dS 	 t          |d¦  «        | d<   dS # t          $ r+}t	          t
          j        d|›d|› �¦  «         Y d}~dS d}~ww xY w)zM
        Log to file. ("-" for stdout, "+" for stderr; default: "-")
        ú-r.   Nú+ÚazUnable to open log file z: )r   r   ÚopenFileÚOSErrorr   r   ÚEX_IOERR)r4   rP   Úes      r&   Úopt_log_filezTwistOptions.opt_log_filet   s¶   € ð �sŠ?ˆ?Ý$ˆD�‰OØˆFà�sŠ?ˆ?Ý$ˆD�‰OØˆFð	Ý& x°Ñ5Ô5ˆD�‰OˆOˆOøÝð 	ð 	ð 	ÝÝÔ#Ø<¨8Ð<Ð<¸Ð<Ð<ñô ð ð ð ð ð ð ð øøøøð	øøøs   ¦; »
A0Á A+Á+A0r%   c                 ó    — |                      ¦   «         }|dk    rt          | d<   n#|dk    rt          | d<   nt          d|› �¦  «        ‚|| d<   dS )zˆ
        Log file format.
        (options: "text", "json"; default: "text" if the log file is a tty,
        otherwise "json")
        ÚtextÚfileLogObserverFactoryÚjsonzInvalid log format: Ú	logFormatN)Úlowerr   r   r   )r4   r%   s     r&   Úopt_log_formatzTwistOptions.opt_log_formatˆ   sj   € ð —’‘”ˆà�VÒÐÝ-@ˆDÐ)Ñ*Ð*Ø�vÒÐÝ-@ˆDÐ)Ñ*Ð*åÐ<°FÐ<Ð<Ñ=Ô=Ð=Ø"ˆˆ[ÑÐÐr(   c                 óª   — d| vrN| d         }t          |d¦  «        r%|                     ¦   «         rt          | d<   d| d<   dS t          | d<   d| d<   dS dS )zm
        Set C{fileLogObserverFactory} to the default appropriate for the
        chosen C{logFile}.
        r\   r.   Úisattyr[   r^   r]   N)Úhasattrrb   r   r   )r4   r.   s     r&   ÚselectDefaultLogObserverz%TwistOptions.selectDefaultLogObserverš   sy   € ð
 $¨4Ð/Ð/Ø˜9”oˆGå�w Ñ)Ô)ð +¨g¯nªnÑ.>Ô.>ð +Ý1D�Ð-Ñ.Ø$*��[Ñ!Ð!Ð!å1D�Ð-Ñ.Ø$*��[Ñ!Ð!Ð!ð 0Ð/r(   rG   c                 ó¢   — |                       ¦   «          t          j        | |¬¦  «         d| vr |                      | d         ¦  «        | d<   d S d S )NrF   r=   r,   )rd   r   ÚparseOptionsr   )r4   rG   s     r&   rf   zTwistOptions.parseOptions©   s]   € Ø×%Ò%Ñ'Ô'Ð'åÔ˜T¨7Ð3Ñ3Ô3Ð3à˜DÐ Ð Ø"×1Ò1°$°}Ô2EÑFÔFˆD�‰OˆOˆOð !Ð r(   c                 ó´   — d| vr(i }t          t          ¦  «        D ]}|||j        <   Œ|| d<   t          t          t
          t          f         | d         ¦  «        S )NÚplugins)r   r   Útapnamer   r   Ústr)r4   rh   Úplugins      r&   rh   zTwistOptions.plugins±   s_   € à˜DÐ Ð ØˆGÝ$¥]Ñ3Ô3ð 1ð 1�Ø*0�˜œÑ'Ð'Ø%ˆD�‰Oå•G�C¥Ð.Ô/°°i´ÑAÔAÐAr(   c              #   ó˜   K  — | j         }t          |¦  «        D ]0}||         }|fdt          dt          fd„}|j        d ||j        fV — Œ1d S )Nrk   r    c                 óP   — t          t          |                      ¦   «         ¦  «        S ©N)r   r   rG   )rk   s    r&   rG   z)TwistOptions.subCommands.<locals>.optionsÆ   s   € Ý�G V§^¢^Ñ%5Ô%5Ñ6Ô6Ð6r(   )rh   Úsortedr   r   ri   Údescription)r4   rh   r;   rk   rG   s        r&   ÚsubCommandszTwistOptions.subCommands»   s†   è è € ð ”,ˆÝ˜7‘O”Oð 		Fð 		FˆDØ˜T”]ˆFð
 17ð 7ð 7¥ð 7½7ð 7ð 7ð 7ð 7ð ”> 4¨°&Ô2DÐEÐEÐEÐEÐEð		Fð 		Fr(   c                 óZ   — t          j        | ¦  «         | j        €t          d¦  «        ‚d S )NzNo plugin specified.)r   ÚpostOptionsÚ
subCommandr   r3   s    r&   rs   zTwistOptions.postOptionsË   s2   € ÝÔ˜DÑ!Ô!Ð!àŒ?Ð"ÝÐ3Ñ4Ô4Ð4ð #Ð"r(   )r    N)r    r7   rn   )%Ú__name__Ú
__module__Ú__qualname__r$   r0   r   Úinfor1   r/   rj   r6   r:   r>   r'   Újoinr   r   r   rM   Úiterconstantsr;   rY   r`   rd   r	   r
   rf   Úpropertyr   r   rh   r   r   r   r   rq   rs   r#   r(   r&   r   r   '   sº  € € € € € ðð ð #ÐØ”m€Oð	ð 	ð 	ð 	ðF˜Sð Fð Fð Fð Fð-ð -ð -ð -ð' ð '¨ð 'ð 'ð 'ð 'ð €KØØ—	’	ÐJÐJ¸¸Ñ8IÔ8IÐJÑJÔJÑJÔJðñ ô ð ð
	( 3ð 	(¨<ð 	(ð 	(ð 	(ð 	(ð@ sð @¨tð @ð @ð @ð @ð €KØØ—	’	ð 
ð 
Ø1G°Ô1GÑ1IÔ1Ið
ñ 
ô 
ñ 
ô 
ð  Ô$ðñ ô ð ð Sð ¨Tð ð ð ð ð(# Sð #¨Tð #ð #ð #ð #ð  €K�ÑÔÐð+ð +ð +ð +ðGð G H¨X°c¬]Ô$;ð GÀtð Gð Gð Gð Gð ðB˜  mÐ!3Ô4ð Bð Bð Bñ „XðBð ðFà	�%˜˜T 8¨]¨O¸WÐ,DÔ#EÀsÐJÔKÔ	LðFð Fð Fñ „XðFð5ð 5ð 5ð 5ð 5ð 5r(   )*r$   ÚtypingÚsysr   r   Útextwrapr   r   r   r   r	   r
   r   r   Útwisted.copyrightr   Útwisted.internet.interfacesr   Útwisted.loggerr   r   r   r   Útwisted.pluginr   Útwisted.python.usager   r   Úreactorsr   r   r   Úrunner._exitr   r   Úservicer   ÚopenrU   rj   r'   r   r#   r(   r&   ú<module>rˆ      sÉ  ðð
ð ð €€€Ø Ð Ð Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø OÐ OÐ OÐ OÐ OÐ OÐ OÐ OÐ OÐ OÐ OÐ OÐ OÐ OÐ OÐ OÐ OÐ Oà %Ð %Ð %Ð %Ð %Ð %Ø 4Ð 4Ð 4Ð 4Ð 4Ð 4ðð ð ð ð ð ð ð ð ð ð ð ð &Ð %Ð %Ð %Ð %Ð %Ø 4Ð 4Ð 4Ð 4Ð 4Ð 4Ð 4Ð 4Ø EÐ EÐ EÐ EÐ EÐ EÐ EÐ EÐ EÐ EØ +Ð +Ð +Ð +Ð +Ð +Ð +Ð +Ø #Ð #Ð #Ð #Ð #Ð #à€ð=�X˜~¨sÐ3°TÐ9Ô:ð =Àcð =Èdð =ð =ð =ð =ðh5ð h5ð h5ð h5ð h5�7ñ h5ô h5ð h5ð h5ð h5r(   