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

1"""Import basic exposure of libzmq C API as a backend""" 

2 

3# Copyright (C) PyZMQ Developers 

4# Distributed under the terms of the Modified BSD License. 

5 

6 

7import os 

8import platform 

9 

10from .select import public_api, select_backend 

11 

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

24 

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 

32 

33globals().update(_ns) 

34 

35__all__ = public_api