Team Ai
Datasetpublic

codekingpro/portable-devtools

sourceHugging Faceupdated 5mo agoView on Hugging Face
1likes14kdownloads
_reloader.cpython-313.pyc104 linesDownload Raw Back to __pycache__
1�

2��j�:��v�%SSKJr SSKrSSKrSSKrSSKrSSKrSSKrSSKr	SSK3Jr SSKJ
r
 SSKJr \"\R"\R$15r1\k\R(i\R*ir\"\S5(a\R/\R05 \"\5rC1SkrSS	jrSS4jrS SjrS SjrS!S
jrS"Sjr "SS5r!"SS\!5r""SS\!5r#\"\#S.r$S\%S'\&"S5 \$S\$S'S#Sjr(S$S%Sjjr)g!\'a \$S\$S'N,f=f)&�)�annotationsN)�chain)�PurePath�)�_log�real_prefix>�__pycache__�.hg�.git�.nox�.tox�.mypy_cache�
.pytest_cachec#�# �[[RR55H�n[	USS5nUbUR[5(aM/[RRU5(dNUn[RRU5nX:XaM{[RRU5(dMNUv� M� g7f)z;Find the filesystem paths associated with imported modules.�__file__N)�list�sys�modules�values�getattr�5startswith�_ignore_always�os�path�isfile�dirname)�module�name�olds   �XD:\code\apps\devtools\python\user_packages\Python313\site-packages\werkzeug/_reloader.py�_iter_module_pathsr!+s�����s�{�{�)�)�+�,���v�z�4�0���<�4�?�?�>�:�:���'�'�.�.��&�&��C��7�7�?�?�4�(�D��{��
�'�'�.�.��&�&��J�-�s�CC�	Cc�`�UH(nUR[R"X55 M* g�N)�difference_update�fnmatch�filter)�paths�exclude_patterns�patterns   r �_remove_by_patternr*?s#��#��
������u� >�?�$�c	��[5n[[[R5U5GH�n[6RR
U5n[7RRU5(aURU5 MZ[8RRU5S0n[9R"U5H�upVnUR[5(d'[10RRU5[;aUR5 MYSnUHKn	U	R!S5(dMSnUR[11RR#XY55 MM U(d9U[12RRU5(dUR5 M�X�U'M� GM� UR%['55 [)X!5 U$)a`Find paths for the stat reloader to watch. Returns imported13module files, Python files under non-system paths. Extra files and14Python files under extra directories can also be scanned.15 16System paths have to be excluded for efficiency. Non-system paths,17such as a project root or ``sys.path.insert``, should be the paths18of interest to the user anyway.19TF)z.pyz.pyc)�setrrrrr�abspathr�addr�walkr�_stat_ignore_scan�basename�_ignore_common_dirs�clear�endswith�join�updater!r*)20�extra_filesr(r'r�
parent_has_py�root�dirs�files�has_pyrs21          r �_find_stat_pathsr>DsB��
�E�E��d�3�8�8�n�k�2���w�w���t�$��
�7�7�>�>�$����I�I�d�O��������.��5�
�!#������D����� 1�2�2��7�7�#�#�D�)�-@�@��22�23����F����=�=��1�1�!�F��I�I�b�g�g�l�l�4�6�7���m�B�G�G�O�O�D�,A�B��24�25���"(�$��+"/�3�B26�L�L�#�%�&��u�/��Lr+c���[5n[[[R5U5Hvn[27RR
U5n[28RRU5(a[29RRU5nURU5 Mx [5H1nUR[30RRU55 M3 [X!5 [U5$)z�Find paths for the stat reloader to watch. Looks at the same31sources as the stat reloader, but watches everything under32directories instead of individual files.33)
r-rrrrrr.rrr/r!r*�_find_common_roots)r8r(r;rs    r �_find_watchdog_pathsrAws����5�D��d�3�8�8�n�k�2���w�w���t�$��
�7�7�>�>�$����7�7�?�?�4�(�D������
3�#�$�����������&�'�%��t�.��d�#�#r+c��^^�0n[SU5[SS9H0nUnUHnURU05nM UR5 M2 [	5mSUU4SjjmT"US5 T$)Nc3�L# �UHn[U5Rv� M g7fr#)r�parts)�.0�xs  r �	<genexpr>�%_find_common_roots.<locals>.<genexpr>�s���;�U��(�1�+�+�+�U�s�"$T)�key�reversec��>�UR5Hup#T"X1U4-5 M U(d5U(a-TR[RR"U65 gggr#)�itemsr/rrr6)�noder�prefix�child�_walk�rvs    ��r rP�!_find_common_roots.<locals>._walk�sK���!�Z�Z�\�M�F��%��	�)�*�*�34���F�F�2�7�7�<�<��&�'��tr+�)rMz t.Mapping[str, dict[str, t.Any]]rztuple[str, ...]�return�None)�sorted�len�35setdefaultr4r-)r'r:�chunksrM�chunkrPrQs     @@r r@r@�so���(*�D��;�U�;��d�S�����E��?�?�5�"�-�D��	
�36�37��
T�38
��B�(�(�39�$��O�
�Ir+c��[RS:�a$[R/[RSSQ$[R/n[RSn[RSSn[R40Sn[
USS5bs[RS:XGa^URS:XGaM[RRU5(Gd([RRUS	35(Ga[RRU5n[RS:Xa�[RRU5(d,[RRUS	35(aUS	-
n[RR5SS	:Xa7[RRU5SS	:XaURS5 URU5 O�[RR!U5(as["R$"[&UR5n[RR[RR)U55SnUS:waUS41U3-
nOUnUR+SUR-S42545 UR+U5 U$)zhDetermine how the script was executed, and return the args needed43to execute it again in a new process.44)��45rNr�__main__�__package__�nt�z.exe�.z-m)r�version_info�46executable�	orig_argv�argvrrrrr_r�existsr.�splitext�pop�appendr�t�cast�strr2�extend�lstrip)rQ�	py_script�argsr^�	py_modulers      r �_get_args_for_reloadingrs�s	�����7�"����3����q�r�!2�3�3�47
�.�.�	�B������I��8�8�A�B�<�D��{�{�:�&�H�48�x���-�5�49���4��� � �B�&������y�)�)��G�G�N�N�i�[��-�.�.��G�G�O�O�I�.�	�
�7�7�d�?��7�7�>�>�)�,�,������9�+�T�@R�1S�1S��V�#�	���� � ����0��3�v�=��G�G�$�$�Y�/��2�f�<����q�	�50�	�	�)���7�7�>�>�)�$�$����s�H�$8�$8�9�I��7�7�#�#�B�G�G�$4�$4�Y�$?�@��C�D��z�!��q���Z�'�	��"�I�51�	�	�4��)�)�#�.�/�0��I�I�d�O�
�Ir+c�|�\rSrSrSrS
SSjjrSSjrSrSSjrSSjr	SS	jr52SS53jrSSjrSr
g)�ReloaderLoop��raNc���U=(d SVs1sH"n[RRU5iM$ snUl[	U=(d S5UlX0lgs snf)NrS)rrr.r8r-r(�interval)�selfr8r(rxrFs     r �__init__�ReloaderLoop.__init__�sS��CN�BS�QS�BS�%T�BS�Q�b�g�g�o�o�a�&8�BS�%T���*-�.>�.D�"�*E��� �
��&Us�)Ac�&�UR5 U$)zWDo any setup, then run one step of the watch to populate the54initial filesystem state.55)�run_step�rys r �	__enter__�ReloaderLoop.__enter__�s��	
�
�
���r+c��g)z4Clean up any resources associated with the reloader.NrS�ry�exc_type�exc_val�exc_tbs    r �__exit__�ReloaderLoop.__exit__�s��r+c�h�UR5 [R"UR5 M2)zVContinually run the watch step, sleeping for the configured56interval after each step.57)r}�time�sleeprxr~s r �run�ReloaderLoop.run�s%����M�M�O��J�J�t�}�}�%�r+c��g)zmRun one step for watching the filesystem. Called once to set58up initial state, then repeatedly to update it.59NrSr~s r r}�ReloaderLoop.run_steps��	
r+c���[SSUR35 [5n[RR5nSUS'[R"XSS9nUS:waU$Me)zlSpawn a new Python interpreter with the same arguments as the60current one, but running the reloader thread.61�infoz * Restarting with �true�WERKZEUG_RUN_MAINF)�env�	close_fdsr\)rrrsr�environ�copy�62subprocess�call)ryrq�new_environ�	exit_codes    r �restart_with_reloader�"ReloaderLoop.restart_with_reloader63sb�����.�t�y�y�k�:�;�*�,�D��*�*�/�/�+�K�/5�K�+�,�"�����O�I��A�~� � �r+c�R�URU5 [R"S5 g)Nr\)�64log_reloadr�exit�ry�filenames  r �trigger_reload�ReloaderLoop.trigger_reloads������!�����r+c�d�[RRU5n[SSU<S35 g)Nr�z * Detected change in z, reloading)rrr.rr�s  r r��ReloaderLoop.log_reloads(���7�7�?�?�8�,���V�-�h�\��E�Fr+)r(r8rx)NNr)r8�t.Iterable[str] | Noner(r�rx�int | floatrTrU�rTru�rTrU)rT�int)r�rmrTrU�r�zstr | bytesrTrU)�__name__�65__module__�__qualname__�__firstlineno__rrzrr�r�r}r�r�r��__static_attributes__rSr+r ruru�sa��
�D�/3�37� !�	!�+�!�1�!��	!�6667�!��
�&�
�!��Gr+ruc�:^�\rSrSrSrSU4SjjrSSjrSrU=r$)�StatReloaderLoopi!�statc�.>�0Ul[TU]	5$r#)�mtimes�superr�ry�	__class__s �r r�StatReloaderLoop.__enter__$s���(*����w� �"�"r+c�B�[URUR5Hjn[R"U5R68nURRU5nUcX RU'MRX#:�dMYURU5 Ml g![a M|f=fr#)69r>r8r(rr��st_mtime�OSErrorr��getr�)ryr�mtime�old_times    r r}�StatReloaderLoop.run_step(s���$�T�%5�%5�t�7L�7L�M�D�
�����
�.�.���{�{���t�,�H���$)���D�!�����#�#�D�)�N���
��
�s� B�70B�B)r�r�r�)	r�r�r�r�rrr}r��
__classcell__�r�s@r r�r�!s����D�#�*�*r+r�c�`^�\rSrSrS	U4SjjrS71SjrSU4SjjrSrSSjrSSjr	Sr72U=r$)
�WatchdogReloaderLoopi9c73�<>^74^^^
^^�SSKJm75 SSKJm SSKJm SSKJm
 SSKJm SSKJn SSKJn SS	KJ	n [TU],"U0UD6 URm"U76UUU
UU4S77jSU5nURR5nURS5(aUSS
nSUS3UlU"5UlSUR$5nU"SSS/UQ/[&V	s/sH	n	SU	S3PM sn	QUR(QS9Ul[,R."5Ulgs sn	f)Nr)�EVENT_TYPE_CLOSED)�EVENT_TYPE_CREATED)�EVENT_TYPE_DELETED)�EVENT_TYPE_MODIFIED)�EVENT_TYPE_MOVED)�FileModifiedEvent)�PatternMatchingEventHandler)�Observerc�0>�\rSrSrSUUUUUU4SjjrSrg)�3WatchdogReloaderLoop.__init__.<locals>.EventHandleriGc�V>�URTTTTT1;agT"UR5 gr#)�78event_type�src_path)ry�eventr�r�r�r�r�r�s  ������r �on_any_event�@WatchdogReloaderLoop.__init__.<locals>.EventHandler.on_any_eventHs6����#�#�%�&�&�'�$�,����u�~�~�.r+rSN)r�r�rTrU)r�r�r�r�r�r�)r�r�r�r�r�r�s������r �EventHandlerr�Gs
���
/�
/r+r��observeri����z79watchdog (�)c3�r# �UH-n[RRU5(aM)Uv� M/ g7fr#)rr�isdir)rE�ps  r rG�0WatchdogReloaderLoop.__init__.<locals>.<genexpr>\s#���N�%5��R�W�W�]�]�1�=M�!�!�%5�s�(7�	7z*.pyz*.pycz*.zipz*/z/*)�patterns�ignore_patterns)�watchdog.eventsr�r�r�r�r�r�r��watchdog.observersr�r�rzr�r��lowerr5rr�r8r3r(�
event_handler�	threading�Event�
should_reload)ryrq�kwargsr�r�r�r��
reloader_name�extra_patterns�dr�r�r�r�r�r�r�s          @@@@@@�r rz�WatchdogReloaderLoop.__init__:s���5�6�6�7�4�5�?�/�
���$�)�&�)��,�,��	/�	/�6�	/�!�)�)�/�/�1�
��!�!�*�-�-�)�#�2�.�M� ���q�1��	� �80��
�N�T�%5�%5�N��)��g�w�@��@��&9�:�&9��B�q�c��*�&9�:���&�&��81���'�_�_�.����	;s�Dc�Z�URR5 URU5 gr#)r�r-r�r�s  r r��#WatchdogReloaderLoop.trigger_reloadfs"��	
����� �����!r+c�b>�0UlURR5 [TU]5$r#)�watchesr��startr�rr�s �r r�WatchdogReloaderLoop.__enter__ms(���)+����
�
�����w� �"�"r+c�l�URR5 URR5 gr#)r��stopr6r�s    r r��WatchdogReloaderLoop.__exit__rs"���
�
�����
�
���r+c���URRURS9(d:UR5 URRURS9(dM:[R82"S5 g)N)�timeoutr\)r��waitrxr}rr�r~s r r��WatchdogReloaderLoop.runvsS���$�$�)�)�$�-�-�)�@��M�M�O��$�$�)�)�$�-�-�)�@�@�	����r+c���[UR5n[URUR5HVnX R;a3UR83R
URUSS9URU'URU5 MX UH?nURRUS5nUcM$UR84RU5 MA g![a SURU'Nvf=f)NT)�	recursive)r-r�rAr8r(r��scheduler�r��discardri�85unschedule)ry�	to_deleter�watchs    r r}�WatchdogReloaderLoop.run_step|s�������%�	�(��)9�)9�4�;P�;P�Q�D��<�<�'�.�)-���)?�)?��*�*�D�D�*@�*�D�L�L��&�
���d�#�R��D��L�L�$�$�T�4�0�E�� ��
�
�(�(��/�	���.�*.�D�L�L��&�	.�s�	2C�C2�1C2)r�rr�r�r�)rq�t.Anyr�rrTrUr�r�r�)r�r�r�r�rzr�rr�r�r}r�r�r�s@r r�r�9s'���*/�X"�#�86��0�0r+r�)r��watchdogzdict[str, type[ReloaderLoop]]�reloader_loopszwatchdog.observersr�autor�c��[Rb#[RR5(dgSSKnUR[R5nUSUR-(dCUS==UR-ss'UR[RURU5 gg![a gf=f)zqEnsure that echo mode is enabled. Some tools such as PDB disable87it which causes usability issues after a reload.Nrr\)	r�stdin�isatty�termios�ImportError�	tcgetattr�ECHO�	tcsetattr�TCSANOW)r�88attributess  r �ensure_echo_onr�s����y�y���	�	� 0� 0� 2� 2�����"�"�3�9�9�-�J��a�=�7�<�<�'��1�
����%�
����#�)�)�W�_�_�j�A�(������s�B5�589C�Cc���SSKnURURS5 [U"XUS9n[RRS5S:XaS[
5 [R"USS9nS	Ul	U UR"5 UR5 SSS5 g[R"UR55 g!,(df   g=f![a gf=f)90z<Run the given function in an independent Python interpreter.rNc�.�[R"S5$)Nr)rr�)rqs r �<lambda>�#run_with_reloader.<locals>.<lambda>�s������r+)r8r(rxr�r�rS)�targetrqT)�signal�SIGTERMrrr�r�rr��Thread�daemonr�r�rr�r��KeyboardInterrupt)�	main_funcr8r(rx�
reloader_typer�reloaderrks        r �run_with_reloaderr�s����91�M�M�&�.�.�";�<��m�,��X��H�
�
�:�:�>�>�-�.�&�8���� � �	��;�A��A�H�����	�������
�H�H�X�3�3�5�6�	���92�
��
�s6�AC�<"C�C�'$C�93C�C�C�94C*�)C*)rTzt.Iterator[str])r'�set[str]r(rrTrU)r8rr(rrT�t.Iterable[str])r'rrTr)rTz	list[str]r�)NNrr)rzt.Callable[[], None]r8r�r(r�rxr�rrmrTrU)*�95__future__rr%rr�rr�r��typingrk�	itertoolsr�pathlibr�	_internalr�tuple�base_prefix�base_exec_prefixrrN�exec_prefix�hasattrr/rr1r3r!r*r>rAr@rsrur�r�r�__annotations__�96__import__rrrrSr+r �<module>r+s���"��	��97������������)=�)=�>�?��	7�>�	7�3�:�:�	7�s���	7��98�3�
���99�J�J�s�����&�M��100����(@�1010��0�-5�0��0�f$��$�-5�$��$�0�48�v:G�:G�z*�|�*�0X0�<�X0�x
�$�1��-��1028��#�$�,�J�7�N�6��B�*+/�/3���
�#�
�'�
�-�
��	
�103�
�104�

��3�4�+�F�3�N�6��4�s�;D'�'D8�7D8
codekingpro/portable-devtools · Team Ai