| 12345678910111213141516171819202122232425262728293031323334 |
- """Import basic exposure of libzmq C API as a backend"""
- # Copyright (C) PyZMQ Developers
- # Distributed under the terms of the Modified BSD License.
- import os
- import platform
- from .select import public_api, select_backend
- if 'PYZMQ_BACKEND' in os.environ:
- backend = os.environ['PYZMQ_BACKEND']
- if backend in ('cython', 'cffi'):
- backend = f'zmq.backend.{backend}'
- _ns = select_backend(backend)
- else:
- # default to cython, fallback to cffi
- # (reverse on PyPy)
- if platform.python_implementation() == 'PyPy':
- first, second = ('zmq.backend.cffi', 'zmq.backend.cython')
- else:
- first, second = ('zmq.backend.cython', 'zmq.backend.cffi')
- try:
- _ns = select_backend(first)
- except Exception as original_error:
- try:
- _ns = select_backend(second)
- except ImportError:
- raise original_error from None
- globals().update(_ns)
- __all__ = public_api
|