(root)/
Python-3.11.7/
Modules/
_io/
clinic/
winconsoleio.c.h
       1  /*[clinic input]
       2  preserve
       3  [clinic start generated code]*/
       4  
       5  #if defined(MS_WINDOWS)
       6  
       7  PyDoc_STRVAR(_io__WindowsConsoleIO_close__doc__,
       8  "close($self, /)\n"
       9  "--\n"
      10  "\n"
      11  "Close the console object.\n"
      12  "\n"
      13  "A closed console object cannot be used for further I/O operations.\n"
      14  "close() may be called more than once without error.");
      15  
      16  #define _IO__WINDOWSCONSOLEIO_CLOSE_METHODDEF    \
      17      {"close", (PyCFunction)_io__WindowsConsoleIO_close, METH_NOARGS, _io__WindowsConsoleIO_close__doc__},
      18  
      19  static PyObject *
      20  _io__WindowsConsoleIO_close_impl(winconsoleio *self);
      21  
      22  static PyObject *
      23  _io__WindowsConsoleIO_close(winconsoleio *self, PyObject *Py_UNUSED(ignored))
      24  {
      25      return _io__WindowsConsoleIO_close_impl(self);
      26  }
      27  
      28  #endif /* defined(MS_WINDOWS) */
      29  
      30  #if defined(MS_WINDOWS)
      31  
      32  PyDoc_STRVAR(_io__WindowsConsoleIO___init____doc__,
      33  "_WindowsConsoleIO(file, mode=\'r\', closefd=True, opener=None)\n"
      34  "--\n"
      35  "\n"
      36  "Open a console buffer by file descriptor.\n"
      37  "\n"
      38  "The mode can be \'rb\' (default), or \'wb\' for reading or writing bytes. All\n"
      39  "other mode characters will be ignored. Mode \'b\' will be assumed if it is\n"
      40  "omitted. The *opener* parameter is always ignored.");
      41  
      42  static int
      43  _io__WindowsConsoleIO___init___impl(winconsoleio *self, PyObject *nameobj,
      44                                      const char *mode, int closefd,
      45                                      PyObject *opener);
      46  
      47  static int
      48  _io__WindowsConsoleIO___init__(PyObject *self, PyObject *args, PyObject *kwargs)
      49  {
      50      int return_value = -1;
      51      static const char * const _keywords[] = {"file", "mode", "closefd", "opener", NULL};
      52      static _PyArg_Parser _parser = {NULL, _keywords, "_WindowsConsoleIO", 0};
      53      PyObject *argsbuf[4];
      54      PyObject * const *fastargs;
      55      Py_ssize_t nargs = PyTuple_GET_SIZE(args);
      56      Py_ssize_t noptargs = nargs + (kwargs ? PyDict_GET_SIZE(kwargs) : 0) - 1;
      57      PyObject *nameobj;
      58      const char *mode = "r";
      59      int closefd = 1;
      60      PyObject *opener = Py_None;
      61  
      62      fastargs = _PyArg_UnpackKeywords(_PyTuple_CAST(args)->ob_item, nargs, kwargs, NULL, &_parser, 1, 4, 0, argsbuf);
      63      if (!fastargs) {
      64          goto exit;
      65      }
      66      nameobj = fastargs[0];
      67      if (!noptargs) {
      68          goto skip_optional_pos;
      69      }
      70      if (fastargs[1]) {
      71          if (!PyUnicode_Check(fastargs[1])) {
      72              _PyArg_BadArgument("_WindowsConsoleIO", "argument 'mode'", "str", fastargs[1]);
      73              goto exit;
      74          }
      75          Py_ssize_t mode_length;
      76          mode = PyUnicode_AsUTF8AndSize(fastargs[1], &mode_length);
      77          if (mode == NULL) {
      78              goto exit;
      79          }
      80          if (strlen(mode) != (size_t)mode_length) {
      81              PyErr_SetString(PyExc_ValueError, "embedded null character");
      82              goto exit;
      83          }
      84          if (!--noptargs) {
      85              goto skip_optional_pos;
      86          }
      87      }
      88      if (fastargs[2]) {
      89          closefd = _PyLong_AsInt(fastargs[2]);
      90          if (closefd == -1 && PyErr_Occurred()) {
      91              goto exit;
      92          }
      93          if (!--noptargs) {
      94              goto skip_optional_pos;
      95          }
      96      }
      97      opener = fastargs[3];
      98  skip_optional_pos:
      99      return_value = _io__WindowsConsoleIO___init___impl((winconsoleio *)self, nameobj, mode, closefd, opener);
     100  
     101  exit:
     102      return return_value;
     103  }
     104  
     105  #endif /* defined(MS_WINDOWS) */
     106  
     107  #if defined(MS_WINDOWS)
     108  
     109  PyDoc_STRVAR(_io__WindowsConsoleIO_fileno__doc__,
     110  "fileno($self, /)\n"
     111  "--\n"
     112  "\n"
     113  "Return the underlying file descriptor (an integer).");
     114  
     115  #define _IO__WINDOWSCONSOLEIO_FILENO_METHODDEF    \
     116      {"fileno", (PyCFunction)_io__WindowsConsoleIO_fileno, METH_NOARGS, _io__WindowsConsoleIO_fileno__doc__},
     117  
     118  static PyObject *
     119  _io__WindowsConsoleIO_fileno_impl(winconsoleio *self);
     120  
     121  static PyObject *
     122  _io__WindowsConsoleIO_fileno(winconsoleio *self, PyObject *Py_UNUSED(ignored))
     123  {
     124      return _io__WindowsConsoleIO_fileno_impl(self);
     125  }
     126  
     127  #endif /* defined(MS_WINDOWS) */
     128  
     129  #if defined(MS_WINDOWS)
     130  
     131  PyDoc_STRVAR(_io__WindowsConsoleIO_readable__doc__,
     132  "readable($self, /)\n"
     133  "--\n"
     134  "\n"
     135  "True if console is an input buffer.");
     136  
     137  #define _IO__WINDOWSCONSOLEIO_READABLE_METHODDEF    \
     138      {"readable", (PyCFunction)_io__WindowsConsoleIO_readable, METH_NOARGS, _io__WindowsConsoleIO_readable__doc__},
     139  
     140  static PyObject *
     141  _io__WindowsConsoleIO_readable_impl(winconsoleio *self);
     142  
     143  static PyObject *
     144  _io__WindowsConsoleIO_readable(winconsoleio *self, PyObject *Py_UNUSED(ignored))
     145  {
     146      return _io__WindowsConsoleIO_readable_impl(self);
     147  }
     148  
     149  #endif /* defined(MS_WINDOWS) */
     150  
     151  #if defined(MS_WINDOWS)
     152  
     153  PyDoc_STRVAR(_io__WindowsConsoleIO_writable__doc__,
     154  "writable($self, /)\n"
     155  "--\n"
     156  "\n"
     157  "True if console is an output buffer.");
     158  
     159  #define _IO__WINDOWSCONSOLEIO_WRITABLE_METHODDEF    \
     160      {"writable", (PyCFunction)_io__WindowsConsoleIO_writable, METH_NOARGS, _io__WindowsConsoleIO_writable__doc__},
     161  
     162  static PyObject *
     163  _io__WindowsConsoleIO_writable_impl(winconsoleio *self);
     164  
     165  static PyObject *
     166  _io__WindowsConsoleIO_writable(winconsoleio *self, PyObject *Py_UNUSED(ignored))
     167  {
     168      return _io__WindowsConsoleIO_writable_impl(self);
     169  }
     170  
     171  #endif /* defined(MS_WINDOWS) */
     172  
     173  #if defined(MS_WINDOWS)
     174  
     175  PyDoc_STRVAR(_io__WindowsConsoleIO_readinto__doc__,
     176  "readinto($self, buffer, /)\n"
     177  "--\n"
     178  "\n"
     179  "Same as RawIOBase.readinto().");
     180  
     181  #define _IO__WINDOWSCONSOLEIO_READINTO_METHODDEF    \
     182      {"readinto", (PyCFunction)_io__WindowsConsoleIO_readinto, METH_O, _io__WindowsConsoleIO_readinto__doc__},
     183  
     184  static PyObject *
     185  _io__WindowsConsoleIO_readinto_impl(winconsoleio *self, Py_buffer *buffer);
     186  
     187  static PyObject *
     188  _io__WindowsConsoleIO_readinto(winconsoleio *self, PyObject *arg)
     189  {
     190      PyObject *return_value = NULL;
     191      Py_buffer buffer = {NULL, NULL};
     192  
     193      if (PyObject_GetBuffer(arg, &buffer, PyBUF_WRITABLE) < 0) {
     194          PyErr_Clear();
     195          _PyArg_BadArgument("readinto", "argument", "read-write bytes-like object", arg);
     196          goto exit;
     197      }
     198      if (!PyBuffer_IsContiguous(&buffer, 'C')) {
     199          _PyArg_BadArgument("readinto", "argument", "contiguous buffer", arg);
     200          goto exit;
     201      }
     202      return_value = _io__WindowsConsoleIO_readinto_impl(self, &buffer);
     203  
     204  exit:
     205      /* Cleanup for buffer */
     206      if (buffer.obj) {
     207         PyBuffer_Release(&buffer);
     208      }
     209  
     210      return return_value;
     211  }
     212  
     213  #endif /* defined(MS_WINDOWS) */
     214  
     215  #if defined(MS_WINDOWS)
     216  
     217  PyDoc_STRVAR(_io__WindowsConsoleIO_readall__doc__,
     218  "readall($self, /)\n"
     219  "--\n"
     220  "\n"
     221  "Read all data from the console, returned as bytes.\n"
     222  "\n"
     223  "Return an empty bytes object at EOF.");
     224  
     225  #define _IO__WINDOWSCONSOLEIO_READALL_METHODDEF    \
     226      {"readall", (PyCFunction)_io__WindowsConsoleIO_readall, METH_NOARGS, _io__WindowsConsoleIO_readall__doc__},
     227  
     228  static PyObject *
     229  _io__WindowsConsoleIO_readall_impl(winconsoleio *self);
     230  
     231  static PyObject *
     232  _io__WindowsConsoleIO_readall(winconsoleio *self, PyObject *Py_UNUSED(ignored))
     233  {
     234      return _io__WindowsConsoleIO_readall_impl(self);
     235  }
     236  
     237  #endif /* defined(MS_WINDOWS) */
     238  
     239  #if defined(MS_WINDOWS)
     240  
     241  PyDoc_STRVAR(_io__WindowsConsoleIO_read__doc__,
     242  "read($self, size=-1, /)\n"
     243  "--\n"
     244  "\n"
     245  "Read at most size bytes, returned as bytes.\n"
     246  "\n"
     247  "Only makes one system call when size is a positive integer,\n"
     248  "so less data may be returned than requested.\n"
     249  "Return an empty bytes object at EOF.");
     250  
     251  #define _IO__WINDOWSCONSOLEIO_READ_METHODDEF    \
     252      {"read", _PyCFunction_CAST(_io__WindowsConsoleIO_read), METH_FASTCALL, _io__WindowsConsoleIO_read__doc__},
     253  
     254  static PyObject *
     255  _io__WindowsConsoleIO_read_impl(winconsoleio *self, Py_ssize_t size);
     256  
     257  static PyObject *
     258  _io__WindowsConsoleIO_read(winconsoleio *self, PyObject *const *args, Py_ssize_t nargs)
     259  {
     260      PyObject *return_value = NULL;
     261      Py_ssize_t size = -1;
     262  
     263      if (!_PyArg_CheckPositional("read", nargs, 0, 1)) {
     264          goto exit;
     265      }
     266      if (nargs < 1) {
     267          goto skip_optional;
     268      }
     269      if (!_Py_convert_optional_to_ssize_t(args[0], &size)) {
     270          goto exit;
     271      }
     272  skip_optional:
     273      return_value = _io__WindowsConsoleIO_read_impl(self, size);
     274  
     275  exit:
     276      return return_value;
     277  }
     278  
     279  #endif /* defined(MS_WINDOWS) */
     280  
     281  #if defined(MS_WINDOWS)
     282  
     283  PyDoc_STRVAR(_io__WindowsConsoleIO_write__doc__,
     284  "write($self, b, /)\n"
     285  "--\n"
     286  "\n"
     287  "Write buffer b to file, return number of bytes written.\n"
     288  "\n"
     289  "Only makes one system call, so not all of the data may be written.\n"
     290  "The number of bytes actually written is returned.");
     291  
     292  #define _IO__WINDOWSCONSOLEIO_WRITE_METHODDEF    \
     293      {"write", (PyCFunction)_io__WindowsConsoleIO_write, METH_O, _io__WindowsConsoleIO_write__doc__},
     294  
     295  static PyObject *
     296  _io__WindowsConsoleIO_write_impl(winconsoleio *self, Py_buffer *b);
     297  
     298  static PyObject *
     299  _io__WindowsConsoleIO_write(winconsoleio *self, PyObject *arg)
     300  {
     301      PyObject *return_value = NULL;
     302      Py_buffer b = {NULL, NULL};
     303  
     304      if (PyObject_GetBuffer(arg, &b, PyBUF_SIMPLE) != 0) {
     305          goto exit;
     306      }
     307      if (!PyBuffer_IsContiguous(&b, 'C')) {
     308          _PyArg_BadArgument("write", "argument", "contiguous buffer", arg);
     309          goto exit;
     310      }
     311      return_value = _io__WindowsConsoleIO_write_impl(self, &b);
     312  
     313  exit:
     314      /* Cleanup for b */
     315      if (b.obj) {
     316         PyBuffer_Release(&b);
     317      }
     318  
     319      return return_value;
     320  }
     321  
     322  #endif /* defined(MS_WINDOWS) */
     323  
     324  #if defined(MS_WINDOWS)
     325  
     326  PyDoc_STRVAR(_io__WindowsConsoleIO_isatty__doc__,
     327  "isatty($self, /)\n"
     328  "--\n"
     329  "\n"
     330  "Always True.");
     331  
     332  #define _IO__WINDOWSCONSOLEIO_ISATTY_METHODDEF    \
     333      {"isatty", (PyCFunction)_io__WindowsConsoleIO_isatty, METH_NOARGS, _io__WindowsConsoleIO_isatty__doc__},
     334  
     335  static PyObject *
     336  _io__WindowsConsoleIO_isatty_impl(winconsoleio *self);
     337  
     338  static PyObject *
     339  _io__WindowsConsoleIO_isatty(winconsoleio *self, PyObject *Py_UNUSED(ignored))
     340  {
     341      return _io__WindowsConsoleIO_isatty_impl(self);
     342  }
     343  
     344  #endif /* defined(MS_WINDOWS) */
     345  
     346  #ifndef _IO__WINDOWSCONSOLEIO_CLOSE_METHODDEF
     347      #define _IO__WINDOWSCONSOLEIO_CLOSE_METHODDEF
     348  #endif /* !defined(_IO__WINDOWSCONSOLEIO_CLOSE_METHODDEF) */
     349  
     350  #ifndef _IO__WINDOWSCONSOLEIO_FILENO_METHODDEF
     351      #define _IO__WINDOWSCONSOLEIO_FILENO_METHODDEF
     352  #endif /* !defined(_IO__WINDOWSCONSOLEIO_FILENO_METHODDEF) */
     353  
     354  #ifndef _IO__WINDOWSCONSOLEIO_READABLE_METHODDEF
     355      #define _IO__WINDOWSCONSOLEIO_READABLE_METHODDEF
     356  #endif /* !defined(_IO__WINDOWSCONSOLEIO_READABLE_METHODDEF) */
     357  
     358  #ifndef _IO__WINDOWSCONSOLEIO_WRITABLE_METHODDEF
     359      #define _IO__WINDOWSCONSOLEIO_WRITABLE_METHODDEF
     360  #endif /* !defined(_IO__WINDOWSCONSOLEIO_WRITABLE_METHODDEF) */
     361  
     362  #ifndef _IO__WINDOWSCONSOLEIO_READINTO_METHODDEF
     363      #define _IO__WINDOWSCONSOLEIO_READINTO_METHODDEF
     364  #endif /* !defined(_IO__WINDOWSCONSOLEIO_READINTO_METHODDEF) */
     365  
     366  #ifndef _IO__WINDOWSCONSOLEIO_READALL_METHODDEF
     367      #define _IO__WINDOWSCONSOLEIO_READALL_METHODDEF
     368  #endif /* !defined(_IO__WINDOWSCONSOLEIO_READALL_METHODDEF) */
     369  
     370  #ifndef _IO__WINDOWSCONSOLEIO_READ_METHODDEF
     371      #define _IO__WINDOWSCONSOLEIO_READ_METHODDEF
     372  #endif /* !defined(_IO__WINDOWSCONSOLEIO_READ_METHODDEF) */
     373  
     374  #ifndef _IO__WINDOWSCONSOLEIO_WRITE_METHODDEF
     375      #define _IO__WINDOWSCONSOLEIO_WRITE_METHODDEF
     376  #endif /* !defined(_IO__WINDOWSCONSOLEIO_WRITE_METHODDEF) */
     377  
     378  #ifndef _IO__WINDOWSCONSOLEIO_ISATTY_METHODDEF
     379      #define _IO__WINDOWSCONSOLEIO_ISATTY_METHODDEF
     380  #endif /* !defined(_IO__WINDOWSCONSOLEIO_ISATTY_METHODDEF) */
     381  /*[clinic end generated code: output=2d8648fab31ec60e input=a9049054013a1b77]*/