/usr/local/lib/python3.6/site-packages/werkzeug/__pycache__
NameSizeModeActions
datastructures.cpython-36.pyc1077480644editdlrm
exceptions.cpython-36.pyc306390644editdlrm
filesystem.cpython-36.pyc20250644editdlrm
formparser.cpython-36.pyc138140644editdlrm
http.cpython-36.pyc379050644editdlrm
local.cpython-36.pyc226910644editdlrm
routing.cpython-36.pyc729310644editdlrm
security.cpython-36.pyc80400644editdlrm
serving.cpython-36.pyc304780644editdlrm
test.cpython-36.pyc389610644editdlrm
testapp.cpython-36.pyc95490644editdlrm
urls.cpython-36.pyc364140644editdlrm
useragents.cpython-36.pyc74170644editdlrm
user_agent.cpython-36.pyc17200644editdlrm
utils.cpython-36.pyc329600644editdlrm
wsgi.cpython-36.pyc301020644editdlrm
_internal.cpython-36.pyc182680644editdlrm
_reloader.cpython-36.pyc118990644editdlrm
__init__.cpython-36.pyc3100644editdlrm
Edit: /usr/local/lib/python3.6/site-packages/werkzeug/__pycache__/useragents.cpython-36.pyc (7417B)
3 _TBg`@sddlZddlZddlZddlmZejr6ddlm Z GdddZ Gddde Z Gd d d e Z Gd d d eZGd ddeZdS)N) UserAgent)WSGIEnvironmentc@seZdZUdcZejejejeefd{Z ejejejeef dEZ e j dFZ dGdHdIdJZeejejeejeejeejefdKdLdMZdGS)|_UserAgentParser cros chromeos iphone|iosiphoneipaddarwin\b|mac\b|os\s*xmacoswinwindowsandroidnetbsdopenbsdfreebsd dragonfly dragonflybsd (sun|i86)ossolarisx11\b|lin(\b|ux)?linuxnintendo\s+wiiwiiirixhp-?uxhpuxaix sco|unix_svscobsdamigablackberry|playbook blackberrysymbian googlebotgooglemsnbotmsnyahoo ask jeevesaskaol|america\s+online\s+browseraol opera|oproperaedge|edgedge chrome|crioschrome seamonkey"firefox|firebird|phoenix|iceweaselfirefoxgaleonsafari|versionsafariwebkitcamino konquerork-meleonkmeleonnetscape4msie|microsoft\s+internet\s+explorer|trident/.+? rv:msielynxlinks Baiduspiderbaidubingbotbingmozillaz&(?:{pattern})[/\sa-z(]*(\d+[.\da-z]+)?za(?:;\s*|\s+)(\b\w{2}\b(?:-\b\w{2}\b)?)\s*;|(?:\(|\[|;)\s*(\b\w{2}\b(?:-\b\w{2}\b)?)\s*(?:\]|\)|;)N)returncs,ddjD_fddjD_dS)NcSs"g|]\}}|tj|tjfqS)recompileI).0abrKrK7/tmp/pip-build-0s3hx122/Werkzeug/werkzeug/useragents.py Dsz-_UserAgentParser.__init__..cs,g|]$\}}|tjjj|dtjfqS))pattern)rLrM_browser_version_reformatrN)rOrPrQ)selfrKrRrSFs)platform_rules platforms browser_rulesbrowsers)rWrK)rWrR__init__Cs z_UserAgentParser.__init__) user_agentrJc Csx*|jD]\}}|j|}|dk rPqWd}d}tjdtjj| rdd|krd|ddkrd|jd}x@|jD].\}}|j||d}|dk rl|jd}PqlWd}}|jj|}|dk r|jdp|jd}nd}||||fS)Nrztrident/.+? rv:)r) rYsearchrLrMrNrindexr[group _language_re) rWr]platformregexmatchZlast_closing_parenbrowserversionlanguagerKrKrR__call__Js*     z_UserAgentParser.__call__rrrr r r r r r rrrrrrrrrrrrrrrrrrrrrrrrr r!r!r"r"r#r$r%r%)rlrmrnrorprqrrrsrtrurvrwrxryrzr{r|r}r~rrr&r'r(r)r*r*r+r,r-r.r/r0r1r2r3r4r5r5r6r7r8r8r9r:r;r;r<r<r=r=r>r?r@r@rArBrCrCrDrDrErFrGrHrIrI)rrrrrrrrrrrrrrrrrrrrrrr)__name__ __module__ __qualname__rXtZClassVarIterableZTuplestrrZrUrLrMrdr\OptionalrkrKrKrKrRr sd rcs&eZdZdZddfdd ZZS)UserAgentParserzA simple user agent parser. Used by the `UserAgent`. .. deprecated:: 2.0 Will be removed in Werkzeug 2.1. Use a dedicated parser library instead. N)rJcstjdtddtjdS)Nzl'UserAgentParser' is deprecated and will be removed in Werkzeug 2.1. Use a dedicated parser library instead.r_) stacklevel)warningswarnDeprecationWarningsuperr\)rW) __class__rKrRr\{s zUserAgentParser.__init__)rrr__doc__r\ __classcell__rKrK)rrRrssrcsNeZdZejdgejfddfdd Zejejejdfdd ZZS) _deprecated_property _UserAgentN)fgetrJcs tj|d|jd|_dS)NzVThe built-in user agent parser is deprecated and will be removed in Werkzeug 2.1. The z property will be 'None'. Subclass 'werkzeug.user_agent.UserAgent' and set 'Request.user_agent_class' to use a different parser.)rr\rmessage)rWr)rrKrRr\s z_deprecated_property.__init__)argskwargsrJcs tj|jtddtj||S)N)r)rrrrr__get__)rWrr)rrKrRrsz_deprecated_property.__get__) rrrrCallableZAnyr\rrrKrK)rrRrs" rcseZdZeZeddfdd Zeej edddZ eej eddd Z eej edd d Z eej edd d Z ZS)rN)stringrJcs.tj||j|}|\|_|_|_|_dS)N)rr\_parser _platform_browser_version _language)rWrinfo)rrKrRr\s  z_UserAgent.__init__)rJcCs|jS)N)r)rWrKrKrRresz_UserAgent.platformcCs|jS)N)r)rWrKrKrRrhsz_UserAgent.browsercCs|jS)N)r)rWrKrKrRrisz_UserAgent.versioncCs|jS)N)r)rWrKrKrRrjsz_UserAgent.language)rrrrrrr\rrrrerhrirjrrKrK)rrRrsrcs(eZdZdZdddfdd ZZS)raRepresents a parsed user agent header value. This uses a basic parser to try to extract some information from the header. :param environ_or_string: The header value to parse, or a WSGI environ containing the header. .. deprecated:: 2.0 Will be removed in Werkzeug 2.1. Subclass :class:`werkzeug.user_agent.UserAgent` (note the new module name) to use a dedicated parser instead. .. versionchanged:: 2.0 Passing a WSGI environ is deprecated and will be removed in 2.1. zt.Union[str, WSGIEnvironment]N)environ_or_stringrJcsLt|tr(tjdtdd|jdd}n|}tjdtddtj|dS)NzzPassing an environ to 'UserAgent' is deprecated and will be removed in Werkzeug 2.1. Pass the header value string instead.r_)rZHTTP_USER_AGENTzThe 'werkzeug.useragents' module is deprecated and will be removed in Werkzeug 2.1. The new base API is 'werkzeug.user_agent.UserAgent'.) isinstancedictrrrgetrr\)rWrr)rrKrRr\s zUserAgent.__init__)rrrrr\rrKrK)rrRrsr)rLZtypingrrr]rZ_BaseUserAgentZ TYPE_CHECKINGZ_typeshed.wsgirrrpropertyrrrKrKrKrRs  h