1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
|
"""CFFI backend (for PyPY)"""
# Copyright (C) PyZMQ Developers
# Distributed under the terms of the Modified BSD License.
import imp
import os.path
import sys
import cffi.vengine_cpy
import cffi.vengine_gen
_ma_triplet = None
def vengine_gen_find_module(self, module_name, path, so_suffixes):
global _ma_triplet
if _ma_triplet is None:
try:
import subprocess as sp
p = sp.Popen(["gcc", "-print-multiarch"], stdout=sp.PIPE)
_ma_triplet = str(p.communicate()[0].decode().strip())
except:
import warnings
warnings.warn('failed to detect multiarch paths, please install gcc')
for so_suffix in so_suffixes + ['.%s-%s.so' % (imp.get_tag(), _ma_triplet)]:
basename = module_name + so_suffix
if path is None:
path = sys.path
# import from non root package would try __pycache__ which is
# cleaned by pypy installation
path.insert(0, "/usr/lib/pypy/dist-packages/zmq/backend/cffi")
for dirname in path:
filename = os.path.join(dirname, basename)
if os.path.isfile(filename):
return filename
cffi.vengine_gen.VGenericEngine.find_module = vengine_gen_find_module
from zmq.backend.cffi import (constants, error, message, context, socket,
_poll, devices, utils)
__all__ = []
for submod in (constants, error, message, context, socket,
_poll, devices, utils):
__all__.extend(submod.__all__)
from .constants import *
from .error import *
from .message import *
from .context import *
from .socket import *
from .devices import *
from ._poll import *
from ._cffi import zmq_version_info, ffi
from .utils import *
|