3 \ � @ st d dl Z ddddddgZG dd� d�Zd d� Zd d� Zddd�Zd d� Zdd� Zddddddddd�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 �$/usr/lib64/python3.6/wsgiref/util.py�__init__ s zFileWrapper.__init__c C s | j j| j�}|r|S t�d S )N)r �readr � IndexError)r �key�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| j�}|r|S t�d S )N)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 c C s | j d�dkrdS dS d S )NZHTTPS�yes�on�1�https�http)r r r )�get)�environr r r r # s c C s� | d d }ddl m} | jd�r0|| d 7 }nR|| d 7 }| d dkrf| d d kr�|d | d 7 }n| d dkr�|d | d 7 }||| jd�p�d dd�7 }|S )Nzwsgi.url_schemez://r )�quote� HTTP_HOST�SERVER_NAMEr �SERVER_PORT�443�:�80�SCRIPT_NAME�/�latin1)�encoding)�urllib.parser# r! )r" �urlr# r r r r + s Tc C sp t | �}ddlm} || jdd�ddd�}| jd�sF||d d � 7 }n||7 }|rl| jd �rl|d| d 7 }|S )Nr )r# � PATH_INFO� z/;=,r, )Zsafer- r* � ZQUERY_STRING�?)r r. r# r! )r" Z include_queryr/ r# � path_infor r r r ? s c C s� | j dd�}|sd S |jd�}dd� |dd � D �|dd �<