a XC?h� � @ s^ d dl Z g d�ZG dd� d�Zdd� Zdd� Zdd d�Zdd � Zdd� Zh d�jZ dd� Z dS )� N)�FileWrapper�guess_scheme�application_uri�request_uri�shift_path_info�setup_testing_defaultsc @ s. e Zd Zddd�Zdd� Zdd� Zdd � Zd S )r � c C s" || _ || _t|d�r|j| _d S )N�close)�filelike�blksize�hasattrr )�selfr r � r �1/opt/alt/python39/lib64/python3.9/wsgiref/util.py�__init__ s zFileWrapper.__init__c C s6 dd l }|jdtdd� | j�| j�}|r.|S t�d S )Nr zXFileWrapper's __getitem__ method ignores 'key' parameter. Use iterator protocol instead.� )� stacklevel)�warnings�warn�DeprecationWarningr �readr � IndexError)r �keyr �datar r r �__getitem__ s �zFileWrapper.__getitem__c C s | S �Nr )r r r r �__iter__! s zFileWrapper.__iter__c C s | j �| j�}|r|S t�d S r )r r r � StopIteration)r r r r r �__next__$ s zFileWrapper.__next__N)r )�__name__� __module__�__qualname__r r r r r r r r r s r c C s | � d�dv rdS dS d S )NZHTTPS)ZyesZon�1�https�http)�get)�environr r r r * s r c C s� | d d }ddl m} | �d�r0|| d 7 }nR|| d 7 }| d dkrf| d d kr�|d | d 7 }n| d dkr�|d | d 7 }||| �d�p�d dd�7 }|S )N�wsgi.url_schemez://r ��quote� HTTP_HOST�SERVER_NAMEr# �SERVER_PORT�443�:�80�SCRIPT_NAME�/�latin1)�encoding)�urllib.parser) r% )r&