| 
									
										
										
										
											2015-04-16 11:19:43 +03:00
										 |  |  | /*[clinic input]
 | 
					
						
							|  |  |  | preserve | 
					
						
							|  |  |  | [clinic start generated code]*/ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | PyDoc_STRVAR(_io_FileIO_close__doc__, | 
					
						
							|  |  |  | "close($self, /)\n" | 
					
						
							|  |  |  | "--\n" | 
					
						
							|  |  |  | "\n" | 
					
						
							|  |  |  | "Close the file.\n" | 
					
						
							|  |  |  | "\n" | 
					
						
							|  |  |  | "A closed file cannot be used for further I/O operations.  close() may be\n" | 
					
						
							|  |  |  | "called more than once without error."); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #define _IO_FILEIO_CLOSE_METHODDEF    \
 | 
					
						
							|  |  |  |     {"close", (PyCFunction)_io_FileIO_close, METH_NOARGS, _io_FileIO_close__doc__}, | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | static PyObject * | 
					
						
							|  |  |  | _io_FileIO_close_impl(fileio *self); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | static PyObject * | 
					
						
							|  |  |  | _io_FileIO_close(fileio *self, PyObject *Py_UNUSED(ignored)) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     return _io_FileIO_close_impl(self); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | PyDoc_STRVAR(_io_FileIO___init____doc__, | 
					
						
							|  |  |  | "FileIO(file, mode=\'r\', closefd=True, opener=None)\n" | 
					
						
							|  |  |  | "--\n" | 
					
						
							|  |  |  | "\n" | 
					
						
							|  |  |  | "Open a file.\n" | 
					
						
							|  |  |  | "\n" | 
					
						
							|  |  |  | "The mode can be \'r\' (default), \'w\', \'x\' or \'a\' for reading,\n" | 
					
						
							|  |  |  | "writing, exclusive creation or appending.  The file will be created if it\n" | 
					
						
							|  |  |  | "doesn\'t exist when opened for writing or appending; it will be truncated\n" | 
					
						
							|  |  |  | "when opened for writing.  A FileExistsError will be raised if it already\n" | 
					
						
							|  |  |  | "exists when opened for creating. Opening a file for creating implies\n" | 
					
						
							|  |  |  | "writing so this mode behaves in a similar way to \'w\'.Add a \'+\' to the mode\n" | 
					
						
							|  |  |  | "to allow simultaneous reading and writing. A custom opener can be used by\n" | 
					
						
							|  |  |  | "passing a callable as *opener*. The underlying file descriptor for the file\n" | 
					
						
							|  |  |  | "object is then obtained by calling opener with (*name*, *flags*).\n" | 
					
						
							|  |  |  | "*opener* must return an open file descriptor (passing os.open as *opener*\n" | 
					
						
							|  |  |  | "results in functionality similar to passing None)."); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | static int | 
					
						
							|  |  |  | _io_FileIO___init___impl(fileio *self, PyObject *nameobj, const char *mode, | 
					
						
							|  |  |  |                          int closefd, PyObject *opener); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | static int | 
					
						
							|  |  |  | _io_FileIO___init__(PyObject *self, PyObject *args, PyObject *kwargs) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     int return_value = -1; | 
					
						
							| 
									
										
										
										
											2016-08-14 10:52:18 +03:00
										 |  |  |     static const char * const _keywords[] = {"file", "mode", "closefd", "opener", NULL}; | 
					
						
							| 
									
										
										
										
											2019-03-14 10:32:22 +02:00
										 |  |  |     static _PyArg_Parser _parser = {NULL, _keywords, "FileIO", 0}; | 
					
						
							|  |  |  |     PyObject *argsbuf[4]; | 
					
						
							|  |  |  |     PyObject * const *fastargs; | 
					
						
							|  |  |  |     Py_ssize_t nargs = PyTuple_GET_SIZE(args); | 
					
						
							|  |  |  |     Py_ssize_t noptargs = nargs + (kwargs ? PyDict_GET_SIZE(kwargs) : 0) - 1; | 
					
						
							| 
									
										
										
										
											2015-04-16 11:19:43 +03:00
										 |  |  |     PyObject *nameobj; | 
					
						
							|  |  |  |     const char *mode = "r"; | 
					
						
							|  |  |  |     int closefd = 1; | 
					
						
							|  |  |  |     PyObject *opener = Py_None; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-03-14 10:32:22 +02:00
										 |  |  |     fastargs = _PyArg_UnpackKeywords(_PyTuple_CAST(args)->ob_item, nargs, kwargs, NULL, &_parser, 1, 4, 0, argsbuf); | 
					
						
							|  |  |  |     if (!fastargs) { | 
					
						
							| 
									
										
										
										
											2015-04-16 11:19:43 +03:00
										 |  |  |         goto exit; | 
					
						
							| 
									
										
										
										
											2016-06-09 16:16:06 +03:00
										 |  |  |     } | 
					
						
							| 
									
										
										
										
											2019-03-14 10:32:22 +02:00
										 |  |  |     nameobj = fastargs[0]; | 
					
						
							|  |  |  |     if (!noptargs) { | 
					
						
							|  |  |  |         goto skip_optional_pos; | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  |     if (fastargs[1]) { | 
					
						
							|  |  |  |         if (!PyUnicode_Check(fastargs[1])) { | 
					
						
							| 
									
										
										
										
											2019-08-29 16:49:08 +02:00
										 |  |  |             _PyArg_BadArgument("FileIO", "argument 'mode'", "str", fastargs[1]); | 
					
						
							| 
									
										
										
										
											2019-03-14 10:32:22 +02:00
										 |  |  |             goto exit; | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  |         Py_ssize_t mode_length; | 
					
						
							|  |  |  |         mode = PyUnicode_AsUTF8AndSize(fastargs[1], &mode_length); | 
					
						
							|  |  |  |         if (mode == NULL) { | 
					
						
							|  |  |  |             goto exit; | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  |         if (strlen(mode) != (size_t)mode_length) { | 
					
						
							|  |  |  |             PyErr_SetString(PyExc_ValueError, "embedded null character"); | 
					
						
							|  |  |  |             goto exit; | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  |         if (!--noptargs) { | 
					
						
							|  |  |  |             goto skip_optional_pos; | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  |     if (fastargs[2]) { | 
					
						
							|  |  |  |         closefd = _PyLong_AsInt(fastargs[2]); | 
					
						
							|  |  |  |         if (closefd == -1 && PyErr_Occurred()) { | 
					
						
							|  |  |  |             goto exit; | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  |         if (!--noptargs) { | 
					
						
							|  |  |  |             goto skip_optional_pos; | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  |     opener = fastargs[3]; | 
					
						
							|  |  |  | skip_optional_pos: | 
					
						
							| 
									
										
										
										
											2015-04-16 11:19:43 +03:00
										 |  |  |     return_value = _io_FileIO___init___impl((fileio *)self, nameobj, mode, closefd, opener); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | exit: | 
					
						
							|  |  |  |     return return_value; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | PyDoc_STRVAR(_io_FileIO_fileno__doc__, | 
					
						
							|  |  |  | "fileno($self, /)\n" | 
					
						
							|  |  |  | "--\n" | 
					
						
							|  |  |  | "\n" | 
					
						
							|  |  |  | "Return the underlying file descriptor (an integer)."); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #define _IO_FILEIO_FILENO_METHODDEF    \
 | 
					
						
							|  |  |  |     {"fileno", (PyCFunction)_io_FileIO_fileno, METH_NOARGS, _io_FileIO_fileno__doc__}, | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | static PyObject * | 
					
						
							|  |  |  | _io_FileIO_fileno_impl(fileio *self); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | static PyObject * | 
					
						
							|  |  |  | _io_FileIO_fileno(fileio *self, PyObject *Py_UNUSED(ignored)) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     return _io_FileIO_fileno_impl(self); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | PyDoc_STRVAR(_io_FileIO_readable__doc__, | 
					
						
							|  |  |  | "readable($self, /)\n" | 
					
						
							|  |  |  | "--\n" | 
					
						
							|  |  |  | "\n" | 
					
						
							|  |  |  | "True if file was opened in a read mode."); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #define _IO_FILEIO_READABLE_METHODDEF    \
 | 
					
						
							|  |  |  |     {"readable", (PyCFunction)_io_FileIO_readable, METH_NOARGS, _io_FileIO_readable__doc__}, | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | static PyObject * | 
					
						
							|  |  |  | _io_FileIO_readable_impl(fileio *self); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | static PyObject * | 
					
						
							|  |  |  | _io_FileIO_readable(fileio *self, PyObject *Py_UNUSED(ignored)) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     return _io_FileIO_readable_impl(self); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | PyDoc_STRVAR(_io_FileIO_writable__doc__, | 
					
						
							|  |  |  | "writable($self, /)\n" | 
					
						
							|  |  |  | "--\n" | 
					
						
							|  |  |  | "\n" | 
					
						
							|  |  |  | "True if file was opened in a write mode."); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #define _IO_FILEIO_WRITABLE_METHODDEF    \
 | 
					
						
							|  |  |  |     {"writable", (PyCFunction)_io_FileIO_writable, METH_NOARGS, _io_FileIO_writable__doc__}, | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | static PyObject * | 
					
						
							|  |  |  | _io_FileIO_writable_impl(fileio *self); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | static PyObject * | 
					
						
							|  |  |  | _io_FileIO_writable(fileio *self, PyObject *Py_UNUSED(ignored)) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     return _io_FileIO_writable_impl(self); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | PyDoc_STRVAR(_io_FileIO_seekable__doc__, | 
					
						
							|  |  |  | "seekable($self, /)\n" | 
					
						
							|  |  |  | "--\n" | 
					
						
							|  |  |  | "\n" | 
					
						
							|  |  |  | "True if file supports random-access."); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #define _IO_FILEIO_SEEKABLE_METHODDEF    \
 | 
					
						
							|  |  |  |     {"seekable", (PyCFunction)_io_FileIO_seekable, METH_NOARGS, _io_FileIO_seekable__doc__}, | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | static PyObject * | 
					
						
							|  |  |  | _io_FileIO_seekable_impl(fileio *self); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | static PyObject * | 
					
						
							|  |  |  | _io_FileIO_seekable(fileio *self, PyObject *Py_UNUSED(ignored)) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     return _io_FileIO_seekable_impl(self); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | PyDoc_STRVAR(_io_FileIO_readinto__doc__, | 
					
						
							|  |  |  | "readinto($self, buffer, /)\n" | 
					
						
							|  |  |  | "--\n" | 
					
						
							|  |  |  | "\n" | 
					
						
							|  |  |  | "Same as RawIOBase.readinto()."); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #define _IO_FILEIO_READINTO_METHODDEF    \
 | 
					
						
							|  |  |  |     {"readinto", (PyCFunction)_io_FileIO_readinto, METH_O, _io_FileIO_readinto__doc__}, | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | static PyObject * | 
					
						
							|  |  |  | _io_FileIO_readinto_impl(fileio *self, Py_buffer *buffer); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | static PyObject * | 
					
						
							|  |  |  | _io_FileIO_readinto(fileio *self, PyObject *arg) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     PyObject *return_value = NULL; | 
					
						
							|  |  |  |     Py_buffer buffer = {NULL, NULL}; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-12-25 13:23:47 +02:00
										 |  |  |     if (PyObject_GetBuffer(arg, &buffer, PyBUF_WRITABLE) < 0) { | 
					
						
							|  |  |  |         PyErr_Clear(); | 
					
						
							| 
									
										
										
										
											2019-08-29 16:49:08 +02:00
										 |  |  |         _PyArg_BadArgument("readinto", "argument", "read-write bytes-like object", arg); | 
					
						
							| 
									
										
										
										
											2018-12-25 13:23:47 +02:00
										 |  |  |         goto exit; | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  |     if (!PyBuffer_IsContiguous(&buffer, 'C')) { | 
					
						
							| 
									
										
										
										
											2019-08-29 16:49:08 +02:00
										 |  |  |         _PyArg_BadArgument("readinto", "argument", "contiguous buffer", arg); | 
					
						
							| 
									
										
										
										
											2015-04-16 11:19:43 +03:00
										 |  |  |         goto exit; | 
					
						
							| 
									
										
										
										
											2016-06-09 16:16:06 +03:00
										 |  |  |     } | 
					
						
							| 
									
										
										
										
											2015-04-16 11:19:43 +03:00
										 |  |  |     return_value = _io_FileIO_readinto_impl(self, &buffer); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | exit: | 
					
						
							|  |  |  |     /* Cleanup for buffer */ | 
					
						
							| 
									
										
										
										
											2016-06-09 16:16:06 +03:00
										 |  |  |     if (buffer.obj) { | 
					
						
							| 
									
										
										
										
											2015-04-16 11:19:43 +03:00
										 |  |  |        PyBuffer_Release(&buffer); | 
					
						
							| 
									
										
										
										
											2016-06-09 16:16:06 +03:00
										 |  |  |     } | 
					
						
							| 
									
										
										
										
											2015-04-16 11:19:43 +03:00
										 |  |  | 
 | 
					
						
							|  |  |  |     return return_value; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | PyDoc_STRVAR(_io_FileIO_readall__doc__, | 
					
						
							|  |  |  | "readall($self, /)\n" | 
					
						
							|  |  |  | "--\n" | 
					
						
							|  |  |  | "\n" | 
					
						
							|  |  |  | "Read all data from the file, returned as bytes.\n" | 
					
						
							|  |  |  | "\n" | 
					
						
							|  |  |  | "In non-blocking mode, returns as much as is immediately available,\n" | 
					
						
							|  |  |  | "or None if no data is available.  Return an empty bytes object at EOF."); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #define _IO_FILEIO_READALL_METHODDEF    \
 | 
					
						
							|  |  |  |     {"readall", (PyCFunction)_io_FileIO_readall, METH_NOARGS, _io_FileIO_readall__doc__}, | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | static PyObject * | 
					
						
							|  |  |  | _io_FileIO_readall_impl(fileio *self); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | static PyObject * | 
					
						
							|  |  |  | _io_FileIO_readall(fileio *self, PyObject *Py_UNUSED(ignored)) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     return _io_FileIO_readall_impl(self); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | PyDoc_STRVAR(_io_FileIO_read__doc__, | 
					
						
							|  |  |  | "read($self, size=-1, /)\n" | 
					
						
							|  |  |  | "--\n" | 
					
						
							|  |  |  | "\n" | 
					
						
							|  |  |  | "Read at most size bytes, returned as bytes.\n" | 
					
						
							|  |  |  | "\n" | 
					
						
							|  |  |  | "Only makes one system call, so less data may be returned than requested.\n" | 
					
						
							|  |  |  | "In non-blocking mode, returns None if no data is available.\n" | 
					
						
							|  |  |  | "Return an empty bytes object at EOF."); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #define _IO_FILEIO_READ_METHODDEF    \
 | 
					
						
							| 
									
										
										
										
											2022-05-03 20:25:41 +02:00
										 |  |  |     {"read", _PyCFunction_CAST(_io_FileIO_read), METH_FASTCALL, _io_FileIO_read__doc__}, | 
					
						
							| 
									
										
										
										
											2015-04-16 11:19:43 +03:00
										 |  |  | 
 | 
					
						
							|  |  |  | static PyObject * | 
					
						
							|  |  |  | _io_FileIO_read_impl(fileio *self, Py_ssize_t size); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | static PyObject * | 
					
						
							| 
									
										
										
										
											2017-12-15 13:11:11 +02:00
										 |  |  | _io_FileIO_read(fileio *self, PyObject *const *args, Py_ssize_t nargs) | 
					
						
							| 
									
										
										
										
											2015-04-16 11:19:43 +03:00
										 |  |  | { | 
					
						
							|  |  |  |     PyObject *return_value = NULL; | 
					
						
							|  |  |  |     Py_ssize_t size = -1; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-01-11 16:01:14 +02:00
										 |  |  |     if (!_PyArg_CheckPositional("read", nargs, 0, 1)) { | 
					
						
							| 
									
										
										
										
											2017-01-17 01:35:17 +01:00
										 |  |  |         goto exit; | 
					
						
							|  |  |  |     } | 
					
						
							| 
									
										
										
										
											2019-01-11 16:01:14 +02:00
										 |  |  |     if (nargs < 1) { | 
					
						
							|  |  |  |         goto skip_optional; | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  |     if (!_Py_convert_optional_to_ssize_t(args[0], &size)) { | 
					
						
							|  |  |  |         goto exit; | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | skip_optional: | 
					
						
							| 
									
										
										
										
											2015-04-16 11:19:43 +03:00
										 |  |  |     return_value = _io_FileIO_read_impl(self, size); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | exit: | 
					
						
							|  |  |  |     return return_value; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | PyDoc_STRVAR(_io_FileIO_write__doc__, | 
					
						
							|  |  |  | "write($self, b, /)\n" | 
					
						
							|  |  |  | "--\n" | 
					
						
							|  |  |  | "\n" | 
					
						
							| 
									
										
										
										
											2016-05-28 00:41:57 +00:00
										 |  |  | "Write buffer b to file, return number of bytes written.\n" | 
					
						
							| 
									
										
										
										
											2015-04-16 11:19:43 +03:00
										 |  |  | "\n" | 
					
						
							|  |  |  | "Only makes one system call, so not all of the data may be written.\n" | 
					
						
							|  |  |  | "The number of bytes actually written is returned.  In non-blocking mode,\n" | 
					
						
							|  |  |  | "returns None if the write would block."); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #define _IO_FILEIO_WRITE_METHODDEF    \
 | 
					
						
							|  |  |  |     {"write", (PyCFunction)_io_FileIO_write, METH_O, _io_FileIO_write__doc__}, | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | static PyObject * | 
					
						
							|  |  |  | _io_FileIO_write_impl(fileio *self, Py_buffer *b); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | static PyObject * | 
					
						
							|  |  |  | _io_FileIO_write(fileio *self, PyObject *arg) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     PyObject *return_value = NULL; | 
					
						
							|  |  |  |     Py_buffer b = {NULL, NULL}; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-12-25 13:23:47 +02:00
										 |  |  |     if (PyObject_GetBuffer(arg, &b, PyBUF_SIMPLE) != 0) { | 
					
						
							|  |  |  |         goto exit; | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  |     if (!PyBuffer_IsContiguous(&b, 'C')) { | 
					
						
							| 
									
										
										
										
											2019-08-29 16:49:08 +02:00
										 |  |  |         _PyArg_BadArgument("write", "argument", "contiguous buffer", arg); | 
					
						
							| 
									
										
										
										
											2015-04-16 11:19:43 +03:00
										 |  |  |         goto exit; | 
					
						
							| 
									
										
										
										
											2016-06-09 16:16:06 +03:00
										 |  |  |     } | 
					
						
							| 
									
										
										
										
											2015-04-16 11:19:43 +03:00
										 |  |  |     return_value = _io_FileIO_write_impl(self, &b); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | exit: | 
					
						
							|  |  |  |     /* Cleanup for b */ | 
					
						
							| 
									
										
										
										
											2016-06-09 16:16:06 +03:00
										 |  |  |     if (b.obj) { | 
					
						
							| 
									
										
										
										
											2015-04-16 11:19:43 +03:00
										 |  |  |        PyBuffer_Release(&b); | 
					
						
							| 
									
										
										
										
											2016-06-09 16:16:06 +03:00
										 |  |  |     } | 
					
						
							| 
									
										
										
										
											2015-04-16 11:19:43 +03:00
										 |  |  | 
 | 
					
						
							|  |  |  |     return return_value; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | PyDoc_STRVAR(_io_FileIO_seek__doc__, | 
					
						
							|  |  |  | "seek($self, pos, whence=0, /)\n" | 
					
						
							|  |  |  | "--\n" | 
					
						
							|  |  |  | "\n" | 
					
						
							|  |  |  | "Move to new file position and return the file position.\n" | 
					
						
							|  |  |  | "\n" | 
					
						
							|  |  |  | "Argument offset is a byte count.  Optional argument whence defaults to\n" | 
					
						
							|  |  |  | "SEEK_SET or 0 (offset from start of file, offset should be >= 0); other values\n" | 
					
						
							|  |  |  | "are SEEK_CUR or 1 (move relative to current position, positive or negative),\n" | 
					
						
							|  |  |  | "and SEEK_END or 2 (move relative to end of file, usually negative, although\n" | 
					
						
							|  |  |  | "many platforms allow seeking beyond the end of a file).\n" | 
					
						
							|  |  |  | "\n" | 
					
						
							|  |  |  | "Note that not all file objects are seekable."); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #define _IO_FILEIO_SEEK_METHODDEF    \
 | 
					
						
							| 
									
										
										
										
											2022-05-03 20:25:41 +02:00
										 |  |  |     {"seek", _PyCFunction_CAST(_io_FileIO_seek), METH_FASTCALL, _io_FileIO_seek__doc__}, | 
					
						
							| 
									
										
										
										
											2015-04-16 11:19:43 +03:00
										 |  |  | 
 | 
					
						
							|  |  |  | static PyObject * | 
					
						
							|  |  |  | _io_FileIO_seek_impl(fileio *self, PyObject *pos, int whence); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | static PyObject * | 
					
						
							| 
									
										
										
										
											2017-12-15 13:11:11 +02:00
										 |  |  | _io_FileIO_seek(fileio *self, PyObject *const *args, Py_ssize_t nargs) | 
					
						
							| 
									
										
										
										
											2015-04-16 11:19:43 +03:00
										 |  |  | { | 
					
						
							|  |  |  |     PyObject *return_value = NULL; | 
					
						
							|  |  |  |     PyObject *pos; | 
					
						
							|  |  |  |     int whence = 0; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-01-11 16:01:14 +02:00
										 |  |  |     if (!_PyArg_CheckPositional("seek", nargs, 1, 2)) { | 
					
						
							|  |  |  |         goto exit; | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  |     pos = args[0]; | 
					
						
							|  |  |  |     if (nargs < 2) { | 
					
						
							|  |  |  |         goto skip_optional; | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  |     whence = _PyLong_AsInt(args[1]); | 
					
						
							|  |  |  |     if (whence == -1 && PyErr_Occurred()) { | 
					
						
							| 
									
										
										
										
											2017-01-17 01:35:17 +01:00
										 |  |  |         goto exit; | 
					
						
							|  |  |  |     } | 
					
						
							| 
									
										
										
										
											2019-01-11 16:01:14 +02:00
										 |  |  | skip_optional: | 
					
						
							| 
									
										
										
										
											2015-04-16 11:19:43 +03:00
										 |  |  |     return_value = _io_FileIO_seek_impl(self, pos, whence); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | exit: | 
					
						
							|  |  |  |     return return_value; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | PyDoc_STRVAR(_io_FileIO_tell__doc__, | 
					
						
							|  |  |  | "tell($self, /)\n" | 
					
						
							|  |  |  | "--\n" | 
					
						
							|  |  |  | "\n" | 
					
						
							|  |  |  | "Current file position.\n" | 
					
						
							|  |  |  | "\n" | 
					
						
							|  |  |  | "Can raise OSError for non seekable files."); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #define _IO_FILEIO_TELL_METHODDEF    \
 | 
					
						
							|  |  |  |     {"tell", (PyCFunction)_io_FileIO_tell, METH_NOARGS, _io_FileIO_tell__doc__}, | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | static PyObject * | 
					
						
							|  |  |  | _io_FileIO_tell_impl(fileio *self); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | static PyObject * | 
					
						
							|  |  |  | _io_FileIO_tell(fileio *self, PyObject *Py_UNUSED(ignored)) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     return _io_FileIO_tell_impl(self); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #if defined(HAVE_FTRUNCATE)
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | PyDoc_STRVAR(_io_FileIO_truncate__doc__, | 
					
						
							|  |  |  | "truncate($self, size=None, /)\n" | 
					
						
							|  |  |  | "--\n" | 
					
						
							|  |  |  | "\n" | 
					
						
							|  |  |  | "Truncate the file to at most size bytes and return the truncated size.\n" | 
					
						
							|  |  |  | "\n" | 
					
						
							|  |  |  | "Size defaults to the current file position, as returned by tell().\n" | 
					
						
							|  |  |  | "The current file position is changed to the value of size."); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #define _IO_FILEIO_TRUNCATE_METHODDEF    \
 | 
					
						
							| 
									
										
										
										
											2022-05-03 20:25:41 +02:00
										 |  |  |     {"truncate", _PyCFunction_CAST(_io_FileIO_truncate), METH_FASTCALL, _io_FileIO_truncate__doc__}, | 
					
						
							| 
									
										
										
										
											2015-04-16 11:19:43 +03:00
										 |  |  | 
 | 
					
						
							|  |  |  | static PyObject * | 
					
						
							|  |  |  | _io_FileIO_truncate_impl(fileio *self, PyObject *posobj); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | static PyObject * | 
					
						
							| 
									
										
										
										
											2017-12-15 13:11:11 +02:00
										 |  |  | _io_FileIO_truncate(fileio *self, PyObject *const *args, Py_ssize_t nargs) | 
					
						
							| 
									
										
										
										
											2015-04-16 11:19:43 +03:00
										 |  |  | { | 
					
						
							|  |  |  |     PyObject *return_value = NULL; | 
					
						
							| 
									
										
										
										
											2019-09-14 12:24:05 +03:00
										 |  |  |     PyObject *posobj = Py_None; | 
					
						
							| 
									
										
										
										
											2015-04-16 11:19:43 +03:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-01-11 18:01:42 +02:00
										 |  |  |     if (!_PyArg_CheckPositional("truncate", nargs, 0, 1)) { | 
					
						
							| 
									
										
										
										
											2017-01-17 02:21:47 +01:00
										 |  |  |         goto exit; | 
					
						
							|  |  |  |     } | 
					
						
							| 
									
										
										
										
											2019-01-11 18:01:42 +02:00
										 |  |  |     if (nargs < 1) { | 
					
						
							|  |  |  |         goto skip_optional; | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  |     posobj = args[0]; | 
					
						
							|  |  |  | skip_optional: | 
					
						
							| 
									
										
										
										
											2015-04-16 11:19:43 +03:00
										 |  |  |     return_value = _io_FileIO_truncate_impl(self, posobj); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | exit: | 
					
						
							|  |  |  |     return return_value; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #endif /* defined(HAVE_FTRUNCATE) */
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | PyDoc_STRVAR(_io_FileIO_isatty__doc__, | 
					
						
							|  |  |  | "isatty($self, /)\n" | 
					
						
							|  |  |  | "--\n" | 
					
						
							|  |  |  | "\n" | 
					
						
							|  |  |  | "True if the file is connected to a TTY device."); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #define _IO_FILEIO_ISATTY_METHODDEF    \
 | 
					
						
							|  |  |  |     {"isatty", (PyCFunction)_io_FileIO_isatty, METH_NOARGS, _io_FileIO_isatty__doc__}, | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | static PyObject * | 
					
						
							|  |  |  | _io_FileIO_isatty_impl(fileio *self); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | static PyObject * | 
					
						
							|  |  |  | _io_FileIO_isatty(fileio *self, PyObject *Py_UNUSED(ignored)) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     return _io_FileIO_isatty_impl(self); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #ifndef _IO_FILEIO_TRUNCATE_METHODDEF
 | 
					
						
							|  |  |  |     #define _IO_FILEIO_TRUNCATE_METHODDEF
 | 
					
						
							|  |  |  | #endif /* !defined(_IO_FILEIO_TRUNCATE_METHODDEF) */
 | 
					
						
							| 
									
										
										
										
											2022-05-03 20:25:41 +02:00
										 |  |  | /*[clinic end generated code: output=fdcf0f9277d44415 input=a9049054013a1b77]*/ |