BUG/MEDIUM: spoa/python: Fixing PyObject_Call positional arguments

As per https://docs.python.org/3/c-api/object.html#c.PyObject_Call,
positional arguments should be an empty tuple when not used.
Previously the code had a dictionary instead of tuple. This commit is to
fix it and use tuple to avoid unexpected consequences

This patch must be backported as far as 2.0.
diff --git a/contrib/spoa_server/ps_python.c b/contrib/spoa_server/ps_python.c
index f2ddc16..20861d6 100644
--- a/contrib/spoa_server/ps_python.c
+++ b/contrib/spoa_server/ps_python.c
@@ -43,7 +43,7 @@
 static PyObject *ipv4_address;
 static PyObject *ipv6_address;
 static PyObject *spoa_error;
-static PyObject *empty_array;
+static PyObject *empty_tuple;
 static struct worker *worker;
 
 static int ps_python_start_worker(struct worker *w);
@@ -522,8 +522,8 @@
 		return 0;
 	}
 
-	empty_array = PyDict_New();
-	if (empty_array == NULL) {
+	empty_tuple = PyTuple_New(0);
+	if (empty_tuple == NULL) {
 		PyErr_Print();
 		return 0;
 	}
@@ -710,7 +710,7 @@
 				PyErr_Print();
 				return 0;
 			}
-			value = PyObject_Call(func, empty_array, ip_dict);
+			value = PyObject_Call(func, empty_tuple, ip_dict);
 			Py_DECREF(func);
 			Py_DECREF(ip_dict);
 			break;
@@ -780,7 +780,7 @@
 		return 0;
 	}
 
-	result = PyObject_Call(python_ref, empty_array, fkw);
+	result = PyObject_Call(python_ref, empty_tuple, fkw);
 	Py_DECREF(fkw);
 	if (result == NULL) {
 		PyErr_Print();