aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/vpp-api/python/vpp_papi.py58
1 files changed, 36 insertions, 22 deletions
diff --git a/src/vpp-api/python/vpp_papi.py b/src/vpp-api/python/vpp_papi.py
index c2d12b5b8d5..35edd491085 100644
--- a/src/vpp-api/python/vpp_papi.py
+++ b/src/vpp-api/python/vpp_papi.py
@@ -56,6 +56,7 @@ void vac_set_error_handler(vac_error_callback_t);
# Barfs on failure, no need to check success.
vpp_api = ffi.dlopen('libvppapiclient.so')
+
def vpp_atexit(vpp_weakref):
"""Clean up VPP connection on shutdown."""
vpp_instance = vpp_weakref()
@@ -63,6 +64,7 @@ def vpp_atexit(vpp_weakref):
vpp_instance.logger.debug('Cleaning up VPP on exit')
vpp_instance.disconnect()
+
vpp_object = None
@@ -114,7 +116,8 @@ class VPP():
these messages in a background thread.
"""
def __init__(self, apifiles=None, testmode=False, async_thread=True,
- logger=logging.getLogger('vpp_papi'), loglevel='debug', read_timeout=0):
+ logger=logging.getLogger('vpp_papi'), loglevel='debug',
+ read_timeout=0):
"""Create a VPP API object.
apifiles is a list of files containing API
@@ -173,7 +176,8 @@ class VPP():
# Support legacy CFFI
# from_buffer supported from 1.8.0
- (major, minor, patch) = [int(s) for s in cffi.__version__.split('.', 3)]
+ (major, minor, patch) = [int(s) for s in
+ cffi.__version__.split('.', 3)]
if major >= 1 and minor >= 8:
self._write = self._write_new_cffi
else:
@@ -223,8 +227,8 @@ class VPP():
def dmatch(dir):
"""Match dir against right-hand components of the script dir"""
d = dir.split('/') # param 'dir' assumes a / separator
- l = len(d)
- return len(localdir_s) > l and localdir_s[-l:] == d
+ length = len(d)
+ return len(localdir_s) > length and localdir_s[-length:] == d
def sdir(srcdir, variant):
"""Build a path from srcdir to the staged API files of
@@ -253,7 +257,6 @@ class VPP():
if srcdir:
# we're in the source tree, try both the debug and release
# variants.
- x = 'vpp/share/vpp/api'
dirs.append(sdir(srcdir, '_debug'))
dirs.append(sdir(srcdir, ''))
@@ -330,9 +333,8 @@ class VPP():
'i32': 'i',
'u64': 'Q',
'f64': 'd', }
- pack = None
+
if t in base_types:
- pack = base_types[t]
if not vl:
if e > 0 and t == 'u8':
# Fixed byte array
@@ -393,9 +395,9 @@ class VPP():
for k in kwargs:
if k not in msgdef['args']:
- raise ValueError(1,'Non existing argument [' + k + ']' + \
- ' used in call to: ' + \
- self.id_names[kwargs['_vl_msg_id']] + '()' )
+ raise ValueError(1, 'Non existing argument [' + k + ']' +
+ ' used in call to: ' +
+ self.id_names[kwargs['_vl_msg_id']] + '()')
for k, v in vpp_iterator(msgdef['args']):
off += size
@@ -404,21 +406,28 @@ class VPP():
if callable(v[1]):
e = kwargs[v[0]] if v[0] in kwargs else v[0]
if e != len(kwargs[k]):
- raise (ValueError(1, 'Input list length mismatch: %s (%s != %s)' % (k, e, len(kwargs[k]))))
+ raise (ValueError(1,
+ 'Input list length mismatch: '
+ '%s (%s != %s)' %
+ (k, e, len(kwargs[k]))))
size = 0
for i in range(e):
size += v[1](self, True, buf, off + size,
kwargs[k][i])
else:
if v[0] in kwargs:
- l = kwargs[v[0]]
- if l != len(kwargs[k]):
- raise ValueError(1, 'Input list length mismatch: %s (%s != %s)' % (k, l, len(kwargs[k])))
+ kwargslen = kwargs[v[0]]
+ if kwargslen != len(kwargs[k]):
+ raise ValueError(1,
+ 'Input list length mismatch:'
+ ' %s (%s != %s)' %
+ (k, kwargslen,
+ len(kwargs[k])))
else:
- l = len(kwargs[k])
+ kwargslen = len(kwargs[k])
if v[1].size == 1:
- buf[off:off + l] = bytearray(kwargs[k])
- size = l
+ buf[off:off + kwargslen] = bytearray(kwargs[k])
+ size = kwargslen
else:
size = 0
for i in kwargs[k]:
@@ -429,7 +438,10 @@ class VPP():
size = v(self, True, buf, off, kwargs[k])
else:
if type(kwargs[k]) is str and v.size < len(kwargs[k]):
- raise ValueError(1, 'Input list length mismatch: %s (%s < %s)' % (k, v.size, len(kwargs[k])))
+ raise ValueError(1,
+ 'Input list length mismatch: '
+ '%s (%s < %s)' %
+ (k, v.size, len(kwargs[k])))
v.pack_into(buf, off, kwargs[k])
size = v.size
else:
@@ -548,7 +560,8 @@ class VPP():
raise ValueError('Variable Length Array must be last: ' + name)
size, s = self.__struct(*f)
args[field_name] = s
- if type(s) == list and type(s[0]) == int and type(s[1]) == struct.Struct:
+ if type(s) == list and type(s[0]) == int and \
+ type(s[1]) == struct.Struct:
if s[0] < 0:
sizes[field_name] = size
else:
@@ -578,10 +591,11 @@ class VPP():
def make_function(self, name, i, msgdef, multipart, async):
if (async):
- f = lambda **kwargs: (self._call_vpp_async(i, msgdef, **kwargs))
+ def f(**kwargs):
+ return self._call_vpp_async(i, msgdef, **kwargs)
else:
- f = lambda **kwargs: (self._call_vpp(i, msgdef, multipart,
- **kwargs))
+ def f(**kwargs):
+ return self._call_vpp(i, msgdef, multipart, **kwargs)
args = self.messages[name]['args']
argtypes = self.messages[name]['argtypes']
f.__name__ = str(name)