Remove aiohttp
This commit is contained in:
parent
6850500189
commit
304faee8b1
1
CHANGES
1
CHANGES
|
@ -5,6 +5,7 @@ Version 5.4.0
|
|||
* ``raven.conf.load`` has been removed.
|
||||
* Upstream-related configuration (such as url, project_id, and keys) is now contained in ``RemoteConfig``
|
||||
attached to ``Client.remote``
|
||||
* The ``aiohttp`` transport has been moved to ``raven-aiohttp`` package.
|
||||
|
||||
Version 5.3.1
|
||||
-------------
|
||||
|
|
|
@ -7,7 +7,6 @@ Integrations
|
|||
.. toctree::
|
||||
:maxdepth: 2
|
||||
|
||||
aiohttp
|
||||
asyncio
|
||||
bottle
|
||||
celery
|
||||
|
|
|
@ -41,11 +41,6 @@ Builtin Transports
|
|||
|
||||
A synchronous blocking transport.
|
||||
|
||||
.. data:: sentry.transport.aiohttp.AioHttpTransport
|
||||
|
||||
Should only be used within a :pep:`3156` compatible event loops
|
||||
(*asyncio* itself and others).
|
||||
|
||||
.. data:: sentry.transport.eventlet.EventletHTTPTransport
|
||||
|
||||
Should only be used within an Eventlet IO loop.
|
||||
|
@ -65,3 +60,9 @@ Builtin Transports
|
|||
.. data:: sentry.transport.twisted.TwistedHTTPTransport
|
||||
|
||||
Should only be used within a Twisted event loop.
|
||||
|
||||
|
||||
Other Transports
|
||||
----------------
|
||||
|
||||
- `aiohttp <https://github.com/getsentry/raven-aiohttp>`_
|
||||
|
|
|
@ -8,7 +8,6 @@ raven.transport
|
|||
# TODO: deprecate this namespace and force non-default (sync + threaded) to
|
||||
# manually import/register transports somehow
|
||||
from __future__ import absolute_import
|
||||
import sys
|
||||
|
||||
from raven.transport.base import * # NOQA
|
||||
from raven.transport.eventlet import * # NOQA
|
||||
|
@ -20,6 +19,3 @@ from raven.transport.registry import * # NOQA
|
|||
from raven.transport.twisted import * # NOQA
|
||||
from raven.transport.threaded import * # NOQA
|
||||
from raven.transport.tornado import * # NOQA
|
||||
|
||||
if sys.version_info >= (3, 3):
|
||||
from raven.transport.aiohttp import * # NOQA
|
||||
|
|
|
@ -1,80 +0,0 @@
|
|||
"""
|
||||
raven.transport.aiohttp
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
:copyright: (c) 2010-2014 by the Sentry Team, see AUTHORS for more details.
|
||||
:license: BSD, see LICENSE for more details.
|
||||
"""
|
||||
# Skip flake8, python2 version doesn't recognize `yield from` statement
|
||||
# flake8: noqa
|
||||
from __future__ import absolute_import
|
||||
|
||||
from raven.exceptions import APIError, RateLimited
|
||||
from raven.transport.base import AsyncTransport
|
||||
from raven.transport.http import HTTPTransport
|
||||
from raven.conf import defaults
|
||||
|
||||
import socket
|
||||
|
||||
try:
|
||||
import aiohttp
|
||||
import asyncio
|
||||
has_aiohttp = True
|
||||
except:
|
||||
has_aiohttp = False
|
||||
|
||||
|
||||
class AioHttpTransport(AsyncTransport, HTTPTransport):
|
||||
|
||||
scheme = ['aiohttp+http', 'aiohttp+https']
|
||||
|
||||
def __init__(self, parsed_url, *, verify_ssl=True, resolve=True,
|
||||
timeout=defaults.TIMEOUT,
|
||||
keepalive=True, family=socket.AF_INET, loop=None):
|
||||
if not has_aiohttp:
|
||||
raise ImportError('AioHttpTransport requires asyncio and aiohttp.')
|
||||
|
||||
if loop is None:
|
||||
loop = asyncio.get_event_loop()
|
||||
self._loop = loop
|
||||
|
||||
super().__init__(parsed_url, timeout, verify_ssl)
|
||||
|
||||
if keepalive:
|
||||
self._connector = aiohttp.TCPConnector(verify_ssl=verify_ssl,
|
||||
resolve=resolve,
|
||||
family=family,
|
||||
loop=loop)
|
||||
else:
|
||||
self._connector = None
|
||||
|
||||
def async_send(self, data, headers, success_cb, failure_cb):
|
||||
@asyncio.coroutine
|
||||
def f():
|
||||
try:
|
||||
resp = yield from asyncio.wait_for(
|
||||
aiohttp.request('POST',
|
||||
self._url, data=data,
|
||||
headers=headers,
|
||||
connector=self._connector,
|
||||
loop=self._loop),
|
||||
self.timeout,
|
||||
loop=self._loop)
|
||||
yield from resp.release()
|
||||
code = resp.status
|
||||
if code != 200:
|
||||
msg = resp.headers.get('x-sentry-error')
|
||||
if code == 429:
|
||||
try:
|
||||
retry_after = int(resp.headers.get('retry-after'))
|
||||
except (ValueError, TypeError):
|
||||
retry_after = 0
|
||||
failure_cb(RateLimited(msg, retry_after))
|
||||
else:
|
||||
failure_cb(APIError(msg, code))
|
||||
else:
|
||||
success_cb()
|
||||
except Exception as exc:
|
||||
failure_cb(exc)
|
||||
|
||||
asyncio.async(f(), loop=self._loop)
|
|
@ -6,7 +6,6 @@ raven.transport.registry
|
|||
:license: BSD, see LICENSE for more details.
|
||||
"""
|
||||
from __future__ import absolute_import
|
||||
import sys
|
||||
|
||||
# TODO(dcramer): we really should need to import all of these by default
|
||||
from raven.transport.eventlet import EventletHTTPTransport
|
||||
|
@ -20,9 +19,6 @@ from raven.transport.twisted import TwistedHTTPTransport
|
|||
from raven.transport.tornado import TornadoHTTPTransport
|
||||
from raven.utils import urlparse
|
||||
|
||||
if sys.version_info >= (3, 3):
|
||||
from raven.transport.aiohttp import AioHttpTransport
|
||||
|
||||
|
||||
class TransportRegistry(object):
|
||||
def __init__(self, transports=None):
|
||||
|
@ -85,6 +81,3 @@ default_transports = [
|
|||
TornadoHTTPTransport,
|
||||
EventletHTTPTransport,
|
||||
]
|
||||
|
||||
if sys.version_info >= (3, 3):
|
||||
default_transports += [AioHttpTransport]
|
||||
|
|
8
setup.py
8
setup.py
|
@ -52,12 +52,6 @@ if sys.version_info[0] == 3:
|
|||
unittest2_requires = []
|
||||
webpy_tests_requires = []
|
||||
|
||||
if sys.version_info >= (3, 3):
|
||||
aiohttp_requires = ['aiohttp']
|
||||
else:
|
||||
aiohttp_requires = []
|
||||
|
||||
|
||||
tests_require = [
|
||||
'bottle',
|
||||
'celery>=2.5',
|
||||
|
@ -77,7 +71,7 @@ tests_require = [
|
|||
'webob',
|
||||
'webtest',
|
||||
'anyjson',
|
||||
] + (aiohttp_requires + flask_requires + flask_tests_requires +
|
||||
] + (flask_requires + flask_tests_requires +
|
||||
unittest2_requires + webpy_tests_requires)
|
||||
|
||||
|
||||
|
|
Loading…
Reference in New Issue