Lines Matching refs:self

177 Dialect_get_lineterminator(DialectObj *self, void *Py_UNUSED(ignored))
179 Py_XINCREF(self->lineterminator);
180 return self->lineterminator;
184 Dialect_get_delimiter(DialectObj *self, void *Py_UNUSED(ignored))
186 return get_char_or_None(self->delimiter);
190 Dialect_get_escapechar(DialectObj *self, void *Py_UNUSED(ignored))
192 return get_char_or_None(self->escapechar);
196 Dialect_get_quotechar(DialectObj *self, void *Py_UNUSED(ignored))
198 return get_char_or_None(self->quotechar);
202 Dialect_get_quoting(DialectObj *self, void *Py_UNUSED(ignored))
204 return PyLong_FromLong(self->quoting);
358 Dialect_dealloc(DialectObj *self)
360 PyTypeObject *tp = Py_TYPE(self);
361 PyObject_GC_UnTrack(self);
362 tp->tp_clear((PyObject *)self);
363 PyObject_GC_Del(self);
399 DialectObj *self;
450 self = (DialectObj *)type->tp_alloc(type, 0);
451 if (self == NULL) {
455 self->lineterminator = NULL;
488 DIASET(_set_char, "delimiter", &self->delimiter, delimiter, ',');
489 DIASET(_set_bool, "doublequote", &self->doublequote, doublequote, true);
490 DIASET(_set_char_or_none, "escapechar", &self->escapechar, escapechar, NOT_SET);
491 DIASET(_set_str, "lineterminator", &self->lineterminator, lineterminator, "\r\n");
492 DIASET(_set_char_or_none, "quotechar", &self->quotechar, quotechar, '"');
493 DIASET(_set_int, "quoting", &self->quoting, quoting, QUOTE_MINIMAL);
494 DIASET(_set_bool, "skipinitialspace", &self->skipinitialspace, skipinitialspace, false);
495 DIASET(_set_bool, "strict", &self->strict, strict, false);
498 if (dialect_check_quoting(self->quoting))
500 if (self->delimiter == NOT_SET) {
506 self->quoting = QUOTE_NONE;
507 if (self->quoting != QUOTE_NONE && self->quotechar == NOT_SET) {
512 if (self->lineterminator == NULL) {
517 ret = (PyObject *)self;
518 Py_INCREF(self);
520 Py_CLEAR(self);
539 Dialect_reduce(PyObject *self, PyObject *args) {
541 "cannot pickle '%.100s' instances", _PyType_Name(Py_TYPE(self)));
557 Dialect_clear(DialectObj *self)
559 Py_CLEAR(self->lineterminator);
564 Dialect_traverse(DialectObj *self, visitproc visit, void *arg)
566 Py_VISIT(self->lineterminator);
567 Py_VISIT(Py_TYPE(self));
612 parse_save_field(ReaderObj *self)
617 (void *) self->field, self->field_len);
620 self->field_len = 0;
621 if (self->numeric_field) {
624 self->numeric_field = 0;
631 if (PyList_Append(self->fields, field) < 0) {
640 parse_grow_buff(ReaderObj *self)
642 assert((size_t)self->field_size <= PY_SSIZE_T_MAX / sizeof(Py_UCS4));
644 Py_ssize_t field_size_new = self->field_size ? 2 * self->field_size : 4096;
645 Py_UCS4 *field_new = self->field;
651 self->field = field_new;
652 self->field_size = field_size_new;
657 parse_add_char(ReaderObj *self, _csvstate *module_state, Py_UCS4 c)
659 if (self->field_len >= module_state->field_limit) {
665 if (self->field_len == self->field_size && !parse_grow_buff(self))
667 self->field[self->field_len++] = c;
672 parse_process_char(ReaderObj *self, _csvstate *module_state, Py_UCS4 c)
674 DialectObj *dialect = self->dialect;
676 switch (self->state) {
683 self->state = EAT_CRNL;
687 self->state = START_FIELD;
693 if (parse_save_field(self) < 0)
695 self->state = (c == EOL ? START_RECORD : EAT_CRNL);
700 self->state = IN_QUOTED_FIELD;
704 self->state = ESCAPED_CHAR;
711 if (parse_save_field(self) < 0)
717 self->numeric_field = 1;
718 if (parse_add_char(self, module_state, c) < 0)
720 self->state = IN_FIELD;
726 if (parse_add_char(self, module_state, c) < 0)
728 self->state = AFTER_ESCAPED_CRNL;
733 if (parse_add_char(self, module_state, c) < 0)
735 self->state = IN_FIELD;
747 if (parse_save_field(self) < 0)
749 self->state = (c == EOL ? START_RECORD : EAT_CRNL);
753 self->state = ESCAPED_CHAR;
757 if (parse_save_field(self) < 0)
759 self->state = START_FIELD;
763 if (parse_add_char(self, module_state, c) < 0)
774 self->state = ESCAPE_IN_QUOTED_FIELD;
780 self->state = QUOTE_IN_QUOTED_FIELD;
784 self->state = IN_FIELD;
789 if (parse_add_char(self, module_state, c) < 0)
797 if (parse_add_char(self, module_state, c) < 0)
799 self->state = IN_QUOTED_FIELD;
807 if (parse_add_char(self, module_state, c) < 0)
809 self->state = IN_QUOTED_FIELD;
813 if (parse_save_field(self) < 0)
815 self->state = START_FIELD;
819 if (parse_save_field(self) < 0)
821 self->state = (c == EOL ? START_RECORD : EAT_CRNL);
824 if (parse_add_char(self, module_state, c) < 0)
826 self->state = IN_FIELD;
841 self->state = START_RECORD;
854 parse_reset(ReaderObj *self)
856 Py_XSETREF(self->fields, PyList_New(0));
857 if (self->fields == NULL)
859 self->field_len = 0;
860 self->state = START_RECORD;
861 self->numeric_field = 0;
866 Reader_iternext(ReaderObj *self)
875 _csvstate *module_state = _csv_state_from_type(Py_TYPE(self),
881 if (parse_reset(self) < 0)
884 lineobj = PyIter_Next(self->input_iter);
887 if (!PyErr_Occurred() && (self->field_len != 0 ||
888 self->state == IN_QUOTED_FIELD)) {
889 if (self->dialect->strict)
892 else if (parse_save_field(self) >= 0)
911 ++self->line_num;
918 if (parse_process_char(self, module_state, c) < 0) {
925 if (parse_process_char(self, module_state, EOL) < 0)
927 } while (self->state != START_RECORD);
929 fields = self->fields;
930 self->fields = NULL;
936 Reader_dealloc(ReaderObj *self)
938 PyTypeObject *tp = Py_TYPE(self);
939 PyObject_GC_UnTrack(self);
940 tp->tp_clear((PyObject *)self);
941 if (self->field != NULL) {
942 PyMem_Free(self->field);
943 self->field = NULL;
945 PyObject_GC_Del(self);
950 Reader_traverse(ReaderObj *self, visitproc visit, void *arg)
952 Py_VISIT(self->dialect);
953 Py_VISIT(self->input_iter);
954 Py_VISIT(self->fields);
955 Py_VISIT(Py_TYPE(self));
960 Reader_clear(ReaderObj *self)
962 Py_CLEAR(self->dialect);
963 Py_CLEAR(self->input_iter);
964 Py_CLEAR(self->fields);
1013 ReaderObj * self = PyObject_GC_New(
1017 if (!self)
1020 self->dialect = NULL;
1021 self->fields = NULL;
1022 self->input_iter = NULL;
1023 self->field = NULL;
1024 self->field_size = 0;
1025 self->line_num = 0;
1027 if (parse_reset(self) < 0) {
1028 Py_DECREF(self);
1033 Py_DECREF(self);
1036 self->input_iter = PyObject_GetIter(iterator);
1037 if (self->input_iter == NULL) {
1038 Py_DECREF(self);
1041 self->dialect = (DialectObj *)_call_dialect(module_state, dialect,
1043 if (self->dialect == NULL) {
1044 Py_DECREF(self);
1048 PyObject_GC_Track(self);
1049 return (PyObject *)self;
1057 join_reset(WriterObj *self)
1059 self->rec_len = 0;
1060 self->num_fields = 0;
1069 join_append_data(WriterObj *self, unsigned int field_kind, const void *field_data,
1073 DialectObj *dialect = self->dialect;
1088 self->rec[rec_len] = c;\
1092 rec_len = self->rec_len;
1095 if (self->num_fields > 0)
1131 PyErr_Format(self->error_obj,
1161 join_check_rec_size(WriterObj *self, Py_ssize_t rec_len)
1165 if (rec_len > self->rec_size) {
1167 Py_UCS4 *rec_new = self->rec;
1173 self->rec = rec_new;
1174 self->rec_size = (Py_ssize_t)rec_size_new;
1180 join_append(WriterObj *self, PyObject *field, int quoted)
1194 rec_len = join_append_data(self, field_kind, field_data, field_len,
1200 if (!join_check_rec_size(self, rec_len))
1203 self->rec_len = join_append_data(self, field_kind, field_data, field_len,
1205 self->num_fields++;
1211 join_append_lineterminator(WriterObj *self)
1217 terminator_len = PyUnicode_GET_LENGTH(self->dialect->lineterminator);
1222 if (!join_check_rec_size(self, self->rec_len + terminator_len))
1225 term_kind = PyUnicode_KIND(self->dialect->lineterminator);
1226 term_data = PyUnicode_DATA(self->dialect->lineterminator);
1228 self->rec[self->rec_len + i] = PyUnicode_READ(term_kind, term_data, i);
1229 self->rec_len += terminator_len;
1241 csv_writerow(WriterObj *self, PyObject *seq)
1243 DialectObj *dialect = self->dialect;
1249 PyErr_Format(self->error_obj,
1258 join_reset(self);
1276 append_ok = join_append(self, field, quoted);
1280 append_ok = join_append(self, NULL, quoted);
1292 append_ok = join_append(self, str, quoted);
1304 if (self->num_fields > 0 && self->rec_len == 0) {
1306 PyErr_Format(self->error_obj,
1310 self->num_fields--;
1311 if (!join_append(self, NULL, 1))
1317 if (!join_append_lineterminator(self)) {
1322 (void *) self->rec, self->rec_len);
1326 result = PyObject_CallOneArg(self->write, line);
1338 csv_writerows(WriterObj *self, PyObject *seqseq)
1347 result = csv_writerow(self, row_obj);
1376 Writer_traverse(WriterObj *self, visitproc visit, void *arg)
1378 Py_VISIT(self->dialect);
1379 Py_VISIT(self->write);
1380 Py_VISIT(self->error_obj);
1381 Py_VISIT(Py_TYPE(self));
1386 Writer_clear(WriterObj *self)
1388 Py_CLEAR(self->dialect);
1389 Py_CLEAR(self->write);
1390 Py_CLEAR(self->error_obj);
1395 Writer_dealloc(WriterObj *self)
1397 PyTypeObject *tp = Py_TYPE(self);
1398 PyObject_GC_UnTrack(self);
1399 tp->tp_clear((PyObject *)self);
1400 if (self->rec != NULL) {
1401 PyMem_Free(self->rec);
1403 PyObject_GC_Del(self);
1438 WriterObj * self = PyObject_GC_New(WriterObj, module_state->writer_type);
1440 if (!self)
1443 self->dialect = NULL;
1444 self->write = NULL;
1446 self->rec = NULL;
1447 self->rec_size = 0;
1448 self->rec_len = 0;
1449 self->num_fields = 0;
1451 self->error_obj = Py_NewRef(module_state->error_obj);
1454 Py_DECREF(self);
1459 &self->write) < 0) {
1460 Py_DECREF(self);
1463 if (self->write == NULL || !PyCallable_Check(self->write)) {
1466 Py_DECREF(self);
1469 self->dialect = (DialectObj *)_call_dialect(module_state, dialect,
1471 if (self->dialect == NULL) {
1472 Py_DECREF(self);
1475 PyObject_GC_Track(self);
1476 return (PyObject *)self;