Lines Matching refs:self

78 static PyObject* portable_lseek(fileio *self, PyObject *posobj, int whence, bool suppress_pipe_error);
81 _PyFileIO_closed(PyObject *self)
83 return ((fileio *)self)->fd < 0;
90 fileio_dealloc_warn(fileio *self, PyObject *source)
92 if (self->fd >= 0 && self->closefd) {
98 PyErr_WriteUnraisable((PyObject *) self);
107 internal_close(fileio *self)
111 if (self->fd >= 0) {
112 int fd = self->fd;
113 self->fd = -1;
141 _io_FileIO_close_impl(fileio *self)
148 &_Py_ID(close), (PyObject *)self);
149 if (!self->closefd) {
150 self->fd = -1;
155 if (self->finalizing) {
156 PyObject *r = fileio_dealloc_warn(self, (PyObject *) self);
162 rc = internal_close(self);
173 fileio *self;
177 self = (fileio *) type->tp_alloc(type, 0);
178 if (self != NULL) {
179 self->fd = -1;
180 self->created = 0;
181 self->readable = 0;
182 self->writable = 0;
183 self->appending = 0;
184 self->seekable = -1;
185 self->blksize = 0;
186 self->closefd = 1;
187 self->weakreflist = NULL;
190 return (PyObject *) self;
220 _io_FileIO___init___impl(fileio *self, PyObject *nameobj, const char *mode,
245 assert(PyFileIO_Check(self));
246 if (self->fd >= 0) {
247 if (self->closefd) {
249 if (internal_close(self) < 0)
253 self->fd = -1;
301 self->created = 1;
302 self->writable = 1;
309 self->readable = 1;
315 self->writable = 1;
322 self->writable = 1;
323 self->appending = 1;
331 self->readable = self->writable = 1;
344 if (self->readable && self->writable)
346 else if (self->readable)
366 self->fd = fd;
367 self->closefd = closefd;
370 self->closefd = 1;
382 self->fd = _wopen(widename, flags, 0666);
384 self->fd = open(name, flags, 0666);
387 } while (self->fd < 0 && errno == EINTR &&
411 self->fd = _PyLong_AsInt(fdobj);
413 if (self->fd < 0) {
418 "opener returned %d", self->fd);
425 if (self->fd < 0) {
431 if (_Py_set_inheritable(self->fd, 0, atomic_flag_works) < 0)
436 self->blksize = DEFAULT_BUFFER_SIZE;
438 fstat_result = _Py_fstat_noraise(self->fd, &fdfstat);
467 self->blksize = fdfstat.st_blksize;
473 _setmode(self->fd, O_BINARY);
476 if (PyObject_SetAttr((PyObject *)self, &_Py_ID(name), nameobj) < 0)
479 if (self->appending) {
483 PyObject *pos = portable_lseek(self, NULL, 2, true);
494 self->fd = -1;
495 if (self->fd >= 0) {
498 internal_close(self);
513 fileio_traverse(fileio *self, visitproc visit, void *arg)
515 Py_VISIT(self->dict);
520 fileio_clear(fileio *self)
522 Py_CLEAR(self->dict);
527 fileio_dealloc(fileio *self)
529 self->finalizing = 1;
530 if (_PyIOBase_finalize((PyObject *) self) < 0)
532 _PyObject_GC_UNTRACK(self);
533 if (self->weakreflist != NULL)
534 PyObject_ClearWeakRefs((PyObject *) self);
535 Py_CLEAR(self->dict);
536 Py_TYPE(self)->tp_free((PyObject *)self);
563 _io_FileIO_fileno_impl(fileio *self)
566 if (self->fd < 0)
568 return PyLong_FromLong((long) self->fd);
578 _io_FileIO_readable_impl(fileio *self)
581 if (self->fd < 0)
583 return PyBool_FromLong((long) self->readable);
593 _io_FileIO_writable_impl(fileio *self)
596 if (self->fd < 0)
598 return PyBool_FromLong((long) self->writable);
608 _io_FileIO_seekable_impl(fileio *self)
611 if (self->fd < 0)
613 if (self->seekable < 0) {
615 PyObject *pos = portable_lseek(self, NULL, SEEK_CUR, false);
616 assert(self->seekable >= 0);
624 return PyBool_FromLong((long) self->seekable);
636 _io_FileIO_readinto_impl(fileio *self, Py_buffer *buffer)
642 if (self->fd < 0)
644 if (!self->readable)
647 n = _Py_read(self->fd, buffer->buf, buffer->len);
663 new_buffersize(fileio *self, size_t currentsize)
691 _io_FileIO_readall_impl(fileio *self)
702 if (self->fd < 0)
708 pos = _lseeki64(self->fd, 0L, SEEK_CUR);
710 pos = lseek(self->fd, 0L, SEEK_CUR);
713 fstat_result = _Py_fstat_noraise(self->fd, &status);
737 bufsize = new_buffersize(self, bytes_read);
752 n = _Py_read(self->fd,
793 _io_FileIO_read_impl(fileio *self, Py_ssize_t size)
800 if (self->fd < 0)
802 if (!self->readable)
806 return _io_FileIO_readall_impl(self);
817 n = _Py_read(self->fd, ptr, size);
852 _io_FileIO_write_impl(fileio *self, Py_buffer *b)
858 if (self->fd < 0)
860 if (!self->writable)
863 n = _Py_write(self->fd, b->buf, b->len);
882 portable_lseek(fileio *self, PyObject *posobj, int whence, bool suppress_pipe_error)
885 int fd = self->fd;
925 if (self->seekable < 0) {
926 self->seekable = (res >= 0);
962 _io_FileIO_seek_impl(fileio *self, PyObject *pos, int whence)
965 if (self->fd < 0)
968 return portable_lseek(self, pos, whence, false);
980 _io_FileIO_tell_impl(fileio *self)
983 if (self->fd < 0)
986 return portable_lseek(self, NULL, 1, false);
1002 _io_FileIO_truncate_impl(fileio *self, PyObject *posobj)
1009 fd = self->fd;
1012 if (!self->writable)
1017 posobj = portable_lseek(self, NULL, 1, false);
1057 mode_string(fileio *self)
1059 if (self->created) {
1060 if (self->readable)
1065 if (self->appending) {
1066 if (self->readable)
1071 else if (self->readable) {
1072 if (self->writable)
1082 fileio_repr(fileio *self)
1086 if (self->fd < 0)
1089 if (_PyObject_LookupAttr((PyObject *) self, &_Py_ID(name), &nameobj) < 0) {
1095 self->fd, mode_string(self), self->closefd ? "True" : "False");
1098 int status = Py_ReprEnter((PyObject *)self);
1103 nameobj, mode_string(self), self->closefd ? "True" : "False");
1104 Py_ReprLeave((PyObject *)self);
1109 Py_TYPE(self)->tp_name);
1123 _io_FileIO_isatty_impl(fileio *self)
1128 if (self->fd < 0)
1132 res = isatty(self->fd);
1161 get_closed(fileio *self, void *closure)
1163 return PyBool_FromLong((long)(self->fd < 0));
1167 get_closefd(fileio *self, void *closure)
1169 return PyBool_FromLong((long)(self->closefd));
1173 get_mode(fileio *self, void *closure)
1175 return PyUnicode_FromString(mode_string(self));