#define PY_SSIZE_T_CLEAN
#include <Python.h>


static PyObject* single_arg(PyObject *args)
{
	if (!PyArg_ParseTuple(args, "O", &args)) {
		return NULL;
	}

	return args;
}


static int sequence_to_array(PyObject *seq, double *array, Py_ssize_t size)
{
	if (seq == NULL || PySequence_Size(seq) != size) {
		return 0;
	}

	while (size--) {
		array[size] = PyFloat_AsDouble(PySequence_GetItem(seq, size));
	}

	return 1;
}

static PyObject *func(PyObject *self, PyObject *args)
{
	double array[3];

	if (!sequence_to_array(single_arg(args), array, 3)) {
		return NULL;
	}

	Py_RETURN_NONE;
}