Team Ai
Datasetpublic

codekingpro/portable-devtools

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

2��j.���SrSSKrSSKrSSKrSSKJr SSKJr SSKJ	r	J3r4Jr SSKJ
r
 SSKrSSKJrJr SS	KJr SS5KJr Sr"SS
\5rS\S\S\4SjrS\S\6\4SjrS\S\7\S\4SjrS\S\S\4SjrS\S\4SjrS"S\S\4Sjjr \RBRD4S\S\4Sjjr#"SS5r$"S S!5r%g)#z 8Download mode implementation.9 10�N)�Message)�	monotonic)�IO�Optional�Tuple)�urlsplit�)�HTTPResponse�
OutputOptions)�	RawStream)�Environment��c��\rSrSrSrg)�ContentRangeError��N)�__name__�11__module__�__qualname__�__firstlineno__�__static_attributes__r��VD:\code\apps\devtools\python\user_packages\Python313\site-packages\httpie/downloads.pyrrs��rr�
content_range�resumed_from�returnc��Uc[S5eSn[R"X 5nU(d[SU<35eUR5n[	US5n[	US5nUS(a[	US5OSnXV:�dUbXv::a[SU<35eXQ:wdUbUS	-U:wa[S12U<SUS35eUS	-$)
aa13Parse and validate Content-Range header.14 15<https://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html>16 17:param content_range: the value of a Content-Range response header18                      eg. "bytes 21010-47021/47022"19:param resumed_from: first byte pos. from the Range request header20:return: total size of the response body when fully downloaded.21 22NzMissing Content-RangezT^bytes (?P<first_byte_pos>\d+)-(?P<last_byte_pos>\d+)/(\*|(?P<instance_length>\d+))$zInvalid Content-Range format �first_byte_pos�
last_byte_pos�instance_lengthz Invalid Content-Range returned: r	z#Unexpected Content-Range returned (z") for the requested Range ("bytes=z-"))r�re�match�	groupdict�int)rr�patternr"�content_range_dictrrr s        r�parse_content_ranger's����� 7�8�8�	+��
�H�H�W�,�E���+�M�+<�=�?�	?����*���+�,<�=�>�N��*�?�;�<�M��/�0�	��0�1�2�
��	�&��'��0��.�}�.?�@�B�	B�	�&��'���!�_�4��1�-�1B�C0�0<�~�S�
B�23�	24�25�1��r�content_dispositionc���[SU35nUR5nU(aF[RR	U5RS5R
5nU(aU$gg)z�26Extract and validate filename from a Content-Disposition header.27 28:param content_disposition: Content-Disposition value29:return: the filename if present and valid, otherwise `None`30 31zContent-Disposition: �.N)r�get_filename�os�path�basename�lstrip�strip)r(�msg�filenames   r�!filename_from_content_dispositionr3Usc���)�*=�)>�?�32@�C����!�H���7�7�#�#�H�-�4�4�S�9�?�?�A����O��r�url�content_typec�D�[U5RRS5nU(a[RR	U5OSnSU;aMU(aFURS5SnUS:XaSnO[R"U5nUS:XaS	nU(aX#-
nU$)33N�/�indexr*�;rz34text/plainz.txtz.htmz.html)rr-�rstripr,r.�split�	mimetypes�guess_extension)r4r5�fn�exts    r�filename_from_urlr@js���	�#��	�	�	"�	"�3�	'�B�!#����	�	�"�	��B�35�"�}��#�)�)�#�.�q�1���<�'��C��+�+�L�9�C��&�=��C���I�B�
�Irr2�max_lenc���[U5U:�aO[U5U-36n[RRU5up4U[U5:�aUSU*nU$USU*U-nU$�N)�lenr,r-�splitext)r2rA�trim_by�namer?s     r�
trim_filenamerH~sl��37�8�}�w���h�-�'�)���G�G�$�$�X�.�	���c�$�i���	�'��*�H��O��I�g�X���,�H��Or�	directoryc��Sn[[S5(a+S[R;a[R"US5nU$)N���pathconf�PC_NAME_MAX)�hasattrr,�pathconf_namesrL)rIrAs  r�get_filename_max_lengthrP�s6���G��r�:���=�B�4E�4E�#E��+�+�i��7���Nrc�V�[U5U-38n[U5U:�a[X5nU$rC)rPrDrH)r2rI�extrarAs    r�trim_filename_if_neededrS�s,��%�i�0�5�8�G�39�8�}�w�� ��3���Orc�|�SnUS:�aSU3OSn[U[U5S9nXC-
nU"U5(dU$US-
nM:)Nr�-�)rRr	)rSrD)r2�exists�attempt�suffix�try_filenames     r�get_unique_filenamer[�sT���G�40�")�A�+�1�W�I��2��.�x�s�6�{�K������l�#�#����1���
rc���\rSrSrSS\S\S\4SjjrS\4Sjr	S	\41S42\RS\
\\44SjrS
rSr\S\4Sj5rS\4Sjr\S	\43S44\RS\4Sj5rSrg)�45Downloader�N�env�output_file�resumec�T�SUl[US9UlX lX0lSUlg)a46:param resume: Should the download resume if partial download47               already exists.48 49:param output_file: The file to store response body in. If not50                    provided, it will be guessed from the response.51 52:param progress_file: Where to report download progress.53 54F)r_rN)�finished�DownloadStatus�status�_output_file�_resume�
_resumed_from)�selfr_r`ras    r�__init__�Downloader.__init__�s*�� ��
�$��-���'������r�request_headersc���SUS'UR(aK[RRURR555nU(aSUS3US'X lggg)zNCalled just before the HTTP request is sent.56 57Might alter `request_headers`.58 59�identityzAccept-Encodingzbytes=rU�RangeN)rgr,r-�getsizerfrGrh)rirl�60bytes_haves   r�pre_request�Downloader.pre_request�s\��.8��)�*��<�<�������):�):�)?�)?�@�J��.4�J�<�q�+A���(�%/�"�	�r�initial_url�final_responserc��URR(ae[URS5nUR(dURUUS9UlO�UR(aDUR[:Xa0[URRS5UR5nO=SUlURRS5 URR!5 [$R&"USSS9n[)[+U5UUR,S	9nURR/URURUS619 XPR4$![[62[4a SnGNCf=f!["a N�f=f)a
63Initiate and return a stream for `response` body  with progress64callback attached. Can be called only once.65 66:param initial_url: The original requested URL67:param final_response: Initiated response object with headers already fetched68 69:return: RawStream, output_file70 71zContent-LengthN)rtruz
Content-RangerFT)�headers�body)r1�output_options�on_body_chunk_downloaded)r`r�72total_size)re�time_startedr$rw�KeyError�73ValueError�	TypeErrorrf�_get_output_file_from_responserg�status_code�PARTIAL_CONTENTr'�getrh�seek�truncate�OSErrorr�from_messagerr74�chunk_downloaded�started)rirtrur{ry�streams      r�start�Downloader.start�ss���;�;�+�+�+�+�	��^�3�3�4D�E�F�J�� � � $� C� C�'�-�!D�!�D���|�|�� :� :�o� M�0�"�*�*�.�.��?��&�&��75�&'��"���%�%�*�*�1�-��%�%�.�.�0�'�3�3�N�E�X\�]����^�,�)�%)�%:�%:�76��	
������)�)��+�+�!�	�	77��(�(�(�(��K�*�i�0�	��J�	��*����s#�E �;5E>� E;�:E;�>78F�79Fc�l�UR(aeSUlURR5 g)NT)rcre�ris r�finish�Downloader.finishs&���=�=� � ���
������rc�8�URR5 grC)re�	terminater�s r�failed�Downloader.faileds�������rc��UR=(aJ URR=(a- URRURR:g$rC)rcrer{�80downloadedr�s r�interrupted�Downloader.interruptedsE��
�M�M�
A����&�&�
A����&�&�$�+�+�*@�*@�@�	81r�chunkc�L�URR[U55 g)z�82A download progress callback.83 84:param chunk: A chunk of response body data that has just85              been downloaded and written to the output.86 87N)rer�rD)rir�s  rr��Downloader.chunk_downloadeds��	
���$�$�S��Z�0rc���SnSUR;a[URS5nU(d#[UURRS5S9n[	U5n[USSS9$)NzContent-DispositionzContent-Type)r4r5rza+b)�	buffering�mode)rwr3r@r�r[�open)rtrur2�unique_filenames    rr��)Downloader._get_output_file_from_response so���� �N�$:�$:�:�8��&�&�'<�=�?�H��(��+�3�3�7�7��G��H�.�h�7���O�q�u�=�=r)rfrgrhrcre)NF)rrrrr
r�boolrj�dictrr�str�requests�Responserrr�r�r��propertyr��bytesr��staticmethodr�rrrrr]r]�s���88��	�
�����	�,0�4�0� :)��:)�!�)�)�:)�89�y�"�}�	�	:)�x�90 ��91�T�92��93�1�e�1��>��>� �)�)�>�94�>��>rr]c�`�\rSrSrSrSrS
SjrSrSr\	S5r95\	S	5rS96rSr
Srg)rdi3z(Holds details about the download status.c�V�XlSUlSUlSUlSUlSUlg)Nr)r_r�r{rr|�
time_finished)rir_s  rrj�DownloadStatus.__init__6s-������������� ���!��rNc��URbeX0lU=UlUl[	5UlURUS9 g)N)r`)r|r{r�rr�
start_display)rir`rr{s    rr��DownloadStatus.started>sC��� � �(�(�(�$��.:�:���$�+�%�K������{��3rc�r�SSKJnJnJn SUR3nUR97R(a=URcU"UR985UlO/U"UR995UlOU"UR1005UlURRURURUS9 g)Nr)�DummyDisplay�
StatusDisplay�ProgressDisplayzDownloading to )�total�at�description)�httpie.output.ui.rich_progressr�r�r�rGr_�
show_displaysr{�displayr�r�)rir`r�r�r��messages      rr��DownloadStatus.start_displayEs���	101�	102�$�K�$4�$4�#5�6���8�8�!�!����&� -�T�X�X�6���.�t�x�x�8���'����1�D�L�������/�/�����	�	103rc��URbeU=RU-
slURRU5 grC)r�r�r��update)ri�sizes  rr��DownloadStatus.chunk_downloaded]s4���!�!�)�)�)����4��������D�!rc��URSL$rC)r�r�s r�has_finished�DownloadStatus.has_finishedbs���!�!��-�-rc�j�URb&URbURUR-104$grC)r|r�r�s r�105time_spent�DownloadStatus.time_spentfs6��
���)��"�"�.��%�%��(9�(9�9�9�rc���URceURbe[5Ul[US5(a&URRUR5 gg�Nr�)r|r�rrNr��stopr�r�s rrc�DownloadStatus.finishedpsX��� � �,�,�,��!�!�)�)�)�&�[����4��#�#��L�L���d�o�o�.�$rc�r�[US5(a&URRUR5 ggr�)rNr�r�r�r�s rr��DownloadStatus.terminatews*���4��#�#��L�L���d�o�o�.�$r)r�r�r_rr�r|r{)rN)rrrr�__doc__rjr�r�r�r�r�r�rcr�rrrrrdrd3sK��2�"�4�106�0"�107�.��.�����/�/rrd)r*r)&r�r<r,r!�mailboxr�timer�typingrrr�urllib.parserr��modelsr108r�output.streamsr�contextr
r�r~rr�r$r'r3r@rHrPrSr-rWr[r]rdrrr�<module>r�s����	�	���&�&�!��/�%� ���	�109�	�7�s�7�#�7�#�7�t���
�c�]��*�3��h�s�m����(�C��#��#���s��s���c��c��/1�g�g�n�n��#����N>�N>�bF/�F/r
codekingpro/portable-devtools · Team Ai