Coverage for /pythoncovmergedfiles/medio/medio/usr/local/lib/python3.8/site-packages/zmq/backend/__init__.py: 50%
20 statements
« prev ^ index » next coverage.py v7.2.7, created at 2023-07-01 06:54 +0000
« prev ^ index » next coverage.py v7.2.7, created at 2023-07-01 06:54 +0000
1"""Import basic exposure of libzmq C API as a backend"""
3# Copyright (C) PyZMQ Developers
4# Distributed under the terms of the Modified BSD License.
7import os
8import platform
10from .select import public_api, select_backend
12if 'PYZMQ_BACKEND' in os.environ:
13 backend = os.environ['PYZMQ_BACKEND']
14 if backend in ('cython', 'cffi'):
15 backend = 'zmq.backend.%s' % backend
16 _ns = select_backend(backend)
17else:
18 # default to cython, fallback to cffi
19 # (reverse on PyPy)
20 if platform.python_implementation() == 'PyPy':
21 first, second = ('zmq.backend.cffi', 'zmq.backend.cython')
22 else:
23 first, second = ('zmq.backend.cython', 'zmq.backend.cffi')
25 try:
26 _ns = select_backend(first)
27 except Exception as original_error:
28 try:
29 _ns = select_backend(second)
30 except ImportError:
31 raise original_error from None
33globals().update(_ns)
35__all__ = public_api