# 8.5 Constructors

PyObject* `PyFile_FromString`(char *file_name, char *mode)
  On success, returns a new file object that is opened on the file given by `file_name`, with a file mode given by `mode`, where `mode` has the same semantics as the standard C routine, fopen. On failure, return -1.

PyObject* `PyFile_FromFile`(FILE *fp, char *file_name, char *mode, int close_on_del)
  Return a new file object for an already opened standard C file pointer, `fp`. A file name, `file_name`, and open mode, `mode`, must be provided as well as a flag, `close_on_del`, that indicates whether the file is to be closed when the file object is destroyed. On failure, return -1.

PyObject* `PyFloat_FromDouble`(double v)
  Returns a new float object with the value `v` on success, and NULL on failure.

PyObject* `PyInt_FromLong`(long v)
  Returns a new int object with the value `v` on success, and NULL on failure.

PyObject* `PyList_New`(int l)
  Returns a new list of length `l` on success, and NULL on failure.

PyObject* `PyLong_FromLong`(long v)
  Returns a new long object with the value `v` on success, and NULL on failure.

PyObject* `PyLong_FromDouble`(double v)
  Returns a new long object with the value `v` on success, and NULL on failure.

PyObject* `PyDict_New`()
  Returns a new empty dictionary on success, and NULL on failure.

PyObject* `PyString_FromString`(char *v)
  Returns a new string object with the value `v` on success, and NULL on failure.

PyObject* `PyString_FromStringAndSize`(char *v, int l)
  Returns a new string object with the value `v` and length `l` on success, and NULL on failure.

PyObject* `PyTuple_New`(int l)
  Returns a new tuple of length `l` on success, and NULL on failure.