Remove aiohttp

This commit is contained in:
David Cramer 2015-07-06 18:25:50 -07:00
parent 6850500189
commit 304faee8b1
7 changed files with 8 additions and 104 deletions

View File

@ -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
-------------

View File

@ -7,7 +7,6 @@ Integrations
.. toctree::
:maxdepth: 2
aiohttp
asyncio
bottle
celery

View File

@ -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>`_

View File

@ -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

View File

@ -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)

View File

@ -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]

View File

@ -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)