Team Ai
Datasetpublic

codekingpro/portable-devtools

sourceHugging Faceupdated 5mo agoView on Hugging Face
1likes15kdownloads
optmanager.cpython-313.pyc201 linesDownload Raw Back to __pycache__
1�

2��j�P���SSKJr SSKrSSKrSSKrSSKrSSKrSSKJr SSKJ	r	 SSKJ3r4 SSKJr SSK
Jr SSKJr SS	KJr SS5KJr SSKrSSKJr SSKJr SS
KJr \"5r"SS5r\"SS55rSSjrSSjr"SS5r S Sjr!S!S"Sjjr"Sr#S!S#Sjjr$S$Sjr%S%S&Sjjr&S%S'Sjjr'S(Sjr(g))�)�annotationsN)�Callable)�Iterable)�Sequence)�	dataclass)�Path)�Any)�Optional)�TextIO)�6exceptions)�signals)�	typecheckc��\rSrSrSrSSjrSr\S5rSSjr	SSjr7SSjrSS	jrSS8jr
SrSrg
)�_Option�)�name�typespec�value�_default�choices�helpc���[R"XU5 XlX lX0l[9Ul[R"U5R5RSS5UlXPlg)N�10� )
r�check_option_typerrr�unsetr�textwrap�dedent�strip�replacerr��selfrr�defaultrrs      �ZD:\code\apps\devtools\python\user_packages\Python313\site-packages\mitmproxy/optmanager.py�__init__�_Option.__init__!sU��	�#�#�D�8�<��	� �
��
���11��O�O�D�)�/�/�1�9�9�$��D��	���c�B�UR5SURS3$)Nz [�])�currentr�r"s r$�__repr__�_Option.__repr__1s ���,�,�.�!��D�M�M�?�!�4�4r'c�B�[R"UR5$�N)�copy�deepcopyrr+s r$r#�_Option.default4s���}�}�T�]�]�+�+r'c��UR[La
URnOURn[R"U5$r/)rrr#r0r1)r"�vs  r$r*�_Option.current8s/���:�:������A��12�13�A��}�}�Q��r'c�f�[R"URXR5 Xlgr/)rrrrr)r"rs  r$�set�_Option.set?s���#�#�D�I�I�u�m�m�D��14r'c��[Ulgr/)rrr+s r$�reset�
_Option.resetCs	����15r'c�<�UR5UR:g$r/)r*r#r+s r$�has_changed�_Option.has_changedFs���|�|�~����-�-r'c�^�URHn[X5[X5:wdM g g)NFT)�	__slots__�getattr)r"�other�is   r$�__eq__�_Option.__eq__Is*�����A��t��7�5�#4�4�� �r'c���[URURURURUR165nUR
5(aUR5UlU$r/)	rrrr#rrr=r*r)r"�_�os   r$�__deepcopy__�_Option.__deepcopy__OsI���D�I�I�t�}�}�d�l�l�D�I�I�t�|�|�T��������l�l�n�A�G��r')rrrrrrN�r�strrz
type | objectr#r	rrLrzSequence[str] | None�return�None)rMr	)rr	rMrN�rMrN)rM�bool)�__name__�17__module__�__qualname__�__firstlineno__r@r%r,�propertyr#r*r7r:r=rDrI�__static_attributes__�r'r$rrs}��L�I���� ���	�18��&�
�19�� 5��,��,� ���.��r'rc� �\rSrSr%S\S'Srg)�_UnconvertedStrings�V�	list[str]�valrWN)rQrRrSrT�__annotations__rVrWr'r$rYrYVs��	�Nr'rYc��gr/rW��updateds r$�_sig_changed_specra[���r'c��gr/rW��excs r$�_sig_errored_specrf_rbr'c�0^�\rSrSrSrS SjrS!S"Sjjr\RS#Sj5r	Sr20S SjrS	rS!S21jr
\
rSrU4SjrS
rSrSrSrSrSrSrSrSrS$SjrSrSrSrSS.S%SjjrS SjrS&Sjr S'Sjr!Sr"U=r#$)(�22OptManager�ca�23OptManager is the base class from which Options objects are derived.24 25.changed is a Signal that triggers whenever options are26updated. If any handler in the chain raises an exceptions.OptionsError27exception, all changes are rolled back, the exception is suppressed,28and the .errored signal is notified.29 30Optmanager always returns a deep copy of options to ensure that31mutation doesn't change the option state inadvertently.32c���0Ul[R"[5UlURRUR5 [R"[5Ul/Ul	0Ul33gr/)�deferredr
�34SyncSignalra�changed�connect�_notify_subscribersrf�errored�_subscriptions�_optionsr+s r$r%�OptManager.__init__psX��(*��
��)�)�*;�<��������T�5�5�6��)�)�*;�<���LN���)+��
r'c�l�[XX4U5URU'URRU1S9 g)Nr_)rrrrm�sendr!s      r$�35add_option�OptManager.add_optionzs2��&�d�g�W�M��
�
�d�������4�&��)r'Fc#�*# �[R"UR5nSv� g![RaSnUR36R
US9 X0RS'URR
US9 U(aUeSnAgSnAff=f7f)Nrdrrr_)	r0r1rrr�OptionsErrorrpru�__dict__rm)r"r`�reraise�old�es     r$�rollback�OptManager.rollback�sw����m�m�D�M�M�*��		����&�&�	��L�L���!��$�(+�M�M�*�%��L�L���g��.������
	�s+�!B�)�B�B�A	B�B�B�Bc���UH+nX0R;dM[R"SU-5e URR	[37R"U5[U545 g)a38Subscribe a callable to the .changed signal, but only for a39specified list of options. The callable should accept arguments40(options, updated), and may raise an OptionsError.41 42The event will automatically be unsubscribed if the callable goes out of scope.43�No such option: %sN)rrrryrq�appendr
�
make_weak_refr7)r"�func�optsrCs    r$�	subscribe�OptManager.subscribe�sY���A��
�
�%� �-�-�.B�Q�.F�G�G��	
���"�"�G�$9�$9�$�$?��T��#K�Lr'c��SnURH&up4U"5nUbXA-(a44U"X5 M"M$SnM( U(a:URVVs/sHup4U"5cMX44PM snnURS'ggs snnf)NFTrq)rqrz)r"r`�cleanup�refr��callbacks      r$ro�OptManager._notify_subscribers�s������,�,�I�C��u�H��#��>��T�+�"���
-��/3�/B�/B�/�/B���c�e����/B�/�D�M�M�*�+���/s�A;�!A;c�`�[U[5(aURUR:H$g)NF)�45isinstancerhrr)r"rBs  r$rD�OptManager.__eq__�s%���e�Z�(�(��=�=�E�N�N�2�2�r'c�v�[5n[R"URU5URS'U$)Nrr)rhr0r1rrrz)r"�memodictrHs   r$rI�OptManager.__deepcopy__�s+���L��!%���t�}�}�h�!G��46�47�:���r'c�v�XR;aURUR5$[SU-5e)Nr�)rrr*�AttributeError)r"�attrs  r$�__getattr__�OptManager.__getattr__�s5���=�=� ��=�=��&�.�.�0�0� �!5��!<�=�=r'c�>�URRS5nU(d[TU]
X5 gUR"S0X0D6 g)NrrrW)rz�get�super�__setattr__�update)r"r�rr��	__class__s    �r$r��OptManager.__setattr__�s:����}�}� � ��,����G���,��K�K�(�4�-�(r'c�H�[URR55$r/)r7rr�keysr+s r$r��OptManager.keys�s���4�=�=�%�%�'�(�(r'c�6�URR5$r/)rr�itemsr+s r$r��OptManager.items�s���}�}�"�"�$�$r'c��XR;$r/)rr)r"�ks  r$�__contains__�OptManager.__contains__�s���M�M�!�!r'c���URR5HnUR5 M URR	[URR
55S9 g)z#48Restore defaults for all options.49r_N)rr�valuesr:rmrur7r�)r"rHs  r$r:�OptManager.reset�sK�����%�%�'�A�
�G�G�I�(������#�d�m�m�&8�&8�&:�";��<r'c��00p2UR5HupEX@R;aXRU'MXSU'M  [UR55nU(akUR	USS9 UR5H#upEURURU5 M% UR50R
US9 SSS5 U$U$!,(df   U$=f)zX51Update and set all known options from kwargs. Returns a dictionary52of unknown options.53T)r{r_N)r�rrr7r�r~rmru)r"�kwargs�known�unknownr�r4r`s       r$�update_known�OptManager.update_known�s���54�R�w��L�L�N�D�A��M�M�!��a����55�	#�56�e�j�j�l�#������w���5�!�K�K�M�D�A��M�M�!�$�(�(��+�*����!�!�'�!�2�6���w��	6�5���s
�&AC�57Cc�^�UR"S0UD6nURRU5 g)NrW)r�rkr�)r"r�r�s   r$�update_defer�OptManager.update_defer�s'���#�#�-�f�-���
�
���W�%r'c��UR"S0UD6nU(a+[SSRUR55-5eg)NzUnknown options: %s�, rW)r��KeyError�joinr�)r"r��us   r$r��OptManager.update�s=�����'��'����0�4�9�9�Q�V�V�X�3F�F�G�G�
r'c�T^^�TTR;a[ST-5eUU4SjnU$)z\58Generate a setter for a given attribute. This returns a callable59taking a single argument.60r�c� >�[TTU5 gr/)�setattr)�xr�r"s ��r$�setter�!OptManager.setter.<locals>.setters����D�$��"r')rrr�)r"r�r�s`` r$r��OptManager.setter�s.���61�t�}�}�$��/�$�6�7�7�	#��
r'c�^^�TTR;a[ST-5eTRTnUR[La[	S5eUU4SjnU$)z^62Generate a toggler for a boolean attribute. This returns a callable63that takes no arguments.64r�z-Toggler can only be used with boolean optionsc�>>�[TT[TT5(+5 gr/)r�rA)r�r"s��r$�toggle�"OptManager.toggler.<locals>.toggles����D�$�G�D�$�$7� 7�8r')rrr�rrP�65ValueError)r"r�rHr�s``  r$�toggler�OptManager.togglersT���66�t�}�}�$��/�$�6�7�7��M�M�$����:�:�T�!��L�M�M�	9��
r'c�4�URUR$r/)rrr#�r"�options  r$r#�OptManager.defaults���}�}�V�$�,�,�,r'c�<�URUR5$)z*67Has the option changed from the default?68)rrr=r�s  r$r=�OptManager.has_changeds���}�}�V�$�0�0�2�2r'c���0nUR5H;up4UcM69[U[[45(a[	X5U-X#'M7XBU'M= UR70"S0UD6 g)z�71Merge a dict of options into this object. Options that have None72value are ignored. Lists and tuples are appended to the current73option value.74NrW)r�r��list�tuplerAr�)r"r��tosetr�r4s     r$�merge�OptManager.mergesZ�����J�J�L�D�A��}��a�$���/�/�&�t�/�!�3�E�H� �!�H�!�	
����e�r'c���[R"URSS9RS5nSU;aSU-S-nSR	[U5R[U5RUS9$)N�)�indentz {}rz75    z{mod}.{cls}({{{options}}}))�mod�cls�options)�pprint�pformatrrr�format�typerRrQ)r"r�s  r$r,�OptManager.__repr__.sj���.�.����q�9�?�?��F���7�?���(�4�/�G�+�2�2��T�76�%�%�4��:�+>�+>��3�77�	78r')�deferc79��0nUHPnSU;a5URSSS9upVURU/5RU5 M>URU/5 MR 0n[UR	55HDnXPR80;dMUR
UR81UURU55Xu'MF U(aIURRUR5VV	s0sHup�U[U	5_M sn	n5 O/U(a([R"SSRU535eUR"S0UD6 gs sn	nf)a582Takes a list of set specification in standard form (option=value).83Options that are known are updated immediately. If defer is true,84options that are not known are deferred, and will be set once they85are added.86 87May raise an `OptionsError` if a value is malformed or an option is unknown and defer is False.88�=�)�maxsplitzUnknown option(s): r�NrW)�split�89setdefaultr�r�r�rr�
_parse_setval�poprkr�r�rYrryr�)90r"r��specs�unprocessed�specrr�	processedr�r4s91          r$r7�OptManager.set6s/��-/���D��d�{�"�j�j��q�j�9����&�&�t�R�0�7�7��>��&�&�t�R�0��%'�	���)�)�+�,�D��}�}�$�"&�"4�"4��M�M�$�'�����)>�#�	��-���M�M� � �7B�7H�7H�7J�K�7J�t�q��'��*�*�7J�K�
���)�)�%�d�i�i��&<�%=�>��
�92	
��� �i� ��Ls�+E93c�`�0nURR5HXup#X R;dM[U[5(a)URURUUR5nX1U'MZ UR"S0UD6 UR5HnURU	M g)z[94Processes options that were deferred in previous calls to set, and95have since been added.96NrW)	rkr�rrr�rYr�r\r�r�)r"r��optnamerr�s     r$�process_deferred�OptManager.process_deferred]s���97"$��"�m�m�1�1�3�N�G��-�-�'��e�%8�9�9� �.�.�t�}�}�W�/E�u�y�y�Q�E�"'�w��	4�98	
����f������A��
�
�a� �r'c���UR[[:XaU$[U5S:�a&[R99"SURSU35eU(aUSnOSnUR[[[4;a;UR[La&Uc#[R100"SUR35eU$UR[[[4;aJU(a[U5$UR[La#[R101"SUR35egUR[LaTUS	:XaUR5(+$U(aUS102:XagUS:Xag
[R103"SURS35e[SURSUR35e![a' [R104"SURSU35ef=f)z>105Convert a string to a value appropriate for the option type.106r�zReceived multiple values for �: rNzOption is required: zFailed to parse option z: not an integer: r��trueT�falseFzT: boolean must be "true", "false", or have the value omitted (a synonym for "true").z: unsupported option type: )
rrrL�lenrryrr107�intr�rPr*�NotImplementedError)r"rHr��optstrs    r$r��OptManager._parse_setvalls���
�:�:��#��&��M��v�;��?��)�)�/����x�r�&��B��
�108��A�Y�F��F��:�:�#�x��}�-�-��z�z�S� �V�^� �-�-�0D�Q�V�V�H�.M�N�N��M�
�Z�Z�C��#��/�
/����v�;�&�109���s�"� �-�-�0D�Q�V�V�H�.M�N�N��
�Z�Z�4�
���!��9�9�;��&��V�v�-���7�"�� �-�-�-�a�f�f�X�6J�K���"�%�a�f�f�X�-H�����U�110�	111��'"��$�1�1�1�!�&�&��9K�F�8�T����s�'112F5�51G&c113��X R;agURUnSnU"X$5nUR[La�URSS9nU"US5n	U"SU-S5n114U(a&UR(a
U"SU-U5n115OU"X$5n	UR116"U117SUS.6 UR118"U	SX%RS	.6 UR"S0US0D6 gUR[[[4;a%UR119"US120[UURUS.6 gUR[[[4;a0UR121"US122[UURUURS.6 gUR[[:Xa3UR123"US
[UURS-UURS.6 g[SUR5e)zj124Auto-Create a command-line parser entry for a named option. If the125option does not exist, it is ignored.126Nc�l�URSS5nSU-/nU(aURSU-5 U$)NrG�-z--%s)r r�)r��s�fs   r$�mkf�#OptManager.make_parser.<locals>.mkf�s5���	�	�#�s�#�A��!���A������q��!��Hr'F)�requiredzno-�store_false)�action�dest�127store_true)rrr�store)rr�rr�metavar)rr�rrrrr�z May be passed multiple times.zUnsupported option type: %srW)rrrrP�add_mutually_exclusive_groupr#�add_argumentr�set_defaultsr�r128rLrrr�)r"�parserr�r�shortrHr�flags�g�onf�offfs           r$�make_parser�OptManager.make_parser�s���129�-�-�'���M�M�'�"��	��G�#���:�:����3�3�U�3�C�A��g�t�$�C��u�w���-�D���9�9��u�w���6�D��g�-�C�
�N�N��$��
�130
�N�N�C��7���P����2�7�D�/�2�
�Z�Z�C��#��/�
/���������V�V��

��Z�Z�C��#��/�
/���������V�V���	�	�
��Z�Z�8�C�=�
(���������V�V�>�>���	�	�
��:�A�J�J�G�Gr')rrrqrmrkrprOr/rK�F)r�rLrMr	)r�rLr�rPrMrN)rHrr�r[rMr	)NN)$rQrRrSrT�__doc__r%rv�131contextlib�contextmanagerr~r�rorDrI�__copy__r�r�r�r�r�r:r�r�r�r�r�r#r=r�r,r7r�r�rrV�
__classcell__)r�s@r$rhrhcs����132�+� )-�
	*��	*� �	*��		*�133�	*�&�
	*�134�	*�������M�
��135�136�H�>�)�)�%�"�=��&&�H�137�� -�3�
�138�.3�%!�N
!�.139�`BH�BHr'rhc��[RRR5n[	UR55H�nURUnURX#'URR5nUR(a)USSRSUR55--
nO([R"UR5nUSU--
nSR[R "U55nUR#USU-S9 M� [RR%5R'X!5$)z+140Dumps an annotated file with all options.141z Valid values are %s.r�c3�8# �UHn[U5v� M g7fr/)�repr)�.0�cs  r$�	<genexpr>� dump_defaults.<locals>.<genexpr>�s���6R�	�1�t�A�w�w�	�s�z	 Type %s.r)�before)�ruamel�yaml�comments�CommentedMap�sortedr�rrr#rrrr�r�typespec_to_strrr�wrap�!yaml_set_comment_before_after_key�YAML�dump)r��outr�r�rH�txt�ts       r$�
dump_defaultsr/�s���142	�����)�)�+�A�
�D�I�I�K�
 ���M�M�!����y�y����f�f�l�l�n���9�9��*�T�Y�Y�6R��	�	�6R�-R�R�R�C��)�)�!�*�*�5�A��;��?�"�C��i�i��
�
�c�*�+��	�+�+�A�d�S�j�+�A�!��;�;����"�"�1�*�*r'c�"�0nUcUR5n[U5HjnURUn[R"UR1435nUURUR5URURS.nXbU'Ml U$)z�144Dumps the options into a list of dict object.145 146Return: A list like: { "anticache": { type: "bool", default: false, value: true, help: "help text"} }147)r�r#rrr)148r�r&rrrr'rr#r*rr)r�r��options_dictr�rHr.r�s       r$�149dump_dictsr2�s����L��|��y�y�{��
�D�\���M�M�!����%�%�a�j�j�1����y�y��Y�Y�[��F�F��y�y�150��!�Q����r'c
�B�U(d0$[RRSSS9nURU5n[U[5(a[R"S5eUc0$U$![RRR151a�n[
US5(a^URR5n[R"SURRS-<SU<S[US	S1525<35e[R"S5eSnAff=f)
N�safeT)�typ�pure�problem_markzConfig error at line r�z:153r�problem�zCould not parse options.zConfig error - no keys found.)r"r#r*�load�error�	YAMLError�hasattrr7�get_snippetrry�linerAr�rL)�textr#�datar4�snips     r$�parserCs�����	�F��{�{���F���6���y�y�����$�����%�%�&E�F�F�	
���	��K���;�;���&�&�F��1�n�%�%��>�>�-�-�/�D��)�)��>�>�&�&��*�D�'�!�Y��2K�M��
�154�)�)�*D�E�E��F�s�/A,�,(D�BD�Dc���[U5nURS5nUb<Ub9UVs/sH(n[[[	U5[	U5S95PM* snUS'UR155"S0UD6 gs snf)z�156Load configuration from text, over-writing options already set in157this object. May raise OptionsError if the config file is invalid.158�scriptsN)�relative_torW)rCr�rL�
relative_pathrr�)r�r@�cwdrArE�paths      r$r:r:$sn��159��;�D��h�h�y�!�G���s��NU�160�NU�d�C�
�d�4�j�d�3�i�@�A�g�161��Y��	�������	162s�/A/c	�.�UH�n[U5R5nUR5(dM3UR5(dMJUR	SS9nUR5nSSS5 [UWUR5RS9 M� g![a!n[R"SUSU35eSnAff=f!,(df   Ne=f![Ra!n[R"SUSU35eSnAff=f)z�163Load paths in order. Each path takes precedence over the previous164path. Paths that don't exist are ignored, errors raise an165OptionsError.166�utf8��encodingzError reading r�N)rH)r�167expanduser�exists�is_file�open�read�UnicodeDecodeErrorrryr:�absolute�parent)r��paths�pr�r-r}s      r$�168load_pathsrX4s�������G��� ���8�8�:�:�!�)�)�+�+������(�A�M��&�&�(�C�)�169
I��T�3�A�J�J�L�$7�$7�8���*�M�$�1�1�N�1�#�R��s�2K�L�L��M��)�(���*�*�
I� �-�-��q�c��A�3�.G�H�H��
I�sB�C�B �8#C� 170C�*C�C�C�171C	�D�3D�Dc�`�[U5nUR5H/nU(dURU5(dM"[X5XE'M1 [	UR55HnXPR172;dMXE	M [RR5RXA5 g)aR173Performs a round-trip serialization. If text is not None, it is174treated as a previous serialization that should be modified175in-place.176 177- If "defaults" is False, only options with non-default values are178    serialized. Default values in text are preserved.179- Unknown options in text are removed.180- Raises OptionsError if text is invalid.181N)182rCr�r=rAr�rrr"r#r*r+)r��filer@�defaultsrAr�s      r$�	serializer\Hs����;�D�
�Y�Y�[���t�'�'��*�*��d�&�D�G���$�)�)�+�
���M�M�!�����K�K������D�'r'c���[U5R5nUR5(a@UR5(a+UR	SS9nUR5nSSS5 OSnUR	SSS9n[XWU5 SSS5 g![a!n[R"SUSU35eSnAff=f!,(df   Nc=f!,(df   g=f)zy183Save to path. If the destination file exists, modify it in-place.184 185Raises OptionsError if the existing data is corrupt.186rKrLzError trying to modify r�Nr9�w)187rrNrOrPrQrRrSrryr\)r�rIr[r�rAr}s      r$�saver_`s�����:� � �"�D��{�{�}�}������
�Y�Y��Y�
'�1�
U��v�v�x��(�
'���	
���3���	(�A��$�4��*�188)�	(��&�
U� �-�-�0G��v�R�PQ�s�.S�T�T��
U��(�
'��189)�	(�s6�C�B�C�190C�"B>�>C�C�191C�192C%c���[U5nUR5U:wa3UR5(dUR5R5nXR5-R5$)zz193Make relative paths found in config files relative to said config file,194instead of relative to where the command is ran.195)rrN�is_absoluterT)�script_pathrFs  r$rGrGts_��196�{�#�K�����;�.�{�7N�7N�7P�7P�!�,�,�.�7�7�9���0�0�2�2�<�<�>�>r')r`zset[str]rMrN)re�	ExceptionrMrN)r,rr/)r�zIterable[str] | NonerM�dict)r�rhr@rLrHzPath | str | NonerMrN)r�rhrV�197Path | strrMrNr)198r�rhrZrr@rLr[rPrMrN)r�rhrIrer[rPrMrN)rbrerFrerMr))�199__future__rrr0r�r�weakref�collections.abcrrr�dataclassesr�pathlibr�typingr	r200r�ruamel.yamlr"�	mitmproxyr�mitmproxy.utilsr
r�objectrrrYrarfrhr/r2rCr:rXr\r_rGrWr'r$�<module>rps���"���
���$�$�$�!������ �#�%��	���5�5�p�������{H�{H�|+�,�.�,
� I�*AF�(�201�(�"�(�*-�(�9=�(�	�(�0+�(	?r'
codekingpro/portable-devtools · Team Ai