U ,a@srddlZddddddgZGdddZd dZd dZdd dZd dZddZddddddddhjZ ddZ dS)N FileWrapper guess_schemeapplication_uri request_urishift_path_infosetup_testing_defaultsc@s.eZdZd ddZddZddZdd Zd S) r cCs"||_||_t|dr|j|_dS)Nclose)filelikeblksizehasattrr )selfr r r1/opt/alt/python38/lib64/python3.8/wsgiref/util.py__init__s zFileWrapper.__init__cCs6ddl}|jdtdd|j|j}|r.|StdS)NrzXFileWrapper's __getitem__ method ignores 'key' parameter. Use iterator protocol instead.) stacklevel)warningswarnDeprecationWarningr readr IndexError)r keyrdatarrr __getitem__szFileWrapper.__getitem__cCs|SNr)r rrr__iter__!szFileWrapper.__iter__cCs|j|j}|r|StdSr)r rr StopIteration)r rrrr__next__$szFileWrapper.__next__N)r)__name__ __module__ __qualname__rrrrrrrrr s  cCs|ddkrdSdSdS)NZHTTPS)ZyesZon1httpshttp)get)environrrrr*scCs|dd}ddlm}|dr0||d7}nR||d7}|ddkrf|dd kr|d |d7}n|dd kr|d |d7}|||d pd dd7}|S)Nwsgi.url_schemez://rquote HTTP_HOST SERVER_NAMEr# SERVER_PORT443:80 SCRIPT_NAME/latin1)encoding) urllib.parser)r%)r&urlr)rrrr2s       TcCspt|}ddlm}||ddddd}|dsF||d d7}n||7}|rl|d rl|d |d 7}|S) Nrr( PATH_INFOz/;=,r2)Zsafer3r0Z QUERY_STRING?)rr4r)r%)r&Z include_queryr5r) path_inforrrrFs  cCs|dd}|sdS|d}dd|ddD|dd<|d}|d=|dd}t|d|}|dr~|dd}|s|ds|d7}||d<d||d<|d krd}|S) Nr6r7r1cSsg|]}|r|dkr|qS).r).0prrr esz#shift_path_info..r8r0r;)r%split posixpathnormpathendswithjoin)r&r: path_partsnameZ script_namerrrrSs$     cCs|dd|dd|d|d|ddd|kr\d |kr\|dd |d d |d d |dd|dd|ddddlm}m}|d||d||dt||ddkr|ddn|ddkr|dddS)Nr+z 127.0.0.1ZSERVER_PROTOCOLzHTTP/1.0r*ZREQUEST_METHODZGETr0r6r7r1z wsgi.version)r8rz wsgi.run_oncerzwsgi.multithreadzwsgi.multiprocess)StringIOBytesIOz wsgi.inputz wsgi.errorsr'r$r,r/r#r-) setdefaultiorGrHr)r&rGrHrrrr|s&           Z connectionz keep-alivezproxy-authenticatezproxy-authorizationZteZtrailersztransfer-encodingZupgradecCs t|Sr)_hoppishlower)Z header_namerrr is_hop_by_hopsrM)T) rA__all__rrrrrr __contains__rKrMrrrrs. ))