a ´iÛ ã @ sb d Z ddlZg d¢ZG dd„ dƒZdd„ Zdd „ Zddd„Zd d„ Zdd„ Zh d£j Z dd„ ZdS )z$Miscellaneous WSGI-related Utilitiesé N)ÚFileWrapperÚguess_schemeÚapplication_uriÚrequest_uriÚshift_path_infoÚsetup_testing_defaultsc @ s2 e Zd ZdZddd„Zdd„ Zdd„ Zd d „ ZdS ) r z1Wrapper to convert file-like objects to iterablesé c C s" || _ || _t|dƒr|j| _d S )NÚclose)ÚfilelikeÚblksizeÚhasattrr )Úselfr r © r ú$/usr/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__Ú__doc__r r r r r r r r r s r c C s | d¡dv rdS dS dS )zMReturn a guess for whether 'wsgi.url_scheme' should be 'http' or 'https' ZHTTPS)ZyesZonÚ1ÚhttpsÚhttpN)Ú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 dd7 }|S )z@Return the application's base URI (no PATH_INFO or QUERY_STRING)úwsgi.url_schemez://r ©ÚquoteÚ HTTP_HOSTÚSERVER_NAMEr$ ÚSERVER_PORTÚ443ú:Ú80ÚSCRIPT_NAMEú/Úlatin1)Úencoding)Úurllib.parser* r&