B Y@sddlmZddlZddlZddlZddlmZmZddlm Z ddl m Z ddl m Z mZdZedZd d ZeZGd d d eZdS) )absolute_importN)PY2 text_type) InvalidDsn) to_string) parse_qslurlparsez(Unsupported Sentry DSN scheme: {0} ({1})ravencCsVddlm}ddlm}dtjkr:dtjkr:td|SdtjkrRtd|S|S) Nr)ThreadedHTTPTransport) HTTPTransportZCURRENT_VERSION_IDZ INSTANCE_IDzODetected environment to be Google App Engine. Using synchronous HTTP transport.ZLAMBDA_TASK_ROOTzHDetected environment to be AWS Lambda. Using synchronous HTTP transport.)Zraven.transport.threadedr Zraven.transport.httpr osenvironloggerinfo)r r rB/opt/alt/python37/lib/python3.7/site-packages/raven/conf/remote.pydiscover_default_transports     rc@sDeZdZdddZddZddZdd Zd d Zedd d Z dS) RemoteConfigNcCsV|r|d}d||f}nd}||_||_||_||_|p>i|_||_|pNt|_dS)N/z%s/api/%s/store/) rstripbase_urlproject public_key secret_keyoptionsstore_endpointDEFAULT_TRANSPORT_transport_cls)selfrrrr transportrrrrr__init__(s  zRemoteConfig.__init__cCs t|jS)N)rr)rrrr __unicode__9szRemoteConfig.__unicode__cCst|j|j|j|jgS)N)allrrrr)rrrr is_active<szRemoteConfig.is_activecCs*|js dSt|ds$|jf|j|_|jS)N _transport)rhasattrrrr$)rrrr get_transport?s  zRemoteConfig.get_transportcCs:t|j}|j}|jr$|d|j7}d|j||j|jfS)Nz:%sz //%s@%s%s/%s)rrhostnameportrpathr)rurlnetlocrrrget_public_dsnGs  zRemoteConfig.get_public_dsnc Cs&tr t|}t|}|jdkr,td|dkrz|sPddlm}m }||}| |jsnt t |j|||j}|j}|jr|d|j7}|jdd}t|dkr|d} nd} |d } t|| |j|jgst d |d |jd dd || f} || | |j|jtt|j|d S)N)httphttpsznTransport selection via DSN is deprecated. You should explicitly pass the transport class to Client() instead.r)TransportRegistrydefault_transportsz:%srzInvalid Sentry DSN: %rz %s://%s%s+)rrrrrr)rrrstripschemewarningswarnZraven.transportr/r0Zsupported_schemerERR_UNKNOWN_SCHEMEformatZget_transport_clsr'r(r)rsplitlenr"usernamepasswordgeturldictrquery) clsvaluerZtransport_registryr*r/r0r+Z path_bitsr)rrrrr from_stringNs<        zRemoteConfig.from_string)NNNNNN)NN) __name__ __module__ __qualname__r r!r#r&r, classmethodrDrrrrr's r) __future__rloggingr r7Zraven.utils.compatrrZraven.exceptionsrZraven.utils.encodingrZraven.utils.urlparserrr9 getLoggerrrrobjectrrrrrs