Şuanki Dizin: /proc/self/root/lib64/python3.9/wsgiref/__pycache__/ |
Şuanki Dosya : //proc/self/root/lib64/python3.9/wsgiref/__pycache__/validate.cpython-39.opt-2.pyc |
a �DOg�:�@s�dgZddlZddlZddlZe�d�Ze�d�ZGdd�de�Zdd�Z d d �Z dd�ZGdd �d �ZGdd�d�Z Gdd�d�ZGdd�d�ZGdd�d�Zdd�Zdd�Zdd�Zdd�Zdd�Zd d!�Zd"d#�Zd$d%�ZdS)&� validator�Nz^[a-zA-Z][a-zA-Z0-9\-_]*$z[\000-\037]c@seZdZdS)�WSGIWarningN)�__name__� __module__�__qualname__�rr�(/usr/lib64/python3.9/wsgiref/validate.pyrysrcGs|st|��dS�N)�AssertionError)�cond�argsrrr�assert_~sr cCs(t|�tur|Std�|t|����dS)Nz!{0} must be of type str (got {1}))�type�strr �format�repr)�value�titlerrr�check_string_type�s �rcs�fdd�}|S)Ncs�tt|�dkd�t|d�|\}�t|�g���fdd�}t|d�|d<t|d�|d<�||�}t|duoz|dkd �t|�t|��S) N�zTwo arguments required�No keyword arguments allowedcs�tt|�dkpt|�dkd|f�t|d�|d}|d}t|�dkrV|d}nd}t|�t|�t||�t|���d�t�|��S)Nr�zInvalid number of arguments: %srr�)r �len�check_status� check_headers�check_content_type�check_exc_info�append�WriteWrapper)r�kw�status�headers�exc_info�Zstart_responseZstart_response_startedrr�start_response_wrapper�s� z;validator.<locals>.lint_app.<locals>.start_response_wrapper� wsgi.input�wsgi.errorsFz>The application must return an iterator, if only an empty list)r r� check_environ�InputWrapper�ErrorWrapper�check_iterator�IteratorWrapper)rr �environr%�iterator��applicationr$r�lint_app�s �zvalidator.<locals>.lint_appr)r0r1rr/rr�s)c@s<eZdZdd�Zdd�Zdd�Zdd�Zd d �Zdd�Zd S)r)cCs ||_dSr )�input)�self� wsgi_inputrrr�__init__�szInputWrapper.__init__cGs0tt|�dk�|jj|�}tt|�tu�|S�Nr)r rr2�readr�bytes�r3r�vrrrr7�szInputWrapper.readcGs0tt|�dk�|jj|�}tt|�tu�|Sr6)r rr2�readlinerr8r9rrrr;�szInputWrapper.readlinecGsJtt|�dk�|jj|�}tt|�tu�|D]}tt|�tu�q0|Sr6)r rr2� readlinesr�listr8)r3r�lines�linerrrr<�szInputWrapper.readlinesccs|��}|sdS|VqdSr )r;)r3r?rrr�__iter__�szInputWrapper.__iter__cCstdd�dS)Nrz input.close() must not be called�r �r3rrr�close�szInputWrapper.closeN) rrrr5r7r;r<r@rCrrrrr)�sr)c@s4eZdZdd�Zdd�Zdd�Zdd�Zd d �ZdS)r*cCs ||_dSr )�errors)r3�wsgi_errorsrrrr5�szErrorWrapper.__init__cCs tt|�tu�|j�|�dSr )r rrrD�write�r3�srrrrF�szErrorWrapper.writecCs|j��dSr )rD�flushrBrrrrI�szErrorWrapper.flushcCs|D]}|�|�qdSr )rF)r3�seqr?rrr� writelines�szErrorWrapper.writelinescCstdd�dS)Nrz!errors.close() must not be calledrArBrrrrC�szErrorWrapper.closeN)rrrr5rFrIrKrCrrrrr*�s r*c@seZdZdd�Zdd�ZdS)rcCs ||_dSr )�writer)r3Zwsgi_writerrrrr5�szWriteWrapper.__init__cCstt|�tu�|�|�dSr )r rr8rLrGrrr�__call__�szWriteWrapper.__call__N)rrrr5rMrrrrr�src@seZdZdd�Zdd�ZdS)�PartialIteratorWrappercCs ||_dSr �r.)r3� wsgi_iteratorrrrr5szPartialIteratorWrapper.__init__cCst|jd�Sr )r,r.rBrrrr@szPartialIteratorWrapper.__iter__N)rrrr5r@rrrrrN�srNc@s4eZdZdd�Zdd�Zdd�Zdd�Zd d �ZdS)r,cCs ||_t|�|_d|_||_dS)NF)�original_iterator�iterr.�closed�check_start_response)r3rPrTrrrr5 s zIteratorWrapper.__init__cCs|Sr rrBrrrr@szIteratorWrapper.__iter__cCsTt|jd�t|j�}t|�tur4tdd|f�|jdurPt|jd�d|_|S)NzIterator read after closedFz$Iterator yielded non-bytestring (%r)zjThe application returns and we started iterating over its body, but start_response has not yet been called)r rS�nextr.rr8rT)r3r:rrr�__next__s� �zIteratorWrapper.__next__cCs d|_t|jd�r|j��dS)NTrC)rS�hasattrrQrCrBrrrrCszIteratorWrapper.closecCs"|jstj�d�t|jd�dS)Nz/Iterator garbage collected without being closed)rS�sys�stderrrFr rBrrr�__del__#s��zIteratorWrapper.__del__N)rrrr5r@rVrCrZrrrrr,s r,cCs�tt|�tudt|�|f�dD]}t||vd|f�q"dD]"}t||vd||dd�f�q@d|vrxt�dt�|��D]:}d |vr�q�tt||�tud |t||�||f�q�tt|d�tud|df�t|d dvd|d �t |d�t |d�|ddv�r0t�d|dt�t|�d��pL|d�d�d|d�t|�d��pv|d�d�d|d�|�d��r�tt |d�dkd|d�|�d��s�td|vd�t|�d�dkd�dS)Nz:Environment is not of the right type: %r (environment: %r)) �REQUEST_METHODZSERVER_NAMEZSERVER_PORT�wsgi.versionr&r'zwsgi.multithreadzwsgi.multiprocessz wsgi.run_oncez$Environment missing required key: %r)ZHTTP_CONTENT_TYPEZHTTP_CONTENT_LENGTHz8Environment should not have the key: %s (use %s instead)�ZQUERY_STRINGz�QUERY_STRING is not in the WSGI environment; the cgi module will use sys.argv when this variable is missing, so application errors are more likely�.z9Environmental variable %s is not a string: %r (value: %r)r\z#wsgi.version should be a tuple (%r)zwsgi.url_scheme)�http�httpszwsgi.url_scheme unknown: %rr&r'r[)�GETZHEADZPOSTZOPTIONSZPATCH�PUTZDELETEZTRACEzUnknown REQUEST_METHOD: %rZSCRIPT_NAME�/z$SCRIPT_NAME doesn't start with /: %rZ PATH_INFOz"PATH_INFO doesn't start with /: %rZCONTENT_LENGTHrzInvalid CONTENT_LENGTH: %rzgOne of SCRIPT_NAME or PATH_INFO are required (PATH_INFO should at least be '/' if SCRIPT_NAME is empty)zOSCRIPT_NAME cannot be '/'; it should instead be '', and PATH_INFO should be '/')r r�dict�warnings�warnr�keysr�tuple�check_input�check_errors�get� startswith�int)r-�keyrrrr(*sx ��������� � � � � ���r(cCs&dD]}tt||�d||f�qdS)N)r7r;r<r@z-wsgi.input (%r) doesn't have the attribute %s�r rW)r4�attrrrrriks ��ricCs&dD]}tt||�d||f�qdS)N)rIrFrKz.wsgi.errors (%r) doesn't have the attribute %sro)rErprrrrjqs ��rjcCsvt|d�}|�dd�d}tt|�dkd|�t|�}t|dkd|�t|�dksb|dd krrt�d |t�dS)N�Statusrrrz)Status codes must be three characters: %r�dzStatus code is invalid: %r�� zjThe status string (%r) should be a three-digit integer followed by a single space and a status explanation)r�splitr rrmrerfr)r!Zstatus_codeZ status_intrrrrws ���rcCstt|�tud|t|�f�|D]�}tt|�tud|t|�f�tt|�dk�|\}}t|d�}t|d�}t|��dkd|�td|vo�d |vd |�tt�|�d|�t|� d�o�|� d �d|�t �|�r"tdd|t �|��d�f�q"dS)Nz%Headers (%r) must be of type list: %rz1Individual headers (%r) must be of type tuple: %rr�Header namezHeader valuer!zyThe Status header cannot be used; it conflicts with CGI script, and HTTP status is not given through headers (value: %r).� �:z,Header names may not contain ':' or '\n': %rzBad header name: %r�-�_z#Names may not end in '-' or '_': %rrz#Bad header value: %r (bad char: %r))r rr=rhrr�lower� header_re�search�endswith�bad_header_value_re�group)r"�item�namerrrrr�s> �� �� ���� �rcCs|t|d�}t|�dd�d�}d}|D]:\}}t|d�}|��dkr&||vrRdStdd|�q&||vrxtdd|�dS) Nrqrr)��i0rvzcontent-typezJContent-Type header found in a %s response, which must not return content.z,No Content-Type header found in headers (%s))rrmrur{r )r!r"�codeZNO_MESSAGE_BODYr�rrrrr�s �rcCs*t|dupt|�tud|t|�f�dS)Nz exc_info (%r) is not a tuple: %r)r rrh)r#rrrr�s�rcCstt|ttf�d�dS)NzwYou should not return a string as your application iterator, instead return a single-item list containing a bytestring.)r � isinstancerr8rOrrrr+�s�r+)�__all__�rerXre�compiler|r�Warningrr rrr)r*rrNr,r(rirjrrrrr+rrrr�<module>os, 7# #A
Linux 65-254-81-4.cprapid.com 5.14.0-284.11.1.el9_2.x86_64 #1 SMP PREEMPT_DYNAMIC Tue May 9 05:49:00 EDT 2023 x86_64
Apache
65.254.81.4