Source code for pulsar.client.transport
import os
from .curl import (
curl_available,
PycurlTransport,
)
from .requests import requests_multipart_post_available
from .ssh import (
rsync_get_file,
rsync_post_file,
scp_get_file,
scp_post_file,
)
from .standard import UrllibTransport
if curl_available:
from .curl import (
get_file,
post_file,
)
elif requests_multipart_post_available:
from .requests import (
get_file,
post_file,
)
else:
from .poster import (
get_file,
post_file,
)
[docs]
def get_transport(transport_type=None, os_module=os, transport_params=None):
transport_type = _get_transport_type(transport_type, os_module)
if not transport_params:
transport_params = {}
if transport_type == 'urllib':
transport = UrllibTransport(**transport_params)
else:
transport = PycurlTransport(**transport_params)
return transport
def _get_transport_type(transport_type, os_module):
if not transport_type:
use_curl = os_module.getenv('PULSAR_CURL_TRANSPORT', "0")
# If PULSAR_CURL_TRANSPORT is unset or set to 0, use default,
# else use curl.
if use_curl.isdigit() and not int(use_curl):
transport_type = 'urllib'
else:
transport_type = 'curl'
return transport_type
__all__ = (
'get_transport',
'get_file',
'post_file',
'rsync_get_file',
'rsync_post_file',
'scp_get_file',
'scp_post_file',
)