Esempio n. 1
0
PyObject* JSONFileToObj(PyObject* self, PyObject *args, PyObject *kwargs)
{
  PyObject *read;
  PyObject *string;
  PyObject *result;
  PyObject *file = NULL;
  PyObject *argtuple;

  if (!PyArg_ParseTuple (args, "O", &file))
  {
    return NULL;
  }

  if (!PyObject_HasAttrString (file, "read"))
  {
    PyErr_Format (PyExc_TypeError, "expected file");
    return NULL;
  }

  read = PyObject_GetAttrString (file, "read");

  if (!PyCallable_Check (read)) {
    Py_XDECREF(read);
    PyErr_Format (PyExc_TypeError, "expected file");
    return NULL;
  }

  string = PyObject_CallObject (read, NULL);
  Py_XDECREF(read);

  if (string == NULL)
  {
    return NULL;
  }

  argtuple = PyTuple_Pack(1, string);

  result = JSONToObj (self, argtuple, kwargs);

  Py_XDECREF(argtuple);
  Py_XDECREF(string);

  if (result == NULL) {
    return NULL;
  }

  return result;
}
Esempio n. 2
0
PyObject* JSONFileToObj(PyObject* self, PyObject *file)
{
    PyObject *read;
    PyObject *string;
    PyObject *result;

    if (!PyObject_HasAttrString (file, "read"))
    {
        PyErr_Format (PyExc_TypeError, "expected file");
        return NULL;
    }

    read = PyObject_GetAttrString (file, "read");

    if (!PyCallable_Check (read)) {
        Py_XDECREF(read);
        PyErr_Format (PyExc_TypeError, "expected file");
        return NULL;
    }

    string = PyObject_CallObject (read, NULL);
    Py_XDECREF(read);

    if (string == NULL)
    {
        return NULL;
    }

    result = JSONToObj (self, string);
    Py_XDECREF(string);

    if (result == NULL) {
        return NULL;
    }

    return result;
}