summaryrefslogtreecommitdiff
path: root/raven/transport/registry.py
diff options
context:
space:
mode:
Diffstat (limited to 'raven/transport/registry.py')
-rw-r--r--raven/transport/registry.py75
1 files changed, 0 insertions, 75 deletions
diff --git a/raven/transport/registry.py b/raven/transport/registry.py
deleted file mode 100644
index 9f5d3c5..0000000
--- a/raven/transport/registry.py
+++ /dev/null
@@ -1,75 +0,0 @@
-"""
-raven.transport.registry
-~~~~~~~~~~~~~~~~~~~~~~~~
-
-:copyright: (c) 2010-2012 by the Sentry Team, see AUTHORS for more details.
-:license: BSD, see LICENSE for more details.
-"""
-from __future__ import absolute_import
-
-# TODO(dcramer): we really should need to import all of these by default
-from raven.transport.eventlet import EventletHTTPTransport
-from raven.transport.exceptions import DuplicateScheme
-from raven.transport.http import HTTPTransport
-from raven.transport.gevent import GeventedHTTPTransport
-from raven.transport.requests import RequestsHTTPTransport
-from raven.transport.threaded import ThreadedHTTPTransport
-from raven.transport.threaded_requests import ThreadedRequestsHTTPTransport
-from raven.transport.twisted import TwistedHTTPTransport
-from raven.transport.tornado import TornadoHTTPTransport
-from raven.utils import urlparse
-
-
-class TransportRegistry(object):
- def __init__(self, transports=None):
- # setup a default list of senders
- self._schemes = {}
- self._transports = {}
-
- if transports:
- for transport in transports:
- self.register_transport(transport)
-
- def register_transport(self, transport):
- if not hasattr(transport, 'scheme') or not hasattr(transport.scheme, '__iter__'):
- raise AttributeError('Transport %s must have a scheme list', transport.__class__.__name__)
-
- for scheme in transport.scheme:
- self.register_scheme(scheme, transport)
-
- def register_scheme(self, scheme, cls):
- """
- It is possible to inject new schemes at runtime
- """
- if scheme in self._schemes:
- raise DuplicateScheme()
-
- urlparse.register_scheme(scheme)
- # TODO (vng): verify the interface of the new class
- self._schemes[scheme] = cls
-
- def supported_scheme(self, scheme):
- return scheme in self._schemes
-
- def get_transport(self, parsed_url, **options):
- full_url = parsed_url.geturl()
- if full_url not in self._transports:
- # Remove the options from the parsed_url
- parsed_url = urlparse.urlparse(full_url.split('?')[0])
- self._transports[full_url] = self._schemes[parsed_url.scheme](parsed_url, **options)
- return self._transports[full_url]
-
- def get_transport_cls(self, scheme):
- return self._schemes[scheme]
-
-
-default_transports = [
- HTTPTransport,
- ThreadedHTTPTransport,
- GeventedHTTPTransport,
- TwistedHTTPTransport,
- RequestsHTTPTransport,
- ThreadedRequestsHTTPTransport,
- TornadoHTTPTransport,
- EventletHTTPTransport,
-]