From 1791018f49951546071e3e515ffa78cef48a1220 Mon Sep 17 00:00:00 2001 From: Julian Sikorski Date: Wed, 20 May 2026 16:01:45 +0200 Subject: [PATCH 1/9] Allow SAS variable names to begin with an underscore --- pyreadstat/_readstat_writer.pyx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pyreadstat/_readstat_writer.pyx b/pyreadstat/_readstat_writer.pyx index 35d2a6f..361ef38 100644 --- a/pyreadstat/_readstat_writer.pyx +++ b/pyreadstat/_readstat_writer.pyx @@ -653,8 +653,8 @@ cdef void initial_checks(bint is_pandas, bint is_polars, dict variable_value_lab raise PyreadstatError("variable name '%s' is of type %s and it must be str (not starting with numbers!)" % (variable_name, str(type(variable_name)))) if len(variable_name) == 0: raise PyreadstatError("variable names must be non-empty strings, not starting with numbers") - if not variable_name[0].isalpha(): - raise PyreadstatError("variable name '%s' starts with an illegal (non-alphabetic) character: '%s' (ordinal %s)" % (variable_name, variable_name[0], ord(variable_name[0]))) + if not (variable_name[0].isalpha() or variable_name[0] == "_"): + raise PyreadstatError("variable name '%s' starts with an illegal (neither alphabetic nor an underscore) character: '%s' (ordinal %s)" % (variable_name, variable_name[0], ord(variable_name[0]))) if " " in variable_name: raise PyreadstatError("variable name '%s' contains a space, which is not allowed" % variable_name) From 696c96b407c8608690b1d16168dc9bb542a7aad9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Henning=20P=C3=B6ttker?= <25299532+hpoettker@users.noreply.github.com> Date: Mon, 8 Jun 2026 23:12:23 +0200 Subject: [PATCH 2/9] Address compilation warnings --- pyreadstat/_readstat_parser.pyx | 22 +++++++++++----------- pyreadstat/_readstat_writer.pyx | 15 ++------------- 2 files changed, 13 insertions(+), 24 deletions(-) diff --git a/pyreadstat/_readstat_parser.pyx b/pyreadstat/_readstat_parser.pyx index 802fd4c..64eda3f 100644 --- a/pyreadstat/_readstat_parser.pyx +++ b/pyreadstat/_readstat_parser.pyx @@ -293,7 +293,7 @@ cdef object convert_readstat_to_python_value(readstat_value_t value, int index, cdef py_file_format file_format cdef object result - cdef char * c_str_value + cdef const char * c_str_value cdef str py_str_value cdef int8_t c_int8_value cdef int16_t c_int16_value @@ -385,15 +385,15 @@ cdef int handle_metadata(readstat_metadata_t *metadata, void *ctx) except READST cdef int var_count, obs_count, mr_len cdef data_container dc = ctx #cdef object row - cdef char * flabel_orig - cdef char * fencoding_orig + cdef const char * flabel_orig + cdef const char * fencoding_orig cdef str flabel, fencoding cdef bint metaonly - cdef char * table + cdef const char * table cdef int ctime cdef int mtime cdef int i = 0 - cdef mr_set_t * mr_sets_orig + cdef const mr_set_t * mr_sets_orig cdef dict mr_sets = {} cdef str name cdef list variable_list = [] @@ -468,9 +468,9 @@ cdef int handle_variable(int index, readstat_variable_t *variable, if any. """ - cdef char * var_name, - cdef char * var_label - cdef char * var_format + cdef const char * var_name, + cdef const char * var_label + cdef const char * var_format cdef str col_name, col_label, label_name, col_format_original, output_format cdef py_datetime_format col_format_final cdef readstat_type_t var_type @@ -742,7 +742,7 @@ cdef int handle_value_label(char *val_labels, readstat_value_t value, char *labe cdef data_container dc = ctx - cdef char * c_str_value + cdef const char * c_str_value cdef str py_str_value cdef int8_t c_int8_value cdef int16_t c_int16_value @@ -905,7 +905,7 @@ cdef void check_exit_status(readstat_error_t retcode) except *: transforms a readstat exit status to a python error if status is not READSTAT OK """ - cdef char * err_readstat + cdef const char * err_readstat cdef str err_message if retcode != READSTAT_OK: err_readstat = readstat_error_message(retcode) @@ -943,7 +943,7 @@ cdef void run_readstat_parser(char * filename, data_container data, py_file_exte metaonly = data.metaonly ctx = data - #readstat_error_t error = READSTAT_OK; + error = READSTAT_OK; parser = readstat_parser_init() metadata_handler = handle_metadata variable_handler = handle_variable diff --git a/pyreadstat/_readstat_writer.pyx b/pyreadstat/_readstat_writer.pyx index 361ef38..4ab18db 100644 --- a/pyreadstat/_readstat_writer.pyx +++ b/pyreadstat/_readstat_writer.pyx @@ -146,7 +146,8 @@ cdef double convert_datetimelike_to_number(dst_file_format file_format, pywriter converts a datime like python/pandas object to a float """ - cdef double offset_days, tstamp + cdef double offset_days + cdef double tstamp = 0 if file_format == FILE_FORMAT_SAV or file_format == FILE_FORMAT_POR: offset_days = spss_offset_days @@ -574,18 +575,6 @@ cdef ssize_t write_bytes(const void *data, size_t _len, void *ctx) noexcept: else: return write(fd, data, _len) -cdef void _check_exit_status(readstat_error_t retcode) except *: - """ - transforms a readstat exit status to a python error if status is not READSTAT OK - """ - - cdef char * err_readstat - cdef str err_message - if retcode != READSTAT_OK: - err_readstat = readstat_error_message(retcode) - err_message = err_readstat - raise ReadstatError(err_message) - cdef int open_file(bytes filename_bytes): cdef int fd From 59b7696c252019ac4f22a2484539418b5418dacd Mon Sep 17 00:00:00 2001 From: Otto Fajardo Date: Fri, 3 Jul 2026 17:51:38 +0200 Subject: [PATCH 3/9] fixing #328 --- CITATION.cff | 2 +- change_log.md | 3 + docs/conf.py | 2 +- pyreadstat/__init__.py | 2 +- pyreadstat/_readstat_parser.c | 47 +- pyreadstat/_readstat_writer.c | 6290 ++++++++++++++++--------------- pyreadstat/_readstat_writer.pyx | 8 + setup.py | 2 +- tests/test_narwhalified.py | 31 + 9 files changed, 3297 insertions(+), 3090 deletions(-) diff --git a/CITATION.cff b/CITATION.cff index d4476e5..9391faa 100644 --- a/CITATION.cff +++ b/CITATION.cff @@ -5,7 +5,7 @@ authors: given-names: "Otto" orcid: "https://orcid.org/0000-0002-3363-9287" title: "Pyreadstat" -version: 1.3.5 +version: 1.3.6 doi: 10.5281/zenodo.6612282 date-released: 2018-09-24 url: "https://github.com/Roche/pyreadstat" diff --git a/change_log.md b/change_log.md index 684866c..b67de43 100644 --- a/change_log.md +++ b/change_log.md @@ -1,3 +1,6 @@ +# 1.3.6 (github, pypi and conda 2026.xx.xx) +* Fixing #328 + # 1.3.5 (github, pypi and conda 2026.05.19) * Readstat sources updated to commit 3add3a5eaac6df24d938beffb9148792e362d9ef * date, datetime and time formats are now used without precision, decreasing the diff --git a/docs/conf.py b/docs/conf.py index 6aae15a..78b57f4 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -26,7 +26,7 @@ # The short X.Y version version = '' # The full version, including alpha/beta/rc tags -release = '1.3.5' +release = '1.3.6' # -- General configuration --------------------------------------------------- diff --git a/pyreadstat/__init__.py b/pyreadstat/__init__.py index a3ecd0e..e86b45f 100644 --- a/pyreadstat/__init__.py +++ b/pyreadstat/__init__.py @@ -22,7 +22,7 @@ from ._readstat_parser import ReadstatError, PyreadstatError from .pyfunctions import set_value_labels, set_catalog_to_sas -__version__ = "1.3.5" +__version__ = "1.3.6" __all__ = ( "read_sav", diff --git a/pyreadstat/_readstat_parser.c b/pyreadstat/_readstat_parser.c index dd4d4e2..b3ca69e 100644 --- a/pyreadstat/_readstat_parser.c +++ b/pyreadstat/_readstat_parser.c @@ -7598,7 +7598,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_convert_readstat_to_pyt int __pyx_v_dates_as_pandas; __pyx_t_10pyreadstat_16_readstat_parser_py_file_format __pyx_v_file_format; PyObject *__pyx_v_result = 0; - char *__pyx_v_c_str_value; + char const *__pyx_v_c_str_value; PyObject *__pyx_v_py_str_value = 0; int8_t __pyx_v_c_int8_value; int16_t __pyx_v_c_int16_value; @@ -8380,14 +8380,14 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_metadata(readstat_meta int __pyx_v_obs_count; int __pyx_v_mr_len; struct __pyx_obj_10pyreadstat_16_readstat_parser_data_container *__pyx_v_dc = 0; - char *__pyx_v_flabel_orig; - char *__pyx_v_fencoding_orig; + char const *__pyx_v_flabel_orig; + char const *__pyx_v_fencoding_orig; PyObject *__pyx_v_flabel = 0; PyObject *__pyx_v_fencoding = 0; CYTHON_UNUSED int __pyx_v_metaonly; - char *__pyx_v_table; + char const *__pyx_v_table; int __pyx_v_i; - mr_set_t *__pyx_v_mr_sets_orig; + mr_set_t const *__pyx_v_mr_sets_orig; PyObject *__pyx_v_mr_sets = 0; PyObject *__pyx_v_name = 0; PyObject *__pyx_v_variable_list = 0; @@ -8414,7 +8414,7 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_metadata(readstat_meta * cdef int var_count, obs_count, mr_len * cdef data_container dc = ctx # <<<<<<<<<<<<<< * #cdef object row - * cdef char * flabel_orig + * cdef const char * flabel_orig */ __pyx_t_1 = ((PyObject *)__pyx_v_ctx); __Pyx_INCREF(__pyx_t_1); @@ -8425,14 +8425,14 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_metadata(readstat_meta * cdef int ctime * cdef int mtime * cdef int i = 0 # <<<<<<<<<<<<<< - * cdef mr_set_t * mr_sets_orig + * cdef const mr_set_t * mr_sets_orig * cdef dict mr_sets = {} */ __pyx_v_i = 0; /* "pyreadstat/_readstat_parser.pyx":397 * cdef int i = 0 - * cdef mr_set_t * mr_sets_orig + * cdef const mr_set_t * mr_sets_orig * cdef dict mr_sets = {} # <<<<<<<<<<<<<< * cdef str name * cdef list variable_list = [] @@ -9163,9 +9163,9 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_metadata(readstat_meta */ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_variable(int __pyx_v_index, readstat_variable_t *__pyx_v_variable, char *__pyx_v_val_labels, void *__pyx_v_ctx) { - char *__pyx_v_var_name; - char *__pyx_v_var_label; - char *__pyx_v_var_format; + char const *__pyx_v_var_name; + char const *__pyx_v_var_label; + char const *__pyx_v_var_format; PyObject *__pyx_v_col_name = 0; PyObject *__pyx_v_col_label = 0; PyObject *__pyx_v_label_name = 0; @@ -11807,7 +11807,7 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_value(int __pyx_v_obs_ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_value_label(char *__pyx_v_val_labels, readstat_value_t __pyx_v_value, char *__pyx_v_label, void *__pyx_v_ctx) { struct __pyx_obj_10pyreadstat_16_readstat_parser_data_container *__pyx_v_dc = 0; - char *__pyx_v_c_str_value; + char const *__pyx_v_c_str_value; PyObject *__pyx_v_py_str_value = 0; int8_t __pyx_v_c_int8_value; int16_t __pyx_v_c_int16_value; @@ -11841,7 +11841,7 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_value_label(char *__py * * cdef data_container dc = ctx # <<<<<<<<<<<<<< * - * cdef char * c_str_value + * cdef const char * c_str_value */ __pyx_t_1 = ((PyObject *)__pyx_v_ctx); __Pyx_INCREF(__pyx_t_1); @@ -13236,7 +13236,7 @@ static readstat_off_t __pyx_f_10pyreadstat_16_readstat_parser_pyobject_seek_hand */ static void __pyx_f_10pyreadstat_16_readstat_parser_check_exit_status(readstat_error_t __pyx_v_retcode) { - char *__pyx_v_err_readstat; + char const *__pyx_v_err_readstat; PyObject *__pyx_v_err_message = 0; __Pyx_RefNannyDeclarations int __pyx_t_1; @@ -13250,7 +13250,7 @@ static void __pyx_f_10pyreadstat_16_readstat_parser_check_exit_status(readstat_e __Pyx_RefNannySetupContext("check_exit_status", 0); /* "pyreadstat/_readstat_parser.pyx":910 - * cdef char * err_readstat + * cdef const char * err_readstat * cdef str err_message * if retcode != READSTAT_OK: # <<<<<<<<<<<<<< * err_readstat = readstat_error_message(retcode) @@ -13318,7 +13318,7 @@ static void __pyx_f_10pyreadstat_16_readstat_parser_check_exit_status(readstat_e __PYX_ERR(0, 913, __pyx_L1_error) /* "pyreadstat/_readstat_parser.pyx":910 - * cdef char * err_readstat + * cdef const char * err_readstat * cdef str err_message * if retcode != READSTAT_OK: # <<<<<<<<<<<<<< * err_readstat = readstat_error_message(retcode) @@ -13401,13 +13401,22 @@ static void __pyx_f_10pyreadstat_16_readstat_parser_run_readstat_parser(char *__ * metaonly = data.metaonly * ctx = data # <<<<<<<<<<<<<< * - * #readstat_error_t error = READSTAT_OK; + * error = READSTAT_OK; */ __pyx_v_ctx = ((void *)__pyx_v_data); + /* "pyreadstat/_readstat_parser.pyx":946 + * ctx = data + * + * error = READSTAT_OK; # <<<<<<<<<<<<<< + * parser = readstat_parser_init() + * metadata_handler = handle_metadata +*/ + __pyx_v_error = READSTAT_OK; + /* "pyreadstat/_readstat_parser.pyx":947 * - * #readstat_error_t error = READSTAT_OK; + * error = READSTAT_OK; * parser = readstat_parser_init() # <<<<<<<<<<<<<< * metadata_handler = handle_metadata * variable_handler = handle_variable @@ -13415,7 +13424,7 @@ static void __pyx_f_10pyreadstat_16_readstat_parser_run_readstat_parser(char *__ __pyx_v_parser = readstat_parser_init(); /* "pyreadstat/_readstat_parser.pyx":948 - * #readstat_error_t error = READSTAT_OK; + * error = READSTAT_OK; * parser = readstat_parser_init() * metadata_handler = handle_metadata # <<<<<<<<<<<<<< * variable_handler = handle_variable diff --git a/pyreadstat/_readstat_writer.c b/pyreadstat/_readstat_writer.c index f899195..4c41274 100644 --- a/pyreadstat/_readstat_writer.c +++ b/pyreadstat/_readstat_writer.c @@ -1199,6 +1199,7 @@ static int __Pyx_init_co_variables(void) { #include "readstat.h" #include "readstat_io_unistd.h" #include "conditional_includes.h" +#include #ifdef _OPENMP #include #endif /* _OPENMP */ @@ -2301,6 +2302,15 @@ static int __Pyx__GetException(PyThreadState *tstate, PyObject **type, PyObject static int __Pyx_GetException(PyObject **type, PyObject **value, PyObject **tb); #endif +/* CIntToPyUnicode.proto */ +#define __Pyx_PyUnicode_From_int(value, width, padding_char, format_char) (\ + ((format_char) == ('c')) ?\ + __Pyx_uchar___Pyx_PyUnicode_From_int(value, width, padding_char) :\ + __Pyx____Pyx_PyUnicode_From_int(value, width, padding_char, format_char)\ + ) +static CYTHON_INLINE PyObject* __Pyx_uchar___Pyx_PyUnicode_From_int(int value, Py_ssize_t width, char padding_char); +static CYTHON_INLINE PyObject* __Pyx____Pyx_PyUnicode_From_int(int value, Py_ssize_t width, char padding_char, char format_char); + /* ObjectGetItem.proto */ #if CYTHON_USE_TYPE_SLOTS static CYTHON_INLINE PyObject *__Pyx_PyObject_GetItem(PyObject *obj, PyObject *key); @@ -2800,6 +2810,8 @@ static int __Pyx_State_RemoveModule(void*); /* Module declarations from "pyreadstat.readstat_api" */ +/* Module declarations from "libc.errno" */ + /* Module declarations from "pyreadstat._readstat_parser" */ static PyObject **__pyx_vp_10pyreadstat_16_readstat_parser_readstat_to_numpy_types = 0; #define __pyx_v_10pyreadstat_16_readstat_parser_readstat_to_numpy_types (*__pyx_vp_10pyreadstat_16_readstat_parser_readstat_to_numpy_types) @@ -2911,7 +2923,7 @@ typedef struct { __Pyx_CachedCFunction __pyx_umethod_PyDict_Type_values; PyObject *__pyx_tuple[2]; PyObject *__pyx_codeobj_tab[1]; - PyObject *__pyx_string_tab[219]; + PyObject *__pyx_string_tab[225]; PyObject *__pyx_number_tab[9]; /* #### Code section: module_state_contents ### */ /* CommonTypesMetaclass.module_state_decls */ @@ -2953,225 +2965,231 @@ static __pyx_mstatetype __pyx_mstate_global_static = static __pyx_mstatetype * const __pyx_mstate_global = &__pyx_mstate_global_static; #endif /* #### Code section: constant_name_defines ### */ -#define __pyx_kp_u_ __pyx_string_tab[0] -#define __pyx_kp_u_Column_labels_must_be_strings __pyx_string_tab[1] +#define __pyx_kp_u_Column_labels_must_be_strings __pyx_string_tab[0] +#define __pyx_kp_u_Could_not_open_file __pyx_string_tab[1] #define __pyx_kp_u_Non_unique_column_names_detected __pyx_string_tab[2] #define __pyx_kp_u_None __pyx_string_tab[3] #define __pyx_kp_u_Note_that_Cython_is_deliberately __pyx_string_tab[4] -#define __pyx_kp_u_Unknown_data_format_to_insert __pyx_string_tab[5] -#define __pyx_kp_u_Unknown_pywriter_variable_format __pyx_string_tab[6] -#define __pyx_kp_u_Version_not_supported __pyx_string_tab[7] -#define __pyx_kp_u__2 __pyx_string_tab[8] -#define __pyx_kp_u__3 __pyx_string_tab[9] -#define __pyx_kp_u__4 __pyx_string_tab[10] -#define __pyx_kp_u__6 __pyx_string_tab[11] -#define __pyx_kp_u_add_note __pyx_string_tab[12] -#define __pyx_kp_u_alignment_for_variable __pyx_string_tab[13] -#define __pyx_kp_u_and_it_must_be_str_not_starting __pyx_string_tab[14] -#define __pyx_kp_u_character_missing_ranges_value_g __pyx_string_tab[15] -#define __pyx_kp_u_column_labels_must_be_either_lis __pyx_string_tab[16] -#define __pyx_kp_u_compress_and_row_compress_cannot __pyx_string_tab[17] -#define __pyx_kp_u_dataframe_must_be_pandas_or_pola __pyx_string_tab[18] -#define __pyx_kp_u_dictionaries_in_missing_ranges_m __pyx_string_tab[19] -#define __pyx_kp_u_does_not_exist __pyx_string_tab[20] -#define __pyx_kp_u_file_path_could_not_be_encoded_w __pyx_string_tab[21] -#define __pyx_kp_u_in_variable __pyx_string_tab[22] -#define __pyx_kp_u_instead __pyx_string_tab[23] -#define __pyx_kp_u_is_of_type __pyx_string_tab[24] -#define __pyx_kp_u_length_of_column_labels_must_be __pyx_string_tab[25] -#define __pyx_kp_u_measure_for_variable __pyx_string_tab[26] -#define __pyx_kp_u_missing_ranges_hi_and_lo_values __pyx_string_tab[27] -#define __pyx_kp_u_missing_ranges_hi_and_lo_values_2 __pyx_string_tab[28] -#define __pyx_kp_u_missing_ranges_max_1_discrete_nu __pyx_string_tab[29] -#define __pyx_kp_u_missing_ranges_max_1_range_value __pyx_string_tab[30] -#define __pyx_kp_u_missing_ranges_max_3_discrete_nu __pyx_string_tab[31] -#define __pyx_kp_u_missing_ranges_max_3_string_valu __pyx_string_tab[32] -#define __pyx_kp_u_missing_ranges_string_values_len __pyx_string_tab[33] -#define __pyx_kp_u_missing_ranges_values_in_diction __pyx_string_tab[34] -#define __pyx_kp_u_missing_ranges_values_must_be_bo __pyx_string_tab[35] -#define __pyx_kp_u_missing_user_values_not_allowed __pyx_string_tab[36] -#define __pyx_kp_u_missing_user_values_supports_val __pyx_string_tab[37] -#define __pyx_kp_u_missing_user_values_values_in_di __pyx_string_tab[38] -#define __pyx_kp_u_must_be_boolean_or_be_1_or_0 __pyx_string_tab[39] -#define __pyx_kp_u_must_be_dict_got __pyx_string_tab[40] -#define __pyx_kp_u_must_be_either_nominal_ordinal __pyx_string_tab[41] -#define __pyx_kp_u_must_be_either_right_center_lef __pyx_string_tab[42] -#define __pyx_kp_u_must_be_int __pyx_string_tab[43] -#define __pyx_kp_u_must_be_numeric __pyx_string_tab[44] -#define __pyx_kp_u_must_be_string __pyx_string_tab[45] -#define __pyx_kp_u_must_match_the_type_of_the_colu __pyx_string_tab[46] -#define __pyx_kp_u_note_should_be_either_str_or_lis __pyx_string_tab[47] -#define __pyx_kp_u_numeric_missing_ranges_value_giv __pyx_string_tab[48] -#define __pyx_kp_u_ordinal_2 __pyx_string_tab[49] -#define __pyx_kp_u_path_must_be_either_str_or_bytes __pyx_string_tab[50] -#define __pyx_kp_u_pyreadstat__readstat_parser __pyx_string_tab[51] -#define __pyx_kp_u_pyreadstat__readstat_writer_pyx __pyx_string_tab[52] -#define __pyx_kp_u_pyreadstat_datetime __pyx_string_tab[53] -#define __pyx_kp_u_pyreadstat_narwhals_stable_v2 __pyx_string_tab[54] -#define __pyx_kp_u_pyreadstat_numpy __pyx_string_tab[55] -#define __pyx_kp_u_pyreadstat_os __pyx_string_tab[56] -#define __pyx_kp_u_pyreadstat_sys __pyx_string_tab[57] -#define __pyx_kp_u_pyreadstat_warnings __pyx_string_tab[58] -#define __pyx_kp_u_starts_with_an_illegal_non_alph __pyx_string_tab[59] -#define __pyx_kp_u_the_destination_folder __pyx_string_tab[60] -#define __pyx_kp_u_unknown_file_format __pyx_string_tab[61] -#define __pyx_kp_u_utf_8 __pyx_string_tab[62] -#define __pyx_kp_u_variable_name __pyx_string_tab[63] -#define __pyx_kp_u_variable_name_s_contains_a_space __pyx_string_tab[64] -#define __pyx_kp_u_variable_names_must_be_non_empty __pyx_string_tab[65] -#define __pyx_kp_u_variable_value_labels_type_of_La __pyx_string_tab[66] -#define __pyx_kp_u_variable_value_labels_type_of_Va __pyx_string_tab[67] -#define __pyx_kp_u_variable_value_labels_value_for __pyx_string_tab[68] -#define __pyx_kp_u_wrong_writer_format __pyx_string_tab[69] -#define __pyx_n_u_Boolean __pyx_string_tab[70] -#define __pyx_n_u_Categorical __pyx_string_tab[71] -#define __pyx_n_u_Date __pyx_string_tab[72] -#define __pyx_n_u_Datetime __pyx_string_tab[73] -#define __pyx_n_u_Decimal __pyx_string_tab[74] -#define __pyx_n_u_Enum __pyx_string_tab[75] -#define __pyx_n_u_Float32 __pyx_string_tab[76] -#define __pyx_n_u_Float64 __pyx_string_tab[77] -#define __pyx_n_u_Int128 __pyx_string_tab[78] -#define __pyx_n_u_Int16 __pyx_string_tab[79] -#define __pyx_n_u_Int32 __pyx_string_tab[80] -#define __pyx_n_u_Int64 __pyx_string_tab[81] -#define __pyx_n_u_Int8 __pyx_string_tab[82] -#define __pyx_n_u_Object __pyx_string_tab[83] -#define __pyx_n_u_PyreadstatError __pyx_string_tab[84] -#define __pyx_n_u_Pyx_PyDict_NextRef __pyx_string_tab[85] -#define __pyx_n_u_ReadstatError __pyx_string_tab[86] -#define __pyx_n_u_String __pyx_string_tab[87] -#define __pyx_n_u_Time __pyx_string_tab[88] -#define __pyx_n_u_UInt128 __pyx_string_tab[89] -#define __pyx_n_u_UInt16 __pyx_string_tab[90] -#define __pyx_n_u_UInt32 __pyx_string_tab[91] -#define __pyx_n_u_UInt64 __pyx_string_tab[92] -#define __pyx_n_u_UInt8 __pyx_string_tab[93] -#define __pyx_n_u__5 __pyx_string_tab[94] -#define __pyx_n_u_asyncio_coroutines __pyx_string_tab[95] -#define __pyx_n_u_cast __pyx_string_tab[96] -#define __pyx_n_u_cat __pyx_string_tab[97] -#define __pyx_n_u_center __pyx_string_tab[98] -#define __pyx_n_u_class_getitem __pyx_string_tab[99] -#define __pyx_n_u_cline_in_traceback __pyx_string_tab[100] -#define __pyx_n_u_clone __pyx_string_tab[101] -#define __pyx_n_u_column_labels __pyx_string_tab[102] -#define __pyx_n_u_columns __pyx_string_tab[103] -#define __pyx_n_u_combine __pyx_string_tab[104] -#define __pyx_n_u_compress __pyx_string_tab[105] -#define __pyx_n_u_date __pyx_string_tab[106] -#define __pyx_n_u_datetime __pyx_string_tab[107] -#define __pyx_n_u_datetime64 __pyx_string_tab[108] -#define __pyx_n_u_days __pyx_string_tab[109] -#define __pyx_n_u_df __pyx_string_tab[110] -#define __pyx_n_u_dirname __pyx_string_tab[111] -#define __pyx_n_u_drop_nulls __pyx_string_tab[112] -#define __pyx_n_u_dst_path __pyx_string_tab[113] -#define __pyx_n_u_dta __pyx_string_tab[114] -#define __pyx_n_u_dtype __pyx_string_tab[115] -#define __pyx_n_u_eager_only __pyx_string_tab[116] -#define __pyx_n_u_encode __pyx_string_tab[117] -#define __pyx_n_u_expanduser __pyx_string_tab[118] -#define __pyx_n_u_file_format_version __pyx_string_tab[119] -#define __pyx_n_u_file_label __pyx_string_tab[120] -#define __pyx_n_u_filter __pyx_string_tab[121] -#define __pyx_n_u_from_native __pyx_string_tab[122] -#define __pyx_n_u_fsdecode __pyx_string_tab[123] -#define __pyx_n_u_fsencode __pyx_string_tab[124] -#define __pyx_n_u_func __pyx_string_tab[125] -#define __pyx_n_u_get __pyx_string_tab[126] -#define __pyx_n_u_get_categories __pyx_string_tab[127] -#define __pyx_n_u_get_native_namespace __pyx_string_tab[128] -#define __pyx_n_u_getfilesystemencoding __pyx_string_tab[129] -#define __pyx_n_u_hi __pyx_string_tab[130] -#define __pyx_n_u_implementation __pyx_string_tab[131] -#define __pyx_n_u_is_coroutine __pyx_string_tab[132] -#define __pyx_n_u_is_in __pyx_string_tab[133] -#define __pyx_n_u_is_pandas __pyx_string_tab[134] -#define __pyx_n_u_is_polars __pyx_string_tab[135] -#define __pyx_n_u_isalpha __pyx_string_tab[136] -#define __pyx_n_u_isdir __pyx_string_tab[137] -#define __pyx_n_u_isna __pyx_string_tab[138] -#define __pyx_n_u_items __pyx_string_tab[139] -#define __pyx_n_u_iter_columns __pyx_string_tab[140] -#define __pyx_n_u_iter_rows __pyx_string_tab[141] -#define __pyx_n_u_keys __pyx_string_tab[142] -#define __pyx_n_u_left __pyx_string_tab[143] -#define __pyx_n_u_lo __pyx_string_tab[144] -#define __pyx_n_u_main __pyx_string_tab[145] -#define __pyx_n_u_min __pyx_string_tab[146] -#define __pyx_n_u_missing_ranges __pyx_string_tab[147] -#define __pyx_n_u_missing_user_values __pyx_string_tab[148] -#define __pyx_n_u_module __pyx_string_tab[149] -#define __pyx_n_u_ms __pyx_string_tab[150] -#define __pyx_n_u_name __pyx_string_tab[151] -#define __pyx_n_u_name_2 __pyx_string_tab[152] -#define __pyx_n_u_narwhals_stable_v2 __pyx_string_tab[153] -#define __pyx_n_u_nominal __pyx_string_tab[154] -#define __pyx_n_u_note __pyx_string_tab[155] -#define __pyx_n_u_np __pyx_string_tab[156] -#define __pyx_n_u_ns __pyx_string_tab[157] -#define __pyx_n_u_nt __pyx_string_tab[158] -#define __pyx_n_u_nth __pyx_string_tab[159] -#define __pyx_n_u_null_count __pyx_string_tab[160] -#define __pyx_n_u_numpy __pyx_string_tab[161] -#define __pyx_n_u_nw __pyx_string_tab[162] -#define __pyx_n_u_ordinal __pyx_string_tab[163] -#define __pyx_n_u_os __pyx_string_tab[164] -#define __pyx_n_u_path __pyx_string_tab[165] -#define __pyx_n_u_pop __pyx_string_tab[166] -#define __pyx_n_u_por __pyx_string_tab[167] -#define __pyx_n_u_pyreadstat__readstat_writer __pyx_string_tab[168] -#define __pyx_n_u_pyx_capi __pyx_string_tab[169] -#define __pyx_n_u_qualname __pyx_string_tab[170] -#define __pyx_n_u_readstat_parser __pyx_string_tab[171] -#define __pyx_n_u_replace __pyx_string_tab[172] -#define __pyx_n_u_right __pyx_string_tab[173] -#define __pyx_n_u_round __pyx_string_tab[174] -#define __pyx_n_u_row_compress __pyx_string_tab[175] -#define __pyx_n_u_row_compression __pyx_string_tab[176] -#define __pyx_n_u_sav __pyx_string_tab[177] -#define __pyx_n_u_scale __pyx_string_tab[178] -#define __pyx_n_u_set_name __pyx_string_tab[179] -#define __pyx_n_u_setdefault __pyx_string_tab[180] -#define __pyx_n_u_stable __pyx_string_tab[181] -#define __pyx_n_u_surrogateescape __pyx_string_tab[182] -#define __pyx_n_u_sys __pyx_string_tab[183] -#define __pyx_n_u_table_name __pyx_string_tab[184] -#define __pyx_n_u_test __pyx_string_tab[185] -#define __pyx_n_u_then __pyx_string_tab[186] -#define __pyx_n_u_time __pyx_string_tab[187] -#define __pyx_n_u_time_unit __pyx_string_tab[188] -#define __pyx_n_u_timestamp __pyx_string_tab[189] -#define __pyx_n_u_timezone __pyx_string_tab[190] -#define __pyx_n_u_total_seconds __pyx_string_tab[191] -#define __pyx_n_u_tzinfo __pyx_string_tab[192] -#define __pyx_n_u_unknown __pyx_string_tab[193] -#define __pyx_n_u_upper __pyx_string_tab[194] -#define __pyx_n_u_us __pyx_string_tab[195] -#define __pyx_n_u_utc __pyx_string_tab[196] -#define __pyx_n_u_v2 __pyx_string_tab[197] -#define __pyx_n_u_values __pyx_string_tab[198] -#define __pyx_n_u_variable_alignment __pyx_string_tab[199] -#define __pyx_n_u_variable_display_width __pyx_string_tab[200] -#define __pyx_n_u_variable_format __pyx_string_tab[201] -#define __pyx_n_u_variable_measure __pyx_string_tab[202] -#define __pyx_n_u_variable_value_labels __pyx_string_tab[203] -#define __pyx_n_u_version __pyx_string_tab[204] -#define __pyx_n_u_warn __pyx_string_tab[205] -#define __pyx_n_u_warnings __pyx_string_tab[206] -#define __pyx_n_u_when __pyx_string_tab[207] -#define __pyx_n_u_with_columns __pyx_string_tab[208] -#define __pyx_n_u_writer_entry_point __pyx_string_tab[209] -#define __pyx_n_u_writer_file_format __pyx_string_tab[210] -#define __pyx_n_u_writer_format __pyx_string_tab[211] -#define __pyx_n_u_x __pyx_string_tab[212] -#define __pyx_n_u_xport __pyx_string_tab[213] -#define __pyx_n_u_zip __pyx_string_tab[214] -#define __pyx_kp_b_PyObject_PyObject_PyObject_PyObj __pyx_string_tab[215] -#define __pyx_kp_b_PyObject_readstat_to_numpy_types __pyx_string_tab[216] -#define __pyx_kp_b_iso88591_Q_22BBVVW_11K1_1_S_Q_a_9D_1_1_a __pyx_string_tab[217] -#define __pyx_kp_b_void_readstat_error_t_check_exit __pyx_string_tab[218] +#define __pyx_kp_u_The_file_may_be_locked_by_anoth __pyx_string_tab[5] +#define __pyx_kp_u_Unknown_data_format_to_insert __pyx_string_tab[6] +#define __pyx_kp_u_Unknown_pywriter_variable_format __pyx_string_tab[7] +#define __pyx_kp_u_Version_not_supported __pyx_string_tab[8] +#define __pyx_kp_u__2 __pyx_string_tab[9] +#define __pyx_kp_u__3 __pyx_string_tab[10] +#define __pyx_kp_u__4 __pyx_string_tab[11] +#define __pyx_kp_u__5 __pyx_string_tab[12] +#define __pyx_kp_u__6 __pyx_string_tab[13] +#define __pyx_kp_u_add_note __pyx_string_tab[14] +#define __pyx_kp_u_alignment_for_variable __pyx_string_tab[15] +#define __pyx_kp_u_and_it_must_be_str_not_starting __pyx_string_tab[16] +#define __pyx_kp_u_character_missing_ranges_value_g __pyx_string_tab[17] +#define __pyx_kp_u_column_labels_must_be_either_lis __pyx_string_tab[18] +#define __pyx_kp_u_compress_and_row_compress_cannot __pyx_string_tab[19] +#define __pyx_kp_u_dataframe_must_be_pandas_or_pola __pyx_string_tab[20] +#define __pyx_kp_u_dictionaries_in_missing_ranges_m __pyx_string_tab[21] +#define __pyx_kp_u_does_not_exist __pyx_string_tab[22] +#define __pyx_kp_u_errno __pyx_string_tab[23] +#define __pyx_kp_u_file_path_could_not_be_encoded_w __pyx_string_tab[24] +#define __pyx_kp_u_for_writing __pyx_string_tab[25] +#define __pyx_kp_u_in_variable __pyx_string_tab[26] +#define __pyx_kp_u_instead __pyx_string_tab[27] +#define __pyx_kp_u_is_of_type __pyx_string_tab[28] +#define __pyx_kp_u_length_of_column_labels_must_be __pyx_string_tab[29] +#define __pyx_kp_u_measure_for_variable __pyx_string_tab[30] +#define __pyx_kp_u_missing_ranges_hi_and_lo_values __pyx_string_tab[31] +#define __pyx_kp_u_missing_ranges_hi_and_lo_values_2 __pyx_string_tab[32] +#define __pyx_kp_u_missing_ranges_max_1_discrete_nu __pyx_string_tab[33] +#define __pyx_kp_u_missing_ranges_max_1_range_value __pyx_string_tab[34] +#define __pyx_kp_u_missing_ranges_max_3_discrete_nu __pyx_string_tab[35] +#define __pyx_kp_u_missing_ranges_max_3_string_valu __pyx_string_tab[36] +#define __pyx_kp_u_missing_ranges_string_values_len __pyx_string_tab[37] +#define __pyx_kp_u_missing_ranges_values_in_diction __pyx_string_tab[38] +#define __pyx_kp_u_missing_ranges_values_must_be_bo __pyx_string_tab[39] +#define __pyx_kp_u_missing_user_values_not_allowed __pyx_string_tab[40] +#define __pyx_kp_u_missing_user_values_supports_val __pyx_string_tab[41] +#define __pyx_kp_u_missing_user_values_values_in_di __pyx_string_tab[42] +#define __pyx_kp_u_must_be_boolean_or_be_1_or_0 __pyx_string_tab[43] +#define __pyx_kp_u_must_be_dict_got __pyx_string_tab[44] +#define __pyx_kp_u_must_be_either_nominal_ordinal __pyx_string_tab[45] +#define __pyx_kp_u_must_be_either_right_center_lef __pyx_string_tab[46] +#define __pyx_kp_u_must_be_int __pyx_string_tab[47] +#define __pyx_kp_u_must_be_numeric __pyx_string_tab[48] +#define __pyx_kp_u_must_be_string __pyx_string_tab[49] +#define __pyx_kp_u_must_match_the_type_of_the_colu __pyx_string_tab[50] +#define __pyx_kp_u_note_should_be_either_str_or_lis __pyx_string_tab[51] +#define __pyx_kp_u_numeric_missing_ranges_value_giv __pyx_string_tab[52] +#define __pyx_kp_u_ordinal_2 __pyx_string_tab[53] +#define __pyx_kp_u_path_must_be_either_str_or_bytes __pyx_string_tab[54] +#define __pyx_kp_u_pyreadstat__readstat_parser __pyx_string_tab[55] +#define __pyx_kp_u_pyreadstat__readstat_writer_pyx __pyx_string_tab[56] +#define __pyx_kp_u_pyreadstat_datetime __pyx_string_tab[57] +#define __pyx_kp_u_pyreadstat_narwhals_stable_v2 __pyx_string_tab[58] +#define __pyx_kp_u_pyreadstat_numpy __pyx_string_tab[59] +#define __pyx_kp_u_pyreadstat_os __pyx_string_tab[60] +#define __pyx_kp_u_pyreadstat_sys __pyx_string_tab[61] +#define __pyx_kp_u_pyreadstat_warnings __pyx_string_tab[62] +#define __pyx_kp_u_starts_with_an_illegal_neither __pyx_string_tab[63] +#define __pyx_kp_u_the_destination_folder __pyx_string_tab[64] +#define __pyx_kp_u_unknown_file_format __pyx_string_tab[65] +#define __pyx_kp_u_utf_8 __pyx_string_tab[66] +#define __pyx_kp_u_variable_name __pyx_string_tab[67] +#define __pyx_kp_u_variable_name_s_contains_a_space __pyx_string_tab[68] +#define __pyx_kp_u_variable_names_must_be_non_empty __pyx_string_tab[69] +#define __pyx_kp_u_variable_value_labels_type_of_La __pyx_string_tab[70] +#define __pyx_kp_u_variable_value_labels_type_of_Va __pyx_string_tab[71] +#define __pyx_kp_u_variable_value_labels_value_for __pyx_string_tab[72] +#define __pyx_kp_u_wrong_writer_format __pyx_string_tab[73] +#define __pyx_n_u_ __pyx_string_tab[74] +#define __pyx_n_u_Boolean __pyx_string_tab[75] +#define __pyx_n_u_Categorical __pyx_string_tab[76] +#define __pyx_n_u_Date __pyx_string_tab[77] +#define __pyx_n_u_Datetime __pyx_string_tab[78] +#define __pyx_n_u_Decimal __pyx_string_tab[79] +#define __pyx_n_u_Enum __pyx_string_tab[80] +#define __pyx_n_u_Float32 __pyx_string_tab[81] +#define __pyx_n_u_Float64 __pyx_string_tab[82] +#define __pyx_n_u_Int128 __pyx_string_tab[83] +#define __pyx_n_u_Int16 __pyx_string_tab[84] +#define __pyx_n_u_Int32 __pyx_string_tab[85] +#define __pyx_n_u_Int64 __pyx_string_tab[86] +#define __pyx_n_u_Int8 __pyx_string_tab[87] +#define __pyx_n_u_Object __pyx_string_tab[88] +#define __pyx_n_u_PyreadstatError __pyx_string_tab[89] +#define __pyx_n_u_Pyx_PyDict_NextRef __pyx_string_tab[90] +#define __pyx_n_u_ReadstatError __pyx_string_tab[91] +#define __pyx_n_u_String __pyx_string_tab[92] +#define __pyx_n_u_Time __pyx_string_tab[93] +#define __pyx_n_u_UInt128 __pyx_string_tab[94] +#define __pyx_n_u_UInt16 __pyx_string_tab[95] +#define __pyx_n_u_UInt32 __pyx_string_tab[96] +#define __pyx_n_u_UInt64 __pyx_string_tab[97] +#define __pyx_n_u_UInt8 __pyx_string_tab[98] +#define __pyx_n_u_asyncio_coroutines __pyx_string_tab[99] +#define __pyx_n_u_cast __pyx_string_tab[100] +#define __pyx_n_u_cat __pyx_string_tab[101] +#define __pyx_n_u_center __pyx_string_tab[102] +#define __pyx_n_u_class_getitem __pyx_string_tab[103] +#define __pyx_n_u_cline_in_traceback __pyx_string_tab[104] +#define __pyx_n_u_clone __pyx_string_tab[105] +#define __pyx_n_u_column_labels __pyx_string_tab[106] +#define __pyx_n_u_columns __pyx_string_tab[107] +#define __pyx_n_u_combine __pyx_string_tab[108] +#define __pyx_n_u_compress __pyx_string_tab[109] +#define __pyx_n_u_d __pyx_string_tab[110] +#define __pyx_n_u_date __pyx_string_tab[111] +#define __pyx_n_u_datetime __pyx_string_tab[112] +#define __pyx_n_u_datetime64 __pyx_string_tab[113] +#define __pyx_n_u_days __pyx_string_tab[114] +#define __pyx_n_u_df __pyx_string_tab[115] +#define __pyx_n_u_dirname __pyx_string_tab[116] +#define __pyx_n_u_drop_nulls __pyx_string_tab[117] +#define __pyx_n_u_dst_path __pyx_string_tab[118] +#define __pyx_n_u_dta __pyx_string_tab[119] +#define __pyx_n_u_dtype __pyx_string_tab[120] +#define __pyx_n_u_eager_only __pyx_string_tab[121] +#define __pyx_n_u_encode __pyx_string_tab[122] +#define __pyx_n_u_expanduser __pyx_string_tab[123] +#define __pyx_n_u_file_format_version __pyx_string_tab[124] +#define __pyx_n_u_file_label __pyx_string_tab[125] +#define __pyx_n_u_filter __pyx_string_tab[126] +#define __pyx_n_u_from_native __pyx_string_tab[127] +#define __pyx_n_u_fsdecode __pyx_string_tab[128] +#define __pyx_n_u_fsencode __pyx_string_tab[129] +#define __pyx_n_u_func __pyx_string_tab[130] +#define __pyx_n_u_get __pyx_string_tab[131] +#define __pyx_n_u_get_categories __pyx_string_tab[132] +#define __pyx_n_u_get_native_namespace __pyx_string_tab[133] +#define __pyx_n_u_getfilesystemencoding __pyx_string_tab[134] +#define __pyx_n_u_hi __pyx_string_tab[135] +#define __pyx_n_u_implementation __pyx_string_tab[136] +#define __pyx_n_u_is_coroutine __pyx_string_tab[137] +#define __pyx_n_u_is_in __pyx_string_tab[138] +#define __pyx_n_u_is_pandas __pyx_string_tab[139] +#define __pyx_n_u_is_polars __pyx_string_tab[140] +#define __pyx_n_u_isalpha __pyx_string_tab[141] +#define __pyx_n_u_isdir __pyx_string_tab[142] +#define __pyx_n_u_isna __pyx_string_tab[143] +#define __pyx_n_u_items __pyx_string_tab[144] +#define __pyx_n_u_iter_columns __pyx_string_tab[145] +#define __pyx_n_u_iter_rows __pyx_string_tab[146] +#define __pyx_n_u_keys __pyx_string_tab[147] +#define __pyx_n_u_left __pyx_string_tab[148] +#define __pyx_n_u_lo __pyx_string_tab[149] +#define __pyx_n_u_main __pyx_string_tab[150] +#define __pyx_n_u_min __pyx_string_tab[151] +#define __pyx_n_u_missing_ranges __pyx_string_tab[152] +#define __pyx_n_u_missing_user_values __pyx_string_tab[153] +#define __pyx_n_u_module __pyx_string_tab[154] +#define __pyx_n_u_ms __pyx_string_tab[155] +#define __pyx_n_u_name __pyx_string_tab[156] +#define __pyx_n_u_name_2 __pyx_string_tab[157] +#define __pyx_n_u_narwhals_stable_v2 __pyx_string_tab[158] +#define __pyx_n_u_nominal __pyx_string_tab[159] +#define __pyx_n_u_note __pyx_string_tab[160] +#define __pyx_n_u_np __pyx_string_tab[161] +#define __pyx_n_u_ns __pyx_string_tab[162] +#define __pyx_n_u_nt __pyx_string_tab[163] +#define __pyx_n_u_nth __pyx_string_tab[164] +#define __pyx_n_u_null_count __pyx_string_tab[165] +#define __pyx_n_u_numpy __pyx_string_tab[166] +#define __pyx_n_u_nw __pyx_string_tab[167] +#define __pyx_n_u_ordinal __pyx_string_tab[168] +#define __pyx_n_u_os __pyx_string_tab[169] +#define __pyx_n_u_path __pyx_string_tab[170] +#define __pyx_n_u_pop __pyx_string_tab[171] +#define __pyx_n_u_por __pyx_string_tab[172] +#define __pyx_n_u_pyreadstat__readstat_writer __pyx_string_tab[173] +#define __pyx_n_u_pyx_capi __pyx_string_tab[174] +#define __pyx_n_u_qualname __pyx_string_tab[175] +#define __pyx_n_u_readstat_parser __pyx_string_tab[176] +#define __pyx_n_u_replace __pyx_string_tab[177] +#define __pyx_n_u_right __pyx_string_tab[178] +#define __pyx_n_u_round __pyx_string_tab[179] +#define __pyx_n_u_row_compress __pyx_string_tab[180] +#define __pyx_n_u_row_compression __pyx_string_tab[181] +#define __pyx_n_u_sav __pyx_string_tab[182] +#define __pyx_n_u_scale __pyx_string_tab[183] +#define __pyx_n_u_set_name __pyx_string_tab[184] +#define __pyx_n_u_setdefault __pyx_string_tab[185] +#define __pyx_n_u_stable __pyx_string_tab[186] +#define __pyx_n_u_strerror __pyx_string_tab[187] +#define __pyx_n_u_surrogateescape __pyx_string_tab[188] +#define __pyx_n_u_sys __pyx_string_tab[189] +#define __pyx_n_u_table_name __pyx_string_tab[190] +#define __pyx_n_u_test __pyx_string_tab[191] +#define __pyx_n_u_then __pyx_string_tab[192] +#define __pyx_n_u_time __pyx_string_tab[193] +#define __pyx_n_u_time_unit __pyx_string_tab[194] +#define __pyx_n_u_timestamp __pyx_string_tab[195] +#define __pyx_n_u_timezone __pyx_string_tab[196] +#define __pyx_n_u_total_seconds __pyx_string_tab[197] +#define __pyx_n_u_tzinfo __pyx_string_tab[198] +#define __pyx_n_u_unknown __pyx_string_tab[199] +#define __pyx_n_u_upper __pyx_string_tab[200] +#define __pyx_n_u_us __pyx_string_tab[201] +#define __pyx_n_u_utc __pyx_string_tab[202] +#define __pyx_n_u_v2 __pyx_string_tab[203] +#define __pyx_n_u_values __pyx_string_tab[204] +#define __pyx_n_u_variable_alignment __pyx_string_tab[205] +#define __pyx_n_u_variable_display_width __pyx_string_tab[206] +#define __pyx_n_u_variable_format __pyx_string_tab[207] +#define __pyx_n_u_variable_measure __pyx_string_tab[208] +#define __pyx_n_u_variable_value_labels __pyx_string_tab[209] +#define __pyx_n_u_version __pyx_string_tab[210] +#define __pyx_n_u_warn __pyx_string_tab[211] +#define __pyx_n_u_warnings __pyx_string_tab[212] +#define __pyx_n_u_when __pyx_string_tab[213] +#define __pyx_n_u_with_columns __pyx_string_tab[214] +#define __pyx_n_u_writer_entry_point __pyx_string_tab[215] +#define __pyx_n_u_writer_file_format __pyx_string_tab[216] +#define __pyx_n_u_writer_format __pyx_string_tab[217] +#define __pyx_n_u_x __pyx_string_tab[218] +#define __pyx_n_u_xport __pyx_string_tab[219] +#define __pyx_n_u_zip __pyx_string_tab[220] +#define __pyx_kp_b_PyObject_PyObject_PyObject_PyObj __pyx_string_tab[221] +#define __pyx_kp_b_PyObject_readstat_to_numpy_types __pyx_string_tab[222] +#define __pyx_kp_b_iso88591_Q_22BBVVW_11K1_1_S_Q_a_9D_1_1_a __pyx_string_tab[223] +#define __pyx_kp_b_void_readstat_error_t_check_exit __pyx_string_tab[224] #define __pyx_float_1e3 __pyx_number_tab[0] #define __pyx_float_1e6 __pyx_number_tab[1] #define __pyx_float_1e9 __pyx_number_tab[2] @@ -3198,7 +3216,7 @@ static CYTHON_SMALL_CODE int __pyx_m_clear(PyObject *m) { Py_CLEAR(clear_module_state->__pyx_ptype_10pyreadstat_16_readstat_parser_data_container); for (int i=0; i<2; ++i) { Py_CLEAR(clear_module_state->__pyx_tuple[i]); } for (int i=0; i<1; ++i) { Py_CLEAR(clear_module_state->__pyx_codeobj_tab[i]); } - for (int i=0; i<219; ++i) { Py_CLEAR(clear_module_state->__pyx_string_tab[i]); } + for (int i=0; i<225; ++i) { Py_CLEAR(clear_module_state->__pyx_string_tab[i]); } for (int i=0; i<9; ++i) { Py_CLEAR(clear_module_state->__pyx_number_tab[i]); } /* #### Code section: module_state_clear_contents ### */ /* CommonTypesMetaclass.module_state_clear */ @@ -3225,7 +3243,7 @@ static CYTHON_SMALL_CODE int __pyx_m_traverse(PyObject *m, visitproc visit, void Py_VISIT(traverse_module_state->__pyx_ptype_10pyreadstat_16_readstat_parser_data_container); for (int i=0; i<2; ++i) { __Pyx_VISIT_CONST(traverse_module_state->__pyx_tuple[i]); } for (int i=0; i<1; ++i) { __Pyx_VISIT_CONST(traverse_module_state->__pyx_codeobj_tab[i]); } - for (int i=0; i<219; ++i) { __Pyx_VISIT_CONST(traverse_module_state->__pyx_string_tab[i]); } + for (int i=0; i<225; ++i) { __Pyx_VISIT_CONST(traverse_module_state->__pyx_string_tab[i]); } for (int i=0; i<9; ++i) { __Pyx_VISIT_CONST(traverse_module_state->__pyx_number_tab[i]); } /* #### Code section: module_state_traverse_contents ### */ /* CommonTypesMetaclass.module_state_traverse */ @@ -3240,7 +3258,7 @@ return 0; #endif /* #### Code section: module_code ### */ -/* "pyreadstat/_readstat_writer.pyx":62 +/* "pyreadstat/_readstat_writer.pyx":63 * cdef int dta_117_max_width = 2045 * * cdef object vectorized_convert_datetime_to_number(object df, dst_file_format file_format, list pywriter_types, list pywriter_timeunits, int col_count): # <<<<<<<<<<<<<< @@ -3283,7 +3301,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_vectorized_convert_date __Pyx_RefNannySetupContext("vectorized_convert_datetime_to_number", 0); __Pyx_INCREF(__pyx_v_df); - /* "pyreadstat/_readstat_writer.pyx":68 + /* "pyreadstat/_readstat_writer.pyx":69 * cdef dict convfacs * cdef double offset_secs * cdef double mulfac = 1.0 # <<<<<<<<<<<<<< @@ -3292,7 +3310,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_vectorized_convert_date */ __pyx_v_mulfac = 1.0; - /* "pyreadstat/_readstat_writer.pyx":73 + /* "pyreadstat/_readstat_writer.pyx":74 * cdef double convfac * * if file_format == FILE_FORMAT_SAV or file_format == FILE_FORMAT_POR: # <<<<<<<<<<<<<< @@ -3303,7 +3321,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_vectorized_convert_date case __pyx_e_10pyreadstat_16_readstat_writer_FILE_FORMAT_SAV: case __pyx_e_10pyreadstat_16_readstat_writer_FILE_FORMAT_POR: - /* "pyreadstat/_readstat_writer.pyx":74 + /* "pyreadstat/_readstat_writer.pyx":75 * * if file_format == FILE_FORMAT_SAV or file_format == FILE_FORMAT_POR: * offset_secs = spss_offset_secs # <<<<<<<<<<<<<< @@ -3312,7 +3330,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_vectorized_convert_date */ __pyx_v_offset_secs = __pyx_v_10pyreadstat_16_readstat_writer_spss_offset_secs; - /* "pyreadstat/_readstat_writer.pyx":73 + /* "pyreadstat/_readstat_writer.pyx":74 * cdef double convfac * * if file_format == FILE_FORMAT_SAV or file_format == FILE_FORMAT_POR: # <<<<<<<<<<<<<< @@ -3322,7 +3340,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_vectorized_convert_date break; default: - /* "pyreadstat/_readstat_writer.pyx":76 + /* "pyreadstat/_readstat_writer.pyx":77 * offset_secs = spss_offset_secs * else: * offset_secs = sas_offset_secs # <<<<<<<<<<<<<< @@ -3333,7 +3351,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_vectorized_convert_date break; } - /* "pyreadstat/_readstat_writer.pyx":77 + /* "pyreadstat/_readstat_writer.pyx":78 * else: * offset_secs = sas_offset_secs * if file_format == FILE_FORMAT_DTA: # <<<<<<<<<<<<<< @@ -3343,7 +3361,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_vectorized_convert_date __pyx_t_1 = (__pyx_v_file_format == __pyx_e_10pyreadstat_16_readstat_writer_FILE_FORMAT_DTA); if (__pyx_t_1) { - /* "pyreadstat/_readstat_writer.pyx":79 + /* "pyreadstat/_readstat_writer.pyx":80 * if file_format == FILE_FORMAT_DTA: * # stata stores in milliseconds * mulfac = 1000.0 # <<<<<<<<<<<<<< @@ -3352,7 +3370,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_vectorized_convert_date */ __pyx_v_mulfac = 1000.0; - /* "pyreadstat/_readstat_writer.pyx":77 + /* "pyreadstat/_readstat_writer.pyx":78 * else: * offset_secs = sas_offset_secs * if file_format == FILE_FORMAT_DTA: # <<<<<<<<<<<<<< @@ -3361,34 +3379,34 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_vectorized_convert_date */ } - /* "pyreadstat/_readstat_writer.pyx":80 + /* "pyreadstat/_readstat_writer.pyx":81 * # stata stores in milliseconds * mulfac = 1000.0 * convfacs = {'ns': 1e9, 'us': 1e6, 'ms': 1e3} # <<<<<<<<<<<<<< * * col_indxs = list() */ - __pyx_t_2 = __Pyx_PyDict_NewPresized(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 80, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyDict_NewPresized(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 81, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_ns, __pyx_mstate_global->__pyx_float_1e9) < (0)) __PYX_ERR(0, 80, __pyx_L1_error) - if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_us, __pyx_mstate_global->__pyx_float_1e6) < (0)) __PYX_ERR(0, 80, __pyx_L1_error) - if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_ms, __pyx_mstate_global->__pyx_float_1e3) < (0)) __PYX_ERR(0, 80, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_ns, __pyx_mstate_global->__pyx_float_1e9) < (0)) __PYX_ERR(0, 81, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_us, __pyx_mstate_global->__pyx_float_1e6) < (0)) __PYX_ERR(0, 81, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_ms, __pyx_mstate_global->__pyx_float_1e3) < (0)) __PYX_ERR(0, 81, __pyx_L1_error) __pyx_v_convfacs = ((PyObject*)__pyx_t_2); __pyx_t_2 = 0; - /* "pyreadstat/_readstat_writer.pyx":82 + /* "pyreadstat/_readstat_writer.pyx":83 * convfacs = {'ns': 1e9, 'us': 1e6, 'ms': 1e3} * * col_indxs = list() # <<<<<<<<<<<<<< * for col_indx in range(col_count): * if pywriter_types[col_indx] == PYWRITER_DATETIME64: */ - __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 82, __pyx_L1_error) + __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 83, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_v_col_indxs = ((PyObject*)__pyx_t_2); __pyx_t_2 = 0; - /* "pyreadstat/_readstat_writer.pyx":83 + /* "pyreadstat/_readstat_writer.pyx":84 * * col_indxs = list() * for col_indx in range(col_count): # <<<<<<<<<<<<<< @@ -3400,7 +3418,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_vectorized_convert_date for (__pyx_t_5 = 0; __pyx_t_5 < __pyx_t_4; __pyx_t_5+=1) { __pyx_v_col_indx = __pyx_t_5; - /* "pyreadstat/_readstat_writer.pyx":84 + /* "pyreadstat/_readstat_writer.pyx":85 * col_indxs = list() * for col_indx in range(col_count): * if pywriter_types[col_indx] == PYWRITER_DATETIME64: # <<<<<<<<<<<<<< @@ -3409,32 +3427,32 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_vectorized_convert_date */ if (unlikely(__pyx_v_pywriter_types == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 84, __pyx_L1_error) + __PYX_ERR(0, 85, __pyx_L1_error) } - __pyx_t_2 = __Pyx_GetItemInt_List(__pyx_v_pywriter_types, __pyx_v_col_indx, int, 1, __Pyx_PyLong_From_int, 1, 1, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 84, __pyx_L1_error) + __pyx_t_2 = __Pyx_GetItemInt_List(__pyx_v_pywriter_types, __pyx_v_col_indx, int, 1, __Pyx_PyLong_From_int, 1, 1, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 85, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_6 = __Pyx_PyLong_From___pyx_t_10pyreadstat_16_readstat_writer_pywriter_variable_type(__pyx_e_10pyreadstat_16_readstat_writer_PYWRITER_DATETIME64); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 84, __pyx_L1_error) + __pyx_t_6 = __Pyx_PyLong_From___pyx_t_10pyreadstat_16_readstat_writer_pywriter_variable_type(__pyx_e_10pyreadstat_16_readstat_writer_PYWRITER_DATETIME64); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 85, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); - __pyx_t_7 = PyObject_RichCompare(__pyx_t_2, __pyx_t_6, Py_EQ); __Pyx_XGOTREF(__pyx_t_7); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 84, __pyx_L1_error) + __pyx_t_7 = PyObject_RichCompare(__pyx_t_2, __pyx_t_6, Py_EQ); __Pyx_XGOTREF(__pyx_t_7); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 85, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 84, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 85, __pyx_L1_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; if (__pyx_t_1) { - /* "pyreadstat/_readstat_writer.pyx":85 + /* "pyreadstat/_readstat_writer.pyx":86 * for col_indx in range(col_count): * if pywriter_types[col_indx] == PYWRITER_DATETIME64: * col_indxs.append(col_indx) # <<<<<<<<<<<<<< * * df = df.with_columns(nw.nth(col_indxs).cast(nw.Int64)) */ - __pyx_t_7 = __Pyx_PyLong_From_int(__pyx_v_col_indx); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 85, __pyx_L1_error) + __pyx_t_7 = __Pyx_PyLong_From_int(__pyx_v_col_indx); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 86, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); - __pyx_t_8 = __Pyx_PyList_Append(__pyx_v_col_indxs, __pyx_t_7); if (unlikely(__pyx_t_8 == ((int)-1))) __PYX_ERR(0, 85, __pyx_L1_error) + __pyx_t_8 = __Pyx_PyList_Append(__pyx_v_col_indxs, __pyx_t_7); if (unlikely(__pyx_t_8 == ((int)-1))) __PYX_ERR(0, 86, __pyx_L1_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - /* "pyreadstat/_readstat_writer.pyx":84 + /* "pyreadstat/_readstat_writer.pyx":85 * col_indxs = list() * for col_indx in range(col_count): * if pywriter_types[col_indx] == PYWRITER_DATETIME64: # <<<<<<<<<<<<<< @@ -3444,7 +3462,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_vectorized_convert_date } } - /* "pyreadstat/_readstat_writer.pyx":87 + /* "pyreadstat/_readstat_writer.pyx":88 * col_indxs.append(col_indx) * * df = df.with_columns(nw.nth(col_indxs).cast(nw.Int64)) # <<<<<<<<<<<<<< @@ -3454,9 +3472,9 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_vectorized_convert_date __pyx_t_6 = __pyx_v_df; __Pyx_INCREF(__pyx_t_6); __pyx_t_11 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_12, __pyx_mstate_global->__pyx_n_u_nw); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 87, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_12, __pyx_mstate_global->__pyx_n_u_nw); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 88, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); - __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_t_12, __pyx_mstate_global->__pyx_n_u_nth); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 87, __pyx_L1_error) + __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_t_12, __pyx_mstate_global->__pyx_n_u_nth); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 88, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __pyx_t_14 = 1; @@ -3476,14 +3494,14 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_vectorized_convert_date __pyx_t_10 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_13, __pyx_callargs+__pyx_t_14, (2-__pyx_t_14) | (__pyx_t_14*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0; __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; - if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 87, __pyx_L1_error) + if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 88, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); } __pyx_t_9 = __pyx_t_10; __Pyx_INCREF(__pyx_t_9); - __Pyx_GetModuleGlobalName(__pyx_t_13, __pyx_mstate_global->__pyx_n_u_nw); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 87, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_13, __pyx_mstate_global->__pyx_n_u_nw); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 88, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); - __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_13, __pyx_mstate_global->__pyx_n_u_Int64); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 87, __pyx_L1_error) + __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_13, __pyx_mstate_global->__pyx_n_u_Int64); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 88, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; __pyx_t_14 = 0; @@ -3493,7 +3511,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_vectorized_convert_date __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 87, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 88, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } __pyx_t_14 = 0; @@ -3502,13 +3520,13 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_vectorized_convert_date __pyx_t_7 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_with_columns, __pyx_callargs+__pyx_t_14, (2-__pyx_t_14) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 87, __pyx_L1_error) + if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 88, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); } __Pyx_DECREF_SET(__pyx_v_df, __pyx_t_7); __pyx_t_7 = 0; - /* "pyreadstat/_readstat_writer.pyx":88 + /* "pyreadstat/_readstat_writer.pyx":89 * * df = df.with_columns(nw.nth(col_indxs).cast(nw.Int64)) * for col_indx in col_indxs: # <<<<<<<<<<<<<< @@ -3521,19 +3539,19 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_vectorized_convert_date { Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_7); #if !CYTHON_ASSUME_SAFE_SIZE - if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 88, __pyx_L1_error) + if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 89, __pyx_L1_error) #endif if (__pyx_t_15 >= __pyx_temp) break; } __pyx_t_2 = __Pyx_PyList_GetItemRefFast(__pyx_t_7, __pyx_t_15, __Pyx_ReferenceSharing_OwnStrongReference); ++__pyx_t_15; - if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 88, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 89, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_3 = __Pyx_PyLong_As_int(__pyx_t_2); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 88, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyLong_As_int(__pyx_t_2); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 89, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_v_col_indx = __pyx_t_3; - /* "pyreadstat/_readstat_writer.pyx":89 + /* "pyreadstat/_readstat_writer.pyx":90 * df = df.with_columns(nw.nth(col_indxs).cast(nw.Int64)) * for col_indx in col_indxs: * convfac = convfacs[pywriter_timeunits[col_indx]] # <<<<<<<<<<<<<< @@ -3542,18 +3560,18 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_vectorized_convert_date */ if (unlikely(__pyx_v_pywriter_timeunits == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 89, __pyx_L1_error) + __PYX_ERR(0, 90, __pyx_L1_error) } - __pyx_t_2 = __Pyx_GetItemInt_List(__pyx_v_pywriter_timeunits, __pyx_v_col_indx, int, 1, __Pyx_PyLong_From_int, 1, 1, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 89, __pyx_L1_error) + __pyx_t_2 = __Pyx_GetItemInt_List(__pyx_v_pywriter_timeunits, __pyx_v_col_indx, int, 1, __Pyx_PyLong_From_int, 1, 1, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 90, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_6 = __Pyx_PyDict_GetItem(__pyx_v_convfacs, __pyx_t_2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 89, __pyx_L1_error) + __pyx_t_6 = __Pyx_PyDict_GetItem(__pyx_v_convfacs, __pyx_t_2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 90, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_16 = __Pyx_PyFloat_AsDouble(__pyx_t_6); if (unlikely((__pyx_t_16 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 89, __pyx_L1_error) + __pyx_t_16 = __Pyx_PyFloat_AsDouble(__pyx_t_6); if (unlikely((__pyx_t_16 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 90, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_v_convfac = __pyx_t_16; - /* "pyreadstat/_readstat_writer.pyx":90 + /* "pyreadstat/_readstat_writer.pyx":91 * for col_indx in col_indxs: * convfac = convfacs[pywriter_timeunits[col_indx]] * df = df.with_columns(nw.when(nw.nth(col_indx)!=-9223372036854775808).then(nw.nth(col_indx))) # <<<<<<<<<<<<<< @@ -3563,18 +3581,18 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_vectorized_convert_date __pyx_t_2 = __pyx_v_df; __Pyx_INCREF(__pyx_t_2); __pyx_t_13 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_12, __pyx_mstate_global->__pyx_n_u_nw); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 90, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_12, __pyx_mstate_global->__pyx_n_u_nw); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 91, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); - __pyx_t_17 = __Pyx_PyObject_GetAttrStr(__pyx_t_12, __pyx_mstate_global->__pyx_n_u_when); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 90, __pyx_L1_error) + __pyx_t_17 = __Pyx_PyObject_GetAttrStr(__pyx_t_12, __pyx_mstate_global->__pyx_n_u_when); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 91, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_17); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __pyx_t_18 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_19, __pyx_mstate_global->__pyx_n_u_nw); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 90, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_19, __pyx_mstate_global->__pyx_n_u_nw); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 91, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_19); - __pyx_t_20 = __Pyx_PyObject_GetAttrStr(__pyx_t_19, __pyx_mstate_global->__pyx_n_u_nth); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 90, __pyx_L1_error) + __pyx_t_20 = __Pyx_PyObject_GetAttrStr(__pyx_t_19, __pyx_mstate_global->__pyx_n_u_nth); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 91, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_20); __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; - __pyx_t_19 = __Pyx_PyLong_From_int(__pyx_v_col_indx); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 90, __pyx_L1_error) + __pyx_t_19 = __Pyx_PyLong_From_int(__pyx_v_col_indx); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 91, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_19); __pyx_t_14 = 1; #if CYTHON_UNPACK_METHODS @@ -3594,10 +3612,10 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_vectorized_convert_date __Pyx_XDECREF(__pyx_t_18); __pyx_t_18 = 0; __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0; - if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 90, __pyx_L1_error) + if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 91, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); } - __pyx_t_20 = PyObject_RichCompare(__pyx_t_12, __pyx_mstate_global->__pyx_int_neg_9223372036854775808, Py_NE); __Pyx_XGOTREF(__pyx_t_20); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 90, __pyx_L1_error) + __pyx_t_20 = PyObject_RichCompare(__pyx_t_12, __pyx_mstate_global->__pyx_int_neg_9223372036854775808, Py_NE); __Pyx_XGOTREF(__pyx_t_20); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 91, __pyx_L1_error) __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __pyx_t_14 = 1; #if CYTHON_UNPACK_METHODS @@ -3617,18 +3635,18 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_vectorized_convert_date __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0; __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0; __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0; - if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 90, __pyx_L1_error) + if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 91, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); } __pyx_t_11 = __pyx_t_9; __Pyx_INCREF(__pyx_t_11); __pyx_t_20 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_13, __pyx_mstate_global->__pyx_n_u_nw); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 90, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_13, __pyx_mstate_global->__pyx_n_u_nw); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 91, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); - __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_t_13, __pyx_mstate_global->__pyx_n_u_nth); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 90, __pyx_L1_error) + __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_t_13, __pyx_mstate_global->__pyx_n_u_nth); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 91, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; - __pyx_t_13 = __Pyx_PyLong_From_int(__pyx_v_col_indx); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 90, __pyx_L1_error) + __pyx_t_13 = __Pyx_PyLong_From_int(__pyx_v_col_indx); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 91, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __pyx_t_14 = 1; #if CYTHON_UNPACK_METHODS @@ -3648,7 +3666,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_vectorized_convert_date __Pyx_XDECREF(__pyx_t_20); __pyx_t_20 = 0; __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 90, __pyx_L1_error) + if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 91, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_17); } __pyx_t_14 = 0; @@ -3658,7 +3676,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_vectorized_convert_date __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0; __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 90, __pyx_L1_error) + if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 91, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); } __pyx_t_14 = 0; @@ -3667,13 +3685,13 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_vectorized_convert_date __pyx_t_6 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_with_columns, __pyx_callargs+__pyx_t_14, (2-__pyx_t_14) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 90, __pyx_L1_error) + if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 91, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); } __Pyx_DECREF_SET(__pyx_v_df, __pyx_t_6); __pyx_t_6 = 0; - /* "pyreadstat/_readstat_writer.pyx":91 + /* "pyreadstat/_readstat_writer.pyx":92 * convfac = convfacs[pywriter_timeunits[col_indx]] * df = df.with_columns(nw.when(nw.nth(col_indx)!=-9223372036854775808).then(nw.nth(col_indx))) * df = df.with_columns((((nw.nth(col_indx).cast(nw.Float64))/convfac) + offset_secs).round() * mulfac) # <<<<<<<<<<<<<< @@ -3683,12 +3701,12 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_vectorized_convert_date __pyx_t_10 = __pyx_v_df; __Pyx_INCREF(__pyx_t_10); __pyx_t_13 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_20, __pyx_mstate_global->__pyx_n_u_nw); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 91, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_20, __pyx_mstate_global->__pyx_n_u_nw); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 92, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_20); - __pyx_t_19 = __Pyx_PyObject_GetAttrStr(__pyx_t_20, __pyx_mstate_global->__pyx_n_u_nth); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 91, __pyx_L1_error) + __pyx_t_19 = __Pyx_PyObject_GetAttrStr(__pyx_t_20, __pyx_mstate_global->__pyx_n_u_nth); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 92, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_19); __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0; - __pyx_t_20 = __Pyx_PyLong_From_int(__pyx_v_col_indx); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 91, __pyx_L1_error) + __pyx_t_20 = __Pyx_PyLong_From_int(__pyx_v_col_indx); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 92, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_20); __pyx_t_14 = 1; #if CYTHON_UNPACK_METHODS @@ -3708,14 +3726,14 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_vectorized_convert_date __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0; __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0; __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; - if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 91, __pyx_L1_error) + if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 92, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); } __pyx_t_11 = __pyx_t_12; __Pyx_INCREF(__pyx_t_11); - __Pyx_GetModuleGlobalName(__pyx_t_19, __pyx_mstate_global->__pyx_n_u_nw); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 91, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_19, __pyx_mstate_global->__pyx_n_u_nw); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 92, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_19); - __pyx_t_20 = __Pyx_PyObject_GetAttrStr(__pyx_t_19, __pyx_mstate_global->__pyx_n_u_Float64); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 91, __pyx_L1_error) + __pyx_t_20 = __Pyx_PyObject_GetAttrStr(__pyx_t_19, __pyx_mstate_global->__pyx_n_u_Float64); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 92, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_20); __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; __pyx_t_14 = 0; @@ -3725,18 +3743,18 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_vectorized_convert_date __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0; __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0; __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 91, __pyx_L1_error) + if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 92, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_17); } - __pyx_t_12 = PyFloat_FromDouble(__pyx_v_convfac); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 91, __pyx_L1_error) + __pyx_t_12 = PyFloat_FromDouble(__pyx_v_convfac); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 92, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); - __pyx_t_20 = __Pyx_PyNumber_Divide(__pyx_t_17, __pyx_t_12); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 91, __pyx_L1_error) + __pyx_t_20 = __Pyx_PyNumber_Divide(__pyx_t_17, __pyx_t_12); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 92, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_20); __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0; __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - __pyx_t_12 = PyFloat_FromDouble(__pyx_v_offset_secs); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 91, __pyx_L1_error) + __pyx_t_12 = PyFloat_FromDouble(__pyx_v_offset_secs); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 92, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); - __pyx_t_17 = PyNumber_Add(__pyx_t_20, __pyx_t_12); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 91, __pyx_L1_error) + __pyx_t_17 = PyNumber_Add(__pyx_t_20, __pyx_t_12); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 92, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_17); __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0; __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; @@ -3748,12 +3766,12 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_vectorized_convert_date __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_round, __pyx_callargs+__pyx_t_14, (1-__pyx_t_14) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 91, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 92, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } - __pyx_t_17 = PyFloat_FromDouble(__pyx_v_mulfac); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 91, __pyx_L1_error) + __pyx_t_17 = PyFloat_FromDouble(__pyx_v_mulfac); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 92, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_17); - __pyx_t_9 = PyNumber_Multiply(__pyx_t_2, __pyx_t_17); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 91, __pyx_L1_error) + __pyx_t_9 = PyNumber_Multiply(__pyx_t_2, __pyx_t_17); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 92, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0; @@ -3763,13 +3781,13 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_vectorized_convert_date __pyx_t_6 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_with_columns, __pyx_callargs+__pyx_t_14, (2-__pyx_t_14) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 91, __pyx_L1_error) + if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 92, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); } __Pyx_DECREF_SET(__pyx_v_df, __pyx_t_6); __pyx_t_6 = 0; - /* "pyreadstat/_readstat_writer.pyx":88 + /* "pyreadstat/_readstat_writer.pyx":89 * * df = df.with_columns(nw.nth(col_indxs).cast(nw.Int64)) * for col_indx in col_indxs: # <<<<<<<<<<<<<< @@ -3779,7 +3797,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_vectorized_convert_date } __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - /* "pyreadstat/_readstat_writer.pyx":92 + /* "pyreadstat/_readstat_writer.pyx":93 * df = df.with_columns(nw.when(nw.nth(col_indx)!=-9223372036854775808).then(nw.nth(col_indx))) * df = df.with_columns((((nw.nth(col_indx).cast(nw.Float64))/convfac) + offset_secs).round() * mulfac) * return df # <<<<<<<<<<<<<< @@ -3791,7 +3809,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_vectorized_convert_date __pyx_r = __pyx_v_df; goto __pyx_L0; - /* "pyreadstat/_readstat_writer.pyx":62 + /* "pyreadstat/_readstat_writer.pyx":63 * cdef int dta_117_max_width = 2045 * * cdef object vectorized_convert_datetime_to_number(object df, dst_file_format file_format, list pywriter_types, list pywriter_timeunits, int col_count): # <<<<<<<<<<<<<< @@ -3824,7 +3842,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_vectorized_convert_date return __pyx_r; } -/* "pyreadstat/_readstat_writer.pyx":95 +/* "pyreadstat/_readstat_writer.pyx":96 * * * cdef object vectorized_convert_date_to_number(object df, dst_file_format file_format, list pywriter_types, int col_count): # <<<<<<<<<<<<<< @@ -3864,7 +3882,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_vectorized_convert_date __Pyx_RefNannySetupContext("vectorized_convert_date_to_number", 0); __Pyx_INCREF(__pyx_v_df); - /* "pyreadstat/_readstat_writer.pyx":100 + /* "pyreadstat/_readstat_writer.pyx":101 * """ * cdef double offset_days * cdef double mulfac = 1.0 # <<<<<<<<<<<<<< @@ -3873,7 +3891,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_vectorized_convert_date */ __pyx_v_mulfac = 1.0; - /* "pyreadstat/_readstat_writer.pyx":104 + /* "pyreadstat/_readstat_writer.pyx":105 * cdef list col_indxs * * if file_format == FILE_FORMAT_SAV or file_format == FILE_FORMAT_POR: # <<<<<<<<<<<<<< @@ -3884,7 +3902,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_vectorized_convert_date case __pyx_e_10pyreadstat_16_readstat_writer_FILE_FORMAT_SAV: case __pyx_e_10pyreadstat_16_readstat_writer_FILE_FORMAT_POR: - /* "pyreadstat/_readstat_writer.pyx":105 + /* "pyreadstat/_readstat_writer.pyx":106 * * if file_format == FILE_FORMAT_SAV or file_format == FILE_FORMAT_POR: * offset_days = spss_offset_days # <<<<<<<<<<<<<< @@ -3893,7 +3911,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_vectorized_convert_date */ __pyx_v_offset_days = __pyx_v_10pyreadstat_16_readstat_writer_spss_offset_days; - /* "pyreadstat/_readstat_writer.pyx":107 + /* "pyreadstat/_readstat_writer.pyx":108 * offset_days = spss_offset_days * # spss stores in seconds * mulfac = 86400 # <<<<<<<<<<<<<< @@ -3902,7 +3920,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_vectorized_convert_date */ __pyx_v_mulfac = 86400.0; - /* "pyreadstat/_readstat_writer.pyx":104 + /* "pyreadstat/_readstat_writer.pyx":105 * cdef list col_indxs * * if file_format == FILE_FORMAT_SAV or file_format == FILE_FORMAT_POR: # <<<<<<<<<<<<<< @@ -3912,7 +3930,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_vectorized_convert_date break; default: - /* "pyreadstat/_readstat_writer.pyx":109 + /* "pyreadstat/_readstat_writer.pyx":110 * mulfac = 86400 * else: * offset_days = sas_offset_days # <<<<<<<<<<<<<< @@ -3923,19 +3941,19 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_vectorized_convert_date break; } - /* "pyreadstat/_readstat_writer.pyx":110 + /* "pyreadstat/_readstat_writer.pyx":111 * else: * offset_days = sas_offset_days * col_indxs = list() # <<<<<<<<<<<<<< * for col_indx in range(col_count): * if pywriter_types[col_indx] == PYWRITER_DATE64: */ - __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 110, __pyx_L1_error) + __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 111, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_col_indxs = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - /* "pyreadstat/_readstat_writer.pyx":111 + /* "pyreadstat/_readstat_writer.pyx":112 * offset_days = sas_offset_days * col_indxs = list() * for col_indx in range(col_count): # <<<<<<<<<<<<<< @@ -3947,7 +3965,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_vectorized_convert_date for (__pyx_t_4 = 0; __pyx_t_4 < __pyx_t_3; __pyx_t_4+=1) { __pyx_v_col_indx = __pyx_t_4; - /* "pyreadstat/_readstat_writer.pyx":112 + /* "pyreadstat/_readstat_writer.pyx":113 * col_indxs = list() * for col_indx in range(col_count): * if pywriter_types[col_indx] == PYWRITER_DATE64: # <<<<<<<<<<<<<< @@ -3956,32 +3974,32 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_vectorized_convert_date */ if (unlikely(__pyx_v_pywriter_types == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 112, __pyx_L1_error) + __PYX_ERR(0, 113, __pyx_L1_error) } - __pyx_t_1 = __Pyx_GetItemInt_List(__pyx_v_pywriter_types, __pyx_v_col_indx, int, 1, __Pyx_PyLong_From_int, 1, 1, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 112, __pyx_L1_error) + __pyx_t_1 = __Pyx_GetItemInt_List(__pyx_v_pywriter_types, __pyx_v_col_indx, int, 1, __Pyx_PyLong_From_int, 1, 1, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 113, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_5 = __Pyx_PyLong_From___pyx_t_10pyreadstat_16_readstat_writer_pywriter_variable_type(__pyx_e_10pyreadstat_16_readstat_writer_PYWRITER_DATE64); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 112, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyLong_From___pyx_t_10pyreadstat_16_readstat_writer_pywriter_variable_type(__pyx_e_10pyreadstat_16_readstat_writer_PYWRITER_DATE64); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 113, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); - __pyx_t_6 = PyObject_RichCompare(__pyx_t_1, __pyx_t_5, Py_EQ); __Pyx_XGOTREF(__pyx_t_6); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 112, __pyx_L1_error) + __pyx_t_6 = PyObject_RichCompare(__pyx_t_1, __pyx_t_5, Py_EQ); __Pyx_XGOTREF(__pyx_t_6); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 113, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely((__pyx_t_7 < 0))) __PYX_ERR(0, 112, __pyx_L1_error) + __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely((__pyx_t_7 < 0))) __PYX_ERR(0, 113, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (__pyx_t_7) { - /* "pyreadstat/_readstat_writer.pyx":113 + /* "pyreadstat/_readstat_writer.pyx":114 * for col_indx in range(col_count): * if pywriter_types[col_indx] == PYWRITER_DATE64: * col_indxs.append(col_indx) # <<<<<<<<<<<<<< * * df = df.with_columns(nw.nth(col_indxs).cast(nw.Int64)) */ - __pyx_t_6 = __Pyx_PyLong_From_int(__pyx_v_col_indx); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 113, __pyx_L1_error) + __pyx_t_6 = __Pyx_PyLong_From_int(__pyx_v_col_indx); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 114, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); - __pyx_t_8 = __Pyx_PyList_Append(__pyx_v_col_indxs, __pyx_t_6); if (unlikely(__pyx_t_8 == ((int)-1))) __PYX_ERR(0, 113, __pyx_L1_error) + __pyx_t_8 = __Pyx_PyList_Append(__pyx_v_col_indxs, __pyx_t_6); if (unlikely(__pyx_t_8 == ((int)-1))) __PYX_ERR(0, 114, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - /* "pyreadstat/_readstat_writer.pyx":112 + /* "pyreadstat/_readstat_writer.pyx":113 * col_indxs = list() * for col_indx in range(col_count): * if pywriter_types[col_indx] == PYWRITER_DATE64: # <<<<<<<<<<<<<< @@ -3991,7 +4009,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_vectorized_convert_date } } - /* "pyreadstat/_readstat_writer.pyx":115 + /* "pyreadstat/_readstat_writer.pyx":116 * col_indxs.append(col_indx) * * df = df.with_columns(nw.nth(col_indxs).cast(nw.Int64)) # <<<<<<<<<<<<<< @@ -4001,9 +4019,9 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_vectorized_convert_date __pyx_t_5 = __pyx_v_df; __Pyx_INCREF(__pyx_t_5); __pyx_t_11 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_12, __pyx_mstate_global->__pyx_n_u_nw); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 115, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_12, __pyx_mstate_global->__pyx_n_u_nw); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 116, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); - __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_t_12, __pyx_mstate_global->__pyx_n_u_nth); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 115, __pyx_L1_error) + __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_t_12, __pyx_mstate_global->__pyx_n_u_nth); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 116, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __pyx_t_14 = 1; @@ -4023,14 +4041,14 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_vectorized_convert_date __pyx_t_10 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_13, __pyx_callargs+__pyx_t_14, (2-__pyx_t_14) | (__pyx_t_14*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0; __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; - if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 115, __pyx_L1_error) + if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 116, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); } __pyx_t_9 = __pyx_t_10; __Pyx_INCREF(__pyx_t_9); - __Pyx_GetModuleGlobalName(__pyx_t_13, __pyx_mstate_global->__pyx_n_u_nw); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 115, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_13, __pyx_mstate_global->__pyx_n_u_nw); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 116, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); - __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_13, __pyx_mstate_global->__pyx_n_u_Int64); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 115, __pyx_L1_error) + __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_13, __pyx_mstate_global->__pyx_n_u_Int64); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 116, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; __pyx_t_14 = 0; @@ -4040,7 +4058,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_vectorized_convert_date __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 115, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 116, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } __pyx_t_14 = 0; @@ -4049,13 +4067,13 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_vectorized_convert_date __pyx_t_6 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_with_columns, __pyx_callargs+__pyx_t_14, (2-__pyx_t_14) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 115, __pyx_L1_error) + if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 116, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); } __Pyx_DECREF_SET(__pyx_v_df, __pyx_t_6); __pyx_t_6 = 0; - /* "pyreadstat/_readstat_writer.pyx":116 + /* "pyreadstat/_readstat_writer.pyx":117 * * df = df.with_columns(nw.nth(col_indxs).cast(nw.Int64)) * for col_indx in col_indxs: # <<<<<<<<<<<<<< @@ -4068,19 +4086,19 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_vectorized_convert_date { Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_6); #if !CYTHON_ASSUME_SAFE_SIZE - if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 116, __pyx_L1_error) + if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 117, __pyx_L1_error) #endif if (__pyx_t_15 >= __pyx_temp) break; } __pyx_t_1 = __Pyx_PyList_GetItemRefFast(__pyx_t_6, __pyx_t_15, __Pyx_ReferenceSharing_OwnStrongReference); ++__pyx_t_15; - if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 116, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 117, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = __Pyx_PyLong_As_int(__pyx_t_1); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 116, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_As_int(__pyx_t_1); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 117, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_v_col_indx = __pyx_t_2; - /* "pyreadstat/_readstat_writer.pyx":117 + /* "pyreadstat/_readstat_writer.pyx":118 * df = df.with_columns(nw.nth(col_indxs).cast(nw.Int64)) * for col_indx in col_indxs: * df = df.with_columns(nw.when(nw.nth(col_indx)!=-9223372036854775808).then(nw.nth(col_indx))) # <<<<<<<<<<<<<< @@ -4090,18 +4108,18 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_vectorized_convert_date __pyx_t_5 = __pyx_v_df; __Pyx_INCREF(__pyx_t_5); __pyx_t_13 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_12, __pyx_mstate_global->__pyx_n_u_nw); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 117, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_12, __pyx_mstate_global->__pyx_n_u_nw); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 118, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); - __pyx_t_16 = __Pyx_PyObject_GetAttrStr(__pyx_t_12, __pyx_mstate_global->__pyx_n_u_when); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 117, __pyx_L1_error) + __pyx_t_16 = __Pyx_PyObject_GetAttrStr(__pyx_t_12, __pyx_mstate_global->__pyx_n_u_when); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 118, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_16); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __pyx_t_17 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_18, __pyx_mstate_global->__pyx_n_u_nw); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 117, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_18, __pyx_mstate_global->__pyx_n_u_nw); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 118, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_18); - __pyx_t_19 = __Pyx_PyObject_GetAttrStr(__pyx_t_18, __pyx_mstate_global->__pyx_n_u_nth); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 117, __pyx_L1_error) + __pyx_t_19 = __Pyx_PyObject_GetAttrStr(__pyx_t_18, __pyx_mstate_global->__pyx_n_u_nth); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 118, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_19); __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; - __pyx_t_18 = __Pyx_PyLong_From_int(__pyx_v_col_indx); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 117, __pyx_L1_error) + __pyx_t_18 = __Pyx_PyLong_From_int(__pyx_v_col_indx); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 118, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_18); __pyx_t_14 = 1; #if CYTHON_UNPACK_METHODS @@ -4121,10 +4139,10 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_vectorized_convert_date __Pyx_XDECREF(__pyx_t_17); __pyx_t_17 = 0; __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; - if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 117, __pyx_L1_error) + if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 118, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); } - __pyx_t_19 = PyObject_RichCompare(__pyx_t_12, __pyx_mstate_global->__pyx_int_neg_9223372036854775808, Py_NE); __Pyx_XGOTREF(__pyx_t_19); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 117, __pyx_L1_error) + __pyx_t_19 = PyObject_RichCompare(__pyx_t_12, __pyx_mstate_global->__pyx_int_neg_9223372036854775808, Py_NE); __Pyx_XGOTREF(__pyx_t_19); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 118, __pyx_L1_error) __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __pyx_t_14 = 1; #if CYTHON_UNPACK_METHODS @@ -4144,18 +4162,18 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_vectorized_convert_date __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0; __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; - if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 117, __pyx_L1_error) + if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 118, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); } __pyx_t_11 = __pyx_t_9; __Pyx_INCREF(__pyx_t_11); __pyx_t_19 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_13, __pyx_mstate_global->__pyx_n_u_nw); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 117, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_13, __pyx_mstate_global->__pyx_n_u_nw); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 118, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); - __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_t_13, __pyx_mstate_global->__pyx_n_u_nth); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 117, __pyx_L1_error) + __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_t_13, __pyx_mstate_global->__pyx_n_u_nth); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 118, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; - __pyx_t_13 = __Pyx_PyLong_From_int(__pyx_v_col_indx); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 117, __pyx_L1_error) + __pyx_t_13 = __Pyx_PyLong_From_int(__pyx_v_col_indx); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 118, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __pyx_t_14 = 1; #if CYTHON_UNPACK_METHODS @@ -4175,7 +4193,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_vectorized_convert_date __Pyx_XDECREF(__pyx_t_19); __pyx_t_19 = 0; __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 117, __pyx_L1_error) + if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 118, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_16); } __pyx_t_14 = 0; @@ -4185,7 +4203,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_vectorized_convert_date __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0; __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 117, __pyx_L1_error) + if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 118, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); } __pyx_t_14 = 0; @@ -4194,13 +4212,13 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_vectorized_convert_date __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_with_columns, __pyx_callargs+__pyx_t_14, (2-__pyx_t_14) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 117, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 118, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } __Pyx_DECREF_SET(__pyx_v_df, __pyx_t_1); __pyx_t_1 = 0; - /* "pyreadstat/_readstat_writer.pyx":118 + /* "pyreadstat/_readstat_writer.pyx":119 * for col_indx in col_indxs: * df = df.with_columns(nw.when(nw.nth(col_indx)!=-9223372036854775808).then(nw.nth(col_indx))) * df = df.with_columns((nw.nth(col_indx).cast(nw.Float64) + offset_days).round() * mulfac) # <<<<<<<<<<<<<< @@ -4210,12 +4228,12 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_vectorized_convert_date __pyx_t_10 = __pyx_v_df; __Pyx_INCREF(__pyx_t_10); __pyx_t_13 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_19, __pyx_mstate_global->__pyx_n_u_nw); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 118, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_19, __pyx_mstate_global->__pyx_n_u_nw); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 119, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_19); - __pyx_t_18 = __Pyx_PyObject_GetAttrStr(__pyx_t_19, __pyx_mstate_global->__pyx_n_u_nth); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 118, __pyx_L1_error) + __pyx_t_18 = __Pyx_PyObject_GetAttrStr(__pyx_t_19, __pyx_mstate_global->__pyx_n_u_nth); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 119, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_18); __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; - __pyx_t_19 = __Pyx_PyLong_From_int(__pyx_v_col_indx); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 118, __pyx_L1_error) + __pyx_t_19 = __Pyx_PyLong_From_int(__pyx_v_col_indx); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 119, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_19); __pyx_t_14 = 1; #if CYTHON_UNPACK_METHODS @@ -4235,14 +4253,14 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_vectorized_convert_date __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0; __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; - if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 118, __pyx_L1_error) + if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 119, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); } __pyx_t_11 = __pyx_t_12; __Pyx_INCREF(__pyx_t_11); - __Pyx_GetModuleGlobalName(__pyx_t_18, __pyx_mstate_global->__pyx_n_u_nw); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 118, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_18, __pyx_mstate_global->__pyx_n_u_nw); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 119, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_18); - __pyx_t_19 = __Pyx_PyObject_GetAttrStr(__pyx_t_18, __pyx_mstate_global->__pyx_n_u_Float64); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 118, __pyx_L1_error) + __pyx_t_19 = __Pyx_PyObject_GetAttrStr(__pyx_t_18, __pyx_mstate_global->__pyx_n_u_Float64); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 119, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_19); __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; __pyx_t_14 = 0; @@ -4252,12 +4270,12 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_vectorized_convert_date __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0; __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 118, __pyx_L1_error) + if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 119, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_16); } - __pyx_t_12 = PyFloat_FromDouble(__pyx_v_offset_days); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 118, __pyx_L1_error) + __pyx_t_12 = PyFloat_FromDouble(__pyx_v_offset_days); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 119, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); - __pyx_t_19 = PyNumber_Add(__pyx_t_16, __pyx_t_12); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 118, __pyx_L1_error) + __pyx_t_19 = PyNumber_Add(__pyx_t_16, __pyx_t_12); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 119, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_19); __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; @@ -4269,12 +4287,12 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_vectorized_convert_date __pyx_t_5 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_round, __pyx_callargs+__pyx_t_14, (1-__pyx_t_14) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; - if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 118, __pyx_L1_error) + if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 119, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); } - __pyx_t_19 = PyFloat_FromDouble(__pyx_v_mulfac); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 118, __pyx_L1_error) + __pyx_t_19 = PyFloat_FromDouble(__pyx_v_mulfac); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 119, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_19); - __pyx_t_9 = PyNumber_Multiply(__pyx_t_5, __pyx_t_19); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 118, __pyx_L1_error) + __pyx_t_9 = PyNumber_Multiply(__pyx_t_5, __pyx_t_19); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 119, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; @@ -4284,13 +4302,13 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_vectorized_convert_date __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_with_columns, __pyx_callargs+__pyx_t_14, (2-__pyx_t_14) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 118, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 119, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } __Pyx_DECREF_SET(__pyx_v_df, __pyx_t_1); __pyx_t_1 = 0; - /* "pyreadstat/_readstat_writer.pyx":116 + /* "pyreadstat/_readstat_writer.pyx":117 * * df = df.with_columns(nw.nth(col_indxs).cast(nw.Int64)) * for col_indx in col_indxs: # <<<<<<<<<<<<<< @@ -4300,7 +4318,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_vectorized_convert_date } __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - /* "pyreadstat/_readstat_writer.pyx":119 + /* "pyreadstat/_readstat_writer.pyx":120 * df = df.with_columns(nw.when(nw.nth(col_indx)!=-9223372036854775808).then(nw.nth(col_indx))) * df = df.with_columns((nw.nth(col_indx).cast(nw.Float64) + offset_days).round() * mulfac) * return df # <<<<<<<<<<<<<< @@ -4312,7 +4330,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_vectorized_convert_date __pyx_r = __pyx_v_df; goto __pyx_L0; - /* "pyreadstat/_readstat_writer.pyx":95 + /* "pyreadstat/_readstat_writer.pyx":96 * * * cdef object vectorized_convert_date_to_number(object df, dst_file_format file_format, list pywriter_types, int col_count): # <<<<<<<<<<<<<< @@ -4344,7 +4362,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_vectorized_convert_date return __pyx_r; } -/* "pyreadstat/_readstat_writer.pyx":121 +/* "pyreadstat/_readstat_writer.pyx":122 * return df * * cdef object vectorized_convert_time_to_number(object df, dst_file_format file_format, list pywriter_types, int col_count): # <<<<<<<<<<<<<< @@ -4383,7 +4401,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_vectorized_convert_time __Pyx_RefNannySetupContext("vectorized_convert_time_to_number", 0); __Pyx_INCREF(__pyx_v_df); - /* "pyreadstat/_readstat_writer.pyx":125 + /* "pyreadstat/_readstat_writer.pyx":126 * transforms time64 columns in the dataframe to floats * """ * cdef double mulfac = 1.0 # <<<<<<<<<<<<<< @@ -4392,7 +4410,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_vectorized_convert_time */ __pyx_v_mulfac = 1.0; - /* "pyreadstat/_readstat_writer.pyx":129 + /* "pyreadstat/_readstat_writer.pyx":130 * cdef list col_indxs * * if file_format == FILE_FORMAT_DTA: # <<<<<<<<<<<<<< @@ -4402,7 +4420,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_vectorized_convert_time __pyx_t_1 = (__pyx_v_file_format == __pyx_e_10pyreadstat_16_readstat_writer_FILE_FORMAT_DTA); if (__pyx_t_1) { - /* "pyreadstat/_readstat_writer.pyx":131 + /* "pyreadstat/_readstat_writer.pyx":132 * if file_format == FILE_FORMAT_DTA: * # stata stores in milliseconds * mulfac = 1000.0 # <<<<<<<<<<<<<< @@ -4411,7 +4429,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_vectorized_convert_time */ __pyx_v_mulfac = 1000.0; - /* "pyreadstat/_readstat_writer.pyx":129 + /* "pyreadstat/_readstat_writer.pyx":130 * cdef list col_indxs * * if file_format == FILE_FORMAT_DTA: # <<<<<<<<<<<<<< @@ -4420,19 +4438,19 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_vectorized_convert_time */ } - /* "pyreadstat/_readstat_writer.pyx":133 + /* "pyreadstat/_readstat_writer.pyx":134 * mulfac = 1000.0 * * col_indxs = list() # <<<<<<<<<<<<<< * for col_indx in range(col_count): * if pywriter_types[col_indx] == PYWRITER_TIME64: */ - __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 133, __pyx_L1_error) + __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 134, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_v_col_indxs = ((PyObject*)__pyx_t_2); __pyx_t_2 = 0; - /* "pyreadstat/_readstat_writer.pyx":134 + /* "pyreadstat/_readstat_writer.pyx":135 * * col_indxs = list() * for col_indx in range(col_count): # <<<<<<<<<<<<<< @@ -4444,7 +4462,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_vectorized_convert_time for (__pyx_t_5 = 0; __pyx_t_5 < __pyx_t_4; __pyx_t_5+=1) { __pyx_v_col_indx = __pyx_t_5; - /* "pyreadstat/_readstat_writer.pyx":135 + /* "pyreadstat/_readstat_writer.pyx":136 * col_indxs = list() * for col_indx in range(col_count): * if pywriter_types[col_indx] == PYWRITER_TIME64: # <<<<<<<<<<<<<< @@ -4453,32 +4471,32 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_vectorized_convert_time */ if (unlikely(__pyx_v_pywriter_types == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 135, __pyx_L1_error) + __PYX_ERR(0, 136, __pyx_L1_error) } - __pyx_t_2 = __Pyx_GetItemInt_List(__pyx_v_pywriter_types, __pyx_v_col_indx, int, 1, __Pyx_PyLong_From_int, 1, 1, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 135, __pyx_L1_error) + __pyx_t_2 = __Pyx_GetItemInt_List(__pyx_v_pywriter_types, __pyx_v_col_indx, int, 1, __Pyx_PyLong_From_int, 1, 1, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 136, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_6 = __Pyx_PyLong_From___pyx_t_10pyreadstat_16_readstat_writer_pywriter_variable_type(__pyx_e_10pyreadstat_16_readstat_writer_PYWRITER_TIME64); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 135, __pyx_L1_error) + __pyx_t_6 = __Pyx_PyLong_From___pyx_t_10pyreadstat_16_readstat_writer_pywriter_variable_type(__pyx_e_10pyreadstat_16_readstat_writer_PYWRITER_TIME64); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 136, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); - __pyx_t_7 = PyObject_RichCompare(__pyx_t_2, __pyx_t_6, Py_EQ); __Pyx_XGOTREF(__pyx_t_7); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 135, __pyx_L1_error) + __pyx_t_7 = PyObject_RichCompare(__pyx_t_2, __pyx_t_6, Py_EQ); __Pyx_XGOTREF(__pyx_t_7); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 136, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 135, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 136, __pyx_L1_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; if (__pyx_t_1) { - /* "pyreadstat/_readstat_writer.pyx":136 + /* "pyreadstat/_readstat_writer.pyx":137 * for col_indx in range(col_count): * if pywriter_types[col_indx] == PYWRITER_TIME64: * col_indxs.append(col_indx) # <<<<<<<<<<<<<< * * df = df.with_columns(nw.nth(col_indxs).cast(nw.Int64)) */ - __pyx_t_7 = __Pyx_PyLong_From_int(__pyx_v_col_indx); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 136, __pyx_L1_error) + __pyx_t_7 = __Pyx_PyLong_From_int(__pyx_v_col_indx); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 137, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); - __pyx_t_8 = __Pyx_PyList_Append(__pyx_v_col_indxs, __pyx_t_7); if (unlikely(__pyx_t_8 == ((int)-1))) __PYX_ERR(0, 136, __pyx_L1_error) + __pyx_t_8 = __Pyx_PyList_Append(__pyx_v_col_indxs, __pyx_t_7); if (unlikely(__pyx_t_8 == ((int)-1))) __PYX_ERR(0, 137, __pyx_L1_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - /* "pyreadstat/_readstat_writer.pyx":135 + /* "pyreadstat/_readstat_writer.pyx":136 * col_indxs = list() * for col_indx in range(col_count): * if pywriter_types[col_indx] == PYWRITER_TIME64: # <<<<<<<<<<<<<< @@ -4488,7 +4506,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_vectorized_convert_time } } - /* "pyreadstat/_readstat_writer.pyx":138 + /* "pyreadstat/_readstat_writer.pyx":139 * col_indxs.append(col_indx) * * df = df.with_columns(nw.nth(col_indxs).cast(nw.Int64)) # <<<<<<<<<<<<<< @@ -4498,9 +4516,9 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_vectorized_convert_time __pyx_t_6 = __pyx_v_df; __Pyx_INCREF(__pyx_t_6); __pyx_t_11 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_12, __pyx_mstate_global->__pyx_n_u_nw); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 138, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_12, __pyx_mstate_global->__pyx_n_u_nw); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 139, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); - __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_t_12, __pyx_mstate_global->__pyx_n_u_nth); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 138, __pyx_L1_error) + __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_t_12, __pyx_mstate_global->__pyx_n_u_nth); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 139, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __pyx_t_14 = 1; @@ -4520,14 +4538,14 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_vectorized_convert_time __pyx_t_10 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_13, __pyx_callargs+__pyx_t_14, (2-__pyx_t_14) | (__pyx_t_14*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0; __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; - if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 138, __pyx_L1_error) + if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 139, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); } __pyx_t_9 = __pyx_t_10; __Pyx_INCREF(__pyx_t_9); - __Pyx_GetModuleGlobalName(__pyx_t_13, __pyx_mstate_global->__pyx_n_u_nw); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 138, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_13, __pyx_mstate_global->__pyx_n_u_nw); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 139, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); - __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_13, __pyx_mstate_global->__pyx_n_u_Int64); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 138, __pyx_L1_error) + __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_13, __pyx_mstate_global->__pyx_n_u_Int64); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 139, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; __pyx_t_14 = 0; @@ -4537,7 +4555,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_vectorized_convert_time __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 138, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 139, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } __pyx_t_14 = 0; @@ -4546,13 +4564,13 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_vectorized_convert_time __pyx_t_7 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_with_columns, __pyx_callargs+__pyx_t_14, (2-__pyx_t_14) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 138, __pyx_L1_error) + if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 139, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); } __Pyx_DECREF_SET(__pyx_v_df, __pyx_t_7); __pyx_t_7 = 0; - /* "pyreadstat/_readstat_writer.pyx":139 + /* "pyreadstat/_readstat_writer.pyx":140 * * df = df.with_columns(nw.nth(col_indxs).cast(nw.Int64)) * for col_indx in col_indxs: # <<<<<<<<<<<<<< @@ -4565,19 +4583,19 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_vectorized_convert_time { Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_7); #if !CYTHON_ASSUME_SAFE_SIZE - if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 139, __pyx_L1_error) + if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 140, __pyx_L1_error) #endif if (__pyx_t_15 >= __pyx_temp) break; } __pyx_t_2 = __Pyx_PyList_GetItemRefFast(__pyx_t_7, __pyx_t_15, __Pyx_ReferenceSharing_OwnStrongReference); ++__pyx_t_15; - if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 139, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 140, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_3 = __Pyx_PyLong_As_int(__pyx_t_2); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 139, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyLong_As_int(__pyx_t_2); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 140, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_v_col_indx = __pyx_t_3; - /* "pyreadstat/_readstat_writer.pyx":140 + /* "pyreadstat/_readstat_writer.pyx":141 * df = df.with_columns(nw.nth(col_indxs).cast(nw.Int64)) * for col_indx in col_indxs: * df = df.with_columns(nw.when(nw.nth(col_indx)!=-9223372036854775808).then(nw.nth(col_indx))) # <<<<<<<<<<<<<< @@ -4587,18 +4605,18 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_vectorized_convert_time __pyx_t_6 = __pyx_v_df; __Pyx_INCREF(__pyx_t_6); __pyx_t_13 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_12, __pyx_mstate_global->__pyx_n_u_nw); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 140, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_12, __pyx_mstate_global->__pyx_n_u_nw); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 141, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); - __pyx_t_16 = __Pyx_PyObject_GetAttrStr(__pyx_t_12, __pyx_mstate_global->__pyx_n_u_when); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 140, __pyx_L1_error) + __pyx_t_16 = __Pyx_PyObject_GetAttrStr(__pyx_t_12, __pyx_mstate_global->__pyx_n_u_when); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 141, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_16); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __pyx_t_17 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_18, __pyx_mstate_global->__pyx_n_u_nw); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 140, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_18, __pyx_mstate_global->__pyx_n_u_nw); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 141, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_18); - __pyx_t_19 = __Pyx_PyObject_GetAttrStr(__pyx_t_18, __pyx_mstate_global->__pyx_n_u_nth); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 140, __pyx_L1_error) + __pyx_t_19 = __Pyx_PyObject_GetAttrStr(__pyx_t_18, __pyx_mstate_global->__pyx_n_u_nth); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 141, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_19); __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; - __pyx_t_18 = __Pyx_PyLong_From_int(__pyx_v_col_indx); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 140, __pyx_L1_error) + __pyx_t_18 = __Pyx_PyLong_From_int(__pyx_v_col_indx); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 141, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_18); __pyx_t_14 = 1; #if CYTHON_UNPACK_METHODS @@ -4618,10 +4636,10 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_vectorized_convert_time __Pyx_XDECREF(__pyx_t_17); __pyx_t_17 = 0; __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; - if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 140, __pyx_L1_error) + if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 141, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); } - __pyx_t_19 = PyObject_RichCompare(__pyx_t_12, __pyx_mstate_global->__pyx_int_neg_9223372036854775808, Py_NE); __Pyx_XGOTREF(__pyx_t_19); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 140, __pyx_L1_error) + __pyx_t_19 = PyObject_RichCompare(__pyx_t_12, __pyx_mstate_global->__pyx_int_neg_9223372036854775808, Py_NE); __Pyx_XGOTREF(__pyx_t_19); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 141, __pyx_L1_error) __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __pyx_t_14 = 1; #if CYTHON_UNPACK_METHODS @@ -4641,18 +4659,18 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_vectorized_convert_time __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0; __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; - if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 140, __pyx_L1_error) + if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 141, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); } __pyx_t_11 = __pyx_t_9; __Pyx_INCREF(__pyx_t_11); __pyx_t_19 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_13, __pyx_mstate_global->__pyx_n_u_nw); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 140, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_13, __pyx_mstate_global->__pyx_n_u_nw); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 141, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); - __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_t_13, __pyx_mstate_global->__pyx_n_u_nth); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 140, __pyx_L1_error) + __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_t_13, __pyx_mstate_global->__pyx_n_u_nth); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 141, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; - __pyx_t_13 = __Pyx_PyLong_From_int(__pyx_v_col_indx); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 140, __pyx_L1_error) + __pyx_t_13 = __Pyx_PyLong_From_int(__pyx_v_col_indx); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 141, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __pyx_t_14 = 1; #if CYTHON_UNPACK_METHODS @@ -4672,7 +4690,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_vectorized_convert_time __Pyx_XDECREF(__pyx_t_19); __pyx_t_19 = 0; __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 140, __pyx_L1_error) + if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 141, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_16); } __pyx_t_14 = 0; @@ -4682,7 +4700,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_vectorized_convert_time __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0; __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 140, __pyx_L1_error) + if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 141, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); } __pyx_t_14 = 0; @@ -4691,13 +4709,13 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_vectorized_convert_time __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_with_columns, __pyx_callargs+__pyx_t_14, (2-__pyx_t_14) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 140, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 141, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } __Pyx_DECREF_SET(__pyx_v_df, __pyx_t_2); __pyx_t_2 = 0; - /* "pyreadstat/_readstat_writer.pyx":141 + /* "pyreadstat/_readstat_writer.pyx":142 * for col_indx in col_indxs: * df = df.with_columns(nw.when(nw.nth(col_indx)!=-9223372036854775808).then(nw.nth(col_indx))) * df = df.with_columns((nw.nth(col_indx).cast(nw.Float64)/1e9).round() * mulfac) # <<<<<<<<<<<<<< @@ -4707,12 +4725,12 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_vectorized_convert_time __pyx_t_10 = __pyx_v_df; __Pyx_INCREF(__pyx_t_10); __pyx_t_13 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_19, __pyx_mstate_global->__pyx_n_u_nw); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 141, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_19, __pyx_mstate_global->__pyx_n_u_nw); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 142, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_19); - __pyx_t_18 = __Pyx_PyObject_GetAttrStr(__pyx_t_19, __pyx_mstate_global->__pyx_n_u_nth); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 141, __pyx_L1_error) + __pyx_t_18 = __Pyx_PyObject_GetAttrStr(__pyx_t_19, __pyx_mstate_global->__pyx_n_u_nth); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 142, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_18); __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; - __pyx_t_19 = __Pyx_PyLong_From_int(__pyx_v_col_indx); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 141, __pyx_L1_error) + __pyx_t_19 = __Pyx_PyLong_From_int(__pyx_v_col_indx); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 142, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_19); __pyx_t_14 = 1; #if CYTHON_UNPACK_METHODS @@ -4732,14 +4750,14 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_vectorized_convert_time __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0; __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; - if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 141, __pyx_L1_error) + if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 142, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); } __pyx_t_11 = __pyx_t_12; __Pyx_INCREF(__pyx_t_11); - __Pyx_GetModuleGlobalName(__pyx_t_18, __pyx_mstate_global->__pyx_n_u_nw); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 141, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_18, __pyx_mstate_global->__pyx_n_u_nw); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 142, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_18); - __pyx_t_19 = __Pyx_PyObject_GetAttrStr(__pyx_t_18, __pyx_mstate_global->__pyx_n_u_Float64); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 141, __pyx_L1_error) + __pyx_t_19 = __Pyx_PyObject_GetAttrStr(__pyx_t_18, __pyx_mstate_global->__pyx_n_u_Float64); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 142, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_19); __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; __pyx_t_14 = 0; @@ -4749,10 +4767,10 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_vectorized_convert_time __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0; __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 141, __pyx_L1_error) + if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 142, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_16); } - __pyx_t_12 = __Pyx_PyFloat_DivideObjC(__pyx_t_16, __pyx_mstate_global->__pyx_float_1e9, 1e9, 0, 0); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 141, __pyx_L1_error) + __pyx_t_12 = __Pyx_PyFloat_DivideObjC(__pyx_t_16, __pyx_mstate_global->__pyx_float_1e9, 1e9, 0, 0); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 142, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; __pyx_t_9 = __pyx_t_12; @@ -4763,12 +4781,12 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_vectorized_convert_time __pyx_t_6 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_round, __pyx_callargs+__pyx_t_14, (1-__pyx_t_14) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 141, __pyx_L1_error) + if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 142, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); } - __pyx_t_12 = PyFloat_FromDouble(__pyx_v_mulfac); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 141, __pyx_L1_error) + __pyx_t_12 = PyFloat_FromDouble(__pyx_v_mulfac); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 142, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); - __pyx_t_9 = PyNumber_Multiply(__pyx_t_6, __pyx_t_12); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 141, __pyx_L1_error) + __pyx_t_9 = PyNumber_Multiply(__pyx_t_6, __pyx_t_12); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 142, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; @@ -4778,13 +4796,13 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_vectorized_convert_time __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_with_columns, __pyx_callargs+__pyx_t_14, (2-__pyx_t_14) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 141, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 142, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } __Pyx_DECREF_SET(__pyx_v_df, __pyx_t_2); __pyx_t_2 = 0; - /* "pyreadstat/_readstat_writer.pyx":139 + /* "pyreadstat/_readstat_writer.pyx":140 * * df = df.with_columns(nw.nth(col_indxs).cast(nw.Int64)) * for col_indx in col_indxs: # <<<<<<<<<<<<<< @@ -4794,7 +4812,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_vectorized_convert_time } __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - /* "pyreadstat/_readstat_writer.pyx":142 + /* "pyreadstat/_readstat_writer.pyx":143 * df = df.with_columns(nw.when(nw.nth(col_indx)!=-9223372036854775808).then(nw.nth(col_indx))) * df = df.with_columns((nw.nth(col_indx).cast(nw.Float64)/1e9).round() * mulfac) * return df # <<<<<<<<<<<<<< @@ -4806,7 +4824,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_vectorized_convert_time __pyx_r = __pyx_v_df; goto __pyx_L0; - /* "pyreadstat/_readstat_writer.pyx":121 + /* "pyreadstat/_readstat_writer.pyx":122 * return df * * cdef object vectorized_convert_time_to_number(object df, dst_file_format file_format, list pywriter_types, int col_count): # <<<<<<<<<<<<<< @@ -4838,7 +4856,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_vectorized_convert_time return __pyx_r; } -/* "pyreadstat/_readstat_writer.pyx":144 +/* "pyreadstat/_readstat_writer.pyx":145 * return df * * cdef double convert_datetimelike_to_number(dst_file_format file_format, pywriter_variable_type curtype, object curval) except *: # <<<<<<<<<<<<<< @@ -4869,7 +4887,16 @@ static double __pyx_f_10pyreadstat_16_readstat_writer_convert_datetimelike_to_nu __Pyx_RefNannySetupContext("convert_datetimelike_to_number", 0); /* "pyreadstat/_readstat_writer.pyx":151 - * cdef double offset_days, tstamp + * + * cdef double offset_days + * cdef double tstamp = 0 # <<<<<<<<<<<<<< + * + * if file_format == FILE_FORMAT_SAV or file_format == FILE_FORMAT_POR: +*/ + __pyx_v_tstamp = 0.0; + + /* "pyreadstat/_readstat_writer.pyx":153 + * cdef double tstamp = 0 * * if file_format == FILE_FORMAT_SAV or file_format == FILE_FORMAT_POR: # <<<<<<<<<<<<<< * offset_days = spss_offset_days @@ -4879,7 +4906,7 @@ static double __pyx_f_10pyreadstat_16_readstat_writer_convert_datetimelike_to_nu case __pyx_e_10pyreadstat_16_readstat_writer_FILE_FORMAT_SAV: case __pyx_e_10pyreadstat_16_readstat_writer_FILE_FORMAT_POR: - /* "pyreadstat/_readstat_writer.pyx":152 + /* "pyreadstat/_readstat_writer.pyx":154 * * if file_format == FILE_FORMAT_SAV or file_format == FILE_FORMAT_POR: * offset_days = spss_offset_days # <<<<<<<<<<<<<< @@ -4888,7 +4915,7 @@ static double __pyx_f_10pyreadstat_16_readstat_writer_convert_datetimelike_to_nu */ __pyx_v_offset_days = __pyx_v_10pyreadstat_16_readstat_writer_spss_offset_days; - /* "pyreadstat/_readstat_writer.pyx":153 + /* "pyreadstat/_readstat_writer.pyx":155 * if file_format == FILE_FORMAT_SAV or file_format == FILE_FORMAT_POR: * offset_days = spss_offset_days * offset_secs = spss_offset_secs # <<<<<<<<<<<<<< @@ -4897,8 +4924,8 @@ static double __pyx_f_10pyreadstat_16_readstat_writer_convert_datetimelike_to_nu */ __pyx_v_offset_secs = __pyx_v_10pyreadstat_16_readstat_writer_spss_offset_secs; - /* "pyreadstat/_readstat_writer.pyx":151 - * cdef double offset_days, tstamp + /* "pyreadstat/_readstat_writer.pyx":153 + * cdef double tstamp = 0 * * if file_format == FILE_FORMAT_SAV or file_format == FILE_FORMAT_POR: # <<<<<<<<<<<<<< * offset_days = spss_offset_days @@ -4907,7 +4934,7 @@ static double __pyx_f_10pyreadstat_16_readstat_writer_convert_datetimelike_to_nu break; default: - /* "pyreadstat/_readstat_writer.pyx":155 + /* "pyreadstat/_readstat_writer.pyx":157 * offset_secs = spss_offset_secs * else: * offset_days = sas_offset_days # <<<<<<<<<<<<<< @@ -4916,7 +4943,7 @@ static double __pyx_f_10pyreadstat_16_readstat_writer_convert_datetimelike_to_nu */ __pyx_v_offset_days = __pyx_v_10pyreadstat_16_readstat_writer_sas_offset_days; - /* "pyreadstat/_readstat_writer.pyx":156 + /* "pyreadstat/_readstat_writer.pyx":158 * else: * offset_days = sas_offset_days * offset_secs = sas_offset_secs # <<<<<<<<<<<<<< @@ -4927,7 +4954,7 @@ static double __pyx_f_10pyreadstat_16_readstat_writer_convert_datetimelike_to_nu break; } - /* "pyreadstat/_readstat_writer.pyx":158 + /* "pyreadstat/_readstat_writer.pyx":160 * offset_secs = sas_offset_secs * * if curtype == PYWRITER_DATETIME or curtype == PYWRITER_DATETIME64: # <<<<<<<<<<<<<< @@ -4938,25 +4965,25 @@ static double __pyx_f_10pyreadstat_16_readstat_writer_convert_datetimelike_to_nu case __pyx_e_10pyreadstat_16_readstat_writer_PYWRITER_DATETIME: case __pyx_e_10pyreadstat_16_readstat_writer_PYWRITER_DATETIME64: - /* "pyreadstat/_readstat_writer.pyx":160 + /* "pyreadstat/_readstat_writer.pyx":162 * if curtype == PYWRITER_DATETIME or curtype == PYWRITER_DATETIME64: * # get timestamp in seconds * if type(curval) == datetime.datetime: # <<<<<<<<<<<<<< * tstamp = curval.replace(tzinfo=timezone.utc).timestamp() # works only in python 3 * #tstamp = calendar.timegm(curval.replace(tzinfo=_timezone.utc).timetuple()) */ - __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_datetime); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 160, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_datetime); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 162, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_datetime); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 160, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_datetime); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 162, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyObject_RichCompare(((PyObject *)Py_TYPE(__pyx_v_curval)), __pyx_t_2, Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 160, __pyx_L1_error) + __pyx_t_1 = PyObject_RichCompare(((PyObject *)Py_TYPE(__pyx_v_curval)), __pyx_t_2, Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 162, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_3 < 0))) __PYX_ERR(0, 160, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_3 < 0))) __PYX_ERR(0, 162, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_3) { - /* "pyreadstat/_readstat_writer.pyx":161 + /* "pyreadstat/_readstat_writer.pyx":163 * # get timestamp in seconds * if type(curval) == datetime.datetime: * tstamp = curval.replace(tzinfo=timezone.utc).timestamp() # works only in python 3 # <<<<<<<<<<<<<< @@ -4965,22 +4992,22 @@ static double __pyx_f_10pyreadstat_16_readstat_writer_convert_datetimelike_to_nu */ __pyx_t_5 = __pyx_v_curval; __Pyx_INCREF(__pyx_t_5); - __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_timezone); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 161, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_timezone); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 163, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); - __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_utc); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 161, __pyx_L1_error) + __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_utc); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 163, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_8 = 0; { PyObject *__pyx_callargs[2 + ((CYTHON_VECTORCALL) ? 1 : 0)] = {__pyx_t_5, NULL}; - __pyx_t_6 = __Pyx_MakeVectorcallBuilderKwds(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 161, __pyx_L1_error) + __pyx_t_6 = __Pyx_MakeVectorcallBuilderKwds(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 163, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); - if (__Pyx_VectorcallBuilder_AddArg(__pyx_mstate_global->__pyx_n_u_tzinfo, __pyx_t_7, __pyx_t_6, __pyx_callargs+1, 0) < (0)) __PYX_ERR(0, 161, __pyx_L1_error) + if (__Pyx_VectorcallBuilder_AddArg(__pyx_mstate_global->__pyx_n_u_tzinfo, __pyx_t_7, __pyx_t_6, __pyx_callargs+1, 0) < (0)) __PYX_ERR(0, 163, __pyx_L1_error) __pyx_t_4 = __Pyx_Object_VectorcallMethod_CallFromBuilder((PyObject*)__pyx_mstate_global->__pyx_n_u_replace, __pyx_callargs+__pyx_t_8, (1-__pyx_t_8) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET), __pyx_t_6); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 161, __pyx_L1_error) + if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 163, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); } __pyx_t_2 = __pyx_t_4; @@ -4991,14 +5018,14 @@ static double __pyx_f_10pyreadstat_16_readstat_writer_convert_datetimelike_to_nu __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_timestamp, __pyx_callargs+__pyx_t_8, (1-__pyx_t_8) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 161, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 163, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } - __pyx_t_9 = __Pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_9 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 161, __pyx_L1_error) + __pyx_t_9 = __Pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_9 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 163, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_v_tstamp = __pyx_t_9; - /* "pyreadstat/_readstat_writer.pyx":160 + /* "pyreadstat/_readstat_writer.pyx":162 * if curtype == PYWRITER_DATETIME or curtype == PYWRITER_DATETIME64: * # get timestamp in seconds * if type(curval) == datetime.datetime: # <<<<<<<<<<<<<< @@ -5007,7 +5034,7 @@ static double __pyx_f_10pyreadstat_16_readstat_writer_convert_datetimelike_to_nu */ } - /* "pyreadstat/_readstat_writer.pyx":164 + /* "pyreadstat/_readstat_writer.pyx":166 * #tstamp = calendar.timegm(curval.replace(tzinfo=_timezone.utc).timetuple()) * * tstamp += offset_secs # <<<<<<<<<<<<<< @@ -5016,7 +5043,7 @@ static double __pyx_f_10pyreadstat_16_readstat_writer_convert_datetimelike_to_nu */ __pyx_v_tstamp = (__pyx_v_tstamp + __pyx_v_offset_secs); - /* "pyreadstat/_readstat_writer.pyx":165 + /* "pyreadstat/_readstat_writer.pyx":167 * * tstamp += offset_secs * if file_format == FILE_FORMAT_DTA: # <<<<<<<<<<<<<< @@ -5026,7 +5053,7 @@ static double __pyx_f_10pyreadstat_16_readstat_writer_convert_datetimelike_to_nu __pyx_t_3 = (__pyx_v_file_format == __pyx_e_10pyreadstat_16_readstat_writer_FILE_FORMAT_DTA); if (__pyx_t_3) { - /* "pyreadstat/_readstat_writer.pyx":167 + /* "pyreadstat/_readstat_writer.pyx":169 * if file_format == FILE_FORMAT_DTA: * # stata stores in milliseconds * tstamp *= 1000 # <<<<<<<<<<<<<< @@ -5035,7 +5062,7 @@ static double __pyx_f_10pyreadstat_16_readstat_writer_convert_datetimelike_to_nu */ __pyx_v_tstamp = (__pyx_v_tstamp * 1000.0); - /* "pyreadstat/_readstat_writer.pyx":165 + /* "pyreadstat/_readstat_writer.pyx":167 * * tstamp += offset_secs * if file_format == FILE_FORMAT_DTA: # <<<<<<<<<<<<<< @@ -5044,7 +5071,7 @@ static double __pyx_f_10pyreadstat_16_readstat_writer_convert_datetimelike_to_nu */ } - /* "pyreadstat/_readstat_writer.pyx":158 + /* "pyreadstat/_readstat_writer.pyx":160 * offset_secs = sas_offset_secs * * if curtype == PYWRITER_DATETIME or curtype == PYWRITER_DATETIME64: # <<<<<<<<<<<<<< @@ -5054,50 +5081,50 @@ static double __pyx_f_10pyreadstat_16_readstat_writer_convert_datetimelike_to_nu break; case __pyx_e_10pyreadstat_16_readstat_writer_PYWRITER_DATE: - /* "pyreadstat/_readstat_writer.pyx":170 + /* "pyreadstat/_readstat_writer.pyx":172 * * elif curtype == PYWRITER_DATE: * if type(curval) == datetime.date: # <<<<<<<<<<<<<< * days = curval - date_0 * tstamp = days.days */ - __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_datetime); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 170, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_datetime); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 172, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_date); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 170, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_date); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 172, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyObject_RichCompare(((PyObject *)Py_TYPE(__pyx_v_curval)), __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 170, __pyx_L1_error) + __pyx_t_1 = PyObject_RichCompare(((PyObject *)Py_TYPE(__pyx_v_curval)), __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 172, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_3 < 0))) __PYX_ERR(0, 170, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_3 < 0))) __PYX_ERR(0, 172, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_3) { - /* "pyreadstat/_readstat_writer.pyx":171 + /* "pyreadstat/_readstat_writer.pyx":173 * elif curtype == PYWRITER_DATE: * if type(curval) == datetime.date: * days = curval - date_0 # <<<<<<<<<<<<<< * tstamp = days.days * tstamp += offset_days */ - __pyx_t_1 = PyNumber_Subtract(__pyx_v_curval, __pyx_v_10pyreadstat_16_readstat_writer_date_0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 171, __pyx_L1_error) + __pyx_t_1 = PyNumber_Subtract(__pyx_v_curval, __pyx_v_10pyreadstat_16_readstat_writer_date_0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 173, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_days = __pyx_t_1; __pyx_t_1 = 0; - /* "pyreadstat/_readstat_writer.pyx":172 + /* "pyreadstat/_readstat_writer.pyx":174 * if type(curval) == datetime.date: * days = curval - date_0 * tstamp = days.days # <<<<<<<<<<<<<< * tstamp += offset_days * if file_format == FILE_FORMAT_SAV or file_format == FILE_FORMAT_POR: */ - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_days, __pyx_mstate_global->__pyx_n_u_days); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 172, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_days, __pyx_mstate_global->__pyx_n_u_days); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 174, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_9 = __Pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_9 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 172, __pyx_L1_error) + __pyx_t_9 = __Pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_9 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 174, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_v_tstamp = __pyx_t_9; - /* "pyreadstat/_readstat_writer.pyx":173 + /* "pyreadstat/_readstat_writer.pyx":175 * days = curval - date_0 * tstamp = days.days * tstamp += offset_days # <<<<<<<<<<<<<< @@ -5106,7 +5133,7 @@ static double __pyx_f_10pyreadstat_16_readstat_writer_convert_datetimelike_to_nu */ __pyx_v_tstamp = (__pyx_v_tstamp + __pyx_v_offset_days); - /* "pyreadstat/_readstat_writer.pyx":174 + /* "pyreadstat/_readstat_writer.pyx":176 * tstamp = days.days * tstamp += offset_days * if file_format == FILE_FORMAT_SAV or file_format == FILE_FORMAT_POR: # <<<<<<<<<<<<<< @@ -5117,7 +5144,7 @@ static double __pyx_f_10pyreadstat_16_readstat_writer_convert_datetimelike_to_nu case __pyx_e_10pyreadstat_16_readstat_writer_FILE_FORMAT_SAV: case __pyx_e_10pyreadstat_16_readstat_writer_FILE_FORMAT_POR: - /* "pyreadstat/_readstat_writer.pyx":176 + /* "pyreadstat/_readstat_writer.pyx":178 * if file_format == FILE_FORMAT_SAV or file_format == FILE_FORMAT_POR: * # spss stores in seconds * tstamp *= 86400 # <<<<<<<<<<<<<< @@ -5126,7 +5153,7 @@ static double __pyx_f_10pyreadstat_16_readstat_writer_convert_datetimelike_to_nu */ __pyx_v_tstamp = (__pyx_v_tstamp * 86400.0); - /* "pyreadstat/_readstat_writer.pyx":174 + /* "pyreadstat/_readstat_writer.pyx":176 * tstamp = days.days * tstamp += offset_days * if file_format == FILE_FORMAT_SAV or file_format == FILE_FORMAT_POR: # <<<<<<<<<<<<<< @@ -5137,7 +5164,7 @@ static double __pyx_f_10pyreadstat_16_readstat_writer_convert_datetimelike_to_nu default: break; } - /* "pyreadstat/_readstat_writer.pyx":170 + /* "pyreadstat/_readstat_writer.pyx":172 * * elif curtype == PYWRITER_DATE: * if type(curval) == datetime.date: # <<<<<<<<<<<<<< @@ -5146,7 +5173,7 @@ static double __pyx_f_10pyreadstat_16_readstat_writer_convert_datetimelike_to_nu */ } - /* "pyreadstat/_readstat_writer.pyx":169 + /* "pyreadstat/_readstat_writer.pyx":171 * tstamp *= 1000 * * elif curtype == PYWRITER_DATE: # <<<<<<<<<<<<<< @@ -5156,44 +5183,44 @@ static double __pyx_f_10pyreadstat_16_readstat_writer_convert_datetimelike_to_nu break; case __pyx_e_10pyreadstat_16_readstat_writer_PYWRITER_TIME: - /* "pyreadstat/_readstat_writer.pyx":179 + /* "pyreadstat/_readstat_writer.pyx":181 * * elif curtype == PYWRITER_TIME: * if type(curval) == datetime.time: # <<<<<<<<<<<<<< * tdelta = datetime.datetime.combine(datetime.date.min, curval) - datetime.datetime.min * tstamp = tdelta.total_seconds() */ - __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_datetime); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 179, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_datetime); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 181, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_time); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 179, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_time); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 181, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyObject_RichCompare(((PyObject *)Py_TYPE(__pyx_v_curval)), __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 179, __pyx_L1_error) + __pyx_t_1 = PyObject_RichCompare(((PyObject *)Py_TYPE(__pyx_v_curval)), __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 181, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_3 < 0))) __PYX_ERR(0, 179, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_3 < 0))) __PYX_ERR(0, 181, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_3) { - /* "pyreadstat/_readstat_writer.pyx":180 + /* "pyreadstat/_readstat_writer.pyx":182 * elif curtype == PYWRITER_TIME: * if type(curval) == datetime.time: * tdelta = datetime.datetime.combine(datetime.date.min, curval) - datetime.datetime.min # <<<<<<<<<<<<<< * tstamp = tdelta.total_seconds() * #tstamp += offset * 86400 */ - __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_datetime); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 180, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_datetime); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 182, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_datetime); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 180, __pyx_L1_error) + __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_datetime); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 182, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_4 = __pyx_t_6; __Pyx_INCREF(__pyx_t_4); - __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_datetime); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 180, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_datetime); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 182, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_date); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 180, __pyx_L1_error) + __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_date); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 182, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_mstate_global->__pyx_n_u_min); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 180, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_mstate_global->__pyx_n_u_min); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 182, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_8 = 0; @@ -5203,25 +5230,25 @@ static double __pyx_f_10pyreadstat_16_readstat_writer_convert_datetimelike_to_nu __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 180, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 182, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } - __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_datetime); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 180, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_datetime); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 182, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_datetime); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 180, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_datetime); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 182, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_min); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 180, __pyx_L1_error) + __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_min); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 182, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = PyNumber_Subtract(__pyx_t_1, __pyx_t_6); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 180, __pyx_L1_error) + __pyx_t_2 = PyNumber_Subtract(__pyx_t_1, __pyx_t_6); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 182, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_v_tdelta = __pyx_t_2; __pyx_t_2 = 0; - /* "pyreadstat/_readstat_writer.pyx":181 + /* "pyreadstat/_readstat_writer.pyx":183 * if type(curval) == datetime.time: * tdelta = datetime.datetime.combine(datetime.date.min, curval) - datetime.datetime.min * tstamp = tdelta.total_seconds() # <<<<<<<<<<<<<< @@ -5235,14 +5262,14 @@ static double __pyx_f_10pyreadstat_16_readstat_writer_convert_datetimelike_to_nu PyObject *__pyx_callargs[2] = {__pyx_t_6, NULL}; __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_total_seconds, __pyx_callargs+__pyx_t_8, (1-__pyx_t_8) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 181, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 183, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } - __pyx_t_9 = __Pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_9 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 181, __pyx_L1_error) + __pyx_t_9 = __Pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_9 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 183, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_v_tstamp = __pyx_t_9; - /* "pyreadstat/_readstat_writer.pyx":183 + /* "pyreadstat/_readstat_writer.pyx":185 * tstamp = tdelta.total_seconds() * #tstamp += offset * 86400 * if file_format == FILE_FORMAT_DTA: # <<<<<<<<<<<<<< @@ -5252,7 +5279,7 @@ static double __pyx_f_10pyreadstat_16_readstat_writer_convert_datetimelike_to_nu __pyx_t_3 = (__pyx_v_file_format == __pyx_e_10pyreadstat_16_readstat_writer_FILE_FORMAT_DTA); if (__pyx_t_3) { - /* "pyreadstat/_readstat_writer.pyx":185 + /* "pyreadstat/_readstat_writer.pyx":187 * if file_format == FILE_FORMAT_DTA: * # stata stores in milliseconds * tstamp *= 1000 # <<<<<<<<<<<<<< @@ -5261,7 +5288,7 @@ static double __pyx_f_10pyreadstat_16_readstat_writer_convert_datetimelike_to_nu */ __pyx_v_tstamp = (__pyx_v_tstamp * 1000.0); - /* "pyreadstat/_readstat_writer.pyx":183 + /* "pyreadstat/_readstat_writer.pyx":185 * tstamp = tdelta.total_seconds() * #tstamp += offset * 86400 * if file_format == FILE_FORMAT_DTA: # <<<<<<<<<<<<<< @@ -5270,7 +5297,7 @@ static double __pyx_f_10pyreadstat_16_readstat_writer_convert_datetimelike_to_nu */ } - /* "pyreadstat/_readstat_writer.pyx":179 + /* "pyreadstat/_readstat_writer.pyx":181 * * elif curtype == PYWRITER_TIME: * if type(curval) == datetime.time: # <<<<<<<<<<<<<< @@ -5279,7 +5306,7 @@ static double __pyx_f_10pyreadstat_16_readstat_writer_convert_datetimelike_to_nu */ } - /* "pyreadstat/_readstat_writer.pyx":178 + /* "pyreadstat/_readstat_writer.pyx":180 * tstamp *= 86400 * * elif curtype == PYWRITER_TIME: # <<<<<<<<<<<<<< @@ -5290,7 +5317,7 @@ static double __pyx_f_10pyreadstat_16_readstat_writer_convert_datetimelike_to_nu default: break; } - /* "pyreadstat/_readstat_writer.pyx":187 + /* "pyreadstat/_readstat_writer.pyx":189 * tstamp *= 1000 * * return tstamp # <<<<<<<<<<<<<< @@ -5300,7 +5327,7 @@ static double __pyx_f_10pyreadstat_16_readstat_writer_convert_datetimelike_to_nu __pyx_r = __pyx_v_tstamp; goto __pyx_L0; - /* "pyreadstat/_readstat_writer.pyx":144 + /* "pyreadstat/_readstat_writer.pyx":145 * return df * * cdef double convert_datetimelike_to_number(dst_file_format file_format, pywriter_variable_type curtype, object curval) except *: # <<<<<<<<<<<<<< @@ -5325,7 +5352,7 @@ static double __pyx_f_10pyreadstat_16_readstat_writer_convert_datetimelike_to_nu return __pyx_r; } -/* "pyreadstat/_readstat_writer.pyx":189 +/* "pyreadstat/_readstat_writer.pyx":191 * return tstamp * * cdef char * get_datetimelike_format_for_readstat(dst_file_format file_format, pywriter_variable_type curtype): # <<<<<<<<<<<<<< @@ -5346,7 +5373,7 @@ static char *__pyx_f_10pyreadstat_16_readstat_writer_get_datetimelike_format_for int __pyx_clineno = 0; __Pyx_RefNannySetupContext("get_datetimelike_format_for_readstat", 0); - /* "pyreadstat/_readstat_writer.pyx":194 + /* "pyreadstat/_readstat_writer.pyx":196 * """ * * if curtype == PYWRITER_DATE or curtype == PYWRITER_DATE64: # <<<<<<<<<<<<<< @@ -5357,7 +5384,7 @@ static char *__pyx_f_10pyreadstat_16_readstat_writer_get_datetimelike_format_for case __pyx_e_10pyreadstat_16_readstat_writer_PYWRITER_DATE: case __pyx_e_10pyreadstat_16_readstat_writer_PYWRITER_DATE64: - /* "pyreadstat/_readstat_writer.pyx":195 + /* "pyreadstat/_readstat_writer.pyx":197 * * if curtype == PYWRITER_DATE or curtype == PYWRITER_DATE64: * if file_format == FILE_FORMAT_DTA: # <<<<<<<<<<<<<< @@ -5367,7 +5394,7 @@ static char *__pyx_f_10pyreadstat_16_readstat_writer_get_datetimelike_format_for __pyx_t_1 = (__pyx_v_file_format == __pyx_e_10pyreadstat_16_readstat_writer_FILE_FORMAT_DTA); if (__pyx_t_1) { - /* "pyreadstat/_readstat_writer.pyx":196 + /* "pyreadstat/_readstat_writer.pyx":198 * if curtype == PYWRITER_DATE or curtype == PYWRITER_DATE64: * if file_format == FILE_FORMAT_DTA: * return "%td" # <<<<<<<<<<<<<< @@ -5377,7 +5404,7 @@ static char *__pyx_f_10pyreadstat_16_readstat_writer_get_datetimelike_format_for __pyx_r = ((char *)"%td"); goto __pyx_L0; - /* "pyreadstat/_readstat_writer.pyx":195 + /* "pyreadstat/_readstat_writer.pyx":197 * * if curtype == PYWRITER_DATE or curtype == PYWRITER_DATE64: * if file_format == FILE_FORMAT_DTA: # <<<<<<<<<<<<<< @@ -5386,7 +5413,7 @@ static char *__pyx_f_10pyreadstat_16_readstat_writer_get_datetimelike_format_for */ } - /* "pyreadstat/_readstat_writer.pyx":200 + /* "pyreadstat/_readstat_writer.pyx":202 * # return "DATE11" * else: * return "DATE" # <<<<<<<<<<<<<< @@ -5398,7 +5425,7 @@ static char *__pyx_f_10pyreadstat_16_readstat_writer_get_datetimelike_format_for goto __pyx_L0; } - /* "pyreadstat/_readstat_writer.pyx":194 + /* "pyreadstat/_readstat_writer.pyx":196 * """ * * if curtype == PYWRITER_DATE or curtype == PYWRITER_DATE64: # <<<<<<<<<<<<<< @@ -5408,7 +5435,7 @@ static char *__pyx_f_10pyreadstat_16_readstat_writer_get_datetimelike_format_for break; case __pyx_e_10pyreadstat_16_readstat_writer_PYWRITER_DATETIME: - /* "pyreadstat/_readstat_writer.pyx":201 + /* "pyreadstat/_readstat_writer.pyx":203 * else: * return "DATE" * elif curtype == PYWRITER_DATETIME or curtype == PYWRITER_DATETIME64: # <<<<<<<<<<<<<< @@ -5417,7 +5444,7 @@ static char *__pyx_f_10pyreadstat_16_readstat_writer_get_datetimelike_format_for */ case __pyx_e_10pyreadstat_16_readstat_writer_PYWRITER_DATETIME64: - /* "pyreadstat/_readstat_writer.pyx":202 + /* "pyreadstat/_readstat_writer.pyx":204 * return "DATE" * elif curtype == PYWRITER_DATETIME or curtype == PYWRITER_DATETIME64: * if file_format == FILE_FORMAT_DTA: # <<<<<<<<<<<<<< @@ -5427,7 +5454,7 @@ static char *__pyx_f_10pyreadstat_16_readstat_writer_get_datetimelike_format_for __pyx_t_1 = (__pyx_v_file_format == __pyx_e_10pyreadstat_16_readstat_writer_FILE_FORMAT_DTA); if (__pyx_t_1) { - /* "pyreadstat/_readstat_writer.pyx":203 + /* "pyreadstat/_readstat_writer.pyx":205 * elif curtype == PYWRITER_DATETIME or curtype == PYWRITER_DATETIME64: * if file_format == FILE_FORMAT_DTA: * return "%tc" # <<<<<<<<<<<<<< @@ -5437,7 +5464,7 @@ static char *__pyx_f_10pyreadstat_16_readstat_writer_get_datetimelike_format_for __pyx_r = ((char *)"%tc"); goto __pyx_L0; - /* "pyreadstat/_readstat_writer.pyx":202 + /* "pyreadstat/_readstat_writer.pyx":204 * return "DATE" * elif curtype == PYWRITER_DATETIME or curtype == PYWRITER_DATETIME64: * if file_format == FILE_FORMAT_DTA: # <<<<<<<<<<<<<< @@ -5446,7 +5473,7 @@ static char *__pyx_f_10pyreadstat_16_readstat_writer_get_datetimelike_format_for */ } - /* "pyreadstat/_readstat_writer.pyx":207 + /* "pyreadstat/_readstat_writer.pyx":209 * # return "DATETIME20" * else: * return "DATETIME" # <<<<<<<<<<<<<< @@ -5458,7 +5485,7 @@ static char *__pyx_f_10pyreadstat_16_readstat_writer_get_datetimelike_format_for goto __pyx_L0; } - /* "pyreadstat/_readstat_writer.pyx":201 + /* "pyreadstat/_readstat_writer.pyx":203 * else: * return "DATE" * elif curtype == PYWRITER_DATETIME or curtype == PYWRITER_DATETIME64: # <<<<<<<<<<<<<< @@ -5468,7 +5495,7 @@ static char *__pyx_f_10pyreadstat_16_readstat_writer_get_datetimelike_format_for break; case __pyx_e_10pyreadstat_16_readstat_writer_PYWRITER_TIME: - /* "pyreadstat/_readstat_writer.pyx":208 + /* "pyreadstat/_readstat_writer.pyx":210 * else: * return "DATETIME" * elif curtype == PYWRITER_TIME or curtype == PYWRITER_TIME64: # <<<<<<<<<<<<<< @@ -5477,7 +5504,7 @@ static char *__pyx_f_10pyreadstat_16_readstat_writer_get_datetimelike_format_for */ case __pyx_e_10pyreadstat_16_readstat_writer_PYWRITER_TIME64: - /* "pyreadstat/_readstat_writer.pyx":209 + /* "pyreadstat/_readstat_writer.pyx":211 * return "DATETIME" * elif curtype == PYWRITER_TIME or curtype == PYWRITER_TIME64: * if file_format == FILE_FORMAT_DTA: # <<<<<<<<<<<<<< @@ -5487,7 +5514,7 @@ static char *__pyx_f_10pyreadstat_16_readstat_writer_get_datetimelike_format_for __pyx_t_1 = (__pyx_v_file_format == __pyx_e_10pyreadstat_16_readstat_writer_FILE_FORMAT_DTA); if (__pyx_t_1) { - /* "pyreadstat/_readstat_writer.pyx":210 + /* "pyreadstat/_readstat_writer.pyx":212 * elif curtype == PYWRITER_TIME or curtype == PYWRITER_TIME64: * if file_format == FILE_FORMAT_DTA: * return "%tcHH:MM:SS" # <<<<<<<<<<<<<< @@ -5497,7 +5524,7 @@ static char *__pyx_f_10pyreadstat_16_readstat_writer_get_datetimelike_format_for __pyx_r = ((char *)"%tcHH:MM:SS"); goto __pyx_L0; - /* "pyreadstat/_readstat_writer.pyx":209 + /* "pyreadstat/_readstat_writer.pyx":211 * return "DATETIME" * elif curtype == PYWRITER_TIME or curtype == PYWRITER_TIME64: * if file_format == FILE_FORMAT_DTA: # <<<<<<<<<<<<<< @@ -5506,7 +5533,7 @@ static char *__pyx_f_10pyreadstat_16_readstat_writer_get_datetimelike_format_for */ } - /* "pyreadstat/_readstat_writer.pyx":212 + /* "pyreadstat/_readstat_writer.pyx":214 * return "%tcHH:MM:SS" * else: * return "TIME" # <<<<<<<<<<<<<< @@ -5518,7 +5545,7 @@ static char *__pyx_f_10pyreadstat_16_readstat_writer_get_datetimelike_format_for goto __pyx_L0; } - /* "pyreadstat/_readstat_writer.pyx":208 + /* "pyreadstat/_readstat_writer.pyx":210 * else: * return "DATETIME" * elif curtype == PYWRITER_TIME or curtype == PYWRITER_TIME64: # <<<<<<<<<<<<<< @@ -5528,7 +5555,7 @@ static char *__pyx_f_10pyreadstat_16_readstat_writer_get_datetimelike_format_for break; default: - /* "pyreadstat/_readstat_writer.pyx":214 + /* "pyreadstat/_readstat_writer.pyx":216 * return "TIME" * else: * raise PyreadstatError("Unknown pywriter variable format") # <<<<<<<<<<<<<< @@ -5536,7 +5563,7 @@ static char *__pyx_f_10pyreadstat_16_readstat_writer_get_datetimelike_format_for * cdef int get_narwhals_str_series_max_length(object series, dict value_labels, bint isobject): */ __pyx_t_3 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 214, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 216, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = 1; #if CYTHON_UNPACK_METHODS @@ -5555,16 +5582,16 @@ static char *__pyx_f_10pyreadstat_16_readstat_writer_get_datetimelike_format_for __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 214, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 216, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } __Pyx_Raise(__pyx_t_2, 0, 0, 0); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __PYX_ERR(0, 214, __pyx_L1_error) + __PYX_ERR(0, 216, __pyx_L1_error) break; } - /* "pyreadstat/_readstat_writer.pyx":189 + /* "pyreadstat/_readstat_writer.pyx":191 * return tstamp * * cdef char * get_datetimelike_format_for_readstat(dst_file_format file_format, pywriter_variable_type curtype): # <<<<<<<<<<<<<< @@ -5584,7 +5611,7 @@ static char *__pyx_f_10pyreadstat_16_readstat_writer_get_datetimelike_format_for return __pyx_r; } -/* "pyreadstat/_readstat_writer.pyx":216 +/* "pyreadstat/_readstat_writer.pyx":218 * raise PyreadstatError("Unknown pywriter variable format") * * cdef int get_narwhals_str_series_max_length(object series, dict value_labels, bint isobject): # <<<<<<<<<<<<<< @@ -5614,7 +5641,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_get_narwhals_str_series_max_l int __pyx_clineno = 0; __Pyx_RefNannySetupContext("get_narwhals_str_series_max_length", 0); - /* "pyreadstat/_readstat_writer.pyx":221 + /* "pyreadstat/_readstat_writer.pyx":223 * cdef object val * cdef bytes temp * cdef int max_length = 1 # <<<<<<<<<<<<<< @@ -5623,7 +5650,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_get_narwhals_str_series_max_l */ __pyx_v_max_length = 1; - /* "pyreadstat/_readstat_writer.pyx":224 + /* "pyreadstat/_readstat_writer.pyx":226 * cdef int curlen * cdef list labels * for val in series: # <<<<<<<<<<<<<< @@ -5635,9 +5662,9 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_get_narwhals_str_series_max_l __pyx_t_2 = 0; __pyx_t_3 = NULL; } else { - __pyx_t_2 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_v_series); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 224, __pyx_L1_error) + __pyx_t_2 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_v_series); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 226, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_3 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 224, __pyx_L1_error) + __pyx_t_3 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 226, __pyx_L1_error) } for (;;) { if (likely(!__pyx_t_3)) { @@ -5645,7 +5672,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_get_narwhals_str_series_max_l { Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_1); #if !CYTHON_ASSUME_SAFE_SIZE - if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 224, __pyx_L1_error) + if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 226, __pyx_L1_error) #endif if (__pyx_t_2 >= __pyx_temp) break; } @@ -5655,7 +5682,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_get_narwhals_str_series_max_l { Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_1); #if !CYTHON_ASSUME_SAFE_SIZE - if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 224, __pyx_L1_error) + if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 226, __pyx_L1_error) #endif if (__pyx_t_2 >= __pyx_temp) break; } @@ -5666,13 +5693,13 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_get_narwhals_str_series_max_l #endif ++__pyx_t_2; } - if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 224, __pyx_L1_error) + if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 226, __pyx_L1_error) } else { __pyx_t_4 = __pyx_t_3(__pyx_t_1); if (unlikely(!__pyx_t_4)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { - if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(0, 224, __pyx_L1_error) + if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(0, 226, __pyx_L1_error) PyErr_Clear(); } break; @@ -5682,7 +5709,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_get_narwhals_str_series_max_l __Pyx_XDECREF_SET(__pyx_v_val, __pyx_t_4); __pyx_t_4 = 0; - /* "pyreadstat/_readstat_writer.pyx":225 + /* "pyreadstat/_readstat_writer.pyx":227 * cdef list labels * for val in series: * if isobject: # <<<<<<<<<<<<<< @@ -5691,19 +5718,19 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_get_narwhals_str_series_max_l */ if (__pyx_v_isobject) { - /* "pyreadstat/_readstat_writer.pyx":226 + /* "pyreadstat/_readstat_writer.pyx":228 * for val in series: * if isobject: * val = str(val) # <<<<<<<<<<<<<< * temp = val.encode("utf-8") * curlen = len(temp) */ - __pyx_t_4 = __Pyx_PyObject_Unicode(__pyx_v_val); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 226, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyObject_Unicode(__pyx_v_val); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 228, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF_SET(__pyx_v_val, __pyx_t_4); __pyx_t_4 = 0; - /* "pyreadstat/_readstat_writer.pyx":225 + /* "pyreadstat/_readstat_writer.pyx":227 * cdef list labels * for val in series: * if isobject: # <<<<<<<<<<<<<< @@ -5712,7 +5739,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_get_narwhals_str_series_max_l */ } - /* "pyreadstat/_readstat_writer.pyx":227 + /* "pyreadstat/_readstat_writer.pyx":229 * if isobject: * val = str(val) * temp = val.encode("utf-8") # <<<<<<<<<<<<<< @@ -5726,14 +5753,14 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_get_narwhals_str_series_max_l PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_mstate_global->__pyx_kp_u_utf_8}; __pyx_t_4 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_encode, __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 227, __pyx_L1_error) + if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 229, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); } - if (!(likely(PyBytes_CheckExact(__pyx_t_4))||((__pyx_t_4) == Py_None) || __Pyx_RaiseUnexpectedTypeError("bytes", __pyx_t_4))) __PYX_ERR(0, 227, __pyx_L1_error) + if (!(likely(PyBytes_CheckExact(__pyx_t_4))||((__pyx_t_4) == Py_None) || __Pyx_RaiseUnexpectedTypeError("bytes", __pyx_t_4))) __PYX_ERR(0, 229, __pyx_L1_error) __Pyx_XDECREF_SET(__pyx_v_temp, ((PyObject*)__pyx_t_4)); __pyx_t_4 = 0; - /* "pyreadstat/_readstat_writer.pyx":228 + /* "pyreadstat/_readstat_writer.pyx":230 * val = str(val) * temp = val.encode("utf-8") * curlen = len(temp) # <<<<<<<<<<<<<< @@ -5742,12 +5769,12 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_get_narwhals_str_series_max_l */ if (unlikely(__pyx_v_temp == Py_None)) { PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()"); - __PYX_ERR(0, 228, __pyx_L1_error) + __PYX_ERR(0, 230, __pyx_L1_error) } - __pyx_t_7 = __Pyx_PyBytes_GET_SIZE(__pyx_v_temp); if (unlikely(__pyx_t_7 == ((Py_ssize_t)-1))) __PYX_ERR(0, 228, __pyx_L1_error) + __pyx_t_7 = __Pyx_PyBytes_GET_SIZE(__pyx_v_temp); if (unlikely(__pyx_t_7 == ((Py_ssize_t)-1))) __PYX_ERR(0, 230, __pyx_L1_error) __pyx_v_curlen = __pyx_t_7; - /* "pyreadstat/_readstat_writer.pyx":229 + /* "pyreadstat/_readstat_writer.pyx":231 * temp = val.encode("utf-8") * curlen = len(temp) * if curlen > max_length: # <<<<<<<<<<<<<< @@ -5757,7 +5784,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_get_narwhals_str_series_max_l __pyx_t_8 = (__pyx_v_curlen > __pyx_v_max_length); if (__pyx_t_8) { - /* "pyreadstat/_readstat_writer.pyx":230 + /* "pyreadstat/_readstat_writer.pyx":232 * curlen = len(temp) * if curlen > max_length: * max_length = curlen # <<<<<<<<<<<<<< @@ -5766,7 +5793,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_get_narwhals_str_series_max_l */ __pyx_v_max_length = __pyx_v_curlen; - /* "pyreadstat/_readstat_writer.pyx":229 + /* "pyreadstat/_readstat_writer.pyx":231 * temp = val.encode("utf-8") * curlen = len(temp) * if curlen > max_length: # <<<<<<<<<<<<<< @@ -5775,7 +5802,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_get_narwhals_str_series_max_l */ } - /* "pyreadstat/_readstat_writer.pyx":224 + /* "pyreadstat/_readstat_writer.pyx":226 * cdef int curlen * cdef list labels * for val in series: # <<<<<<<<<<<<<< @@ -5785,17 +5812,17 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_get_narwhals_str_series_max_l } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "pyreadstat/_readstat_writer.pyx":231 + /* "pyreadstat/_readstat_writer.pyx":233 * if curlen > max_length: * max_length = curlen * if value_labels: # <<<<<<<<<<<<<< * labels = list(value_labels.keys()) * for lab in labels: */ - __pyx_t_8 = __Pyx_PyObject_IsTrue(__pyx_v_value_labels); if (unlikely((__pyx_t_8 < 0))) __PYX_ERR(0, 231, __pyx_L1_error) + __pyx_t_8 = __Pyx_PyObject_IsTrue(__pyx_v_value_labels); if (unlikely((__pyx_t_8 < 0))) __PYX_ERR(0, 233, __pyx_L1_error) if (__pyx_t_8) { - /* "pyreadstat/_readstat_writer.pyx":232 + /* "pyreadstat/_readstat_writer.pyx":234 * max_length = curlen * if value_labels: * labels = list(value_labels.keys()) # <<<<<<<<<<<<<< @@ -5804,17 +5831,17 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_get_narwhals_str_series_max_l */ if (unlikely(__pyx_v_value_labels == Py_None)) { PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "keys"); - __PYX_ERR(0, 232, __pyx_L1_error) + __PYX_ERR(0, 234, __pyx_L1_error) } - __pyx_t_1 = __Pyx_PyDict_Keys(__pyx_v_value_labels); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 232, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyDict_Keys(__pyx_v_value_labels); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 234, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_4 = __Pyx_PySequence_ListKeepNew(__pyx_t_1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 232, __pyx_L1_error) + __pyx_t_4 = __Pyx_PySequence_ListKeepNew(__pyx_t_1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 234, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_v_labels = ((PyObject*)__pyx_t_4); __pyx_t_4 = 0; - /* "pyreadstat/_readstat_writer.pyx":233 + /* "pyreadstat/_readstat_writer.pyx":235 * if value_labels: * labels = list(value_labels.keys()) * for lab in labels: # <<<<<<<<<<<<<< @@ -5827,31 +5854,31 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_get_narwhals_str_series_max_l { Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_4); #if !CYTHON_ASSUME_SAFE_SIZE - if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 233, __pyx_L1_error) + if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 235, __pyx_L1_error) #endif if (__pyx_t_2 >= __pyx_temp) break; } __pyx_t_1 = __Pyx_PyList_GetItemRefFast(__pyx_t_4, __pyx_t_2, __Pyx_ReferenceSharing_OwnStrongReference); ++__pyx_t_2; - if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 233, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 235, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_XDECREF_SET(__pyx_v_lab, __pyx_t_1); __pyx_t_1 = 0; - /* "pyreadstat/_readstat_writer.pyx":234 + /* "pyreadstat/_readstat_writer.pyx":236 * labels = list(value_labels.keys()) * for lab in labels: * curlen = len(str(lab)) # <<<<<<<<<<<<<< * if curlen > max_length: * max_length = curlen */ - __pyx_t_1 = __Pyx_PyObject_Unicode(__pyx_v_lab); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 234, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_Unicode(__pyx_v_lab); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 236, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_7 = __Pyx_PyUnicode_GET_LENGTH(__pyx_t_1); if (unlikely(__pyx_t_7 == ((Py_ssize_t)-1))) __PYX_ERR(0, 234, __pyx_L1_error) + __pyx_t_7 = __Pyx_PyUnicode_GET_LENGTH(__pyx_t_1); if (unlikely(__pyx_t_7 == ((Py_ssize_t)-1))) __PYX_ERR(0, 236, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_v_curlen = __pyx_t_7; - /* "pyreadstat/_readstat_writer.pyx":235 + /* "pyreadstat/_readstat_writer.pyx":237 * for lab in labels: * curlen = len(str(lab)) * if curlen > max_length: # <<<<<<<<<<<<<< @@ -5861,7 +5888,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_get_narwhals_str_series_max_l __pyx_t_8 = (__pyx_v_curlen > __pyx_v_max_length); if (__pyx_t_8) { - /* "pyreadstat/_readstat_writer.pyx":236 + /* "pyreadstat/_readstat_writer.pyx":238 * curlen = len(str(lab)) * if curlen > max_length: * max_length = curlen # <<<<<<<<<<<<<< @@ -5870,7 +5897,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_get_narwhals_str_series_max_l */ __pyx_v_max_length = __pyx_v_curlen; - /* "pyreadstat/_readstat_writer.pyx":235 + /* "pyreadstat/_readstat_writer.pyx":237 * for lab in labels: * curlen = len(str(lab)) * if curlen > max_length: # <<<<<<<<<<<<<< @@ -5879,7 +5906,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_get_narwhals_str_series_max_l */ } - /* "pyreadstat/_readstat_writer.pyx":233 + /* "pyreadstat/_readstat_writer.pyx":235 * if value_labels: * labels = list(value_labels.keys()) * for lab in labels: # <<<<<<<<<<<<<< @@ -5889,7 +5916,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_get_narwhals_str_series_max_l } __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - /* "pyreadstat/_readstat_writer.pyx":231 + /* "pyreadstat/_readstat_writer.pyx":233 * if curlen > max_length: * max_length = curlen * if value_labels: # <<<<<<<<<<<<<< @@ -5898,7 +5925,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_get_narwhals_str_series_max_l */ } - /* "pyreadstat/_readstat_writer.pyx":238 + /* "pyreadstat/_readstat_writer.pyx":240 * max_length = curlen * * return max_length # <<<<<<<<<<<<<< @@ -5908,7 +5935,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_get_narwhals_str_series_max_l __pyx_r = __pyx_v_max_length; goto __pyx_L0; - /* "pyreadstat/_readstat_writer.pyx":216 + /* "pyreadstat/_readstat_writer.pyx":218 * raise PyreadstatError("Unknown pywriter variable format") * * cdef int get_narwhals_str_series_max_length(object series, dict value_labels, bint isobject): # <<<<<<<<<<<<<< @@ -5932,7 +5959,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_get_narwhals_str_series_max_l return __pyx_r; } -/* "pyreadstat/_readstat_writer.pyx":241 +/* "pyreadstat/_readstat_writer.pyx":243 * * * cdef int check_series_all_same_types(object series, object type_to_check): # <<<<<<<<<<<<<< @@ -5954,7 +5981,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_check_series_all_same_types(P int __pyx_clineno = 0; __Pyx_RefNannySetupContext("check_series_all_same_types", 0); - /* "pyreadstat/_readstat_writer.pyx":245 + /* "pyreadstat/_readstat_writer.pyx":247 * 1 if all elements in a series are of type type_to_check, 0 otherwise * """ * for val in series: # <<<<<<<<<<<<<< @@ -5966,9 +5993,9 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_check_series_all_same_types(P __pyx_t_2 = 0; __pyx_t_3 = NULL; } else { - __pyx_t_2 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_v_series); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 245, __pyx_L1_error) + __pyx_t_2 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_v_series); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 247, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_3 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 245, __pyx_L1_error) + __pyx_t_3 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 247, __pyx_L1_error) } for (;;) { if (likely(!__pyx_t_3)) { @@ -5976,7 +6003,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_check_series_all_same_types(P { Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_1); #if !CYTHON_ASSUME_SAFE_SIZE - if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 245, __pyx_L1_error) + if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 247, __pyx_L1_error) #endif if (__pyx_t_2 >= __pyx_temp) break; } @@ -5986,7 +6013,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_check_series_all_same_types(P { Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_1); #if !CYTHON_ASSUME_SAFE_SIZE - if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 245, __pyx_L1_error) + if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 247, __pyx_L1_error) #endif if (__pyx_t_2 >= __pyx_temp) break; } @@ -5997,13 +6024,13 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_check_series_all_same_types(P #endif ++__pyx_t_2; } - if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 245, __pyx_L1_error) + if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 247, __pyx_L1_error) } else { __pyx_t_4 = __pyx_t_3(__pyx_t_1); if (unlikely(!__pyx_t_4)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { - if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(0, 245, __pyx_L1_error) + if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(0, 247, __pyx_L1_error) PyErr_Clear(); } break; @@ -6013,19 +6040,19 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_check_series_all_same_types(P __Pyx_XDECREF_SET(__pyx_v_val, __pyx_t_4); __pyx_t_4 = 0; - /* "pyreadstat/_readstat_writer.pyx":246 + /* "pyreadstat/_readstat_writer.pyx":248 * """ * for val in series: * if type(val) != type_to_check: # <<<<<<<<<<<<<< * return 0 * return 1 */ - __pyx_t_4 = PyObject_RichCompare(((PyObject *)Py_TYPE(__pyx_v_val)), __pyx_v_type_to_check, Py_NE); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 246, __pyx_L1_error) - __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely((__pyx_t_5 < 0))) __PYX_ERR(0, 246, __pyx_L1_error) + __pyx_t_4 = PyObject_RichCompare(((PyObject *)Py_TYPE(__pyx_v_val)), __pyx_v_type_to_check, Py_NE); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 248, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely((__pyx_t_5 < 0))) __PYX_ERR(0, 248, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (__pyx_t_5) { - /* "pyreadstat/_readstat_writer.pyx":247 + /* "pyreadstat/_readstat_writer.pyx":249 * for val in series: * if type(val) != type_to_check: * return 0 # <<<<<<<<<<<<<< @@ -6036,7 +6063,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_check_series_all_same_types(P __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; goto __pyx_L0; - /* "pyreadstat/_readstat_writer.pyx":246 + /* "pyreadstat/_readstat_writer.pyx":248 * """ * for val in series: * if type(val) != type_to_check: # <<<<<<<<<<<<<< @@ -6045,7 +6072,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_check_series_all_same_types(P */ } - /* "pyreadstat/_readstat_writer.pyx":245 + /* "pyreadstat/_readstat_writer.pyx":247 * 1 if all elements in a series are of type type_to_check, 0 otherwise * """ * for val in series: # <<<<<<<<<<<<<< @@ -6055,7 +6082,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_check_series_all_same_types(P } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "pyreadstat/_readstat_writer.pyx":248 + /* "pyreadstat/_readstat_writer.pyx":250 * if type(val) != type_to_check: * return 0 * return 1 # <<<<<<<<<<<<<< @@ -6065,7 +6092,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_check_series_all_same_types(P __pyx_r = 1; goto __pyx_L0; - /* "pyreadstat/_readstat_writer.pyx":241 + /* "pyreadstat/_readstat_writer.pyx":243 * * * cdef int check_series_all_same_types(object series, object type_to_check): # <<<<<<<<<<<<<< @@ -6085,7 +6112,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_check_series_all_same_types(P return __pyx_r; } -/* "pyreadstat/_readstat_writer.pyx":250 +/* "pyreadstat/_readstat_writer.pyx":252 * return 1 * * cdef list get_narwhals_column_types(object df, dict missing_user_values, dict variable_value_labels, int dta_str_max_len): # <<<<<<<<<<<<<< @@ -6128,19 +6155,19 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_get_narwhals_column_typ __Pyx_RefNannySetupContext("get_narwhals_column_types", 0); __Pyx_INCREF(__pyx_v_variable_value_labels); - /* "pyreadstat/_readstat_writer.pyx":261 + /* "pyreadstat/_readstat_writer.pyx":263 * cdef int max_length, isobject * cdef bint has_missing * cdef list result = list() # <<<<<<<<<<<<<< * cdef int equal, is_missing * */ - __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 261, __pyx_L1_error) + __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 263, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_result = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - /* "pyreadstat/_readstat_writer.pyx":264 + /* "pyreadstat/_readstat_writer.pyx":266 * cdef int equal, is_missing * * if variable_value_labels is None: # <<<<<<<<<<<<<< @@ -6150,19 +6177,19 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_get_narwhals_column_typ __pyx_t_2 = (__pyx_v_variable_value_labels == ((PyObject*)Py_None)); if (__pyx_t_2) { - /* "pyreadstat/_readstat_writer.pyx":265 + /* "pyreadstat/_readstat_writer.pyx":267 * * if variable_value_labels is None: * variable_value_labels = dict() # <<<<<<<<<<<<<< * * for curseries in df.iter_columns(): */ - __pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 265, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 267, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_variable_value_labels, ((PyObject*)__pyx_t_1)); __pyx_t_1 = 0; - /* "pyreadstat/_readstat_writer.pyx":264 + /* "pyreadstat/_readstat_writer.pyx":266 * cdef int equal, is_missing * * if variable_value_labels is None: # <<<<<<<<<<<<<< @@ -6171,7 +6198,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_get_narwhals_column_typ */ } - /* "pyreadstat/_readstat_writer.pyx":267 + /* "pyreadstat/_readstat_writer.pyx":269 * variable_value_labels = dict() * * for curseries in df.iter_columns(): # <<<<<<<<<<<<<< @@ -6185,7 +6212,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_get_narwhals_column_typ PyObject *__pyx_callargs[2] = {__pyx_t_3, NULL}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_iter_columns, __pyx_callargs+__pyx_t_4, (1-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 267, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 269, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) { @@ -6193,9 +6220,9 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_get_narwhals_column_typ __pyx_t_5 = 0; __pyx_t_6 = NULL; } else { - __pyx_t_5 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 267, __pyx_L1_error) + __pyx_t_5 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 269, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_6 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_3); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 267, __pyx_L1_error) + __pyx_t_6 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_3); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 269, __pyx_L1_error) } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; for (;;) { @@ -6204,7 +6231,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_get_narwhals_column_typ { Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_3); #if !CYTHON_ASSUME_SAFE_SIZE - if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 267, __pyx_L1_error) + if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 269, __pyx_L1_error) #endif if (__pyx_t_5 >= __pyx_temp) break; } @@ -6214,7 +6241,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_get_narwhals_column_typ { Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_3); #if !CYTHON_ASSUME_SAFE_SIZE - if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 267, __pyx_L1_error) + if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 269, __pyx_L1_error) #endif if (__pyx_t_5 >= __pyx_temp) break; } @@ -6225,13 +6252,13 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_get_narwhals_column_typ #endif ++__pyx_t_5; } - if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 267, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 269, __pyx_L1_error) } else { __pyx_t_1 = __pyx_t_6(__pyx_t_3); if (unlikely(!__pyx_t_1)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { - if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(0, 267, __pyx_L1_error) + if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(0, 269, __pyx_L1_error) PyErr_Clear(); } break; @@ -6241,56 +6268,56 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_get_narwhals_column_typ __Pyx_XDECREF_SET(__pyx_v_curseries, __pyx_t_1); __pyx_t_1 = 0; - /* "pyreadstat/_readstat_writer.pyx":268 + /* "pyreadstat/_readstat_writer.pyx":270 * * for curseries in df.iter_columns(): * col_name = curseries.name # <<<<<<<<<<<<<< * col_type = curseries.dtype * */ - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_curseries, __pyx_mstate_global->__pyx_n_u_name); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 268, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_curseries, __pyx_mstate_global->__pyx_n_u_name); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 270, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_XDECREF_SET(__pyx_v_col_name, __pyx_t_1); __pyx_t_1 = 0; - /* "pyreadstat/_readstat_writer.pyx":269 + /* "pyreadstat/_readstat_writer.pyx":271 * for curseries in df.iter_columns(): * col_name = curseries.name * col_type = curseries.dtype # <<<<<<<<<<<<<< * * # if categorical, let's use the type of the categories */ - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_curseries, __pyx_mstate_global->__pyx_n_u_dtype); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 269, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_curseries, __pyx_mstate_global->__pyx_n_u_dtype); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 271, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_XDECREF_SET(__pyx_v_col_type, __pyx_t_1); __pyx_t_1 = 0; - /* "pyreadstat/_readstat_writer.pyx":272 + /* "pyreadstat/_readstat_writer.pyx":274 * * # if categorical, let's use the type of the categories * if col_type == nw.Categorical: # <<<<<<<<<<<<<< * col_type = curseries.cat.get_categories().dtype * */ - __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_nw); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 272, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_nw); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 274, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_Categorical); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 272, __pyx_L1_error) + __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_Categorical); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 274, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyObject_RichCompare(__pyx_v_col_type, __pyx_t_7, Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 272, __pyx_L1_error) + __pyx_t_1 = PyObject_RichCompare(__pyx_v_col_type, __pyx_t_7, Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 274, __pyx_L1_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 272, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 274, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_2) { - /* "pyreadstat/_readstat_writer.pyx":273 + /* "pyreadstat/_readstat_writer.pyx":275 * # if categorical, let's use the type of the categories * if col_type == nw.Categorical: * col_type = curseries.cat.get_categories().dtype # <<<<<<<<<<<<<< * * # we need to remove nulls for series inspection */ - __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_curseries, __pyx_mstate_global->__pyx_n_u_cat); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 273, __pyx_L1_error) + __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_curseries, __pyx_mstate_global->__pyx_n_u_cat); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 275, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_7 = __pyx_t_8; __Pyx_INCREF(__pyx_t_7); @@ -6300,16 +6327,16 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_get_narwhals_column_typ __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_get_categories, __pyx_callargs+__pyx_t_4, (1-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 273, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 275, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } - __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_dtype); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 273, __pyx_L1_error) + __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_dtype); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 275, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF_SET(__pyx_v_col_type, __pyx_t_8); __pyx_t_8 = 0; - /* "pyreadstat/_readstat_writer.pyx":272 + /* "pyreadstat/_readstat_writer.pyx":274 * * # if categorical, let's use the type of the categories * if col_type == nw.Categorical: # <<<<<<<<<<<<<< @@ -6318,7 +6345,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_get_narwhals_column_typ */ } - /* "pyreadstat/_readstat_writer.pyx":276 + /* "pyreadstat/_readstat_writer.pyx":278 * * # we need to remove nulls for series inspection * has_missing = curseries.null_count()>0 # <<<<<<<<<<<<<< @@ -6332,14 +6359,14 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_get_narwhals_column_typ PyObject *__pyx_callargs[2] = {__pyx_t_1, NULL}; __pyx_t_8 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_null_count, __pyx_callargs+__pyx_t_4, (1-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 276, __pyx_L1_error) + if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 278, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); } - __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 276, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 278, __pyx_L1_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_v_has_missing = (__pyx_t_2 > 0); - /* "pyreadstat/_readstat_writer.pyx":277 + /* "pyreadstat/_readstat_writer.pyx":279 * # we need to remove nulls for series inspection * has_missing = curseries.null_count()>0 * if has_missing: # <<<<<<<<<<<<<< @@ -6348,7 +6375,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_get_narwhals_column_typ */ if (__pyx_v_has_missing) { - /* "pyreadstat/_readstat_writer.pyx":278 + /* "pyreadstat/_readstat_writer.pyx":280 * has_missing = curseries.null_count()>0 * if has_missing: * curseries = curseries.drop_nulls() # <<<<<<<<<<<<<< @@ -6362,13 +6389,13 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_get_narwhals_column_typ PyObject *__pyx_callargs[2] = {__pyx_t_1, NULL}; __pyx_t_8 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_drop_nulls, __pyx_callargs+__pyx_t_4, (1-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 278, __pyx_L1_error) + if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 280, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); } __Pyx_DECREF_SET(__pyx_v_curseries, __pyx_t_8); __pyx_t_8 = 0; - /* "pyreadstat/_readstat_writer.pyx":277 + /* "pyreadstat/_readstat_writer.pyx":279 * # we need to remove nulls for series inspection * has_missing = curseries.null_count()>0 * if has_missing: # <<<<<<<<<<<<<< @@ -6377,7 +6404,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_get_narwhals_column_typ */ } - /* "pyreadstat/_readstat_writer.pyx":285 + /* "pyreadstat/_readstat_writer.pyx":287 * # missing values and missing_user_values. * # we need to take out those before inspecting the object series futher * curuser_missing = None # <<<<<<<<<<<<<< @@ -6387,17 +6414,17 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_get_narwhals_column_typ __Pyx_INCREF(Py_None); __Pyx_XDECREF_SET(__pyx_v_curuser_missing, Py_None); - /* "pyreadstat/_readstat_writer.pyx":286 + /* "pyreadstat/_readstat_writer.pyx":288 * # we need to take out those before inspecting the object series futher * curuser_missing = None * if missing_user_values: # <<<<<<<<<<<<<< * curuser_missing = missing_user_values.get(col_name) * if curuser_missing: */ - __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_missing_user_values); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 286, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_missing_user_values); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 288, __pyx_L1_error) if (__pyx_t_2) { - /* "pyreadstat/_readstat_writer.pyx":287 + /* "pyreadstat/_readstat_writer.pyx":289 * curuser_missing = None * if missing_user_values: * curuser_missing = missing_user_values.get(col_name) # <<<<<<<<<<<<<< @@ -6406,14 +6433,14 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_get_narwhals_column_typ */ if (unlikely(__pyx_v_missing_user_values == Py_None)) { PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "get"); - __PYX_ERR(0, 287, __pyx_L1_error) + __PYX_ERR(0, 289, __pyx_L1_error) } - __pyx_t_8 = __Pyx_PyDict_GetItemDefault(__pyx_v_missing_user_values, __pyx_v_col_name, Py_None); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 287, __pyx_L1_error) + __pyx_t_8 = __Pyx_PyDict_GetItemDefault(__pyx_v_missing_user_values, __pyx_v_col_name, Py_None); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 289, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF_SET(__pyx_v_curuser_missing, __pyx_t_8); __pyx_t_8 = 0; - /* "pyreadstat/_readstat_writer.pyx":286 + /* "pyreadstat/_readstat_writer.pyx":288 * # we need to take out those before inspecting the object series futher * curuser_missing = None * if missing_user_values: # <<<<<<<<<<<<<< @@ -6422,24 +6449,24 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_get_narwhals_column_typ */ } - /* "pyreadstat/_readstat_writer.pyx":288 + /* "pyreadstat/_readstat_writer.pyx":290 * if missing_user_values: * curuser_missing = missing_user_values.get(col_name) * if curuser_missing: # <<<<<<<<<<<<<< * if not df.implementation.is_pandas() and col_type == nw.Object: * curseries = [x for x in curseries if x not in curuser_missing] */ - __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_curuser_missing); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 288, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_curuser_missing); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 290, __pyx_L1_error) if (__pyx_t_2) { - /* "pyreadstat/_readstat_writer.pyx":289 + /* "pyreadstat/_readstat_writer.pyx":291 * curuser_missing = missing_user_values.get(col_name) * if curuser_missing: * if not df.implementation.is_pandas() and col_type == nw.Object: # <<<<<<<<<<<<<< * curseries = [x for x in curseries if x not in curuser_missing] * else: */ - __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_df, __pyx_mstate_global->__pyx_n_u_implementation); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 289, __pyx_L1_error) + __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_df, __pyx_mstate_global->__pyx_n_u_implementation); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 291, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_1 = __pyx_t_7; __Pyx_INCREF(__pyx_t_1); @@ -6449,10 +6476,10 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_get_narwhals_column_typ __pyx_t_8 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_is_pandas, __pyx_callargs+__pyx_t_4, (1-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 289, __pyx_L1_error) + if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 291, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); } - __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely((__pyx_t_9 < 0))) __PYX_ERR(0, 289, __pyx_L1_error) + __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely((__pyx_t_9 < 0))) __PYX_ERR(0, 291, __pyx_L1_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_t_10 = (!__pyx_t_9); if (__pyx_t_10) { @@ -6460,36 +6487,36 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_get_narwhals_column_typ __pyx_t_2 = __pyx_t_10; goto __pyx_L11_bool_binop_done; } - __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_nw); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 289, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_nw); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 291, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); - __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_Object); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 289, __pyx_L1_error) + __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_Object); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 291, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - __pyx_t_8 = PyObject_RichCompare(__pyx_v_col_type, __pyx_t_7, Py_EQ); __Pyx_XGOTREF(__pyx_t_8); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 289, __pyx_L1_error) + __pyx_t_8 = PyObject_RichCompare(__pyx_v_col_type, __pyx_t_7, Py_EQ); __Pyx_XGOTREF(__pyx_t_8); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 291, __pyx_L1_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely((__pyx_t_10 < 0))) __PYX_ERR(0, 289, __pyx_L1_error) + __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely((__pyx_t_10 < 0))) __PYX_ERR(0, 291, __pyx_L1_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_t_2 = __pyx_t_10; __pyx_L11_bool_binop_done:; if (__pyx_t_2) { - /* "pyreadstat/_readstat_writer.pyx":290 + /* "pyreadstat/_readstat_writer.pyx":292 * if curuser_missing: * if not df.implementation.is_pandas() and col_type == nw.Object: * curseries = [x for x in curseries if x not in curuser_missing] # <<<<<<<<<<<<<< * else: * curseries = curseries.filter(~curseries.is_in(curuser_missing)) */ - __pyx_t_8 = PyList_New(0); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 290, __pyx_L1_error) + __pyx_t_8 = PyList_New(0); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 292, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); if (likely(PyList_CheckExact(__pyx_v_curseries)) || PyTuple_CheckExact(__pyx_v_curseries)) { __pyx_t_7 = __pyx_v_curseries; __Pyx_INCREF(__pyx_t_7); __pyx_t_11 = 0; __pyx_t_12 = NULL; } else { - __pyx_t_11 = -1; __pyx_t_7 = PyObject_GetIter(__pyx_v_curseries); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 290, __pyx_L1_error) + __pyx_t_11 = -1; __pyx_t_7 = PyObject_GetIter(__pyx_v_curseries); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 292, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); - __pyx_t_12 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_7); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 290, __pyx_L1_error) + __pyx_t_12 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_7); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 292, __pyx_L1_error) } for (;;) { if (likely(!__pyx_t_12)) { @@ -6497,7 +6524,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_get_narwhals_column_typ { Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_7); #if !CYTHON_ASSUME_SAFE_SIZE - if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 290, __pyx_L1_error) + if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 292, __pyx_L1_error) #endif if (__pyx_t_11 >= __pyx_temp) break; } @@ -6507,7 +6534,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_get_narwhals_column_typ { Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_7); #if !CYTHON_ASSUME_SAFE_SIZE - if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 290, __pyx_L1_error) + if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 292, __pyx_L1_error) #endif if (__pyx_t_11 >= __pyx_temp) break; } @@ -6518,13 +6545,13 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_get_narwhals_column_typ #endif ++__pyx_t_11; } - if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 290, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 292, __pyx_L1_error) } else { __pyx_t_1 = __pyx_t_12(__pyx_t_7); if (unlikely(!__pyx_t_1)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { - if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(0, 290, __pyx_L1_error) + if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(0, 292, __pyx_L1_error) PyErr_Clear(); } break; @@ -6533,16 +6560,16 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_get_narwhals_column_typ __Pyx_GOTREF(__pyx_t_1); __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_v_x, __pyx_v_curuser_missing, Py_NE)); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 290, __pyx_L1_error) + __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_v_x, __pyx_v_curuser_missing, Py_NE)); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 292, __pyx_L1_error) if (__pyx_t_2) { - if (unlikely(__Pyx_ListComp_Append(__pyx_t_8, (PyObject*)__pyx_v_x))) __PYX_ERR(0, 290, __pyx_L1_error) + if (unlikely(__Pyx_ListComp_Append(__pyx_t_8, (PyObject*)__pyx_v_x))) __PYX_ERR(0, 292, __pyx_L1_error) } } __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF_SET(__pyx_v_curseries, __pyx_t_8); __pyx_t_8 = 0; - /* "pyreadstat/_readstat_writer.pyx":289 + /* "pyreadstat/_readstat_writer.pyx":291 * curuser_missing = missing_user_values.get(col_name) * if curuser_missing: * if not df.implementation.is_pandas() and col_type == nw.Object: # <<<<<<<<<<<<<< @@ -6552,7 +6579,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_get_narwhals_column_typ goto __pyx_L10; } - /* "pyreadstat/_readstat_writer.pyx":292 + /* "pyreadstat/_readstat_writer.pyx":294 * curseries = [x for x in curseries if x not in curuser_missing] * else: * curseries = curseries.filter(~curseries.is_in(curuser_missing)) # <<<<<<<<<<<<<< @@ -6569,10 +6596,10 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_get_narwhals_column_typ PyObject *__pyx_callargs[2] = {__pyx_t_13, __pyx_v_curuser_missing}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_is_in, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 292, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 294, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } - __pyx_t_13 = PyNumber_Invert(__pyx_t_1); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 292, __pyx_L1_error) + __pyx_t_13 = PyNumber_Invert(__pyx_t_1); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 294, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_4 = 0; @@ -6581,7 +6608,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_get_narwhals_column_typ __pyx_t_8 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_filter, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; - if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 292, __pyx_L1_error) + if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 294, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); } __Pyx_DECREF_SET(__pyx_v_curseries, __pyx_t_8); @@ -6589,44 +6616,44 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_get_narwhals_column_typ } __pyx_L10:; - /* "pyreadstat/_readstat_writer.pyx":293 + /* "pyreadstat/_readstat_writer.pyx":295 * else: * curseries = curseries.filter(~curseries.is_in(curuser_missing)) * if not len(curseries): # <<<<<<<<<<<<<< * result.append((PYWRITER_DOUBLE, 0, 1, None)) * continue */ - __pyx_t_11 = PyObject_Length(__pyx_v_curseries); if (unlikely(__pyx_t_11 == ((Py_ssize_t)-1))) __PYX_ERR(0, 293, __pyx_L1_error) + __pyx_t_11 = PyObject_Length(__pyx_v_curseries); if (unlikely(__pyx_t_11 == ((Py_ssize_t)-1))) __PYX_ERR(0, 295, __pyx_L1_error) __pyx_t_2 = (!(__pyx_t_11 != 0)); if (__pyx_t_2) { - /* "pyreadstat/_readstat_writer.pyx":294 + /* "pyreadstat/_readstat_writer.pyx":296 * curseries = curseries.filter(~curseries.is_in(curuser_missing)) * if not len(curseries): * result.append((PYWRITER_DOUBLE, 0, 1, None)) # <<<<<<<<<<<<<< * continue * */ - __pyx_t_8 = __Pyx_PyLong_From___pyx_t_10pyreadstat_16_readstat_writer_pywriter_variable_type(__pyx_e_10pyreadstat_16_readstat_writer_PYWRITER_DOUBLE); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 294, __pyx_L1_error) + __pyx_t_8 = __Pyx_PyLong_From___pyx_t_10pyreadstat_16_readstat_writer_pywriter_variable_type(__pyx_e_10pyreadstat_16_readstat_writer_PYWRITER_DOUBLE); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 296, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); - __pyx_t_13 = PyTuple_New(4); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 294, __pyx_L1_error) + __pyx_t_13 = PyTuple_New(4); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 296, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_GIVEREF(__pyx_t_8); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_13, 0, __pyx_t_8) != (0)) __PYX_ERR(0, 294, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_13, 0, __pyx_t_8) != (0)) __PYX_ERR(0, 296, __pyx_L1_error); __Pyx_INCREF(__pyx_mstate_global->__pyx_int_0); __Pyx_GIVEREF(__pyx_mstate_global->__pyx_int_0); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_13, 1, __pyx_mstate_global->__pyx_int_0) != (0)) __PYX_ERR(0, 294, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_13, 1, __pyx_mstate_global->__pyx_int_0) != (0)) __PYX_ERR(0, 296, __pyx_L1_error); __Pyx_INCREF(__pyx_mstate_global->__pyx_int_1); __Pyx_GIVEREF(__pyx_mstate_global->__pyx_int_1); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_13, 2, __pyx_mstate_global->__pyx_int_1) != (0)) __PYX_ERR(0, 294, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_13, 2, __pyx_mstate_global->__pyx_int_1) != (0)) __PYX_ERR(0, 296, __pyx_L1_error); __Pyx_INCREF(Py_None); __Pyx_GIVEREF(Py_None); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_13, 3, Py_None) != (0)) __PYX_ERR(0, 294, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_13, 3, Py_None) != (0)) __PYX_ERR(0, 296, __pyx_L1_error); __pyx_t_8 = 0; - __pyx_t_14 = __Pyx_PyList_Append(__pyx_v_result, __pyx_t_13); if (unlikely(__pyx_t_14 == ((int)-1))) __PYX_ERR(0, 294, __pyx_L1_error) + __pyx_t_14 = __Pyx_PyList_Append(__pyx_v_result, __pyx_t_13); if (unlikely(__pyx_t_14 == ((int)-1))) __PYX_ERR(0, 296, __pyx_L1_error) __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; - /* "pyreadstat/_readstat_writer.pyx":295 + /* "pyreadstat/_readstat_writer.pyx":297 * if not len(curseries): * result.append((PYWRITER_DOUBLE, 0, 1, None)) * continue # <<<<<<<<<<<<<< @@ -6635,7 +6662,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_get_narwhals_column_typ */ goto __pyx_L4_continue; - /* "pyreadstat/_readstat_writer.pyx":293 + /* "pyreadstat/_readstat_writer.pyx":295 * else: * curseries = curseries.filter(~curseries.is_in(curuser_missing)) * if not len(curseries): # <<<<<<<<<<<<<< @@ -6644,7 +6671,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_get_narwhals_column_typ */ } - /* "pyreadstat/_readstat_writer.pyx":288 + /* "pyreadstat/_readstat_writer.pyx":290 * if missing_user_values: * curuser_missing = missing_user_values.get(col_name) * if curuser_missing: # <<<<<<<<<<<<<< @@ -6653,7 +6680,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_get_narwhals_column_typ */ } - /* "pyreadstat/_readstat_writer.pyx":297 + /* "pyreadstat/_readstat_writer.pyx":299 * continue * * max_length = 0 # <<<<<<<<<<<<<< @@ -6662,7 +6689,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_get_narwhals_column_typ */ __pyx_v_max_length = 0; - /* "pyreadstat/_readstat_writer.pyx":298 + /* "pyreadstat/_readstat_writer.pyx":300 * * max_length = 0 * curtype = None # <<<<<<<<<<<<<< @@ -6672,7 +6699,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_get_narwhals_column_typ __Pyx_INCREF(Py_None); __Pyx_XDECREF_SET(__pyx_v_curtype, ((PyTypeObject*)Py_None)); - /* "pyreadstat/_readstat_writer.pyx":299 + /* "pyreadstat/_readstat_writer.pyx":301 * max_length = 0 * curtype = None * equal = True # <<<<<<<<<<<<<< @@ -6681,64 +6708,64 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_get_narwhals_column_typ */ __pyx_v_equal = 1; - /* "pyreadstat/_readstat_writer.pyx":301 + /* "pyreadstat/_readstat_writer.pyx":303 * equal = True * # let's deal first with object type, Enum could also be anything * if col_type == nw.Object or col_type==nw.Enum: # <<<<<<<<<<<<<< * curtype = type(curseries[0]) * equal = check_series_all_same_types(curseries, curtype) */ - __Pyx_GetModuleGlobalName(__pyx_t_13, __pyx_mstate_global->__pyx_n_u_nw); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 301, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_13, __pyx_mstate_global->__pyx_n_u_nw); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 303, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); - __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_13, __pyx_mstate_global->__pyx_n_u_Object); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 301, __pyx_L1_error) + __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_13, __pyx_mstate_global->__pyx_n_u_Object); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 303, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; - __pyx_t_13 = PyObject_RichCompare(__pyx_v_col_type, __pyx_t_8, Py_EQ); __Pyx_XGOTREF(__pyx_t_13); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 301, __pyx_L1_error) + __pyx_t_13 = PyObject_RichCompare(__pyx_v_col_type, __pyx_t_8, Py_EQ); __Pyx_XGOTREF(__pyx_t_13); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 303, __pyx_L1_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_t_13); if (unlikely((__pyx_t_10 < 0))) __PYX_ERR(0, 301, __pyx_L1_error) + __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_t_13); if (unlikely((__pyx_t_10 < 0))) __PYX_ERR(0, 303, __pyx_L1_error) __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; if (!__pyx_t_10) { } else { __pyx_t_2 = __pyx_t_10; goto __pyx_L19_bool_binop_done; } - __Pyx_GetModuleGlobalName(__pyx_t_13, __pyx_mstate_global->__pyx_n_u_nw); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 301, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_13, __pyx_mstate_global->__pyx_n_u_nw); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 303, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); - __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_13, __pyx_mstate_global->__pyx_n_u_Enum); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 301, __pyx_L1_error) + __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_13, __pyx_mstate_global->__pyx_n_u_Enum); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 303, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; - __pyx_t_13 = PyObject_RichCompare(__pyx_v_col_type, __pyx_t_8, Py_EQ); __Pyx_XGOTREF(__pyx_t_13); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 301, __pyx_L1_error) + __pyx_t_13 = PyObject_RichCompare(__pyx_v_col_type, __pyx_t_8, Py_EQ); __Pyx_XGOTREF(__pyx_t_13); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 303, __pyx_L1_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_t_13); if (unlikely((__pyx_t_10 < 0))) __PYX_ERR(0, 301, __pyx_L1_error) + __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_t_13); if (unlikely((__pyx_t_10 < 0))) __PYX_ERR(0, 303, __pyx_L1_error) __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; __pyx_t_2 = __pyx_t_10; __pyx_L19_bool_binop_done:; if (__pyx_t_2) { - /* "pyreadstat/_readstat_writer.pyx":302 + /* "pyreadstat/_readstat_writer.pyx":304 * # let's deal first with object type, Enum could also be anything * if col_type == nw.Object or col_type==nw.Enum: * curtype = type(curseries[0]) # <<<<<<<<<<<<<< * equal = check_series_all_same_types(curseries, curtype) * # if all elements are equal, they could be a few we expect to be an object class */ - __pyx_t_13 = __Pyx_GetItemInt(__pyx_v_curseries, 0, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_OwnStrongReference); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 302, __pyx_L1_error) + __pyx_t_13 = __Pyx_GetItemInt(__pyx_v_curseries, 0, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_OwnStrongReference); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 304, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_INCREF(((PyObject *)Py_TYPE(__pyx_t_13))); __Pyx_DECREF_SET(__pyx_v_curtype, ((PyTypeObject*)((PyObject *)Py_TYPE(__pyx_t_13)))); __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; - /* "pyreadstat/_readstat_writer.pyx":303 + /* "pyreadstat/_readstat_writer.pyx":305 * if col_type == nw.Object or col_type==nw.Enum: * curtype = type(curseries[0]) * equal = check_series_all_same_types(curseries, curtype) # <<<<<<<<<<<<<< * # if all elements are equal, they could be a few we expect to be an object class * # or it could be that they are some other common types (numeric) after removing the missing_user_values */ - __pyx_t_15 = __pyx_f_10pyreadstat_16_readstat_writer_check_series_all_same_types(__pyx_v_curseries, ((PyObject *)__pyx_v_curtype)); if (unlikely(__pyx_t_15 == ((int)-1) && PyErr_Occurred())) __PYX_ERR(0, 303, __pyx_L1_error) + __pyx_t_15 = __pyx_f_10pyreadstat_16_readstat_writer_check_series_all_same_types(__pyx_v_curseries, ((PyObject *)__pyx_v_curtype)); if (unlikely(__pyx_t_15 == ((int)-1) && PyErr_Occurred())) __PYX_ERR(0, 305, __pyx_L1_error) __pyx_v_equal = __pyx_t_15; - /* "pyreadstat/_readstat_writer.pyx":309 + /* "pyreadstat/_readstat_writer.pyx":311 * # if not all the elements of the series are from the same type, then we deal with it at the end * # as other types we don't know what to do with * if equal: # <<<<<<<<<<<<<< @@ -6748,53 +6775,53 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_get_narwhals_column_typ __pyx_t_2 = (__pyx_v_equal != 0); if (__pyx_t_2) { - /* "pyreadstat/_readstat_writer.pyx":311 + /* "pyreadstat/_readstat_writer.pyx":313 * if equal: * # types expected to be object * if curtype == datetime.date: # <<<<<<<<<<<<<< * result.append((PYWRITER_DATE, 0, has_missing, None)) * continue */ - __Pyx_GetModuleGlobalName(__pyx_t_13, __pyx_mstate_global->__pyx_n_u_datetime); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 311, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_13, __pyx_mstate_global->__pyx_n_u_datetime); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 313, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); - __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_13, __pyx_mstate_global->__pyx_n_u_date); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 311, __pyx_L1_error) + __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_13, __pyx_mstate_global->__pyx_n_u_date); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 313, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; - __pyx_t_13 = PyObject_RichCompare(((PyObject *)__pyx_v_curtype), __pyx_t_8, Py_EQ); __Pyx_XGOTREF(__pyx_t_13); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 311, __pyx_L1_error) + __pyx_t_13 = PyObject_RichCompare(((PyObject *)__pyx_v_curtype), __pyx_t_8, Py_EQ); __Pyx_XGOTREF(__pyx_t_13); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 313, __pyx_L1_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_13); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 311, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_13); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 313, __pyx_L1_error) __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; if (__pyx_t_2) { - /* "pyreadstat/_readstat_writer.pyx":312 + /* "pyreadstat/_readstat_writer.pyx":314 * # types expected to be object * if curtype == datetime.date: * result.append((PYWRITER_DATE, 0, has_missing, None)) # <<<<<<<<<<<<<< * continue * elif curtype == datetime.datetime: */ - __pyx_t_13 = __Pyx_PyLong_From___pyx_t_10pyreadstat_16_readstat_writer_pywriter_variable_type(__pyx_e_10pyreadstat_16_readstat_writer_PYWRITER_DATE); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 312, __pyx_L1_error) + __pyx_t_13 = __Pyx_PyLong_From___pyx_t_10pyreadstat_16_readstat_writer_pywriter_variable_type(__pyx_e_10pyreadstat_16_readstat_writer_PYWRITER_DATE); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 314, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); - __pyx_t_8 = __Pyx_PyBool_FromLong(__pyx_v_has_missing); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 312, __pyx_L1_error) + __pyx_t_8 = __Pyx_PyBool_FromLong(__pyx_v_has_missing); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 314, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); - __pyx_t_7 = PyTuple_New(4); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 312, __pyx_L1_error) + __pyx_t_7 = PyTuple_New(4); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 314, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_GIVEREF(__pyx_t_13); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_13) != (0)) __PYX_ERR(0, 312, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_13) != (0)) __PYX_ERR(0, 314, __pyx_L1_error); __Pyx_INCREF(__pyx_mstate_global->__pyx_int_0); __Pyx_GIVEREF(__pyx_mstate_global->__pyx_int_0); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_mstate_global->__pyx_int_0) != (0)) __PYX_ERR(0, 312, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_mstate_global->__pyx_int_0) != (0)) __PYX_ERR(0, 314, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_8); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 2, __pyx_t_8) != (0)) __PYX_ERR(0, 312, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 2, __pyx_t_8) != (0)) __PYX_ERR(0, 314, __pyx_L1_error); __Pyx_INCREF(Py_None); __Pyx_GIVEREF(Py_None); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 3, Py_None) != (0)) __PYX_ERR(0, 312, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 3, Py_None) != (0)) __PYX_ERR(0, 314, __pyx_L1_error); __pyx_t_13 = 0; __pyx_t_8 = 0; - __pyx_t_14 = __Pyx_PyList_Append(__pyx_v_result, __pyx_t_7); if (unlikely(__pyx_t_14 == ((int)-1))) __PYX_ERR(0, 312, __pyx_L1_error) + __pyx_t_14 = __Pyx_PyList_Append(__pyx_v_result, __pyx_t_7); if (unlikely(__pyx_t_14 == ((int)-1))) __PYX_ERR(0, 314, __pyx_L1_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - /* "pyreadstat/_readstat_writer.pyx":313 + /* "pyreadstat/_readstat_writer.pyx":315 * if curtype == datetime.date: * result.append((PYWRITER_DATE, 0, has_missing, None)) * continue # <<<<<<<<<<<<<< @@ -6803,7 +6830,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_get_narwhals_column_typ */ goto __pyx_L4_continue; - /* "pyreadstat/_readstat_writer.pyx":311 + /* "pyreadstat/_readstat_writer.pyx":313 * if equal: * # types expected to be object * if curtype == datetime.date: # <<<<<<<<<<<<<< @@ -6812,53 +6839,53 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_get_narwhals_column_typ */ } - /* "pyreadstat/_readstat_writer.pyx":314 + /* "pyreadstat/_readstat_writer.pyx":316 * result.append((PYWRITER_DATE, 0, has_missing, None)) * continue * elif curtype == datetime.datetime: # <<<<<<<<<<<<<< * result.append((PYWRITER_DATETIME, 0, has_missing, None)) * continue */ - __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_mstate_global->__pyx_n_u_datetime); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 314, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_mstate_global->__pyx_n_u_datetime); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 316, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); - __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_mstate_global->__pyx_n_u_datetime); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 314, __pyx_L1_error) + __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_mstate_global->__pyx_n_u_datetime); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 316, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __pyx_t_7 = PyObject_RichCompare(((PyObject *)__pyx_v_curtype), __pyx_t_8, Py_EQ); __Pyx_XGOTREF(__pyx_t_7); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 314, __pyx_L1_error) + __pyx_t_7 = PyObject_RichCompare(((PyObject *)__pyx_v_curtype), __pyx_t_8, Py_EQ); __Pyx_XGOTREF(__pyx_t_7); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 316, __pyx_L1_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 314, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 316, __pyx_L1_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; if (__pyx_t_2) { - /* "pyreadstat/_readstat_writer.pyx":315 + /* "pyreadstat/_readstat_writer.pyx":317 * continue * elif curtype == datetime.datetime: * result.append((PYWRITER_DATETIME, 0, has_missing, None)) # <<<<<<<<<<<<<< * continue * elif curtype == datetime.time: */ - __pyx_t_7 = __Pyx_PyLong_From___pyx_t_10pyreadstat_16_readstat_writer_pywriter_variable_type(__pyx_e_10pyreadstat_16_readstat_writer_PYWRITER_DATETIME); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 315, __pyx_L1_error) + __pyx_t_7 = __Pyx_PyLong_From___pyx_t_10pyreadstat_16_readstat_writer_pywriter_variable_type(__pyx_e_10pyreadstat_16_readstat_writer_PYWRITER_DATETIME); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 317, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); - __pyx_t_8 = __Pyx_PyBool_FromLong(__pyx_v_has_missing); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 315, __pyx_L1_error) + __pyx_t_8 = __Pyx_PyBool_FromLong(__pyx_v_has_missing); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 317, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); - __pyx_t_13 = PyTuple_New(4); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 315, __pyx_L1_error) + __pyx_t_13 = PyTuple_New(4); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 317, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_GIVEREF(__pyx_t_7); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_13, 0, __pyx_t_7) != (0)) __PYX_ERR(0, 315, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_13, 0, __pyx_t_7) != (0)) __PYX_ERR(0, 317, __pyx_L1_error); __Pyx_INCREF(__pyx_mstate_global->__pyx_int_0); __Pyx_GIVEREF(__pyx_mstate_global->__pyx_int_0); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_13, 1, __pyx_mstate_global->__pyx_int_0) != (0)) __PYX_ERR(0, 315, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_13, 1, __pyx_mstate_global->__pyx_int_0) != (0)) __PYX_ERR(0, 317, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_8); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_13, 2, __pyx_t_8) != (0)) __PYX_ERR(0, 315, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_13, 2, __pyx_t_8) != (0)) __PYX_ERR(0, 317, __pyx_L1_error); __Pyx_INCREF(Py_None); __Pyx_GIVEREF(Py_None); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_13, 3, Py_None) != (0)) __PYX_ERR(0, 315, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_13, 3, Py_None) != (0)) __PYX_ERR(0, 317, __pyx_L1_error); __pyx_t_7 = 0; __pyx_t_8 = 0; - __pyx_t_14 = __Pyx_PyList_Append(__pyx_v_result, __pyx_t_13); if (unlikely(__pyx_t_14 == ((int)-1))) __PYX_ERR(0, 315, __pyx_L1_error) + __pyx_t_14 = __Pyx_PyList_Append(__pyx_v_result, __pyx_t_13); if (unlikely(__pyx_t_14 == ((int)-1))) __PYX_ERR(0, 317, __pyx_L1_error) __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; - /* "pyreadstat/_readstat_writer.pyx":316 + /* "pyreadstat/_readstat_writer.pyx":318 * elif curtype == datetime.datetime: * result.append((PYWRITER_DATETIME, 0, has_missing, None)) * continue # <<<<<<<<<<<<<< @@ -6867,7 +6894,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_get_narwhals_column_typ */ goto __pyx_L4_continue; - /* "pyreadstat/_readstat_writer.pyx":314 + /* "pyreadstat/_readstat_writer.pyx":316 * result.append((PYWRITER_DATE, 0, has_missing, None)) * continue * elif curtype == datetime.datetime: # <<<<<<<<<<<<<< @@ -6876,53 +6903,53 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_get_narwhals_column_typ */ } - /* "pyreadstat/_readstat_writer.pyx":317 + /* "pyreadstat/_readstat_writer.pyx":319 * result.append((PYWRITER_DATETIME, 0, has_missing, None)) * continue * elif curtype == datetime.time: # <<<<<<<<<<<<<< * result.append((PYWRITER_TIME, 0, has_missing, None)) * continue */ - __Pyx_GetModuleGlobalName(__pyx_t_13, __pyx_mstate_global->__pyx_n_u_datetime); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 317, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_13, __pyx_mstate_global->__pyx_n_u_datetime); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 319, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); - __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_13, __pyx_mstate_global->__pyx_n_u_time); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 317, __pyx_L1_error) + __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_13, __pyx_mstate_global->__pyx_n_u_time); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 319, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; - __pyx_t_13 = PyObject_RichCompare(((PyObject *)__pyx_v_curtype), __pyx_t_8, Py_EQ); __Pyx_XGOTREF(__pyx_t_13); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 317, __pyx_L1_error) + __pyx_t_13 = PyObject_RichCompare(((PyObject *)__pyx_v_curtype), __pyx_t_8, Py_EQ); __Pyx_XGOTREF(__pyx_t_13); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 319, __pyx_L1_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_13); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 317, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_13); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 319, __pyx_L1_error) __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; if (__pyx_t_2) { - /* "pyreadstat/_readstat_writer.pyx":318 + /* "pyreadstat/_readstat_writer.pyx":320 * continue * elif curtype == datetime.time: * result.append((PYWRITER_TIME, 0, has_missing, None)) # <<<<<<<<<<<<<< * continue * */ - __pyx_t_13 = __Pyx_PyLong_From___pyx_t_10pyreadstat_16_readstat_writer_pywriter_variable_type(__pyx_e_10pyreadstat_16_readstat_writer_PYWRITER_TIME); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 318, __pyx_L1_error) + __pyx_t_13 = __Pyx_PyLong_From___pyx_t_10pyreadstat_16_readstat_writer_pywriter_variable_type(__pyx_e_10pyreadstat_16_readstat_writer_PYWRITER_TIME); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 320, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); - __pyx_t_8 = __Pyx_PyBool_FromLong(__pyx_v_has_missing); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 318, __pyx_L1_error) + __pyx_t_8 = __Pyx_PyBool_FromLong(__pyx_v_has_missing); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 320, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); - __pyx_t_7 = PyTuple_New(4); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 318, __pyx_L1_error) + __pyx_t_7 = PyTuple_New(4); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 320, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_GIVEREF(__pyx_t_13); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_13) != (0)) __PYX_ERR(0, 318, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_13) != (0)) __PYX_ERR(0, 320, __pyx_L1_error); __Pyx_INCREF(__pyx_mstate_global->__pyx_int_0); __Pyx_GIVEREF(__pyx_mstate_global->__pyx_int_0); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_mstate_global->__pyx_int_0) != (0)) __PYX_ERR(0, 318, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_mstate_global->__pyx_int_0) != (0)) __PYX_ERR(0, 320, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_8); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 2, __pyx_t_8) != (0)) __PYX_ERR(0, 318, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 2, __pyx_t_8) != (0)) __PYX_ERR(0, 320, __pyx_L1_error); __Pyx_INCREF(Py_None); __Pyx_GIVEREF(Py_None); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 3, Py_None) != (0)) __PYX_ERR(0, 318, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 3, Py_None) != (0)) __PYX_ERR(0, 320, __pyx_L1_error); __pyx_t_13 = 0; __pyx_t_8 = 0; - __pyx_t_14 = __Pyx_PyList_Append(__pyx_v_result, __pyx_t_7); if (unlikely(__pyx_t_14 == ((int)-1))) __PYX_ERR(0, 318, __pyx_L1_error) + __pyx_t_14 = __Pyx_PyList_Append(__pyx_v_result, __pyx_t_7); if (unlikely(__pyx_t_14 == ((int)-1))) __PYX_ERR(0, 320, __pyx_L1_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - /* "pyreadstat/_readstat_writer.pyx":319 + /* "pyreadstat/_readstat_writer.pyx":321 * elif curtype == datetime.time: * result.append((PYWRITER_TIME, 0, has_missing, None)) * continue # <<<<<<<<<<<<<< @@ -6931,7 +6958,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_get_narwhals_column_typ */ goto __pyx_L4_continue; - /* "pyreadstat/_readstat_writer.pyx":317 + /* "pyreadstat/_readstat_writer.pyx":319 * result.append((PYWRITER_DATETIME, 0, has_missing, None)) * continue * elif curtype == datetime.time: # <<<<<<<<<<<<<< @@ -6940,7 +6967,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_get_narwhals_column_typ */ } - /* "pyreadstat/_readstat_writer.pyx":309 + /* "pyreadstat/_readstat_writer.pyx":311 * # if not all the elements of the series are from the same type, then we deal with it at the end * # as other types we don't know what to do with * if equal: # <<<<<<<<<<<<<< @@ -6949,7 +6976,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_get_narwhals_column_typ */ } - /* "pyreadstat/_readstat_writer.pyx":301 + /* "pyreadstat/_readstat_writer.pyx":303 * equal = True * # let's deal first with object type, Enum could also be anything * if col_type == nw.Object or col_type==nw.Enum: # <<<<<<<<<<<<<< @@ -6958,7 +6985,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_get_narwhals_column_typ */ } - /* "pyreadstat/_readstat_writer.pyx":322 + /* "pyreadstat/_readstat_writer.pyx":324 * * # numeric types: they could contain missing_user_values * if equal and (col_type in float_types or curtype == float): # <<<<<<<<<<<<<< @@ -6973,50 +7000,50 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_get_narwhals_column_typ } if (unlikely(__pyx_v_10pyreadstat_16_readstat_writer_float_types == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable"); - __PYX_ERR(0, 322, __pyx_L1_error) + __PYX_ERR(0, 324, __pyx_L1_error) } - __pyx_t_10 = (__Pyx_PySet_ContainsTF(__pyx_v_col_type, __pyx_v_10pyreadstat_16_readstat_writer_float_types, Py_EQ)); if (unlikely((__pyx_t_10 < 0))) __PYX_ERR(0, 322, __pyx_L1_error) + __pyx_t_10 = (__Pyx_PySet_ContainsTF(__pyx_v_col_type, __pyx_v_10pyreadstat_16_readstat_writer_float_types, Py_EQ)); if (unlikely((__pyx_t_10 < 0))) __PYX_ERR(0, 324, __pyx_L1_error) if (!__pyx_t_10) { } else { __pyx_t_2 = __pyx_t_10; goto __pyx_L24_bool_binop_done; } - __pyx_t_7 = PyObject_RichCompare(((PyObject *)__pyx_v_curtype), ((PyObject *)(&PyFloat_Type)), Py_EQ); __Pyx_XGOTREF(__pyx_t_7); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 322, __pyx_L1_error) - __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely((__pyx_t_10 < 0))) __PYX_ERR(0, 322, __pyx_L1_error) + __pyx_t_7 = PyObject_RichCompare(((PyObject *)__pyx_v_curtype), ((PyObject *)(&PyFloat_Type)), Py_EQ); __Pyx_XGOTREF(__pyx_t_7); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 324, __pyx_L1_error) + __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely((__pyx_t_10 < 0))) __PYX_ERR(0, 324, __pyx_L1_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_2 = __pyx_t_10; __pyx_L24_bool_binop_done:; if (__pyx_t_2) { - /* "pyreadstat/_readstat_writer.pyx":323 + /* "pyreadstat/_readstat_writer.pyx":325 * # numeric types: they could contain missing_user_values * if equal and (col_type in float_types or curtype == float): * result.append((PYWRITER_DOUBLE, 0, has_missing, None)) # <<<<<<<<<<<<<< * continue * elif equal and (col_type in int_types or curtype == int): */ - __pyx_t_7 = __Pyx_PyLong_From___pyx_t_10pyreadstat_16_readstat_writer_pywriter_variable_type(__pyx_e_10pyreadstat_16_readstat_writer_PYWRITER_DOUBLE); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 323, __pyx_L1_error) + __pyx_t_7 = __Pyx_PyLong_From___pyx_t_10pyreadstat_16_readstat_writer_pywriter_variable_type(__pyx_e_10pyreadstat_16_readstat_writer_PYWRITER_DOUBLE); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 325, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); - __pyx_t_8 = __Pyx_PyBool_FromLong(__pyx_v_has_missing); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 323, __pyx_L1_error) + __pyx_t_8 = __Pyx_PyBool_FromLong(__pyx_v_has_missing); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 325, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); - __pyx_t_13 = PyTuple_New(4); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 323, __pyx_L1_error) + __pyx_t_13 = PyTuple_New(4); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 325, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_GIVEREF(__pyx_t_7); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_13, 0, __pyx_t_7) != (0)) __PYX_ERR(0, 323, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_13, 0, __pyx_t_7) != (0)) __PYX_ERR(0, 325, __pyx_L1_error); __Pyx_INCREF(__pyx_mstate_global->__pyx_int_0); __Pyx_GIVEREF(__pyx_mstate_global->__pyx_int_0); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_13, 1, __pyx_mstate_global->__pyx_int_0) != (0)) __PYX_ERR(0, 323, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_13, 1, __pyx_mstate_global->__pyx_int_0) != (0)) __PYX_ERR(0, 325, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_8); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_13, 2, __pyx_t_8) != (0)) __PYX_ERR(0, 323, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_13, 2, __pyx_t_8) != (0)) __PYX_ERR(0, 325, __pyx_L1_error); __Pyx_INCREF(Py_None); __Pyx_GIVEREF(Py_None); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_13, 3, Py_None) != (0)) __PYX_ERR(0, 323, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_13, 3, Py_None) != (0)) __PYX_ERR(0, 325, __pyx_L1_error); __pyx_t_7 = 0; __pyx_t_8 = 0; - __pyx_t_14 = __Pyx_PyList_Append(__pyx_v_result, __pyx_t_13); if (unlikely(__pyx_t_14 == ((int)-1))) __PYX_ERR(0, 323, __pyx_L1_error) + __pyx_t_14 = __Pyx_PyList_Append(__pyx_v_result, __pyx_t_13); if (unlikely(__pyx_t_14 == ((int)-1))) __PYX_ERR(0, 325, __pyx_L1_error) __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; - /* "pyreadstat/_readstat_writer.pyx":324 + /* "pyreadstat/_readstat_writer.pyx":326 * if equal and (col_type in float_types or curtype == float): * result.append((PYWRITER_DOUBLE, 0, has_missing, None)) * continue # <<<<<<<<<<<<<< @@ -7025,7 +7052,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_get_narwhals_column_typ */ goto __pyx_L4_continue; - /* "pyreadstat/_readstat_writer.pyx":322 + /* "pyreadstat/_readstat_writer.pyx":324 * * # numeric types: they could contain missing_user_values * if equal and (col_type in float_types or curtype == float): # <<<<<<<<<<<<<< @@ -7034,7 +7061,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_get_narwhals_column_typ */ } - /* "pyreadstat/_readstat_writer.pyx":325 + /* "pyreadstat/_readstat_writer.pyx":327 * result.append((PYWRITER_DOUBLE, 0, has_missing, None)) * continue * elif equal and (col_type in int_types or curtype == int): # <<<<<<<<<<<<<< @@ -7049,50 +7076,50 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_get_narwhals_column_typ } if (unlikely(__pyx_v_10pyreadstat_16_readstat_writer_int_types == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable"); - __PYX_ERR(0, 325, __pyx_L1_error) + __PYX_ERR(0, 327, __pyx_L1_error) } - __pyx_t_10 = (__Pyx_PySet_ContainsTF(__pyx_v_col_type, __pyx_v_10pyreadstat_16_readstat_writer_int_types, Py_EQ)); if (unlikely((__pyx_t_10 < 0))) __PYX_ERR(0, 325, __pyx_L1_error) + __pyx_t_10 = (__Pyx_PySet_ContainsTF(__pyx_v_col_type, __pyx_v_10pyreadstat_16_readstat_writer_int_types, Py_EQ)); if (unlikely((__pyx_t_10 < 0))) __PYX_ERR(0, 327, __pyx_L1_error) if (!__pyx_t_10) { } else { __pyx_t_2 = __pyx_t_10; goto __pyx_L27_bool_binop_done; } - __pyx_t_13 = PyObject_RichCompare(((PyObject *)__pyx_v_curtype), ((PyObject *)(&PyLong_Type)), Py_EQ); __Pyx_XGOTREF(__pyx_t_13); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 325, __pyx_L1_error) - __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_t_13); if (unlikely((__pyx_t_10 < 0))) __PYX_ERR(0, 325, __pyx_L1_error) + __pyx_t_13 = PyObject_RichCompare(((PyObject *)__pyx_v_curtype), ((PyObject *)(&PyLong_Type)), Py_EQ); __Pyx_XGOTREF(__pyx_t_13); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 327, __pyx_L1_error) + __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_t_13); if (unlikely((__pyx_t_10 < 0))) __PYX_ERR(0, 327, __pyx_L1_error) __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; __pyx_t_2 = __pyx_t_10; __pyx_L27_bool_binop_done:; if (__pyx_t_2) { - /* "pyreadstat/_readstat_writer.pyx":326 + /* "pyreadstat/_readstat_writer.pyx":328 * continue * elif equal and (col_type in int_types or curtype == int): * result.append((PYWRITER_INTEGER, 0,has_missing, None)) # <<<<<<<<<<<<<< * continue * elif equal and (col_type == nw.Boolean or curtype == bool): */ - __pyx_t_13 = __Pyx_PyLong_From___pyx_t_10pyreadstat_16_readstat_writer_pywriter_variable_type(__pyx_e_10pyreadstat_16_readstat_writer_PYWRITER_INTEGER); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 326, __pyx_L1_error) + __pyx_t_13 = __Pyx_PyLong_From___pyx_t_10pyreadstat_16_readstat_writer_pywriter_variable_type(__pyx_e_10pyreadstat_16_readstat_writer_PYWRITER_INTEGER); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 328, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); - __pyx_t_8 = __Pyx_PyBool_FromLong(__pyx_v_has_missing); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 326, __pyx_L1_error) + __pyx_t_8 = __Pyx_PyBool_FromLong(__pyx_v_has_missing); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 328, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); - __pyx_t_7 = PyTuple_New(4); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 326, __pyx_L1_error) + __pyx_t_7 = PyTuple_New(4); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 328, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_GIVEREF(__pyx_t_13); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_13) != (0)) __PYX_ERR(0, 326, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_13) != (0)) __PYX_ERR(0, 328, __pyx_L1_error); __Pyx_INCREF(__pyx_mstate_global->__pyx_int_0); __Pyx_GIVEREF(__pyx_mstate_global->__pyx_int_0); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_mstate_global->__pyx_int_0) != (0)) __PYX_ERR(0, 326, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_mstate_global->__pyx_int_0) != (0)) __PYX_ERR(0, 328, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_8); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 2, __pyx_t_8) != (0)) __PYX_ERR(0, 326, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 2, __pyx_t_8) != (0)) __PYX_ERR(0, 328, __pyx_L1_error); __Pyx_INCREF(Py_None); __Pyx_GIVEREF(Py_None); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 3, Py_None) != (0)) __PYX_ERR(0, 326, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 3, Py_None) != (0)) __PYX_ERR(0, 328, __pyx_L1_error); __pyx_t_13 = 0; __pyx_t_8 = 0; - __pyx_t_14 = __Pyx_PyList_Append(__pyx_v_result, __pyx_t_7); if (unlikely(__pyx_t_14 == ((int)-1))) __PYX_ERR(0, 326, __pyx_L1_error) + __pyx_t_14 = __Pyx_PyList_Append(__pyx_v_result, __pyx_t_7); if (unlikely(__pyx_t_14 == ((int)-1))) __PYX_ERR(0, 328, __pyx_L1_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - /* "pyreadstat/_readstat_writer.pyx":327 + /* "pyreadstat/_readstat_writer.pyx":329 * elif equal and (col_type in int_types or curtype == int): * result.append((PYWRITER_INTEGER, 0,has_missing, None)) * continue # <<<<<<<<<<<<<< @@ -7101,7 +7128,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_get_narwhals_column_typ */ goto __pyx_L4_continue; - /* "pyreadstat/_readstat_writer.pyx":325 + /* "pyreadstat/_readstat_writer.pyx":327 * result.append((PYWRITER_DOUBLE, 0, has_missing, None)) * continue * elif equal and (col_type in int_types or curtype == int): # <<<<<<<<<<<<<< @@ -7110,7 +7137,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_get_narwhals_column_typ */ } - /* "pyreadstat/_readstat_writer.pyx":328 + /* "pyreadstat/_readstat_writer.pyx":330 * result.append((PYWRITER_INTEGER, 0,has_missing, None)) * continue * elif equal and (col_type == nw.Boolean or curtype == bool): # <<<<<<<<<<<<<< @@ -7123,56 +7150,56 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_get_narwhals_column_typ __pyx_t_2 = __pyx_t_10; goto __pyx_L30_bool_binop_done; } - __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_mstate_global->__pyx_n_u_nw); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 328, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_mstate_global->__pyx_n_u_nw); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 330, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); - __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_mstate_global->__pyx_n_u_Boolean); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 328, __pyx_L1_error) + __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_mstate_global->__pyx_n_u_Boolean); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 330, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __pyx_t_7 = PyObject_RichCompare(__pyx_v_col_type, __pyx_t_8, Py_EQ); __Pyx_XGOTREF(__pyx_t_7); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 328, __pyx_L1_error) + __pyx_t_7 = PyObject_RichCompare(__pyx_v_col_type, __pyx_t_8, Py_EQ); __Pyx_XGOTREF(__pyx_t_7); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 330, __pyx_L1_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely((__pyx_t_10 < 0))) __PYX_ERR(0, 328, __pyx_L1_error) + __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely((__pyx_t_10 < 0))) __PYX_ERR(0, 330, __pyx_L1_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; if (!__pyx_t_10) { } else { __pyx_t_2 = __pyx_t_10; goto __pyx_L30_bool_binop_done; } - __pyx_t_7 = PyObject_RichCompare(((PyObject *)__pyx_v_curtype), ((PyObject *)(&PyBool_Type)), Py_EQ); __Pyx_XGOTREF(__pyx_t_7); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 328, __pyx_L1_error) - __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely((__pyx_t_10 < 0))) __PYX_ERR(0, 328, __pyx_L1_error) + __pyx_t_7 = PyObject_RichCompare(((PyObject *)__pyx_v_curtype), ((PyObject *)(&PyBool_Type)), Py_EQ); __Pyx_XGOTREF(__pyx_t_7); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 330, __pyx_L1_error) + __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely((__pyx_t_10 < 0))) __PYX_ERR(0, 330, __pyx_L1_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_2 = __pyx_t_10; __pyx_L30_bool_binop_done:; if (__pyx_t_2) { - /* "pyreadstat/_readstat_writer.pyx":329 + /* "pyreadstat/_readstat_writer.pyx":331 * continue * elif equal and (col_type == nw.Boolean or curtype == bool): * result.append((PYWRITER_LOGICAL, 0,has_missing, None)) # <<<<<<<<<<<<<< * continue * # these types here should not contain missing_user_values, */ - __pyx_t_7 = __Pyx_PyLong_From___pyx_t_10pyreadstat_16_readstat_writer_pywriter_variable_type(__pyx_e_10pyreadstat_16_readstat_writer_PYWRITER_LOGICAL); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 329, __pyx_L1_error) + __pyx_t_7 = __Pyx_PyLong_From___pyx_t_10pyreadstat_16_readstat_writer_pywriter_variable_type(__pyx_e_10pyreadstat_16_readstat_writer_PYWRITER_LOGICAL); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 331, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); - __pyx_t_8 = __Pyx_PyBool_FromLong(__pyx_v_has_missing); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 329, __pyx_L1_error) + __pyx_t_8 = __Pyx_PyBool_FromLong(__pyx_v_has_missing); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 331, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); - __pyx_t_13 = PyTuple_New(4); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 329, __pyx_L1_error) + __pyx_t_13 = PyTuple_New(4); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 331, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_GIVEREF(__pyx_t_7); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_13, 0, __pyx_t_7) != (0)) __PYX_ERR(0, 329, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_13, 0, __pyx_t_7) != (0)) __PYX_ERR(0, 331, __pyx_L1_error); __Pyx_INCREF(__pyx_mstate_global->__pyx_int_0); __Pyx_GIVEREF(__pyx_mstate_global->__pyx_int_0); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_13, 1, __pyx_mstate_global->__pyx_int_0) != (0)) __PYX_ERR(0, 329, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_13, 1, __pyx_mstate_global->__pyx_int_0) != (0)) __PYX_ERR(0, 331, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_8); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_13, 2, __pyx_t_8) != (0)) __PYX_ERR(0, 329, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_13, 2, __pyx_t_8) != (0)) __PYX_ERR(0, 331, __pyx_L1_error); __Pyx_INCREF(Py_None); __Pyx_GIVEREF(Py_None); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_13, 3, Py_None) != (0)) __PYX_ERR(0, 329, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_13, 3, Py_None) != (0)) __PYX_ERR(0, 331, __pyx_L1_error); __pyx_t_7 = 0; __pyx_t_8 = 0; - __pyx_t_14 = __Pyx_PyList_Append(__pyx_v_result, __pyx_t_13); if (unlikely(__pyx_t_14 == ((int)-1))) __PYX_ERR(0, 329, __pyx_L1_error) + __pyx_t_14 = __Pyx_PyList_Append(__pyx_v_result, __pyx_t_13); if (unlikely(__pyx_t_14 == ((int)-1))) __PYX_ERR(0, 331, __pyx_L1_error) __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; - /* "pyreadstat/_readstat_writer.pyx":330 + /* "pyreadstat/_readstat_writer.pyx":332 * elif equal and (col_type == nw.Boolean or curtype == bool): * result.append((PYWRITER_LOGICAL, 0,has_missing, None)) * continue # <<<<<<<<<<<<<< @@ -7181,7 +7208,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_get_narwhals_column_typ */ goto __pyx_L4_continue; - /* "pyreadstat/_readstat_writer.pyx":328 + /* "pyreadstat/_readstat_writer.pyx":330 * result.append((PYWRITER_INTEGER, 0,has_missing, None)) * continue * elif equal and (col_type == nw.Boolean or curtype == bool): # <<<<<<<<<<<<<< @@ -7190,35 +7217,35 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_get_narwhals_column_typ */ } - /* "pyreadstat/_readstat_writer.pyx":333 + /* "pyreadstat/_readstat_writer.pyx":335 * # these types here should not contain missing_user_values, * # for string we still check, as later we will raise an error * elif col_type == nw.String or curtype == str: # <<<<<<<<<<<<<< * isobject = 0 * if not equal: */ - __Pyx_GetModuleGlobalName(__pyx_t_13, __pyx_mstate_global->__pyx_n_u_nw); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 333, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_13, __pyx_mstate_global->__pyx_n_u_nw); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 335, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); - __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_13, __pyx_mstate_global->__pyx_n_u_String); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 333, __pyx_L1_error) + __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_13, __pyx_mstate_global->__pyx_n_u_String); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 335, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; - __pyx_t_13 = PyObject_RichCompare(__pyx_v_col_type, __pyx_t_8, Py_EQ); __Pyx_XGOTREF(__pyx_t_13); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 333, __pyx_L1_error) + __pyx_t_13 = PyObject_RichCompare(__pyx_v_col_type, __pyx_t_8, Py_EQ); __Pyx_XGOTREF(__pyx_t_13); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 335, __pyx_L1_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_t_13); if (unlikely((__pyx_t_10 < 0))) __PYX_ERR(0, 333, __pyx_L1_error) + __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_t_13); if (unlikely((__pyx_t_10 < 0))) __PYX_ERR(0, 335, __pyx_L1_error) __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; if (!__pyx_t_10) { } else { __pyx_t_2 = __pyx_t_10; goto __pyx_L33_bool_binop_done; } - __pyx_t_13 = PyObject_RichCompare(((PyObject *)__pyx_v_curtype), ((PyObject *)(&PyUnicode_Type)), Py_EQ); __Pyx_XGOTREF(__pyx_t_13); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 333, __pyx_L1_error) - __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_t_13); if (unlikely((__pyx_t_10 < 0))) __PYX_ERR(0, 333, __pyx_L1_error) + __pyx_t_13 = PyObject_RichCompare(((PyObject *)__pyx_v_curtype), ((PyObject *)(&PyUnicode_Type)), Py_EQ); __Pyx_XGOTREF(__pyx_t_13); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 335, __pyx_L1_error) + __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_t_13); if (unlikely((__pyx_t_10 < 0))) __PYX_ERR(0, 335, __pyx_L1_error) __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; __pyx_t_2 = __pyx_t_10; __pyx_L33_bool_binop_done:; if (__pyx_t_2) { - /* "pyreadstat/_readstat_writer.pyx":334 + /* "pyreadstat/_readstat_writer.pyx":336 * # for string we still check, as later we will raise an error * elif col_type == nw.String or curtype == str: * isobject = 0 # <<<<<<<<<<<<<< @@ -7227,7 +7254,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_get_narwhals_column_typ */ __pyx_v_isobject = 0; - /* "pyreadstat/_readstat_writer.pyx":335 + /* "pyreadstat/_readstat_writer.pyx":337 * elif col_type == nw.String or curtype == str: * isobject = 0 * if not equal: # <<<<<<<<<<<<<< @@ -7237,7 +7264,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_get_narwhals_column_typ __pyx_t_2 = (!(__pyx_v_equal != 0)); if (__pyx_t_2) { - /* "pyreadstat/_readstat_writer.pyx":336 + /* "pyreadstat/_readstat_writer.pyx":338 * isobject = 0 * if not equal: * isobject = 1 # <<<<<<<<<<<<<< @@ -7246,7 +7273,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_get_narwhals_column_typ */ __pyx_v_isobject = 1; - /* "pyreadstat/_readstat_writer.pyx":335 + /* "pyreadstat/_readstat_writer.pyx":337 * elif col_type == nw.String or curtype == str: * isobject = 0 * if not equal: # <<<<<<<<<<<<<< @@ -7255,7 +7282,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_get_narwhals_column_typ */ } - /* "pyreadstat/_readstat_writer.pyx":337 + /* "pyreadstat/_readstat_writer.pyx":339 * if not equal: * isobject = 1 * max_length = get_narwhals_str_series_max_length(curseries, variable_value_labels.get(col_name), isobject) # <<<<<<<<<<<<<< @@ -7264,16 +7291,16 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_get_narwhals_column_typ */ if (unlikely(__pyx_v_variable_value_labels == Py_None)) { PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "get"); - __PYX_ERR(0, 337, __pyx_L1_error) + __PYX_ERR(0, 339, __pyx_L1_error) } - __pyx_t_13 = __Pyx_PyDict_GetItemDefault(__pyx_v_variable_value_labels, __pyx_v_col_name, Py_None); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 337, __pyx_L1_error) + __pyx_t_13 = __Pyx_PyDict_GetItemDefault(__pyx_v_variable_value_labels, __pyx_v_col_name, Py_None); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 339, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); - if (!(likely(PyDict_CheckExact(__pyx_t_13))||((__pyx_t_13) == Py_None) || __Pyx_RaiseUnexpectedTypeError("dict", __pyx_t_13))) __PYX_ERR(0, 337, __pyx_L1_error) - __pyx_t_15 = __pyx_f_10pyreadstat_16_readstat_writer_get_narwhals_str_series_max_length(__pyx_v_curseries, ((PyObject*)__pyx_t_13), __pyx_v_isobject); if (unlikely(__pyx_t_15 == ((int)-1) && PyErr_Occurred())) __PYX_ERR(0, 337, __pyx_L1_error) + if (!(likely(PyDict_CheckExact(__pyx_t_13))||((__pyx_t_13) == Py_None) || __Pyx_RaiseUnexpectedTypeError("dict", __pyx_t_13))) __PYX_ERR(0, 339, __pyx_L1_error) + __pyx_t_15 = __pyx_f_10pyreadstat_16_readstat_writer_get_narwhals_str_series_max_length(__pyx_v_curseries, ((PyObject*)__pyx_t_13), __pyx_v_isobject); if (unlikely(__pyx_t_15 == ((int)-1) && PyErr_Occurred())) __PYX_ERR(0, 339, __pyx_L1_error) __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; __pyx_v_max_length = __pyx_t_15; - /* "pyreadstat/_readstat_writer.pyx":338 + /* "pyreadstat/_readstat_writer.pyx":340 * isobject = 1 * max_length = get_narwhals_str_series_max_length(curseries, variable_value_labels.get(col_name), isobject) * if dta_str_max_len and max_length >= dta_str_max_len: # <<<<<<<<<<<<<< @@ -7291,37 +7318,37 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_get_narwhals_column_typ __pyx_L37_bool_binop_done:; if (__pyx_t_2) { - /* "pyreadstat/_readstat_writer.pyx":339 + /* "pyreadstat/_readstat_writer.pyx":341 * max_length = get_narwhals_str_series_max_length(curseries, variable_value_labels.get(col_name), isobject) * if dta_str_max_len and max_length >= dta_str_max_len: * result.append((PYWRITER_DTA_STR_REF, max_length, has_missing, None)) # <<<<<<<<<<<<<< * continue * else: */ - __pyx_t_13 = __Pyx_PyLong_From___pyx_t_10pyreadstat_16_readstat_writer_pywriter_variable_type(__pyx_e_10pyreadstat_16_readstat_writer_PYWRITER_DTA_STR_REF); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 339, __pyx_L1_error) + __pyx_t_13 = __Pyx_PyLong_From___pyx_t_10pyreadstat_16_readstat_writer_pywriter_variable_type(__pyx_e_10pyreadstat_16_readstat_writer_PYWRITER_DTA_STR_REF); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 341, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); - __pyx_t_8 = __Pyx_PyLong_From_int(__pyx_v_max_length); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 339, __pyx_L1_error) + __pyx_t_8 = __Pyx_PyLong_From_int(__pyx_v_max_length); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 341, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); - __pyx_t_7 = __Pyx_PyBool_FromLong(__pyx_v_has_missing); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 339, __pyx_L1_error) + __pyx_t_7 = __Pyx_PyBool_FromLong(__pyx_v_has_missing); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 341, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 339, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 341, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_13); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_13) != (0)) __PYX_ERR(0, 339, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_13) != (0)) __PYX_ERR(0, 341, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_8); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_8) != (0)) __PYX_ERR(0, 339, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_8) != (0)) __PYX_ERR(0, 341, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_7); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_t_7) != (0)) __PYX_ERR(0, 339, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_t_7) != (0)) __PYX_ERR(0, 341, __pyx_L1_error); __Pyx_INCREF(Py_None); __Pyx_GIVEREF(Py_None); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, Py_None) != (0)) __PYX_ERR(0, 339, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, Py_None) != (0)) __PYX_ERR(0, 341, __pyx_L1_error); __pyx_t_13 = 0; __pyx_t_8 = 0; __pyx_t_7 = 0; - __pyx_t_14 = __Pyx_PyList_Append(__pyx_v_result, __pyx_t_1); if (unlikely(__pyx_t_14 == ((int)-1))) __PYX_ERR(0, 339, __pyx_L1_error) + __pyx_t_14 = __Pyx_PyList_Append(__pyx_v_result, __pyx_t_1); if (unlikely(__pyx_t_14 == ((int)-1))) __PYX_ERR(0, 341, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "pyreadstat/_readstat_writer.pyx":340 + /* "pyreadstat/_readstat_writer.pyx":342 * if dta_str_max_len and max_length >= dta_str_max_len: * result.append((PYWRITER_DTA_STR_REF, max_length, has_missing, None)) * continue # <<<<<<<<<<<<<< @@ -7330,7 +7357,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_get_narwhals_column_typ */ goto __pyx_L4_continue; - /* "pyreadstat/_readstat_writer.pyx":338 + /* "pyreadstat/_readstat_writer.pyx":340 * isobject = 1 * max_length = get_narwhals_str_series_max_length(curseries, variable_value_labels.get(col_name), isobject) * if dta_str_max_len and max_length >= dta_str_max_len: # <<<<<<<<<<<<<< @@ -7339,7 +7366,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_get_narwhals_column_typ */ } - /* "pyreadstat/_readstat_writer.pyx":342 + /* "pyreadstat/_readstat_writer.pyx":344 * continue * else: * if isobject: # <<<<<<<<<<<<<< @@ -7350,37 +7377,37 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_get_narwhals_column_typ __pyx_t_2 = (__pyx_v_isobject != 0); if (__pyx_t_2) { - /* "pyreadstat/_readstat_writer.pyx":343 + /* "pyreadstat/_readstat_writer.pyx":345 * else: * if isobject: * result.append((PYWRITER_OBJECT, max_length, has_missing, None)) # <<<<<<<<<<<<<< * else: * result.append((PYWRITER_CHARACTER, max_length, has_missing, None)) */ - __pyx_t_1 = __Pyx_PyLong_From___pyx_t_10pyreadstat_16_readstat_writer_pywriter_variable_type(__pyx_e_10pyreadstat_16_readstat_writer_PYWRITER_OBJECT); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 343, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyLong_From___pyx_t_10pyreadstat_16_readstat_writer_pywriter_variable_type(__pyx_e_10pyreadstat_16_readstat_writer_PYWRITER_OBJECT); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 345, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_7 = __Pyx_PyLong_From_int(__pyx_v_max_length); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 343, __pyx_L1_error) + __pyx_t_7 = __Pyx_PyLong_From_int(__pyx_v_max_length); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 345, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); - __pyx_t_8 = __Pyx_PyBool_FromLong(__pyx_v_has_missing); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 343, __pyx_L1_error) + __pyx_t_8 = __Pyx_PyBool_FromLong(__pyx_v_has_missing); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 345, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); - __pyx_t_13 = PyTuple_New(4); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 343, __pyx_L1_error) + __pyx_t_13 = PyTuple_New(4); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 345, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_GIVEREF(__pyx_t_1); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_13, 0, __pyx_t_1) != (0)) __PYX_ERR(0, 343, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_13, 0, __pyx_t_1) != (0)) __PYX_ERR(0, 345, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_7); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_13, 1, __pyx_t_7) != (0)) __PYX_ERR(0, 343, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_13, 1, __pyx_t_7) != (0)) __PYX_ERR(0, 345, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_8); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_13, 2, __pyx_t_8) != (0)) __PYX_ERR(0, 343, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_13, 2, __pyx_t_8) != (0)) __PYX_ERR(0, 345, __pyx_L1_error); __Pyx_INCREF(Py_None); __Pyx_GIVEREF(Py_None); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_13, 3, Py_None) != (0)) __PYX_ERR(0, 343, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_13, 3, Py_None) != (0)) __PYX_ERR(0, 345, __pyx_L1_error); __pyx_t_1 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; - __pyx_t_14 = __Pyx_PyList_Append(__pyx_v_result, __pyx_t_13); if (unlikely(__pyx_t_14 == ((int)-1))) __PYX_ERR(0, 343, __pyx_L1_error) + __pyx_t_14 = __Pyx_PyList_Append(__pyx_v_result, __pyx_t_13); if (unlikely(__pyx_t_14 == ((int)-1))) __PYX_ERR(0, 345, __pyx_L1_error) __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; - /* "pyreadstat/_readstat_writer.pyx":342 + /* "pyreadstat/_readstat_writer.pyx":344 * continue * else: * if isobject: # <<<<<<<<<<<<<< @@ -7390,7 +7417,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_get_narwhals_column_typ goto __pyx_L39; } - /* "pyreadstat/_readstat_writer.pyx":345 + /* "pyreadstat/_readstat_writer.pyx":347 * result.append((PYWRITER_OBJECT, max_length, has_missing, None)) * else: * result.append((PYWRITER_CHARACTER, max_length, has_missing, None)) # <<<<<<<<<<<<<< @@ -7398,32 +7425,32 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_get_narwhals_column_typ * elif col_type == nw.Datetime: */ /*else*/ { - __pyx_t_13 = __Pyx_PyLong_From___pyx_t_10pyreadstat_16_readstat_writer_pywriter_variable_type(__pyx_e_10pyreadstat_16_readstat_writer_PYWRITER_CHARACTER); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 345, __pyx_L1_error) + __pyx_t_13 = __Pyx_PyLong_From___pyx_t_10pyreadstat_16_readstat_writer_pywriter_variable_type(__pyx_e_10pyreadstat_16_readstat_writer_PYWRITER_CHARACTER); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 347, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); - __pyx_t_8 = __Pyx_PyLong_From_int(__pyx_v_max_length); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 345, __pyx_L1_error) + __pyx_t_8 = __Pyx_PyLong_From_int(__pyx_v_max_length); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 347, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); - __pyx_t_7 = __Pyx_PyBool_FromLong(__pyx_v_has_missing); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 345, __pyx_L1_error) + __pyx_t_7 = __Pyx_PyBool_FromLong(__pyx_v_has_missing); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 347, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 345, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 347, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_13); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_13) != (0)) __PYX_ERR(0, 345, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_13) != (0)) __PYX_ERR(0, 347, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_8); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_8) != (0)) __PYX_ERR(0, 345, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_8) != (0)) __PYX_ERR(0, 347, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_7); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_t_7) != (0)) __PYX_ERR(0, 345, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_t_7) != (0)) __PYX_ERR(0, 347, __pyx_L1_error); __Pyx_INCREF(Py_None); __Pyx_GIVEREF(Py_None); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, Py_None) != (0)) __PYX_ERR(0, 345, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, Py_None) != (0)) __PYX_ERR(0, 347, __pyx_L1_error); __pyx_t_13 = 0; __pyx_t_8 = 0; __pyx_t_7 = 0; - __pyx_t_14 = __Pyx_PyList_Append(__pyx_v_result, __pyx_t_1); if (unlikely(__pyx_t_14 == ((int)-1))) __PYX_ERR(0, 345, __pyx_L1_error) + __pyx_t_14 = __Pyx_PyList_Append(__pyx_v_result, __pyx_t_1); if (unlikely(__pyx_t_14 == ((int)-1))) __PYX_ERR(0, 347, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } __pyx_L39:; - /* "pyreadstat/_readstat_writer.pyx":346 + /* "pyreadstat/_readstat_writer.pyx":348 * else: * result.append((PYWRITER_CHARACTER, max_length, has_missing, None)) * continue # <<<<<<<<<<<<<< @@ -7433,7 +7460,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_get_narwhals_column_typ goto __pyx_L4_continue; } - /* "pyreadstat/_readstat_writer.pyx":333 + /* "pyreadstat/_readstat_writer.pyx":335 * # these types here should not contain missing_user_values, * # for string we still check, as later we will raise an error * elif col_type == nw.String or curtype == str: # <<<<<<<<<<<<<< @@ -7442,66 +7469,66 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_get_narwhals_column_typ */ } - /* "pyreadstat/_readstat_writer.pyx":347 + /* "pyreadstat/_readstat_writer.pyx":349 * result.append((PYWRITER_CHARACTER, max_length, has_missing, None)) * continue * elif col_type == nw.Datetime: # <<<<<<<<<<<<<< * if col_type.time_unit == 'us': * result.append((PYWRITER_DATETIME64, 0,has_missing, 'us')) */ - __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_nw); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 347, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_nw); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 349, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_Datetime); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 347, __pyx_L1_error) + __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_Datetime); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 349, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyObject_RichCompare(__pyx_v_col_type, __pyx_t_7, Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 347, __pyx_L1_error) + __pyx_t_1 = PyObject_RichCompare(__pyx_v_col_type, __pyx_t_7, Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 349, __pyx_L1_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 347, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 349, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_2) { - /* "pyreadstat/_readstat_writer.pyx":348 + /* "pyreadstat/_readstat_writer.pyx":350 * continue * elif col_type == nw.Datetime: * if col_type.time_unit == 'us': # <<<<<<<<<<<<<< * result.append((PYWRITER_DATETIME64, 0,has_missing, 'us')) * continue */ - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_col_type, __pyx_mstate_global->__pyx_n_u_time_unit); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 348, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_col_type, __pyx_mstate_global->__pyx_n_u_time_unit); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 350, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_us, Py_EQ)); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 348, __pyx_L1_error) + __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_us, Py_EQ)); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 350, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_2) { - /* "pyreadstat/_readstat_writer.pyx":349 + /* "pyreadstat/_readstat_writer.pyx":351 * elif col_type == nw.Datetime: * if col_type.time_unit == 'us': * result.append((PYWRITER_DATETIME64, 0,has_missing, 'us')) # <<<<<<<<<<<<<< * continue * elif col_type.time_unit == 'ns': */ - __pyx_t_1 = __Pyx_PyLong_From___pyx_t_10pyreadstat_16_readstat_writer_pywriter_variable_type(__pyx_e_10pyreadstat_16_readstat_writer_PYWRITER_DATETIME64); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 349, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyLong_From___pyx_t_10pyreadstat_16_readstat_writer_pywriter_variable_type(__pyx_e_10pyreadstat_16_readstat_writer_PYWRITER_DATETIME64); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 351, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_7 = __Pyx_PyBool_FromLong(__pyx_v_has_missing); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 349, __pyx_L1_error) + __pyx_t_7 = __Pyx_PyBool_FromLong(__pyx_v_has_missing); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 351, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); - __pyx_t_8 = PyTuple_New(4); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 349, __pyx_L1_error) + __pyx_t_8 = PyTuple_New(4); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 351, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_GIVEREF(__pyx_t_1); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_1) != (0)) __PYX_ERR(0, 349, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_1) != (0)) __PYX_ERR(0, 351, __pyx_L1_error); __Pyx_INCREF(__pyx_mstate_global->__pyx_int_0); __Pyx_GIVEREF(__pyx_mstate_global->__pyx_int_0); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_8, 1, __pyx_mstate_global->__pyx_int_0) != (0)) __PYX_ERR(0, 349, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_8, 1, __pyx_mstate_global->__pyx_int_0) != (0)) __PYX_ERR(0, 351, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_7); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_8, 2, __pyx_t_7) != (0)) __PYX_ERR(0, 349, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_8, 2, __pyx_t_7) != (0)) __PYX_ERR(0, 351, __pyx_L1_error); __Pyx_INCREF(__pyx_mstate_global->__pyx_n_u_us); __Pyx_GIVEREF(__pyx_mstate_global->__pyx_n_u_us); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_8, 3, __pyx_mstate_global->__pyx_n_u_us) != (0)) __PYX_ERR(0, 349, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_8, 3, __pyx_mstate_global->__pyx_n_u_us) != (0)) __PYX_ERR(0, 351, __pyx_L1_error); __pyx_t_1 = 0; __pyx_t_7 = 0; - __pyx_t_14 = __Pyx_PyList_Append(__pyx_v_result, __pyx_t_8); if (unlikely(__pyx_t_14 == ((int)-1))) __PYX_ERR(0, 349, __pyx_L1_error) + __pyx_t_14 = __Pyx_PyList_Append(__pyx_v_result, __pyx_t_8); if (unlikely(__pyx_t_14 == ((int)-1))) __PYX_ERR(0, 351, __pyx_L1_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - /* "pyreadstat/_readstat_writer.pyx":350 + /* "pyreadstat/_readstat_writer.pyx":352 * if col_type.time_unit == 'us': * result.append((PYWRITER_DATETIME64, 0,has_missing, 'us')) * continue # <<<<<<<<<<<<<< @@ -7510,7 +7537,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_get_narwhals_column_typ */ goto __pyx_L4_continue; - /* "pyreadstat/_readstat_writer.pyx":348 + /* "pyreadstat/_readstat_writer.pyx":350 * continue * elif col_type == nw.Datetime: * if col_type.time_unit == 'us': # <<<<<<<<<<<<<< @@ -7519,48 +7546,48 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_get_narwhals_column_typ */ } - /* "pyreadstat/_readstat_writer.pyx":351 + /* "pyreadstat/_readstat_writer.pyx":353 * result.append((PYWRITER_DATETIME64, 0,has_missing, 'us')) * continue * elif col_type.time_unit == 'ns': # <<<<<<<<<<<<<< * result.append((PYWRITER_DATETIME64, 0,has_missing, 'ns')) * continue */ - __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_col_type, __pyx_mstate_global->__pyx_n_u_time_unit); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 351, __pyx_L1_error) + __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_col_type, __pyx_mstate_global->__pyx_n_u_time_unit); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 353, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); - __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_ns, Py_EQ)); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 351, __pyx_L1_error) + __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_ns, Py_EQ)); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 353, __pyx_L1_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; if (__pyx_t_2) { - /* "pyreadstat/_readstat_writer.pyx":352 + /* "pyreadstat/_readstat_writer.pyx":354 * continue * elif col_type.time_unit == 'ns': * result.append((PYWRITER_DATETIME64, 0,has_missing, 'ns')) # <<<<<<<<<<<<<< * continue * elif col_type.time_unit == 'ms': */ - __pyx_t_8 = __Pyx_PyLong_From___pyx_t_10pyreadstat_16_readstat_writer_pywriter_variable_type(__pyx_e_10pyreadstat_16_readstat_writer_PYWRITER_DATETIME64); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 352, __pyx_L1_error) + __pyx_t_8 = __Pyx_PyLong_From___pyx_t_10pyreadstat_16_readstat_writer_pywriter_variable_type(__pyx_e_10pyreadstat_16_readstat_writer_PYWRITER_DATETIME64); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 354, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); - __pyx_t_7 = __Pyx_PyBool_FromLong(__pyx_v_has_missing); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 352, __pyx_L1_error) + __pyx_t_7 = __Pyx_PyBool_FromLong(__pyx_v_has_missing); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 354, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 352, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 354, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_8); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_8) != (0)) __PYX_ERR(0, 352, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_8) != (0)) __PYX_ERR(0, 354, __pyx_L1_error); __Pyx_INCREF(__pyx_mstate_global->__pyx_int_0); __Pyx_GIVEREF(__pyx_mstate_global->__pyx_int_0); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_mstate_global->__pyx_int_0) != (0)) __PYX_ERR(0, 352, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_mstate_global->__pyx_int_0) != (0)) __PYX_ERR(0, 354, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_7); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_t_7) != (0)) __PYX_ERR(0, 352, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_t_7) != (0)) __PYX_ERR(0, 354, __pyx_L1_error); __Pyx_INCREF(__pyx_mstate_global->__pyx_n_u_ns); __Pyx_GIVEREF(__pyx_mstate_global->__pyx_n_u_ns); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_mstate_global->__pyx_n_u_ns) != (0)) __PYX_ERR(0, 352, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_mstate_global->__pyx_n_u_ns) != (0)) __PYX_ERR(0, 354, __pyx_L1_error); __pyx_t_8 = 0; __pyx_t_7 = 0; - __pyx_t_14 = __Pyx_PyList_Append(__pyx_v_result, __pyx_t_1); if (unlikely(__pyx_t_14 == ((int)-1))) __PYX_ERR(0, 352, __pyx_L1_error) + __pyx_t_14 = __Pyx_PyList_Append(__pyx_v_result, __pyx_t_1); if (unlikely(__pyx_t_14 == ((int)-1))) __PYX_ERR(0, 354, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "pyreadstat/_readstat_writer.pyx":353 + /* "pyreadstat/_readstat_writer.pyx":355 * elif col_type.time_unit == 'ns': * result.append((PYWRITER_DATETIME64, 0,has_missing, 'ns')) * continue # <<<<<<<<<<<<<< @@ -7569,7 +7596,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_get_narwhals_column_typ */ goto __pyx_L4_continue; - /* "pyreadstat/_readstat_writer.pyx":351 + /* "pyreadstat/_readstat_writer.pyx":353 * result.append((PYWRITER_DATETIME64, 0,has_missing, 'us')) * continue * elif col_type.time_unit == 'ns': # <<<<<<<<<<<<<< @@ -7578,48 +7605,48 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_get_narwhals_column_typ */ } - /* "pyreadstat/_readstat_writer.pyx":354 + /* "pyreadstat/_readstat_writer.pyx":356 * result.append((PYWRITER_DATETIME64, 0,has_missing, 'ns')) * continue * elif col_type.time_unit == 'ms': # <<<<<<<<<<<<<< * result.append((PYWRITER_DATETIME64, 0,has_missing, 'ms')) * continue */ - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_col_type, __pyx_mstate_global->__pyx_n_u_time_unit); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 354, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_col_type, __pyx_mstate_global->__pyx_n_u_time_unit); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 356, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_ms, Py_EQ)); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 354, __pyx_L1_error) + __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_ms, Py_EQ)); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 356, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_2) { - /* "pyreadstat/_readstat_writer.pyx":355 + /* "pyreadstat/_readstat_writer.pyx":357 * continue * elif col_type.time_unit == 'ms': * result.append((PYWRITER_DATETIME64, 0,has_missing, 'ms')) # <<<<<<<<<<<<<< * continue * else: */ - __pyx_t_1 = __Pyx_PyLong_From___pyx_t_10pyreadstat_16_readstat_writer_pywriter_variable_type(__pyx_e_10pyreadstat_16_readstat_writer_PYWRITER_DATETIME64); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 355, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyLong_From___pyx_t_10pyreadstat_16_readstat_writer_pywriter_variable_type(__pyx_e_10pyreadstat_16_readstat_writer_PYWRITER_DATETIME64); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 357, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_7 = __Pyx_PyBool_FromLong(__pyx_v_has_missing); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 355, __pyx_L1_error) + __pyx_t_7 = __Pyx_PyBool_FromLong(__pyx_v_has_missing); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 357, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); - __pyx_t_8 = PyTuple_New(4); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 355, __pyx_L1_error) + __pyx_t_8 = PyTuple_New(4); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 357, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_GIVEREF(__pyx_t_1); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_1) != (0)) __PYX_ERR(0, 355, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_1) != (0)) __PYX_ERR(0, 357, __pyx_L1_error); __Pyx_INCREF(__pyx_mstate_global->__pyx_int_0); __Pyx_GIVEREF(__pyx_mstate_global->__pyx_int_0); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_8, 1, __pyx_mstate_global->__pyx_int_0) != (0)) __PYX_ERR(0, 355, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_8, 1, __pyx_mstate_global->__pyx_int_0) != (0)) __PYX_ERR(0, 357, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_7); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_8, 2, __pyx_t_7) != (0)) __PYX_ERR(0, 355, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_8, 2, __pyx_t_7) != (0)) __PYX_ERR(0, 357, __pyx_L1_error); __Pyx_INCREF(__pyx_mstate_global->__pyx_n_u_ms); __Pyx_GIVEREF(__pyx_mstate_global->__pyx_n_u_ms); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_8, 3, __pyx_mstate_global->__pyx_n_u_ms) != (0)) __PYX_ERR(0, 355, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_8, 3, __pyx_mstate_global->__pyx_n_u_ms) != (0)) __PYX_ERR(0, 357, __pyx_L1_error); __pyx_t_1 = 0; __pyx_t_7 = 0; - __pyx_t_14 = __Pyx_PyList_Append(__pyx_v_result, __pyx_t_8); if (unlikely(__pyx_t_14 == ((int)-1))) __PYX_ERR(0, 355, __pyx_L1_error) + __pyx_t_14 = __Pyx_PyList_Append(__pyx_v_result, __pyx_t_8); if (unlikely(__pyx_t_14 == ((int)-1))) __PYX_ERR(0, 357, __pyx_L1_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - /* "pyreadstat/_readstat_writer.pyx":356 + /* "pyreadstat/_readstat_writer.pyx":358 * elif col_type.time_unit == 'ms': * result.append((PYWRITER_DATETIME64, 0,has_missing, 'ms')) * continue # <<<<<<<<<<<<<< @@ -7628,7 +7655,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_get_narwhals_column_typ */ goto __pyx_L4_continue; - /* "pyreadstat/_readstat_writer.pyx":354 + /* "pyreadstat/_readstat_writer.pyx":356 * result.append((PYWRITER_DATETIME64, 0,has_missing, 'ns')) * continue * elif col_type.time_unit == 'ms': # <<<<<<<<<<<<<< @@ -7637,7 +7664,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_get_narwhals_column_typ */ } - /* "pyreadstat/_readstat_writer.pyx":358 + /* "pyreadstat/_readstat_writer.pyx":360 * continue * else: * result.append((PYWRITER_DATETIME, 0, has_missing, None)) # <<<<<<<<<<<<<< @@ -7645,28 +7672,28 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_get_narwhals_column_typ * elif col_type == nw.Date: */ /*else*/ { - __pyx_t_8 = __Pyx_PyLong_From___pyx_t_10pyreadstat_16_readstat_writer_pywriter_variable_type(__pyx_e_10pyreadstat_16_readstat_writer_PYWRITER_DATETIME); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 358, __pyx_L1_error) + __pyx_t_8 = __Pyx_PyLong_From___pyx_t_10pyreadstat_16_readstat_writer_pywriter_variable_type(__pyx_e_10pyreadstat_16_readstat_writer_PYWRITER_DATETIME); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 360, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); - __pyx_t_7 = __Pyx_PyBool_FromLong(__pyx_v_has_missing); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 358, __pyx_L1_error) + __pyx_t_7 = __Pyx_PyBool_FromLong(__pyx_v_has_missing); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 360, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 358, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 360, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_8); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_8) != (0)) __PYX_ERR(0, 358, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_8) != (0)) __PYX_ERR(0, 360, __pyx_L1_error); __Pyx_INCREF(__pyx_mstate_global->__pyx_int_0); __Pyx_GIVEREF(__pyx_mstate_global->__pyx_int_0); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_mstate_global->__pyx_int_0) != (0)) __PYX_ERR(0, 358, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_mstate_global->__pyx_int_0) != (0)) __PYX_ERR(0, 360, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_7); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_t_7) != (0)) __PYX_ERR(0, 358, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_t_7) != (0)) __PYX_ERR(0, 360, __pyx_L1_error); __Pyx_INCREF(Py_None); __Pyx_GIVEREF(Py_None); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, Py_None) != (0)) __PYX_ERR(0, 358, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, Py_None) != (0)) __PYX_ERR(0, 360, __pyx_L1_error); __pyx_t_8 = 0; __pyx_t_7 = 0; - __pyx_t_14 = __Pyx_PyList_Append(__pyx_v_result, __pyx_t_1); if (unlikely(__pyx_t_14 == ((int)-1))) __PYX_ERR(0, 358, __pyx_L1_error) + __pyx_t_14 = __Pyx_PyList_Append(__pyx_v_result, __pyx_t_1); if (unlikely(__pyx_t_14 == ((int)-1))) __PYX_ERR(0, 360, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "pyreadstat/_readstat_writer.pyx":359 + /* "pyreadstat/_readstat_writer.pyx":361 * else: * result.append((PYWRITER_DATETIME, 0, has_missing, None)) * continue # <<<<<<<<<<<<<< @@ -7676,7 +7703,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_get_narwhals_column_typ goto __pyx_L4_continue; } - /* "pyreadstat/_readstat_writer.pyx":347 + /* "pyreadstat/_readstat_writer.pyx":349 * result.append((PYWRITER_CHARACTER, max_length, has_missing, None)) * continue * elif col_type == nw.Datetime: # <<<<<<<<<<<<<< @@ -7685,53 +7712,53 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_get_narwhals_column_typ */ } - /* "pyreadstat/_readstat_writer.pyx":360 + /* "pyreadstat/_readstat_writer.pyx":362 * result.append((PYWRITER_DATETIME, 0, has_missing, None)) * continue * elif col_type == nw.Date: # <<<<<<<<<<<<<< * result.append((PYWRITER_DATE64, 0, has_missing, None)) * continue */ - __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_nw); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 360, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_nw); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 362, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_Date); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 360, __pyx_L1_error) + __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_Date); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 362, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyObject_RichCompare(__pyx_v_col_type, __pyx_t_7, Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 360, __pyx_L1_error) + __pyx_t_1 = PyObject_RichCompare(__pyx_v_col_type, __pyx_t_7, Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 362, __pyx_L1_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 360, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 362, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_2) { - /* "pyreadstat/_readstat_writer.pyx":361 + /* "pyreadstat/_readstat_writer.pyx":363 * continue * elif col_type == nw.Date: * result.append((PYWRITER_DATE64, 0, has_missing, None)) # <<<<<<<<<<<<<< * continue * elif col_type == nw.Time: */ - __pyx_t_1 = __Pyx_PyLong_From___pyx_t_10pyreadstat_16_readstat_writer_pywriter_variable_type(__pyx_e_10pyreadstat_16_readstat_writer_PYWRITER_DATE64); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 361, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyLong_From___pyx_t_10pyreadstat_16_readstat_writer_pywriter_variable_type(__pyx_e_10pyreadstat_16_readstat_writer_PYWRITER_DATE64); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 363, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_7 = __Pyx_PyBool_FromLong(__pyx_v_has_missing); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 361, __pyx_L1_error) + __pyx_t_7 = __Pyx_PyBool_FromLong(__pyx_v_has_missing); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 363, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); - __pyx_t_8 = PyTuple_New(4); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 361, __pyx_L1_error) + __pyx_t_8 = PyTuple_New(4); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 363, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_GIVEREF(__pyx_t_1); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_1) != (0)) __PYX_ERR(0, 361, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_1) != (0)) __PYX_ERR(0, 363, __pyx_L1_error); __Pyx_INCREF(__pyx_mstate_global->__pyx_int_0); __Pyx_GIVEREF(__pyx_mstate_global->__pyx_int_0); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_8, 1, __pyx_mstate_global->__pyx_int_0) != (0)) __PYX_ERR(0, 361, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_8, 1, __pyx_mstate_global->__pyx_int_0) != (0)) __PYX_ERR(0, 363, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_7); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_8, 2, __pyx_t_7) != (0)) __PYX_ERR(0, 361, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_8, 2, __pyx_t_7) != (0)) __PYX_ERR(0, 363, __pyx_L1_error); __Pyx_INCREF(Py_None); __Pyx_GIVEREF(Py_None); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_8, 3, Py_None) != (0)) __PYX_ERR(0, 361, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_8, 3, Py_None) != (0)) __PYX_ERR(0, 363, __pyx_L1_error); __pyx_t_1 = 0; __pyx_t_7 = 0; - __pyx_t_14 = __Pyx_PyList_Append(__pyx_v_result, __pyx_t_8); if (unlikely(__pyx_t_14 == ((int)-1))) __PYX_ERR(0, 361, __pyx_L1_error) + __pyx_t_14 = __Pyx_PyList_Append(__pyx_v_result, __pyx_t_8); if (unlikely(__pyx_t_14 == ((int)-1))) __PYX_ERR(0, 363, __pyx_L1_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - /* "pyreadstat/_readstat_writer.pyx":362 + /* "pyreadstat/_readstat_writer.pyx":364 * elif col_type == nw.Date: * result.append((PYWRITER_DATE64, 0, has_missing, None)) * continue # <<<<<<<<<<<<<< @@ -7740,7 +7767,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_get_narwhals_column_typ */ goto __pyx_L4_continue; - /* "pyreadstat/_readstat_writer.pyx":360 + /* "pyreadstat/_readstat_writer.pyx":362 * result.append((PYWRITER_DATETIME, 0, has_missing, None)) * continue * elif col_type == nw.Date: # <<<<<<<<<<<<<< @@ -7749,53 +7776,53 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_get_narwhals_column_typ */ } - /* "pyreadstat/_readstat_writer.pyx":363 + /* "pyreadstat/_readstat_writer.pyx":365 * result.append((PYWRITER_DATE64, 0, has_missing, None)) * continue * elif col_type == nw.Time: # <<<<<<<<<<<<<< * result.append((PYWRITER_TIME64, 0, has_missing, None)) * continue */ - __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_nw); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 363, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_nw); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 365, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); - __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_Time); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 363, __pyx_L1_error) + __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_Time); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 365, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - __pyx_t_8 = PyObject_RichCompare(__pyx_v_col_type, __pyx_t_7, Py_EQ); __Pyx_XGOTREF(__pyx_t_8); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 363, __pyx_L1_error) + __pyx_t_8 = PyObject_RichCompare(__pyx_v_col_type, __pyx_t_7, Py_EQ); __Pyx_XGOTREF(__pyx_t_8); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 365, __pyx_L1_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 363, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 365, __pyx_L1_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; if (__pyx_t_2) { - /* "pyreadstat/_readstat_writer.pyx":364 + /* "pyreadstat/_readstat_writer.pyx":366 * continue * elif col_type == nw.Time: * result.append((PYWRITER_TIME64, 0, has_missing, None)) # <<<<<<<<<<<<<< * continue * */ - __pyx_t_8 = __Pyx_PyLong_From___pyx_t_10pyreadstat_16_readstat_writer_pywriter_variable_type(__pyx_e_10pyreadstat_16_readstat_writer_PYWRITER_TIME64); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 364, __pyx_L1_error) + __pyx_t_8 = __Pyx_PyLong_From___pyx_t_10pyreadstat_16_readstat_writer_pywriter_variable_type(__pyx_e_10pyreadstat_16_readstat_writer_PYWRITER_TIME64); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 366, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); - __pyx_t_7 = __Pyx_PyBool_FromLong(__pyx_v_has_missing); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 364, __pyx_L1_error) + __pyx_t_7 = __Pyx_PyBool_FromLong(__pyx_v_has_missing); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 366, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 364, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 366, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_8); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_8) != (0)) __PYX_ERR(0, 364, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_8) != (0)) __PYX_ERR(0, 366, __pyx_L1_error); __Pyx_INCREF(__pyx_mstate_global->__pyx_int_0); __Pyx_GIVEREF(__pyx_mstate_global->__pyx_int_0); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_mstate_global->__pyx_int_0) != (0)) __PYX_ERR(0, 364, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_mstate_global->__pyx_int_0) != (0)) __PYX_ERR(0, 366, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_7); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_t_7) != (0)) __PYX_ERR(0, 364, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_t_7) != (0)) __PYX_ERR(0, 366, __pyx_L1_error); __Pyx_INCREF(Py_None); __Pyx_GIVEREF(Py_None); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, Py_None) != (0)) __PYX_ERR(0, 364, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, Py_None) != (0)) __PYX_ERR(0, 366, __pyx_L1_error); __pyx_t_8 = 0; __pyx_t_7 = 0; - __pyx_t_14 = __Pyx_PyList_Append(__pyx_v_result, __pyx_t_1); if (unlikely(__pyx_t_14 == ((int)-1))) __PYX_ERR(0, 364, __pyx_L1_error) + __pyx_t_14 = __Pyx_PyList_Append(__pyx_v_result, __pyx_t_1); if (unlikely(__pyx_t_14 == ((int)-1))) __PYX_ERR(0, 366, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "pyreadstat/_readstat_writer.pyx":365 + /* "pyreadstat/_readstat_writer.pyx":367 * elif col_type == nw.Time: * result.append((PYWRITER_TIME64, 0, has_missing, None)) * continue # <<<<<<<<<<<<<< @@ -7804,7 +7831,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_get_narwhals_column_typ */ goto __pyx_L4_continue; - /* "pyreadstat/_readstat_writer.pyx":363 + /* "pyreadstat/_readstat_writer.pyx":365 * result.append((PYWRITER_DATE64, 0, has_missing, None)) * continue * elif col_type == nw.Time: # <<<<<<<<<<<<<< @@ -7813,7 +7840,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_get_narwhals_column_typ */ } - /* "pyreadstat/_readstat_writer.pyx":368 + /* "pyreadstat/_readstat_writer.pyx":370 * * # if the object was not captured by any of the previous cases, we transform it to string * max_length = get_narwhals_str_series_max_length(curseries, variable_value_labels.get(col_name), 1) # <<<<<<<<<<<<<< @@ -7822,16 +7849,16 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_get_narwhals_column_typ */ if (unlikely(__pyx_v_variable_value_labels == Py_None)) { PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "get"); - __PYX_ERR(0, 368, __pyx_L1_error) + __PYX_ERR(0, 370, __pyx_L1_error) } - __pyx_t_1 = __Pyx_PyDict_GetItemDefault(__pyx_v_variable_value_labels, __pyx_v_col_name, Py_None); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 368, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyDict_GetItemDefault(__pyx_v_variable_value_labels, __pyx_v_col_name, Py_None); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 370, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - if (!(likely(PyDict_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("dict", __pyx_t_1))) __PYX_ERR(0, 368, __pyx_L1_error) - __pyx_t_15 = __pyx_f_10pyreadstat_16_readstat_writer_get_narwhals_str_series_max_length(__pyx_v_curseries, ((PyObject*)__pyx_t_1), 1); if (unlikely(__pyx_t_15 == ((int)-1) && PyErr_Occurred())) __PYX_ERR(0, 368, __pyx_L1_error) + if (!(likely(PyDict_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("dict", __pyx_t_1))) __PYX_ERR(0, 370, __pyx_L1_error) + __pyx_t_15 = __pyx_f_10pyreadstat_16_readstat_writer_get_narwhals_str_series_max_length(__pyx_v_curseries, ((PyObject*)__pyx_t_1), 1); if (unlikely(__pyx_t_15 == ((int)-1) && PyErr_Occurred())) __PYX_ERR(0, 370, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_v_max_length = __pyx_t_15; - /* "pyreadstat/_readstat_writer.pyx":369 + /* "pyreadstat/_readstat_writer.pyx":371 * # if the object was not captured by any of the previous cases, we transform it to string * max_length = get_narwhals_str_series_max_length(curseries, variable_value_labels.get(col_name), 1) * if dta_str_max_len and max_length >= dta_str_max_len: # <<<<<<<<<<<<<< @@ -7849,37 +7876,37 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_get_narwhals_column_typ __pyx_L42_bool_binop_done:; if (__pyx_t_2) { - /* "pyreadstat/_readstat_writer.pyx":370 + /* "pyreadstat/_readstat_writer.pyx":372 * max_length = get_narwhals_str_series_max_length(curseries, variable_value_labels.get(col_name), 1) * if dta_str_max_len and max_length >= dta_str_max_len: * result.append((PYWRITER_DTA_STR_REF, max_length, has_missing, None)) # <<<<<<<<<<<<<< * else: * result.append((PYWRITER_OBJECT, max_length, has_missing, None)) */ - __pyx_t_1 = __Pyx_PyLong_From___pyx_t_10pyreadstat_16_readstat_writer_pywriter_variable_type(__pyx_e_10pyreadstat_16_readstat_writer_PYWRITER_DTA_STR_REF); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 370, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyLong_From___pyx_t_10pyreadstat_16_readstat_writer_pywriter_variable_type(__pyx_e_10pyreadstat_16_readstat_writer_PYWRITER_DTA_STR_REF); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 372, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_7 = __Pyx_PyLong_From_int(__pyx_v_max_length); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 370, __pyx_L1_error) + __pyx_t_7 = __Pyx_PyLong_From_int(__pyx_v_max_length); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 372, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); - __pyx_t_8 = __Pyx_PyBool_FromLong(__pyx_v_has_missing); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 370, __pyx_L1_error) + __pyx_t_8 = __Pyx_PyBool_FromLong(__pyx_v_has_missing); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 372, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); - __pyx_t_13 = PyTuple_New(4); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 370, __pyx_L1_error) + __pyx_t_13 = PyTuple_New(4); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 372, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_GIVEREF(__pyx_t_1); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_13, 0, __pyx_t_1) != (0)) __PYX_ERR(0, 370, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_13, 0, __pyx_t_1) != (0)) __PYX_ERR(0, 372, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_7); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_13, 1, __pyx_t_7) != (0)) __PYX_ERR(0, 370, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_13, 1, __pyx_t_7) != (0)) __PYX_ERR(0, 372, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_8); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_13, 2, __pyx_t_8) != (0)) __PYX_ERR(0, 370, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_13, 2, __pyx_t_8) != (0)) __PYX_ERR(0, 372, __pyx_L1_error); __Pyx_INCREF(Py_None); __Pyx_GIVEREF(Py_None); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_13, 3, Py_None) != (0)) __PYX_ERR(0, 370, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_13, 3, Py_None) != (0)) __PYX_ERR(0, 372, __pyx_L1_error); __pyx_t_1 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; - __pyx_t_14 = __Pyx_PyList_Append(__pyx_v_result, __pyx_t_13); if (unlikely(__pyx_t_14 == ((int)-1))) __PYX_ERR(0, 370, __pyx_L1_error) + __pyx_t_14 = __Pyx_PyList_Append(__pyx_v_result, __pyx_t_13); if (unlikely(__pyx_t_14 == ((int)-1))) __PYX_ERR(0, 372, __pyx_L1_error) __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; - /* "pyreadstat/_readstat_writer.pyx":369 + /* "pyreadstat/_readstat_writer.pyx":371 * # if the object was not captured by any of the previous cases, we transform it to string * max_length = get_narwhals_str_series_max_length(curseries, variable_value_labels.get(col_name), 1) * if dta_str_max_len and max_length >= dta_str_max_len: # <<<<<<<<<<<<<< @@ -7889,7 +7916,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_get_narwhals_column_typ goto __pyx_L41; } - /* "pyreadstat/_readstat_writer.pyx":372 + /* "pyreadstat/_readstat_writer.pyx":374 * result.append((PYWRITER_DTA_STR_REF, max_length, has_missing, None)) * else: * result.append((PYWRITER_OBJECT, max_length, has_missing, None)) # <<<<<<<<<<<<<< @@ -7897,32 +7924,32 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_get_narwhals_column_typ * */ /*else*/ { - __pyx_t_13 = __Pyx_PyLong_From___pyx_t_10pyreadstat_16_readstat_writer_pywriter_variable_type(__pyx_e_10pyreadstat_16_readstat_writer_PYWRITER_OBJECT); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 372, __pyx_L1_error) + __pyx_t_13 = __Pyx_PyLong_From___pyx_t_10pyreadstat_16_readstat_writer_pywriter_variable_type(__pyx_e_10pyreadstat_16_readstat_writer_PYWRITER_OBJECT); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 374, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); - __pyx_t_8 = __Pyx_PyLong_From_int(__pyx_v_max_length); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 372, __pyx_L1_error) + __pyx_t_8 = __Pyx_PyLong_From_int(__pyx_v_max_length); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 374, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); - __pyx_t_7 = __Pyx_PyBool_FromLong(__pyx_v_has_missing); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 372, __pyx_L1_error) + __pyx_t_7 = __Pyx_PyBool_FromLong(__pyx_v_has_missing); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 374, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 372, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 374, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_13); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_13) != (0)) __PYX_ERR(0, 372, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_13) != (0)) __PYX_ERR(0, 374, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_8); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_8) != (0)) __PYX_ERR(0, 372, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_8) != (0)) __PYX_ERR(0, 374, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_7); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_t_7) != (0)) __PYX_ERR(0, 372, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_t_7) != (0)) __PYX_ERR(0, 374, __pyx_L1_error); __Pyx_INCREF(Py_None); __Pyx_GIVEREF(Py_None); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, Py_None) != (0)) __PYX_ERR(0, 372, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, Py_None) != (0)) __PYX_ERR(0, 374, __pyx_L1_error); __pyx_t_13 = 0; __pyx_t_8 = 0; __pyx_t_7 = 0; - __pyx_t_14 = __Pyx_PyList_Append(__pyx_v_result, __pyx_t_1); if (unlikely(__pyx_t_14 == ((int)-1))) __PYX_ERR(0, 372, __pyx_L1_error) + __pyx_t_14 = __Pyx_PyList_Append(__pyx_v_result, __pyx_t_1); if (unlikely(__pyx_t_14 == ((int)-1))) __PYX_ERR(0, 374, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } __pyx_L41:; - /* "pyreadstat/_readstat_writer.pyx":373 + /* "pyreadstat/_readstat_writer.pyx":375 * else: * result.append((PYWRITER_OBJECT, max_length, has_missing, None)) * continue # <<<<<<<<<<<<<< @@ -7931,7 +7958,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_get_narwhals_column_typ */ goto __pyx_L4_continue; - /* "pyreadstat/_readstat_writer.pyx":267 + /* "pyreadstat/_readstat_writer.pyx":269 * variable_value_labels = dict() * * for curseries in df.iter_columns(): # <<<<<<<<<<<<<< @@ -7942,7 +7969,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_get_narwhals_column_typ } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - /* "pyreadstat/_readstat_writer.pyx":375 + /* "pyreadstat/_readstat_writer.pyx":377 * continue * * return result # <<<<<<<<<<<<<< @@ -7954,7 +7981,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_get_narwhals_column_typ __pyx_r = __pyx_v_result; goto __pyx_L0; - /* "pyreadstat/_readstat_writer.pyx":250 + /* "pyreadstat/_readstat_writer.pyx":252 * return 1 * * cdef list get_narwhals_column_types(object df, dict missing_user_values, dict variable_value_labels, int dta_str_max_len): # <<<<<<<<<<<<<< @@ -7985,7 +8012,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_get_narwhals_column_typ return __pyx_r; } -/* "pyreadstat/_readstat_writer.pyx":377 +/* "pyreadstat/_readstat_writer.pyx":379 * return result * * cdef readstat_label_set_t *set_value_label(readstat_writer_t *writer, dict value_labels, str labelset_name, # <<<<<<<<<<<<<< @@ -8029,7 +8056,7 @@ static readstat_label_set_t *__pyx_f_10pyreadstat_16_readstat_writer_set_value_l int __pyx_clineno = 0; __Pyx_RefNannySetupContext("set_value_label", 0); - /* "pyreadstat/_readstat_writer.pyx":388 + /* "pyreadstat/_readstat_writer.pyx":390 * cdef double double_val * * curtype = narwhals_to_readstat_types[curpytype] # <<<<<<<<<<<<<< @@ -8038,18 +8065,18 @@ static readstat_label_set_t *__pyx_f_10pyreadstat_16_readstat_writer_set_value_l */ if (unlikely(__pyx_v_10pyreadstat_16_readstat_writer_narwhals_to_readstat_types == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 388, __pyx_L1_error) + __PYX_ERR(0, 390, __pyx_L1_error) } - __pyx_t_1 = __Pyx_PyLong_From___pyx_t_10pyreadstat_16_readstat_writer_pywriter_variable_type(__pyx_v_curpytype); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 388, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyLong_From___pyx_t_10pyreadstat_16_readstat_writer_pywriter_variable_type(__pyx_v_curpytype); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 390, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = __Pyx_PyDict_GetItem(__pyx_v_10pyreadstat_16_readstat_writer_narwhals_to_readstat_types, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 388, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyDict_GetItem(__pyx_v_10pyreadstat_16_readstat_writer_narwhals_to_readstat_types, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 390, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_3 = ((readstat_type_t)__Pyx_PyLong_As_readstat_type_t(__pyx_t_2)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 388, __pyx_L1_error) + __pyx_t_3 = ((readstat_type_t)__Pyx_PyLong_As_readstat_type_t(__pyx_t_2)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 390, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_v_curtype = __pyx_t_3; - /* "pyreadstat/_readstat_writer.pyx":389 + /* "pyreadstat/_readstat_writer.pyx":391 * * curtype = narwhals_to_readstat_types[curpytype] * label_set = readstat_add_label_set(writer, curtype, labelset_name.encode("utf-8")) # <<<<<<<<<<<<<< @@ -8058,15 +8085,15 @@ static readstat_label_set_t *__pyx_f_10pyreadstat_16_readstat_writer_set_value_l */ if (unlikely(__pyx_v_labelset_name == Py_None)) { PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "encode"); - __PYX_ERR(0, 389, __pyx_L1_error) + __PYX_ERR(0, 391, __pyx_L1_error) } - __pyx_t_2 = PyUnicode_AsUTF8String(__pyx_v_labelset_name); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 389, __pyx_L1_error) + __pyx_t_2 = PyUnicode_AsUTF8String(__pyx_v_labelset_name); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 391, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_4 = __Pyx_PyBytes_AsString(__pyx_t_2); if (unlikely((!__pyx_t_4) && PyErr_Occurred())) __PYX_ERR(0, 389, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyBytes_AsString(__pyx_t_2); if (unlikely((!__pyx_t_4) && PyErr_Occurred())) __PYX_ERR(0, 391, __pyx_L1_error) __pyx_v_label_set = readstat_add_label_set(__pyx_v_writer, __pyx_v_curtype, __pyx_t_4); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - /* "pyreadstat/_readstat_writer.pyx":391 + /* "pyreadstat/_readstat_writer.pyx":393 * label_set = readstat_add_label_set(writer, curtype, labelset_name.encode("utf-8")) * * for value, label in value_labels.items(): # <<<<<<<<<<<<<< @@ -8075,18 +8102,18 @@ static readstat_label_set_t *__pyx_f_10pyreadstat_16_readstat_writer_set_value_l */ if (unlikely(__pyx_v_value_labels == Py_None)) { PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "items"); - __PYX_ERR(0, 391, __pyx_L1_error) + __PYX_ERR(0, 393, __pyx_L1_error) } - __pyx_t_2 = __Pyx_PyDict_Items(__pyx_v_value_labels); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 391, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyDict_Items(__pyx_v_value_labels); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 393, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (likely(PyList_CheckExact(__pyx_t_2)) || PyTuple_CheckExact(__pyx_t_2)) { __pyx_t_1 = __pyx_t_2; __Pyx_INCREF(__pyx_t_1); __pyx_t_5 = 0; __pyx_t_6 = NULL; } else { - __pyx_t_5 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 391, __pyx_L1_error) + __pyx_t_5 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 393, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_6 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 391, __pyx_L1_error) + __pyx_t_6 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 393, __pyx_L1_error) } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; for (;;) { @@ -8095,7 +8122,7 @@ static readstat_label_set_t *__pyx_f_10pyreadstat_16_readstat_writer_set_value_l { Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_1); #if !CYTHON_ASSUME_SAFE_SIZE - if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 391, __pyx_L1_error) + if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 393, __pyx_L1_error) #endif if (__pyx_t_5 >= __pyx_temp) break; } @@ -8105,7 +8132,7 @@ static readstat_label_set_t *__pyx_f_10pyreadstat_16_readstat_writer_set_value_l { Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_1); #if !CYTHON_ASSUME_SAFE_SIZE - if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 391, __pyx_L1_error) + if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 393, __pyx_L1_error) #endif if (__pyx_t_5 >= __pyx_temp) break; } @@ -8116,13 +8143,13 @@ static readstat_label_set_t *__pyx_f_10pyreadstat_16_readstat_writer_set_value_l #endif ++__pyx_t_5; } - if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 391, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 393, __pyx_L1_error) } else { __pyx_t_2 = __pyx_t_6(__pyx_t_1); if (unlikely(!__pyx_t_2)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { - if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(0, 391, __pyx_L1_error) + if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(0, 393, __pyx_L1_error) PyErr_Clear(); } break; @@ -8135,7 +8162,7 @@ static readstat_label_set_t *__pyx_f_10pyreadstat_16_readstat_writer_set_value_l if (unlikely(size != 2)) { if (size > 2) __Pyx_RaiseTooManyValuesError(2); else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); - __PYX_ERR(0, 391, __pyx_L1_error) + __PYX_ERR(0, 393, __pyx_L1_error) } #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS if (likely(PyTuple_CheckExact(sequence))) { @@ -8145,22 +8172,22 @@ static readstat_label_set_t *__pyx_f_10pyreadstat_16_readstat_writer_set_value_l __Pyx_INCREF(__pyx_t_8); } else { __pyx_t_7 = __Pyx_PyList_GetItemRefFast(sequence, 0, __Pyx_ReferenceSharing_SharedReference); - if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 391, __pyx_L1_error) + if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 393, __pyx_L1_error) __Pyx_XGOTREF(__pyx_t_7); __pyx_t_8 = __Pyx_PyList_GetItemRefFast(sequence, 1, __Pyx_ReferenceSharing_SharedReference); - if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 391, __pyx_L1_error) + if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 393, __pyx_L1_error) __Pyx_XGOTREF(__pyx_t_8); } #else - __pyx_t_7 = __Pyx_PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 391, __pyx_L1_error) + __pyx_t_7 = __Pyx_PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 393, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); - __pyx_t_8 = __Pyx_PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 391, __pyx_L1_error) + __pyx_t_8 = __Pyx_PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 393, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); #endif __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } else { Py_ssize_t index = -1; - __pyx_t_9 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 391, __pyx_L1_error) + __pyx_t_9 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 393, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_10 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_9); @@ -8168,7 +8195,7 @@ static readstat_label_set_t *__pyx_f_10pyreadstat_16_readstat_writer_set_value_l __Pyx_GOTREF(__pyx_t_7); index = 1; __pyx_t_8 = __pyx_t_10(__pyx_t_9); if (unlikely(!__pyx_t_8)) goto __pyx_L5_unpacking_failed; __Pyx_GOTREF(__pyx_t_8); - if (__Pyx_IternextUnpackEndCheck(__pyx_t_10(__pyx_t_9), 2) < (0)) __PYX_ERR(0, 391, __pyx_L1_error) + if (__Pyx_IternextUnpackEndCheck(__pyx_t_10(__pyx_t_9), 2) < (0)) __PYX_ERR(0, 393, __pyx_L1_error) __pyx_t_10 = NULL; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; goto __pyx_L6_unpacking_done; @@ -8176,7 +8203,7 @@ static readstat_label_set_t *__pyx_f_10pyreadstat_16_readstat_writer_set_value_l __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_10 = NULL; if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); - __PYX_ERR(0, 391, __pyx_L1_error) + __PYX_ERR(0, 393, __pyx_L1_error) __pyx_L6_unpacking_done:; } __Pyx_XDECREF_SET(__pyx_v_value, __pyx_t_7); @@ -8184,28 +8211,28 @@ static readstat_label_set_t *__pyx_f_10pyreadstat_16_readstat_writer_set_value_l __Pyx_XDECREF_SET(__pyx_v_label, __pyx_t_8); __pyx_t_8 = 0; - /* "pyreadstat/_readstat_writer.pyx":393 + /* "pyreadstat/_readstat_writer.pyx":395 * for value, label in value_labels.items(): * * if type(label) != str: # <<<<<<<<<<<<<< * msg = "variable_value_labels: type of Label %s in variable %s must be string" % (str(label), variable_name) * raise PyreadstatError(msg) */ - __pyx_t_2 = PyObject_RichCompare(((PyObject *)Py_TYPE(__pyx_v_label)), ((PyObject *)(&PyUnicode_Type)), Py_NE); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 393, __pyx_L1_error) - __pyx_t_11 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely((__pyx_t_11 < 0))) __PYX_ERR(0, 393, __pyx_L1_error) + __pyx_t_2 = PyObject_RichCompare(((PyObject *)Py_TYPE(__pyx_v_label)), ((PyObject *)(&PyUnicode_Type)), Py_NE); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 395, __pyx_L1_error) + __pyx_t_11 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely((__pyx_t_11 < 0))) __PYX_ERR(0, 395, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (unlikely(__pyx_t_11)) { - /* "pyreadstat/_readstat_writer.pyx":394 + /* "pyreadstat/_readstat_writer.pyx":396 * * if type(label) != str: * msg = "variable_value_labels: type of Label %s in variable %s must be string" % (str(label), variable_name) # <<<<<<<<<<<<<< * raise PyreadstatError(msg) * */ - __pyx_t_2 = __Pyx_PyObject_Unicode(__pyx_v_label); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 394, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_Unicode(__pyx_v_label); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 396, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_8 = __Pyx_PyUnicode_Unicode(__pyx_v_variable_name); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 394, __pyx_L1_error) + __pyx_t_8 = __Pyx_PyUnicode_Unicode(__pyx_v_variable_name); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 396, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_12[0] = __pyx_mstate_global->__pyx_kp_u_variable_value_labels_type_of_La; __pyx_t_12[1] = __pyx_t_2; @@ -8213,14 +8240,14 @@ static readstat_label_set_t *__pyx_f_10pyreadstat_16_readstat_writer_set_value_l __pyx_t_12[3] = __pyx_t_8; __pyx_t_12[4] = __pyx_mstate_global->__pyx_kp_u_must_be_string; __pyx_t_7 = __Pyx_PyUnicode_Join(__pyx_t_12, 5, 37 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_2) + 13 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_8) + 15, 127 | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_2) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_8)); - if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 394, __pyx_L1_error) + if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 396, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_v_msg = ((PyObject*)__pyx_t_7); __pyx_t_7 = 0; - /* "pyreadstat/_readstat_writer.pyx":395 + /* "pyreadstat/_readstat_writer.pyx":397 * if type(label) != str: * msg = "variable_value_labels: type of Label %s in variable %s must be string" % (str(label), variable_name) * raise PyreadstatError(msg) # <<<<<<<<<<<<<< @@ -8228,7 +8255,7 @@ static readstat_label_set_t *__pyx_f_10pyreadstat_16_readstat_writer_set_value_l * if user_missing_tags and value in user_missing_tags: */ __pyx_t_8 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 395, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 397, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_13 = 1; #if CYTHON_UNPACK_METHODS @@ -8247,14 +8274,14 @@ static readstat_label_set_t *__pyx_f_10pyreadstat_16_readstat_writer_set_value_l __pyx_t_7 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_2, __pyx_callargs+__pyx_t_13, (2-__pyx_t_13) | (__pyx_t_13*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 395, __pyx_L1_error) + if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 397, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); } __Pyx_Raise(__pyx_t_7, 0, 0, 0); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __PYX_ERR(0, 395, __pyx_L1_error) + __PYX_ERR(0, 397, __pyx_L1_error) - /* "pyreadstat/_readstat_writer.pyx":393 + /* "pyreadstat/_readstat_writer.pyx":395 * for value, label in value_labels.items(): * * if type(label) != str: # <<<<<<<<<<<<<< @@ -8263,7 +8290,7 @@ static readstat_label_set_t *__pyx_f_10pyreadstat_16_readstat_writer_set_value_l */ } - /* "pyreadstat/_readstat_writer.pyx":397 + /* "pyreadstat/_readstat_writer.pyx":399 * raise PyreadstatError(msg) * * if user_missing_tags and value in user_missing_tags: # <<<<<<<<<<<<<< @@ -8274,7 +8301,7 @@ static readstat_label_set_t *__pyx_f_10pyreadstat_16_readstat_writer_set_value_l else { Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_v_user_missing_tags); - if (unlikely(((!CYTHON_ASSUME_SAFE_SIZE) && __pyx_temp < 0))) __PYX_ERR(0, 397, __pyx_L1_error) + if (unlikely(((!CYTHON_ASSUME_SAFE_SIZE) && __pyx_temp < 0))) __PYX_ERR(0, 399, __pyx_L1_error) __pyx_t_14 = (__pyx_temp != 0); } @@ -8283,12 +8310,12 @@ static readstat_label_set_t *__pyx_f_10pyreadstat_16_readstat_writer_set_value_l __pyx_t_11 = __pyx_t_14; goto __pyx_L9_bool_binop_done; } - __pyx_t_14 = (__Pyx_PySequence_ContainsTF(__pyx_v_value, __pyx_v_user_missing_tags, Py_EQ)); if (unlikely((__pyx_t_14 < 0))) __PYX_ERR(0, 397, __pyx_L1_error) + __pyx_t_14 = (__Pyx_PySequence_ContainsTF(__pyx_v_value, __pyx_v_user_missing_tags, Py_EQ)); if (unlikely((__pyx_t_14 < 0))) __PYX_ERR(0, 399, __pyx_L1_error) __pyx_t_11 = __pyx_t_14; __pyx_L9_bool_binop_done:; if (__pyx_t_11) { - /* "pyreadstat/_readstat_writer.pyx":398 + /* "pyreadstat/_readstat_writer.pyx":400 * * if user_missing_tags and value in user_missing_tags: * if curpytype == PYWRITER_CHARACTER or curpytype == PYWRITER_OBJECT or curpytype==PYWRITER_DTA_STR_REF: # <<<<<<<<<<<<<< @@ -8300,19 +8327,19 @@ static readstat_label_set_t *__pyx_f_10pyreadstat_16_readstat_writer_set_value_l case __pyx_e_10pyreadstat_16_readstat_writer_PYWRITER_OBJECT: case __pyx_e_10pyreadstat_16_readstat_writer_PYWRITER_DTA_STR_REF: - /* "pyreadstat/_readstat_writer.pyx":399 + /* "pyreadstat/_readstat_writer.pyx":401 * if user_missing_tags and value in user_missing_tags: * if curpytype == PYWRITER_CHARACTER or curpytype == PYWRITER_OBJECT or curpytype==PYWRITER_DTA_STR_REF: * msg = "missing_user_values not allowed for character variable %s" % variable_name # <<<<<<<<<<<<<< * raise PyreadstatError(msg) * */ - __pyx_t_7 = PyUnicode_Format(__pyx_mstate_global->__pyx_kp_u_missing_user_values_not_allowed, __pyx_v_variable_name); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 399, __pyx_L1_error) + __pyx_t_7 = PyUnicode_Format(__pyx_mstate_global->__pyx_kp_u_missing_user_values_not_allowed, __pyx_v_variable_name); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 401, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_v_msg = ((PyObject*)__pyx_t_7); __pyx_t_7 = 0; - /* "pyreadstat/_readstat_writer.pyx":400 + /* "pyreadstat/_readstat_writer.pyx":402 * if curpytype == PYWRITER_CHARACTER or curpytype == PYWRITER_OBJECT or curpytype==PYWRITER_DTA_STR_REF: * msg = "missing_user_values not allowed for character variable %s" % variable_name * raise PyreadstatError(msg) # <<<<<<<<<<<<<< @@ -8320,7 +8347,7 @@ static readstat_label_set_t *__pyx_f_10pyreadstat_16_readstat_writer_set_value_l * readstat_label_tagged_value(label_set, ord(value), label.encode("utf-8")) */ __pyx_t_2 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 400, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 402, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_13 = 1; #if CYTHON_UNPACK_METHODS @@ -8339,14 +8366,14 @@ static readstat_label_set_t *__pyx_f_10pyreadstat_16_readstat_writer_set_value_l __pyx_t_7 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_8, __pyx_callargs+__pyx_t_13, (2-__pyx_t_13) | (__pyx_t_13*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 400, __pyx_L1_error) + if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 402, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); } __Pyx_Raise(__pyx_t_7, 0, 0, 0); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __PYX_ERR(0, 400, __pyx_L1_error) + __PYX_ERR(0, 402, __pyx_L1_error) - /* "pyreadstat/_readstat_writer.pyx":398 + /* "pyreadstat/_readstat_writer.pyx":400 * * if user_missing_tags and value in user_missing_tags: * if curpytype == PYWRITER_CHARACTER or curpytype == PYWRITER_OBJECT or curpytype==PYWRITER_DTA_STR_REF: # <<<<<<<<<<<<<< @@ -8357,14 +8384,14 @@ static readstat_label_set_t *__pyx_f_10pyreadstat_16_readstat_writer_set_value_l default: break; } - /* "pyreadstat/_readstat_writer.pyx":402 + /* "pyreadstat/_readstat_writer.pyx":404 * raise PyreadstatError(msg) * * readstat_label_tagged_value(label_set, ord(value), label.encode("utf-8")) # <<<<<<<<<<<<<< * continue * */ - __pyx_t_15 = __Pyx_PyObject_Ord(__pyx_v_value); if (unlikely(__pyx_t_15 == ((long)(long)(Py_UCS4)-1))) __PYX_ERR(0, 402, __pyx_L1_error) + __pyx_t_15 = __Pyx_PyObject_Ord(__pyx_v_value); if (unlikely(__pyx_t_15 == ((long)(long)(Py_UCS4)-1))) __PYX_ERR(0, 404, __pyx_L1_error) __pyx_t_8 = __pyx_v_label; __Pyx_INCREF(__pyx_t_8); __pyx_t_13 = 0; @@ -8372,14 +8399,14 @@ static readstat_label_set_t *__pyx_f_10pyreadstat_16_readstat_writer_set_value_l PyObject *__pyx_callargs[2] = {__pyx_t_8, __pyx_mstate_global->__pyx_kp_u_utf_8}; __pyx_t_7 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_encode, __pyx_callargs+__pyx_t_13, (2-__pyx_t_13) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; - if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 402, __pyx_L1_error) + if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 404, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); } - __pyx_t_16 = __Pyx_PyObject_AsString(__pyx_t_7); if (unlikely((!__pyx_t_16) && PyErr_Occurred())) __PYX_ERR(0, 402, __pyx_L1_error) + __pyx_t_16 = __Pyx_PyObject_AsString(__pyx_t_7); if (unlikely((!__pyx_t_16) && PyErr_Occurred())) __PYX_ERR(0, 404, __pyx_L1_error) readstat_label_tagged_value(__pyx_v_label_set, __pyx_t_15, __pyx_t_16); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - /* "pyreadstat/_readstat_writer.pyx":403 + /* "pyreadstat/_readstat_writer.pyx":405 * * readstat_label_tagged_value(label_set, ord(value), label.encode("utf-8")) * continue # <<<<<<<<<<<<<< @@ -8388,7 +8415,7 @@ static readstat_label_set_t *__pyx_f_10pyreadstat_16_readstat_writer_set_value_l */ goto __pyx_L3_continue; - /* "pyreadstat/_readstat_writer.pyx":397 + /* "pyreadstat/_readstat_writer.pyx":399 * raise PyreadstatError(msg) * * if user_missing_tags and value in user_missing_tags: # <<<<<<<<<<<<<< @@ -8397,7 +8424,7 @@ static readstat_label_set_t *__pyx_f_10pyreadstat_16_readstat_writer_set_value_l */ } - /* "pyreadstat/_readstat_writer.pyx":406 + /* "pyreadstat/_readstat_writer.pyx":408 * * * if curpytype == PYWRITER_DOUBLE: # <<<<<<<<<<<<<< @@ -8407,38 +8434,38 @@ static readstat_label_set_t *__pyx_f_10pyreadstat_16_readstat_writer_set_value_l switch (__pyx_v_curpytype) { case __pyx_e_10pyreadstat_16_readstat_writer_PYWRITER_DOUBLE: - /* "pyreadstat/_readstat_writer.pyx":407 + /* "pyreadstat/_readstat_writer.pyx":409 * * if curpytype == PYWRITER_DOUBLE: * if type(value) != float and type(value) != int: # <<<<<<<<<<<<<< * msg = "variable_value_labels: type of Value %s in variable %s must be numeric" % (str(value), variable_name) * raise PyreadstatError(msg) */ - __pyx_t_7 = PyObject_RichCompare(((PyObject *)Py_TYPE(__pyx_v_value)), ((PyObject *)(&PyFloat_Type)), Py_NE); __Pyx_XGOTREF(__pyx_t_7); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 407, __pyx_L1_error) - __pyx_t_14 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely((__pyx_t_14 < 0))) __PYX_ERR(0, 407, __pyx_L1_error) + __pyx_t_7 = PyObject_RichCompare(((PyObject *)Py_TYPE(__pyx_v_value)), ((PyObject *)(&PyFloat_Type)), Py_NE); __Pyx_XGOTREF(__pyx_t_7); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 409, __pyx_L1_error) + __pyx_t_14 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely((__pyx_t_14 < 0))) __PYX_ERR(0, 409, __pyx_L1_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; if (__pyx_t_14) { } else { __pyx_t_11 = __pyx_t_14; goto __pyx_L12_bool_binop_done; } - __pyx_t_7 = PyObject_RichCompare(((PyObject *)Py_TYPE(__pyx_v_value)), ((PyObject *)(&PyLong_Type)), Py_NE); __Pyx_XGOTREF(__pyx_t_7); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 407, __pyx_L1_error) - __pyx_t_14 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely((__pyx_t_14 < 0))) __PYX_ERR(0, 407, __pyx_L1_error) + __pyx_t_7 = PyObject_RichCompare(((PyObject *)Py_TYPE(__pyx_v_value)), ((PyObject *)(&PyLong_Type)), Py_NE); __Pyx_XGOTREF(__pyx_t_7); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 409, __pyx_L1_error) + __pyx_t_14 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely((__pyx_t_14 < 0))) __PYX_ERR(0, 409, __pyx_L1_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_11 = __pyx_t_14; __pyx_L12_bool_binop_done:; if (unlikely(__pyx_t_11)) { - /* "pyreadstat/_readstat_writer.pyx":408 + /* "pyreadstat/_readstat_writer.pyx":410 * if curpytype == PYWRITER_DOUBLE: * if type(value) != float and type(value) != int: * msg = "variable_value_labels: type of Value %s in variable %s must be numeric" % (str(value), variable_name) # <<<<<<<<<<<<<< * raise PyreadstatError(msg) * readstat_label_double_value(label_set, value, label.encode("utf-8")) */ - __pyx_t_7 = __Pyx_PyObject_Unicode(__pyx_v_value); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 408, __pyx_L1_error) + __pyx_t_7 = __Pyx_PyObject_Unicode(__pyx_v_value); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 410, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); - __pyx_t_8 = __Pyx_PyUnicode_Unicode(__pyx_v_variable_name); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 408, __pyx_L1_error) + __pyx_t_8 = __Pyx_PyUnicode_Unicode(__pyx_v_variable_name); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 410, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_12[0] = __pyx_mstate_global->__pyx_kp_u_variable_value_labels_type_of_Va; __pyx_t_12[1] = __pyx_t_7; @@ -8446,14 +8473,14 @@ static readstat_label_set_t *__pyx_f_10pyreadstat_16_readstat_writer_set_value_l __pyx_t_12[3] = __pyx_t_8; __pyx_t_12[4] = __pyx_mstate_global->__pyx_kp_u_must_be_numeric; __pyx_t_2 = __Pyx_PyUnicode_Join(__pyx_t_12, 5, 37 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_7) + 13 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_8) + 16, 127 | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_7) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_8)); - if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 408, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 410, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_v_msg = ((PyObject*)__pyx_t_2); __pyx_t_2 = 0; - /* "pyreadstat/_readstat_writer.pyx":409 + /* "pyreadstat/_readstat_writer.pyx":411 * if type(value) != float and type(value) != int: * msg = "variable_value_labels: type of Value %s in variable %s must be numeric" % (str(value), variable_name) * raise PyreadstatError(msg) # <<<<<<<<<<<<<< @@ -8461,7 +8488,7 @@ static readstat_label_set_t *__pyx_f_10pyreadstat_16_readstat_writer_set_value_l * */ __pyx_t_8 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 409, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 411, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_13 = 1; #if CYTHON_UNPACK_METHODS @@ -8480,14 +8507,14 @@ static readstat_label_set_t *__pyx_f_10pyreadstat_16_readstat_writer_set_value_l __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_7, __pyx_callargs+__pyx_t_13, (2-__pyx_t_13) | (__pyx_t_13*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 409, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 411, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } __Pyx_Raise(__pyx_t_2, 0, 0, 0); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __PYX_ERR(0, 409, __pyx_L1_error) + __PYX_ERR(0, 411, __pyx_L1_error) - /* "pyreadstat/_readstat_writer.pyx":407 + /* "pyreadstat/_readstat_writer.pyx":409 * * if curpytype == PYWRITER_DOUBLE: * if type(value) != float and type(value) != int: # <<<<<<<<<<<<<< @@ -8496,14 +8523,14 @@ static readstat_label_set_t *__pyx_f_10pyreadstat_16_readstat_writer_set_value_l */ } - /* "pyreadstat/_readstat_writer.pyx":410 + /* "pyreadstat/_readstat_writer.pyx":412 * msg = "variable_value_labels: type of Value %s in variable %s must be numeric" % (str(value), variable_name) * raise PyreadstatError(msg) * readstat_label_double_value(label_set, value, label.encode("utf-8")) # <<<<<<<<<<<<<< * * elif curpytype == PYWRITER_INTEGER: */ - __pyx_t_17 = __Pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_17 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 410, __pyx_L1_error) + __pyx_t_17 = __Pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_17 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 412, __pyx_L1_error) __pyx_t_7 = __pyx_v_label; __Pyx_INCREF(__pyx_t_7); __pyx_t_13 = 0; @@ -8511,14 +8538,14 @@ static readstat_label_set_t *__pyx_f_10pyreadstat_16_readstat_writer_set_value_l PyObject *__pyx_callargs[2] = {__pyx_t_7, __pyx_mstate_global->__pyx_kp_u_utf_8}; __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_encode, __pyx_callargs+__pyx_t_13, (2-__pyx_t_13) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 410, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 412, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } - __pyx_t_18 = __Pyx_PyObject_AsString(__pyx_t_2); if (unlikely((!__pyx_t_18) && PyErr_Occurred())) __PYX_ERR(0, 410, __pyx_L1_error) + __pyx_t_18 = __Pyx_PyObject_AsString(__pyx_t_2); if (unlikely((!__pyx_t_18) && PyErr_Occurred())) __PYX_ERR(0, 412, __pyx_L1_error) readstat_label_double_value(__pyx_v_label_set, __pyx_t_17, __pyx_t_18); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - /* "pyreadstat/_readstat_writer.pyx":406 + /* "pyreadstat/_readstat_writer.pyx":408 * * * if curpytype == PYWRITER_DOUBLE: # <<<<<<<<<<<<<< @@ -8528,28 +8555,28 @@ static readstat_label_set_t *__pyx_f_10pyreadstat_16_readstat_writer_set_value_l break; case __pyx_e_10pyreadstat_16_readstat_writer_PYWRITER_INTEGER: - /* "pyreadstat/_readstat_writer.pyx":413 + /* "pyreadstat/_readstat_writer.pyx":415 * * elif curpytype == PYWRITER_INTEGER: * if type(value) != int: # <<<<<<<<<<<<<< * #if type(value) not in int_types: * msg = "variable_value_labels: type of Value %s in variable %s must be int" % (str(value), variable_name) */ - __pyx_t_2 = PyObject_RichCompare(((PyObject *)Py_TYPE(__pyx_v_value)), ((PyObject *)(&PyLong_Type)), Py_NE); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 413, __pyx_L1_error) - __pyx_t_11 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely((__pyx_t_11 < 0))) __PYX_ERR(0, 413, __pyx_L1_error) + __pyx_t_2 = PyObject_RichCompare(((PyObject *)Py_TYPE(__pyx_v_value)), ((PyObject *)(&PyLong_Type)), Py_NE); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 415, __pyx_L1_error) + __pyx_t_11 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely((__pyx_t_11 < 0))) __PYX_ERR(0, 415, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (unlikely(__pyx_t_11)) { - /* "pyreadstat/_readstat_writer.pyx":415 + /* "pyreadstat/_readstat_writer.pyx":417 * if type(value) != int: * #if type(value) not in int_types: * msg = "variable_value_labels: type of Value %s in variable %s must be int" % (str(value), variable_name) # <<<<<<<<<<<<<< * raise PyreadstatError(msg) * readstat_label_int32_value(label_set, value, label.encode("utf-8")) */ - __pyx_t_2 = __Pyx_PyObject_Unicode(__pyx_v_value); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 415, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_Unicode(__pyx_v_value); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 417, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_7 = __Pyx_PyUnicode_Unicode(__pyx_v_variable_name); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 415, __pyx_L1_error) + __pyx_t_7 = __Pyx_PyUnicode_Unicode(__pyx_v_variable_name); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 417, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_12[0] = __pyx_mstate_global->__pyx_kp_u_variable_value_labels_type_of_Va; __pyx_t_12[1] = __pyx_t_2; @@ -8557,14 +8584,14 @@ static readstat_label_set_t *__pyx_f_10pyreadstat_16_readstat_writer_set_value_l __pyx_t_12[3] = __pyx_t_7; __pyx_t_12[4] = __pyx_mstate_global->__pyx_kp_u_must_be_int; __pyx_t_8 = __Pyx_PyUnicode_Join(__pyx_t_12, 5, 37 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_2) + 13 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_7) + 12, 127 | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_2) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_7)); - if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 415, __pyx_L1_error) + if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 417, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_v_msg = ((PyObject*)__pyx_t_8); __pyx_t_8 = 0; - /* "pyreadstat/_readstat_writer.pyx":416 + /* "pyreadstat/_readstat_writer.pyx":418 * #if type(value) not in int_types: * msg = "variable_value_labels: type of Value %s in variable %s must be int" % (str(value), variable_name) * raise PyreadstatError(msg) # <<<<<<<<<<<<<< @@ -8572,7 +8599,7 @@ static readstat_label_set_t *__pyx_f_10pyreadstat_16_readstat_writer_set_value_l * */ __pyx_t_7 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 416, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 418, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_13 = 1; #if CYTHON_UNPACK_METHODS @@ -8591,14 +8618,14 @@ static readstat_label_set_t *__pyx_f_10pyreadstat_16_readstat_writer_set_value_l __pyx_t_8 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_2, __pyx_callargs+__pyx_t_13, (2-__pyx_t_13) | (__pyx_t_13*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 416, __pyx_L1_error) + if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 418, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); } __Pyx_Raise(__pyx_t_8, 0, 0, 0); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - __PYX_ERR(0, 416, __pyx_L1_error) + __PYX_ERR(0, 418, __pyx_L1_error) - /* "pyreadstat/_readstat_writer.pyx":413 + /* "pyreadstat/_readstat_writer.pyx":415 * * elif curpytype == PYWRITER_INTEGER: * if type(value) != int: # <<<<<<<<<<<<<< @@ -8607,14 +8634,14 @@ static readstat_label_set_t *__pyx_f_10pyreadstat_16_readstat_writer_set_value_l */ } - /* "pyreadstat/_readstat_writer.pyx":417 + /* "pyreadstat/_readstat_writer.pyx":419 * msg = "variable_value_labels: type of Value %s in variable %s must be int" % (str(value), variable_name) * raise PyreadstatError(msg) * readstat_label_int32_value(label_set, value, label.encode("utf-8")) # <<<<<<<<<<<<<< * * elif curpytype == PYWRITER_LOGICAL: */ - __pyx_t_19 = __Pyx_PyLong_As_int32_t(__pyx_v_value); if (unlikely((__pyx_t_19 == ((int32_t)-1)) && PyErr_Occurred())) __PYX_ERR(0, 417, __pyx_L1_error) + __pyx_t_19 = __Pyx_PyLong_As_int32_t(__pyx_v_value); if (unlikely((__pyx_t_19 == ((int32_t)-1)) && PyErr_Occurred())) __PYX_ERR(0, 419, __pyx_L1_error) __pyx_t_2 = __pyx_v_label; __Pyx_INCREF(__pyx_t_2); __pyx_t_13 = 0; @@ -8622,14 +8649,14 @@ static readstat_label_set_t *__pyx_f_10pyreadstat_16_readstat_writer_set_value_l PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_mstate_global->__pyx_kp_u_utf_8}; __pyx_t_8 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_encode, __pyx_callargs+__pyx_t_13, (2-__pyx_t_13) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 417, __pyx_L1_error) + if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 419, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); } - __pyx_t_20 = __Pyx_PyObject_AsString(__pyx_t_8); if (unlikely((!__pyx_t_20) && PyErr_Occurred())) __PYX_ERR(0, 417, __pyx_L1_error) + __pyx_t_20 = __Pyx_PyObject_AsString(__pyx_t_8); if (unlikely((!__pyx_t_20) && PyErr_Occurred())) __PYX_ERR(0, 419, __pyx_L1_error) readstat_label_int32_value(__pyx_v_label_set, __pyx_t_19, __pyx_t_20); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - /* "pyreadstat/_readstat_writer.pyx":412 + /* "pyreadstat/_readstat_writer.pyx":414 * readstat_label_double_value(label_set, value, label.encode("utf-8")) * * elif curpytype == PYWRITER_INTEGER: # <<<<<<<<<<<<<< @@ -8639,42 +8666,42 @@ static readstat_label_set_t *__pyx_f_10pyreadstat_16_readstat_writer_set_value_l break; case __pyx_e_10pyreadstat_16_readstat_writer_PYWRITER_LOGICAL: - /* "pyreadstat/_readstat_writer.pyx":420 + /* "pyreadstat/_readstat_writer.pyx":422 * * elif curpytype == PYWRITER_LOGICAL: * if type(value) != bool and (value != 0 and value != 1): # <<<<<<<<<<<<<< * msg = "variable_value_labels: type of Value %s in variable %s must be boolean or be 1 or 0" % (str(value), variable_name) * raise PyreadstatError(msg) */ - __pyx_t_8 = PyObject_RichCompare(((PyObject *)Py_TYPE(__pyx_v_value)), ((PyObject *)(&PyBool_Type)), Py_NE); __Pyx_XGOTREF(__pyx_t_8); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 420, __pyx_L1_error) - __pyx_t_14 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely((__pyx_t_14 < 0))) __PYX_ERR(0, 420, __pyx_L1_error) + __pyx_t_8 = PyObject_RichCompare(((PyObject *)Py_TYPE(__pyx_v_value)), ((PyObject *)(&PyBool_Type)), Py_NE); __Pyx_XGOTREF(__pyx_t_8); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 422, __pyx_L1_error) + __pyx_t_14 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely((__pyx_t_14 < 0))) __PYX_ERR(0, 422, __pyx_L1_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; if (__pyx_t_14) { } else { __pyx_t_11 = __pyx_t_14; goto __pyx_L16_bool_binop_done; } - __pyx_t_14 = (__Pyx_PyLong_BoolNeObjC(__pyx_v_value, __pyx_mstate_global->__pyx_int_0, 0, 0)); if (unlikely((__pyx_t_14 < 0))) __PYX_ERR(0, 420, __pyx_L1_error) + __pyx_t_14 = (__Pyx_PyLong_BoolNeObjC(__pyx_v_value, __pyx_mstate_global->__pyx_int_0, 0, 0)); if (unlikely((__pyx_t_14 < 0))) __PYX_ERR(0, 422, __pyx_L1_error) if (__pyx_t_14) { } else { __pyx_t_11 = __pyx_t_14; goto __pyx_L16_bool_binop_done; } - __pyx_t_14 = (__Pyx_PyLong_BoolNeObjC(__pyx_v_value, __pyx_mstate_global->__pyx_int_1, 1, 0)); if (unlikely((__pyx_t_14 < 0))) __PYX_ERR(0, 420, __pyx_L1_error) + __pyx_t_14 = (__Pyx_PyLong_BoolNeObjC(__pyx_v_value, __pyx_mstate_global->__pyx_int_1, 1, 0)); if (unlikely((__pyx_t_14 < 0))) __PYX_ERR(0, 422, __pyx_L1_error) __pyx_t_11 = __pyx_t_14; __pyx_L16_bool_binop_done:; if (unlikely(__pyx_t_11)) { - /* "pyreadstat/_readstat_writer.pyx":421 + /* "pyreadstat/_readstat_writer.pyx":423 * elif curpytype == PYWRITER_LOGICAL: * if type(value) != bool and (value != 0 and value != 1): * msg = "variable_value_labels: type of Value %s in variable %s must be boolean or be 1 or 0" % (str(value), variable_name) # <<<<<<<<<<<<<< * raise PyreadstatError(msg) * readstat_label_int32_value(label_set, int(value), label.encode("utf-8")) */ - __pyx_t_8 = __Pyx_PyObject_Unicode(__pyx_v_value); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 421, __pyx_L1_error) + __pyx_t_8 = __Pyx_PyObject_Unicode(__pyx_v_value); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 423, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); - __pyx_t_2 = __Pyx_PyUnicode_Unicode(__pyx_v_variable_name); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 421, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyUnicode_Unicode(__pyx_v_variable_name); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 423, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_12[0] = __pyx_mstate_global->__pyx_kp_u_variable_value_labels_type_of_Va; __pyx_t_12[1] = __pyx_t_8; @@ -8682,14 +8709,14 @@ static readstat_label_set_t *__pyx_f_10pyreadstat_16_readstat_writer_set_value_l __pyx_t_12[3] = __pyx_t_2; __pyx_t_12[4] = __pyx_mstate_global->__pyx_kp_u_must_be_boolean_or_be_1_or_0; __pyx_t_7 = __Pyx_PyUnicode_Join(__pyx_t_12, 5, 37 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_8) + 13 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_2) + 29, 127 | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_8) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_2)); - if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 421, __pyx_L1_error) + if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 423, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_v_msg = ((PyObject*)__pyx_t_7); __pyx_t_7 = 0; - /* "pyreadstat/_readstat_writer.pyx":422 + /* "pyreadstat/_readstat_writer.pyx":424 * if type(value) != bool and (value != 0 and value != 1): * msg = "variable_value_labels: type of Value %s in variable %s must be boolean or be 1 or 0" % (str(value), variable_name) * raise PyreadstatError(msg) # <<<<<<<<<<<<<< @@ -8697,7 +8724,7 @@ static readstat_label_set_t *__pyx_f_10pyreadstat_16_readstat_writer_set_value_l * */ __pyx_t_2 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 422, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 424, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_13 = 1; #if CYTHON_UNPACK_METHODS @@ -8716,14 +8743,14 @@ static readstat_label_set_t *__pyx_f_10pyreadstat_16_readstat_writer_set_value_l __pyx_t_7 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_8, __pyx_callargs+__pyx_t_13, (2-__pyx_t_13) | (__pyx_t_13*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 422, __pyx_L1_error) + if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 424, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); } __Pyx_Raise(__pyx_t_7, 0, 0, 0); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __PYX_ERR(0, 422, __pyx_L1_error) + __PYX_ERR(0, 424, __pyx_L1_error) - /* "pyreadstat/_readstat_writer.pyx":420 + /* "pyreadstat/_readstat_writer.pyx":422 * * elif curpytype == PYWRITER_LOGICAL: * if type(value) != bool and (value != 0 and value != 1): # <<<<<<<<<<<<<< @@ -8732,16 +8759,16 @@ static readstat_label_set_t *__pyx_f_10pyreadstat_16_readstat_writer_set_value_l */ } - /* "pyreadstat/_readstat_writer.pyx":423 + /* "pyreadstat/_readstat_writer.pyx":425 * msg = "variable_value_labels: type of Value %s in variable %s must be boolean or be 1 or 0" % (str(value), variable_name) * raise PyreadstatError(msg) * readstat_label_int32_value(label_set, int(value), label.encode("utf-8")) # <<<<<<<<<<<<<< * * elif curpytype == PYWRITER_CHARACTER or curpytype == PYWRITER_OBJECT or curpytype==PYWRITER_DTA_STR_REF: */ - __pyx_t_7 = __Pyx_PyNumber_Int(__pyx_v_value); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 423, __pyx_L1_error) + __pyx_t_7 = __Pyx_PyNumber_Int(__pyx_v_value); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 425, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); - __pyx_t_19 = __Pyx_PyLong_As_int32_t(__pyx_t_7); if (unlikely((__pyx_t_19 == ((int32_t)-1)) && PyErr_Occurred())) __PYX_ERR(0, 423, __pyx_L1_error) + __pyx_t_19 = __Pyx_PyLong_As_int32_t(__pyx_t_7); if (unlikely((__pyx_t_19 == ((int32_t)-1)) && PyErr_Occurred())) __PYX_ERR(0, 425, __pyx_L1_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_8 = __pyx_v_label; __Pyx_INCREF(__pyx_t_8); @@ -8750,14 +8777,14 @@ static readstat_label_set_t *__pyx_f_10pyreadstat_16_readstat_writer_set_value_l PyObject *__pyx_callargs[2] = {__pyx_t_8, __pyx_mstate_global->__pyx_kp_u_utf_8}; __pyx_t_7 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_encode, __pyx_callargs+__pyx_t_13, (2-__pyx_t_13) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; - if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 423, __pyx_L1_error) + if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 425, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); } - __pyx_t_20 = __Pyx_PyObject_AsString(__pyx_t_7); if (unlikely((!__pyx_t_20) && PyErr_Occurred())) __PYX_ERR(0, 423, __pyx_L1_error) + __pyx_t_20 = __Pyx_PyObject_AsString(__pyx_t_7); if (unlikely((!__pyx_t_20) && PyErr_Occurred())) __PYX_ERR(0, 425, __pyx_L1_error) readstat_label_int32_value(__pyx_v_label_set, __pyx_t_19, __pyx_t_20); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - /* "pyreadstat/_readstat_writer.pyx":419 + /* "pyreadstat/_readstat_writer.pyx":421 * readstat_label_int32_value(label_set, value, label.encode("utf-8")) * * elif curpytype == PYWRITER_LOGICAL: # <<<<<<<<<<<<<< @@ -8767,7 +8794,7 @@ static readstat_label_set_t *__pyx_f_10pyreadstat_16_readstat_writer_set_value_l break; case __pyx_e_10pyreadstat_16_readstat_writer_PYWRITER_CHARACTER: - /* "pyreadstat/_readstat_writer.pyx":425 + /* "pyreadstat/_readstat_writer.pyx":427 * readstat_label_int32_value(label_set, int(value), label.encode("utf-8")) * * elif curpytype == PYWRITER_CHARACTER or curpytype == PYWRITER_OBJECT or curpytype==PYWRITER_DTA_STR_REF: # <<<<<<<<<<<<<< @@ -8777,19 +8804,19 @@ static readstat_label_set_t *__pyx_f_10pyreadstat_16_readstat_writer_set_value_l case __pyx_e_10pyreadstat_16_readstat_writer_PYWRITER_OBJECT: case __pyx_e_10pyreadstat_16_readstat_writer_PYWRITER_DTA_STR_REF: - /* "pyreadstat/_readstat_writer.pyx":426 + /* "pyreadstat/_readstat_writer.pyx":428 * * elif curpytype == PYWRITER_CHARACTER or curpytype == PYWRITER_OBJECT or curpytype==PYWRITER_DTA_STR_REF: * value = str(value) # <<<<<<<<<<<<<< * readstat_label_string_value(label_set, value.encode("utf-8"), label.encode("utf-8")) * */ - __pyx_t_7 = __Pyx_PyObject_Unicode(__pyx_v_value); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 426, __pyx_L1_error) + __pyx_t_7 = __Pyx_PyObject_Unicode(__pyx_v_value); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 428, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF_SET(__pyx_v_value, __pyx_t_7); __pyx_t_7 = 0; - /* "pyreadstat/_readstat_writer.pyx":427 + /* "pyreadstat/_readstat_writer.pyx":429 * elif curpytype == PYWRITER_CHARACTER or curpytype == PYWRITER_OBJECT or curpytype==PYWRITER_DTA_STR_REF: * value = str(value) * readstat_label_string_value(label_set, value.encode("utf-8"), label.encode("utf-8")) # <<<<<<<<<<<<<< @@ -8803,10 +8830,10 @@ static readstat_label_set_t *__pyx_f_10pyreadstat_16_readstat_writer_set_value_l PyObject *__pyx_callargs[2] = {__pyx_t_8, __pyx_mstate_global->__pyx_kp_u_utf_8}; __pyx_t_7 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_encode, __pyx_callargs+__pyx_t_13, (2-__pyx_t_13) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; - if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 427, __pyx_L1_error) + if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 429, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); } - __pyx_t_21 = __Pyx_PyObject_AsString(__pyx_t_7); if (unlikely((!__pyx_t_21) && PyErr_Occurred())) __PYX_ERR(0, 427, __pyx_L1_error) + __pyx_t_21 = __Pyx_PyObject_AsString(__pyx_t_7); if (unlikely((!__pyx_t_21) && PyErr_Occurred())) __PYX_ERR(0, 429, __pyx_L1_error) __pyx_t_2 = __pyx_v_label; __Pyx_INCREF(__pyx_t_2); __pyx_t_13 = 0; @@ -8814,15 +8841,15 @@ static readstat_label_set_t *__pyx_f_10pyreadstat_16_readstat_writer_set_value_l PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_mstate_global->__pyx_kp_u_utf_8}; __pyx_t_8 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_encode, __pyx_callargs+__pyx_t_13, (2-__pyx_t_13) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 427, __pyx_L1_error) + if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 429, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); } - __pyx_t_22 = __Pyx_PyObject_AsString(__pyx_t_8); if (unlikely((!__pyx_t_22) && PyErr_Occurred())) __PYX_ERR(0, 427, __pyx_L1_error) + __pyx_t_22 = __Pyx_PyObject_AsString(__pyx_t_8); if (unlikely((!__pyx_t_22) && PyErr_Occurred())) __PYX_ERR(0, 429, __pyx_L1_error) readstat_label_string_value(__pyx_v_label_set, __pyx_t_21, __pyx_t_22); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - /* "pyreadstat/_readstat_writer.pyx":425 + /* "pyreadstat/_readstat_writer.pyx":427 * readstat_label_int32_value(label_set, int(value), label.encode("utf-8")) * * elif curpytype == PYWRITER_CHARACTER or curpytype == PYWRITER_OBJECT or curpytype==PYWRITER_DTA_STR_REF: # <<<<<<<<<<<<<< @@ -8832,7 +8859,7 @@ static readstat_label_set_t *__pyx_f_10pyreadstat_16_readstat_writer_set_value_l break; case __pyx_e_10pyreadstat_16_readstat_writer_PYWRITER_DATE: - /* "pyreadstat/_readstat_writer.pyx":429 + /* "pyreadstat/_readstat_writer.pyx":431 * readstat_label_string_value(label_set, value.encode("utf-8"), label.encode("utf-8")) * * elif curpytype in (PYWRITER_DATE, PYWRITER_DATETIME, PYWRITER_TIME, PYWRITER_DATETIME64, PYWRITER_DATE64, PYWRITER_TIME64): # <<<<<<<<<<<<<< @@ -8845,7 +8872,7 @@ static readstat_label_set_t *__pyx_f_10pyreadstat_16_readstat_writer_set_value_l case __pyx_e_10pyreadstat_16_readstat_writer_PYWRITER_DATE64: case __pyx_e_10pyreadstat_16_readstat_writer_PYWRITER_TIME64: - /* "pyreadstat/_readstat_writer.pyx":430 + /* "pyreadstat/_readstat_writer.pyx":432 * * elif curpytype in (PYWRITER_DATE, PYWRITER_DATETIME, PYWRITER_TIME, PYWRITER_DATETIME64, PYWRITER_DATE64, PYWRITER_TIME64): * if type(value) not in nat_types: # <<<<<<<<<<<<<< @@ -8854,21 +8881,21 @@ static readstat_label_set_t *__pyx_f_10pyreadstat_16_readstat_writer_set_value_l */ if (unlikely(__pyx_v_10pyreadstat_16_readstat_writer_nat_types == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable"); - __PYX_ERR(0, 430, __pyx_L1_error) + __PYX_ERR(0, 432, __pyx_L1_error) } - __pyx_t_11 = (__Pyx_PySet_ContainsTF(((PyObject *)Py_TYPE(__pyx_v_value)), __pyx_v_10pyreadstat_16_readstat_writer_nat_types, Py_NE)); if (unlikely((__pyx_t_11 < 0))) __PYX_ERR(0, 430, __pyx_L1_error) + __pyx_t_11 = (__Pyx_PySet_ContainsTF(((PyObject *)Py_TYPE(__pyx_v_value)), __pyx_v_10pyreadstat_16_readstat_writer_nat_types, Py_NE)); if (unlikely((__pyx_t_11 < 0))) __PYX_ERR(0, 432, __pyx_L1_error) if (unlikely(__pyx_t_11)) { - /* "pyreadstat/_readstat_writer.pyx":431 + /* "pyreadstat/_readstat_writer.pyx":433 * elif curpytype in (PYWRITER_DATE, PYWRITER_DATETIME, PYWRITER_TIME, PYWRITER_DATETIME64, PYWRITER_DATE64, PYWRITER_TIME64): * if type(value) not in nat_types: * msg = "variable_value_labels: type of Value %s in variable %s must match the type of the column in dataframe and be of type date, datetime or time" % (str(value), variable_name) # <<<<<<<<<<<<<< * raise PyreadstatError(msg) * double_val = convert_datetimelike_to_number(file_format, curpytype, value) */ - __pyx_t_8 = __Pyx_PyObject_Unicode(__pyx_v_value); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 431, __pyx_L1_error) + __pyx_t_8 = __Pyx_PyObject_Unicode(__pyx_v_value); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 433, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); - __pyx_t_7 = __Pyx_PyUnicode_Unicode(__pyx_v_variable_name); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 431, __pyx_L1_error) + __pyx_t_7 = __Pyx_PyUnicode_Unicode(__pyx_v_variable_name); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 433, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_12[0] = __pyx_mstate_global->__pyx_kp_u_variable_value_labels_type_of_Va; __pyx_t_12[1] = __pyx_t_8; @@ -8876,14 +8903,14 @@ static readstat_label_set_t *__pyx_f_10pyreadstat_16_readstat_writer_set_value_l __pyx_t_12[3] = __pyx_t_7; __pyx_t_12[4] = __pyx_mstate_global->__pyx_kp_u_must_match_the_type_of_the_colu; __pyx_t_2 = __Pyx_PyUnicode_Join(__pyx_t_12, 5, 37 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_8) + 13 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_7) + 85, 127 | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_8) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_7)); - if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 431, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 433, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_v_msg = ((PyObject*)__pyx_t_2); __pyx_t_2 = 0; - /* "pyreadstat/_readstat_writer.pyx":432 + /* "pyreadstat/_readstat_writer.pyx":434 * if type(value) not in nat_types: * msg = "variable_value_labels: type of Value %s in variable %s must match the type of the column in dataframe and be of type date, datetime or time" % (str(value), variable_name) * raise PyreadstatError(msg) # <<<<<<<<<<<<<< @@ -8891,7 +8918,7 @@ static readstat_label_set_t *__pyx_f_10pyreadstat_16_readstat_writer_set_value_l * readstat_label_double_value(label_set, double_val, label.encode("utf-8")) */ __pyx_t_7 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 432, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 434, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_13 = 1; #if CYTHON_UNPACK_METHODS @@ -8910,14 +8937,14 @@ static readstat_label_set_t *__pyx_f_10pyreadstat_16_readstat_writer_set_value_l __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_8, __pyx_callargs+__pyx_t_13, (2-__pyx_t_13) | (__pyx_t_13*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 432, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 434, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } __Pyx_Raise(__pyx_t_2, 0, 0, 0); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __PYX_ERR(0, 432, __pyx_L1_error) + __PYX_ERR(0, 434, __pyx_L1_error) - /* "pyreadstat/_readstat_writer.pyx":430 + /* "pyreadstat/_readstat_writer.pyx":432 * * elif curpytype in (PYWRITER_DATE, PYWRITER_DATETIME, PYWRITER_TIME, PYWRITER_DATETIME64, PYWRITER_DATE64, PYWRITER_TIME64): * if type(value) not in nat_types: # <<<<<<<<<<<<<< @@ -8926,17 +8953,17 @@ static readstat_label_set_t *__pyx_f_10pyreadstat_16_readstat_writer_set_value_l */ } - /* "pyreadstat/_readstat_writer.pyx":433 + /* "pyreadstat/_readstat_writer.pyx":435 * msg = "variable_value_labels: type of Value %s in variable %s must match the type of the column in dataframe and be of type date, datetime or time" % (str(value), variable_name) * raise PyreadstatError(msg) * double_val = convert_datetimelike_to_number(file_format, curpytype, value) # <<<<<<<<<<<<<< * readstat_label_double_value(label_set, double_val, label.encode("utf-8")) * */ - __pyx_t_17 = __pyx_f_10pyreadstat_16_readstat_writer_convert_datetimelike_to_number(__pyx_v_file_format, __pyx_v_curpytype, __pyx_v_value); if (unlikely(__pyx_t_17 == ((double)-1) && PyErr_Occurred())) __PYX_ERR(0, 433, __pyx_L1_error) + __pyx_t_17 = __pyx_f_10pyreadstat_16_readstat_writer_convert_datetimelike_to_number(__pyx_v_file_format, __pyx_v_curpytype, __pyx_v_value); if (unlikely(__pyx_t_17 == ((double)-1) && PyErr_Occurred())) __PYX_ERR(0, 435, __pyx_L1_error) __pyx_v_double_val = __pyx_t_17; - /* "pyreadstat/_readstat_writer.pyx":434 + /* "pyreadstat/_readstat_writer.pyx":436 * raise PyreadstatError(msg) * double_val = convert_datetimelike_to_number(file_format, curpytype, value) * readstat_label_double_value(label_set, double_val, label.encode("utf-8")) # <<<<<<<<<<<<<< @@ -8950,14 +8977,14 @@ static readstat_label_set_t *__pyx_f_10pyreadstat_16_readstat_writer_set_value_l PyObject *__pyx_callargs[2] = {__pyx_t_8, __pyx_mstate_global->__pyx_kp_u_utf_8}; __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_encode, __pyx_callargs+__pyx_t_13, (2-__pyx_t_13) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 434, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 436, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } - __pyx_t_18 = __Pyx_PyObject_AsString(__pyx_t_2); if (unlikely((!__pyx_t_18) && PyErr_Occurred())) __PYX_ERR(0, 434, __pyx_L1_error) + __pyx_t_18 = __Pyx_PyObject_AsString(__pyx_t_2); if (unlikely((!__pyx_t_18) && PyErr_Occurred())) __PYX_ERR(0, 436, __pyx_L1_error) readstat_label_double_value(__pyx_v_label_set, __pyx_v_double_val, __pyx_t_18); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - /* "pyreadstat/_readstat_writer.pyx":429 + /* "pyreadstat/_readstat_writer.pyx":431 * readstat_label_string_value(label_set, value.encode("utf-8"), label.encode("utf-8")) * * elif curpytype in (PYWRITER_DATE, PYWRITER_DATETIME, PYWRITER_TIME, PYWRITER_DATETIME64, PYWRITER_DATE64, PYWRITER_TIME64): # <<<<<<<<<<<<<< @@ -8968,7 +8995,7 @@ static readstat_label_set_t *__pyx_f_10pyreadstat_16_readstat_writer_set_value_l default: break; } - /* "pyreadstat/_readstat_writer.pyx":391 + /* "pyreadstat/_readstat_writer.pyx":393 * label_set = readstat_add_label_set(writer, curtype, labelset_name.encode("utf-8")) * * for value, label in value_labels.items(): # <<<<<<<<<<<<<< @@ -8979,7 +9006,7 @@ static readstat_label_set_t *__pyx_f_10pyreadstat_16_readstat_writer_set_value_l } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "pyreadstat/_readstat_writer.pyx":436 + /* "pyreadstat/_readstat_writer.pyx":438 * readstat_label_double_value(label_set, double_val, label.encode("utf-8")) * * return label_set # <<<<<<<<<<<<<< @@ -8989,7 +9016,7 @@ static readstat_label_set_t *__pyx_f_10pyreadstat_16_readstat_writer_set_value_l __pyx_r = __pyx_v_label_set; goto __pyx_L0; - /* "pyreadstat/_readstat_writer.pyx":377 + /* "pyreadstat/_readstat_writer.pyx":379 * return result * * cdef readstat_label_set_t *set_value_label(readstat_writer_t *writer, dict value_labels, str labelset_name, # <<<<<<<<<<<<<< @@ -9014,7 +9041,7 @@ static readstat_label_set_t *__pyx_f_10pyreadstat_16_readstat_writer_set_value_l return __pyx_r; } -/* "pyreadstat/_readstat_writer.pyx":438 +/* "pyreadstat/_readstat_writer.pyx":440 * return label_set * * cdef void add_missing_ranges(list cur_ranges, readstat_variable_t *variable, pywriter_variable_type vartype, str variablename) except *: # <<<<<<<<<<<<<< @@ -9049,7 +9076,7 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_add_missing_ranges(PyObject int __pyx_clineno = 0; __Pyx_RefNannySetupContext("add_missing_ranges", 0); - /* "pyreadstat/_readstat_writer.pyx":444 + /* "pyreadstat/_readstat_writer.pyx":446 * """ * * cdef int range_values = 0 # <<<<<<<<<<<<<< @@ -9058,7 +9085,7 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_add_missing_ranges(PyObject */ __pyx_v_range_values = 0; - /* "pyreadstat/_readstat_writer.pyx":445 + /* "pyreadstat/_readstat_writer.pyx":447 * * cdef int range_values = 0 * cdef int discrete_values = 0 # <<<<<<<<<<<<<< @@ -9067,7 +9094,7 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_add_missing_ranges(PyObject */ __pyx_v_discrete_values = 0; - /* "pyreadstat/_readstat_writer.pyx":446 + /* "pyreadstat/_readstat_writer.pyx":448 * cdef int range_values = 0 * cdef int discrete_values = 0 * cdef int discrete_strings = 0 # <<<<<<<<<<<<<< @@ -9076,7 +9103,7 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_add_missing_ranges(PyObject */ __pyx_v_discrete_strings = 0; - /* "pyreadstat/_readstat_writer.pyx":448 + /* "pyreadstat/_readstat_writer.pyx":450 * cdef int discrete_strings = 0 * * for cur_range in cur_ranges: # <<<<<<<<<<<<<< @@ -9085,7 +9112,7 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_add_missing_ranges(PyObject */ if (unlikely(__pyx_v_cur_ranges == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable"); - __PYX_ERR(0, 448, __pyx_L1_error) + __PYX_ERR(0, 450, __pyx_L1_error) } __pyx_t_1 = __pyx_v_cur_ranges; __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = 0; @@ -9093,18 +9120,18 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_add_missing_ranges(PyObject { Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_1); #if !CYTHON_ASSUME_SAFE_SIZE - if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 448, __pyx_L1_error) + if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 450, __pyx_L1_error) #endif if (__pyx_t_2 >= __pyx_temp) break; } __pyx_t_3 = __Pyx_PyList_GetItemRefFast(__pyx_t_1, __pyx_t_2, __Pyx_ReferenceSharing_OwnStrongReference); ++__pyx_t_2; - if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 448, __pyx_L1_error) + if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 450, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_XDECREF_SET(__pyx_v_cur_range, __pyx_t_3); __pyx_t_3 = 0; - /* "pyreadstat/_readstat_writer.pyx":449 + /* "pyreadstat/_readstat_writer.pyx":451 * * for cur_range in cur_ranges: * if isinstance(cur_range, dict): # <<<<<<<<<<<<<< @@ -9114,7 +9141,7 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_add_missing_ranges(PyObject __pyx_t_4 = PyDict_Check(__pyx_v_cur_range); if (__pyx_t_4) { - /* "pyreadstat/_readstat_writer.pyx":450 + /* "pyreadstat/_readstat_writer.pyx":452 * for cur_range in cur_ranges: * if isinstance(cur_range, dict): * hi = cur_range.get("hi") # <<<<<<<<<<<<<< @@ -9128,13 +9155,13 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_add_missing_ranges(PyObject PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_mstate_global->__pyx_n_u_hi}; __pyx_t_3 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_get, __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; - if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 450, __pyx_L1_error) + if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 452, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); } __Pyx_XDECREF_SET(__pyx_v_hi, __pyx_t_3); __pyx_t_3 = 0; - /* "pyreadstat/_readstat_writer.pyx":451 + /* "pyreadstat/_readstat_writer.pyx":453 * if isinstance(cur_range, dict): * hi = cur_range.get("hi") * lo = cur_range.get("lo") # <<<<<<<<<<<<<< @@ -9148,13 +9175,13 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_add_missing_ranges(PyObject PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_mstate_global->__pyx_n_u_lo}; __pyx_t_3 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_get, __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; - if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 451, __pyx_L1_error) + if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 453, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); } __Pyx_XDECREF_SET(__pyx_v_lo, __pyx_t_3); __pyx_t_3 = 0; - /* "pyreadstat/_readstat_writer.pyx":452 + /* "pyreadstat/_readstat_writer.pyx":454 * hi = cur_range.get("hi") * lo = cur_range.get("lo") * if hi is None or lo is None: # <<<<<<<<<<<<<< @@ -9172,7 +9199,7 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_add_missing_ranges(PyObject __pyx_L7_bool_binop_done:; if (unlikely(__pyx_t_4)) { - /* "pyreadstat/_readstat_writer.pyx":453 + /* "pyreadstat/_readstat_writer.pyx":455 * lo = cur_range.get("lo") * if hi is None or lo is None: * msg = "dictionaries in missing_ranges must have the keys hi and lo" # <<<<<<<<<<<<<< @@ -9182,7 +9209,7 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_add_missing_ranges(PyObject __Pyx_INCREF(__pyx_mstate_global->__pyx_kp_u_dictionaries_in_missing_ranges_m); __pyx_v_msg = __pyx_mstate_global->__pyx_kp_u_dictionaries_in_missing_ranges_m; - /* "pyreadstat/_readstat_writer.pyx":454 + /* "pyreadstat/_readstat_writer.pyx":456 * if hi is None or lo is None: * msg = "dictionaries in missing_ranges must have the keys hi and lo" * raise PyreadstatError(msg) # <<<<<<<<<<<<<< @@ -9190,7 +9217,7 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_add_missing_ranges(PyObject * if vartype not in pywriter_numeric_types: */ __pyx_t_5 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 454, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 456, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_6 = 1; #if CYTHON_UNPACK_METHODS @@ -9209,14 +9236,14 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_add_missing_ranges(PyObject __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_8, __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 454, __pyx_L1_error) + if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 456, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); } __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __PYX_ERR(0, 454, __pyx_L1_error) + __PYX_ERR(0, 456, __pyx_L1_error) - /* "pyreadstat/_readstat_writer.pyx":452 + /* "pyreadstat/_readstat_writer.pyx":454 * hi = cur_range.get("hi") * lo = cur_range.get("lo") * if hi is None or lo is None: # <<<<<<<<<<<<<< @@ -9225,7 +9252,7 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_add_missing_ranges(PyObject */ } - /* "pyreadstat/_readstat_writer.pyx":455 + /* "pyreadstat/_readstat_writer.pyx":457 * msg = "dictionaries in missing_ranges must have the keys hi and lo" * raise PyreadstatError(msg) * if type(hi) in (int, float) and type(lo) in (int, float): # <<<<<<<<<<<<<< @@ -9234,16 +9261,16 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_add_missing_ranges(PyObject */ __Pyx_INCREF(((PyObject *)Py_TYPE(__pyx_v_hi))); __pyx_t_3 = ((PyObject *)Py_TYPE(__pyx_v_hi)); - __pyx_t_8 = PyObject_RichCompare(((PyObject *)__pyx_t_3), ((PyObject *)(&PyLong_Type)), Py_EQ); __Pyx_XGOTREF(__pyx_t_8); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 455, __pyx_L1_error) - __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely((__pyx_t_9 < 0))) __PYX_ERR(0, 455, __pyx_L1_error) + __pyx_t_8 = PyObject_RichCompare(((PyObject *)__pyx_t_3), ((PyObject *)(&PyLong_Type)), Py_EQ); __Pyx_XGOTREF(__pyx_t_8); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 457, __pyx_L1_error) + __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely((__pyx_t_9 < 0))) __PYX_ERR(0, 457, __pyx_L1_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; if (!__pyx_t_9) { } else { __pyx_t_7 = __pyx_t_9; goto __pyx_L12_bool_binop_done; } - __pyx_t_8 = PyObject_RichCompare(((PyObject *)__pyx_t_3), ((PyObject *)(&PyFloat_Type)), Py_EQ); __Pyx_XGOTREF(__pyx_t_8); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 455, __pyx_L1_error) - __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely((__pyx_t_9 < 0))) __PYX_ERR(0, 455, __pyx_L1_error) + __pyx_t_8 = PyObject_RichCompare(((PyObject *)__pyx_t_3), ((PyObject *)(&PyFloat_Type)), Py_EQ); __Pyx_XGOTREF(__pyx_t_8); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 457, __pyx_L1_error) + __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely((__pyx_t_9 < 0))) __PYX_ERR(0, 457, __pyx_L1_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_t_7 = __pyx_t_9; __pyx_L12_bool_binop_done:; @@ -9256,16 +9283,16 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_add_missing_ranges(PyObject } __Pyx_INCREF(((PyObject *)Py_TYPE(__pyx_v_lo))); __pyx_t_3 = ((PyObject *)Py_TYPE(__pyx_v_lo)); - __pyx_t_8 = PyObject_RichCompare(((PyObject *)__pyx_t_3), ((PyObject *)(&PyLong_Type)), Py_EQ); __Pyx_XGOTREF(__pyx_t_8); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 455, __pyx_L1_error) - __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely((__pyx_t_7 < 0))) __PYX_ERR(0, 455, __pyx_L1_error) + __pyx_t_8 = PyObject_RichCompare(((PyObject *)__pyx_t_3), ((PyObject *)(&PyLong_Type)), Py_EQ); __Pyx_XGOTREF(__pyx_t_8); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 457, __pyx_L1_error) + __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely((__pyx_t_7 < 0))) __PYX_ERR(0, 457, __pyx_L1_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; if (!__pyx_t_7) { } else { __pyx_t_9 = __pyx_t_7; goto __pyx_L14_bool_binop_done; } - __pyx_t_8 = PyObject_RichCompare(((PyObject *)__pyx_t_3), ((PyObject *)(&PyFloat_Type)), Py_EQ); __Pyx_XGOTREF(__pyx_t_8); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 455, __pyx_L1_error) - __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely((__pyx_t_7 < 0))) __PYX_ERR(0, 455, __pyx_L1_error) + __pyx_t_8 = PyObject_RichCompare(((PyObject *)__pyx_t_3), ((PyObject *)(&PyFloat_Type)), Py_EQ); __Pyx_XGOTREF(__pyx_t_8); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 457, __pyx_L1_error) + __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely((__pyx_t_7 < 0))) __PYX_ERR(0, 457, __pyx_L1_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_t_9 = __pyx_t_7; __pyx_L14_bool_binop_done:; @@ -9275,36 +9302,36 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_add_missing_ranges(PyObject __pyx_L10_bool_binop_done:; if (__pyx_t_4) { - /* "pyreadstat/_readstat_writer.pyx":456 + /* "pyreadstat/_readstat_writer.pyx":458 * raise PyreadstatError(msg) * if type(hi) in (int, float) and type(lo) in (int, float): * if vartype not in pywriter_numeric_types: # <<<<<<<<<<<<<< * msg = "numeric missing_ranges value given for non numeric variable %s" %variablename * raise PyreadstatError(msg) */ - __pyx_t_3 = __Pyx_PyLong_From___pyx_t_10pyreadstat_16_readstat_writer_pywriter_variable_type(__pyx_v_vartype); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 456, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyLong_From___pyx_t_10pyreadstat_16_readstat_writer_pywriter_variable_type(__pyx_v_vartype); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 458, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (unlikely(__pyx_v_10pyreadstat_16_readstat_writer_pywriter_numeric_types == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable"); - __PYX_ERR(0, 456, __pyx_L1_error) + __PYX_ERR(0, 458, __pyx_L1_error) } - __pyx_t_4 = (__Pyx_PySet_ContainsTF(__pyx_t_3, __pyx_v_10pyreadstat_16_readstat_writer_pywriter_numeric_types, Py_NE)); if (unlikely((__pyx_t_4 < 0))) __PYX_ERR(0, 456, __pyx_L1_error) + __pyx_t_4 = (__Pyx_PySet_ContainsTF(__pyx_t_3, __pyx_v_10pyreadstat_16_readstat_writer_pywriter_numeric_types, Py_NE)); if (unlikely((__pyx_t_4 < 0))) __PYX_ERR(0, 458, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(__pyx_t_4)) { - /* "pyreadstat/_readstat_writer.pyx":457 + /* "pyreadstat/_readstat_writer.pyx":459 * if type(hi) in (int, float) and type(lo) in (int, float): * if vartype not in pywriter_numeric_types: * msg = "numeric missing_ranges value given for non numeric variable %s" %variablename # <<<<<<<<<<<<<< * raise PyreadstatError(msg) * if hi == lo: */ - __pyx_t_3 = PyUnicode_Format(__pyx_mstate_global->__pyx_kp_u_numeric_missing_ranges_value_giv, __pyx_v_variablename); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 457, __pyx_L1_error) + __pyx_t_3 = PyUnicode_Format(__pyx_mstate_global->__pyx_kp_u_numeric_missing_ranges_value_giv, __pyx_v_variablename); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 459, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_v_msg = ((PyObject*)__pyx_t_3); __pyx_t_3 = 0; - /* "pyreadstat/_readstat_writer.pyx":458 + /* "pyreadstat/_readstat_writer.pyx":460 * if vartype not in pywriter_numeric_types: * msg = "numeric missing_ranges value given for non numeric variable %s" %variablename * raise PyreadstatError(msg) # <<<<<<<<<<<<<< @@ -9312,7 +9339,7 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_add_missing_ranges(PyObject * check_exit_status(readstat_variable_add_missing_double_value(variable, hi)) */ __pyx_t_8 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 458, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 460, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_6 = 1; #if CYTHON_UNPACK_METHODS @@ -9331,14 +9358,14 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_add_missing_ranges(PyObject __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_5, __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 458, __pyx_L1_error) + if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 460, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); } __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __PYX_ERR(0, 458, __pyx_L1_error) + __PYX_ERR(0, 460, __pyx_L1_error) - /* "pyreadstat/_readstat_writer.pyx":456 + /* "pyreadstat/_readstat_writer.pyx":458 * raise PyreadstatError(msg) * if type(hi) in (int, float) and type(lo) in (int, float): * if vartype not in pywriter_numeric_types: # <<<<<<<<<<<<<< @@ -9347,29 +9374,29 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_add_missing_ranges(PyObject */ } - /* "pyreadstat/_readstat_writer.pyx":459 + /* "pyreadstat/_readstat_writer.pyx":461 * msg = "numeric missing_ranges value given for non numeric variable %s" %variablename * raise PyreadstatError(msg) * if hi == lo: # <<<<<<<<<<<<<< * check_exit_status(readstat_variable_add_missing_double_value(variable, hi)) * discrete_values += 1 */ - __pyx_t_3 = PyObject_RichCompare(__pyx_v_hi, __pyx_v_lo, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 459, __pyx_L1_error) - __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely((__pyx_t_4 < 0))) __PYX_ERR(0, 459, __pyx_L1_error) + __pyx_t_3 = PyObject_RichCompare(__pyx_v_hi, __pyx_v_lo, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 461, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely((__pyx_t_4 < 0))) __PYX_ERR(0, 461, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (__pyx_t_4) { - /* "pyreadstat/_readstat_writer.pyx":460 + /* "pyreadstat/_readstat_writer.pyx":462 * raise PyreadstatError(msg) * if hi == lo: * check_exit_status(readstat_variable_add_missing_double_value(variable, hi)) # <<<<<<<<<<<<<< * discrete_values += 1 * else: */ - __pyx_t_10 = __Pyx_PyFloat_AsDouble(__pyx_v_hi); if (unlikely((__pyx_t_10 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 460, __pyx_L1_error) - __pyx_f_10pyreadstat_16_readstat_parser_check_exit_status(readstat_variable_add_missing_double_value(__pyx_v_variable, __pyx_t_10)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 460, __pyx_L1_error) + __pyx_t_10 = __Pyx_PyFloat_AsDouble(__pyx_v_hi); if (unlikely((__pyx_t_10 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 462, __pyx_L1_error) + __pyx_f_10pyreadstat_16_readstat_parser_check_exit_status(readstat_variable_add_missing_double_value(__pyx_v_variable, __pyx_t_10)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 462, __pyx_L1_error) - /* "pyreadstat/_readstat_writer.pyx":461 + /* "pyreadstat/_readstat_writer.pyx":463 * if hi == lo: * check_exit_status(readstat_variable_add_missing_double_value(variable, hi)) * discrete_values += 1 # <<<<<<<<<<<<<< @@ -9378,7 +9405,7 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_add_missing_ranges(PyObject */ __pyx_v_discrete_values = (__pyx_v_discrete_values + 1); - /* "pyreadstat/_readstat_writer.pyx":459 + /* "pyreadstat/_readstat_writer.pyx":461 * msg = "numeric missing_ranges value given for non numeric variable %s" %variablename * raise PyreadstatError(msg) * if hi == lo: # <<<<<<<<<<<<<< @@ -9388,7 +9415,7 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_add_missing_ranges(PyObject goto __pyx_L17; } - /* "pyreadstat/_readstat_writer.pyx":463 + /* "pyreadstat/_readstat_writer.pyx":465 * discrete_values += 1 * else: * check_exit_status(readstat_variable_add_missing_double_range(variable, lo, hi)) # <<<<<<<<<<<<<< @@ -9396,11 +9423,11 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_add_missing_ranges(PyObject * elif type(hi) == str and type(lo) == str: */ /*else*/ { - __pyx_t_10 = __Pyx_PyFloat_AsDouble(__pyx_v_lo); if (unlikely((__pyx_t_10 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 463, __pyx_L1_error) - __pyx_t_11 = __Pyx_PyFloat_AsDouble(__pyx_v_hi); if (unlikely((__pyx_t_11 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 463, __pyx_L1_error) - __pyx_f_10pyreadstat_16_readstat_parser_check_exit_status(readstat_variable_add_missing_double_range(__pyx_v_variable, __pyx_t_10, __pyx_t_11)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 463, __pyx_L1_error) + __pyx_t_10 = __Pyx_PyFloat_AsDouble(__pyx_v_lo); if (unlikely((__pyx_t_10 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 465, __pyx_L1_error) + __pyx_t_11 = __Pyx_PyFloat_AsDouble(__pyx_v_hi); if (unlikely((__pyx_t_11 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 465, __pyx_L1_error) + __pyx_f_10pyreadstat_16_readstat_parser_check_exit_status(readstat_variable_add_missing_double_range(__pyx_v_variable, __pyx_t_10, __pyx_t_11)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 465, __pyx_L1_error) - /* "pyreadstat/_readstat_writer.pyx":464 + /* "pyreadstat/_readstat_writer.pyx":466 * else: * check_exit_status(readstat_variable_add_missing_double_range(variable, lo, hi)) * range_values += 1 # <<<<<<<<<<<<<< @@ -9411,7 +9438,7 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_add_missing_ranges(PyObject } __pyx_L17:; - /* "pyreadstat/_readstat_writer.pyx":455 + /* "pyreadstat/_readstat_writer.pyx":457 * msg = "dictionaries in missing_ranges must have the keys hi and lo" * raise PyreadstatError(msg) * if type(hi) in (int, float) and type(lo) in (int, float): # <<<<<<<<<<<<<< @@ -9421,29 +9448,29 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_add_missing_ranges(PyObject goto __pyx_L9; } - /* "pyreadstat/_readstat_writer.pyx":465 + /* "pyreadstat/_readstat_writer.pyx":467 * check_exit_status(readstat_variable_add_missing_double_range(variable, lo, hi)) * range_values += 1 * elif type(hi) == str and type(lo) == str: # <<<<<<<<<<<<<< * if vartype != PYWRITER_CHARACTER and vartype != PYWRITER_OBJECT and vartype !=PYWRITER_DTA_STR_REF: * msg = "character missing_ranges value given for non character variable %s" %variablename */ - __pyx_t_3 = PyObject_RichCompare(((PyObject *)Py_TYPE(__pyx_v_hi)), ((PyObject *)(&PyUnicode_Type)), Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 465, __pyx_L1_error) - __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely((__pyx_t_7 < 0))) __PYX_ERR(0, 465, __pyx_L1_error) + __pyx_t_3 = PyObject_RichCompare(((PyObject *)Py_TYPE(__pyx_v_hi)), ((PyObject *)(&PyUnicode_Type)), Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 467, __pyx_L1_error) + __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely((__pyx_t_7 < 0))) __PYX_ERR(0, 467, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (__pyx_t_7) { } else { __pyx_t_4 = __pyx_t_7; goto __pyx_L18_bool_binop_done; } - __pyx_t_3 = PyObject_RichCompare(((PyObject *)Py_TYPE(__pyx_v_lo)), ((PyObject *)(&PyUnicode_Type)), Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 465, __pyx_L1_error) - __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely((__pyx_t_7 < 0))) __PYX_ERR(0, 465, __pyx_L1_error) + __pyx_t_3 = PyObject_RichCompare(((PyObject *)Py_TYPE(__pyx_v_lo)), ((PyObject *)(&PyUnicode_Type)), Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 467, __pyx_L1_error) + __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely((__pyx_t_7 < 0))) __PYX_ERR(0, 467, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_4 = __pyx_t_7; __pyx_L18_bool_binop_done:; if (likely(__pyx_t_4)) { - /* "pyreadstat/_readstat_writer.pyx":466 + /* "pyreadstat/_readstat_writer.pyx":468 * range_values += 1 * elif type(hi) == str and type(lo) == str: * if vartype != PYWRITER_CHARACTER and vartype != PYWRITER_OBJECT and vartype !=PYWRITER_DTA_STR_REF: # <<<<<<<<<<<<<< @@ -9462,19 +9489,19 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_add_missing_ranges(PyObject } if (unlikely(__pyx_t_4)) { - /* "pyreadstat/_readstat_writer.pyx":467 + /* "pyreadstat/_readstat_writer.pyx":469 * elif type(hi) == str and type(lo) == str: * if vartype != PYWRITER_CHARACTER and vartype != PYWRITER_OBJECT and vartype !=PYWRITER_DTA_STR_REF: * msg = "character missing_ranges value given for non character variable %s" %variablename # <<<<<<<<<<<<<< * raise PyreadstatError(msg) * if hi == lo: */ - __pyx_t_3 = PyUnicode_Format(__pyx_mstate_global->__pyx_kp_u_character_missing_ranges_value_g, __pyx_v_variablename); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 467, __pyx_L1_error) + __pyx_t_3 = PyUnicode_Format(__pyx_mstate_global->__pyx_kp_u_character_missing_ranges_value_g, __pyx_v_variablename); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 469, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_v_msg = ((PyObject*)__pyx_t_3); __pyx_t_3 = 0; - /* "pyreadstat/_readstat_writer.pyx":468 + /* "pyreadstat/_readstat_writer.pyx":470 * if vartype != PYWRITER_CHARACTER and vartype != PYWRITER_OBJECT and vartype !=PYWRITER_DTA_STR_REF: * msg = "character missing_ranges value given for non character variable %s" %variablename * raise PyreadstatError(msg) # <<<<<<<<<<<<<< @@ -9482,7 +9509,7 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_add_missing_ranges(PyObject * if len(hi) > 8: */ __pyx_t_5 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 468, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 470, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_6 = 1; #if CYTHON_UNPACK_METHODS @@ -9501,14 +9528,14 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_add_missing_ranges(PyObject __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_8, __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 468, __pyx_L1_error) + if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 470, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); } __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __PYX_ERR(0, 468, __pyx_L1_error) + __PYX_ERR(0, 470, __pyx_L1_error) - /* "pyreadstat/_readstat_writer.pyx":466 + /* "pyreadstat/_readstat_writer.pyx":468 * range_values += 1 * elif type(hi) == str and type(lo) == str: * if vartype != PYWRITER_CHARACTER and vartype != PYWRITER_OBJECT and vartype !=PYWRITER_DTA_STR_REF: # <<<<<<<<<<<<<< @@ -9517,30 +9544,30 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_add_missing_ranges(PyObject */ } - /* "pyreadstat/_readstat_writer.pyx":469 + /* "pyreadstat/_readstat_writer.pyx":471 * msg = "character missing_ranges value given for non character variable %s" %variablename * raise PyreadstatError(msg) * if hi == lo: # <<<<<<<<<<<<<< * if len(hi) > 8: * msg = "missing_ranges: string values length must not be larger than 8" */ - __pyx_t_3 = PyObject_RichCompare(__pyx_v_hi, __pyx_v_lo, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 469, __pyx_L1_error) - __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely((__pyx_t_4 < 0))) __PYX_ERR(0, 469, __pyx_L1_error) + __pyx_t_3 = PyObject_RichCompare(__pyx_v_hi, __pyx_v_lo, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 471, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely((__pyx_t_4 < 0))) __PYX_ERR(0, 471, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (likely(__pyx_t_4)) { - /* "pyreadstat/_readstat_writer.pyx":470 + /* "pyreadstat/_readstat_writer.pyx":472 * raise PyreadstatError(msg) * if hi == lo: * if len(hi) > 8: # <<<<<<<<<<<<<< * msg = "missing_ranges: string values length must not be larger than 8" * raise PyreadstatError(msg) */ - __pyx_t_12 = PyObject_Length(__pyx_v_hi); if (unlikely(__pyx_t_12 == ((Py_ssize_t)-1))) __PYX_ERR(0, 470, __pyx_L1_error) + __pyx_t_12 = PyObject_Length(__pyx_v_hi); if (unlikely(__pyx_t_12 == ((Py_ssize_t)-1))) __PYX_ERR(0, 472, __pyx_L1_error) __pyx_t_4 = (__pyx_t_12 > 8); if (unlikely(__pyx_t_4)) { - /* "pyreadstat/_readstat_writer.pyx":471 + /* "pyreadstat/_readstat_writer.pyx":473 * if hi == lo: * if len(hi) > 8: * msg = "missing_ranges: string values length must not be larger than 8" # <<<<<<<<<<<<<< @@ -9550,7 +9577,7 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_add_missing_ranges(PyObject __Pyx_INCREF(__pyx_mstate_global->__pyx_kp_u_missing_ranges_string_values_len); __pyx_v_msg = __pyx_mstate_global->__pyx_kp_u_missing_ranges_string_values_len; - /* "pyreadstat/_readstat_writer.pyx":472 + /* "pyreadstat/_readstat_writer.pyx":474 * if len(hi) > 8: * msg = "missing_ranges: string values length must not be larger than 8" * raise PyreadstatError(msg) # <<<<<<<<<<<<<< @@ -9558,7 +9585,7 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_add_missing_ranges(PyObject * discrete_strings += 1 */ __pyx_t_8 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 472, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 474, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_6 = 1; #if CYTHON_UNPACK_METHODS @@ -9577,14 +9604,14 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_add_missing_ranges(PyObject __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_5, __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 472, __pyx_L1_error) + if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 474, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); } __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __PYX_ERR(0, 472, __pyx_L1_error) + __PYX_ERR(0, 474, __pyx_L1_error) - /* "pyreadstat/_readstat_writer.pyx":470 + /* "pyreadstat/_readstat_writer.pyx":472 * raise PyreadstatError(msg) * if hi == lo: * if len(hi) > 8: # <<<<<<<<<<<<<< @@ -9593,17 +9620,17 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_add_missing_ranges(PyObject */ } - /* "pyreadstat/_readstat_writer.pyx":473 + /* "pyreadstat/_readstat_writer.pyx":475 * msg = "missing_ranges: string values length must not be larger than 8" * raise PyreadstatError(msg) * check_exit_status(readstat_variable_add_missing_string_value(variable, hi))#.encode("utf-8"))) # <<<<<<<<<<<<<< * discrete_strings += 1 * else: */ - __pyx_t_13 = __Pyx_PyObject_AsString(__pyx_v_hi); if (unlikely((!__pyx_t_13) && PyErr_Occurred())) __PYX_ERR(0, 473, __pyx_L1_error) - __pyx_f_10pyreadstat_16_readstat_parser_check_exit_status(readstat_variable_add_missing_string_value(__pyx_v_variable, __pyx_t_13)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 473, __pyx_L1_error) + __pyx_t_13 = __Pyx_PyObject_AsString(__pyx_v_hi); if (unlikely((!__pyx_t_13) && PyErr_Occurred())) __PYX_ERR(0, 475, __pyx_L1_error) + __pyx_f_10pyreadstat_16_readstat_parser_check_exit_status(readstat_variable_add_missing_string_value(__pyx_v_variable, __pyx_t_13)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 475, __pyx_L1_error) - /* "pyreadstat/_readstat_writer.pyx":474 + /* "pyreadstat/_readstat_writer.pyx":476 * raise PyreadstatError(msg) * check_exit_status(readstat_variable_add_missing_string_value(variable, hi))#.encode("utf-8"))) * discrete_strings += 1 # <<<<<<<<<<<<<< @@ -9612,7 +9639,7 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_add_missing_ranges(PyObject */ __pyx_v_discrete_strings = (__pyx_v_discrete_strings + 1); - /* "pyreadstat/_readstat_writer.pyx":469 + /* "pyreadstat/_readstat_writer.pyx":471 * msg = "character missing_ranges value given for non character variable %s" %variablename * raise PyreadstatError(msg) * if hi == lo: # <<<<<<<<<<<<<< @@ -9622,7 +9649,7 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_add_missing_ranges(PyObject goto __pyx_L21; } - /* "pyreadstat/_readstat_writer.pyx":477 + /* "pyreadstat/_readstat_writer.pyx":479 * else: * #check_exit_status(readstat_variable_add_missing_string_range(variable, lo, hi)) * msg = "missing_ranges: hi and lo values must be both the same for string type" # <<<<<<<<<<<<<< @@ -9633,7 +9660,7 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_add_missing_ranges(PyObject __Pyx_INCREF(__pyx_mstate_global->__pyx_kp_u_missing_ranges_hi_and_lo_values); __pyx_v_msg = __pyx_mstate_global->__pyx_kp_u_missing_ranges_hi_and_lo_values; - /* "pyreadstat/_readstat_writer.pyx":478 + /* "pyreadstat/_readstat_writer.pyx":480 * #check_exit_status(readstat_variable_add_missing_string_range(variable, lo, hi)) * msg = "missing_ranges: hi and lo values must be both the same for string type" * raise PyreadstatError(msg) # <<<<<<<<<<<<<< @@ -9641,7 +9668,7 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_add_missing_ranges(PyObject * msg = "missing_ranges: hi and lo values must be both either of numeric or string type" */ __pyx_t_5 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 478, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 480, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_6 = 1; #if CYTHON_UNPACK_METHODS @@ -9660,16 +9687,16 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_add_missing_ranges(PyObject __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_8, __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 478, __pyx_L1_error) + if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 480, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); } __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __PYX_ERR(0, 478, __pyx_L1_error) + __PYX_ERR(0, 480, __pyx_L1_error) } __pyx_L21:; - /* "pyreadstat/_readstat_writer.pyx":465 + /* "pyreadstat/_readstat_writer.pyx":467 * check_exit_status(readstat_variable_add_missing_double_range(variable, lo, hi)) * range_values += 1 * elif type(hi) == str and type(lo) == str: # <<<<<<<<<<<<<< @@ -9679,7 +9706,7 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_add_missing_ranges(PyObject goto __pyx_L9; } - /* "pyreadstat/_readstat_writer.pyx":480 + /* "pyreadstat/_readstat_writer.pyx":482 * raise PyreadstatError(msg) * else: * msg = "missing_ranges: hi and lo values must be both either of numeric or string type" # <<<<<<<<<<<<<< @@ -9690,7 +9717,7 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_add_missing_ranges(PyObject __Pyx_INCREF(__pyx_mstate_global->__pyx_kp_u_missing_ranges_hi_and_lo_values_2); __pyx_v_msg = __pyx_mstate_global->__pyx_kp_u_missing_ranges_hi_and_lo_values_2; - /* "pyreadstat/_readstat_writer.pyx":481 + /* "pyreadstat/_readstat_writer.pyx":483 * else: * msg = "missing_ranges: hi and lo values must be both either of numeric or string type" * raise PyreadstatError(msg) # <<<<<<<<<<<<<< @@ -9698,7 +9725,7 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_add_missing_ranges(PyObject * if type(cur_range) in (int, float): */ __pyx_t_8 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 481, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 483, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_6 = 1; #if CYTHON_UNPACK_METHODS @@ -9717,16 +9744,16 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_add_missing_ranges(PyObject __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_5, __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 481, __pyx_L1_error) + if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 483, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); } __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __PYX_ERR(0, 481, __pyx_L1_error) + __PYX_ERR(0, 483, __pyx_L1_error) } __pyx_L9:; - /* "pyreadstat/_readstat_writer.pyx":449 + /* "pyreadstat/_readstat_writer.pyx":451 * * for cur_range in cur_ranges: * if isinstance(cur_range, dict): # <<<<<<<<<<<<<< @@ -9736,7 +9763,7 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_add_missing_ranges(PyObject goto __pyx_L5; } - /* "pyreadstat/_readstat_writer.pyx":483 + /* "pyreadstat/_readstat_writer.pyx":485 * raise PyreadstatError(msg) * else: * if type(cur_range) in (int, float): # <<<<<<<<<<<<<< @@ -9746,16 +9773,16 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_add_missing_ranges(PyObject /*else*/ { __Pyx_INCREF(((PyObject *)Py_TYPE(__pyx_v_cur_range))); __pyx_t_3 = ((PyObject *)Py_TYPE(__pyx_v_cur_range)); - __pyx_t_5 = PyObject_RichCompare(((PyObject *)__pyx_t_3), ((PyObject *)(&PyLong_Type)), Py_EQ); __Pyx_XGOTREF(__pyx_t_5); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 483, __pyx_L1_error) - __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely((__pyx_t_7 < 0))) __PYX_ERR(0, 483, __pyx_L1_error) + __pyx_t_5 = PyObject_RichCompare(((PyObject *)__pyx_t_3), ((PyObject *)(&PyLong_Type)), Py_EQ); __Pyx_XGOTREF(__pyx_t_5); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 485, __pyx_L1_error) + __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely((__pyx_t_7 < 0))) __PYX_ERR(0, 485, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (!__pyx_t_7) { } else { __pyx_t_4 = __pyx_t_7; goto __pyx_L24_bool_binop_done; } - __pyx_t_5 = PyObject_RichCompare(((PyObject *)__pyx_t_3), ((PyObject *)(&PyFloat_Type)), Py_EQ); __Pyx_XGOTREF(__pyx_t_5); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 483, __pyx_L1_error) - __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely((__pyx_t_7 < 0))) __PYX_ERR(0, 483, __pyx_L1_error) + __pyx_t_5 = PyObject_RichCompare(((PyObject *)__pyx_t_3), ((PyObject *)(&PyFloat_Type)), Py_EQ); __Pyx_XGOTREF(__pyx_t_5); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 485, __pyx_L1_error) + __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely((__pyx_t_7 < 0))) __PYX_ERR(0, 485, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_4 = __pyx_t_7; __pyx_L24_bool_binop_done:; @@ -9763,36 +9790,36 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_add_missing_ranges(PyObject __pyx_t_7 = __pyx_t_4; if (__pyx_t_7) { - /* "pyreadstat/_readstat_writer.pyx":484 + /* "pyreadstat/_readstat_writer.pyx":486 * else: * if type(cur_range) in (int, float): * if vartype not in pywriter_numeric_types: # <<<<<<<<<<<<<< * msg = "numeric missing_ranges value given for non numeric variable %s" %variablename * raise PyreadstatError(msg) */ - __pyx_t_3 = __Pyx_PyLong_From___pyx_t_10pyreadstat_16_readstat_writer_pywriter_variable_type(__pyx_v_vartype); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 484, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyLong_From___pyx_t_10pyreadstat_16_readstat_writer_pywriter_variable_type(__pyx_v_vartype); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 486, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (unlikely(__pyx_v_10pyreadstat_16_readstat_writer_pywriter_numeric_types == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable"); - __PYX_ERR(0, 484, __pyx_L1_error) + __PYX_ERR(0, 486, __pyx_L1_error) } - __pyx_t_7 = (__Pyx_PySet_ContainsTF(__pyx_t_3, __pyx_v_10pyreadstat_16_readstat_writer_pywriter_numeric_types, Py_NE)); if (unlikely((__pyx_t_7 < 0))) __PYX_ERR(0, 484, __pyx_L1_error) + __pyx_t_7 = (__Pyx_PySet_ContainsTF(__pyx_t_3, __pyx_v_10pyreadstat_16_readstat_writer_pywriter_numeric_types, Py_NE)); if (unlikely((__pyx_t_7 < 0))) __PYX_ERR(0, 486, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(__pyx_t_7)) { - /* "pyreadstat/_readstat_writer.pyx":485 + /* "pyreadstat/_readstat_writer.pyx":487 * if type(cur_range) in (int, float): * if vartype not in pywriter_numeric_types: * msg = "numeric missing_ranges value given for non numeric variable %s" %variablename # <<<<<<<<<<<<<< * raise PyreadstatError(msg) * check_exit_status(readstat_variable_add_missing_double_value(variable, cur_range)) */ - __pyx_t_3 = PyUnicode_Format(__pyx_mstate_global->__pyx_kp_u_numeric_missing_ranges_value_giv, __pyx_v_variablename); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 485, __pyx_L1_error) + __pyx_t_3 = PyUnicode_Format(__pyx_mstate_global->__pyx_kp_u_numeric_missing_ranges_value_giv, __pyx_v_variablename); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 487, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_v_msg = ((PyObject*)__pyx_t_3); __pyx_t_3 = 0; - /* "pyreadstat/_readstat_writer.pyx":486 + /* "pyreadstat/_readstat_writer.pyx":488 * if vartype not in pywriter_numeric_types: * msg = "numeric missing_ranges value given for non numeric variable %s" %variablename * raise PyreadstatError(msg) # <<<<<<<<<<<<<< @@ -9800,7 +9827,7 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_add_missing_ranges(PyObject * discrete_values += 1 */ __pyx_t_5 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 486, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 488, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_6 = 1; #if CYTHON_UNPACK_METHODS @@ -9819,14 +9846,14 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_add_missing_ranges(PyObject __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_8, __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 486, __pyx_L1_error) + if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 488, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); } __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __PYX_ERR(0, 486, __pyx_L1_error) + __PYX_ERR(0, 488, __pyx_L1_error) - /* "pyreadstat/_readstat_writer.pyx":484 + /* "pyreadstat/_readstat_writer.pyx":486 * else: * if type(cur_range) in (int, float): * if vartype not in pywriter_numeric_types: # <<<<<<<<<<<<<< @@ -9835,17 +9862,17 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_add_missing_ranges(PyObject */ } - /* "pyreadstat/_readstat_writer.pyx":487 + /* "pyreadstat/_readstat_writer.pyx":489 * msg = "numeric missing_ranges value given for non numeric variable %s" %variablename * raise PyreadstatError(msg) * check_exit_status(readstat_variable_add_missing_double_value(variable, cur_range)) # <<<<<<<<<<<<<< * discrete_values += 1 * elif type(cur_range) == str: */ - __pyx_t_11 = __Pyx_PyFloat_AsDouble(__pyx_v_cur_range); if (unlikely((__pyx_t_11 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 487, __pyx_L1_error) - __pyx_f_10pyreadstat_16_readstat_parser_check_exit_status(readstat_variable_add_missing_double_value(__pyx_v_variable, __pyx_t_11)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 487, __pyx_L1_error) + __pyx_t_11 = __Pyx_PyFloat_AsDouble(__pyx_v_cur_range); if (unlikely((__pyx_t_11 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 489, __pyx_L1_error) + __pyx_f_10pyreadstat_16_readstat_parser_check_exit_status(readstat_variable_add_missing_double_value(__pyx_v_variable, __pyx_t_11)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 489, __pyx_L1_error) - /* "pyreadstat/_readstat_writer.pyx":488 + /* "pyreadstat/_readstat_writer.pyx":490 * raise PyreadstatError(msg) * check_exit_status(readstat_variable_add_missing_double_value(variable, cur_range)) * discrete_values += 1 # <<<<<<<<<<<<<< @@ -9854,7 +9881,7 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_add_missing_ranges(PyObject */ __pyx_v_discrete_values = (__pyx_v_discrete_values + 1); - /* "pyreadstat/_readstat_writer.pyx":483 + /* "pyreadstat/_readstat_writer.pyx":485 * raise PyreadstatError(msg) * else: * if type(cur_range) in (int, float): # <<<<<<<<<<<<<< @@ -9864,19 +9891,19 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_add_missing_ranges(PyObject goto __pyx_L23; } - /* "pyreadstat/_readstat_writer.pyx":489 + /* "pyreadstat/_readstat_writer.pyx":491 * check_exit_status(readstat_variable_add_missing_double_value(variable, cur_range)) * discrete_values += 1 * elif type(cur_range) == str: # <<<<<<<<<<<<<< * if vartype != PYWRITER_CHARACTER and vartype != PYWRITER_OBJECT or vartype==PYWRITER_DTA_STR_REF: * msg = "character missing_ranges value given for non character variable %s" %variablename */ - __pyx_t_3 = PyObject_RichCompare(((PyObject *)Py_TYPE(__pyx_v_cur_range)), ((PyObject *)(&PyUnicode_Type)), Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 489, __pyx_L1_error) - __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely((__pyx_t_7 < 0))) __PYX_ERR(0, 489, __pyx_L1_error) + __pyx_t_3 = PyObject_RichCompare(((PyObject *)Py_TYPE(__pyx_v_cur_range)), ((PyObject *)(&PyUnicode_Type)), Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 491, __pyx_L1_error) + __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely((__pyx_t_7 < 0))) __PYX_ERR(0, 491, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (likely(__pyx_t_7)) { - /* "pyreadstat/_readstat_writer.pyx":490 + /* "pyreadstat/_readstat_writer.pyx":492 * discrete_values += 1 * elif type(cur_range) == str: * if vartype != PYWRITER_CHARACTER and vartype != PYWRITER_OBJECT or vartype==PYWRITER_DTA_STR_REF: # <<<<<<<<<<<<<< @@ -9902,19 +9929,19 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_add_missing_ranges(PyObject __pyx_L28_bool_binop_done:; if (unlikely(__pyx_t_7)) { - /* "pyreadstat/_readstat_writer.pyx":491 + /* "pyreadstat/_readstat_writer.pyx":493 * elif type(cur_range) == str: * if vartype != PYWRITER_CHARACTER and vartype != PYWRITER_OBJECT or vartype==PYWRITER_DTA_STR_REF: * msg = "character missing_ranges value given for non character variable %s" %variablename # <<<<<<<<<<<<<< * raise PyreadstatError(msg) * if len(cur_range) > 8: */ - __pyx_t_3 = PyUnicode_Format(__pyx_mstate_global->__pyx_kp_u_character_missing_ranges_value_g, __pyx_v_variablename); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 491, __pyx_L1_error) + __pyx_t_3 = PyUnicode_Format(__pyx_mstate_global->__pyx_kp_u_character_missing_ranges_value_g, __pyx_v_variablename); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 493, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_v_msg = ((PyObject*)__pyx_t_3); __pyx_t_3 = 0; - /* "pyreadstat/_readstat_writer.pyx":492 + /* "pyreadstat/_readstat_writer.pyx":494 * if vartype != PYWRITER_CHARACTER and vartype != PYWRITER_OBJECT or vartype==PYWRITER_DTA_STR_REF: * msg = "character missing_ranges value given for non character variable %s" %variablename * raise PyreadstatError(msg) # <<<<<<<<<<<<<< @@ -9922,7 +9949,7 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_add_missing_ranges(PyObject * msg = "missing_ranges: string values length must not be larger than 8" */ __pyx_t_8 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 492, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 494, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_6 = 1; #if CYTHON_UNPACK_METHODS @@ -9941,14 +9968,14 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_add_missing_ranges(PyObject __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_5, __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 492, __pyx_L1_error) + if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 494, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); } __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __PYX_ERR(0, 492, __pyx_L1_error) + __PYX_ERR(0, 494, __pyx_L1_error) - /* "pyreadstat/_readstat_writer.pyx":490 + /* "pyreadstat/_readstat_writer.pyx":492 * discrete_values += 1 * elif type(cur_range) == str: * if vartype != PYWRITER_CHARACTER and vartype != PYWRITER_OBJECT or vartype==PYWRITER_DTA_STR_REF: # <<<<<<<<<<<<<< @@ -9957,18 +9984,18 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_add_missing_ranges(PyObject */ } - /* "pyreadstat/_readstat_writer.pyx":493 + /* "pyreadstat/_readstat_writer.pyx":495 * msg = "character missing_ranges value given for non character variable %s" %variablename * raise PyreadstatError(msg) * if len(cur_range) > 8: # <<<<<<<<<<<<<< * msg = "missing_ranges: string values length must not be larger than 8" * raise PyreadstatError(msg) */ - __pyx_t_12 = PyObject_Length(__pyx_v_cur_range); if (unlikely(__pyx_t_12 == ((Py_ssize_t)-1))) __PYX_ERR(0, 493, __pyx_L1_error) + __pyx_t_12 = PyObject_Length(__pyx_v_cur_range); if (unlikely(__pyx_t_12 == ((Py_ssize_t)-1))) __PYX_ERR(0, 495, __pyx_L1_error) __pyx_t_7 = (__pyx_t_12 > 8); if (unlikely(__pyx_t_7)) { - /* "pyreadstat/_readstat_writer.pyx":494 + /* "pyreadstat/_readstat_writer.pyx":496 * raise PyreadstatError(msg) * if len(cur_range) > 8: * msg = "missing_ranges: string values length must not be larger than 8" # <<<<<<<<<<<<<< @@ -9978,7 +10005,7 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_add_missing_ranges(PyObject __Pyx_INCREF(__pyx_mstate_global->__pyx_kp_u_missing_ranges_string_values_len); __pyx_v_msg = __pyx_mstate_global->__pyx_kp_u_missing_ranges_string_values_len; - /* "pyreadstat/_readstat_writer.pyx":495 + /* "pyreadstat/_readstat_writer.pyx":497 * if len(cur_range) > 8: * msg = "missing_ranges: string values length must not be larger than 8" * raise PyreadstatError(msg) # <<<<<<<<<<<<<< @@ -9986,7 +10013,7 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_add_missing_ranges(PyObject * discrete_strings += 1 */ __pyx_t_5 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 495, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 497, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_6 = 1; #if CYTHON_UNPACK_METHODS @@ -10005,14 +10032,14 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_add_missing_ranges(PyObject __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_8, __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 495, __pyx_L1_error) + if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 497, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); } __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __PYX_ERR(0, 495, __pyx_L1_error) + __PYX_ERR(0, 497, __pyx_L1_error) - /* "pyreadstat/_readstat_writer.pyx":493 + /* "pyreadstat/_readstat_writer.pyx":495 * msg = "character missing_ranges value given for non character variable %s" %variablename * raise PyreadstatError(msg) * if len(cur_range) > 8: # <<<<<<<<<<<<<< @@ -10021,17 +10048,17 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_add_missing_ranges(PyObject */ } - /* "pyreadstat/_readstat_writer.pyx":496 + /* "pyreadstat/_readstat_writer.pyx":498 * msg = "missing_ranges: string values length must not be larger than 8" * raise PyreadstatError(msg) * check_exit_status(readstat_variable_add_missing_string_value(variable, cur_range))#.encode("utf-8"))) # <<<<<<<<<<<<<< * discrete_strings += 1 * else: */ - __pyx_t_13 = __Pyx_PyObject_AsString(__pyx_v_cur_range); if (unlikely((!__pyx_t_13) && PyErr_Occurred())) __PYX_ERR(0, 496, __pyx_L1_error) - __pyx_f_10pyreadstat_16_readstat_parser_check_exit_status(readstat_variable_add_missing_string_value(__pyx_v_variable, __pyx_t_13)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 496, __pyx_L1_error) + __pyx_t_13 = __Pyx_PyObject_AsString(__pyx_v_cur_range); if (unlikely((!__pyx_t_13) && PyErr_Occurred())) __PYX_ERR(0, 498, __pyx_L1_error) + __pyx_f_10pyreadstat_16_readstat_parser_check_exit_status(readstat_variable_add_missing_string_value(__pyx_v_variable, __pyx_t_13)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 498, __pyx_L1_error) - /* "pyreadstat/_readstat_writer.pyx":497 + /* "pyreadstat/_readstat_writer.pyx":499 * raise PyreadstatError(msg) * check_exit_status(readstat_variable_add_missing_string_value(variable, cur_range))#.encode("utf-8"))) * discrete_strings += 1 # <<<<<<<<<<<<<< @@ -10040,7 +10067,7 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_add_missing_ranges(PyObject */ __pyx_v_discrete_strings = (__pyx_v_discrete_strings + 1); - /* "pyreadstat/_readstat_writer.pyx":489 + /* "pyreadstat/_readstat_writer.pyx":491 * check_exit_status(readstat_variable_add_missing_double_value(variable, cur_range)) * discrete_values += 1 * elif type(cur_range) == str: # <<<<<<<<<<<<<< @@ -10050,7 +10077,7 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_add_missing_ranges(PyObject goto __pyx_L23; } - /* "pyreadstat/_readstat_writer.pyx":499 + /* "pyreadstat/_readstat_writer.pyx":501 * discrete_strings += 1 * else: * msg = "missing_ranges: values must be both either of numeric or string type" # <<<<<<<<<<<<<< @@ -10061,7 +10088,7 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_add_missing_ranges(PyObject __Pyx_INCREF(__pyx_mstate_global->__pyx_kp_u_missing_ranges_values_must_be_bo); __pyx_v_msg = __pyx_mstate_global->__pyx_kp_u_missing_ranges_values_must_be_bo; - /* "pyreadstat/_readstat_writer.pyx":500 + /* "pyreadstat/_readstat_writer.pyx":502 * else: * msg = "missing_ranges: values must be both either of numeric or string type" * raise PyreadstatError(msg) # <<<<<<<<<<<<<< @@ -10069,7 +10096,7 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_add_missing_ranges(PyObject * if discrete_strings > 3: */ __pyx_t_8 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 500, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 502, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_6 = 1; #if CYTHON_UNPACK_METHODS @@ -10088,18 +10115,18 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_add_missing_ranges(PyObject __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_5, __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 500, __pyx_L1_error) + if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 502, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); } __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __PYX_ERR(0, 500, __pyx_L1_error) + __PYX_ERR(0, 502, __pyx_L1_error) } __pyx_L23:; } __pyx_L5:; - /* "pyreadstat/_readstat_writer.pyx":502 + /* "pyreadstat/_readstat_writer.pyx":504 * raise PyreadstatError(msg) * * if discrete_strings > 3: # <<<<<<<<<<<<<< @@ -10109,7 +10136,7 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_add_missing_ranges(PyObject __pyx_t_7 = (__pyx_v_discrete_strings > 3); if (unlikely(__pyx_t_7)) { - /* "pyreadstat/_readstat_writer.pyx":503 + /* "pyreadstat/_readstat_writer.pyx":505 * * if discrete_strings > 3: * msg = "missing_ranges: max 3 string values per variable allowed" # <<<<<<<<<<<<<< @@ -10119,7 +10146,7 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_add_missing_ranges(PyObject __Pyx_INCREF(__pyx_mstate_global->__pyx_kp_u_missing_ranges_max_3_string_valu); __pyx_v_msg = __pyx_mstate_global->__pyx_kp_u_missing_ranges_max_3_string_valu; - /* "pyreadstat/_readstat_writer.pyx":504 + /* "pyreadstat/_readstat_writer.pyx":506 * if discrete_strings > 3: * msg = "missing_ranges: max 3 string values per variable allowed" * raise PyreadstatError(msg) # <<<<<<<<<<<<<< @@ -10127,7 +10154,7 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_add_missing_ranges(PyObject * if range_values > 1: */ __pyx_t_5 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 504, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 506, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_6 = 1; #if CYTHON_UNPACK_METHODS @@ -10146,14 +10173,14 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_add_missing_ranges(PyObject __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_8, __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 504, __pyx_L1_error) + if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 506, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); } __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __PYX_ERR(0, 504, __pyx_L1_error) + __PYX_ERR(0, 506, __pyx_L1_error) - /* "pyreadstat/_readstat_writer.pyx":502 + /* "pyreadstat/_readstat_writer.pyx":504 * raise PyreadstatError(msg) * * if discrete_strings > 3: # <<<<<<<<<<<<<< @@ -10162,7 +10189,7 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_add_missing_ranges(PyObject */ } - /* "pyreadstat/_readstat_writer.pyx":505 + /* "pyreadstat/_readstat_writer.pyx":507 * msg = "missing_ranges: max 3 string values per variable allowed" * raise PyreadstatError(msg) * if range_values: # <<<<<<<<<<<<<< @@ -10172,7 +10199,7 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_add_missing_ranges(PyObject __pyx_t_7 = (__pyx_v_range_values != 0); if (__pyx_t_7) { - /* "pyreadstat/_readstat_writer.pyx":506 + /* "pyreadstat/_readstat_writer.pyx":508 * raise PyreadstatError(msg) * if range_values: * if range_values > 1: # <<<<<<<<<<<<<< @@ -10182,7 +10209,7 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_add_missing_ranges(PyObject __pyx_t_7 = (__pyx_v_range_values > 1); if (unlikely(__pyx_t_7)) { - /* "pyreadstat/_readstat_writer.pyx":507 + /* "pyreadstat/_readstat_writer.pyx":509 * if range_values: * if range_values > 1: * msg = "missing_ranges: max 1 range value per variable allowed" # <<<<<<<<<<<<<< @@ -10192,7 +10219,7 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_add_missing_ranges(PyObject __Pyx_INCREF(__pyx_mstate_global->__pyx_kp_u_missing_ranges_max_1_range_value); __pyx_v_msg = __pyx_mstate_global->__pyx_kp_u_missing_ranges_max_1_range_value; - /* "pyreadstat/_readstat_writer.pyx":508 + /* "pyreadstat/_readstat_writer.pyx":510 * if range_values > 1: * msg = "missing_ranges: max 1 range value per variable allowed" * raise PyreadstatError(msg) # <<<<<<<<<<<<<< @@ -10200,7 +10227,7 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_add_missing_ranges(PyObject * msg = "missing_ranges: max 1 discrete numeric value if combined with 1 range value per variable allowed" */ __pyx_t_8 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 508, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 510, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_6 = 1; #if CYTHON_UNPACK_METHODS @@ -10219,14 +10246,14 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_add_missing_ranges(PyObject __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_5, __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 508, __pyx_L1_error) + if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 510, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); } __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __PYX_ERR(0, 508, __pyx_L1_error) + __PYX_ERR(0, 510, __pyx_L1_error) - /* "pyreadstat/_readstat_writer.pyx":506 + /* "pyreadstat/_readstat_writer.pyx":508 * raise PyreadstatError(msg) * if range_values: * if range_values > 1: # <<<<<<<<<<<<<< @@ -10235,7 +10262,7 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_add_missing_ranges(PyObject */ } - /* "pyreadstat/_readstat_writer.pyx":509 + /* "pyreadstat/_readstat_writer.pyx":511 * msg = "missing_ranges: max 1 range value per variable allowed" * raise PyreadstatError(msg) * if discrete_values > 1: # <<<<<<<<<<<<<< @@ -10245,7 +10272,7 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_add_missing_ranges(PyObject __pyx_t_7 = (__pyx_v_discrete_values > 1); if (unlikely(__pyx_t_7)) { - /* "pyreadstat/_readstat_writer.pyx":510 + /* "pyreadstat/_readstat_writer.pyx":512 * raise PyreadstatError(msg) * if discrete_values > 1: * msg = "missing_ranges: max 1 discrete numeric value if combined with 1 range value per variable allowed" # <<<<<<<<<<<<<< @@ -10255,7 +10282,7 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_add_missing_ranges(PyObject __Pyx_INCREF(__pyx_mstate_global->__pyx_kp_u_missing_ranges_max_1_discrete_nu); __pyx_v_msg = __pyx_mstate_global->__pyx_kp_u_missing_ranges_max_1_discrete_nu; - /* "pyreadstat/_readstat_writer.pyx":511 + /* "pyreadstat/_readstat_writer.pyx":513 * if discrete_values > 1: * msg = "missing_ranges: max 1 discrete numeric value if combined with 1 range value per variable allowed" * raise PyreadstatError(msg) # <<<<<<<<<<<<<< @@ -10263,7 +10290,7 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_add_missing_ranges(PyObject * msg = "missing_ranges: max 3 discrete numeric values per variable allowed" */ __pyx_t_5 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 511, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 513, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_6 = 1; #if CYTHON_UNPACK_METHODS @@ -10282,14 +10309,14 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_add_missing_ranges(PyObject __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_8, __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 511, __pyx_L1_error) + if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 513, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); } __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __PYX_ERR(0, 511, __pyx_L1_error) + __PYX_ERR(0, 513, __pyx_L1_error) - /* "pyreadstat/_readstat_writer.pyx":509 + /* "pyreadstat/_readstat_writer.pyx":511 * msg = "missing_ranges: max 1 range value per variable allowed" * raise PyreadstatError(msg) * if discrete_values > 1: # <<<<<<<<<<<<<< @@ -10298,7 +10325,7 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_add_missing_ranges(PyObject */ } - /* "pyreadstat/_readstat_writer.pyx":505 + /* "pyreadstat/_readstat_writer.pyx":507 * msg = "missing_ranges: max 3 string values per variable allowed" * raise PyreadstatError(msg) * if range_values: # <<<<<<<<<<<<<< @@ -10307,7 +10334,7 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_add_missing_ranges(PyObject */ } - /* "pyreadstat/_readstat_writer.pyx":512 + /* "pyreadstat/_readstat_writer.pyx":514 * msg = "missing_ranges: max 1 discrete numeric value if combined with 1 range value per variable allowed" * raise PyreadstatError(msg) * if discrete_values >3: # <<<<<<<<<<<<<< @@ -10317,7 +10344,7 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_add_missing_ranges(PyObject __pyx_t_7 = (__pyx_v_discrete_values > 3); if (unlikely(__pyx_t_7)) { - /* "pyreadstat/_readstat_writer.pyx":513 + /* "pyreadstat/_readstat_writer.pyx":515 * raise PyreadstatError(msg) * if discrete_values >3: * msg = "missing_ranges: max 3 discrete numeric values per variable allowed" # <<<<<<<<<<<<<< @@ -10327,7 +10354,7 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_add_missing_ranges(PyObject __Pyx_INCREF(__pyx_mstate_global->__pyx_kp_u_missing_ranges_max_3_discrete_nu); __pyx_v_msg = __pyx_mstate_global->__pyx_kp_u_missing_ranges_max_3_discrete_nu; - /* "pyreadstat/_readstat_writer.pyx":514 + /* "pyreadstat/_readstat_writer.pyx":516 * if discrete_values >3: * msg = "missing_ranges: max 3 discrete numeric values per variable allowed" * raise PyreadstatError(msg) # <<<<<<<<<<<<<< @@ -10335,7 +10362,7 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_add_missing_ranges(PyObject * cdef void set_variable_alignment(readstat_variable_t *variable, str alignment_str, str var_name) except *: */ __pyx_t_8 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 514, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 516, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_6 = 1; #if CYTHON_UNPACK_METHODS @@ -10354,14 +10381,14 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_add_missing_ranges(PyObject __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_5, __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 514, __pyx_L1_error) + if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 516, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); } __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __PYX_ERR(0, 514, __pyx_L1_error) + __PYX_ERR(0, 516, __pyx_L1_error) - /* "pyreadstat/_readstat_writer.pyx":512 + /* "pyreadstat/_readstat_writer.pyx":514 * msg = "missing_ranges: max 1 discrete numeric value if combined with 1 range value per variable allowed" * raise PyreadstatError(msg) * if discrete_values >3: # <<<<<<<<<<<<<< @@ -10370,7 +10397,7 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_add_missing_ranges(PyObject */ } - /* "pyreadstat/_readstat_writer.pyx":448 + /* "pyreadstat/_readstat_writer.pyx":450 * cdef int discrete_strings = 0 * * for cur_range in cur_ranges: # <<<<<<<<<<<<<< @@ -10380,7 +10407,7 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_add_missing_ranges(PyObject } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "pyreadstat/_readstat_writer.pyx":438 + /* "pyreadstat/_readstat_writer.pyx":440 * return label_set * * cdef void add_missing_ranges(list cur_ranges, readstat_variable_t *variable, pywriter_variable_type vartype, str variablename) except *: # <<<<<<<<<<<<<< @@ -10404,7 +10431,7 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_add_missing_ranges(PyObject __Pyx_RefNannyFinishContext(); } -/* "pyreadstat/_readstat_writer.pyx":516 +/* "pyreadstat/_readstat_writer.pyx":518 * raise PyreadstatError(msg) * * cdef void set_variable_alignment(readstat_variable_t *variable, str alignment_str, str var_name) except *: # <<<<<<<<<<<<<< @@ -10427,17 +10454,17 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_set_variable_alignment(reads int __pyx_clineno = 0; __Pyx_RefNannySetupContext("set_variable_alignment", 0); - /* "pyreadstat/_readstat_writer.pyx":523 + /* "pyreadstat/_readstat_writer.pyx":525 * cdef readstat_alignment_t alignment * * if alignment_str == "right": # <<<<<<<<<<<<<< * alignment = READSTAT_ALIGNMENT_RIGHT * elif alignment_str == "left": */ - __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_alignment_str, __pyx_mstate_global->__pyx_n_u_right, Py_EQ)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 523, __pyx_L1_error) + __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_alignment_str, __pyx_mstate_global->__pyx_n_u_right, Py_EQ)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 525, __pyx_L1_error) if (__pyx_t_1) { - /* "pyreadstat/_readstat_writer.pyx":524 + /* "pyreadstat/_readstat_writer.pyx":526 * * if alignment_str == "right": * alignment = READSTAT_ALIGNMENT_RIGHT # <<<<<<<<<<<<<< @@ -10446,7 +10473,7 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_set_variable_alignment(reads */ __pyx_v_alignment = READSTAT_ALIGNMENT_RIGHT; - /* "pyreadstat/_readstat_writer.pyx":523 + /* "pyreadstat/_readstat_writer.pyx":525 * cdef readstat_alignment_t alignment * * if alignment_str == "right": # <<<<<<<<<<<<<< @@ -10456,17 +10483,17 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_set_variable_alignment(reads goto __pyx_L3; } - /* "pyreadstat/_readstat_writer.pyx":525 + /* "pyreadstat/_readstat_writer.pyx":527 * if alignment_str == "right": * alignment = READSTAT_ALIGNMENT_RIGHT * elif alignment_str == "left": # <<<<<<<<<<<<<< * alignment = READSTAT_ALIGNMENT_LEFT * elif alignment_str == "center": */ - __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_alignment_str, __pyx_mstate_global->__pyx_n_u_left, Py_EQ)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 525, __pyx_L1_error) + __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_alignment_str, __pyx_mstate_global->__pyx_n_u_left, Py_EQ)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 527, __pyx_L1_error) if (__pyx_t_1) { - /* "pyreadstat/_readstat_writer.pyx":526 + /* "pyreadstat/_readstat_writer.pyx":528 * alignment = READSTAT_ALIGNMENT_RIGHT * elif alignment_str == "left": * alignment = READSTAT_ALIGNMENT_LEFT # <<<<<<<<<<<<<< @@ -10475,7 +10502,7 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_set_variable_alignment(reads */ __pyx_v_alignment = READSTAT_ALIGNMENT_LEFT; - /* "pyreadstat/_readstat_writer.pyx":525 + /* "pyreadstat/_readstat_writer.pyx":527 * if alignment_str == "right": * alignment = READSTAT_ALIGNMENT_RIGHT * elif alignment_str == "left": # <<<<<<<<<<<<<< @@ -10485,17 +10512,17 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_set_variable_alignment(reads goto __pyx_L3; } - /* "pyreadstat/_readstat_writer.pyx":527 + /* "pyreadstat/_readstat_writer.pyx":529 * elif alignment_str == "left": * alignment = READSTAT_ALIGNMENT_LEFT * elif alignment_str == "center": # <<<<<<<<<<<<<< * alignment = READSTAT_ALIGNMENT_CENTER * elif alignment_str == "unknown": */ - __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_alignment_str, __pyx_mstate_global->__pyx_n_u_center, Py_EQ)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 527, __pyx_L1_error) + __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_alignment_str, __pyx_mstate_global->__pyx_n_u_center, Py_EQ)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 529, __pyx_L1_error) if (__pyx_t_1) { - /* "pyreadstat/_readstat_writer.pyx":528 + /* "pyreadstat/_readstat_writer.pyx":530 * alignment = READSTAT_ALIGNMENT_LEFT * elif alignment_str == "center": * alignment = READSTAT_ALIGNMENT_CENTER # <<<<<<<<<<<<<< @@ -10504,7 +10531,7 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_set_variable_alignment(reads */ __pyx_v_alignment = READSTAT_ALIGNMENT_CENTER; - /* "pyreadstat/_readstat_writer.pyx":527 + /* "pyreadstat/_readstat_writer.pyx":529 * elif alignment_str == "left": * alignment = READSTAT_ALIGNMENT_LEFT * elif alignment_str == "center": # <<<<<<<<<<<<<< @@ -10514,17 +10541,17 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_set_variable_alignment(reads goto __pyx_L3; } - /* "pyreadstat/_readstat_writer.pyx":529 + /* "pyreadstat/_readstat_writer.pyx":531 * elif alignment_str == "center": * alignment = READSTAT_ALIGNMENT_CENTER * elif alignment_str == "unknown": # <<<<<<<<<<<<<< * alignment = READSTAT_ALIGNMENT_UNKNOWN * else: */ - __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_alignment_str, __pyx_mstate_global->__pyx_n_u_unknown, Py_EQ)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 529, __pyx_L1_error) + __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_alignment_str, __pyx_mstate_global->__pyx_n_u_unknown, Py_EQ)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 531, __pyx_L1_error) if (likely(__pyx_t_1)) { - /* "pyreadstat/_readstat_writer.pyx":530 + /* "pyreadstat/_readstat_writer.pyx":532 * alignment = READSTAT_ALIGNMENT_CENTER * elif alignment_str == "unknown": * alignment = READSTAT_ALIGNMENT_UNKNOWN # <<<<<<<<<<<<<< @@ -10533,7 +10560,7 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_set_variable_alignment(reads */ __pyx_v_alignment = READSTAT_ALIGNMENT_UNKNOWN; - /* "pyreadstat/_readstat_writer.pyx":529 + /* "pyreadstat/_readstat_writer.pyx":531 * elif alignment_str == "center": * alignment = READSTAT_ALIGNMENT_CENTER * elif alignment_str == "unknown": # <<<<<<<<<<<<<< @@ -10543,7 +10570,7 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_set_variable_alignment(reads goto __pyx_L3; } - /* "pyreadstat/_readstat_writer.pyx":532 + /* "pyreadstat/_readstat_writer.pyx":534 * alignment = READSTAT_ALIGNMENT_UNKNOWN * else: * msg = "alignment for variable %s must be either right, center, left or unknown got %s instead" % (var_name, alignment_str) # <<<<<<<<<<<<<< @@ -10551,9 +10578,9 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_set_variable_alignment(reads * */ /*else*/ { - __pyx_t_2 = __Pyx_PyUnicode_Unicode(__pyx_v_var_name); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 532, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyUnicode_Unicode(__pyx_v_var_name); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 534, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_3 = __Pyx_PyUnicode_Unicode(__pyx_v_alignment_str); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 532, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyUnicode_Unicode(__pyx_v_alignment_str); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 534, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4[0] = __pyx_mstate_global->__pyx_kp_u_alignment_for_variable; __pyx_t_4[1] = __pyx_t_2; @@ -10561,14 +10588,14 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_set_variable_alignment(reads __pyx_t_4[3] = __pyx_t_3; __pyx_t_4[4] = __pyx_mstate_global->__pyx_kp_u_instead; __pyx_t_5 = __Pyx_PyUnicode_Join(__pyx_t_4, 5, 23 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_2) + 51 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_3) + 8, 127 | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_2) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_3)); - if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 532, __pyx_L1_error) + if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 534, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_v_msg = ((PyObject*)__pyx_t_5); __pyx_t_5 = 0; - /* "pyreadstat/_readstat_writer.pyx":533 + /* "pyreadstat/_readstat_writer.pyx":535 * else: * msg = "alignment for variable %s must be either right, center, left or unknown got %s instead" % (var_name, alignment_str) * raise PyreadstatError(msg) # <<<<<<<<<<<<<< @@ -10576,7 +10603,7 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_set_variable_alignment(reads * readstat_variable_set_alignment(variable, alignment) */ __pyx_t_3 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 533, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 535, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_6 = 1; #if CYTHON_UNPACK_METHODS @@ -10595,16 +10622,16 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_set_variable_alignment(reads __pyx_t_5 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_2, __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 533, __pyx_L1_error) + if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 535, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); } __Pyx_Raise(__pyx_t_5, 0, 0, 0); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __PYX_ERR(0, 533, __pyx_L1_error) + __PYX_ERR(0, 535, __pyx_L1_error) } __pyx_L3:; - /* "pyreadstat/_readstat_writer.pyx":535 + /* "pyreadstat/_readstat_writer.pyx":537 * raise PyreadstatError(msg) * * readstat_variable_set_alignment(variable, alignment) # <<<<<<<<<<<<<< @@ -10613,7 +10640,7 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_set_variable_alignment(reads */ readstat_variable_set_alignment(__pyx_v_variable, __pyx_v_alignment); - /* "pyreadstat/_readstat_writer.pyx":516 + /* "pyreadstat/_readstat_writer.pyx":518 * raise PyreadstatError(msg) * * cdef void set_variable_alignment(readstat_variable_t *variable, str alignment_str, str var_name) except *: # <<<<<<<<<<<<<< @@ -10633,7 +10660,7 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_set_variable_alignment(reads __Pyx_RefNannyFinishContext(); } -/* "pyreadstat/_readstat_writer.pyx":537 +/* "pyreadstat/_readstat_writer.pyx":539 * readstat_variable_set_alignment(variable, alignment) * * cdef void set_variable_display_width(readstat_variable_t *variable, int display_width, str var_name) except *: # <<<<<<<<<<<<<< @@ -10643,7 +10670,7 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_set_variable_alignment(reads static void __pyx_f_10pyreadstat_16_readstat_writer_set_variable_display_width(readstat_variable_t *__pyx_v_variable, int __pyx_v_display_width, CYTHON_UNUSED PyObject *__pyx_v_var_name) { - /* "pyreadstat/_readstat_writer.pyx":542 + /* "pyreadstat/_readstat_writer.pyx":544 * """ * * readstat_variable_set_display_width(variable, display_width) # <<<<<<<<<<<<<< @@ -10652,7 +10679,7 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_set_variable_display_width(r */ readstat_variable_set_display_width(__pyx_v_variable, __pyx_v_display_width); - /* "pyreadstat/_readstat_writer.pyx":537 + /* "pyreadstat/_readstat_writer.pyx":539 * readstat_variable_set_alignment(variable, alignment) * * cdef void set_variable_display_width(readstat_variable_t *variable, int display_width, str var_name) except *: # <<<<<<<<<<<<<< @@ -10663,7 +10690,7 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_set_variable_display_width(r /* function exit code */ } -/* "pyreadstat/_readstat_writer.pyx":544 +/* "pyreadstat/_readstat_writer.pyx":546 * readstat_variable_set_display_width(variable, display_width) * * cdef void set_variable_measure(readstat_variable_t *variable, str measure_str, str var_name) except *: # <<<<<<<<<<<<<< @@ -10686,17 +10713,17 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_set_variable_measure(readsta int __pyx_clineno = 0; __Pyx_RefNannySetupContext("set_variable_measure", 0); - /* "pyreadstat/_readstat_writer.pyx":551 + /* "pyreadstat/_readstat_writer.pyx":553 * cdef readstat_measure_t measure * * if measure_str == "nominal": # <<<<<<<<<<<<<< * measure = READSTAT_MEASURE_NOMINAL * elif measure_str == "ordinal": */ - __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_measure_str, __pyx_mstate_global->__pyx_n_u_nominal, Py_EQ)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 551, __pyx_L1_error) + __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_measure_str, __pyx_mstate_global->__pyx_n_u_nominal, Py_EQ)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 553, __pyx_L1_error) if (__pyx_t_1) { - /* "pyreadstat/_readstat_writer.pyx":552 + /* "pyreadstat/_readstat_writer.pyx":554 * * if measure_str == "nominal": * measure = READSTAT_MEASURE_NOMINAL # <<<<<<<<<<<<<< @@ -10705,7 +10732,7 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_set_variable_measure(readsta */ __pyx_v_measure = READSTAT_MEASURE_NOMINAL; - /* "pyreadstat/_readstat_writer.pyx":551 + /* "pyreadstat/_readstat_writer.pyx":553 * cdef readstat_measure_t measure * * if measure_str == "nominal": # <<<<<<<<<<<<<< @@ -10715,17 +10742,17 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_set_variable_measure(readsta goto __pyx_L3; } - /* "pyreadstat/_readstat_writer.pyx":553 + /* "pyreadstat/_readstat_writer.pyx":555 * if measure_str == "nominal": * measure = READSTAT_MEASURE_NOMINAL * elif measure_str == "ordinal": # <<<<<<<<<<<<<< * measure = READSTAT_MEASURE_ORDINAL * elif measure_str == "scale": */ - __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_measure_str, __pyx_mstate_global->__pyx_n_u_ordinal, Py_EQ)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 553, __pyx_L1_error) + __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_measure_str, __pyx_mstate_global->__pyx_n_u_ordinal, Py_EQ)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 555, __pyx_L1_error) if (__pyx_t_1) { - /* "pyreadstat/_readstat_writer.pyx":554 + /* "pyreadstat/_readstat_writer.pyx":556 * measure = READSTAT_MEASURE_NOMINAL * elif measure_str == "ordinal": * measure = READSTAT_MEASURE_ORDINAL # <<<<<<<<<<<<<< @@ -10734,7 +10761,7 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_set_variable_measure(readsta */ __pyx_v_measure = READSTAT_MEASURE_ORDINAL; - /* "pyreadstat/_readstat_writer.pyx":553 + /* "pyreadstat/_readstat_writer.pyx":555 * if measure_str == "nominal": * measure = READSTAT_MEASURE_NOMINAL * elif measure_str == "ordinal": # <<<<<<<<<<<<<< @@ -10744,17 +10771,17 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_set_variable_measure(readsta goto __pyx_L3; } - /* "pyreadstat/_readstat_writer.pyx":555 + /* "pyreadstat/_readstat_writer.pyx":557 * elif measure_str == "ordinal": * measure = READSTAT_MEASURE_ORDINAL * elif measure_str == "scale": # <<<<<<<<<<<<<< * measure = READSTAT_MEASURE_SCALE * elif measure_str == "unknown": */ - __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_measure_str, __pyx_mstate_global->__pyx_n_u_scale, Py_EQ)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 555, __pyx_L1_error) + __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_measure_str, __pyx_mstate_global->__pyx_n_u_scale, Py_EQ)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 557, __pyx_L1_error) if (__pyx_t_1) { - /* "pyreadstat/_readstat_writer.pyx":556 + /* "pyreadstat/_readstat_writer.pyx":558 * measure = READSTAT_MEASURE_ORDINAL * elif measure_str == "scale": * measure = READSTAT_MEASURE_SCALE # <<<<<<<<<<<<<< @@ -10763,7 +10790,7 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_set_variable_measure(readsta */ __pyx_v_measure = READSTAT_MEASURE_SCALE; - /* "pyreadstat/_readstat_writer.pyx":555 + /* "pyreadstat/_readstat_writer.pyx":557 * elif measure_str == "ordinal": * measure = READSTAT_MEASURE_ORDINAL * elif measure_str == "scale": # <<<<<<<<<<<<<< @@ -10773,17 +10800,17 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_set_variable_measure(readsta goto __pyx_L3; } - /* "pyreadstat/_readstat_writer.pyx":557 + /* "pyreadstat/_readstat_writer.pyx":559 * elif measure_str == "scale": * measure = READSTAT_MEASURE_SCALE * elif measure_str == "unknown": # <<<<<<<<<<<<<< * measure = READSTAT_MEASURE_UNKNOWN * else: */ - __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_measure_str, __pyx_mstate_global->__pyx_n_u_unknown, Py_EQ)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 557, __pyx_L1_error) + __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_measure_str, __pyx_mstate_global->__pyx_n_u_unknown, Py_EQ)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 559, __pyx_L1_error) if (likely(__pyx_t_1)) { - /* "pyreadstat/_readstat_writer.pyx":558 + /* "pyreadstat/_readstat_writer.pyx":560 * measure = READSTAT_MEASURE_SCALE * elif measure_str == "unknown": * measure = READSTAT_MEASURE_UNKNOWN # <<<<<<<<<<<<<< @@ -10792,7 +10819,7 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_set_variable_measure(readsta */ __pyx_v_measure = READSTAT_MEASURE_UNKNOWN; - /* "pyreadstat/_readstat_writer.pyx":557 + /* "pyreadstat/_readstat_writer.pyx":559 * elif measure_str == "scale": * measure = READSTAT_MEASURE_SCALE * elif measure_str == "unknown": # <<<<<<<<<<<<<< @@ -10802,7 +10829,7 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_set_variable_measure(readsta goto __pyx_L3; } - /* "pyreadstat/_readstat_writer.pyx":560 + /* "pyreadstat/_readstat_writer.pyx":562 * measure = READSTAT_MEASURE_UNKNOWN * else: * msg = "measure for variable %s must be either nominal, ordinal, scale or unknown got %s instead" % (var_name, measure_str) # <<<<<<<<<<<<<< @@ -10810,9 +10837,9 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_set_variable_measure(readsta * */ /*else*/ { - __pyx_t_2 = __Pyx_PyUnicode_Unicode(__pyx_v_var_name); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 560, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyUnicode_Unicode(__pyx_v_var_name); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 562, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_3 = __Pyx_PyUnicode_Unicode(__pyx_v_measure_str); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 560, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyUnicode_Unicode(__pyx_v_measure_str); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 562, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4[0] = __pyx_mstate_global->__pyx_kp_u_measure_for_variable; __pyx_t_4[1] = __pyx_t_2; @@ -10820,14 +10847,14 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_set_variable_measure(readsta __pyx_t_4[3] = __pyx_t_3; __pyx_t_4[4] = __pyx_mstate_global->__pyx_kp_u_instead; __pyx_t_5 = __Pyx_PyUnicode_Join(__pyx_t_4, 5, 21 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_2) + 55 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_3) + 8, 127 | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_2) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_3)); - if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 560, __pyx_L1_error) + if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 562, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_v_msg = ((PyObject*)__pyx_t_5); __pyx_t_5 = 0; - /* "pyreadstat/_readstat_writer.pyx":561 + /* "pyreadstat/_readstat_writer.pyx":563 * else: * msg = "measure for variable %s must be either nominal, ordinal, scale or unknown got %s instead" % (var_name, measure_str) * raise PyreadstatError(msg) # <<<<<<<<<<<<<< @@ -10835,7 +10862,7 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_set_variable_measure(readsta * readstat_variable_set_measure(variable, measure); */ __pyx_t_3 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 561, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 563, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_6 = 1; #if CYTHON_UNPACK_METHODS @@ -10854,16 +10881,16 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_set_variable_measure(readsta __pyx_t_5 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_2, __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 561, __pyx_L1_error) + if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 563, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); } __Pyx_Raise(__pyx_t_5, 0, 0, 0); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __PYX_ERR(0, 561, __pyx_L1_error) + __PYX_ERR(0, 563, __pyx_L1_error) } __pyx_L3:; - /* "pyreadstat/_readstat_writer.pyx":563 + /* "pyreadstat/_readstat_writer.pyx":565 * raise PyreadstatError(msg) * * readstat_variable_set_measure(variable, measure); # <<<<<<<<<<<<<< @@ -10872,7 +10899,7 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_set_variable_measure(readsta */ readstat_variable_set_measure(__pyx_v_variable, __pyx_v_measure); - /* "pyreadstat/_readstat_writer.pyx":544 + /* "pyreadstat/_readstat_writer.pyx":546 * readstat_variable_set_display_width(variable, display_width) * * cdef void set_variable_measure(readstat_variable_t *variable, str measure_str, str var_name) except *: # <<<<<<<<<<<<<< @@ -10892,7 +10919,7 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_set_variable_measure(readsta __Pyx_RefNannyFinishContext(); } -/* "pyreadstat/_readstat_writer.pyx":566 +/* "pyreadstat/_readstat_writer.pyx":568 * * * cdef ssize_t write_bytes(const void *data, size_t _len, void *ctx) noexcept: # <<<<<<<<<<<<<< @@ -10912,7 +10939,7 @@ static Py_ssize_t __pyx_f_10pyreadstat_16_readstat_writer_write_bytes(void const int __pyx_clineno = 0; __Pyx_RefNannySetupContext("write_bytes", 0); - /* "pyreadstat/_readstat_writer.pyx":571 + /* "pyreadstat/_readstat_writer.pyx":573 * """ * cdef int fd * fd = (ctx)[0] # <<<<<<<<<<<<<< @@ -10921,23 +10948,23 @@ static Py_ssize_t __pyx_f_10pyreadstat_16_readstat_writer_write_bytes(void const */ __pyx_v_fd = (((int *)__pyx_v_ctx)[0]); - /* "pyreadstat/_readstat_writer.pyx":572 + /* "pyreadstat/_readstat_writer.pyx":574 * cdef int fd * fd = (ctx)[0] * if os.name=='nt': # <<<<<<<<<<<<<< * return _write(fd, data, _len) * else: */ - __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_os); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 572, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_os); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 574, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_name); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 572, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_name); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 574, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_nt, Py_EQ)); if (unlikely((__pyx_t_3 < 0))) __PYX_ERR(0, 572, __pyx_L1_error) + __pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_nt, Py_EQ)); if (unlikely((__pyx_t_3 < 0))) __PYX_ERR(0, 574, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (__pyx_t_3) { - /* "pyreadstat/_readstat_writer.pyx":573 + /* "pyreadstat/_readstat_writer.pyx":575 * fd = (ctx)[0] * if os.name=='nt': * return _write(fd, data, _len) # <<<<<<<<<<<<<< @@ -10947,7 +10974,7 @@ static Py_ssize_t __pyx_f_10pyreadstat_16_readstat_writer_write_bytes(void const __pyx_r = _write(__pyx_v_fd, __pyx_v_data, __pyx_v__len); goto __pyx_L0; - /* "pyreadstat/_readstat_writer.pyx":572 + /* "pyreadstat/_readstat_writer.pyx":574 * cdef int fd * fd = (ctx)[0] * if os.name=='nt': # <<<<<<<<<<<<<< @@ -10956,19 +10983,19 @@ static Py_ssize_t __pyx_f_10pyreadstat_16_readstat_writer_write_bytes(void const */ } - /* "pyreadstat/_readstat_writer.pyx":575 + /* "pyreadstat/_readstat_writer.pyx":577 * return _write(fd, data, _len) * else: * return write(fd, data, _len) # <<<<<<<<<<<<<< * - * cdef void _check_exit_status(readstat_error_t retcode) except *: + * cdef int open_file(bytes filename_bytes): */ /*else*/ { __pyx_r = write(__pyx_v_fd, __pyx_v_data, __pyx_v__len); goto __pyx_L0; } - /* "pyreadstat/_readstat_writer.pyx":566 + /* "pyreadstat/_readstat_writer.pyx":568 * * * cdef ssize_t write_bytes(const void *data, size_t _len, void *ctx) noexcept: # <<<<<<<<<<<<<< @@ -10987,128 +11014,9 @@ static Py_ssize_t __pyx_f_10pyreadstat_16_readstat_writer_write_bytes(void const return __pyx_r; } -/* "pyreadstat/_readstat_writer.pyx":577 - * return write(fd, data, _len) - * - * cdef void _check_exit_status(readstat_error_t retcode) except *: # <<<<<<<<<<<<<< - * """ - * transforms a readstat exit status to a python error if status is not READSTAT OK -*/ - -static void __pyx_f_10pyreadstat_16_readstat_writer__check_exit_status(readstat_error_t __pyx_v_retcode) { - char *__pyx_v_err_readstat; - PyObject *__pyx_v_err_message = 0; - __Pyx_RefNannyDeclarations - int __pyx_t_1; - PyObject *__pyx_t_2 = NULL; - PyObject *__pyx_t_3 = NULL; - PyObject *__pyx_t_4 = NULL; - size_t __pyx_t_5; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("_check_exit_status", 0); - - /* "pyreadstat/_readstat_writer.pyx":584 - * cdef char * err_readstat - * cdef str err_message - * if retcode != READSTAT_OK: # <<<<<<<<<<<<<< - * err_readstat = readstat_error_message(retcode) - * err_message = err_readstat -*/ - __pyx_t_1 = (__pyx_v_retcode != READSTAT_OK); - if (unlikely(__pyx_t_1)) { - - /* "pyreadstat/_readstat_writer.pyx":585 - * cdef str err_message - * if retcode != READSTAT_OK: - * err_readstat = readstat_error_message(retcode) # <<<<<<<<<<<<<< - * err_message = err_readstat - * raise ReadstatError(err_message) -*/ - __pyx_v_err_readstat = readstat_error_message(__pyx_v_retcode); - - /* "pyreadstat/_readstat_writer.pyx":586 - * if retcode != READSTAT_OK: - * err_readstat = readstat_error_message(retcode) - * err_message = err_readstat # <<<<<<<<<<<<<< - * raise ReadstatError(err_message) - * -*/ - __pyx_t_2 = __Pyx_PyUnicode_FromString(__pyx_v_err_readstat); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 586, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_3 = __pyx_t_2; - __Pyx_INCREF(__pyx_t_3); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_v_err_message = ((PyObject*)__pyx_t_3); - __pyx_t_3 = 0; - - /* "pyreadstat/_readstat_writer.pyx":587 - * err_readstat = readstat_error_message(retcode) - * err_message = err_readstat - * raise ReadstatError(err_message) # <<<<<<<<<<<<<< - * - * cdef int open_file(bytes filename_bytes): -*/ - __pyx_t_2 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_ReadstatError); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 587, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = 1; - #if CYTHON_UNPACK_METHODS - if (unlikely(PyMethod_Check(__pyx_t_4))) { - __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_4); - assert(__pyx_t_2); - PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4); - __Pyx_INCREF(__pyx_t_2); - __Pyx_INCREF(__pyx__function); - __Pyx_DECREF_SET(__pyx_t_4, __pyx__function); - __pyx_t_5 = 0; - } - #endif - { - PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_v_err_message}; - __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 587, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - } - __Pyx_Raise(__pyx_t_3, 0, 0, 0); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __PYX_ERR(0, 587, __pyx_L1_error) - - /* "pyreadstat/_readstat_writer.pyx":584 - * cdef char * err_readstat - * cdef str err_message - * if retcode != READSTAT_OK: # <<<<<<<<<<<<<< - * err_readstat = readstat_error_message(retcode) - * err_message = err_readstat -*/ - } - - /* "pyreadstat/_readstat_writer.pyx":577 +/* "pyreadstat/_readstat_writer.pyx":579 * return write(fd, data, _len) * - * cdef void _check_exit_status(readstat_error_t retcode) except *: # <<<<<<<<<<<<<< - * """ - * transforms a readstat exit status to a python error if status is not READSTAT OK -*/ - - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_2); - __Pyx_XDECREF(__pyx_t_3); - __Pyx_XDECREF(__pyx_t_4); - __Pyx_AddTraceback("pyreadstat._readstat_writer._check_exit_status", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_L0:; - __Pyx_XDECREF(__pyx_v_err_message); - __Pyx_RefNannyFinishContext(); -} - -/* "pyreadstat/_readstat_writer.pyx":589 - * raise ReadstatError(err_message) - * * cdef int open_file(bytes filename_bytes): # <<<<<<<<<<<<<< * * cdef int fd @@ -11136,23 +11044,23 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_open_file(PyObject *__pyx_v_f int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_file", 0); - /* "pyreadstat/_readstat_writer.pyx":597 + /* "pyreadstat/_readstat_writer.pyx":587 * cdef char *path * * if os.name == "nt": # <<<<<<<<<<<<<< * filename_str = os.fsdecode(filename_bytes) * u16_path = PyUnicode_AsWideCharString(filename_str, &length) */ - __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_os); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 597, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_os); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 587, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_name); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 597, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_name); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 587, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_nt, Py_EQ)); if (unlikely((__pyx_t_3 < 0))) __PYX_ERR(0, 597, __pyx_L1_error) + __pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_nt, Py_EQ)); if (unlikely((__pyx_t_3 < 0))) __PYX_ERR(0, 587, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (__pyx_t_3) { - /* "pyreadstat/_readstat_writer.pyx":598 + /* "pyreadstat/_readstat_writer.pyx":588 * * if os.name == "nt": * filename_str = os.fsdecode(filename_bytes) # <<<<<<<<<<<<<< @@ -11160,9 +11068,9 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_open_file(PyObject *__pyx_v_f * flags = _O_WRONLY | _O_CREAT | _O_BINARY | _O_TRUNC */ __pyx_t_1 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_os); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 598, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_os); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 588, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_fsdecode); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 598, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_fsdecode); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 588, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_6 = 1; @@ -11182,23 +11090,23 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_open_file(PyObject *__pyx_v_f __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_5, __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 598, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 588, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } __pyx_v_filename_str = __pyx_t_2; __pyx_t_2 = 0; - /* "pyreadstat/_readstat_writer.pyx":599 + /* "pyreadstat/_readstat_writer.pyx":589 * if os.name == "nt": * filename_str = os.fsdecode(filename_bytes) * u16_path = PyUnicode_AsWideCharString(filename_str, &length) # <<<<<<<<<<<<<< * flags = _O_WRONLY | _O_CREAT | _O_BINARY | _O_TRUNC * fd = _wsopen(u16_path, flags, _SH_DENYRW, _S_IREAD | _S_IWRITE) */ - __pyx_t_7 = PyUnicode_AsWideCharString(__pyx_v_filename_str, (&__pyx_v_length)); if (unlikely(__pyx_t_7 == ((void *)NULL))) __PYX_ERR(0, 599, __pyx_L1_error) + __pyx_t_7 = PyUnicode_AsWideCharString(__pyx_v_filename_str, (&__pyx_v_length)); if (unlikely(__pyx_t_7 == ((void *)NULL))) __PYX_ERR(0, 589, __pyx_L1_error) __pyx_v_u16_path = __pyx_t_7; - /* "pyreadstat/_readstat_writer.pyx":600 + /* "pyreadstat/_readstat_writer.pyx":590 * filename_str = os.fsdecode(filename_bytes) * u16_path = PyUnicode_AsWideCharString(filename_str, &length) * flags = _O_WRONLY | _O_CREAT | _O_BINARY | _O_TRUNC # <<<<<<<<<<<<<< @@ -11207,7 +11115,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_open_file(PyObject *__pyx_v_f */ __pyx_v_flags = (((_O_WRONLY | _O_CREAT) | _O_BINARY) | _O_TRUNC); - /* "pyreadstat/_readstat_writer.pyx":601 + /* "pyreadstat/_readstat_writer.pyx":591 * u16_path = PyUnicode_AsWideCharString(filename_str, &length) * flags = _O_WRONLY | _O_CREAT | _O_BINARY | _O_TRUNC * fd = _wsopen(u16_path, flags, _SH_DENYRW, _S_IREAD | _S_IWRITE) # <<<<<<<<<<<<<< @@ -11216,7 +11124,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_open_file(PyObject *__pyx_v_f */ __pyx_v_fd = _wsopen(__pyx_v_u16_path, __pyx_v_flags, _SH_DENYRW, (_S_IREAD | _S_IWRITE)); - /* "pyreadstat/_readstat_writer.pyx":597 + /* "pyreadstat/_readstat_writer.pyx":587 * cdef char *path * * if os.name == "nt": # <<<<<<<<<<<<<< @@ -11226,7 +11134,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_open_file(PyObject *__pyx_v_f goto __pyx_L3; } - /* "pyreadstat/_readstat_writer.pyx":603 + /* "pyreadstat/_readstat_writer.pyx":593 * fd = _wsopen(u16_path, flags, _SH_DENYRW, _S_IREAD | _S_IWRITE) * else: * path = filename_bytes # <<<<<<<<<<<<<< @@ -11236,12 +11144,12 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_open_file(PyObject *__pyx_v_f /*else*/ { if (unlikely(__pyx_v_filename_bytes == Py_None)) { PyErr_SetString(PyExc_TypeError, "expected bytes, NoneType found"); - __PYX_ERR(0, 603, __pyx_L1_error) + __PYX_ERR(0, 593, __pyx_L1_error) } - __pyx_t_8 = __Pyx_PyBytes_AsWritableString(__pyx_v_filename_bytes); if (unlikely((!__pyx_t_8) && PyErr_Occurred())) __PYX_ERR(0, 603, __pyx_L1_error) + __pyx_t_8 = __Pyx_PyBytes_AsWritableString(__pyx_v_filename_bytes); if (unlikely((!__pyx_t_8) && PyErr_Occurred())) __PYX_ERR(0, 593, __pyx_L1_error) __pyx_v_path = ((char *)__pyx_t_8); - /* "pyreadstat/_readstat_writer.pyx":604 + /* "pyreadstat/_readstat_writer.pyx":594 * else: * path = filename_bytes * flags = O_WRONLY | O_CREAT | O_TRUNC # <<<<<<<<<<<<<< @@ -11250,7 +11158,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_open_file(PyObject *__pyx_v_f */ __pyx_v_flags = ((O_WRONLY | O_CREAT) | O_TRUNC); - /* "pyreadstat/_readstat_writer.pyx":605 + /* "pyreadstat/_readstat_writer.pyx":595 * path = filename_bytes * flags = O_WRONLY | O_CREAT | O_TRUNC * fd = open(path, flags, 0644) # <<<<<<<<<<<<<< @@ -11261,7 +11169,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_open_file(PyObject *__pyx_v_f } __pyx_L3:; - /* "pyreadstat/_readstat_writer.pyx":607 + /* "pyreadstat/_readstat_writer.pyx":597 * fd = open(path, flags, 0644) * * return fd # <<<<<<<<<<<<<< @@ -11271,8 +11179,8 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_open_file(PyObject *__pyx_v_f __pyx_r = __pyx_v_fd; goto __pyx_L0; - /* "pyreadstat/_readstat_writer.pyx":589 - * raise ReadstatError(err_message) + /* "pyreadstat/_readstat_writer.pyx":579 + * return write(fd, data, _len) * * cdef int open_file(bytes filename_bytes): # <<<<<<<<<<<<<< * @@ -11293,43 +11201,72 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_open_file(PyObject *__pyx_v_f return __pyx_r; } -/* "pyreadstat/_readstat_writer.pyx":609 +/* "pyreadstat/_readstat_writer.pyx":599 * return fd * * cdef int close_file(int fd): # <<<<<<<<<<<<<< - * if os.name == "nt": - * return _close(fd) + * if fd == -1: + * return -1 */ static int __pyx_f_10pyreadstat_16_readstat_writer_close_file(int __pyx_v_fd) { int __pyx_r; __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; + int __pyx_t_1; PyObject *__pyx_t_2 = NULL; - int __pyx_t_3; + PyObject *__pyx_t_3 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("close_file", 0); - /* "pyreadstat/_readstat_writer.pyx":610 + /* "pyreadstat/_readstat_writer.pyx":600 + * + * cdef int close_file(int fd): + * if fd == -1: # <<<<<<<<<<<<<< + * return -1 + * if os.name == "nt": +*/ + __pyx_t_1 = (__pyx_v_fd == -1L); + if (__pyx_t_1) { + + /* "pyreadstat/_readstat_writer.pyx":601 + * cdef int close_file(int fd): + * if fd == -1: + * return -1 # <<<<<<<<<<<<<< + * if os.name == "nt": + * return _close(fd) +*/ + __pyx_r = -1; + goto __pyx_L0; + + /* "pyreadstat/_readstat_writer.pyx":600 * * cdef int close_file(int fd): + * if fd == -1: # <<<<<<<<<<<<<< + * return -1 + * if os.name == "nt": +*/ + } + + /* "pyreadstat/_readstat_writer.pyx":602 + * if fd == -1: + * return -1 * if os.name == "nt": # <<<<<<<<<<<<<< * return _close(fd) * else: */ - __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_os); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 610, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_name); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 610, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_os); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 602, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_nt, Py_EQ)); if (unlikely((__pyx_t_3 < 0))) __PYX_ERR(0, 610, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_name); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 602, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (__pyx_t_3) { + __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_nt, Py_EQ)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 602, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + if (__pyx_t_1) { - /* "pyreadstat/_readstat_writer.pyx":611 - * cdef int close_file(int fd): + /* "pyreadstat/_readstat_writer.pyx":603 + * return -1 * if os.name == "nt": * return _close(fd) # <<<<<<<<<<<<<< * else: @@ -11338,16 +11275,16 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_close_file(int __pyx_v_fd) { __pyx_r = _close(__pyx_v_fd); goto __pyx_L0; - /* "pyreadstat/_readstat_writer.pyx":610 - * - * cdef int close_file(int fd): + /* "pyreadstat/_readstat_writer.pyx":602 + * if fd == -1: + * return -1 * if os.name == "nt": # <<<<<<<<<<<<<< * return _close(fd) * else: */ } - /* "pyreadstat/_readstat_writer.pyx":613 + /* "pyreadstat/_readstat_writer.pyx":605 * return _close(fd) * else: * return close(fd) # <<<<<<<<<<<<<< @@ -11359,18 +11296,18 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_close_file(int __pyx_v_fd) { goto __pyx_L0; } - /* "pyreadstat/_readstat_writer.pyx":609 + /* "pyreadstat/_readstat_writer.pyx":599 * return fd * * cdef int close_file(int fd): # <<<<<<<<<<<<<< - * if os.name == "nt": - * return _close(fd) + * if fd == -1: + * return -1 */ /* function exit code */ __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); __Pyx_AddTraceback("pyreadstat._readstat_writer.close_file", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; @@ -11378,7 +11315,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_close_file(int __pyx_v_fd) { return __pyx_r; } -/* "pyreadstat/_readstat_writer.pyx":615 +/* "pyreadstat/_readstat_writer.pyx":607 * return close(fd) * * cdef void initial_checks(bint is_pandas, bint is_polars, dict variable_value_labels, dict missing_user_values, # <<<<<<<<<<<<<< @@ -11424,7 +11361,7 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_initial_checks(int __pyx_v_i int __pyx_clineno = 0; __Pyx_RefNannySetupContext("initial_checks", 0); - /* "pyreadstat/_readstat_writer.pyx":621 + /* "pyreadstat/_readstat_writer.pyx":613 * """ * * if not is_pandas and not is_polars: # <<<<<<<<<<<<<< @@ -11442,7 +11379,7 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_initial_checks(int __pyx_v_i __pyx_L4_bool_binop_done:; if (unlikely(__pyx_t_1)) { - /* "pyreadstat/_readstat_writer.pyx":622 + /* "pyreadstat/_readstat_writer.pyx":614 * * if not is_pandas and not is_polars: * msg = "dataframe must be pandas or polars dataframe" # <<<<<<<<<<<<<< @@ -11452,7 +11389,7 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_initial_checks(int __pyx_v_i __Pyx_INCREF(__pyx_mstate_global->__pyx_kp_u_dataframe_must_be_pandas_or_pola); __pyx_v_msg = __pyx_mstate_global->__pyx_kp_u_dataframe_must_be_pandas_or_pola; - /* "pyreadstat/_readstat_writer.pyx":623 + /* "pyreadstat/_readstat_writer.pyx":615 * if not is_pandas and not is_polars: * msg = "dataframe must be pandas or polars dataframe" * raise PyreadstatError(msg) # <<<<<<<<<<<<<< @@ -11460,7 +11397,7 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_initial_checks(int __pyx_v_i * if variable_value_labels: */ __pyx_t_4 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 623, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 615, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_6 = 1; #if CYTHON_UNPACK_METHODS @@ -11479,14 +11416,14 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_initial_checks(int __pyx_v_i __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_5, __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 623, __pyx_L1_error) + if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 615, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); } __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __PYX_ERR(0, 623, __pyx_L1_error) + __PYX_ERR(0, 615, __pyx_L1_error) - /* "pyreadstat/_readstat_writer.pyx":621 + /* "pyreadstat/_readstat_writer.pyx":613 * """ * * if not is_pandas and not is_polars: # <<<<<<<<<<<<<< @@ -11495,17 +11432,17 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_initial_checks(int __pyx_v_i */ } - /* "pyreadstat/_readstat_writer.pyx":625 + /* "pyreadstat/_readstat_writer.pyx":617 * raise PyreadstatError(msg) * * if variable_value_labels: # <<<<<<<<<<<<<< * for k,v in variable_value_labels.items(): * if type(v) != dict: */ - __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_variable_value_labels); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 625, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_variable_value_labels); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 617, __pyx_L1_error) if (__pyx_t_1) { - /* "pyreadstat/_readstat_writer.pyx":626 + /* "pyreadstat/_readstat_writer.pyx":618 * * if variable_value_labels: * for k,v in variable_value_labels.items(): # <<<<<<<<<<<<<< @@ -11514,18 +11451,18 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_initial_checks(int __pyx_v_i */ if (unlikely(__pyx_v_variable_value_labels == Py_None)) { PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "items"); - __PYX_ERR(0, 626, __pyx_L1_error) + __PYX_ERR(0, 618, __pyx_L1_error) } - __pyx_t_3 = __Pyx_PyDict_Items(__pyx_v_variable_value_labels); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 626, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyDict_Items(__pyx_v_variable_value_labels); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 618, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (likely(PyList_CheckExact(__pyx_t_3)) || PyTuple_CheckExact(__pyx_t_3)) { __pyx_t_5 = __pyx_t_3; __Pyx_INCREF(__pyx_t_5); __pyx_t_7 = 0; __pyx_t_8 = NULL; } else { - __pyx_t_7 = -1; __pyx_t_5 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 626, __pyx_L1_error) + __pyx_t_7 = -1; __pyx_t_5 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 618, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); - __pyx_t_8 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_5); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 626, __pyx_L1_error) + __pyx_t_8 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_5); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 618, __pyx_L1_error) } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; for (;;) { @@ -11534,7 +11471,7 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_initial_checks(int __pyx_v_i { Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_5); #if !CYTHON_ASSUME_SAFE_SIZE - if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 626, __pyx_L1_error) + if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 618, __pyx_L1_error) #endif if (__pyx_t_7 >= __pyx_temp) break; } @@ -11544,7 +11481,7 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_initial_checks(int __pyx_v_i { Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_5); #if !CYTHON_ASSUME_SAFE_SIZE - if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 626, __pyx_L1_error) + if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 618, __pyx_L1_error) #endif if (__pyx_t_7 >= __pyx_temp) break; } @@ -11555,13 +11492,13 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_initial_checks(int __pyx_v_i #endif ++__pyx_t_7; } - if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 626, __pyx_L1_error) + if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 618, __pyx_L1_error) } else { __pyx_t_3 = __pyx_t_8(__pyx_t_5); if (unlikely(!__pyx_t_3)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { - if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(0, 626, __pyx_L1_error) + if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(0, 618, __pyx_L1_error) PyErr_Clear(); } break; @@ -11574,7 +11511,7 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_initial_checks(int __pyx_v_i if (unlikely(size != 2)) { if (size > 2) __Pyx_RaiseTooManyValuesError(2); else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); - __PYX_ERR(0, 626, __pyx_L1_error) + __PYX_ERR(0, 618, __pyx_L1_error) } #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS if (likely(PyTuple_CheckExact(sequence))) { @@ -11584,22 +11521,22 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_initial_checks(int __pyx_v_i __Pyx_INCREF(__pyx_t_9); } else { __pyx_t_4 = __Pyx_PyList_GetItemRefFast(sequence, 0, __Pyx_ReferenceSharing_SharedReference); - if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 626, __pyx_L1_error) + if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 618, __pyx_L1_error) __Pyx_XGOTREF(__pyx_t_4); __pyx_t_9 = __Pyx_PyList_GetItemRefFast(sequence, 1, __Pyx_ReferenceSharing_SharedReference); - if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 626, __pyx_L1_error) + if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 618, __pyx_L1_error) __Pyx_XGOTREF(__pyx_t_9); } #else - __pyx_t_4 = __Pyx_PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 626, __pyx_L1_error) + __pyx_t_4 = __Pyx_PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 618, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_9 = __Pyx_PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 626, __pyx_L1_error) + __pyx_t_9 = __Pyx_PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 618, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); #endif __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } else { Py_ssize_t index = -1; - __pyx_t_10 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 626, __pyx_L1_error) + __pyx_t_10 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 618, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_11 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_10); @@ -11607,7 +11544,7 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_initial_checks(int __pyx_v_i __Pyx_GOTREF(__pyx_t_4); index = 1; __pyx_t_9 = __pyx_t_11(__pyx_t_10); if (unlikely(!__pyx_t_9)) goto __pyx_L9_unpacking_failed; __Pyx_GOTREF(__pyx_t_9); - if (__Pyx_IternextUnpackEndCheck(__pyx_t_11(__pyx_t_10), 2) < (0)) __PYX_ERR(0, 626, __pyx_L1_error) + if (__Pyx_IternextUnpackEndCheck(__pyx_t_11(__pyx_t_10), 2) < (0)) __PYX_ERR(0, 618, __pyx_L1_error) __pyx_t_11 = NULL; __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; goto __pyx_L10_unpacking_done; @@ -11615,7 +11552,7 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_initial_checks(int __pyx_v_i __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_t_11 = NULL; if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); - __PYX_ERR(0, 626, __pyx_L1_error) + __PYX_ERR(0, 618, __pyx_L1_error) __pyx_L10_unpacking_done:; } __Pyx_XDECREF_SET(__pyx_v_k, __pyx_t_4); @@ -11623,42 +11560,42 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_initial_checks(int __pyx_v_i __Pyx_XDECREF_SET(__pyx_v_v, __pyx_t_9); __pyx_t_9 = 0; - /* "pyreadstat/_readstat_writer.pyx":627 + /* "pyreadstat/_readstat_writer.pyx":619 * if variable_value_labels: * for k,v in variable_value_labels.items(): * if type(v) != dict: # <<<<<<<<<<<<<< * msg = "variable_value_labels: value for key %s must be dict, got %s" % (k, str(type(v))) * raise PyreadstatError(msg) */ - __pyx_t_3 = PyObject_RichCompare(((PyObject *)Py_TYPE(__pyx_v_v)), ((PyObject *)(&PyDict_Type)), Py_NE); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 627, __pyx_L1_error) - __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 627, __pyx_L1_error) + __pyx_t_3 = PyObject_RichCompare(((PyObject *)Py_TYPE(__pyx_v_v)), ((PyObject *)(&PyDict_Type)), Py_NE); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 619, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 619, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(__pyx_t_1)) { - /* "pyreadstat/_readstat_writer.pyx":628 + /* "pyreadstat/_readstat_writer.pyx":620 * for k,v in variable_value_labels.items(): * if type(v) != dict: * msg = "variable_value_labels: value for key %s must be dict, got %s" % (k, str(type(v))) # <<<<<<<<<<<<<< * raise PyreadstatError(msg) * */ - __pyx_t_3 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Str(__pyx_v_k), __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 628, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Str(__pyx_v_k), __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 620, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_9 = __Pyx_PyObject_Unicode(((PyObject *)Py_TYPE(__pyx_v_v))); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 628, __pyx_L1_error) + __pyx_t_9 = __Pyx_PyObject_Unicode(((PyObject *)Py_TYPE(__pyx_v_v))); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 620, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_12[0] = __pyx_mstate_global->__pyx_kp_u_variable_value_labels_value_for; __pyx_t_12[1] = __pyx_t_3; __pyx_t_12[2] = __pyx_mstate_global->__pyx_kp_u_must_be_dict_got; __pyx_t_12[3] = __pyx_t_9; __pyx_t_4 = __Pyx_PyUnicode_Join(__pyx_t_12, 4, 37 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_3) + 19 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_9), 127 | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_3) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_9)); - if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 628, __pyx_L1_error) + if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 620, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_v_msg = ((PyObject*)__pyx_t_4); __pyx_t_4 = 0; - /* "pyreadstat/_readstat_writer.pyx":629 + /* "pyreadstat/_readstat_writer.pyx":621 * if type(v) != dict: * msg = "variable_value_labels: value for key %s must be dict, got %s" % (k, str(type(v))) * raise PyreadstatError(msg) # <<<<<<<<<<<<<< @@ -11666,7 +11603,7 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_initial_checks(int __pyx_v_i * cdef list valid_user_missing */ __pyx_t_9 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 629, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 621, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_6 = 1; #if CYTHON_UNPACK_METHODS @@ -11685,14 +11622,14 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_initial_checks(int __pyx_v_i __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_3, __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 629, __pyx_L1_error) + if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 621, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); } __Pyx_Raise(__pyx_t_4, 0, 0, 0); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __PYX_ERR(0, 629, __pyx_L1_error) + __PYX_ERR(0, 621, __pyx_L1_error) - /* "pyreadstat/_readstat_writer.pyx":627 + /* "pyreadstat/_readstat_writer.pyx":619 * if variable_value_labels: * for k,v in variable_value_labels.items(): * if type(v) != dict: # <<<<<<<<<<<<<< @@ -11701,7 +11638,7 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_initial_checks(int __pyx_v_i */ } - /* "pyreadstat/_readstat_writer.pyx":626 + /* "pyreadstat/_readstat_writer.pyx":618 * * if variable_value_labels: * for k,v in variable_value_labels.items(): # <<<<<<<<<<<<<< @@ -11711,7 +11648,7 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_initial_checks(int __pyx_v_i } __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - /* "pyreadstat/_readstat_writer.pyx":625 + /* "pyreadstat/_readstat_writer.pyx":617 * raise PyreadstatError(msg) * * if variable_value_labels: # <<<<<<<<<<<<<< @@ -11720,17 +11657,17 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_initial_checks(int __pyx_v_i */ } - /* "pyreadstat/_readstat_writer.pyx":632 + /* "pyreadstat/_readstat_writer.pyx":624 * * cdef list valid_user_missing * if missing_user_values: # <<<<<<<<<<<<<< * if file_format == FILE_FORMAT_DTA: * valid_user_missing = valid_user_missing_stata */ - __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_missing_user_values); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 632, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_missing_user_values); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 624, __pyx_L1_error) if (__pyx_t_1) { - /* "pyreadstat/_readstat_writer.pyx":633 + /* "pyreadstat/_readstat_writer.pyx":625 * cdef list valid_user_missing * if missing_user_values: * if file_format == FILE_FORMAT_DTA: # <<<<<<<<<<<<<< @@ -11740,7 +11677,7 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_initial_checks(int __pyx_v_i switch (__pyx_v_file_format) { case __pyx_e_10pyreadstat_16_readstat_writer_FILE_FORMAT_DTA: - /* "pyreadstat/_readstat_writer.pyx":634 + /* "pyreadstat/_readstat_writer.pyx":626 * if missing_user_values: * if file_format == FILE_FORMAT_DTA: * valid_user_missing = valid_user_missing_stata # <<<<<<<<<<<<<< @@ -11749,11 +11686,11 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_initial_checks(int __pyx_v_i */ __pyx_t_5 = __pyx_v_10pyreadstat_16_readstat_writer_valid_user_missing_stata; __Pyx_INCREF(__pyx_t_5); - if (!(likely(PyList_CheckExact(__pyx_t_5))||((__pyx_t_5) == Py_None) || __Pyx_RaiseUnexpectedTypeError("list", __pyx_t_5))) __PYX_ERR(0, 634, __pyx_L1_error) + if (!(likely(PyList_CheckExact(__pyx_t_5))||((__pyx_t_5) == Py_None) || __Pyx_RaiseUnexpectedTypeError("list", __pyx_t_5))) __PYX_ERR(0, 626, __pyx_L1_error) __pyx_v_valid_user_missing = ((PyObject*)__pyx_t_5); __pyx_t_5 = 0; - /* "pyreadstat/_readstat_writer.pyx":633 + /* "pyreadstat/_readstat_writer.pyx":625 * cdef list valid_user_missing * if missing_user_values: * if file_format == FILE_FORMAT_DTA: # <<<<<<<<<<<<<< @@ -11763,7 +11700,7 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_initial_checks(int __pyx_v_i break; case __pyx_e_10pyreadstat_16_readstat_writer_FILE_FORMAT_SAS7BDAT: - /* "pyreadstat/_readstat_writer.pyx":635 + /* "pyreadstat/_readstat_writer.pyx":627 * if file_format == FILE_FORMAT_DTA: * valid_user_missing = valid_user_missing_stata * elif file_format == FILE_FORMAT_SAS7BDAT or file_format == FILE_FORMAT_SAS7BCAT: # <<<<<<<<<<<<<< @@ -11772,7 +11709,7 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_initial_checks(int __pyx_v_i */ case __pyx_e_10pyreadstat_16_readstat_writer_FILE_FORMAT_SAS7BCAT: - /* "pyreadstat/_readstat_writer.pyx":636 + /* "pyreadstat/_readstat_writer.pyx":628 * valid_user_missing = valid_user_missing_stata * elif file_format == FILE_FORMAT_SAS7BDAT or file_format == FILE_FORMAT_SAS7BCAT: * valid_user_missing = valid_user_missing_sas # <<<<<<<<<<<<<< @@ -11781,11 +11718,11 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_initial_checks(int __pyx_v_i */ __pyx_t_5 = __pyx_v_10pyreadstat_16_readstat_writer_valid_user_missing_sas; __Pyx_INCREF(__pyx_t_5); - if (!(likely(PyList_CheckExact(__pyx_t_5))||((__pyx_t_5) == Py_None) || __Pyx_RaiseUnexpectedTypeError("list", __pyx_t_5))) __PYX_ERR(0, 636, __pyx_L1_error) + if (!(likely(PyList_CheckExact(__pyx_t_5))||((__pyx_t_5) == Py_None) || __Pyx_RaiseUnexpectedTypeError("list", __pyx_t_5))) __PYX_ERR(0, 628, __pyx_L1_error) __pyx_v_valid_user_missing = ((PyObject*)__pyx_t_5); __pyx_t_5 = 0; - /* "pyreadstat/_readstat_writer.pyx":635 + /* "pyreadstat/_readstat_writer.pyx":627 * if file_format == FILE_FORMAT_DTA: * valid_user_missing = valid_user_missing_stata * elif file_format == FILE_FORMAT_SAS7BDAT or file_format == FILE_FORMAT_SAS7BCAT: # <<<<<<<<<<<<<< @@ -11796,7 +11733,7 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_initial_checks(int __pyx_v_i default: break; } - /* "pyreadstat/_readstat_writer.pyx":638 + /* "pyreadstat/_readstat_writer.pyx":630 * valid_user_missing = valid_user_missing_sas * * for key, missing_values in missing_user_values.items(): # <<<<<<<<<<<<<< @@ -11805,18 +11742,18 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_initial_checks(int __pyx_v_i */ if (unlikely(__pyx_v_missing_user_values == Py_None)) { PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "items"); - __PYX_ERR(0, 638, __pyx_L1_error) + __PYX_ERR(0, 630, __pyx_L1_error) } - __pyx_t_5 = __Pyx_PyDict_Items(__pyx_v_missing_user_values); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 638, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyDict_Items(__pyx_v_missing_user_values); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 630, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (likely(PyList_CheckExact(__pyx_t_5)) || PyTuple_CheckExact(__pyx_t_5)) { __pyx_t_4 = __pyx_t_5; __Pyx_INCREF(__pyx_t_4); __pyx_t_7 = 0; __pyx_t_8 = NULL; } else { - __pyx_t_7 = -1; __pyx_t_4 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 638, __pyx_L1_error) + __pyx_t_7 = -1; __pyx_t_4 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 630, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_8 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_4); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 638, __pyx_L1_error) + __pyx_t_8 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_4); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 630, __pyx_L1_error) } __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; for (;;) { @@ -11825,7 +11762,7 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_initial_checks(int __pyx_v_i { Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_4); #if !CYTHON_ASSUME_SAFE_SIZE - if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 638, __pyx_L1_error) + if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 630, __pyx_L1_error) #endif if (__pyx_t_7 >= __pyx_temp) break; } @@ -11835,7 +11772,7 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_initial_checks(int __pyx_v_i { Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_4); #if !CYTHON_ASSUME_SAFE_SIZE - if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 638, __pyx_L1_error) + if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 630, __pyx_L1_error) #endif if (__pyx_t_7 >= __pyx_temp) break; } @@ -11846,13 +11783,13 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_initial_checks(int __pyx_v_i #endif ++__pyx_t_7; } - if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 638, __pyx_L1_error) + if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 630, __pyx_L1_error) } else { __pyx_t_5 = __pyx_t_8(__pyx_t_4); if (unlikely(!__pyx_t_5)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { - if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(0, 638, __pyx_L1_error) + if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(0, 630, __pyx_L1_error) PyErr_Clear(); } break; @@ -11865,7 +11802,7 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_initial_checks(int __pyx_v_i if (unlikely(size != 2)) { if (size > 2) __Pyx_RaiseTooManyValuesError(2); else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); - __PYX_ERR(0, 638, __pyx_L1_error) + __PYX_ERR(0, 630, __pyx_L1_error) } #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS if (likely(PyTuple_CheckExact(sequence))) { @@ -11875,22 +11812,22 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_initial_checks(int __pyx_v_i __Pyx_INCREF(__pyx_t_9); } else { __pyx_t_3 = __Pyx_PyList_GetItemRefFast(sequence, 0, __Pyx_ReferenceSharing_SharedReference); - if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 638, __pyx_L1_error) + if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 630, __pyx_L1_error) __Pyx_XGOTREF(__pyx_t_3); __pyx_t_9 = __Pyx_PyList_GetItemRefFast(sequence, 1, __Pyx_ReferenceSharing_SharedReference); - if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 638, __pyx_L1_error) + if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 630, __pyx_L1_error) __Pyx_XGOTREF(__pyx_t_9); } #else - __pyx_t_3 = __Pyx_PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 638, __pyx_L1_error) + __pyx_t_3 = __Pyx_PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 630, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_9 = __Pyx_PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 638, __pyx_L1_error) + __pyx_t_9 = __Pyx_PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 630, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); #endif __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } else { Py_ssize_t index = -1; - __pyx_t_10 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 638, __pyx_L1_error) + __pyx_t_10 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 630, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_11 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_10); @@ -11898,7 +11835,7 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_initial_checks(int __pyx_v_i __Pyx_GOTREF(__pyx_t_3); index = 1; __pyx_t_9 = __pyx_t_11(__pyx_t_10); if (unlikely(!__pyx_t_9)) goto __pyx_L16_unpacking_failed; __Pyx_GOTREF(__pyx_t_9); - if (__Pyx_IternextUnpackEndCheck(__pyx_t_11(__pyx_t_10), 2) < (0)) __PYX_ERR(0, 638, __pyx_L1_error) + if (__Pyx_IternextUnpackEndCheck(__pyx_t_11(__pyx_t_10), 2) < (0)) __PYX_ERR(0, 630, __pyx_L1_error) __pyx_t_11 = NULL; __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; goto __pyx_L17_unpacking_done; @@ -11906,7 +11843,7 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_initial_checks(int __pyx_v_i __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_t_11 = NULL; if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); - __PYX_ERR(0, 638, __pyx_L1_error) + __PYX_ERR(0, 630, __pyx_L1_error) __pyx_L17_unpacking_done:; } __Pyx_XDECREF_SET(__pyx_v_key, __pyx_t_3); @@ -11914,7 +11851,7 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_initial_checks(int __pyx_v_i __Pyx_XDECREF_SET(__pyx_v_missing_values, __pyx_t_9); __pyx_t_9 = 0; - /* "pyreadstat/_readstat_writer.pyx":639 + /* "pyreadstat/_readstat_writer.pyx":631 * * for key, missing_values in missing_user_values.items(): * if not isinstance(missing_values, list): # <<<<<<<<<<<<<< @@ -11925,7 +11862,7 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_initial_checks(int __pyx_v_i __pyx_t_2 = (!__pyx_t_1); if (unlikely(__pyx_t_2)) { - /* "pyreadstat/_readstat_writer.pyx":640 + /* "pyreadstat/_readstat_writer.pyx":632 * for key, missing_values in missing_user_values.items(): * if not isinstance(missing_values, list): * msg = "missing_user_values: values in dictionary must be list" # <<<<<<<<<<<<<< @@ -11935,7 +11872,7 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_initial_checks(int __pyx_v_i __Pyx_INCREF(__pyx_mstate_global->__pyx_kp_u_missing_user_values_values_in_di); __pyx_v_msg = __pyx_mstate_global->__pyx_kp_u_missing_user_values_values_in_di; - /* "pyreadstat/_readstat_writer.pyx":641 + /* "pyreadstat/_readstat_writer.pyx":633 * if not isinstance(missing_values, list): * msg = "missing_user_values: values in dictionary must be list" * raise PyreadstatError(msg) # <<<<<<<<<<<<<< @@ -11943,7 +11880,7 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_initial_checks(int __pyx_v_i * if val not in valid_user_missing: */ __pyx_t_9 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 641, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 633, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_6 = 1; #if CYTHON_UNPACK_METHODS @@ -11962,14 +11899,14 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_initial_checks(int __pyx_v_i __pyx_t_5 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_3, __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 641, __pyx_L1_error) + if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 633, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); } __Pyx_Raise(__pyx_t_5, 0, 0, 0); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __PYX_ERR(0, 641, __pyx_L1_error) + __PYX_ERR(0, 633, __pyx_L1_error) - /* "pyreadstat/_readstat_writer.pyx":639 + /* "pyreadstat/_readstat_writer.pyx":631 * * for key, missing_values in missing_user_values.items(): * if not isinstance(missing_values, list): # <<<<<<<<<<<<<< @@ -11978,7 +11915,7 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_initial_checks(int __pyx_v_i */ } - /* "pyreadstat/_readstat_writer.pyx":642 + /* "pyreadstat/_readstat_writer.pyx":634 * msg = "missing_user_values: values in dictionary must be list" * raise PyreadstatError(msg) * for val in missing_values: # <<<<<<<<<<<<<< @@ -11990,9 +11927,9 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_initial_checks(int __pyx_v_i __pyx_t_13 = 0; __pyx_t_14 = NULL; } else { - __pyx_t_13 = -1; __pyx_t_5 = PyObject_GetIter(__pyx_v_missing_values); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 642, __pyx_L1_error) + __pyx_t_13 = -1; __pyx_t_5 = PyObject_GetIter(__pyx_v_missing_values); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 634, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); - __pyx_t_14 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_5); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 642, __pyx_L1_error) + __pyx_t_14 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_5); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 634, __pyx_L1_error) } for (;;) { if (likely(!__pyx_t_14)) { @@ -12000,7 +11937,7 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_initial_checks(int __pyx_v_i { Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_5); #if !CYTHON_ASSUME_SAFE_SIZE - if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 642, __pyx_L1_error) + if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 634, __pyx_L1_error) #endif if (__pyx_t_13 >= __pyx_temp) break; } @@ -12010,7 +11947,7 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_initial_checks(int __pyx_v_i { Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_5); #if !CYTHON_ASSUME_SAFE_SIZE - if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 642, __pyx_L1_error) + if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 634, __pyx_L1_error) #endif if (__pyx_t_13 >= __pyx_temp) break; } @@ -12021,13 +11958,13 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_initial_checks(int __pyx_v_i #endif ++__pyx_t_13; } - if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 642, __pyx_L1_error) + if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 634, __pyx_L1_error) } else { __pyx_t_3 = __pyx_t_14(__pyx_t_5); if (unlikely(!__pyx_t_3)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { - if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(0, 642, __pyx_L1_error) + if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(0, 634, __pyx_L1_error) PyErr_Clear(); } break; @@ -12037,33 +11974,33 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_initial_checks(int __pyx_v_i __Pyx_XDECREF_SET(__pyx_v_val, __pyx_t_3); __pyx_t_3 = 0; - /* "pyreadstat/_readstat_writer.pyx":643 + /* "pyreadstat/_readstat_writer.pyx":635 * raise PyreadstatError(msg) * for val in missing_values: * if val not in valid_user_missing: # <<<<<<<<<<<<<< * msg = "missing_user_values supports values a to z for Stata and A to Z and _ for SAS, got %s instead" % str(val) * raise PyreadstatError(msg) */ - if (unlikely(!__pyx_v_valid_user_missing)) { __Pyx_RaiseUnboundLocalError("valid_user_missing"); __PYX_ERR(0, 643, __pyx_L1_error) } - __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_v_val, __pyx_v_valid_user_missing, Py_NE)); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 643, __pyx_L1_error) + if (unlikely(!__pyx_v_valid_user_missing)) { __Pyx_RaiseUnboundLocalError("valid_user_missing"); __PYX_ERR(0, 635, __pyx_L1_error) } + __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_v_val, __pyx_v_valid_user_missing, Py_NE)); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 635, __pyx_L1_error) if (unlikely(__pyx_t_2)) { - /* "pyreadstat/_readstat_writer.pyx":644 + /* "pyreadstat/_readstat_writer.pyx":636 * for val in missing_values: * if val not in valid_user_missing: * msg = "missing_user_values supports values a to z for Stata and A to Z and _ for SAS, got %s instead" % str(val) # <<<<<<<<<<<<<< * raise PyreadstatError(msg) * */ - __pyx_t_3 = __Pyx_PyObject_Unicode(__pyx_v_val); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 644, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_Unicode(__pyx_v_val); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 636, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_9 = PyUnicode_Format(__pyx_mstate_global->__pyx_kp_u_missing_user_values_supports_val, __pyx_t_3); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 644, __pyx_L1_error) + __pyx_t_9 = PyUnicode_Format(__pyx_mstate_global->__pyx_kp_u_missing_user_values_supports_val, __pyx_t_3); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 636, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_v_msg = ((PyObject*)__pyx_t_9); __pyx_t_9 = 0; - /* "pyreadstat/_readstat_writer.pyx":645 + /* "pyreadstat/_readstat_writer.pyx":637 * if val not in valid_user_missing: * msg = "missing_user_values supports values a to z for Stata and A to Z and _ for SAS, got %s instead" % str(val) * raise PyreadstatError(msg) # <<<<<<<<<<<<<< @@ -12071,7 +12008,7 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_initial_checks(int __pyx_v_i * if len(col_names) != len(set(col_names)): */ __pyx_t_3 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 645, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 637, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __pyx_t_6 = 1; #if CYTHON_UNPACK_METHODS @@ -12090,14 +12027,14 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_initial_checks(int __pyx_v_i __pyx_t_9 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_10, __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 645, __pyx_L1_error) + if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 637, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); } __Pyx_Raise(__pyx_t_9, 0, 0, 0); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __PYX_ERR(0, 645, __pyx_L1_error) + __PYX_ERR(0, 637, __pyx_L1_error) - /* "pyreadstat/_readstat_writer.pyx":643 + /* "pyreadstat/_readstat_writer.pyx":635 * raise PyreadstatError(msg) * for val in missing_values: * if val not in valid_user_missing: # <<<<<<<<<<<<<< @@ -12106,7 +12043,7 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_initial_checks(int __pyx_v_i */ } - /* "pyreadstat/_readstat_writer.pyx":642 + /* "pyreadstat/_readstat_writer.pyx":634 * msg = "missing_user_values: values in dictionary must be list" * raise PyreadstatError(msg) * for val in missing_values: # <<<<<<<<<<<<<< @@ -12116,7 +12053,7 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_initial_checks(int __pyx_v_i } __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - /* "pyreadstat/_readstat_writer.pyx":638 + /* "pyreadstat/_readstat_writer.pyx":630 * valid_user_missing = valid_user_missing_sas * * for key, missing_values in missing_user_values.items(): # <<<<<<<<<<<<<< @@ -12126,7 +12063,7 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_initial_checks(int __pyx_v_i } __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - /* "pyreadstat/_readstat_writer.pyx":632 + /* "pyreadstat/_readstat_writer.pyx":624 * * cdef list valid_user_missing * if missing_user_values: # <<<<<<<<<<<<<< @@ -12135,7 +12072,7 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_initial_checks(int __pyx_v_i */ } - /* "pyreadstat/_readstat_writer.pyx":647 + /* "pyreadstat/_readstat_writer.pyx":639 * raise PyreadstatError(msg) * * if len(col_names) != len(set(col_names)): # <<<<<<<<<<<<<< @@ -12144,17 +12081,17 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_initial_checks(int __pyx_v_i */ if (unlikely(__pyx_v_col_names == Py_None)) { PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()"); - __PYX_ERR(0, 647, __pyx_L1_error) + __PYX_ERR(0, 639, __pyx_L1_error) } - __pyx_t_7 = __Pyx_PyList_GET_SIZE(__pyx_v_col_names); if (unlikely(__pyx_t_7 == ((Py_ssize_t)-1))) __PYX_ERR(0, 647, __pyx_L1_error) - __pyx_t_4 = PySet_New(__pyx_v_col_names); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 647, __pyx_L1_error) + __pyx_t_7 = __Pyx_PyList_GET_SIZE(__pyx_v_col_names); if (unlikely(__pyx_t_7 == ((Py_ssize_t)-1))) __PYX_ERR(0, 639, __pyx_L1_error) + __pyx_t_4 = PySet_New(__pyx_v_col_names); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 639, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_13 = __Pyx_PySet_GET_SIZE(__pyx_t_4); if (unlikely(__pyx_t_13 == ((Py_ssize_t)-1))) __PYX_ERR(0, 647, __pyx_L1_error) + __pyx_t_13 = __Pyx_PySet_GET_SIZE(__pyx_t_4); if (unlikely(__pyx_t_13 == ((Py_ssize_t)-1))) __PYX_ERR(0, 639, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_2 = (__pyx_t_7 != __pyx_t_13); if (unlikely(__pyx_t_2)) { - /* "pyreadstat/_readstat_writer.pyx":648 + /* "pyreadstat/_readstat_writer.pyx":640 * * if len(col_names) != len(set(col_names)): * msg = "Non unique column names detected in the dataframe!" # <<<<<<<<<<<<<< @@ -12164,7 +12101,7 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_initial_checks(int __pyx_v_i __Pyx_INCREF(__pyx_mstate_global->__pyx_kp_u_Non_unique_column_names_detected); __pyx_v_msg = __pyx_mstate_global->__pyx_kp_u_Non_unique_column_names_detected; - /* "pyreadstat/_readstat_writer.pyx":649 + /* "pyreadstat/_readstat_writer.pyx":641 * if len(col_names) != len(set(col_names)): * msg = "Non unique column names detected in the dataframe!" * raise PyreadstatError(msg) # <<<<<<<<<<<<<< @@ -12172,7 +12109,7 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_initial_checks(int __pyx_v_i * for variable_name in col_names: */ __pyx_t_5 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 649, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 641, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_6 = 1; #if CYTHON_UNPACK_METHODS @@ -12191,14 +12128,14 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_initial_checks(int __pyx_v_i __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_9, __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 649, __pyx_L1_error) + if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 641, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); } __Pyx_Raise(__pyx_t_4, 0, 0, 0); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __PYX_ERR(0, 649, __pyx_L1_error) + __PYX_ERR(0, 641, __pyx_L1_error) - /* "pyreadstat/_readstat_writer.pyx":647 + /* "pyreadstat/_readstat_writer.pyx":639 * raise PyreadstatError(msg) * * if len(col_names) != len(set(col_names)): # <<<<<<<<<<<<<< @@ -12207,7 +12144,7 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_initial_checks(int __pyx_v_i */ } - /* "pyreadstat/_readstat_writer.pyx":651 + /* "pyreadstat/_readstat_writer.pyx":643 * raise PyreadstatError(msg) * * for variable_name in col_names: # <<<<<<<<<<<<<< @@ -12216,7 +12153,7 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_initial_checks(int __pyx_v_i */ if (unlikely(__pyx_v_col_names == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable"); - __PYX_ERR(0, 651, __pyx_L1_error) + __PYX_ERR(0, 643, __pyx_L1_error) } __pyx_t_4 = __pyx_v_col_names; __Pyx_INCREF(__pyx_t_4); __pyx_t_13 = 0; @@ -12224,30 +12161,30 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_initial_checks(int __pyx_v_i { Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_4); #if !CYTHON_ASSUME_SAFE_SIZE - if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 651, __pyx_L1_error) + if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 643, __pyx_L1_error) #endif if (__pyx_t_13 >= __pyx_temp) break; } __pyx_t_9 = __Pyx_PyList_GetItemRefFast(__pyx_t_4, __pyx_t_13, __Pyx_ReferenceSharing_OwnStrongReference); ++__pyx_t_13; - if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 651, __pyx_L1_error) + if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 643, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_XDECREF_SET(__pyx_v_variable_name, __pyx_t_9); __pyx_t_9 = 0; - /* "pyreadstat/_readstat_writer.pyx":652 + /* "pyreadstat/_readstat_writer.pyx":644 * * for variable_name in col_names: * if type(variable_name) != str: # <<<<<<<<<<<<<< * raise PyreadstatError("variable name '%s' is of type %s and it must be str (not starting with numbers!)" % (variable_name, str(type(variable_name)))) * if len(variable_name) == 0: */ - __pyx_t_9 = PyObject_RichCompare(((PyObject *)Py_TYPE(__pyx_v_variable_name)), ((PyObject *)(&PyUnicode_Type)), Py_NE); __Pyx_XGOTREF(__pyx_t_9); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 652, __pyx_L1_error) - __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_9); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 652, __pyx_L1_error) + __pyx_t_9 = PyObject_RichCompare(((PyObject *)Py_TYPE(__pyx_v_variable_name)), ((PyObject *)(&PyUnicode_Type)), Py_NE); __Pyx_XGOTREF(__pyx_t_9); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 644, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_9); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 644, __pyx_L1_error) __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; if (unlikely(__pyx_t_2)) { - /* "pyreadstat/_readstat_writer.pyx":653 + /* "pyreadstat/_readstat_writer.pyx":645 * for variable_name in col_names: * if type(variable_name) != str: * raise PyreadstatError("variable name '%s' is of type %s and it must be str (not starting with numbers!)" % (variable_name, str(type(variable_name)))) # <<<<<<<<<<<<<< @@ -12255,11 +12192,11 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_initial_checks(int __pyx_v_i * raise PyreadstatError("variable names must be non-empty strings, not starting with numbers") */ __pyx_t_5 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 653, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 645, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); - __pyx_t_3 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Str(__pyx_v_variable_name), __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 653, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Str(__pyx_v_variable_name), __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 645, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_15 = __Pyx_PyObject_Unicode(((PyObject *)Py_TYPE(__pyx_v_variable_name))); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 653, __pyx_L1_error) + __pyx_t_15 = __Pyx_PyObject_Unicode(((PyObject *)Py_TYPE(__pyx_v_variable_name))); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 645, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __pyx_t_16[0] = __pyx_mstate_global->__pyx_kp_u_variable_name; __pyx_t_16[1] = __pyx_t_3; @@ -12267,7 +12204,7 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_initial_checks(int __pyx_v_i __pyx_t_16[3] = __pyx_t_15; __pyx_t_16[4] = __pyx_mstate_global->__pyx_kp_u_and_it_must_be_str_not_starting; __pyx_t_17 = __Pyx_PyUnicode_Join(__pyx_t_16, 5, 15 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_3) + 13 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_15) + 48, 127 | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_3) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_15)); - if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 653, __pyx_L1_error) + if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 645, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_17); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; @@ -12289,14 +12226,14 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_initial_checks(int __pyx_v_i __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0; __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 653, __pyx_L1_error) + if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 645, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); } __Pyx_Raise(__pyx_t_9, 0, 0, 0); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __PYX_ERR(0, 653, __pyx_L1_error) + __PYX_ERR(0, 645, __pyx_L1_error) - /* "pyreadstat/_readstat_writer.pyx":652 + /* "pyreadstat/_readstat_writer.pyx":644 * * for variable_name in col_names: * if type(variable_name) != str: # <<<<<<<<<<<<<< @@ -12305,26 +12242,26 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_initial_checks(int __pyx_v_i */ } - /* "pyreadstat/_readstat_writer.pyx":654 + /* "pyreadstat/_readstat_writer.pyx":646 * if type(variable_name) != str: * raise PyreadstatError("variable name '%s' is of type %s and it must be str (not starting with numbers!)" % (variable_name, str(type(variable_name)))) * if len(variable_name) == 0: # <<<<<<<<<<<<<< * raise PyreadstatError("variable names must be non-empty strings, not starting with numbers") - * if not variable_name[0].isalpha(): + * if not (variable_name[0].isalpha() or variable_name[0] == "_"): */ - __pyx_t_7 = PyObject_Length(__pyx_v_variable_name); if (unlikely(__pyx_t_7 == ((Py_ssize_t)-1))) __PYX_ERR(0, 654, __pyx_L1_error) + __pyx_t_7 = PyObject_Length(__pyx_v_variable_name); if (unlikely(__pyx_t_7 == ((Py_ssize_t)-1))) __PYX_ERR(0, 646, __pyx_L1_error) __pyx_t_2 = (__pyx_t_7 == 0); if (unlikely(__pyx_t_2)) { - /* "pyreadstat/_readstat_writer.pyx":655 + /* "pyreadstat/_readstat_writer.pyx":647 * raise PyreadstatError("variable name '%s' is of type %s and it must be str (not starting with numbers!)" % (variable_name, str(type(variable_name)))) * if len(variable_name) == 0: * raise PyreadstatError("variable names must be non-empty strings, not starting with numbers") # <<<<<<<<<<<<<< - * if not variable_name[0].isalpha(): - * raise PyreadstatError("variable name '%s' starts with an illegal (non-alphabetic) character: '%s' (ordinal %s)" % (variable_name, variable_name[0], ord(variable_name[0]))) + * if not (variable_name[0].isalpha() or variable_name[0] == "_"): + * raise PyreadstatError("variable name '%s' starts with an illegal (neither alphabetic nor an underscore) character: '%s' (ordinal %s)" % (variable_name, variable_name[0], ord(variable_name[0]))) */ __pyx_t_10 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_17, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 655, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_17, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 647, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_17); __pyx_t_6 = 1; #if CYTHON_UNPACK_METHODS @@ -12343,30 +12280,30 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_initial_checks(int __pyx_v_i __pyx_t_9 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_17, __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0; - if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 655, __pyx_L1_error) + if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 647, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); } __Pyx_Raise(__pyx_t_9, 0, 0, 0); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __PYX_ERR(0, 655, __pyx_L1_error) + __PYX_ERR(0, 647, __pyx_L1_error) - /* "pyreadstat/_readstat_writer.pyx":654 + /* "pyreadstat/_readstat_writer.pyx":646 * if type(variable_name) != str: * raise PyreadstatError("variable name '%s' is of type %s and it must be str (not starting with numbers!)" % (variable_name, str(type(variable_name)))) * if len(variable_name) == 0: # <<<<<<<<<<<<<< * raise PyreadstatError("variable names must be non-empty strings, not starting with numbers") - * if not variable_name[0].isalpha(): + * if not (variable_name[0].isalpha() or variable_name[0] == "_"): */ } - /* "pyreadstat/_readstat_writer.pyx":656 + /* "pyreadstat/_readstat_writer.pyx":648 * if len(variable_name) == 0: * raise PyreadstatError("variable names must be non-empty strings, not starting with numbers") - * if not variable_name[0].isalpha(): # <<<<<<<<<<<<<< - * raise PyreadstatError("variable name '%s' starts with an illegal (non-alphabetic) character: '%s' (ordinal %s)" % (variable_name, variable_name[0], ord(variable_name[0]))) + * if not (variable_name[0].isalpha() or variable_name[0] == "_"): # <<<<<<<<<<<<<< + * raise PyreadstatError("variable name '%s' starts with an illegal (neither alphabetic nor an underscore) character: '%s' (ordinal %s)" % (variable_name, variable_name[0], ord(variable_name[0]))) * if " " in variable_name: */ - __pyx_t_10 = __Pyx_GetItemInt(__pyx_v_variable_name, 0, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_OwnStrongReference); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 656, __pyx_L1_error) + __pyx_t_10 = __Pyx_GetItemInt(__pyx_v_variable_name, 0, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_OwnStrongReference); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 648, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __pyx_t_17 = __pyx_t_10; __Pyx_INCREF(__pyx_t_17); @@ -12376,46 +12313,57 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_initial_checks(int __pyx_v_i __pyx_t_9 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_isalpha, __pyx_callargs+__pyx_t_6, (1-__pyx_t_6) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_17); __pyx_t_17 = 0; __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 656, __pyx_L1_error) + if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 648, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); } - __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_9); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 656, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_9); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 648, __pyx_L1_error) __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + if (!__pyx_t_1) { + } else { + __pyx_t_2 = __pyx_t_1; + goto __pyx_L30_bool_binop_done; + } + __pyx_t_9 = __Pyx_GetItemInt(__pyx_v_variable_name, 0, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_OwnStrongReference); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 648, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_, Py_EQ)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 648, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __pyx_t_2 = __pyx_t_1; + __pyx_L30_bool_binop_done:; __pyx_t_1 = (!__pyx_t_2); if (unlikely(__pyx_t_1)) { - /* "pyreadstat/_readstat_writer.pyx":657 + /* "pyreadstat/_readstat_writer.pyx":649 * raise PyreadstatError("variable names must be non-empty strings, not starting with numbers") - * if not variable_name[0].isalpha(): - * raise PyreadstatError("variable name '%s' starts with an illegal (non-alphabetic) character: '%s' (ordinal %s)" % (variable_name, variable_name[0], ord(variable_name[0]))) # <<<<<<<<<<<<<< + * if not (variable_name[0].isalpha() or variable_name[0] == "_"): + * raise PyreadstatError("variable name '%s' starts with an illegal (neither alphabetic nor an underscore) character: '%s' (ordinal %s)" % (variable_name, variable_name[0], ord(variable_name[0]))) # <<<<<<<<<<<<<< * if " " in variable_name: * raise PyreadstatError("variable name '%s' contains a space, which is not allowed" % variable_name) */ __pyx_t_10 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_17, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 657, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_17, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 649, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_17); - __pyx_t_5 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Str(__pyx_v_variable_name), __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 657, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Str(__pyx_v_variable_name), __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 649, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); - __pyx_t_15 = __Pyx_GetItemInt(__pyx_v_variable_name, 0, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_OwnStrongReference); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 657, __pyx_L1_error) + __pyx_t_15 = __Pyx_GetItemInt(__pyx_v_variable_name, 0, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_OwnStrongReference); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 649, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); - __pyx_t_3 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Str(__pyx_t_15), __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 657, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Str(__pyx_t_15), __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 649, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; - __pyx_t_15 = __Pyx_GetItemInt(__pyx_v_variable_name, 0, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_OwnStrongReference); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 657, __pyx_L1_error) + __pyx_t_15 = __Pyx_GetItemInt(__pyx_v_variable_name, 0, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_OwnStrongReference); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 649, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); - __pyx_t_18 = __Pyx_PyObject_Ord(__pyx_t_15); if (unlikely(__pyx_t_18 == ((long)(long)(Py_UCS4)-1))) __PYX_ERR(0, 657, __pyx_L1_error) + __pyx_t_18 = __Pyx_PyObject_Ord(__pyx_t_15); if (unlikely(__pyx_t_18 == ((long)(long)(Py_UCS4)-1))) __PYX_ERR(0, 649, __pyx_L1_error) __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; - __pyx_t_15 = __Pyx_PyUnicode_From_long(__pyx_t_18, 0, ' ', 'd'); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 657, __pyx_L1_error) + __pyx_t_15 = __Pyx_PyUnicode_From_long(__pyx_t_18, 0, ' ', 'd'); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 649, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __pyx_t_19[0] = __pyx_mstate_global->__pyx_kp_u_variable_name; __pyx_t_19[1] = __pyx_t_5; - __pyx_t_19[2] = __pyx_mstate_global->__pyx_kp_u_starts_with_an_illegal_non_alph; + __pyx_t_19[2] = __pyx_mstate_global->__pyx_kp_u_starts_with_an_illegal_neither; __pyx_t_19[3] = __pyx_t_3; __pyx_t_19[4] = __pyx_mstate_global->__pyx_kp_u_ordinal_2; __pyx_t_19[5] = __pyx_t_15; - __pyx_t_19[6] = __pyx_mstate_global->__pyx_kp_u_; - __pyx_t_20 = __Pyx_PyUnicode_Join(__pyx_t_19, 7, 15 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_5) + 54 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_3) + 11 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_15) + 1, 127 | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_5) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_3)); - if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 657, __pyx_L1_error) + __pyx_t_19[6] = __pyx_mstate_global->__pyx_kp_u__2; + __pyx_t_20 = __Pyx_PyUnicode_Join(__pyx_t_19, 7, 15 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_5) + 76 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_3) + 11 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_15) + 1, 127 | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_5) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_3)); + if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 649, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_20); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; @@ -12438,43 +12386,43 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_initial_checks(int __pyx_v_i __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0; __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0; - if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 657, __pyx_L1_error) + if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 649, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); } __Pyx_Raise(__pyx_t_9, 0, 0, 0); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __PYX_ERR(0, 657, __pyx_L1_error) + __PYX_ERR(0, 649, __pyx_L1_error) - /* "pyreadstat/_readstat_writer.pyx":656 + /* "pyreadstat/_readstat_writer.pyx":648 * if len(variable_name) == 0: * raise PyreadstatError("variable names must be non-empty strings, not starting with numbers") - * if not variable_name[0].isalpha(): # <<<<<<<<<<<<<< - * raise PyreadstatError("variable name '%s' starts with an illegal (non-alphabetic) character: '%s' (ordinal %s)" % (variable_name, variable_name[0], ord(variable_name[0]))) + * if not (variable_name[0].isalpha() or variable_name[0] == "_"): # <<<<<<<<<<<<<< + * raise PyreadstatError("variable name '%s' starts with an illegal (neither alphabetic nor an underscore) character: '%s' (ordinal %s)" % (variable_name, variable_name[0], ord(variable_name[0]))) * if " " in variable_name: */ } - /* "pyreadstat/_readstat_writer.pyx":658 - * if not variable_name[0].isalpha(): - * raise PyreadstatError("variable name '%s' starts with an illegal (non-alphabetic) character: '%s' (ordinal %s)" % (variable_name, variable_name[0], ord(variable_name[0]))) + /* "pyreadstat/_readstat_writer.pyx":650 + * if not (variable_name[0].isalpha() or variable_name[0] == "_"): + * raise PyreadstatError("variable name '%s' starts with an illegal (neither alphabetic nor an underscore) character: '%s' (ordinal %s)" % (variable_name, variable_name[0], ord(variable_name[0]))) * if " " in variable_name: # <<<<<<<<<<<<<< * raise PyreadstatError("variable name '%s' contains a space, which is not allowed" % variable_name) * */ - __pyx_t_1 = (__Pyx_PySequence_ContainsTF(__pyx_mstate_global->__pyx_kp_u__2, __pyx_v_variable_name, Py_EQ)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 658, __pyx_L1_error) + __pyx_t_1 = (__Pyx_PySequence_ContainsTF(__pyx_mstate_global->__pyx_kp_u__3, __pyx_v_variable_name, Py_EQ)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 650, __pyx_L1_error) if (unlikely(__pyx_t_1)) { - /* "pyreadstat/_readstat_writer.pyx":659 - * raise PyreadstatError("variable name '%s' starts with an illegal (non-alphabetic) character: '%s' (ordinal %s)" % (variable_name, variable_name[0], ord(variable_name[0]))) + /* "pyreadstat/_readstat_writer.pyx":651 + * raise PyreadstatError("variable name '%s' starts with an illegal (neither alphabetic nor an underscore) character: '%s' (ordinal %s)" % (variable_name, variable_name[0], ord(variable_name[0]))) * if " " in variable_name: * raise PyreadstatError("variable name '%s' contains a space, which is not allowed" % variable_name) # <<<<<<<<<<<<<< * * dirname = os.path.dirname(filename_bytes) */ __pyx_t_17 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_20, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 659, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_20, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 651, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_20); - __pyx_t_10 = __Pyx_PyUnicode_FormatSafe(__pyx_mstate_global->__pyx_kp_u_variable_name_s_contains_a_space, __pyx_v_variable_name); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 659, __pyx_L1_error) + __pyx_t_10 = __Pyx_PyUnicode_FormatSafe(__pyx_mstate_global->__pyx_kp_u_variable_name_s_contains_a_space, __pyx_v_variable_name); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 651, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __pyx_t_6 = 1; #if CYTHON_UNPACK_METHODS @@ -12494,23 +12442,23 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_initial_checks(int __pyx_v_i __Pyx_XDECREF(__pyx_t_17); __pyx_t_17 = 0; __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0; - if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 659, __pyx_L1_error) + if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 651, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); } __Pyx_Raise(__pyx_t_9, 0, 0, 0); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __PYX_ERR(0, 659, __pyx_L1_error) + __PYX_ERR(0, 651, __pyx_L1_error) - /* "pyreadstat/_readstat_writer.pyx":658 - * if not variable_name[0].isalpha(): - * raise PyreadstatError("variable name '%s' starts with an illegal (non-alphabetic) character: '%s' (ordinal %s)" % (variable_name, variable_name[0], ord(variable_name[0]))) + /* "pyreadstat/_readstat_writer.pyx":650 + * if not (variable_name[0].isalpha() or variable_name[0] == "_"): + * raise PyreadstatError("variable name '%s' starts with an illegal (neither alphabetic nor an underscore) character: '%s' (ordinal %s)" % (variable_name, variable_name[0], ord(variable_name[0]))) * if " " in variable_name: # <<<<<<<<<<<<<< * raise PyreadstatError("variable name '%s' contains a space, which is not allowed" % variable_name) * */ } - /* "pyreadstat/_readstat_writer.pyx":651 + /* "pyreadstat/_readstat_writer.pyx":643 * raise PyreadstatError(msg) * * for variable_name in col_names: # <<<<<<<<<<<<<< @@ -12520,16 +12468,16 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_initial_checks(int __pyx_v_i } __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - /* "pyreadstat/_readstat_writer.pyx":661 + /* "pyreadstat/_readstat_writer.pyx":653 * raise PyreadstatError("variable name '%s' contains a space, which is not allowed" % variable_name) * * dirname = os.path.dirname(filename_bytes) # <<<<<<<<<<<<<< * if dirname and not os.path.isdir(dirname): * raise PyreadstatError(f"the destination folder {dirname} does not exist!") */ - __Pyx_GetModuleGlobalName(__pyx_t_20, __pyx_mstate_global->__pyx_n_u_os); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 661, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_20, __pyx_mstate_global->__pyx_n_u_os); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 653, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_20); - __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_20, __pyx_mstate_global->__pyx_n_u_path); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 661, __pyx_L1_error) + __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_20, __pyx_mstate_global->__pyx_n_u_path); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 653, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0; __pyx_t_9 = __pyx_t_10; @@ -12540,28 +12488,28 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_initial_checks(int __pyx_v_i __pyx_t_4 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_dirname, __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 661, __pyx_L1_error) + if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 653, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); } __pyx_v_dirname = __pyx_t_4; __pyx_t_4 = 0; - /* "pyreadstat/_readstat_writer.pyx":662 + /* "pyreadstat/_readstat_writer.pyx":654 * * dirname = os.path.dirname(filename_bytes) * if dirname and not os.path.isdir(dirname): # <<<<<<<<<<<<<< * raise PyreadstatError(f"the destination folder {dirname} does not exist!") * */ - __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_dirname); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 662, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_dirname); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 654, __pyx_L1_error) if (__pyx_t_2) { } else { __pyx_t_1 = __pyx_t_2; - goto __pyx_L33_bool_binop_done; + goto __pyx_L35_bool_binop_done; } - __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_os); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 662, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_os); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 654, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); - __pyx_t_20 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_path); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 662, __pyx_L1_error) + __pyx_t_20 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_path); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 654, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_20); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_10 = __pyx_t_20; @@ -12572,17 +12520,17 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_initial_checks(int __pyx_v_i __pyx_t_4 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_isdir, __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 662, __pyx_L1_error) + if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 654, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); } - __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 662, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 654, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_21 = (!__pyx_t_2); __pyx_t_1 = __pyx_t_21; - __pyx_L33_bool_binop_done:; + __pyx_L35_bool_binop_done:; if (unlikely(__pyx_t_1)) { - /* "pyreadstat/_readstat_writer.pyx":663 + /* "pyreadstat/_readstat_writer.pyx":655 * dirname = os.path.dirname(filename_bytes) * if dirname and not os.path.isdir(dirname): * raise PyreadstatError(f"the destination folder {dirname} does not exist!") # <<<<<<<<<<<<<< @@ -12590,15 +12538,15 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_initial_checks(int __pyx_v_i * cdef bytes filepath_to_bytes(object filename_path): */ __pyx_t_20 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 663, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 655, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); - __pyx_t_9 = __Pyx_PyObject_FormatSimple(__pyx_v_dirname, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 663, __pyx_L1_error) + __pyx_t_9 = __Pyx_PyObject_FormatSimple(__pyx_v_dirname, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 655, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_22[0] = __pyx_mstate_global->__pyx_kp_u_the_destination_folder; __pyx_t_22[1] = __pyx_t_9; __pyx_t_22[2] = __pyx_mstate_global->__pyx_kp_u_does_not_exist; __pyx_t_17 = __Pyx_PyUnicode_Join(__pyx_t_22, 3, 23 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_9) + 16, 127 | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_9)); - if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 663, __pyx_L1_error) + if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 655, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_17); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_6 = 1; @@ -12619,14 +12567,14 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_initial_checks(int __pyx_v_i __Pyx_XDECREF(__pyx_t_20); __pyx_t_20 = 0; __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0; __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 663, __pyx_L1_error) + if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 655, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); } __Pyx_Raise(__pyx_t_4, 0, 0, 0); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __PYX_ERR(0, 663, __pyx_L1_error) + __PYX_ERR(0, 655, __pyx_L1_error) - /* "pyreadstat/_readstat_writer.pyx":662 + /* "pyreadstat/_readstat_writer.pyx":654 * * dirname = os.path.dirname(filename_bytes) * if dirname and not os.path.isdir(dirname): # <<<<<<<<<<<<<< @@ -12635,7 +12583,7 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_initial_checks(int __pyx_v_i */ } - /* "pyreadstat/_readstat_writer.pyx":615 + /* "pyreadstat/_readstat_writer.pyx":607 * return close(fd) * * cdef void initial_checks(bint is_pandas, bint is_polars, dict variable_value_labels, dict missing_user_values, # <<<<<<<<<<<<<< @@ -12668,7 +12616,7 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_initial_checks(int __pyx_v_i __Pyx_RefNannyFinishContext(); } -/* "pyreadstat/_readstat_writer.pyx":665 +/* "pyreadstat/_readstat_writer.pyx":657 * raise PyreadstatError(f"the destination folder {dirname} does not exist!") * * cdef bytes filepath_to_bytes(object filename_path): # <<<<<<<<<<<<<< @@ -12701,20 +12649,20 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_filepath_to_bytes(PyObj int __pyx_clineno = 0; __Pyx_RefNannySetupContext("filepath_to_bytes", 0); - /* "pyreadstat/_readstat_writer.pyx":669 + /* "pyreadstat/_readstat_writer.pyx":661 * transforms an object with the path to the filename to bytes * """ * if hasattr(os, 'fsencode'): # <<<<<<<<<<<<<< * try: * filename_bytes = os.fsencode(filename_path) */ - __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_os); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 669, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_os); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 661, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = __Pyx_HasAttr(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_fsencode); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(0, 669, __pyx_L1_error) + __pyx_t_2 = __Pyx_HasAttr(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_fsencode); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(0, 661, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_2) { - /* "pyreadstat/_readstat_writer.pyx":670 + /* "pyreadstat/_readstat_writer.pyx":662 * """ * if hasattr(os, 'fsencode'): * try: # <<<<<<<<<<<<<< @@ -12730,7 +12678,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_filepath_to_bytes(PyObj __Pyx_XGOTREF(__pyx_t_5); /*try:*/ { - /* "pyreadstat/_readstat_writer.pyx":671 + /* "pyreadstat/_readstat_writer.pyx":663 * if hasattr(os, 'fsencode'): * try: * filename_bytes = os.fsencode(filename_path) # <<<<<<<<<<<<<< @@ -12738,9 +12686,9 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_filepath_to_bytes(PyObj * warnings.warn("file path could not be encoded with %s which is set as your system encoding, trying to encode it as utf-8. Please set your system encoding correctly." % sys.getfilesystemencoding()) */ __pyx_t_6 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_mstate_global->__pyx_n_u_os); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 671, __pyx_L4_error) + __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_mstate_global->__pyx_n_u_os); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 663, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_7); - __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_mstate_global->__pyx_n_u_fsencode); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 671, __pyx_L4_error) + __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_mstate_global->__pyx_n_u_fsencode); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 663, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_9 = 1; @@ -12760,13 +12708,13 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_filepath_to_bytes(PyObj __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_8, __pyx_callargs+__pyx_t_9, (2-__pyx_t_9) | (__pyx_t_9*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 671, __pyx_L4_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 663, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); } __pyx_v_filename_bytes = __pyx_t_1; __pyx_t_1 = 0; - /* "pyreadstat/_readstat_writer.pyx":670 + /* "pyreadstat/_readstat_writer.pyx":662 * """ * if hasattr(os, 'fsencode'): * try: # <<<<<<<<<<<<<< @@ -12784,7 +12732,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_filepath_to_bytes(PyObj __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; - /* "pyreadstat/_readstat_writer.pyx":672 + /* "pyreadstat/_readstat_writer.pyx":664 * try: * filename_bytes = os.fsencode(filename_path) * except UnicodeError: # <<<<<<<<<<<<<< @@ -12794,12 +12742,12 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_filepath_to_bytes(PyObj __pyx_t_10 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(((PyTypeObject*)PyExc_UnicodeError)))); if (__pyx_t_10) { __Pyx_AddTraceback("pyreadstat._readstat_writer.filepath_to_bytes", __pyx_clineno, __pyx_lineno, __pyx_filename); - if (__Pyx_GetException(&__pyx_t_1, &__pyx_t_8, &__pyx_t_6) < 0) __PYX_ERR(0, 672, __pyx_L6_except_error) + if (__Pyx_GetException(&__pyx_t_1, &__pyx_t_8, &__pyx_t_6) < 0) __PYX_ERR(0, 664, __pyx_L6_except_error) __Pyx_XGOTREF(__pyx_t_1); __Pyx_XGOTREF(__pyx_t_8); __Pyx_XGOTREF(__pyx_t_6); - /* "pyreadstat/_readstat_writer.pyx":673 + /* "pyreadstat/_readstat_writer.pyx":665 * filename_bytes = os.fsencode(filename_path) * except UnicodeError: * warnings.warn("file path could not be encoded with %s which is set as your system encoding, trying to encode it as utf-8. Please set your system encoding correctly." % sys.getfilesystemencoding()) # <<<<<<<<<<<<<< @@ -12807,15 +12755,15 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_filepath_to_bytes(PyObj * else: */ __pyx_t_11 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_12, __pyx_mstate_global->__pyx_n_u_warnings); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 673, __pyx_L6_except_error) + __Pyx_GetModuleGlobalName(__pyx_t_12, __pyx_mstate_global->__pyx_n_u_warnings); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 665, __pyx_L6_except_error) __Pyx_GOTREF(__pyx_t_12); - __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_t_12, __pyx_mstate_global->__pyx_n_u_warn); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 673, __pyx_L6_except_error) + __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_t_12, __pyx_mstate_global->__pyx_n_u_warn); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 665, __pyx_L6_except_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __pyx_t_14 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_15, __pyx_mstate_global->__pyx_n_u_sys); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 673, __pyx_L6_except_error) + __Pyx_GetModuleGlobalName(__pyx_t_15, __pyx_mstate_global->__pyx_n_u_sys); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 665, __pyx_L6_except_error) __Pyx_GOTREF(__pyx_t_15); - __pyx_t_16 = __Pyx_PyObject_GetAttrStr(__pyx_t_15, __pyx_mstate_global->__pyx_n_u_getfilesystemencoding); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 673, __pyx_L6_except_error) + __pyx_t_16 = __Pyx_PyObject_GetAttrStr(__pyx_t_15, __pyx_mstate_global->__pyx_n_u_getfilesystemencoding); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 665, __pyx_L6_except_error) __Pyx_GOTREF(__pyx_t_16); __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; __pyx_t_9 = 1; @@ -12835,10 +12783,10 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_filepath_to_bytes(PyObj __pyx_t_12 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_16, __pyx_callargs+__pyx_t_9, (1-__pyx_t_9) | (__pyx_t_9*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0; __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; - if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 673, __pyx_L6_except_error) + if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 665, __pyx_L6_except_error) __Pyx_GOTREF(__pyx_t_12); } - __pyx_t_16 = __Pyx_PyUnicode_FormatSafe(__pyx_mstate_global->__pyx_kp_u_file_path_could_not_be_encoded_w, __pyx_t_12); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 673, __pyx_L6_except_error) + __pyx_t_16 = __Pyx_PyUnicode_FormatSafe(__pyx_mstate_global->__pyx_kp_u_file_path_could_not_be_encoded_w, __pyx_t_12); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 665, __pyx_L6_except_error) __Pyx_GOTREF(__pyx_t_16); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __pyx_t_9 = 1; @@ -12859,12 +12807,12 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_filepath_to_bytes(PyObj __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0; __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; - if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 673, __pyx_L6_except_error) + if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 665, __pyx_L6_except_error) __Pyx_GOTREF(__pyx_t_7); } __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - /* "pyreadstat/_readstat_writer.pyx":674 + /* "pyreadstat/_readstat_writer.pyx":666 * except UnicodeError: * warnings.warn("file path could not be encoded with %s which is set as your system encoding, trying to encode it as utf-8. Please set your system encoding correctly." % sys.getfilesystemencoding()) * filename_bytes = os.fsdecode(filename_path).encode("utf-8", "surrogateescape") # <<<<<<<<<<<<<< @@ -12872,9 +12820,9 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_filepath_to_bytes(PyObj * if type(filename_path) == str: */ __pyx_t_13 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_16, __pyx_mstate_global->__pyx_n_u_os); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 674, __pyx_L6_except_error) + __Pyx_GetModuleGlobalName(__pyx_t_16, __pyx_mstate_global->__pyx_n_u_os); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 666, __pyx_L6_except_error) __Pyx_GOTREF(__pyx_t_16); - __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_16, __pyx_mstate_global->__pyx_n_u_fsdecode); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 674, __pyx_L6_except_error) + __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_16, __pyx_mstate_global->__pyx_n_u_fsdecode); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 666, __pyx_L6_except_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; __pyx_t_9 = 1; @@ -12894,13 +12842,13 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_filepath_to_bytes(PyObj __pyx_t_7 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_11, __pyx_callargs+__pyx_t_9, (2-__pyx_t_9) | (__pyx_t_9*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0; __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 674, __pyx_L6_except_error) + if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 666, __pyx_L6_except_error) __Pyx_GOTREF(__pyx_t_7); } - __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_mstate_global->__pyx_n_u_encode); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 674, __pyx_L6_except_error) + __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_mstate_global->__pyx_n_u_encode); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 666, __pyx_L6_except_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_11, __pyx_mstate_global->__pyx_tuple[0], NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 674, __pyx_L6_except_error) + __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_11, __pyx_mstate_global->__pyx_tuple[0], NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 666, __pyx_L6_except_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __Pyx_XDECREF_SET(__pyx_v_filename_bytes, __pyx_t_7); @@ -12912,7 +12860,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_filepath_to_bytes(PyObj } goto __pyx_L6_except_error; - /* "pyreadstat/_readstat_writer.pyx":670 + /* "pyreadstat/_readstat_writer.pyx":662 * """ * if hasattr(os, 'fsencode'): * try: # <<<<<<<<<<<<<< @@ -12933,7 +12881,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_filepath_to_bytes(PyObj __pyx_L9_try_end:; } - /* "pyreadstat/_readstat_writer.pyx":669 + /* "pyreadstat/_readstat_writer.pyx":661 * transforms an object with the path to the filename to bytes * """ * if hasattr(os, 'fsencode'): # <<<<<<<<<<<<<< @@ -12943,7 +12891,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_filepath_to_bytes(PyObj goto __pyx_L3; } - /* "pyreadstat/_readstat_writer.pyx":676 + /* "pyreadstat/_readstat_writer.pyx":668 * filename_bytes = os.fsdecode(filename_path).encode("utf-8", "surrogateescape") * else: * if type(filename_path) == str: # <<<<<<<<<<<<<< @@ -12951,12 +12899,12 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_filepath_to_bytes(PyObj * elif type(filename_path) == bytes: */ /*else*/ { - __pyx_t_6 = PyObject_RichCompare(((PyObject *)Py_TYPE(__pyx_v_filename_path)), ((PyObject *)(&PyUnicode_Type)), Py_EQ); __Pyx_XGOTREF(__pyx_t_6); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 676, __pyx_L1_error) - __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 676, __pyx_L1_error) + __pyx_t_6 = PyObject_RichCompare(((PyObject *)Py_TYPE(__pyx_v_filename_path)), ((PyObject *)(&PyUnicode_Type)), Py_EQ); __Pyx_XGOTREF(__pyx_t_6); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 668, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 668, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (__pyx_t_2) { - /* "pyreadstat/_readstat_writer.pyx":677 + /* "pyreadstat/_readstat_writer.pyx":669 * else: * if type(filename_path) == str: * filename_bytes = filename_path.encode('utf-8') # <<<<<<<<<<<<<< @@ -12970,13 +12918,13 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_filepath_to_bytes(PyObj PyObject *__pyx_callargs[2] = {__pyx_t_8, __pyx_mstate_global->__pyx_kp_u_utf_8}; __pyx_t_6 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_encode, __pyx_callargs+__pyx_t_9, (2-__pyx_t_9) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; - if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 677, __pyx_L1_error) + if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 669, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); } __pyx_v_filename_bytes = __pyx_t_6; __pyx_t_6 = 0; - /* "pyreadstat/_readstat_writer.pyx":676 + /* "pyreadstat/_readstat_writer.pyx":668 * filename_bytes = os.fsdecode(filename_path).encode("utf-8", "surrogateescape") * else: * if type(filename_path) == str: # <<<<<<<<<<<<<< @@ -12986,19 +12934,19 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_filepath_to_bytes(PyObj goto __pyx_L12; } - /* "pyreadstat/_readstat_writer.pyx":678 + /* "pyreadstat/_readstat_writer.pyx":670 * if type(filename_path) == str: * filename_bytes = filename_path.encode('utf-8') * elif type(filename_path) == bytes: # <<<<<<<<<<<<<< * filename_bytes = filename_path * else: */ - __pyx_t_6 = PyObject_RichCompare(((PyObject *)Py_TYPE(__pyx_v_filename_path)), ((PyObject *)(&PyBytes_Type)), Py_EQ); __Pyx_XGOTREF(__pyx_t_6); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 678, __pyx_L1_error) - __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 678, __pyx_L1_error) + __pyx_t_6 = PyObject_RichCompare(((PyObject *)Py_TYPE(__pyx_v_filename_path)), ((PyObject *)(&PyBytes_Type)), Py_EQ); __Pyx_XGOTREF(__pyx_t_6); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 670, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 670, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (likely(__pyx_t_2)) { - /* "pyreadstat/_readstat_writer.pyx":679 + /* "pyreadstat/_readstat_writer.pyx":671 * filename_bytes = filename_path.encode('utf-8') * elif type(filename_path) == bytes: * filename_bytes = filename_path # <<<<<<<<<<<<<< @@ -13008,7 +12956,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_filepath_to_bytes(PyObj __Pyx_INCREF(__pyx_v_filename_path); __pyx_v_filename_bytes = __pyx_v_filename_path; - /* "pyreadstat/_readstat_writer.pyx":678 + /* "pyreadstat/_readstat_writer.pyx":670 * if type(filename_path) == str: * filename_bytes = filename_path.encode('utf-8') * elif type(filename_path) == bytes: # <<<<<<<<<<<<<< @@ -13018,7 +12966,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_filepath_to_bytes(PyObj goto __pyx_L12; } - /* "pyreadstat/_readstat_writer.pyx":681 + /* "pyreadstat/_readstat_writer.pyx":673 * filename_bytes = filename_path * else: * raise PyreadstatError("path must be either str or bytes") # <<<<<<<<<<<<<< @@ -13027,7 +12975,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_filepath_to_bytes(PyObj */ /*else*/ { __pyx_t_8 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 681, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 673, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_9 = 1; #if CYTHON_UNPACK_METHODS @@ -13046,18 +12994,18 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_filepath_to_bytes(PyObj __pyx_t_6 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_1, __pyx_callargs+__pyx_t_9, (2-__pyx_t_9) | (__pyx_t_9*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 681, __pyx_L1_error) + if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 673, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); } __Pyx_Raise(__pyx_t_6, 0, 0, 0); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __PYX_ERR(0, 681, __pyx_L1_error) + __PYX_ERR(0, 673, __pyx_L1_error) } __pyx_L12:; } __pyx_L3:; - /* "pyreadstat/_readstat_writer.pyx":682 + /* "pyreadstat/_readstat_writer.pyx":674 * else: * raise PyreadstatError("path must be either str or bytes") * return filename_bytes # <<<<<<<<<<<<<< @@ -13067,12 +13015,12 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_filepath_to_bytes(PyObj __Pyx_XDECREF(__pyx_r); __pyx_t_6 = __pyx_v_filename_bytes; __Pyx_INCREF(__pyx_t_6); - if (!(likely(PyBytes_CheckExact(__pyx_t_6))||((__pyx_t_6) == Py_None) || __Pyx_RaiseUnexpectedTypeError("bytes", __pyx_t_6))) __PYX_ERR(0, 682, __pyx_L1_error) + if (!(likely(PyBytes_CheckExact(__pyx_t_6))||((__pyx_t_6) == Py_None) || __Pyx_RaiseUnexpectedTypeError("bytes", __pyx_t_6))) __PYX_ERR(0, 674, __pyx_L1_error) __pyx_r = ((PyObject*)__pyx_t_6); __pyx_t_6 = 0; goto __pyx_L0; - /* "pyreadstat/_readstat_writer.pyx":665 + /* "pyreadstat/_readstat_writer.pyx":657 * raise PyreadstatError(f"the destination folder {dirname} does not exist!") * * cdef bytes filepath_to_bytes(object filename_path): # <<<<<<<<<<<<<< @@ -13101,7 +13049,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_filepath_to_bytes(PyObj return __pyx_r; } -/* "pyreadstat/_readstat_writer.pyx":685 +/* "pyreadstat/_readstat_writer.pyx":677 * * * cdef int run_write(df, object filename_path, dst_file_format file_format, str file_label, object column_labels, # <<<<<<<<<<<<<< @@ -13185,30 +13133,32 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d PyObject *(*__pyx_t_11)(PyObject *); int __pyx_t_12; PyObject *__pyx_t_13 = NULL; - PyObject *__pyx_t_14 = NULL; + PyObject *__pyx_t_14[7]; PyObject *__pyx_t_15 = NULL; - char *__pyx_t_16; - char const *__pyx_t_17; - int __pyx_t_18; - int __pyx_t_19; + PyObject *__pyx_t_16 = NULL; + PyObject *__pyx_t_17 = NULL; + char *__pyx_t_18; + char const *__pyx_t_19; int __pyx_t_20; int __pyx_t_21; - __pyx_t_10pyreadstat_16_readstat_writer_pywriter_variable_type __pyx_t_22; + int __pyx_t_22; int __pyx_t_23; - char const *__pyx_t_24; - readstat_type_t __pyx_t_25; + __pyx_t_10pyreadstat_16_readstat_writer_pywriter_variable_type __pyx_t_24; + int __pyx_t_25; char const *__pyx_t_26; - char const *__pyx_t_27; + readstat_type_t __pyx_t_27; char const *__pyx_t_28; - readstat_label_set_t *__pyx_t_29; - long __pyx_t_30; - double __pyx_t_31; - int32_t __pyx_t_32; - char const *__pyx_t_33; - char const *__pyx_t_34; - PyObject *__pyx_t_35 = NULL; - PyObject *__pyx_t_36 = NULL; + char const *__pyx_t_29; + char const *__pyx_t_30; + readstat_label_set_t *__pyx_t_31; + long __pyx_t_32; + double __pyx_t_33; + int32_t __pyx_t_34; + char const *__pyx_t_35; + char const *__pyx_t_36; PyObject *__pyx_t_37 = NULL; + PyObject *__pyx_t_38 = NULL; + PyObject *__pyx_t_39 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -13217,7 +13167,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d __Pyx_INCREF(__pyx_v_column_labels); __Pyx_INCREF(__pyx_v_note); - /* "pyreadstat/_readstat_writer.pyx":696 + /* "pyreadstat/_readstat_writer.pyx":688 * * cdef object natnamespace * cdef object pd = None # <<<<<<<<<<<<<< @@ -13227,28 +13177,28 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d __Pyx_INCREF(Py_None); __pyx_v_pd = Py_None; - /* "pyreadstat/_readstat_writer.pyx":701 + /* "pyreadstat/_readstat_writer.pyx":693 * cdef list col_names * * filename_bytes = filepath_to_bytes(filename_path) # <<<<<<<<<<<<<< * filename_bytes = os.path.expanduser(filename_bytes) * */ - __pyx_t_1 = __pyx_f_10pyreadstat_16_readstat_writer_filepath_to_bytes(__pyx_v_filename_path); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 701, __pyx_L1_error) + __pyx_t_1 = __pyx_f_10pyreadstat_16_readstat_writer_filepath_to_bytes(__pyx_v_filename_path); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 693, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_filename_bytes = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - /* "pyreadstat/_readstat_writer.pyx":702 + /* "pyreadstat/_readstat_writer.pyx":694 * * filename_bytes = filepath_to_bytes(filename_path) * filename_bytes = os.path.expanduser(filename_bytes) # <<<<<<<<<<<<<< * * df = nw.from_native(df, eager_only=True) */ - __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_os); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 702, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_os); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 694, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_path); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 702, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_path); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 694, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_2 = __pyx_t_4; @@ -13259,14 +13209,14 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_expanduser, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 702, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 694, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } - if (!(likely(PyBytes_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("bytes", __pyx_t_1))) __PYX_ERR(0, 702, __pyx_L1_error) + if (!(likely(PyBytes_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("bytes", __pyx_t_1))) __PYX_ERR(0, 694, __pyx_L1_error) __Pyx_DECREF_SET(__pyx_v_filename_bytes, ((PyObject*)__pyx_t_1)); __pyx_t_1 = 0; - /* "pyreadstat/_readstat_writer.pyx":704 + /* "pyreadstat/_readstat_writer.pyx":696 * filename_bytes = os.path.expanduser(filename_bytes) * * df = nw.from_native(df, eager_only=True) # <<<<<<<<<<<<<< @@ -13274,9 +13224,9 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d * is_pandas = df.implementation.is_pandas() */ __pyx_t_4 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_nw); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 704, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_nw); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 696, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_from_native); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 704, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_from_native); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 696, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_5 = 1; @@ -13293,20 +13243,20 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d #endif { PyObject *__pyx_callargs[2 + ((CYTHON_VECTORCALL) ? 1 : 0)] = {__pyx_t_4, __pyx_v_df}; - __pyx_t_2 = __Pyx_MakeVectorcallBuilderKwds(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 704, __pyx_L1_error) + __pyx_t_2 = __Pyx_MakeVectorcallBuilderKwds(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 696, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - if (__Pyx_VectorcallBuilder_AddArg(__pyx_mstate_global->__pyx_n_u_eager_only, Py_True, __pyx_t_2, __pyx_callargs+2, 0) < (0)) __PYX_ERR(0, 704, __pyx_L1_error) + if (__Pyx_VectorcallBuilder_AddArg(__pyx_mstate_global->__pyx_n_u_eager_only, Py_True, __pyx_t_2, __pyx_callargs+2, 0) < (0)) __PYX_ERR(0, 696, __pyx_L1_error) __pyx_t_1 = __Pyx_Object_Vectorcall_CallFromBuilder((PyObject*)__pyx_t_3, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET), __pyx_t_2); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 704, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 696, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } __Pyx_DECREF_SET(__pyx_v_df, __pyx_t_1); __pyx_t_1 = 0; - /* "pyreadstat/_readstat_writer.pyx":705 + /* "pyreadstat/_readstat_writer.pyx":697 * * df = nw.from_native(df, eager_only=True) * natnamespace = nw.get_native_namespace(df) # <<<<<<<<<<<<<< @@ -13314,9 +13264,9 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d * is_polars = df.implementation.is_polars() */ __pyx_t_3 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_nw); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 705, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_nw); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 697, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_get_native_namespace); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 705, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_get_native_namespace); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 697, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_5 = 1; @@ -13336,20 +13286,20 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 705, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 697, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } __pyx_v_natnamespace = __pyx_t_1; __pyx_t_1 = 0; - /* "pyreadstat/_readstat_writer.pyx":706 + /* "pyreadstat/_readstat_writer.pyx":698 * df = nw.from_native(df, eager_only=True) * natnamespace = nw.get_native_namespace(df) * is_pandas = df.implementation.is_pandas() # <<<<<<<<<<<<<< * is_polars = df.implementation.is_polars() * col_names = df.columns */ - __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_df, __pyx_mstate_global->__pyx_n_u_implementation); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 706, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_df, __pyx_mstate_global->__pyx_n_u_implementation); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 698, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = __pyx_t_3; __Pyx_INCREF(__pyx_t_4); @@ -13359,21 +13309,21 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_is_pandas, __pyx_callargs+__pyx_t_5, (1-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 706, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 698, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } - __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_6 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 706, __pyx_L1_error) + __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_6 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 698, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_v_is_pandas = __pyx_t_6; - /* "pyreadstat/_readstat_writer.pyx":707 + /* "pyreadstat/_readstat_writer.pyx":699 * natnamespace = nw.get_native_namespace(df) * is_pandas = df.implementation.is_pandas() * is_polars = df.implementation.is_polars() # <<<<<<<<<<<<<< * col_names = df.columns * if is_pandas: */ - __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_df, __pyx_mstate_global->__pyx_n_u_implementation); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 707, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_df, __pyx_mstate_global->__pyx_n_u_implementation); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 699, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_3 = __pyx_t_4; __Pyx_INCREF(__pyx_t_3); @@ -13383,27 +13333,27 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_is_polars, __pyx_callargs+__pyx_t_5, (1-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 707, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 699, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } - __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_6 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 707, __pyx_L1_error) + __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_6 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 699, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_v_is_polars = __pyx_t_6; - /* "pyreadstat/_readstat_writer.pyx":708 + /* "pyreadstat/_readstat_writer.pyx":700 * is_pandas = df.implementation.is_pandas() * is_polars = df.implementation.is_polars() * col_names = df.columns # <<<<<<<<<<<<<< * if is_pandas: * pd = natnamespace */ - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_df, __pyx_mstate_global->__pyx_n_u_columns); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 708, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_df, __pyx_mstate_global->__pyx_n_u_columns); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 700, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - if (!(likely(PyList_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("list", __pyx_t_1))) __PYX_ERR(0, 708, __pyx_L1_error) + if (!(likely(PyList_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("list", __pyx_t_1))) __PYX_ERR(0, 700, __pyx_L1_error) __pyx_v_col_names = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - /* "pyreadstat/_readstat_writer.pyx":709 + /* "pyreadstat/_readstat_writer.pyx":701 * is_polars = df.implementation.is_polars() * col_names = df.columns * if is_pandas: # <<<<<<<<<<<<<< @@ -13412,7 +13362,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d */ if (__pyx_v_is_pandas) { - /* "pyreadstat/_readstat_writer.pyx":710 + /* "pyreadstat/_readstat_writer.pyx":702 * col_names = df.columns * if is_pandas: * pd = natnamespace # <<<<<<<<<<<<<< @@ -13422,7 +13372,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d __Pyx_INCREF(__pyx_v_natnamespace); __Pyx_DECREF_SET(__pyx_v_pd, __pyx_v_natnamespace); - /* "pyreadstat/_readstat_writer.pyx":709 + /* "pyreadstat/_readstat_writer.pyx":701 * is_polars = df.implementation.is_polars() * col_names = df.columns * if is_pandas: # <<<<<<<<<<<<<< @@ -13431,16 +13381,16 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d */ } - /* "pyreadstat/_readstat_writer.pyx":712 + /* "pyreadstat/_readstat_writer.pyx":704 * pd = natnamespace * * initial_checks(is_pandas, is_polars, variable_value_labels, missing_user_values, file_format, # <<<<<<<<<<<<<< * col_names, filename_bytes) * */ - __pyx_f_10pyreadstat_16_readstat_writer_initial_checks(__pyx_v_is_pandas, __pyx_v_is_polars, __pyx_v_variable_value_labels, __pyx_v_missing_user_values, __pyx_v_file_format, __pyx_v_col_names, __pyx_v_filename_bytes); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 712, __pyx_L1_error) + __pyx_f_10pyreadstat_16_readstat_writer_initial_checks(__pyx_v_is_pandas, __pyx_v_is_polars, __pyx_v_variable_value_labels, __pyx_v_missing_user_values, __pyx_v_file_format, __pyx_v_col_names, __pyx_v_filename_bytes); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 704, __pyx_L1_error) - /* "pyreadstat/_readstat_writer.pyx":723 + /* "pyreadstat/_readstat_writer.pyx":715 * cdef bytes file_label_bytes * cdef char *file_labl * cdef int dta_str_max_len = 0 # <<<<<<<<<<<<<< @@ -13449,7 +13399,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d */ __pyx_v_dta_str_max_len = 0; - /* "pyreadstat/_readstat_writer.pyx":726 + /* "pyreadstat/_readstat_writer.pyx":718 * * * if file_format == FILE_FORMAT_POR: # <<<<<<<<<<<<<< @@ -13459,18 +13409,18 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d __pyx_t_6 = (__pyx_v_file_format == __pyx_e_10pyreadstat_16_readstat_writer_FILE_FORMAT_POR); if (__pyx_t_6) { - /* "pyreadstat/_readstat_writer.pyx":727 + /* "pyreadstat/_readstat_writer.pyx":719 * * if file_format == FILE_FORMAT_POR: * col_names = [x.upper() for x in col_names] # <<<<<<<<<<<<<< * * if file_format == FILE_FORMAT_DTA: */ - __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 727, __pyx_L1_error) + __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 719, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (unlikely(__pyx_v_col_names == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable"); - __PYX_ERR(0, 727, __pyx_L1_error) + __PYX_ERR(0, 719, __pyx_L1_error) } __pyx_t_4 = __pyx_v_col_names; __Pyx_INCREF(__pyx_t_4); __pyx_t_7 = 0; @@ -13478,13 +13428,13 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d { Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_4); #if !CYTHON_ASSUME_SAFE_SIZE - if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 727, __pyx_L1_error) + if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 719, __pyx_L1_error) #endif if (__pyx_t_7 >= __pyx_temp) break; } __pyx_t_3 = __Pyx_PyList_GetItemRefFast(__pyx_t_4, __pyx_t_7, __Pyx_ReferenceSharing_OwnStrongReference); ++__pyx_t_7; - if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 727, __pyx_L1_error) + if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 719, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_3); __pyx_t_3 = 0; @@ -13495,17 +13445,17 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL}; __pyx_t_3 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_upper, __pyx_callargs+__pyx_t_5, (1-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 727, __pyx_L1_error) + if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 719, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); } - if (unlikely(__Pyx_ListComp_Append(__pyx_t_1, (PyObject*)__pyx_t_3))) __PYX_ERR(0, 727, __pyx_L1_error) + if (unlikely(__Pyx_ListComp_Append(__pyx_t_1, (PyObject*)__pyx_t_3))) __PYX_ERR(0, 719, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF_SET(__pyx_v_col_names, ((PyObject*)__pyx_t_1)); __pyx_t_1 = 0; - /* "pyreadstat/_readstat_writer.pyx":726 + /* "pyreadstat/_readstat_writer.pyx":718 * * * if file_format == FILE_FORMAT_POR: # <<<<<<<<<<<<<< @@ -13514,7 +13464,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d */ } - /* "pyreadstat/_readstat_writer.pyx":729 + /* "pyreadstat/_readstat_writer.pyx":721 * col_names = [x.upper() for x in col_names] * * if file_format == FILE_FORMAT_DTA: # <<<<<<<<<<<<<< @@ -13524,7 +13474,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d __pyx_t_6 = (__pyx_v_file_format == __pyx_e_10pyreadstat_16_readstat_writer_FILE_FORMAT_DTA); if (__pyx_t_6) { - /* "pyreadstat/_readstat_writer.pyx":730 + /* "pyreadstat/_readstat_writer.pyx":722 * * if file_format == FILE_FORMAT_DTA: * if file_format_version >= 117: # <<<<<<<<<<<<<< @@ -13534,7 +13484,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d __pyx_t_6 = (__pyx_v_file_format_version >= 0x75); if (__pyx_t_6) { - /* "pyreadstat/_readstat_writer.pyx":731 + /* "pyreadstat/_readstat_writer.pyx":723 * if file_format == FILE_FORMAT_DTA: * if file_format_version >= 117: * dta_str_max_len = dta_117_max_width # <<<<<<<<<<<<<< @@ -13543,7 +13493,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d */ __pyx_v_dta_str_max_len = __pyx_v_10pyreadstat_16_readstat_writer_dta_117_max_width; - /* "pyreadstat/_readstat_writer.pyx":730 + /* "pyreadstat/_readstat_writer.pyx":722 * * if file_format == FILE_FORMAT_DTA: * if file_format_version >= 117: # <<<<<<<<<<<<<< @@ -13553,7 +13503,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d goto __pyx_L9; } - /* "pyreadstat/_readstat_writer.pyx":732 + /* "pyreadstat/_readstat_writer.pyx":724 * if file_format_version >= 117: * dta_str_max_len = dta_117_max_width * elif file_format_version >= 111: # <<<<<<<<<<<<<< @@ -13563,7 +13513,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d __pyx_t_6 = (__pyx_v_file_format_version >= 0x6F); if (__pyx_t_6) { - /* "pyreadstat/_readstat_writer.pyx":733 + /* "pyreadstat/_readstat_writer.pyx":725 * dta_str_max_len = dta_117_max_width * elif file_format_version >= 111: * dta_str_max_len = dta_111_max_width # <<<<<<<<<<<<<< @@ -13572,7 +13522,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d */ __pyx_v_dta_str_max_len = __pyx_v_10pyreadstat_16_readstat_writer_dta_111_max_width; - /* "pyreadstat/_readstat_writer.pyx":732 + /* "pyreadstat/_readstat_writer.pyx":724 * if file_format_version >= 117: * dta_str_max_len = dta_117_max_width * elif file_format_version >= 111: # <<<<<<<<<<<<<< @@ -13582,7 +13532,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d goto __pyx_L9; } - /* "pyreadstat/_readstat_writer.pyx":735 + /* "pyreadstat/_readstat_writer.pyx":727 * dta_str_max_len = dta_111_max_width * else: * dta_str_max_len = dta_old_max_width # <<<<<<<<<<<<<< @@ -13594,7 +13544,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d } __pyx_L9:; - /* "pyreadstat/_readstat_writer.pyx":729 + /* "pyreadstat/_readstat_writer.pyx":721 * col_names = [x.upper() for x in col_names] * * if file_format == FILE_FORMAT_DTA: # <<<<<<<<<<<<<< @@ -13603,29 +13553,29 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d */ } - /* "pyreadstat/_readstat_writer.pyx":737 + /* "pyreadstat/_readstat_writer.pyx":729 * dta_str_max_len = dta_old_max_width * * cdef list col_types = get_narwhals_column_types(df, missing_user_values, variable_value_labels, dta_str_max_len) # <<<<<<<<<<<<<< * cdef int row_count = len(df) * cdef int col_count = len(col_names) */ - __pyx_t_1 = __pyx_f_10pyreadstat_16_readstat_writer_get_narwhals_column_types(__pyx_v_df, __pyx_v_missing_user_values, __pyx_v_variable_value_labels, __pyx_v_dta_str_max_len); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 737, __pyx_L1_error) + __pyx_t_1 = __pyx_f_10pyreadstat_16_readstat_writer_get_narwhals_column_types(__pyx_v_df, __pyx_v_missing_user_values, __pyx_v_variable_value_labels, __pyx_v_dta_str_max_len); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 729, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_col_types = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - /* "pyreadstat/_readstat_writer.pyx":738 + /* "pyreadstat/_readstat_writer.pyx":730 * * cdef list col_types = get_narwhals_column_types(df, missing_user_values, variable_value_labels, dta_str_max_len) * cdef int row_count = len(df) # <<<<<<<<<<<<<< * cdef int col_count = len(col_names) * cdef dict col_names_to_types = {k:v[0] for k,v in zip(col_names, col_types)} */ - __pyx_t_7 = PyObject_Length(__pyx_v_df); if (unlikely(__pyx_t_7 == ((Py_ssize_t)-1))) __PYX_ERR(0, 738, __pyx_L1_error) + __pyx_t_7 = PyObject_Length(__pyx_v_df); if (unlikely(__pyx_t_7 == ((Py_ssize_t)-1))) __PYX_ERR(0, 730, __pyx_L1_error) __pyx_v_row_count = __pyx_t_7; - /* "pyreadstat/_readstat_writer.pyx":739 + /* "pyreadstat/_readstat_writer.pyx":731 * cdef list col_types = get_narwhals_column_types(df, missing_user_values, variable_value_labels, dta_str_max_len) * cdef int row_count = len(df) * cdef int col_count = len(col_names) # <<<<<<<<<<<<<< @@ -13634,12 +13584,12 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d */ if (unlikely(__pyx_v_col_names == Py_None)) { PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()"); - __PYX_ERR(0, 739, __pyx_L1_error) + __PYX_ERR(0, 731, __pyx_L1_error) } - __pyx_t_7 = __Pyx_PyList_GET_SIZE(__pyx_v_col_names); if (unlikely(__pyx_t_7 == ((Py_ssize_t)-1))) __PYX_ERR(0, 739, __pyx_L1_error) + __pyx_t_7 = __Pyx_PyList_GET_SIZE(__pyx_v_col_names); if (unlikely(__pyx_t_7 == ((Py_ssize_t)-1))) __PYX_ERR(0, 731, __pyx_L1_error) __pyx_v_col_count = __pyx_t_7; - /* "pyreadstat/_readstat_writer.pyx":740 + /* "pyreadstat/_readstat_writer.pyx":732 * cdef int row_count = len(df) * cdef int col_count = len(col_names) * cdef dict col_names_to_types = {k:v[0] for k,v in zip(col_names, col_types)} # <<<<<<<<<<<<<< @@ -13647,7 +13597,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d * cdef readstat_variable_t *variable */ { /* enter inner scope */ - __pyx_t_1 = PyDict_New(); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 740, __pyx_L12_error) + __pyx_t_1 = PyDict_New(); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 732, __pyx_L12_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = NULL; __pyx_t_5 = 1; @@ -13655,7 +13605,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d PyObject *__pyx_callargs[3] = {__pyx_t_3, __pyx_v_col_names, __pyx_v_col_types}; __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_zip, __pyx_callargs+__pyx_t_5, (3-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 740, __pyx_L12_error) + if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 732, __pyx_L12_error) __Pyx_GOTREF(__pyx_t_4); } if (likely(PyList_CheckExact(__pyx_t_4)) || PyTuple_CheckExact(__pyx_t_4)) { @@ -13663,9 +13613,9 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d __pyx_t_7 = 0; __pyx_t_8 = NULL; } else { - __pyx_t_7 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 740, __pyx_L12_error) + __pyx_t_7 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 732, __pyx_L12_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_8 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_3); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 740, __pyx_L12_error) + __pyx_t_8 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_3); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 732, __pyx_L12_error) } __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; for (;;) { @@ -13674,7 +13624,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d { Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_3); #if !CYTHON_ASSUME_SAFE_SIZE - if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 740, __pyx_L12_error) + if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 732, __pyx_L12_error) #endif if (__pyx_t_7 >= __pyx_temp) break; } @@ -13684,7 +13634,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d { Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_3); #if !CYTHON_ASSUME_SAFE_SIZE - if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 740, __pyx_L12_error) + if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 732, __pyx_L12_error) #endif if (__pyx_t_7 >= __pyx_temp) break; } @@ -13695,13 +13645,13 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d #endif ++__pyx_t_7; } - if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 740, __pyx_L12_error) + if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 732, __pyx_L12_error) } else { __pyx_t_4 = __pyx_t_8(__pyx_t_3); if (unlikely(!__pyx_t_4)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { - if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(0, 740, __pyx_L12_error) + if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(0, 732, __pyx_L12_error) PyErr_Clear(); } break; @@ -13714,7 +13664,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d if (unlikely(size != 2)) { if (size > 2) __Pyx_RaiseTooManyValuesError(2); else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); - __PYX_ERR(0, 740, __pyx_L12_error) + __PYX_ERR(0, 732, __pyx_L12_error) } #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS if (likely(PyTuple_CheckExact(sequence))) { @@ -13724,22 +13674,22 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d __Pyx_INCREF(__pyx_t_9); } else { __pyx_t_2 = __Pyx_PyList_GetItemRefFast(sequence, 0, __Pyx_ReferenceSharing_SharedReference); - if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 740, __pyx_L12_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 732, __pyx_L12_error) __Pyx_XGOTREF(__pyx_t_2); __pyx_t_9 = __Pyx_PyList_GetItemRefFast(sequence, 1, __Pyx_ReferenceSharing_SharedReference); - if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 740, __pyx_L12_error) + if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 732, __pyx_L12_error) __Pyx_XGOTREF(__pyx_t_9); } #else - __pyx_t_2 = __Pyx_PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 740, __pyx_L12_error) + __pyx_t_2 = __Pyx_PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 732, __pyx_L12_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_9 = __Pyx_PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 740, __pyx_L12_error) + __pyx_t_9 = __Pyx_PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 732, __pyx_L12_error) __Pyx_GOTREF(__pyx_t_9); #endif __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; } else { Py_ssize_t index = -1; - __pyx_t_10 = PyObject_GetIter(__pyx_t_4); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 740, __pyx_L12_error) + __pyx_t_10 = PyObject_GetIter(__pyx_t_4); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 732, __pyx_L12_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_11 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_10); @@ -13747,7 +13697,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d __Pyx_GOTREF(__pyx_t_2); index = 1; __pyx_t_9 = __pyx_t_11(__pyx_t_10); if (unlikely(!__pyx_t_9)) goto __pyx_L15_unpacking_failed; __Pyx_GOTREF(__pyx_t_9); - if (__Pyx_IternextUnpackEndCheck(__pyx_t_11(__pyx_t_10), 2) < (0)) __PYX_ERR(0, 740, __pyx_L12_error) + if (__Pyx_IternextUnpackEndCheck(__pyx_t_11(__pyx_t_10), 2) < (0)) __PYX_ERR(0, 732, __pyx_L12_error) __pyx_t_11 = NULL; __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; goto __pyx_L16_unpacking_done; @@ -13755,16 +13705,16 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_t_11 = NULL; if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); - __PYX_ERR(0, 740, __pyx_L12_error) + __PYX_ERR(0, 732, __pyx_L12_error) __pyx_L16_unpacking_done:; } __Pyx_XDECREF_SET(__pyx_7genexpr__pyx_v_k, __pyx_t_2); __pyx_t_2 = 0; __Pyx_XDECREF_SET(__pyx_7genexpr__pyx_v_v, __pyx_t_9); __pyx_t_9 = 0; - __pyx_t_4 = __Pyx_GetItemInt(__pyx_7genexpr__pyx_v_v, 0, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_SharedReference); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 740, __pyx_L12_error) + __pyx_t_4 = __Pyx_GetItemInt(__pyx_7genexpr__pyx_v_v, 0, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_SharedReference); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 732, __pyx_L12_error) __Pyx_GOTREF(__pyx_t_4); - if (unlikely(PyDict_SetItem(__pyx_t_1, (PyObject*)__pyx_7genexpr__pyx_v_k, (PyObject*)__pyx_t_4))) __PYX_ERR(0, 740, __pyx_L12_error) + if (unlikely(PyDict_SetItem(__pyx_t_1, (PyObject*)__pyx_7genexpr__pyx_v_k, (PyObject*)__pyx_t_4))) __PYX_ERR(0, 732, __pyx_L12_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; @@ -13780,7 +13730,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d __pyx_v_col_names_to_types = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - /* "pyreadstat/_readstat_writer.pyx":749 + /* "pyreadstat/_readstat_writer.pyx":741 * cdef int col_indx * cdef bytes cur_col_label * cdef int col_label_count = 0 # <<<<<<<<<<<<<< @@ -13789,7 +13739,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d */ __pyx_v_col_label_count = 0; - /* "pyreadstat/_readstat_writer.pyx":758 + /* "pyreadstat/_readstat_writer.pyx":750 * cdef object values * cdef dict value_labels * cdef int lblset_cnt = 0 # <<<<<<<<<<<<<< @@ -13798,38 +13748,148 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d */ __pyx_v_lblset_cnt = 0; - /* "pyreadstat/_readstat_writer.pyx":766 + /* "pyreadstat/_readstat_writer.pyx":758 * cdef float mulfac, conv2secs * cdef readstat_string_ref_t* strref * cdef dict strref_map = dict() # <<<<<<<<<<<<<< * cdef int strref_cnt * cdef object strref_indx */ - __pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 766, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 758, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_strref_map = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - /* "pyreadstat/_readstat_writer.pyx":771 + /* "pyreadstat/_readstat_writer.pyx":763 * * * cdef int fd = open_file(filename_bytes) # <<<<<<<<<<<<<< + * if fd == -1: + * raise PyreadstatError( +*/ + __pyx_t_12 = __pyx_f_10pyreadstat_16_readstat_writer_open_file(__pyx_v_filename_bytes); if (unlikely(__pyx_t_12 == ((int)-1) && PyErr_Occurred())) __PYX_ERR(0, 763, __pyx_L1_error) + __pyx_v_fd = __pyx_t_12; + + /* "pyreadstat/_readstat_writer.pyx":764 + * + * cdef int fd = open_file(filename_bytes) + * if fd == -1: # <<<<<<<<<<<<<< + * raise PyreadstatError( + * "Could not open file '%s' for writing: %s (errno %d). " +*/ + __pyx_t_6 = (__pyx_v_fd == -1L); + if (unlikely(__pyx_t_6)) { + + /* "pyreadstat/_readstat_writer.pyx":765 + * cdef int fd = open_file(filename_bytes) + * if fd == -1: + * raise PyreadstatError( # <<<<<<<<<<<<<< + * "Could not open file '%s' for writing: %s (errno %d). " + * "The file may be locked by another process or you may not have write permission." +*/ + __pyx_t_3 = NULL; + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 765, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + + /* "pyreadstat/_readstat_writer.pyx":768 + * "Could not open file '%s' for writing: %s (errno %d). " + * "The file may be locked by another process or you may not have write permission." + * % (os.fsdecode(filename_bytes), os.strerror(errno), errno)) # <<<<<<<<<<<<<< * writer = readstat_writer_init() * */ - __pyx_t_12 = __pyx_f_10pyreadstat_16_readstat_writer_open_file(__pyx_v_filename_bytes); if (unlikely(__pyx_t_12 == ((int)-1) && PyErr_Occurred())) __PYX_ERR(0, 771, __pyx_L1_error) - __pyx_v_fd = __pyx_t_12; + __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_os); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 768, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_fsdecode); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 768, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __pyx_t_9 = __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v_filename_bytes); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 768, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_2 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Str(__pyx_t_9), __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 768, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_os); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 768, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_strerror); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 768, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_10); + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __pyx_t_9 = __Pyx_PyLong_From_int(errno); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 768, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __pyx_t_13 = __Pyx_PyObject_CallOneArg(__pyx_t_10, __pyx_t_9); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 768, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __pyx_t_9 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Str(__pyx_t_13), __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 768, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; + __pyx_t_13 = __Pyx_PyUnicode_From_int(errno, 0, ' ', 'd'); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 768, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); + __pyx_t_14[0] = __pyx_mstate_global->__pyx_kp_u_Could_not_open_file; + __pyx_t_14[1] = __pyx_t_2; + __pyx_t_14[2] = __pyx_mstate_global->__pyx_kp_u_for_writing; + __pyx_t_14[3] = __pyx_t_9; + __pyx_t_14[4] = __pyx_mstate_global->__pyx_kp_u_errno; + __pyx_t_14[5] = __pyx_t_13; + __pyx_t_14[6] = __pyx_mstate_global->__pyx_kp_u_The_file_may_be_locked_by_anoth; + + /* "pyreadstat/_readstat_writer.pyx":766 + * if fd == -1: + * raise PyreadstatError( + * "Could not open file '%s' for writing: %s (errno %d). " # <<<<<<<<<<<<<< + * "The file may be locked by another process or you may not have write permission." + * % (os.fsdecode(filename_bytes), os.strerror(errno), errno)) +*/ + __pyx_t_10 = __Pyx_PyUnicode_Join(__pyx_t_14, 7, 21 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_2) + 15 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_9) + 8 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_13) + 82, 127 | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_2) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_9)); + if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 766, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_10); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; + __pyx_t_5 = 1; + #if CYTHON_UNPACK_METHODS + if (unlikely(PyMethod_Check(__pyx_t_4))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4); + assert(__pyx_t_3); + PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(__pyx__function); + __Pyx_DECREF_SET(__pyx_t_4, __pyx__function); + __pyx_t_5 = 0; + } + #endif + { + PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_t_10}; + __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 765, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + } + __Pyx_Raise(__pyx_t_1, 0, 0, 0); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __PYX_ERR(0, 765, __pyx_L1_error) - /* "pyreadstat/_readstat_writer.pyx":772 + /* "pyreadstat/_readstat_writer.pyx":764 * * cdef int fd = open_file(filename_bytes) + * if fd == -1: # <<<<<<<<<<<<<< + * raise PyreadstatError( + * "Could not open file '%s' for writing: %s (errno %d). " +*/ + } + + /* "pyreadstat/_readstat_writer.pyx":769 + * "The file may be locked by another process or you may not have write permission." + * % (os.fsdecode(filename_bytes), os.strerror(errno), errno)) * writer = readstat_writer_init() # <<<<<<<<<<<<<< * * try: */ __pyx_v_writer = readstat_writer_init(); - /* "pyreadstat/_readstat_writer.pyx":774 + /* "pyreadstat/_readstat_writer.pyx":771 * writer = readstat_writer_init() * * try: # <<<<<<<<<<<<<< @@ -13840,22 +13900,22 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d { __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign - __Pyx_ExceptionSave(&__pyx_t_13, &__pyx_t_14, &__pyx_t_15); - __Pyx_XGOTREF(__pyx_t_13); - __Pyx_XGOTREF(__pyx_t_14); + __Pyx_ExceptionSave(&__pyx_t_15, &__pyx_t_16, &__pyx_t_17); __Pyx_XGOTREF(__pyx_t_15); + __Pyx_XGOTREF(__pyx_t_16); + __Pyx_XGOTREF(__pyx_t_17); /*try:*/ { - /* "pyreadstat/_readstat_writer.pyx":776 + /* "pyreadstat/_readstat_writer.pyx":773 * try: * * check_exit_status(readstat_set_data_writer(writer, write_bytes)) # <<<<<<<<<<<<<< * * if file_label: */ - __pyx_f_10pyreadstat_16_readstat_parser_check_exit_status(readstat_set_data_writer(__pyx_v_writer, __pyx_f_10pyreadstat_16_readstat_writer_write_bytes)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 776, __pyx_L22_error) + __pyx_f_10pyreadstat_16_readstat_parser_check_exit_status(readstat_set_data_writer(__pyx_v_writer, __pyx_f_10pyreadstat_16_readstat_writer_write_bytes)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 773, __pyx_L23_error) - /* "pyreadstat/_readstat_writer.pyx":778 + /* "pyreadstat/_readstat_writer.pyx":775 * check_exit_status(readstat_set_data_writer(writer, write_bytes)) * * if file_label: # <<<<<<<<<<<<<< @@ -13866,13 +13926,13 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d else { Py_ssize_t __pyx_temp = __Pyx_PyUnicode_IS_TRUE(__pyx_v_file_label); - if (unlikely(((!CYTHON_ASSUME_SAFE_SIZE) && __pyx_temp < 0))) __PYX_ERR(0, 778, __pyx_L22_error) + if (unlikely(((!CYTHON_ASSUME_SAFE_SIZE) && __pyx_temp < 0))) __PYX_ERR(0, 775, __pyx_L23_error) __pyx_t_6 = (__pyx_temp != 0); } if (__pyx_t_6) { - /* "pyreadstat/_readstat_writer.pyx":779 + /* "pyreadstat/_readstat_writer.pyx":776 * * if file_label: * file_label_bytes = file_label.encode("utf-8") # <<<<<<<<<<<<<< @@ -13881,33 +13941,33 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d */ if (unlikely(__pyx_v_file_label == Py_None)) { PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "encode"); - __PYX_ERR(0, 779, __pyx_L22_error) + __PYX_ERR(0, 776, __pyx_L23_error) } - __pyx_t_1 = PyUnicode_AsUTF8String(__pyx_v_file_label); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 779, __pyx_L22_error) + __pyx_t_1 = PyUnicode_AsUTF8String(__pyx_v_file_label); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 776, __pyx_L23_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_file_label_bytes = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - /* "pyreadstat/_readstat_writer.pyx":780 + /* "pyreadstat/_readstat_writer.pyx":777 * if file_label: * file_label_bytes = file_label.encode("utf-8") * file_labl = file_label_bytes # <<<<<<<<<<<<<< * check_exit_status(readstat_writer_set_file_label(writer, file_labl)) * */ - __pyx_t_16 = __Pyx_PyBytes_AsWritableString(__pyx_v_file_label_bytes); if (unlikely((!__pyx_t_16) && PyErr_Occurred())) __PYX_ERR(0, 780, __pyx_L22_error) - __pyx_v_file_labl = ((char *)__pyx_t_16); + __pyx_t_18 = __Pyx_PyBytes_AsWritableString(__pyx_v_file_label_bytes); if (unlikely((!__pyx_t_18) && PyErr_Occurred())) __PYX_ERR(0, 777, __pyx_L23_error) + __pyx_v_file_labl = ((char *)__pyx_t_18); - /* "pyreadstat/_readstat_writer.pyx":781 + /* "pyreadstat/_readstat_writer.pyx":778 * file_label_bytes = file_label.encode("utf-8") * file_labl = file_label_bytes * check_exit_status(readstat_writer_set_file_label(writer, file_labl)) # <<<<<<<<<<<<<< * * if note: */ - __pyx_f_10pyreadstat_16_readstat_parser_check_exit_status(readstat_writer_set_file_label(__pyx_v_writer, __pyx_v_file_labl)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 781, __pyx_L22_error) + __pyx_f_10pyreadstat_16_readstat_parser_check_exit_status(readstat_writer_set_file_label(__pyx_v_writer, __pyx_v_file_labl)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 778, __pyx_L23_error) - /* "pyreadstat/_readstat_writer.pyx":778 + /* "pyreadstat/_readstat_writer.pyx":775 * check_exit_status(readstat_set_data_writer(writer, write_bytes)) * * if file_label: # <<<<<<<<<<<<<< @@ -13916,44 +13976,44 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d */ } - /* "pyreadstat/_readstat_writer.pyx":783 + /* "pyreadstat/_readstat_writer.pyx":780 * check_exit_status(readstat_writer_set_file_label(writer, file_labl)) * * if note: # <<<<<<<<<<<<<< * if type(note) == str: * note = [note] */ - __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_v_note); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(0, 783, __pyx_L22_error) + __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_v_note); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(0, 780, __pyx_L23_error) if (__pyx_t_6) { - /* "pyreadstat/_readstat_writer.pyx":784 + /* "pyreadstat/_readstat_writer.pyx":781 * * if note: * if type(note) == str: # <<<<<<<<<<<<<< * note = [note] * if type(note) == list: */ - __pyx_t_1 = PyObject_RichCompare(((PyObject *)Py_TYPE(__pyx_v_note)), ((PyObject *)(&PyUnicode_Type)), Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 784, __pyx_L22_error) - __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(0, 784, __pyx_L22_error) + __pyx_t_1 = PyObject_RichCompare(((PyObject *)Py_TYPE(__pyx_v_note)), ((PyObject *)(&PyUnicode_Type)), Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 781, __pyx_L23_error) + __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(0, 781, __pyx_L23_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_6) { - /* "pyreadstat/_readstat_writer.pyx":785 + /* "pyreadstat/_readstat_writer.pyx":782 * if note: * if type(note) == str: * note = [note] # <<<<<<<<<<<<<< * if type(note) == list: * for line in note: */ - __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 785, __pyx_L22_error) + __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 782, __pyx_L23_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_note); __Pyx_GIVEREF(__pyx_v_note); - if (__Pyx_PyList_SET_ITEM(__pyx_t_1, 0, __pyx_v_note) != (0)) __PYX_ERR(0, 785, __pyx_L22_error); + if (__Pyx_PyList_SET_ITEM(__pyx_t_1, 0, __pyx_v_note) != (0)) __PYX_ERR(0, 782, __pyx_L23_error); __Pyx_DECREF_SET(__pyx_v_note, __pyx_t_1); __pyx_t_1 = 0; - /* "pyreadstat/_readstat_writer.pyx":784 + /* "pyreadstat/_readstat_writer.pyx":781 * * if note: * if type(note) == str: # <<<<<<<<<<<<<< @@ -13962,19 +14022,19 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d */ } - /* "pyreadstat/_readstat_writer.pyx":786 + /* "pyreadstat/_readstat_writer.pyx":783 * if type(note) == str: * note = [note] * if type(note) == list: # <<<<<<<<<<<<<< * for line in note: * readstat_add_note(writer, line.encode("utf-8")) */ - __pyx_t_1 = PyObject_RichCompare(((PyObject *)Py_TYPE(__pyx_v_note)), ((PyObject *)(&PyList_Type)), Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 786, __pyx_L22_error) - __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(0, 786, __pyx_L22_error) + __pyx_t_1 = PyObject_RichCompare(((PyObject *)Py_TYPE(__pyx_v_note)), ((PyObject *)(&PyList_Type)), Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 783, __pyx_L23_error) + __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(0, 783, __pyx_L23_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (likely(__pyx_t_6)) { - /* "pyreadstat/_readstat_writer.pyx":787 + /* "pyreadstat/_readstat_writer.pyx":784 * note = [note] * if type(note) == list: * for line in note: # <<<<<<<<<<<<<< @@ -13986,9 +14046,9 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d __pyx_t_7 = 0; __pyx_t_8 = NULL; } else { - __pyx_t_7 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_v_note); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 787, __pyx_L22_error) + __pyx_t_7 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_v_note); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 784, __pyx_L23_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_8 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 787, __pyx_L22_error) + __pyx_t_8 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 784, __pyx_L23_error) } for (;;) { if (likely(!__pyx_t_8)) { @@ -13996,65 +14056,65 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d { Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_1); #if !CYTHON_ASSUME_SAFE_SIZE - if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 787, __pyx_L22_error) + if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 784, __pyx_L23_error) #endif if (__pyx_t_7 >= __pyx_temp) break; } - __pyx_t_3 = __Pyx_PyList_GetItemRefFast(__pyx_t_1, __pyx_t_7, __Pyx_ReferenceSharing_OwnStrongReference); + __pyx_t_4 = __Pyx_PyList_GetItemRefFast(__pyx_t_1, __pyx_t_7, __Pyx_ReferenceSharing_OwnStrongReference); ++__pyx_t_7; } else { { Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_1); #if !CYTHON_ASSUME_SAFE_SIZE - if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 787, __pyx_L22_error) + if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 784, __pyx_L23_error) #endif if (__pyx_t_7 >= __pyx_temp) break; } #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_3 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_7)); + __pyx_t_4 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_7)); #else - __pyx_t_3 = __Pyx_PySequence_ITEM(__pyx_t_1, __pyx_t_7); + __pyx_t_4 = __Pyx_PySequence_ITEM(__pyx_t_1, __pyx_t_7); #endif ++__pyx_t_7; } - if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 787, __pyx_L22_error) + if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 784, __pyx_L23_error) } else { - __pyx_t_3 = __pyx_t_8(__pyx_t_1); - if (unlikely(!__pyx_t_3)) { + __pyx_t_4 = __pyx_t_8(__pyx_t_1); + if (unlikely(!__pyx_t_4)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { - if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(0, 787, __pyx_L22_error) + if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(0, 784, __pyx_L23_error) PyErr_Clear(); } break; } } - __Pyx_GOTREF(__pyx_t_3); - __Pyx_XDECREF_SET(__pyx_v_line, __pyx_t_3); - __pyx_t_3 = 0; + __Pyx_GOTREF(__pyx_t_4); + __Pyx_XDECREF_SET(__pyx_v_line, __pyx_t_4); + __pyx_t_4 = 0; - /* "pyreadstat/_readstat_writer.pyx":788 + /* "pyreadstat/_readstat_writer.pyx":785 * if type(note) == list: * for line in note: * readstat_add_note(writer, line.encode("utf-8")) # <<<<<<<<<<<<<< * else: * raise PyreadstatError(f"note should be either str or list, got {type(note)}") */ - __pyx_t_4 = __pyx_v_line; - __Pyx_INCREF(__pyx_t_4); + __pyx_t_10 = __pyx_v_line; + __Pyx_INCREF(__pyx_t_10); __pyx_t_5 = 0; { - PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_mstate_global->__pyx_kp_u_utf_8}; - __pyx_t_3 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_encode, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 788, __pyx_L22_error) - __Pyx_GOTREF(__pyx_t_3); + PyObject *__pyx_callargs[2] = {__pyx_t_10, __pyx_mstate_global->__pyx_kp_u_utf_8}; + __pyx_t_4 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_encode, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; + if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 785, __pyx_L23_error) + __Pyx_GOTREF(__pyx_t_4); } - __pyx_t_17 = __Pyx_PyObject_AsString(__pyx_t_3); if (unlikely((!__pyx_t_17) && PyErr_Occurred())) __PYX_ERR(0, 788, __pyx_L22_error) - readstat_add_note(__pyx_v_writer, __pyx_t_17); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_19 = __Pyx_PyObject_AsString(__pyx_t_4); if (unlikely((!__pyx_t_19) && PyErr_Occurred())) __PYX_ERR(0, 785, __pyx_L23_error) + readstat_add_note(__pyx_v_writer, __pyx_t_19); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - /* "pyreadstat/_readstat_writer.pyx":787 + /* "pyreadstat/_readstat_writer.pyx":784 * note = [note] * if type(note) == list: * for line in note: # <<<<<<<<<<<<<< @@ -14064,17 +14124,17 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "pyreadstat/_readstat_writer.pyx":786 + /* "pyreadstat/_readstat_writer.pyx":783 * if type(note) == str: * note = [note] * if type(note) == list: # <<<<<<<<<<<<<< * for line in note: * readstat_add_note(writer, line.encode("utf-8")) */ - goto __pyx_L31; + goto __pyx_L32; } - /* "pyreadstat/_readstat_writer.pyx":790 + /* "pyreadstat/_readstat_writer.pyx":787 * readstat_add_note(writer, line.encode("utf-8")) * else: * raise PyreadstatError(f"note should be either str or list, got {type(note)}") # <<<<<<<<<<<<<< @@ -14082,42 +14142,42 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d * if file_format_version > -1: */ /*else*/ { - __pyx_t_3 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 790, __pyx_L22_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_9 = __Pyx_PyObject_FormatSimple(((PyObject *)Py_TYPE(__pyx_v_note)), __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 790, __pyx_L22_error) - __Pyx_GOTREF(__pyx_t_9); - __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_mstate_global->__pyx_kp_u_note_should_be_either_str_or_lis, __pyx_t_9); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 790, __pyx_L22_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __pyx_t_4 = NULL; + __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 787, __pyx_L23_error) + __Pyx_GOTREF(__pyx_t_10); + __pyx_t_3 = __Pyx_PyObject_FormatSimple(((PyObject *)Py_TYPE(__pyx_v_note)), __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 787, __pyx_L23_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_13 = __Pyx_PyUnicode_Concat(__pyx_mstate_global->__pyx_kp_u_note_should_be_either_str_or_lis, __pyx_t_3); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 787, __pyx_L23_error) + __Pyx_GOTREF(__pyx_t_13); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_5 = 1; #if CYTHON_UNPACK_METHODS - if (unlikely(PyMethod_Check(__pyx_t_4))) { - __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4); - assert(__pyx_t_3); - PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4); - __Pyx_INCREF(__pyx_t_3); + if (unlikely(PyMethod_Check(__pyx_t_10))) { + __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_10); + assert(__pyx_t_4); + PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_10); + __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(__pyx__function); - __Pyx_DECREF_SET(__pyx_t_4, __pyx__function); + __Pyx_DECREF_SET(__pyx_t_10, __pyx__function); __pyx_t_5 = 0; } #endif { - PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_t_2}; - __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 790, __pyx_L22_error) + PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_13}; + __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_10, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 787, __pyx_L23_error) __Pyx_GOTREF(__pyx_t_1); } __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __PYX_ERR(0, 790, __pyx_L22_error) + __PYX_ERR(0, 787, __pyx_L23_error) } - __pyx_L31:; + __pyx_L32:; - /* "pyreadstat/_readstat_writer.pyx":783 + /* "pyreadstat/_readstat_writer.pyx":780 * check_exit_status(readstat_writer_set_file_label(writer, file_labl)) * * if note: # <<<<<<<<<<<<<< @@ -14126,7 +14186,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d */ } - /* "pyreadstat/_readstat_writer.pyx":792 + /* "pyreadstat/_readstat_writer.pyx":789 * raise PyreadstatError(f"note should be either str or list, got {type(note)}") * * if file_format_version > -1: # <<<<<<<<<<<<<< @@ -14136,16 +14196,16 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d __pyx_t_6 = (__pyx_v_file_format_version > -1L); if (__pyx_t_6) { - /* "pyreadstat/_readstat_writer.pyx":793 + /* "pyreadstat/_readstat_writer.pyx":790 * * if file_format_version > -1: * check_exit_status(readstat_writer_set_file_format_version(writer, file_format_version)) # <<<<<<<<<<<<<< * * if row_compression: */ - __pyx_f_10pyreadstat_16_readstat_parser_check_exit_status(readstat_writer_set_file_format_version(__pyx_v_writer, __pyx_v_file_format_version)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 793, __pyx_L22_error) + __pyx_f_10pyreadstat_16_readstat_parser_check_exit_status(readstat_writer_set_file_format_version(__pyx_v_writer, __pyx_v_file_format_version)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 790, __pyx_L23_error) - /* "pyreadstat/_readstat_writer.pyx":792 + /* "pyreadstat/_readstat_writer.pyx":789 * raise PyreadstatError(f"note should be either str or list, got {type(note)}") * * if file_format_version > -1: # <<<<<<<<<<<<<< @@ -14154,7 +14214,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d */ } - /* "pyreadstat/_readstat_writer.pyx":795 + /* "pyreadstat/_readstat_writer.pyx":792 * check_exit_status(readstat_writer_set_file_format_version(writer, file_format_version)) * * if row_compression: # <<<<<<<<<<<<<< @@ -14163,16 +14223,16 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d */ if (__pyx_v_row_compression) { - /* "pyreadstat/_readstat_writer.pyx":796 + /* "pyreadstat/_readstat_writer.pyx":793 * * if row_compression: * check_exit_status(readstat_writer_set_compression(writer, READSTAT_COMPRESS_ROWS)) # <<<<<<<<<<<<<< * * # table name is used only for xpt files */ - __pyx_f_10pyreadstat_16_readstat_parser_check_exit_status(readstat_writer_set_compression(__pyx_v_writer, READSTAT_COMPRESS_ROWS)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 796, __pyx_L22_error) + __pyx_f_10pyreadstat_16_readstat_parser_check_exit_status(readstat_writer_set_compression(__pyx_v_writer, READSTAT_COMPRESS_ROWS)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 793, __pyx_L23_error) - /* "pyreadstat/_readstat_writer.pyx":795 + /* "pyreadstat/_readstat_writer.pyx":792 * check_exit_status(readstat_writer_set_file_format_version(writer, file_format_version)) * * if row_compression: # <<<<<<<<<<<<<< @@ -14181,7 +14241,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d */ } - /* "pyreadstat/_readstat_writer.pyx":799 + /* "pyreadstat/_readstat_writer.pyx":796 * * # table name is used only for xpt files * if table_name: # <<<<<<<<<<<<<< @@ -14192,13 +14252,13 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d else { Py_ssize_t __pyx_temp = __Pyx_PyUnicode_IS_TRUE(__pyx_v_table_name); - if (unlikely(((!CYTHON_ASSUME_SAFE_SIZE) && __pyx_temp < 0))) __PYX_ERR(0, 799, __pyx_L22_error) + if (unlikely(((!CYTHON_ASSUME_SAFE_SIZE) && __pyx_temp < 0))) __PYX_ERR(0, 796, __pyx_L23_error) __pyx_t_6 = (__pyx_temp != 0); } if (__pyx_t_6) { - /* "pyreadstat/_readstat_writer.pyx":800 + /* "pyreadstat/_readstat_writer.pyx":797 * # table name is used only for xpt files * if table_name: * table_name_bytes = table_name.encode("utf-8") # <<<<<<<<<<<<<< @@ -14207,33 +14267,33 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d */ if (unlikely(__pyx_v_table_name == Py_None)) { PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "encode"); - __PYX_ERR(0, 800, __pyx_L22_error) + __PYX_ERR(0, 797, __pyx_L23_error) } - __pyx_t_1 = PyUnicode_AsUTF8String(__pyx_v_table_name); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 800, __pyx_L22_error) + __pyx_t_1 = PyUnicode_AsUTF8String(__pyx_v_table_name); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 797, __pyx_L23_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_table_name_bytes = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - /* "pyreadstat/_readstat_writer.pyx":801 + /* "pyreadstat/_readstat_writer.pyx":798 * if table_name: * table_name_bytes = table_name.encode("utf-8") * tab_name = table_name_bytes # <<<<<<<<<<<<<< * check_exit_status(readstat_writer_set_table_name(writer, tab_name)) * */ - __pyx_t_16 = __Pyx_PyBytes_AsWritableString(__pyx_v_table_name_bytes); if (unlikely((!__pyx_t_16) && PyErr_Occurred())) __PYX_ERR(0, 801, __pyx_L22_error) - __pyx_v_tab_name = ((char *)__pyx_t_16); + __pyx_t_18 = __Pyx_PyBytes_AsWritableString(__pyx_v_table_name_bytes); if (unlikely((!__pyx_t_18) && PyErr_Occurred())) __PYX_ERR(0, 798, __pyx_L23_error) + __pyx_v_tab_name = ((char *)__pyx_t_18); - /* "pyreadstat/_readstat_writer.pyx":802 + /* "pyreadstat/_readstat_writer.pyx":799 * table_name_bytes = table_name.encode("utf-8") * tab_name = table_name_bytes * check_exit_status(readstat_writer_set_table_name(writer, tab_name)) # <<<<<<<<<<<<<< * * # add variables */ - __pyx_f_10pyreadstat_16_readstat_parser_check_exit_status(readstat_writer_set_table_name(__pyx_v_writer, __pyx_v_tab_name)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 802, __pyx_L22_error) + __pyx_f_10pyreadstat_16_readstat_parser_check_exit_status(readstat_writer_set_table_name(__pyx_v_writer, __pyx_v_tab_name)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 799, __pyx_L23_error) - /* "pyreadstat/_readstat_writer.pyx":799 + /* "pyreadstat/_readstat_writer.pyx":796 * * # table name is used only for xpt files * if table_name: # <<<<<<<<<<<<<< @@ -14242,73 +14302,73 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d */ } - /* "pyreadstat/_readstat_writer.pyx":805 + /* "pyreadstat/_readstat_writer.pyx":802 * * # add variables * if column_labels: # <<<<<<<<<<<<<< * if type(column_labels) != list and type(column_labels) != dict: * raise PyreadstatError("column_labels must be either list or dict!") */ - __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_v_column_labels); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(0, 805, __pyx_L22_error) + __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_v_column_labels); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(0, 802, __pyx_L23_error) if (__pyx_t_6) { - /* "pyreadstat/_readstat_writer.pyx":806 + /* "pyreadstat/_readstat_writer.pyx":803 * # add variables * if column_labels: * if type(column_labels) != list and type(column_labels) != dict: # <<<<<<<<<<<<<< * raise PyreadstatError("column_labels must be either list or dict!") * if type(column_labels) == dict: */ - __pyx_t_1 = PyObject_RichCompare(((PyObject *)Py_TYPE(__pyx_v_column_labels)), ((PyObject *)(&PyList_Type)), Py_NE); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 806, __pyx_L22_error) - __pyx_t_18 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_18 < 0))) __PYX_ERR(0, 806, __pyx_L22_error) + __pyx_t_1 = PyObject_RichCompare(((PyObject *)Py_TYPE(__pyx_v_column_labels)), ((PyObject *)(&PyList_Type)), Py_NE); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 803, __pyx_L23_error) + __pyx_t_20 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_20 < 0))) __PYX_ERR(0, 803, __pyx_L23_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - if (__pyx_t_18) { + if (__pyx_t_20) { } else { - __pyx_t_6 = __pyx_t_18; - goto __pyx_L40_bool_binop_done; + __pyx_t_6 = __pyx_t_20; + goto __pyx_L41_bool_binop_done; } - __pyx_t_1 = PyObject_RichCompare(((PyObject *)Py_TYPE(__pyx_v_column_labels)), ((PyObject *)(&PyDict_Type)), Py_NE); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 806, __pyx_L22_error) - __pyx_t_18 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_18 < 0))) __PYX_ERR(0, 806, __pyx_L22_error) + __pyx_t_1 = PyObject_RichCompare(((PyObject *)Py_TYPE(__pyx_v_column_labels)), ((PyObject *)(&PyDict_Type)), Py_NE); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 803, __pyx_L23_error) + __pyx_t_20 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_20 < 0))) __PYX_ERR(0, 803, __pyx_L23_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_6 = __pyx_t_18; - __pyx_L40_bool_binop_done:; + __pyx_t_6 = __pyx_t_20; + __pyx_L41_bool_binop_done:; if (unlikely(__pyx_t_6)) { - /* "pyreadstat/_readstat_writer.pyx":807 + /* "pyreadstat/_readstat_writer.pyx":804 * if column_labels: * if type(column_labels) != list and type(column_labels) != dict: * raise PyreadstatError("column_labels must be either list or dict!") # <<<<<<<<<<<<<< * if type(column_labels) == dict: * col_label_temp = list() */ - __pyx_t_4 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 807, __pyx_L22_error) - __Pyx_GOTREF(__pyx_t_2); + __pyx_t_10 = NULL; + __Pyx_GetModuleGlobalName(__pyx_t_13, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 804, __pyx_L23_error) + __Pyx_GOTREF(__pyx_t_13); __pyx_t_5 = 1; #if CYTHON_UNPACK_METHODS - if (unlikely(PyMethod_Check(__pyx_t_2))) { - __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_2); - assert(__pyx_t_4); - PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_2); - __Pyx_INCREF(__pyx_t_4); + if (unlikely(PyMethod_Check(__pyx_t_13))) { + __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_13); + assert(__pyx_t_10); + PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_13); + __Pyx_INCREF(__pyx_t_10); __Pyx_INCREF(__pyx__function); - __Pyx_DECREF_SET(__pyx_t_2, __pyx__function); + __Pyx_DECREF_SET(__pyx_t_13, __pyx__function); __pyx_t_5 = 0; } #endif { - PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_mstate_global->__pyx_kp_u_column_labels_must_be_either_lis}; - __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_2, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 807, __pyx_L22_error) + PyObject *__pyx_callargs[2] = {__pyx_t_10, __pyx_mstate_global->__pyx_kp_u_column_labels_must_be_either_lis}; + __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_13, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 804, __pyx_L23_error) __Pyx_GOTREF(__pyx_t_1); } __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __PYX_ERR(0, 807, __pyx_L22_error) + __PYX_ERR(0, 804, __pyx_L23_error) - /* "pyreadstat/_readstat_writer.pyx":806 + /* "pyreadstat/_readstat_writer.pyx":803 * # add variables * if column_labels: * if type(column_labels) != list and type(column_labels) != dict: # <<<<<<<<<<<<<< @@ -14317,31 +14377,31 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d */ } - /* "pyreadstat/_readstat_writer.pyx":808 + /* "pyreadstat/_readstat_writer.pyx":805 * if type(column_labels) != list and type(column_labels) != dict: * raise PyreadstatError("column_labels must be either list or dict!") * if type(column_labels) == dict: # <<<<<<<<<<<<<< * col_label_temp = list() * for col_indx in range(col_count): */ - __pyx_t_1 = PyObject_RichCompare(((PyObject *)Py_TYPE(__pyx_v_column_labels)), ((PyObject *)(&PyDict_Type)), Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 808, __pyx_L22_error) - __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(0, 808, __pyx_L22_error) + __pyx_t_1 = PyObject_RichCompare(((PyObject *)Py_TYPE(__pyx_v_column_labels)), ((PyObject *)(&PyDict_Type)), Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 805, __pyx_L23_error) + __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(0, 805, __pyx_L23_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_6) { - /* "pyreadstat/_readstat_writer.pyx":809 + /* "pyreadstat/_readstat_writer.pyx":806 * raise PyreadstatError("column_labels must be either list or dict!") * if type(column_labels) == dict: * col_label_temp = list() # <<<<<<<<<<<<<< * for col_indx in range(col_count): * variable_name = col_names[col_indx] */ - __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 809, __pyx_L22_error) + __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 806, __pyx_L23_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_col_label_temp = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - /* "pyreadstat/_readstat_writer.pyx":810 + /* "pyreadstat/_readstat_writer.pyx":807 * if type(column_labels) == dict: * col_label_temp = list() * for col_indx in range(col_count): # <<<<<<<<<<<<<< @@ -14349,11 +14409,11 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d * if variable_name in column_labels.keys(): */ __pyx_t_12 = __pyx_v_col_count; - __pyx_t_19 = __pyx_t_12; - for (__pyx_t_20 = 0; __pyx_t_20 < __pyx_t_19; __pyx_t_20+=1) { - __pyx_v_col_indx = __pyx_t_20; + __pyx_t_21 = __pyx_t_12; + for (__pyx_t_22 = 0; __pyx_t_22 < __pyx_t_21; __pyx_t_22+=1) { + __pyx_v_col_indx = __pyx_t_22; - /* "pyreadstat/_readstat_writer.pyx":811 + /* "pyreadstat/_readstat_writer.pyx":808 * col_label_temp = list() * for col_indx in range(col_count): * variable_name = col_names[col_indx] # <<<<<<<<<<<<<< @@ -14362,57 +14422,57 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d */ if (unlikely(__pyx_v_col_names == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 811, __pyx_L22_error) + __PYX_ERR(0, 808, __pyx_L23_error) } - __pyx_t_1 = __Pyx_GetItemInt_List(__pyx_v_col_names, __pyx_v_col_indx, int, 1, __Pyx_PyLong_From_int, 1, 1, 1, 1, __Pyx_ReferenceSharing_OwnStrongReference); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 811, __pyx_L22_error) + __pyx_t_1 = __Pyx_GetItemInt_List(__pyx_v_col_names, __pyx_v_col_indx, int, 1, __Pyx_PyLong_From_int, 1, 1, 1, 1, __Pyx_ReferenceSharing_OwnStrongReference); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 808, __pyx_L23_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_XDECREF_SET(__pyx_v_variable_name, __pyx_t_1); __pyx_t_1 = 0; - /* "pyreadstat/_readstat_writer.pyx":812 + /* "pyreadstat/_readstat_writer.pyx":809 * for col_indx in range(col_count): * variable_name = col_names[col_indx] * if variable_name in column_labels.keys(): # <<<<<<<<<<<<<< * col_label_temp.append(column_labels[variable_name]) * else: */ - __pyx_t_2 = __pyx_v_column_labels; - __Pyx_INCREF(__pyx_t_2); + __pyx_t_13 = __pyx_v_column_labels; + __Pyx_INCREF(__pyx_t_13); __pyx_t_5 = 0; { - PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL}; + PyObject *__pyx_callargs[2] = {__pyx_t_13, NULL}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_keys, __pyx_callargs+__pyx_t_5, (1-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 812, __pyx_L22_error) + __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 809, __pyx_L23_error) __Pyx_GOTREF(__pyx_t_1); } - __pyx_t_6 = (__Pyx_PySequence_ContainsTF(__pyx_v_variable_name, __pyx_t_1, Py_EQ)); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(0, 812, __pyx_L22_error) + __pyx_t_6 = (__Pyx_PySequence_ContainsTF(__pyx_v_variable_name, __pyx_t_1, Py_EQ)); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(0, 809, __pyx_L23_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_6) { - /* "pyreadstat/_readstat_writer.pyx":813 + /* "pyreadstat/_readstat_writer.pyx":810 * variable_name = col_names[col_indx] * if variable_name in column_labels.keys(): * col_label_temp.append(column_labels[variable_name]) # <<<<<<<<<<<<<< * else: * col_label_temp.append(None) */ - __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_v_column_labels, __pyx_v_variable_name); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 813, __pyx_L22_error) + __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_v_column_labels, __pyx_v_variable_name); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 810, __pyx_L23_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_21 = __Pyx_PyList_Append(__pyx_v_col_label_temp, __pyx_t_1); if (unlikely(__pyx_t_21 == ((int)-1))) __PYX_ERR(0, 813, __pyx_L22_error) + __pyx_t_23 = __Pyx_PyList_Append(__pyx_v_col_label_temp, __pyx_t_1); if (unlikely(__pyx_t_23 == ((int)-1))) __PYX_ERR(0, 810, __pyx_L23_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "pyreadstat/_readstat_writer.pyx":812 + /* "pyreadstat/_readstat_writer.pyx":809 * for col_indx in range(col_count): * variable_name = col_names[col_indx] * if variable_name in column_labels.keys(): # <<<<<<<<<<<<<< * col_label_temp.append(column_labels[variable_name]) * else: */ - goto __pyx_L45; + goto __pyx_L46; } - /* "pyreadstat/_readstat_writer.pyx":815 + /* "pyreadstat/_readstat_writer.pyx":812 * col_label_temp.append(column_labels[variable_name]) * else: * col_label_temp.append(None) # <<<<<<<<<<<<<< @@ -14420,12 +14480,12 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d * */ /*else*/ { - __pyx_t_21 = __Pyx_PyList_Append(__pyx_v_col_label_temp, Py_None); if (unlikely(__pyx_t_21 == ((int)-1))) __PYX_ERR(0, 815, __pyx_L22_error) + __pyx_t_23 = __Pyx_PyList_Append(__pyx_v_col_label_temp, Py_None); if (unlikely(__pyx_t_23 == ((int)-1))) __PYX_ERR(0, 812, __pyx_L23_error) } - __pyx_L45:; + __pyx_L46:; } - /* "pyreadstat/_readstat_writer.pyx":816 + /* "pyreadstat/_readstat_writer.pyx":813 * else: * col_label_temp.append(None) * column_labels = col_label_temp # <<<<<<<<<<<<<< @@ -14435,7 +14495,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d __Pyx_INCREF(__pyx_v_col_label_temp); __Pyx_DECREF_SET(__pyx_v_column_labels, __pyx_v_col_label_temp); - /* "pyreadstat/_readstat_writer.pyx":808 + /* "pyreadstat/_readstat_writer.pyx":805 * if type(column_labels) != list and type(column_labels) != dict: * raise PyreadstatError("column_labels must be either list or dict!") * if type(column_labels) == dict: # <<<<<<<<<<<<<< @@ -14444,17 +14504,17 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d */ } - /* "pyreadstat/_readstat_writer.pyx":818 + /* "pyreadstat/_readstat_writer.pyx":815 * column_labels = col_label_temp * * col_label_count = len(column_labels) # <<<<<<<<<<<<<< * if col_label_count != col_count: * raise PyreadstatError("length of column labels must be the same as number of columns") */ - __pyx_t_7 = PyObject_Length(__pyx_v_column_labels); if (unlikely(__pyx_t_7 == ((Py_ssize_t)-1))) __PYX_ERR(0, 818, __pyx_L22_error) + __pyx_t_7 = PyObject_Length(__pyx_v_column_labels); if (unlikely(__pyx_t_7 == ((Py_ssize_t)-1))) __PYX_ERR(0, 815, __pyx_L23_error) __pyx_v_col_label_count = __pyx_t_7; - /* "pyreadstat/_readstat_writer.pyx":819 + /* "pyreadstat/_readstat_writer.pyx":816 * * col_label_count = len(column_labels) * if col_label_count != col_count: # <<<<<<<<<<<<<< @@ -14464,41 +14524,41 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d __pyx_t_6 = (__pyx_v_col_label_count != __pyx_v_col_count); if (unlikely(__pyx_t_6)) { - /* "pyreadstat/_readstat_writer.pyx":820 + /* "pyreadstat/_readstat_writer.pyx":817 * col_label_count = len(column_labels) * if col_label_count != col_count: * raise PyreadstatError("length of column labels must be the same as number of columns") # <<<<<<<<<<<<<< * * strref_cnt = 0 */ - __pyx_t_2 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 820, __pyx_L22_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_13 = NULL; + __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 817, __pyx_L23_error) + __Pyx_GOTREF(__pyx_t_10); __pyx_t_5 = 1; #if CYTHON_UNPACK_METHODS - if (unlikely(PyMethod_Check(__pyx_t_4))) { - __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_4); - assert(__pyx_t_2); - PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4); - __Pyx_INCREF(__pyx_t_2); + if (unlikely(PyMethod_Check(__pyx_t_10))) { + __pyx_t_13 = PyMethod_GET_SELF(__pyx_t_10); + assert(__pyx_t_13); + PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_10); + __Pyx_INCREF(__pyx_t_13); __Pyx_INCREF(__pyx__function); - __Pyx_DECREF_SET(__pyx_t_4, __pyx__function); + __Pyx_DECREF_SET(__pyx_t_10, __pyx__function); __pyx_t_5 = 0; } #endif { - PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_mstate_global->__pyx_kp_u_length_of_column_labels_must_be}; - __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 820, __pyx_L22_error) + PyObject *__pyx_callargs[2] = {__pyx_t_13, __pyx_mstate_global->__pyx_kp_u_length_of_column_labels_must_be}; + __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_10, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0; + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 817, __pyx_L23_error) __Pyx_GOTREF(__pyx_t_1); } __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __PYX_ERR(0, 820, __pyx_L22_error) + __PYX_ERR(0, 817, __pyx_L23_error) - /* "pyreadstat/_readstat_writer.pyx":819 + /* "pyreadstat/_readstat_writer.pyx":816 * * col_label_count = len(column_labels) * if col_label_count != col_count: # <<<<<<<<<<<<<< @@ -14507,7 +14567,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d */ } - /* "pyreadstat/_readstat_writer.pyx":805 + /* "pyreadstat/_readstat_writer.pyx":802 * * # add variables * if column_labels: # <<<<<<<<<<<<<< @@ -14516,7 +14576,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d */ } - /* "pyreadstat/_readstat_writer.pyx":822 + /* "pyreadstat/_readstat_writer.pyx":819 * raise PyreadstatError("length of column labels must be the same as number of columns") * * strref_cnt = 0 # <<<<<<<<<<<<<< @@ -14525,7 +14585,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d */ __pyx_v_strref_cnt = 0; - /* "pyreadstat/_readstat_writer.pyx":823 + /* "pyreadstat/_readstat_writer.pyx":820 * * strref_cnt = 0 * for col_indx in range(col_count): # <<<<<<<<<<<<<< @@ -14533,11 +14593,11 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d * variable_name = col_names[col_indx] */ __pyx_t_12 = __pyx_v_col_count; - __pyx_t_19 = __pyx_t_12; - for (__pyx_t_20 = 0; __pyx_t_20 < __pyx_t_19; __pyx_t_20+=1) { - __pyx_v_col_indx = __pyx_t_20; + __pyx_t_21 = __pyx_t_12; + for (__pyx_t_22 = 0; __pyx_t_22 < __pyx_t_21; __pyx_t_22+=1) { + __pyx_v_col_indx = __pyx_t_22; - /* "pyreadstat/_readstat_writer.pyx":824 + /* "pyreadstat/_readstat_writer.pyx":821 * strref_cnt = 0 * for col_indx in range(col_count): * curtype, max_length, _,_ = col_types[col_indx] # <<<<<<<<<<<<<< @@ -14546,9 +14606,9 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d */ if (unlikely(__pyx_v_col_types == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 824, __pyx_L22_error) + __PYX_ERR(0, 821, __pyx_L23_error) } - __pyx_t_1 = __Pyx_GetItemInt_List(__pyx_v_col_types, __pyx_v_col_indx, int, 1, __Pyx_PyLong_From_int, 1, 1, 1, 1, __Pyx_ReferenceSharing_OwnStrongReference); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 824, __pyx_L22_error) + __pyx_t_1 = __Pyx_GetItemInt_List(__pyx_v_col_types, __pyx_v_col_indx, int, 1, __Pyx_PyLong_From_int, 1, 1, 1, 1, __Pyx_ReferenceSharing_OwnStrongReference); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 821, __pyx_L23_error) __Pyx_GOTREF(__pyx_t_1); if ((likely(PyTuple_CheckExact(__pyx_t_1))) || (PyList_CheckExact(__pyx_t_1))) { PyObject* sequence = __pyx_t_1; @@ -14556,38 +14616,38 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d if (unlikely(size != 4)) { if (size > 4) __Pyx_RaiseTooManyValuesError(4); else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); - __PYX_ERR(0, 824, __pyx_L22_error) + __PYX_ERR(0, 821, __pyx_L23_error) } #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS if (likely(PyTuple_CheckExact(sequence))) { - __pyx_t_4 = PyTuple_GET_ITEM(sequence, 0); + __pyx_t_10 = PyTuple_GET_ITEM(sequence, 0); + __Pyx_INCREF(__pyx_t_10); + __pyx_t_13 = PyTuple_GET_ITEM(sequence, 1); + __Pyx_INCREF(__pyx_t_13); + __pyx_t_4 = PyTuple_GET_ITEM(sequence, 2); __Pyx_INCREF(__pyx_t_4); - __pyx_t_2 = PyTuple_GET_ITEM(sequence, 1); - __Pyx_INCREF(__pyx_t_2); - __pyx_t_3 = PyTuple_GET_ITEM(sequence, 2); + __pyx_t_3 = PyTuple_GET_ITEM(sequence, 3); __Pyx_INCREF(__pyx_t_3); - __pyx_t_9 = PyTuple_GET_ITEM(sequence, 3); - __Pyx_INCREF(__pyx_t_9); } else { - __pyx_t_4 = __Pyx_PyList_GetItemRefFast(sequence, 0, __Pyx_ReferenceSharing_SharedReference); - if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 824, __pyx_L22_error) + __pyx_t_10 = __Pyx_PyList_GetItemRefFast(sequence, 0, __Pyx_ReferenceSharing_SharedReference); + if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 821, __pyx_L23_error) + __Pyx_XGOTREF(__pyx_t_10); + __pyx_t_13 = __Pyx_PyList_GetItemRefFast(sequence, 1, __Pyx_ReferenceSharing_SharedReference); + if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 821, __pyx_L23_error) + __Pyx_XGOTREF(__pyx_t_13); + __pyx_t_4 = __Pyx_PyList_GetItemRefFast(sequence, 2, __Pyx_ReferenceSharing_SharedReference); + if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 821, __pyx_L23_error) __Pyx_XGOTREF(__pyx_t_4); - __pyx_t_2 = __Pyx_PyList_GetItemRefFast(sequence, 1, __Pyx_ReferenceSharing_SharedReference); - if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 824, __pyx_L22_error) - __Pyx_XGOTREF(__pyx_t_2); - __pyx_t_3 = __Pyx_PyList_GetItemRefFast(sequence, 2, __Pyx_ReferenceSharing_SharedReference); - if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 824, __pyx_L22_error) + __pyx_t_3 = __Pyx_PyList_GetItemRefFast(sequence, 3, __Pyx_ReferenceSharing_SharedReference); + if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 821, __pyx_L23_error) __Pyx_XGOTREF(__pyx_t_3); - __pyx_t_9 = __Pyx_PyList_GetItemRefFast(sequence, 3, __Pyx_ReferenceSharing_SharedReference); - if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 824, __pyx_L22_error) - __Pyx_XGOTREF(__pyx_t_9); } #else { Py_ssize_t i; - PyObject** temps[4] = {&__pyx_t_4,&__pyx_t_2,&__pyx_t_3,&__pyx_t_9}; + PyObject** temps[4] = {&__pyx_t_10,&__pyx_t_13,&__pyx_t_4,&__pyx_t_3}; for (i=0; i < 4; i++) { - PyObject* item = __Pyx_PySequence_ITEM(sequence, i); if (unlikely(!item)) __PYX_ERR(0, 824, __pyx_L22_error) + PyObject* item = __Pyx_PySequence_ITEM(sequence, i); if (unlikely(!item)) __PYX_ERR(0, 821, __pyx_L23_error) __Pyx_GOTREF(item); *(temps[i]) = item; } @@ -14596,39 +14656,39 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } else { Py_ssize_t index = -1; - PyObject** temps[4] = {&__pyx_t_4,&__pyx_t_2,&__pyx_t_3,&__pyx_t_9}; - __pyx_t_10 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 824, __pyx_L22_error) - __Pyx_GOTREF(__pyx_t_10); + PyObject** temps[4] = {&__pyx_t_10,&__pyx_t_13,&__pyx_t_4,&__pyx_t_3}; + __pyx_t_9 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 821, __pyx_L23_error) + __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_11 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_10); + __pyx_t_11 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_9); for (index=0; index < 4; index++) { - PyObject* item = __pyx_t_11(__pyx_t_10); if (unlikely(!item)) goto __pyx_L49_unpacking_failed; + PyObject* item = __pyx_t_11(__pyx_t_9); if (unlikely(!item)) goto __pyx_L50_unpacking_failed; __Pyx_GOTREF(item); *(temps[index]) = item; } - if (__Pyx_IternextUnpackEndCheck(__pyx_t_11(__pyx_t_10), 4) < (0)) __PYX_ERR(0, 824, __pyx_L22_error) + if (__Pyx_IternextUnpackEndCheck(__pyx_t_11(__pyx_t_9), 4) < (0)) __PYX_ERR(0, 821, __pyx_L23_error) __pyx_t_11 = NULL; - __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - goto __pyx_L50_unpacking_done; - __pyx_L49_unpacking_failed:; - __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + goto __pyx_L51_unpacking_done; + __pyx_L50_unpacking_failed:; + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_11 = NULL; if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); - __PYX_ERR(0, 824, __pyx_L22_error) - __pyx_L50_unpacking_done:; + __PYX_ERR(0, 821, __pyx_L23_error) + __pyx_L51_unpacking_done:; } - __pyx_t_22 = ((__pyx_t_10pyreadstat_16_readstat_writer_pywriter_variable_type)__Pyx_PyLong_As___pyx_t_10pyreadstat_16_readstat_writer_pywriter_variable_type(__pyx_t_4)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 824, __pyx_L22_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_23 = __Pyx_PyLong_As_int(__pyx_t_2); if (unlikely((__pyx_t_23 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 824, __pyx_L22_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_v_curtype = __pyx_t_22; - __pyx_v_max_length = __pyx_t_23; - __Pyx_XDECREF_SET(__pyx_v__, __pyx_t_3); + __pyx_t_24 = ((__pyx_t_10pyreadstat_16_readstat_writer_pywriter_variable_type)__Pyx_PyLong_As___pyx_t_10pyreadstat_16_readstat_writer_pywriter_variable_type(__pyx_t_10)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 821, __pyx_L23_error) + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + __pyx_t_25 = __Pyx_PyLong_As_int(__pyx_t_13); if (unlikely((__pyx_t_25 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 821, __pyx_L23_error) + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; + __pyx_v_curtype = __pyx_t_24; + __pyx_v_max_length = __pyx_t_25; + __Pyx_XDECREF_SET(__pyx_v__, __pyx_t_4); + __pyx_t_4 = 0; + __Pyx_DECREF_SET(__pyx_v__, __pyx_t_3); __pyx_t_3 = 0; - __Pyx_DECREF_SET(__pyx_v__, __pyx_t_9); - __pyx_t_9 = 0; - /* "pyreadstat/_readstat_writer.pyx":825 + /* "pyreadstat/_readstat_writer.pyx":822 * for col_indx in range(col_count): * curtype, max_length, _,_ = col_types[col_indx] * variable_name = col_names[col_indx] # <<<<<<<<<<<<<< @@ -14637,56 +14697,56 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d */ if (unlikely(__pyx_v_col_names == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 825, __pyx_L22_error) + __PYX_ERR(0, 822, __pyx_L23_error) } - __pyx_t_1 = __Pyx_GetItemInt_List(__pyx_v_col_names, __pyx_v_col_indx, int, 1, __Pyx_PyLong_From_int, 1, 1, 1, 1, __Pyx_ReferenceSharing_OwnStrongReference); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 825, __pyx_L22_error) + __pyx_t_1 = __Pyx_GetItemInt_List(__pyx_v_col_names, __pyx_v_col_indx, int, 1, __Pyx_PyLong_From_int, 1, 1, 1, 1, __Pyx_ReferenceSharing_OwnStrongReference); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 822, __pyx_L23_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_XDECREF_SET(__pyx_v_variable_name, __pyx_t_1); __pyx_t_1 = 0; - /* "pyreadstat/_readstat_writer.pyx":827 + /* "pyreadstat/_readstat_writer.pyx":824 * variable_name = col_names[col_indx] * # add variable * variable = readstat_add_variable(writer, variable_name.encode("utf-8"), narwhals_to_readstat_types[curtype], max_length) # <<<<<<<<<<<<<< * # add format * if variable_format: */ - __pyx_t_9 = __pyx_v_variable_name; - __Pyx_INCREF(__pyx_t_9); + __pyx_t_3 = __pyx_v_variable_name; + __Pyx_INCREF(__pyx_t_3); __pyx_t_5 = 0; { - PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_mstate_global->__pyx_kp_u_utf_8}; + PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_mstate_global->__pyx_kp_u_utf_8}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_encode, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 827, __pyx_L22_error) + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 824, __pyx_L23_error) __Pyx_GOTREF(__pyx_t_1); } - __pyx_t_24 = __Pyx_PyObject_AsString(__pyx_t_1); if (unlikely((!__pyx_t_24) && PyErr_Occurred())) __PYX_ERR(0, 827, __pyx_L22_error) + __pyx_t_26 = __Pyx_PyObject_AsString(__pyx_t_1); if (unlikely((!__pyx_t_26) && PyErr_Occurred())) __PYX_ERR(0, 824, __pyx_L23_error) if (unlikely(__pyx_v_10pyreadstat_16_readstat_writer_narwhals_to_readstat_types == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 827, __pyx_L22_error) + __PYX_ERR(0, 824, __pyx_L23_error) } - __pyx_t_9 = __Pyx_PyLong_From___pyx_t_10pyreadstat_16_readstat_writer_pywriter_variable_type(__pyx_v_curtype); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 827, __pyx_L22_error) - __Pyx_GOTREF(__pyx_t_9); - __pyx_t_3 = __Pyx_PyDict_GetItem(__pyx_v_10pyreadstat_16_readstat_writer_narwhals_to_readstat_types, __pyx_t_9); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 827, __pyx_L22_error) + __pyx_t_3 = __Pyx_PyLong_From___pyx_t_10pyreadstat_16_readstat_writer_pywriter_variable_type(__pyx_v_curtype); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 824, __pyx_L23_error) __Pyx_GOTREF(__pyx_t_3); - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_25 = ((readstat_type_t)__Pyx_PyLong_As_readstat_type_t(__pyx_t_3)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 827, __pyx_L22_error) + __pyx_t_4 = __Pyx_PyDict_GetItem(__pyx_v_10pyreadstat_16_readstat_writer_narwhals_to_readstat_types, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 824, __pyx_L23_error) + __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_v_variable = readstat_add_variable(__pyx_v_writer, __pyx_t_24, __pyx_t_25, __pyx_v_max_length); + __pyx_t_27 = ((readstat_type_t)__Pyx_PyLong_As_readstat_type_t(__pyx_t_4)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 824, __pyx_L23_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_v_variable = readstat_add_variable(__pyx_v_writer, __pyx_t_26, __pyx_t_27, __pyx_v_max_length); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "pyreadstat/_readstat_writer.pyx":829 + /* "pyreadstat/_readstat_writer.pyx":826 * variable = readstat_add_variable(writer, variable_name.encode("utf-8"), narwhals_to_readstat_types[curtype], max_length) * # add format * if variable_format: # <<<<<<<<<<<<<< * tempformat = variable_format.get(variable_name) * if tempformat: */ - __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_v_variable_format); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(0, 829, __pyx_L22_error) + __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_v_variable_format); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(0, 826, __pyx_L23_error) if (__pyx_t_6) { - /* "pyreadstat/_readstat_writer.pyx":830 + /* "pyreadstat/_readstat_writer.pyx":827 * # add format * if variable_format: * tempformat = variable_format.get(variable_name) # <<<<<<<<<<<<<< @@ -14695,15 +14755,15 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d */ if (unlikely(__pyx_v_variable_format == Py_None)) { PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "get"); - __PYX_ERR(0, 830, __pyx_L22_error) + __PYX_ERR(0, 827, __pyx_L23_error) } - __pyx_t_1 = __Pyx_PyDict_GetItemDefault(__pyx_v_variable_format, __pyx_v_variable_name, Py_None); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 830, __pyx_L22_error) + __pyx_t_1 = __Pyx_PyDict_GetItemDefault(__pyx_v_variable_format, __pyx_v_variable_name, Py_None); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 827, __pyx_L23_error) __Pyx_GOTREF(__pyx_t_1); - if (!(likely(PyUnicode_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("str", __pyx_t_1))) __PYX_ERR(0, 830, __pyx_L22_error) + if (!(likely(PyUnicode_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("str", __pyx_t_1))) __PYX_ERR(0, 827, __pyx_L23_error) __Pyx_XDECREF_SET(__pyx_v_tempformat, ((PyObject*)__pyx_t_1)); __pyx_t_1 = 0; - /* "pyreadstat/_readstat_writer.pyx":831 + /* "pyreadstat/_readstat_writer.pyx":828 * if variable_format: * tempformat = variable_format.get(variable_name) * if tempformat: # <<<<<<<<<<<<<< @@ -14714,13 +14774,13 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d else { Py_ssize_t __pyx_temp = __Pyx_PyUnicode_IS_TRUE(__pyx_v_tempformat); - if (unlikely(((!CYTHON_ASSUME_SAFE_SIZE) && __pyx_temp < 0))) __PYX_ERR(0, 831, __pyx_L22_error) + if (unlikely(((!CYTHON_ASSUME_SAFE_SIZE) && __pyx_temp < 0))) __PYX_ERR(0, 828, __pyx_L23_error) __pyx_t_6 = (__pyx_temp != 0); } if (__pyx_t_6) { - /* "pyreadstat/_readstat_writer.pyx":832 + /* "pyreadstat/_readstat_writer.pyx":829 * tempformat = variable_format.get(variable_name) * if tempformat: * readstat_variable_set_format(variable, tempformat.encode("utf-8")) # <<<<<<<<<<<<<< @@ -14729,15 +14789,15 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d */ if (unlikely(__pyx_v_tempformat == Py_None)) { PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "encode"); - __PYX_ERR(0, 832, __pyx_L22_error) + __PYX_ERR(0, 829, __pyx_L23_error) } - __pyx_t_1 = PyUnicode_AsUTF8String(__pyx_v_tempformat); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 832, __pyx_L22_error) + __pyx_t_1 = PyUnicode_AsUTF8String(__pyx_v_tempformat); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 829, __pyx_L23_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_26 = __Pyx_PyBytes_AsString(__pyx_t_1); if (unlikely((!__pyx_t_26) && PyErr_Occurred())) __PYX_ERR(0, 832, __pyx_L22_error) - readstat_variable_set_format(__pyx_v_variable, __pyx_t_26); + __pyx_t_28 = __Pyx_PyBytes_AsString(__pyx_t_1); if (unlikely((!__pyx_t_28) && PyErr_Occurred())) __PYX_ERR(0, 829, __pyx_L23_error) + readstat_variable_set_format(__pyx_v_variable, __pyx_t_28); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "pyreadstat/_readstat_writer.pyx":831 + /* "pyreadstat/_readstat_writer.pyx":828 * if variable_format: * tempformat = variable_format.get(variable_name) * if tempformat: # <<<<<<<<<<<<<< @@ -14746,7 +14806,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d */ } - /* "pyreadstat/_readstat_writer.pyx":829 + /* "pyreadstat/_readstat_writer.pyx":826 * variable = readstat_add_variable(writer, variable_name.encode("utf-8"), narwhals_to_readstat_types[curtype], max_length) * # add format * if variable_format: # <<<<<<<<<<<<<< @@ -14755,55 +14815,55 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d */ } - /* "pyreadstat/_readstat_writer.pyx":833 + /* "pyreadstat/_readstat_writer.pyx":830 * if tempformat: * readstat_variable_set_format(variable, tempformat.encode("utf-8")) * if curtype in pyrwriter_datetimelike_types and (variable_format is None or variable_name not in variable_format.keys()): # <<<<<<<<<<<<<< * curformat = get_datetimelike_format_for_readstat(file_format, curtype) * readstat_variable_set_format(variable, curformat) */ - __pyx_t_1 = __Pyx_PyLong_From___pyx_t_10pyreadstat_16_readstat_writer_pywriter_variable_type(__pyx_v_curtype); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 833, __pyx_L22_error) + __pyx_t_1 = __Pyx_PyLong_From___pyx_t_10pyreadstat_16_readstat_writer_pywriter_variable_type(__pyx_v_curtype); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 830, __pyx_L23_error) __Pyx_GOTREF(__pyx_t_1); if (unlikely(__pyx_v_10pyreadstat_16_readstat_writer_pyrwriter_datetimelike_types == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable"); - __PYX_ERR(0, 833, __pyx_L22_error) + __PYX_ERR(0, 830, __pyx_L23_error) } - __pyx_t_18 = (__Pyx_PySet_ContainsTF(__pyx_t_1, __pyx_v_10pyreadstat_16_readstat_writer_pyrwriter_datetimelike_types, Py_EQ)); if (unlikely((__pyx_t_18 < 0))) __PYX_ERR(0, 833, __pyx_L22_error) + __pyx_t_20 = (__Pyx_PySet_ContainsTF(__pyx_t_1, __pyx_v_10pyreadstat_16_readstat_writer_pyrwriter_datetimelike_types, Py_EQ)); if (unlikely((__pyx_t_20 < 0))) __PYX_ERR(0, 830, __pyx_L23_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - if (__pyx_t_18) { + if (__pyx_t_20) { } else { - __pyx_t_6 = __pyx_t_18; - goto __pyx_L54_bool_binop_done; + __pyx_t_6 = __pyx_t_20; + goto __pyx_L55_bool_binop_done; } - __pyx_t_18 = (__pyx_v_variable_format == ((PyObject*)Py_None)); - if (!__pyx_t_18) { + __pyx_t_20 = (__pyx_v_variable_format == ((PyObject*)Py_None)); + if (!__pyx_t_20) { } else { - __pyx_t_6 = __pyx_t_18; - goto __pyx_L54_bool_binop_done; + __pyx_t_6 = __pyx_t_20; + goto __pyx_L55_bool_binop_done; } if (unlikely(__pyx_v_variable_format == Py_None)) { PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "keys"); - __PYX_ERR(0, 833, __pyx_L22_error) + __PYX_ERR(0, 830, __pyx_L23_error) } - __pyx_t_1 = __Pyx_PyDict_Keys(__pyx_v_variable_format); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 833, __pyx_L22_error) + __pyx_t_1 = __Pyx_PyDict_Keys(__pyx_v_variable_format); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 830, __pyx_L23_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_18 = (__Pyx_PySequence_ContainsTF(__pyx_v_variable_name, __pyx_t_1, Py_NE)); if (unlikely((__pyx_t_18 < 0))) __PYX_ERR(0, 833, __pyx_L22_error) + __pyx_t_20 = (__Pyx_PySequence_ContainsTF(__pyx_v_variable_name, __pyx_t_1, Py_NE)); if (unlikely((__pyx_t_20 < 0))) __PYX_ERR(0, 830, __pyx_L23_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_6 = __pyx_t_18; - __pyx_L54_bool_binop_done:; + __pyx_t_6 = __pyx_t_20; + __pyx_L55_bool_binop_done:; if (__pyx_t_6) { - /* "pyreadstat/_readstat_writer.pyx":834 + /* "pyreadstat/_readstat_writer.pyx":831 * readstat_variable_set_format(variable, tempformat.encode("utf-8")) * if curtype in pyrwriter_datetimelike_types and (variable_format is None or variable_name not in variable_format.keys()): * curformat = get_datetimelike_format_for_readstat(file_format, curtype) # <<<<<<<<<<<<<< * readstat_variable_set_format(variable, curformat) * # prepare string_ref */ - __pyx_t_16 = __pyx_f_10pyreadstat_16_readstat_writer_get_datetimelike_format_for_readstat(__pyx_v_file_format, __pyx_v_curtype); if (unlikely(__pyx_t_16 == ((void *)NULL) && PyErr_Occurred())) __PYX_ERR(0, 834, __pyx_L22_error) - __pyx_v_curformat = __pyx_t_16; + __pyx_t_18 = __pyx_f_10pyreadstat_16_readstat_writer_get_datetimelike_format_for_readstat(__pyx_v_file_format, __pyx_v_curtype); if (unlikely(__pyx_t_18 == ((void *)NULL) && PyErr_Occurred())) __PYX_ERR(0, 831, __pyx_L23_error) + __pyx_v_curformat = __pyx_t_18; - /* "pyreadstat/_readstat_writer.pyx":835 + /* "pyreadstat/_readstat_writer.pyx":832 * if curtype in pyrwriter_datetimelike_types and (variable_format is None or variable_name not in variable_format.keys()): * curformat = get_datetimelike_format_for_readstat(file_format, curtype) * readstat_variable_set_format(variable, curformat) # <<<<<<<<<<<<<< @@ -14812,7 +14872,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d */ readstat_variable_set_format(__pyx_v_variable, __pyx_v_curformat); - /* "pyreadstat/_readstat_writer.pyx":833 + /* "pyreadstat/_readstat_writer.pyx":830 * if tempformat: * readstat_variable_set_format(variable, tempformat.encode("utf-8")) * if curtype in pyrwriter_datetimelike_types and (variable_format is None or variable_name not in variable_format.keys()): # <<<<<<<<<<<<<< @@ -14821,7 +14881,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d */ } - /* "pyreadstat/_readstat_writer.pyx":838 + /* "pyreadstat/_readstat_writer.pyx":835 * # prepare string_ref * # for STRING_REF we have to add to a dict here before start writing * if curtype == PYWRITER_DTA_STR_REF: # <<<<<<<<<<<<<< @@ -14831,59 +14891,59 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d __pyx_t_6 = (__pyx_v_curtype == __pyx_e_10pyreadstat_16_readstat_writer_PYWRITER_DTA_STR_REF); if (__pyx_t_6) { - /* "pyreadstat/_readstat_writer.pyx":839 + /* "pyreadstat/_readstat_writer.pyx":836 * # for STRING_REF we have to add to a dict here before start writing * if curtype == PYWRITER_DTA_STR_REF: * for curval in df[variable_name]: # <<<<<<<<<<<<<< * if curval not in strref_map: * curvalstr = str(curval) */ - __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_v_df, __pyx_v_variable_name); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 839, __pyx_L22_error) + __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_v_df, __pyx_v_variable_name); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 836, __pyx_L23_error) __Pyx_GOTREF(__pyx_t_1); if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) { - __pyx_t_3 = __pyx_t_1; __Pyx_INCREF(__pyx_t_3); + __pyx_t_4 = __pyx_t_1; __Pyx_INCREF(__pyx_t_4); __pyx_t_7 = 0; __pyx_t_8 = NULL; } else { - __pyx_t_7 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 839, __pyx_L22_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_8 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_3); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 839, __pyx_L22_error) + __pyx_t_7 = -1; __pyx_t_4 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 836, __pyx_L23_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_8 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_4); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 836, __pyx_L23_error) } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; for (;;) { if (likely(!__pyx_t_8)) { - if (likely(PyList_CheckExact(__pyx_t_3))) { + if (likely(PyList_CheckExact(__pyx_t_4))) { { - Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_3); + Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_4); #if !CYTHON_ASSUME_SAFE_SIZE - if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 839, __pyx_L22_error) + if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 836, __pyx_L23_error) #endif if (__pyx_t_7 >= __pyx_temp) break; } - __pyx_t_1 = __Pyx_PyList_GetItemRefFast(__pyx_t_3, __pyx_t_7, __Pyx_ReferenceSharing_OwnStrongReference); + __pyx_t_1 = __Pyx_PyList_GetItemRefFast(__pyx_t_4, __pyx_t_7, __Pyx_ReferenceSharing_OwnStrongReference); ++__pyx_t_7; } else { { - Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_3); + Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_4); #if !CYTHON_ASSUME_SAFE_SIZE - if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 839, __pyx_L22_error) + if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 836, __pyx_L23_error) #endif if (__pyx_t_7 >= __pyx_temp) break; } #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_1 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_7)); + __pyx_t_1 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_4, __pyx_t_7)); #else - __pyx_t_1 = __Pyx_PySequence_ITEM(__pyx_t_3, __pyx_t_7); + __pyx_t_1 = __Pyx_PySequence_ITEM(__pyx_t_4, __pyx_t_7); #endif ++__pyx_t_7; } - if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 839, __pyx_L22_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 836, __pyx_L23_error) } else { - __pyx_t_1 = __pyx_t_8(__pyx_t_3); + __pyx_t_1 = __pyx_t_8(__pyx_t_4); if (unlikely(!__pyx_t_1)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { - if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(0, 839, __pyx_L22_error) + if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(0, 836, __pyx_L23_error) PyErr_Clear(); } break; @@ -14893,54 +14953,54 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d __Pyx_XDECREF_SET(__pyx_v_curval, __pyx_t_1); __pyx_t_1 = 0; - /* "pyreadstat/_readstat_writer.pyx":840 + /* "pyreadstat/_readstat_writer.pyx":837 * if curtype == PYWRITER_DTA_STR_REF: * for curval in df[variable_name]: * if curval not in strref_map: # <<<<<<<<<<<<<< * curvalstr = str(curval) * strref = readstat_add_string_ref(writer, curvalstr.encode("utf-8")) */ - __pyx_t_6 = (__Pyx_PyDict_ContainsTF(__pyx_v_curval, __pyx_v_strref_map, Py_NE)); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(0, 840, __pyx_L22_error) + __pyx_t_6 = (__Pyx_PyDict_ContainsTF(__pyx_v_curval, __pyx_v_strref_map, Py_NE)); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(0, 837, __pyx_L23_error) if (__pyx_t_6) { - /* "pyreadstat/_readstat_writer.pyx":841 + /* "pyreadstat/_readstat_writer.pyx":838 * for curval in df[variable_name]: * if curval not in strref_map: * curvalstr = str(curval) # <<<<<<<<<<<<<< * strref = readstat_add_string_ref(writer, curvalstr.encode("utf-8")) * strref_map[curvalstr] = strref_cnt */ - __pyx_t_1 = __Pyx_PyObject_Unicode(__pyx_v_curval); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 841, __pyx_L22_error) + __pyx_t_1 = __Pyx_PyObject_Unicode(__pyx_v_curval); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 838, __pyx_L23_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_XDECREF_SET(__pyx_v_curvalstr, ((PyObject*)__pyx_t_1)); __pyx_t_1 = 0; - /* "pyreadstat/_readstat_writer.pyx":842 + /* "pyreadstat/_readstat_writer.pyx":839 * if curval not in strref_map: * curvalstr = str(curval) * strref = readstat_add_string_ref(writer, curvalstr.encode("utf-8")) # <<<<<<<<<<<<<< * strref_map[curvalstr] = strref_cnt * strref_cnt += 1 */ - __pyx_t_1 = PyUnicode_AsUTF8String(__pyx_v_curvalstr); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 842, __pyx_L22_error) + __pyx_t_1 = PyUnicode_AsUTF8String(__pyx_v_curvalstr); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 839, __pyx_L23_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_27 = __Pyx_PyBytes_AsString(__pyx_t_1); if (unlikely((!__pyx_t_27) && PyErr_Occurred())) __PYX_ERR(0, 842, __pyx_L22_error) - __pyx_v_strref = readstat_add_string_ref(__pyx_v_writer, __pyx_t_27); + __pyx_t_29 = __Pyx_PyBytes_AsString(__pyx_t_1); if (unlikely((!__pyx_t_29) && PyErr_Occurred())) __PYX_ERR(0, 839, __pyx_L23_error) + __pyx_v_strref = readstat_add_string_ref(__pyx_v_writer, __pyx_t_29); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "pyreadstat/_readstat_writer.pyx":843 + /* "pyreadstat/_readstat_writer.pyx":840 * curvalstr = str(curval) * strref = readstat_add_string_ref(writer, curvalstr.encode("utf-8")) * strref_map[curvalstr] = strref_cnt # <<<<<<<<<<<<<< * strref_cnt += 1 * # labels */ - __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_strref_cnt); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 843, __pyx_L22_error) + __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_strref_cnt); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 840, __pyx_L23_error) __Pyx_GOTREF(__pyx_t_1); - if (unlikely((PyDict_SetItem(__pyx_v_strref_map, __pyx_v_curvalstr, __pyx_t_1) < 0))) __PYX_ERR(0, 843, __pyx_L22_error) + if (unlikely((PyDict_SetItem(__pyx_v_strref_map, __pyx_v_curvalstr, __pyx_t_1) < 0))) __PYX_ERR(0, 840, __pyx_L23_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "pyreadstat/_readstat_writer.pyx":844 + /* "pyreadstat/_readstat_writer.pyx":841 * strref = readstat_add_string_ref(writer, curvalstr.encode("utf-8")) * strref_map[curvalstr] = strref_cnt * strref_cnt += 1 # <<<<<<<<<<<<<< @@ -14949,7 +15009,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d */ __pyx_v_strref_cnt = (__pyx_v_strref_cnt + 1); - /* "pyreadstat/_readstat_writer.pyx":840 + /* "pyreadstat/_readstat_writer.pyx":837 * if curtype == PYWRITER_DTA_STR_REF: * for curval in df[variable_name]: * if curval not in strref_map: # <<<<<<<<<<<<<< @@ -14958,7 +15018,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d */ } - /* "pyreadstat/_readstat_writer.pyx":839 + /* "pyreadstat/_readstat_writer.pyx":836 * # for STRING_REF we have to add to a dict here before start writing * if curtype == PYWRITER_DTA_STR_REF: * for curval in df[variable_name]: # <<<<<<<<<<<<<< @@ -14966,9 +15026,9 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d * curvalstr = str(curval) */ } - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - /* "pyreadstat/_readstat_writer.pyx":838 + /* "pyreadstat/_readstat_writer.pyx":835 * # prepare string_ref * # for STRING_REF we have to add to a dict here before start writing * if curtype == PYWRITER_DTA_STR_REF: # <<<<<<<<<<<<<< @@ -14977,7 +15037,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d */ } - /* "pyreadstat/_readstat_writer.pyx":846 + /* "pyreadstat/_readstat_writer.pyx":843 * strref_cnt += 1 * # labels * if col_label_count: # <<<<<<<<<<<<<< @@ -14987,69 +15047,69 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d __pyx_t_6 = (__pyx_v_col_label_count != 0); if (__pyx_t_6) { - /* "pyreadstat/_readstat_writer.pyx":847 + /* "pyreadstat/_readstat_writer.pyx":844 * # labels * if col_label_count: * if column_labels[col_indx] is not None: # <<<<<<<<<<<<<< * if type(column_labels[col_indx]) != str: * raise PyreadstatError("Column labels must be strings") */ - __pyx_t_3 = __Pyx_GetItemInt(__pyx_v_column_labels, __pyx_v_col_indx, int, 1, __Pyx_PyLong_From_int, 0, 1, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 847, __pyx_L22_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_6 = (__pyx_t_3 != Py_None); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_4 = __Pyx_GetItemInt(__pyx_v_column_labels, __pyx_v_col_indx, int, 1, __Pyx_PyLong_From_int, 0, 1, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 844, __pyx_L23_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_6 = (__pyx_t_4 != Py_None); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (__pyx_t_6) { - /* "pyreadstat/_readstat_writer.pyx":848 + /* "pyreadstat/_readstat_writer.pyx":845 * if col_label_count: * if column_labels[col_indx] is not None: * if type(column_labels[col_indx]) != str: # <<<<<<<<<<<<<< * raise PyreadstatError("Column labels must be strings") * cur_col_label = column_labels[col_indx].encode("utf-8") */ - __pyx_t_3 = __Pyx_GetItemInt(__pyx_v_column_labels, __pyx_v_col_indx, int, 1, __Pyx_PyLong_From_int, 0, 1, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 848, __pyx_L22_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_1 = PyObject_RichCompare(((PyObject *)Py_TYPE(__pyx_t_3)), ((PyObject *)(&PyUnicode_Type)), Py_NE); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 848, __pyx_L22_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(0, 848, __pyx_L22_error) + __pyx_t_4 = __Pyx_GetItemInt(__pyx_v_column_labels, __pyx_v_col_indx, int, 1, __Pyx_PyLong_From_int, 0, 1, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 845, __pyx_L23_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_1 = PyObject_RichCompare(((PyObject *)Py_TYPE(__pyx_t_4)), ((PyObject *)(&PyUnicode_Type)), Py_NE); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 845, __pyx_L23_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(0, 845, __pyx_L23_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (unlikely(__pyx_t_6)) { - /* "pyreadstat/_readstat_writer.pyx":849 + /* "pyreadstat/_readstat_writer.pyx":846 * if column_labels[col_indx] is not None: * if type(column_labels[col_indx]) != str: * raise PyreadstatError("Column labels must be strings") # <<<<<<<<<<<<<< * cur_col_label = column_labels[col_indx].encode("utf-8") * readstat_variable_set_label(variable, cur_col_label) */ - __pyx_t_3 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 849, __pyx_L22_error) - __Pyx_GOTREF(__pyx_t_9); + __pyx_t_4 = NULL; + __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 846, __pyx_L23_error) + __Pyx_GOTREF(__pyx_t_3); __pyx_t_5 = 1; #if CYTHON_UNPACK_METHODS - if (unlikely(PyMethod_Check(__pyx_t_9))) { - __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_9); - assert(__pyx_t_3); - PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_9); - __Pyx_INCREF(__pyx_t_3); + if (unlikely(PyMethod_Check(__pyx_t_3))) { + __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3); + assert(__pyx_t_4); + PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_3); + __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(__pyx__function); - __Pyx_DECREF_SET(__pyx_t_9, __pyx__function); + __Pyx_DECREF_SET(__pyx_t_3, __pyx__function); __pyx_t_5 = 0; } #endif { - PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_mstate_global->__pyx_kp_u_Column_labels_must_be_strings}; - __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_9, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 849, __pyx_L22_error) + PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_mstate_global->__pyx_kp_u_Column_labels_must_be_strings}; + __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_3, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 846, __pyx_L23_error) __Pyx_GOTREF(__pyx_t_1); } __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __PYX_ERR(0, 849, __pyx_L22_error) + __PYX_ERR(0, 846, __pyx_L23_error) - /* "pyreadstat/_readstat_writer.pyx":848 + /* "pyreadstat/_readstat_writer.pyx":845 * if col_label_count: * if column_labels[col_indx] is not None: * if type(column_labels[col_indx]) != str: # <<<<<<<<<<<<<< @@ -15058,31 +15118,31 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d */ } - /* "pyreadstat/_readstat_writer.pyx":850 + /* "pyreadstat/_readstat_writer.pyx":847 * if type(column_labels[col_indx]) != str: * raise PyreadstatError("Column labels must be strings") * cur_col_label = column_labels[col_indx].encode("utf-8") # <<<<<<<<<<<<<< * readstat_variable_set_label(variable, cur_col_label) * if variable_value_labels: */ - __pyx_t_3 = __Pyx_GetItemInt(__pyx_v_column_labels, __pyx_v_col_indx, int, 1, __Pyx_PyLong_From_int, 0, 1, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 850, __pyx_L22_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_9 = __pyx_t_3; - __Pyx_INCREF(__pyx_t_9); + __pyx_t_4 = __Pyx_GetItemInt(__pyx_v_column_labels, __pyx_v_col_indx, int, 1, __Pyx_PyLong_From_int, 0, 1, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 847, __pyx_L23_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __pyx_t_4; + __Pyx_INCREF(__pyx_t_3); __pyx_t_5 = 0; { - PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_mstate_global->__pyx_kp_u_utf_8}; + PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_mstate_global->__pyx_kp_u_utf_8}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_encode, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 850, __pyx_L22_error) + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 847, __pyx_L23_error) __Pyx_GOTREF(__pyx_t_1); } - if (!(likely(PyBytes_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("bytes", __pyx_t_1))) __PYX_ERR(0, 850, __pyx_L22_error) + if (!(likely(PyBytes_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("bytes", __pyx_t_1))) __PYX_ERR(0, 847, __pyx_L23_error) __Pyx_XDECREF_SET(__pyx_v_cur_col_label, ((PyObject*)__pyx_t_1)); __pyx_t_1 = 0; - /* "pyreadstat/_readstat_writer.pyx":851 + /* "pyreadstat/_readstat_writer.pyx":848 * raise PyreadstatError("Column labels must be strings") * cur_col_label = column_labels[col_indx].encode("utf-8") * readstat_variable_set_label(variable, cur_col_label) # <<<<<<<<<<<<<< @@ -15091,12 +15151,12 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d */ if (unlikely(__pyx_v_cur_col_label == Py_None)) { PyErr_SetString(PyExc_TypeError, "expected bytes, NoneType found"); - __PYX_ERR(0, 851, __pyx_L22_error) + __PYX_ERR(0, 848, __pyx_L23_error) } - __pyx_t_28 = __Pyx_PyBytes_AsString(__pyx_v_cur_col_label); if (unlikely((!__pyx_t_28) && PyErr_Occurred())) __PYX_ERR(0, 851, __pyx_L22_error) - readstat_variable_set_label(__pyx_v_variable, __pyx_t_28); + __pyx_t_30 = __Pyx_PyBytes_AsString(__pyx_v_cur_col_label); if (unlikely((!__pyx_t_30) && PyErr_Occurred())) __PYX_ERR(0, 848, __pyx_L23_error) + readstat_variable_set_label(__pyx_v_variable, __pyx_t_30); - /* "pyreadstat/_readstat_writer.pyx":847 + /* "pyreadstat/_readstat_writer.pyx":844 * # labels * if col_label_count: * if column_labels[col_indx] is not None: # <<<<<<<<<<<<<< @@ -15105,7 +15165,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d */ } - /* "pyreadstat/_readstat_writer.pyx":846 + /* "pyreadstat/_readstat_writer.pyx":843 * strref_cnt += 1 * # labels * if col_label_count: # <<<<<<<<<<<<<< @@ -15114,17 +15174,17 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d */ } - /* "pyreadstat/_readstat_writer.pyx":852 + /* "pyreadstat/_readstat_writer.pyx":849 * cur_col_label = column_labels[col_indx].encode("utf-8") * readstat_variable_set_label(variable, cur_col_label) * if variable_value_labels: # <<<<<<<<<<<<<< * value_labels = variable_value_labels.get(variable_name) * if value_labels: */ - __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_v_variable_value_labels); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(0, 852, __pyx_L22_error) + __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_v_variable_value_labels); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(0, 849, __pyx_L23_error) if (__pyx_t_6) { - /* "pyreadstat/_readstat_writer.pyx":853 + /* "pyreadstat/_readstat_writer.pyx":850 * readstat_variable_set_label(variable, cur_col_label) * if variable_value_labels: * value_labels = variable_value_labels.get(variable_name) # <<<<<<<<<<<<<< @@ -15133,43 +15193,43 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d */ if (unlikely(__pyx_v_variable_value_labels == Py_None)) { PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "get"); - __PYX_ERR(0, 853, __pyx_L22_error) + __PYX_ERR(0, 850, __pyx_L23_error) } - __pyx_t_1 = __Pyx_PyDict_GetItemDefault(__pyx_v_variable_value_labels, __pyx_v_variable_name, Py_None); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 853, __pyx_L22_error) + __pyx_t_1 = __Pyx_PyDict_GetItemDefault(__pyx_v_variable_value_labels, __pyx_v_variable_name, Py_None); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 850, __pyx_L23_error) __Pyx_GOTREF(__pyx_t_1); - if (!(likely(PyDict_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("dict", __pyx_t_1))) __PYX_ERR(0, 853, __pyx_L22_error) + if (!(likely(PyDict_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("dict", __pyx_t_1))) __PYX_ERR(0, 850, __pyx_L23_error) __Pyx_XDECREF_SET(__pyx_v_value_labels, ((PyObject*)__pyx_t_1)); __pyx_t_1 = 0; - /* "pyreadstat/_readstat_writer.pyx":854 + /* "pyreadstat/_readstat_writer.pyx":851 * if variable_value_labels: * value_labels = variable_value_labels.get(variable_name) * if value_labels: # <<<<<<<<<<<<<< * labelset_name = variable_name + str(lblset_cnt) * lblset_cnt += 1 */ - __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_v_value_labels); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(0, 854, __pyx_L22_error) + __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_v_value_labels); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(0, 851, __pyx_L23_error) if (__pyx_t_6) { - /* "pyreadstat/_readstat_writer.pyx":855 + /* "pyreadstat/_readstat_writer.pyx":852 * value_labels = variable_value_labels.get(variable_name) * if value_labels: * labelset_name = variable_name + str(lblset_cnt) # <<<<<<<<<<<<<< * lblset_cnt += 1 * curuser_missing = None */ - __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_lblset_cnt); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 855, __pyx_L22_error) + __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_lblset_cnt); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 852, __pyx_L23_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_3 = __Pyx_PyObject_Unicode(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 855, __pyx_L22_error) - __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = __Pyx_PyObject_Unicode(__pyx_t_1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 852, __pyx_L23_error) + __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyNumber_Add(__pyx_v_variable_name, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 855, __pyx_L22_error) + __pyx_t_1 = PyNumber_Add(__pyx_v_variable_name, __pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 852, __pyx_L23_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_XDECREF_SET(__pyx_v_labelset_name, __pyx_t_1); __pyx_t_1 = 0; - /* "pyreadstat/_readstat_writer.pyx":856 + /* "pyreadstat/_readstat_writer.pyx":853 * if value_labels: * labelset_name = variable_name + str(lblset_cnt) * lblset_cnt += 1 # <<<<<<<<<<<<<< @@ -15178,7 +15238,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d */ __pyx_v_lblset_cnt = (__pyx_v_lblset_cnt + 1); - /* "pyreadstat/_readstat_writer.pyx":857 + /* "pyreadstat/_readstat_writer.pyx":854 * labelset_name = variable_name + str(lblset_cnt) * lblset_cnt += 1 * curuser_missing = None # <<<<<<<<<<<<<< @@ -15188,17 +15248,17 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d __Pyx_INCREF(Py_None); __Pyx_XDECREF_SET(__pyx_v_curuser_missing, Py_None); - /* "pyreadstat/_readstat_writer.pyx":858 + /* "pyreadstat/_readstat_writer.pyx":855 * lblset_cnt += 1 * curuser_missing = None * if missing_user_values: # <<<<<<<<<<<<<< * curuser_missing = missing_user_values.get(variable_name) * label_set = set_value_label(writer, value_labels, labelset_name, */ - __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_v_missing_user_values); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(0, 858, __pyx_L22_error) + __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_v_missing_user_values); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(0, 855, __pyx_L23_error) if (__pyx_t_6) { - /* "pyreadstat/_readstat_writer.pyx":859 + /* "pyreadstat/_readstat_writer.pyx":856 * curuser_missing = None * if missing_user_values: * curuser_missing = missing_user_values.get(variable_name) # <<<<<<<<<<<<<< @@ -15207,14 +15267,14 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d */ if (unlikely(__pyx_v_missing_user_values == Py_None)) { PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "get"); - __PYX_ERR(0, 859, __pyx_L22_error) + __PYX_ERR(0, 856, __pyx_L23_error) } - __pyx_t_1 = __Pyx_PyDict_GetItemDefault(__pyx_v_missing_user_values, __pyx_v_variable_name, Py_None); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 859, __pyx_L22_error) + __pyx_t_1 = __Pyx_PyDict_GetItemDefault(__pyx_v_missing_user_values, __pyx_v_variable_name, Py_None); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 856, __pyx_L23_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_curuser_missing, __pyx_t_1); __pyx_t_1 = 0; - /* "pyreadstat/_readstat_writer.pyx":858 + /* "pyreadstat/_readstat_writer.pyx":855 * lblset_cnt += 1 * curuser_missing = None * if missing_user_values: # <<<<<<<<<<<<<< @@ -15223,7 +15283,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d */ } - /* "pyreadstat/_readstat_writer.pyx":860 + /* "pyreadstat/_readstat_writer.pyx":857 * if missing_user_values: * curuser_missing = missing_user_values.get(variable_name) * label_set = set_value_label(writer, value_labels, labelset_name, # <<<<<<<<<<<<<< @@ -15232,40 +15292,40 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d */ __pyx_t_1 = __pyx_v_labelset_name; __Pyx_INCREF(__pyx_t_1); - if (!(likely(PyUnicode_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("str", __pyx_t_1))) __PYX_ERR(0, 860, __pyx_L22_error) + if (!(likely(PyUnicode_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("str", __pyx_t_1))) __PYX_ERR(0, 857, __pyx_L23_error) - /* "pyreadstat/_readstat_writer.pyx":861 + /* "pyreadstat/_readstat_writer.pyx":858 * curuser_missing = missing_user_values.get(variable_name) * label_set = set_value_label(writer, value_labels, labelset_name, * col_names_to_types[variable_name], file_format, variable_name, curuser_missing) # <<<<<<<<<<<<<< * readstat_variable_set_label_set(variable, label_set) * # missing ranges */ - __pyx_t_3 = __Pyx_PyDict_GetItem(__pyx_v_col_names_to_types, __pyx_v_variable_name); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 861, __pyx_L22_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_22 = ((__pyx_t_10pyreadstat_16_readstat_writer_pywriter_variable_type)__Pyx_PyLong_As___pyx_t_10pyreadstat_16_readstat_writer_pywriter_variable_type(__pyx_t_3)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 861, __pyx_L22_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = __pyx_v_variable_name; + __pyx_t_4 = __Pyx_PyDict_GetItem(__pyx_v_col_names_to_types, __pyx_v_variable_name); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 858, __pyx_L23_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_24 = ((__pyx_t_10pyreadstat_16_readstat_writer_pywriter_variable_type)__Pyx_PyLong_As___pyx_t_10pyreadstat_16_readstat_writer_pywriter_variable_type(__pyx_t_4)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 858, __pyx_L23_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_4 = __pyx_v_variable_name; + __Pyx_INCREF(__pyx_t_4); + if (!(likely(PyUnicode_CheckExact(__pyx_t_4))||((__pyx_t_4) == Py_None) || __Pyx_RaiseUnexpectedTypeError("str", __pyx_t_4))) __PYX_ERR(0, 858, __pyx_L23_error) + __pyx_t_3 = __pyx_v_curuser_missing; __Pyx_INCREF(__pyx_t_3); - if (!(likely(PyUnicode_CheckExact(__pyx_t_3))||((__pyx_t_3) == Py_None) || __Pyx_RaiseUnexpectedTypeError("str", __pyx_t_3))) __PYX_ERR(0, 861, __pyx_L22_error) - __pyx_t_9 = __pyx_v_curuser_missing; - __Pyx_INCREF(__pyx_t_9); - if (!(likely(PyList_CheckExact(__pyx_t_9))||((__pyx_t_9) == Py_None) || __Pyx_RaiseUnexpectedTypeError("list", __pyx_t_9))) __PYX_ERR(0, 861, __pyx_L22_error) + if (!(likely(PyList_CheckExact(__pyx_t_3))||((__pyx_t_3) == Py_None) || __Pyx_RaiseUnexpectedTypeError("list", __pyx_t_3))) __PYX_ERR(0, 858, __pyx_L23_error) - /* "pyreadstat/_readstat_writer.pyx":860 + /* "pyreadstat/_readstat_writer.pyx":857 * if missing_user_values: * curuser_missing = missing_user_values.get(variable_name) * label_set = set_value_label(writer, value_labels, labelset_name, # <<<<<<<<<<<<<< * col_names_to_types[variable_name], file_format, variable_name, curuser_missing) * readstat_variable_set_label_set(variable, label_set) */ - __pyx_t_29 = __pyx_f_10pyreadstat_16_readstat_writer_set_value_label(__pyx_v_writer, __pyx_v_value_labels, ((PyObject*)__pyx_t_1), __pyx_t_22, __pyx_v_file_format, ((PyObject*)__pyx_t_3), ((PyObject*)__pyx_t_9)); if (unlikely(__pyx_t_29 == ((void *)NULL) && PyErr_Occurred())) __PYX_ERR(0, 860, __pyx_L22_error) + __pyx_t_31 = __pyx_f_10pyreadstat_16_readstat_writer_set_value_label(__pyx_v_writer, __pyx_v_value_labels, ((PyObject*)__pyx_t_1), __pyx_t_24, __pyx_v_file_format, ((PyObject*)__pyx_t_4), ((PyObject*)__pyx_t_3)); if (unlikely(__pyx_t_31 == ((void *)NULL) && PyErr_Occurred())) __PYX_ERR(0, 857, __pyx_L23_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_v_label_set = __pyx_t_29; + __pyx_v_label_set = __pyx_t_31; - /* "pyreadstat/_readstat_writer.pyx":862 + /* "pyreadstat/_readstat_writer.pyx":859 * label_set = set_value_label(writer, value_labels, labelset_name, * col_names_to_types[variable_name], file_format, variable_name, curuser_missing) * readstat_variable_set_label_set(variable, label_set) # <<<<<<<<<<<<<< @@ -15274,7 +15334,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d */ readstat_variable_set_label_set(__pyx_v_variable, __pyx_v_label_set); - /* "pyreadstat/_readstat_writer.pyx":854 + /* "pyreadstat/_readstat_writer.pyx":851 * if variable_value_labels: * value_labels = variable_value_labels.get(variable_name) * if value_labels: # <<<<<<<<<<<<<< @@ -15283,7 +15343,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d */ } - /* "pyreadstat/_readstat_writer.pyx":852 + /* "pyreadstat/_readstat_writer.pyx":849 * cur_col_label = column_labels[col_indx].encode("utf-8") * readstat_variable_set_label(variable, cur_col_label) * if variable_value_labels: # <<<<<<<<<<<<<< @@ -15292,17 +15352,17 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d */ } - /* "pyreadstat/_readstat_writer.pyx":864 + /* "pyreadstat/_readstat_writer.pyx":861 * readstat_variable_set_label_set(variable, label_set) * # missing ranges * if missing_ranges: # <<<<<<<<<<<<<< * cur_ranges = missing_ranges.get(variable_name) * if cur_ranges: */ - __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_v_missing_ranges); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(0, 864, __pyx_L22_error) + __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_v_missing_ranges); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(0, 861, __pyx_L23_error) if (__pyx_t_6) { - /* "pyreadstat/_readstat_writer.pyx":865 + /* "pyreadstat/_readstat_writer.pyx":862 * # missing ranges * if missing_ranges: * cur_ranges = missing_ranges.get(variable_name) # <<<<<<<<<<<<<< @@ -15311,24 +15371,24 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d */ if (unlikely(__pyx_v_missing_ranges == Py_None)) { PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "get"); - __PYX_ERR(0, 865, __pyx_L22_error) + __PYX_ERR(0, 862, __pyx_L23_error) } - __pyx_t_9 = __Pyx_PyDict_GetItemDefault(__pyx_v_missing_ranges, __pyx_v_variable_name, Py_None); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 865, __pyx_L22_error) - __Pyx_GOTREF(__pyx_t_9); - __Pyx_XDECREF_SET(__pyx_v_cur_ranges, __pyx_t_9); - __pyx_t_9 = 0; + __pyx_t_3 = __Pyx_PyDict_GetItemDefault(__pyx_v_missing_ranges, __pyx_v_variable_name, Py_None); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 862, __pyx_L23_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_XDECREF_SET(__pyx_v_cur_ranges, __pyx_t_3); + __pyx_t_3 = 0; - /* "pyreadstat/_readstat_writer.pyx":866 + /* "pyreadstat/_readstat_writer.pyx":863 * if missing_ranges: * cur_ranges = missing_ranges.get(variable_name) * if cur_ranges: # <<<<<<<<<<<<<< * if not isinstance(cur_ranges, list): * msg = "missing_ranges: values in dictionary must be list" */ - __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_v_cur_ranges); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(0, 866, __pyx_L22_error) + __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_v_cur_ranges); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(0, 863, __pyx_L23_error) if (__pyx_t_6) { - /* "pyreadstat/_readstat_writer.pyx":867 + /* "pyreadstat/_readstat_writer.pyx":864 * cur_ranges = missing_ranges.get(variable_name) * if cur_ranges: * if not isinstance(cur_ranges, list): # <<<<<<<<<<<<<< @@ -15336,10 +15396,10 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d * raise PyreadstatError(msg) */ __pyx_t_6 = PyList_Check(__pyx_v_cur_ranges); - __pyx_t_18 = (!__pyx_t_6); - if (unlikely(__pyx_t_18)) { + __pyx_t_20 = (!__pyx_t_6); + if (unlikely(__pyx_t_20)) { - /* "pyreadstat/_readstat_writer.pyx":868 + /* "pyreadstat/_readstat_writer.pyx":865 * if cur_ranges: * if not isinstance(cur_ranges, list): * msg = "missing_ranges: values in dictionary must be list" # <<<<<<<<<<<<<< @@ -15349,41 +15409,41 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d __Pyx_INCREF(__pyx_mstate_global->__pyx_kp_u_missing_ranges_values_in_diction); __pyx_v_msg = __pyx_mstate_global->__pyx_kp_u_missing_ranges_values_in_diction; - /* "pyreadstat/_readstat_writer.pyx":869 + /* "pyreadstat/_readstat_writer.pyx":866 * if not isinstance(cur_ranges, list): * msg = "missing_ranges: values in dictionary must be list" * raise PyreadstatError(msg) # <<<<<<<<<<<<<< * add_missing_ranges(cur_ranges, variable, curtype, variable_name) * if variable_alignment: */ - __pyx_t_3 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 869, __pyx_L22_error) + __pyx_t_4 = NULL; + __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 866, __pyx_L23_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_5 = 1; #if CYTHON_UNPACK_METHODS if (unlikely(PyMethod_Check(__pyx_t_1))) { - __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_1); - assert(__pyx_t_3); + __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_1); + assert(__pyx_t_4); PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_1); - __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(__pyx__function); __Pyx_DECREF_SET(__pyx_t_1, __pyx__function); __pyx_t_5 = 0; } #endif { - PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_v_msg}; - __pyx_t_9 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_1, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_v_msg}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_1, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 869, __pyx_L22_error) - __Pyx_GOTREF(__pyx_t_9); + if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 866, __pyx_L23_error) + __Pyx_GOTREF(__pyx_t_3); } - __Pyx_Raise(__pyx_t_9, 0, 0, 0); - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __PYX_ERR(0, 869, __pyx_L22_error) + __Pyx_Raise(__pyx_t_3, 0, 0, 0); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __PYX_ERR(0, 866, __pyx_L23_error) - /* "pyreadstat/_readstat_writer.pyx":867 + /* "pyreadstat/_readstat_writer.pyx":864 * cur_ranges = missing_ranges.get(variable_name) * if cur_ranges: * if not isinstance(cur_ranges, list): # <<<<<<<<<<<<<< @@ -15392,24 +15452,24 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d */ } - /* "pyreadstat/_readstat_writer.pyx":870 + /* "pyreadstat/_readstat_writer.pyx":867 * msg = "missing_ranges: values in dictionary must be list" * raise PyreadstatError(msg) * add_missing_ranges(cur_ranges, variable, curtype, variable_name) # <<<<<<<<<<<<<< * if variable_alignment: * # At the moment this is ineffective for sav and dta (the function runs but in */ - __pyx_t_9 = __pyx_v_cur_ranges; - __Pyx_INCREF(__pyx_t_9); - if (!(likely(PyList_CheckExact(__pyx_t_9))||((__pyx_t_9) == Py_None) || __Pyx_RaiseUnexpectedTypeError("list", __pyx_t_9))) __PYX_ERR(0, 870, __pyx_L22_error) + __pyx_t_3 = __pyx_v_cur_ranges; + __Pyx_INCREF(__pyx_t_3); + if (!(likely(PyList_CheckExact(__pyx_t_3))||((__pyx_t_3) == Py_None) || __Pyx_RaiseUnexpectedTypeError("list", __pyx_t_3))) __PYX_ERR(0, 867, __pyx_L23_error) __pyx_t_1 = __pyx_v_variable_name; __Pyx_INCREF(__pyx_t_1); - if (!(likely(PyUnicode_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("str", __pyx_t_1))) __PYX_ERR(0, 870, __pyx_L22_error) - __pyx_f_10pyreadstat_16_readstat_writer_add_missing_ranges(((PyObject*)__pyx_t_9), __pyx_v_variable, __pyx_v_curtype, ((PyObject*)__pyx_t_1)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 870, __pyx_L22_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + if (!(likely(PyUnicode_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("str", __pyx_t_1))) __PYX_ERR(0, 867, __pyx_L23_error) + __pyx_f_10pyreadstat_16_readstat_writer_add_missing_ranges(((PyObject*)__pyx_t_3), __pyx_v_variable, __pyx_v_curtype, ((PyObject*)__pyx_t_1)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 867, __pyx_L23_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "pyreadstat/_readstat_writer.pyx":866 + /* "pyreadstat/_readstat_writer.pyx":863 * if missing_ranges: * cur_ranges = missing_ranges.get(variable_name) * if cur_ranges: # <<<<<<<<<<<<<< @@ -15418,7 +15478,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d */ } - /* "pyreadstat/_readstat_writer.pyx":864 + /* "pyreadstat/_readstat_writer.pyx":861 * readstat_variable_set_label_set(variable, label_set) * # missing ranges * if missing_ranges: # <<<<<<<<<<<<<< @@ -15427,17 +15487,17 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d */ } - /* "pyreadstat/_readstat_writer.pyx":871 + /* "pyreadstat/_readstat_writer.pyx":868 * raise PyreadstatError(msg) * add_missing_ranges(cur_ranges, variable, curtype, variable_name) * if variable_alignment: # <<<<<<<<<<<<<< * # At the moment this is ineffective for sav and dta (the function runs but in * # the resulting file all alignments are still unknown) */ - __pyx_t_18 = __Pyx_PyObject_IsTrue(__pyx_v_variable_alignment); if (unlikely((__pyx_t_18 < 0))) __PYX_ERR(0, 871, __pyx_L22_error) - if (__pyx_t_18) { + __pyx_t_20 = __Pyx_PyObject_IsTrue(__pyx_v_variable_alignment); if (unlikely((__pyx_t_20 < 0))) __PYX_ERR(0, 868, __pyx_L23_error) + if (__pyx_t_20) { - /* "pyreadstat/_readstat_writer.pyx":874 + /* "pyreadstat/_readstat_writer.pyx":871 * # At the moment this is ineffective for sav and dta (the function runs but in * # the resulting file all alignments are still unknown) * cur_alignment = variable_alignment.get(variable_name) # <<<<<<<<<<<<<< @@ -15446,24 +15506,24 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d */ if (unlikely(__pyx_v_variable_alignment == Py_None)) { PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "get"); - __PYX_ERR(0, 874, __pyx_L22_error) + __PYX_ERR(0, 871, __pyx_L23_error) } - __pyx_t_1 = __Pyx_PyDict_GetItemDefault(__pyx_v_variable_alignment, __pyx_v_variable_name, Py_None); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 874, __pyx_L22_error) + __pyx_t_1 = __Pyx_PyDict_GetItemDefault(__pyx_v_variable_alignment, __pyx_v_variable_name, Py_None); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 871, __pyx_L23_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_XDECREF_SET(__pyx_v_cur_alignment, __pyx_t_1); __pyx_t_1 = 0; - /* "pyreadstat/_readstat_writer.pyx":875 + /* "pyreadstat/_readstat_writer.pyx":872 * # the resulting file all alignments are still unknown) * cur_alignment = variable_alignment.get(variable_name) * if cur_alignment: # <<<<<<<<<<<<<< * set_variable_alignment(variable, cur_alignment, variable_name) * if variable_display_width: */ - __pyx_t_18 = __Pyx_PyObject_IsTrue(__pyx_v_cur_alignment); if (unlikely((__pyx_t_18 < 0))) __PYX_ERR(0, 875, __pyx_L22_error) - if (__pyx_t_18) { + __pyx_t_20 = __Pyx_PyObject_IsTrue(__pyx_v_cur_alignment); if (unlikely((__pyx_t_20 < 0))) __PYX_ERR(0, 872, __pyx_L23_error) + if (__pyx_t_20) { - /* "pyreadstat/_readstat_writer.pyx":876 + /* "pyreadstat/_readstat_writer.pyx":873 * cur_alignment = variable_alignment.get(variable_name) * if cur_alignment: * set_variable_alignment(variable, cur_alignment, variable_name) # <<<<<<<<<<<<<< @@ -15472,15 +15532,15 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d */ __pyx_t_1 = __pyx_v_cur_alignment; __Pyx_INCREF(__pyx_t_1); - if (!(likely(PyUnicode_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("str", __pyx_t_1))) __PYX_ERR(0, 876, __pyx_L22_error) - __pyx_t_9 = __pyx_v_variable_name; - __Pyx_INCREF(__pyx_t_9); - if (!(likely(PyUnicode_CheckExact(__pyx_t_9))||((__pyx_t_9) == Py_None) || __Pyx_RaiseUnexpectedTypeError("str", __pyx_t_9))) __PYX_ERR(0, 876, __pyx_L22_error) - __pyx_f_10pyreadstat_16_readstat_writer_set_variable_alignment(__pyx_v_variable, ((PyObject*)__pyx_t_1), ((PyObject*)__pyx_t_9)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 876, __pyx_L22_error) + if (!(likely(PyUnicode_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("str", __pyx_t_1))) __PYX_ERR(0, 873, __pyx_L23_error) + __pyx_t_3 = __pyx_v_variable_name; + __Pyx_INCREF(__pyx_t_3); + if (!(likely(PyUnicode_CheckExact(__pyx_t_3))||((__pyx_t_3) == Py_None) || __Pyx_RaiseUnexpectedTypeError("str", __pyx_t_3))) __PYX_ERR(0, 873, __pyx_L23_error) + __pyx_f_10pyreadstat_16_readstat_writer_set_variable_alignment(__pyx_v_variable, ((PyObject*)__pyx_t_1), ((PyObject*)__pyx_t_3)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 873, __pyx_L23_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - /* "pyreadstat/_readstat_writer.pyx":875 + /* "pyreadstat/_readstat_writer.pyx":872 * # the resulting file all alignments are still unknown) * cur_alignment = variable_alignment.get(variable_name) * if cur_alignment: # <<<<<<<<<<<<<< @@ -15489,7 +15549,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d */ } - /* "pyreadstat/_readstat_writer.pyx":871 + /* "pyreadstat/_readstat_writer.pyx":868 * raise PyreadstatError(msg) * add_missing_ranges(cur_ranges, variable, curtype, variable_name) * if variable_alignment: # <<<<<<<<<<<<<< @@ -15498,17 +15558,17 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d */ } - /* "pyreadstat/_readstat_writer.pyx":877 + /* "pyreadstat/_readstat_writer.pyx":874 * if cur_alignment: * set_variable_alignment(variable, cur_alignment, variable_name) * if variable_display_width: # <<<<<<<<<<<<<< * cur_display_width = variable_display_width.get(variable_name) * if cur_display_width: */ - __pyx_t_18 = __Pyx_PyObject_IsTrue(__pyx_v_variable_display_width); if (unlikely((__pyx_t_18 < 0))) __PYX_ERR(0, 877, __pyx_L22_error) - if (__pyx_t_18) { + __pyx_t_20 = __Pyx_PyObject_IsTrue(__pyx_v_variable_display_width); if (unlikely((__pyx_t_20 < 0))) __PYX_ERR(0, 874, __pyx_L23_error) + if (__pyx_t_20) { - /* "pyreadstat/_readstat_writer.pyx":878 + /* "pyreadstat/_readstat_writer.pyx":875 * set_variable_alignment(variable, cur_alignment, variable_name) * if variable_display_width: * cur_display_width = variable_display_width.get(variable_name) # <<<<<<<<<<<<<< @@ -15517,38 +15577,38 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d */ if (unlikely(__pyx_v_variable_display_width == Py_None)) { PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "get"); - __PYX_ERR(0, 878, __pyx_L22_error) + __PYX_ERR(0, 875, __pyx_L23_error) } - __pyx_t_9 = __Pyx_PyDict_GetItemDefault(__pyx_v_variable_display_width, __pyx_v_variable_name, Py_None); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 878, __pyx_L22_error) - __Pyx_GOTREF(__pyx_t_9); - __Pyx_XDECREF_SET(__pyx_v_cur_display_width, __pyx_t_9); - __pyx_t_9 = 0; + __pyx_t_3 = __Pyx_PyDict_GetItemDefault(__pyx_v_variable_display_width, __pyx_v_variable_name, Py_None); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 875, __pyx_L23_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_XDECREF_SET(__pyx_v_cur_display_width, __pyx_t_3); + __pyx_t_3 = 0; - /* "pyreadstat/_readstat_writer.pyx":879 + /* "pyreadstat/_readstat_writer.pyx":876 * if variable_display_width: * cur_display_width = variable_display_width.get(variable_name) * if cur_display_width: # <<<<<<<<<<<<<< * set_variable_display_width(variable, cur_display_width, variable_name) * if variable_measure: */ - __pyx_t_18 = __Pyx_PyObject_IsTrue(__pyx_v_cur_display_width); if (unlikely((__pyx_t_18 < 0))) __PYX_ERR(0, 879, __pyx_L22_error) - if (__pyx_t_18) { + __pyx_t_20 = __Pyx_PyObject_IsTrue(__pyx_v_cur_display_width); if (unlikely((__pyx_t_20 < 0))) __PYX_ERR(0, 876, __pyx_L23_error) + if (__pyx_t_20) { - /* "pyreadstat/_readstat_writer.pyx":880 + /* "pyreadstat/_readstat_writer.pyx":877 * cur_display_width = variable_display_width.get(variable_name) * if cur_display_width: * set_variable_display_width(variable, cur_display_width, variable_name) # <<<<<<<<<<<<<< * if variable_measure: * cur_measure = variable_measure.get(variable_name) */ - __pyx_t_23 = __Pyx_PyLong_As_int(__pyx_v_cur_display_width); if (unlikely((__pyx_t_23 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 880, __pyx_L22_error) - __pyx_t_9 = __pyx_v_variable_name; - __Pyx_INCREF(__pyx_t_9); - if (!(likely(PyUnicode_CheckExact(__pyx_t_9))||((__pyx_t_9) == Py_None) || __Pyx_RaiseUnexpectedTypeError("str", __pyx_t_9))) __PYX_ERR(0, 880, __pyx_L22_error) - __pyx_f_10pyreadstat_16_readstat_writer_set_variable_display_width(__pyx_v_variable, __pyx_t_23, ((PyObject*)__pyx_t_9)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 880, __pyx_L22_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __pyx_t_25 = __Pyx_PyLong_As_int(__pyx_v_cur_display_width); if (unlikely((__pyx_t_25 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 877, __pyx_L23_error) + __pyx_t_3 = __pyx_v_variable_name; + __Pyx_INCREF(__pyx_t_3); + if (!(likely(PyUnicode_CheckExact(__pyx_t_3))||((__pyx_t_3) == Py_None) || __Pyx_RaiseUnexpectedTypeError("str", __pyx_t_3))) __PYX_ERR(0, 877, __pyx_L23_error) + __pyx_f_10pyreadstat_16_readstat_writer_set_variable_display_width(__pyx_v_variable, __pyx_t_25, ((PyObject*)__pyx_t_3)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 877, __pyx_L23_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - /* "pyreadstat/_readstat_writer.pyx":879 + /* "pyreadstat/_readstat_writer.pyx":876 * if variable_display_width: * cur_display_width = variable_display_width.get(variable_name) * if cur_display_width: # <<<<<<<<<<<<<< @@ -15557,7 +15617,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d */ } - /* "pyreadstat/_readstat_writer.pyx":877 + /* "pyreadstat/_readstat_writer.pyx":874 * if cur_alignment: * set_variable_alignment(variable, cur_alignment, variable_name) * if variable_display_width: # <<<<<<<<<<<<<< @@ -15566,17 +15626,17 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d */ } - /* "pyreadstat/_readstat_writer.pyx":881 + /* "pyreadstat/_readstat_writer.pyx":878 * if cur_display_width: * set_variable_display_width(variable, cur_display_width, variable_name) * if variable_measure: # <<<<<<<<<<<<<< * cur_measure = variable_measure.get(variable_name) * if cur_measure: */ - __pyx_t_18 = __Pyx_PyObject_IsTrue(__pyx_v_variable_measure); if (unlikely((__pyx_t_18 < 0))) __PYX_ERR(0, 881, __pyx_L22_error) - if (__pyx_t_18) { + __pyx_t_20 = __Pyx_PyObject_IsTrue(__pyx_v_variable_measure); if (unlikely((__pyx_t_20 < 0))) __PYX_ERR(0, 878, __pyx_L23_error) + if (__pyx_t_20) { - /* "pyreadstat/_readstat_writer.pyx":882 + /* "pyreadstat/_readstat_writer.pyx":879 * set_variable_display_width(variable, cur_display_width, variable_name) * if variable_measure: * cur_measure = variable_measure.get(variable_name) # <<<<<<<<<<<<<< @@ -15585,41 +15645,41 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d */ if (unlikely(__pyx_v_variable_measure == Py_None)) { PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "get"); - __PYX_ERR(0, 882, __pyx_L22_error) + __PYX_ERR(0, 879, __pyx_L23_error) } - __pyx_t_9 = __Pyx_PyDict_GetItemDefault(__pyx_v_variable_measure, __pyx_v_variable_name, Py_None); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 882, __pyx_L22_error) - __Pyx_GOTREF(__pyx_t_9); - __Pyx_XDECREF_SET(__pyx_v_cur_measure, __pyx_t_9); - __pyx_t_9 = 0; + __pyx_t_3 = __Pyx_PyDict_GetItemDefault(__pyx_v_variable_measure, __pyx_v_variable_name, Py_None); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 879, __pyx_L23_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_XDECREF_SET(__pyx_v_cur_measure, __pyx_t_3); + __pyx_t_3 = 0; - /* "pyreadstat/_readstat_writer.pyx":883 + /* "pyreadstat/_readstat_writer.pyx":880 * if variable_measure: * cur_measure = variable_measure.get(variable_name) * if cur_measure: # <<<<<<<<<<<<<< * set_variable_measure(variable, cur_measure, variable_name) * */ - __pyx_t_18 = __Pyx_PyObject_IsTrue(__pyx_v_cur_measure); if (unlikely((__pyx_t_18 < 0))) __PYX_ERR(0, 883, __pyx_L22_error) - if (__pyx_t_18) { + __pyx_t_20 = __Pyx_PyObject_IsTrue(__pyx_v_cur_measure); if (unlikely((__pyx_t_20 < 0))) __PYX_ERR(0, 880, __pyx_L23_error) + if (__pyx_t_20) { - /* "pyreadstat/_readstat_writer.pyx":884 + /* "pyreadstat/_readstat_writer.pyx":881 * cur_measure = variable_measure.get(variable_name) * if cur_measure: * set_variable_measure(variable, cur_measure, variable_name) # <<<<<<<<<<<<<< * * # start writing */ - __pyx_t_9 = __pyx_v_cur_measure; - __Pyx_INCREF(__pyx_t_9); - if (!(likely(PyUnicode_CheckExact(__pyx_t_9))||((__pyx_t_9) == Py_None) || __Pyx_RaiseUnexpectedTypeError("str", __pyx_t_9))) __PYX_ERR(0, 884, __pyx_L22_error) + __pyx_t_3 = __pyx_v_cur_measure; + __Pyx_INCREF(__pyx_t_3); + if (!(likely(PyUnicode_CheckExact(__pyx_t_3))||((__pyx_t_3) == Py_None) || __Pyx_RaiseUnexpectedTypeError("str", __pyx_t_3))) __PYX_ERR(0, 881, __pyx_L23_error) __pyx_t_1 = __pyx_v_variable_name; __Pyx_INCREF(__pyx_t_1); - if (!(likely(PyUnicode_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("str", __pyx_t_1))) __PYX_ERR(0, 884, __pyx_L22_error) - __pyx_f_10pyreadstat_16_readstat_writer_set_variable_measure(__pyx_v_variable, ((PyObject*)__pyx_t_9), ((PyObject*)__pyx_t_1)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 884, __pyx_L22_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + if (!(likely(PyUnicode_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("str", __pyx_t_1))) __PYX_ERR(0, 881, __pyx_L23_error) + __pyx_f_10pyreadstat_16_readstat_writer_set_variable_measure(__pyx_v_variable, ((PyObject*)__pyx_t_3), ((PyObject*)__pyx_t_1)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 881, __pyx_L23_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "pyreadstat/_readstat_writer.pyx":883 + /* "pyreadstat/_readstat_writer.pyx":880 * if variable_measure: * cur_measure = variable_measure.get(variable_name) * if cur_measure: # <<<<<<<<<<<<<< @@ -15628,7 +15688,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d */ } - /* "pyreadstat/_readstat_writer.pyx":881 + /* "pyreadstat/_readstat_writer.pyx":878 * if cur_display_width: * set_variable_display_width(variable, cur_display_width, variable_name) * if variable_measure: # <<<<<<<<<<<<<< @@ -15638,7 +15698,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d } } - /* "pyreadstat/_readstat_writer.pyx":887 + /* "pyreadstat/_readstat_writer.pyx":884 * * # start writing * if file_format == FILE_FORMAT_SAS7BCAT: # <<<<<<<<<<<<<< @@ -15648,16 +15708,16 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d switch (__pyx_v_file_format) { case __pyx_e_10pyreadstat_16_readstat_writer_FILE_FORMAT_SAS7BCAT: - /* "pyreadstat/_readstat_writer.pyx":888 + /* "pyreadstat/_readstat_writer.pyx":885 * # start writing * if file_format == FILE_FORMAT_SAS7BCAT: * check_exit_status(readstat_begin_writing_sas7bcat(writer, &fd)) # <<<<<<<<<<<<<< * elif file_format == FILE_FORMAT_DTA: * check_exit_status(readstat_begin_writing_dta(writer, &fd, row_count)) */ - __pyx_f_10pyreadstat_16_readstat_parser_check_exit_status(readstat_begin_writing_sas7bcat(__pyx_v_writer, (&__pyx_v_fd))); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 888, __pyx_L22_error) + __pyx_f_10pyreadstat_16_readstat_parser_check_exit_status(readstat_begin_writing_sas7bcat(__pyx_v_writer, (&__pyx_v_fd))); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 885, __pyx_L23_error) - /* "pyreadstat/_readstat_writer.pyx":887 + /* "pyreadstat/_readstat_writer.pyx":884 * * # start writing * if file_format == FILE_FORMAT_SAS7BCAT: # <<<<<<<<<<<<<< @@ -15667,16 +15727,16 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d break; case __pyx_e_10pyreadstat_16_readstat_writer_FILE_FORMAT_DTA: - /* "pyreadstat/_readstat_writer.pyx":890 + /* "pyreadstat/_readstat_writer.pyx":887 * check_exit_status(readstat_begin_writing_sas7bcat(writer, &fd)) * elif file_format == FILE_FORMAT_DTA: * check_exit_status(readstat_begin_writing_dta(writer, &fd, row_count)) # <<<<<<<<<<<<<< * elif file_format == FILE_FORMAT_SAV: * check_exit_status(readstat_begin_writing_sav(writer, &fd, row_count)) */ - __pyx_f_10pyreadstat_16_readstat_parser_check_exit_status(readstat_begin_writing_dta(__pyx_v_writer, (&__pyx_v_fd), __pyx_v_row_count)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 890, __pyx_L22_error) + __pyx_f_10pyreadstat_16_readstat_parser_check_exit_status(readstat_begin_writing_dta(__pyx_v_writer, (&__pyx_v_fd), __pyx_v_row_count)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 887, __pyx_L23_error) - /* "pyreadstat/_readstat_writer.pyx":889 + /* "pyreadstat/_readstat_writer.pyx":886 * if file_format == FILE_FORMAT_SAS7BCAT: * check_exit_status(readstat_begin_writing_sas7bcat(writer, &fd)) * elif file_format == FILE_FORMAT_DTA: # <<<<<<<<<<<<<< @@ -15686,16 +15746,16 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d break; case __pyx_e_10pyreadstat_16_readstat_writer_FILE_FORMAT_SAV: - /* "pyreadstat/_readstat_writer.pyx":892 + /* "pyreadstat/_readstat_writer.pyx":889 * check_exit_status(readstat_begin_writing_dta(writer, &fd, row_count)) * elif file_format == FILE_FORMAT_SAV: * check_exit_status(readstat_begin_writing_sav(writer, &fd, row_count)) # <<<<<<<<<<<<<< * elif file_format == FILE_FORMAT_POR: * check_exit_status(readstat_begin_writing_por(writer, &fd, row_count)) */ - __pyx_f_10pyreadstat_16_readstat_parser_check_exit_status(readstat_begin_writing_sav(__pyx_v_writer, (&__pyx_v_fd), __pyx_v_row_count)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 892, __pyx_L22_error) + __pyx_f_10pyreadstat_16_readstat_parser_check_exit_status(readstat_begin_writing_sav(__pyx_v_writer, (&__pyx_v_fd), __pyx_v_row_count)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 889, __pyx_L23_error) - /* "pyreadstat/_readstat_writer.pyx":891 + /* "pyreadstat/_readstat_writer.pyx":888 * elif file_format == FILE_FORMAT_DTA: * check_exit_status(readstat_begin_writing_dta(writer, &fd, row_count)) * elif file_format == FILE_FORMAT_SAV: # <<<<<<<<<<<<<< @@ -15705,16 +15765,16 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d break; case __pyx_e_10pyreadstat_16_readstat_writer_FILE_FORMAT_POR: - /* "pyreadstat/_readstat_writer.pyx":894 + /* "pyreadstat/_readstat_writer.pyx":891 * check_exit_status(readstat_begin_writing_sav(writer, &fd, row_count)) * elif file_format == FILE_FORMAT_POR: * check_exit_status(readstat_begin_writing_por(writer, &fd, row_count)) # <<<<<<<<<<<<<< * elif file_format == FILE_FORMAT_SAS7BDAT: * check_exit_status(readstat_begin_writing_sas7bdat(writer, &fd, row_count)) */ - __pyx_f_10pyreadstat_16_readstat_parser_check_exit_status(readstat_begin_writing_por(__pyx_v_writer, (&__pyx_v_fd), __pyx_v_row_count)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 894, __pyx_L22_error) + __pyx_f_10pyreadstat_16_readstat_parser_check_exit_status(readstat_begin_writing_por(__pyx_v_writer, (&__pyx_v_fd), __pyx_v_row_count)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 891, __pyx_L23_error) - /* "pyreadstat/_readstat_writer.pyx":893 + /* "pyreadstat/_readstat_writer.pyx":890 * elif file_format == FILE_FORMAT_SAV: * check_exit_status(readstat_begin_writing_sav(writer, &fd, row_count)) * elif file_format == FILE_FORMAT_POR: # <<<<<<<<<<<<<< @@ -15724,16 +15784,16 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d break; case __pyx_e_10pyreadstat_16_readstat_writer_FILE_FORMAT_SAS7BDAT: - /* "pyreadstat/_readstat_writer.pyx":896 + /* "pyreadstat/_readstat_writer.pyx":893 * check_exit_status(readstat_begin_writing_por(writer, &fd, row_count)) * elif file_format == FILE_FORMAT_SAS7BDAT: * check_exit_status(readstat_begin_writing_sas7bdat(writer, &fd, row_count)) # <<<<<<<<<<<<<< * elif file_format == FILE_FORMAT_XPORT: * check_exit_status(readstat_begin_writing_xport(writer, &fd, row_count)) */ - __pyx_f_10pyreadstat_16_readstat_parser_check_exit_status(readstat_begin_writing_sas7bdat(__pyx_v_writer, (&__pyx_v_fd), __pyx_v_row_count)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 896, __pyx_L22_error) + __pyx_f_10pyreadstat_16_readstat_parser_check_exit_status(readstat_begin_writing_sas7bdat(__pyx_v_writer, (&__pyx_v_fd), __pyx_v_row_count)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 893, __pyx_L23_error) - /* "pyreadstat/_readstat_writer.pyx":895 + /* "pyreadstat/_readstat_writer.pyx":892 * elif file_format == FILE_FORMAT_POR: * check_exit_status(readstat_begin_writing_por(writer, &fd, row_count)) * elif file_format == FILE_FORMAT_SAS7BDAT: # <<<<<<<<<<<<<< @@ -15743,16 +15803,16 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d break; case __pyx_e_10pyreadstat_16_readstat_writer_FILE_FORMAT_XPORT: - /* "pyreadstat/_readstat_writer.pyx":898 + /* "pyreadstat/_readstat_writer.pyx":895 * check_exit_status(readstat_begin_writing_sas7bdat(writer, &fd, row_count)) * elif file_format == FILE_FORMAT_XPORT: * check_exit_status(readstat_begin_writing_xport(writer, &fd, row_count)) # <<<<<<<<<<<<<< * else: * raise PyreadstatError("unknown file format") */ - __pyx_f_10pyreadstat_16_readstat_parser_check_exit_status(readstat_begin_writing_xport(__pyx_v_writer, (&__pyx_v_fd), __pyx_v_row_count)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 898, __pyx_L22_error) + __pyx_f_10pyreadstat_16_readstat_parser_check_exit_status(readstat_begin_writing_xport(__pyx_v_writer, (&__pyx_v_fd), __pyx_v_row_count)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 895, __pyx_L23_error) - /* "pyreadstat/_readstat_writer.pyx":897 + /* "pyreadstat/_readstat_writer.pyx":894 * elif file_format == FILE_FORMAT_SAS7BDAT: * check_exit_status(readstat_begin_writing_sas7bdat(writer, &fd, row_count)) * elif file_format == FILE_FORMAT_XPORT: # <<<<<<<<<<<<<< @@ -15762,52 +15822,52 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d break; default: - /* "pyreadstat/_readstat_writer.pyx":900 + /* "pyreadstat/_readstat_writer.pyx":897 * check_exit_status(readstat_begin_writing_xport(writer, &fd, row_count)) * else: * raise PyreadstatError("unknown file format") # <<<<<<<<<<<<<< * * # validation */ - __pyx_t_9 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 900, __pyx_L22_error) - __Pyx_GOTREF(__pyx_t_3); + __pyx_t_3 = NULL; + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 897, __pyx_L23_error) + __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = 1; #if CYTHON_UNPACK_METHODS - if (unlikely(PyMethod_Check(__pyx_t_3))) { - __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_3); - assert(__pyx_t_9); - PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_3); - __Pyx_INCREF(__pyx_t_9); + if (unlikely(PyMethod_Check(__pyx_t_4))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4); + assert(__pyx_t_3); + PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4); + __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(__pyx__function); - __Pyx_DECREF_SET(__pyx_t_3, __pyx__function); + __Pyx_DECREF_SET(__pyx_t_4, __pyx__function); __pyx_t_5 = 0; } #endif { - PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_mstate_global->__pyx_kp_u_unknown_file_format}; - __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_3, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 900, __pyx_L22_error) + PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_mstate_global->__pyx_kp_u_unknown_file_format}; + __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 897, __pyx_L23_error) __Pyx_GOTREF(__pyx_t_1); } __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __PYX_ERR(0, 900, __pyx_L22_error) + __PYX_ERR(0, 897, __pyx_L23_error) break; } - /* "pyreadstat/_readstat_writer.pyx":903 + /* "pyreadstat/_readstat_writer.pyx":900 * * # validation * check_exit_status(readstat_validate_metadata(writer)) # <<<<<<<<<<<<<< * for col_indx in range(col_count): * tempvar = readstat_get_variable(writer, col_indx) */ - __pyx_f_10pyreadstat_16_readstat_parser_check_exit_status(readstat_validate_metadata(__pyx_v_writer)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 903, __pyx_L22_error) + __pyx_f_10pyreadstat_16_readstat_parser_check_exit_status(readstat_validate_metadata(__pyx_v_writer)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 900, __pyx_L23_error) - /* "pyreadstat/_readstat_writer.pyx":904 + /* "pyreadstat/_readstat_writer.pyx":901 * # validation * check_exit_status(readstat_validate_metadata(writer)) * for col_indx in range(col_count): # <<<<<<<<<<<<<< @@ -15815,11 +15875,11 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d * check_exit_status(readstat_validate_variable(writer, tempvar)) */ __pyx_t_12 = __pyx_v_col_count; - __pyx_t_19 = __pyx_t_12; - for (__pyx_t_20 = 0; __pyx_t_20 < __pyx_t_19; __pyx_t_20+=1) { - __pyx_v_col_indx = __pyx_t_20; + __pyx_t_21 = __pyx_t_12; + for (__pyx_t_22 = 0; __pyx_t_22 < __pyx_t_21; __pyx_t_22+=1) { + __pyx_v_col_indx = __pyx_t_22; - /* "pyreadstat/_readstat_writer.pyx":905 + /* "pyreadstat/_readstat_writer.pyx":902 * check_exit_status(readstat_validate_metadata(writer)) * for col_indx in range(col_count): * tempvar = readstat_get_variable(writer, col_indx) # <<<<<<<<<<<<<< @@ -15828,138 +15888,138 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d */ __pyx_v_tempvar = readstat_get_variable(__pyx_v_writer, __pyx_v_col_indx); - /* "pyreadstat/_readstat_writer.pyx":906 + /* "pyreadstat/_readstat_writer.pyx":903 * for col_indx in range(col_count): * tempvar = readstat_get_variable(writer, col_indx) * check_exit_status(readstat_validate_variable(writer, tempvar)) # <<<<<<<<<<<<<< * * # vectorized transform of datetime64ns columns */ - __pyx_f_10pyreadstat_16_readstat_parser_check_exit_status(readstat_validate_variable(__pyx_v_writer, __pyx_v_tempvar)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 906, __pyx_L22_error) + __pyx_f_10pyreadstat_16_readstat_parser_check_exit_status(readstat_validate_variable(__pyx_v_writer, __pyx_v_tempvar)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 903, __pyx_L23_error) } - /* "pyreadstat/_readstat_writer.pyx":909 + /* "pyreadstat/_readstat_writer.pyx":906 * * # vectorized transform of datetime64ns columns * pywriter_types = [x[0] for x in col_types] # <<<<<<<<<<<<<< * pywriter_timeunits = [x[3] for x in col_types] * hasdatetime64 = PYWRITER_DATETIME64 in pywriter_types */ - __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 909, __pyx_L22_error) + __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 906, __pyx_L23_error) __Pyx_GOTREF(__pyx_t_1); if (unlikely(__pyx_v_col_types == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable"); - __PYX_ERR(0, 909, __pyx_L22_error) + __PYX_ERR(0, 906, __pyx_L23_error) } - __pyx_t_3 = __pyx_v_col_types; __Pyx_INCREF(__pyx_t_3); + __pyx_t_4 = __pyx_v_col_types; __Pyx_INCREF(__pyx_t_4); __pyx_t_7 = 0; for (;;) { { - Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_3); + Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_4); #if !CYTHON_ASSUME_SAFE_SIZE - if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 909, __pyx_L22_error) + if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 906, __pyx_L23_error) #endif if (__pyx_t_7 >= __pyx_temp) break; } - __pyx_t_9 = __Pyx_PyList_GetItemRefFast(__pyx_t_3, __pyx_t_7, __Pyx_ReferenceSharing_OwnStrongReference); + __pyx_t_3 = __Pyx_PyList_GetItemRefFast(__pyx_t_4, __pyx_t_7, __Pyx_ReferenceSharing_OwnStrongReference); ++__pyx_t_7; - if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 909, __pyx_L22_error) - __Pyx_GOTREF(__pyx_t_9); - __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_9); - __pyx_t_9 = 0; - __pyx_t_9 = __Pyx_GetItemInt(__pyx_v_x, 0, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_OwnStrongReference); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 909, __pyx_L22_error) - __Pyx_GOTREF(__pyx_t_9); - if (unlikely(__Pyx_ListComp_Append(__pyx_t_1, (PyObject*)__pyx_t_9))) __PYX_ERR(0, 909, __pyx_L22_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 906, __pyx_L23_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_3); + __pyx_t_3 = 0; + __pyx_t_3 = __Pyx_GetItemInt(__pyx_v_x, 0, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_OwnStrongReference); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 906, __pyx_L23_error) + __Pyx_GOTREF(__pyx_t_3); + if (unlikely(__Pyx_ListComp_Append(__pyx_t_1, (PyObject*)__pyx_t_3))) __PYX_ERR(0, 906, __pyx_L23_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_v_pywriter_types = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - /* "pyreadstat/_readstat_writer.pyx":910 + /* "pyreadstat/_readstat_writer.pyx":907 * # vectorized transform of datetime64ns columns * pywriter_types = [x[0] for x in col_types] * pywriter_timeunits = [x[3] for x in col_types] # <<<<<<<<<<<<<< * hasdatetime64 = PYWRITER_DATETIME64 in pywriter_types * hasdate64 = PYWRITER_DATE64 in pywriter_types */ - __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 910, __pyx_L22_error) + __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 907, __pyx_L23_error) __Pyx_GOTREF(__pyx_t_1); if (unlikely(__pyx_v_col_types == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable"); - __PYX_ERR(0, 910, __pyx_L22_error) + __PYX_ERR(0, 907, __pyx_L23_error) } - __pyx_t_3 = __pyx_v_col_types; __Pyx_INCREF(__pyx_t_3); + __pyx_t_4 = __pyx_v_col_types; __Pyx_INCREF(__pyx_t_4); __pyx_t_7 = 0; for (;;) { { - Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_3); + Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_4); #if !CYTHON_ASSUME_SAFE_SIZE - if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 910, __pyx_L22_error) + if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 907, __pyx_L23_error) #endif if (__pyx_t_7 >= __pyx_temp) break; } - __pyx_t_9 = __Pyx_PyList_GetItemRefFast(__pyx_t_3, __pyx_t_7, __Pyx_ReferenceSharing_OwnStrongReference); + __pyx_t_3 = __Pyx_PyList_GetItemRefFast(__pyx_t_4, __pyx_t_7, __Pyx_ReferenceSharing_OwnStrongReference); ++__pyx_t_7; - if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 910, __pyx_L22_error) - __Pyx_GOTREF(__pyx_t_9); - __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_9); - __pyx_t_9 = 0; - __pyx_t_9 = __Pyx_GetItemInt(__pyx_v_x, 3, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_OwnStrongReference); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 910, __pyx_L22_error) - __Pyx_GOTREF(__pyx_t_9); - if (unlikely(__Pyx_ListComp_Append(__pyx_t_1, (PyObject*)__pyx_t_9))) __PYX_ERR(0, 910, __pyx_L22_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 907, __pyx_L23_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_3); + __pyx_t_3 = 0; + __pyx_t_3 = __Pyx_GetItemInt(__pyx_v_x, 3, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_OwnStrongReference); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 907, __pyx_L23_error) + __Pyx_GOTREF(__pyx_t_3); + if (unlikely(__Pyx_ListComp_Append(__pyx_t_1, (PyObject*)__pyx_t_3))) __PYX_ERR(0, 907, __pyx_L23_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_v_pywriter_timeunits = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - /* "pyreadstat/_readstat_writer.pyx":911 + /* "pyreadstat/_readstat_writer.pyx":908 * pywriter_types = [x[0] for x in col_types] * pywriter_timeunits = [x[3] for x in col_types] * hasdatetime64 = PYWRITER_DATETIME64 in pywriter_types # <<<<<<<<<<<<<< * hasdate64 = PYWRITER_DATE64 in pywriter_types * hastime64 = PYWRITER_TIME64 in pywriter_types */ - __pyx_t_1 = __Pyx_PyLong_From___pyx_t_10pyreadstat_16_readstat_writer_pywriter_variable_type(__pyx_e_10pyreadstat_16_readstat_writer_PYWRITER_DATETIME64); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 911, __pyx_L22_error) + __pyx_t_1 = __Pyx_PyLong_From___pyx_t_10pyreadstat_16_readstat_writer_pywriter_variable_type(__pyx_e_10pyreadstat_16_readstat_writer_PYWRITER_DATETIME64); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 908, __pyx_L23_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_18 = (__Pyx_PySequence_ContainsTF(__pyx_t_1, __pyx_v_pywriter_types, Py_EQ)); if (unlikely((__pyx_t_18 < 0))) __PYX_ERR(0, 911, __pyx_L22_error) + __pyx_t_20 = (__Pyx_PySequence_ContainsTF(__pyx_t_1, __pyx_v_pywriter_types, Py_EQ)); if (unlikely((__pyx_t_20 < 0))) __PYX_ERR(0, 908, __pyx_L23_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_v_hasdatetime64 = __pyx_t_18; + __pyx_v_hasdatetime64 = __pyx_t_20; - /* "pyreadstat/_readstat_writer.pyx":912 + /* "pyreadstat/_readstat_writer.pyx":909 * pywriter_timeunits = [x[3] for x in col_types] * hasdatetime64 = PYWRITER_DATETIME64 in pywriter_types * hasdate64 = PYWRITER_DATE64 in pywriter_types # <<<<<<<<<<<<<< * hastime64 = PYWRITER_TIME64 in pywriter_types * if hasdatetime64 or hasdate64 or hastime64: */ - __pyx_t_1 = __Pyx_PyLong_From___pyx_t_10pyreadstat_16_readstat_writer_pywriter_variable_type(__pyx_e_10pyreadstat_16_readstat_writer_PYWRITER_DATE64); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 912, __pyx_L22_error) + __pyx_t_1 = __Pyx_PyLong_From___pyx_t_10pyreadstat_16_readstat_writer_pywriter_variable_type(__pyx_e_10pyreadstat_16_readstat_writer_PYWRITER_DATE64); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 909, __pyx_L23_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_18 = (__Pyx_PySequence_ContainsTF(__pyx_t_1, __pyx_v_pywriter_types, Py_EQ)); if (unlikely((__pyx_t_18 < 0))) __PYX_ERR(0, 912, __pyx_L22_error) + __pyx_t_20 = (__Pyx_PySequence_ContainsTF(__pyx_t_1, __pyx_v_pywriter_types, Py_EQ)); if (unlikely((__pyx_t_20 < 0))) __PYX_ERR(0, 909, __pyx_L23_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = __Pyx_PyBool_FromLong(__pyx_t_18); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 912, __pyx_L22_error) + __pyx_t_1 = __Pyx_PyBool_FromLong(__pyx_t_20); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 909, __pyx_L23_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_hasdate64 = __pyx_t_1; __pyx_t_1 = 0; - /* "pyreadstat/_readstat_writer.pyx":913 + /* "pyreadstat/_readstat_writer.pyx":910 * hasdatetime64 = PYWRITER_DATETIME64 in pywriter_types * hasdate64 = PYWRITER_DATE64 in pywriter_types * hastime64 = PYWRITER_TIME64 in pywriter_types # <<<<<<<<<<<<<< * if hasdatetime64 or hasdate64 or hastime64: * df2 = df.clone() */ - __pyx_t_1 = __Pyx_PyLong_From___pyx_t_10pyreadstat_16_readstat_writer_pywriter_variable_type(__pyx_e_10pyreadstat_16_readstat_writer_PYWRITER_TIME64); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 913, __pyx_L22_error) + __pyx_t_1 = __Pyx_PyLong_From___pyx_t_10pyreadstat_16_readstat_writer_pywriter_variable_type(__pyx_e_10pyreadstat_16_readstat_writer_PYWRITER_TIME64); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 910, __pyx_L23_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_18 = (__Pyx_PySequence_ContainsTF(__pyx_t_1, __pyx_v_pywriter_types, Py_EQ)); if (unlikely((__pyx_t_18 < 0))) __PYX_ERR(0, 913, __pyx_L22_error) + __pyx_t_20 = (__Pyx_PySequence_ContainsTF(__pyx_t_1, __pyx_v_pywriter_types, Py_EQ)); if (unlikely((__pyx_t_20 < 0))) __PYX_ERR(0, 910, __pyx_L23_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = __Pyx_PyBool_FromLong(__pyx_t_18); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 913, __pyx_L22_error) + __pyx_t_1 = __Pyx_PyBool_FromLong(__pyx_t_20); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 910, __pyx_L23_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_hastime64 = __pyx_t_1; __pyx_t_1 = 0; - /* "pyreadstat/_readstat_writer.pyx":914 + /* "pyreadstat/_readstat_writer.pyx":911 * hasdate64 = PYWRITER_DATE64 in pywriter_types * hastime64 = PYWRITER_TIME64 in pywriter_types * if hasdatetime64 or hasdate64 or hastime64: # <<<<<<<<<<<<<< @@ -15968,41 +16028,41 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d */ if (!__pyx_v_hasdatetime64) { } else { - __pyx_t_18 = __pyx_v_hasdatetime64; - goto __pyx_L86_bool_binop_done; + __pyx_t_20 = __pyx_v_hasdatetime64; + goto __pyx_L87_bool_binop_done; } - __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_v_hasdate64); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(0, 914, __pyx_L22_error) + __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_v_hasdate64); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(0, 911, __pyx_L23_error) if (!__pyx_t_6) { } else { - __pyx_t_18 = __pyx_t_6; - goto __pyx_L86_bool_binop_done; + __pyx_t_20 = __pyx_t_6; + goto __pyx_L87_bool_binop_done; } - __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_v_hastime64); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(0, 914, __pyx_L22_error) - __pyx_t_18 = __pyx_t_6; - __pyx_L86_bool_binop_done:; - if (__pyx_t_18) { + __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_v_hastime64); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(0, 911, __pyx_L23_error) + __pyx_t_20 = __pyx_t_6; + __pyx_L87_bool_binop_done:; + if (__pyx_t_20) { - /* "pyreadstat/_readstat_writer.pyx":915 + /* "pyreadstat/_readstat_writer.pyx":912 * hastime64 = PYWRITER_TIME64 in pywriter_types * if hasdatetime64 or hasdate64 or hastime64: * df2 = df.clone() # <<<<<<<<<<<<<< * if hasdatetime64: * df2 = vectorized_convert_datetime_to_number(df2, file_format, pywriter_types, pywriter_timeunits, col_count) */ - __pyx_t_3 = __pyx_v_df; - __Pyx_INCREF(__pyx_t_3); + __pyx_t_4 = __pyx_v_df; + __Pyx_INCREF(__pyx_t_4); __pyx_t_5 = 0; { - PyObject *__pyx_callargs[2] = {__pyx_t_3, NULL}; + PyObject *__pyx_callargs[2] = {__pyx_t_4, NULL}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_clone, __pyx_callargs+__pyx_t_5, (1-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 915, __pyx_L22_error) + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 912, __pyx_L23_error) __Pyx_GOTREF(__pyx_t_1); } __pyx_v_df2 = __pyx_t_1; __pyx_t_1 = 0; - /* "pyreadstat/_readstat_writer.pyx":916 + /* "pyreadstat/_readstat_writer.pyx":913 * if hasdatetime64 or hasdate64 or hastime64: * df2 = df.clone() * if hasdatetime64: # <<<<<<<<<<<<<< @@ -16011,19 +16071,19 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d */ if (__pyx_v_hasdatetime64) { - /* "pyreadstat/_readstat_writer.pyx":917 + /* "pyreadstat/_readstat_writer.pyx":914 * df2 = df.clone() * if hasdatetime64: * df2 = vectorized_convert_datetime_to_number(df2, file_format, pywriter_types, pywriter_timeunits, col_count) # <<<<<<<<<<<<<< * if hasdate64: * df2 = vectorized_convert_date_to_number(df2, file_format, pywriter_types, col_count) */ - __pyx_t_1 = __pyx_f_10pyreadstat_16_readstat_writer_vectorized_convert_datetime_to_number(__pyx_v_df2, __pyx_v_file_format, __pyx_v_pywriter_types, __pyx_v_pywriter_timeunits, __pyx_v_col_count); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 917, __pyx_L22_error) + __pyx_t_1 = __pyx_f_10pyreadstat_16_readstat_writer_vectorized_convert_datetime_to_number(__pyx_v_df2, __pyx_v_file_format, __pyx_v_pywriter_types, __pyx_v_pywriter_timeunits, __pyx_v_col_count); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 914, __pyx_L23_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_df2, __pyx_t_1); __pyx_t_1 = 0; - /* "pyreadstat/_readstat_writer.pyx":916 + /* "pyreadstat/_readstat_writer.pyx":913 * if hasdatetime64 or hasdate64 or hastime64: * df2 = df.clone() * if hasdatetime64: # <<<<<<<<<<<<<< @@ -16032,29 +16092,29 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d */ } - /* "pyreadstat/_readstat_writer.pyx":918 + /* "pyreadstat/_readstat_writer.pyx":915 * if hasdatetime64: * df2 = vectorized_convert_datetime_to_number(df2, file_format, pywriter_types, pywriter_timeunits, col_count) * if hasdate64: # <<<<<<<<<<<<<< * df2 = vectorized_convert_date_to_number(df2, file_format, pywriter_types, col_count) * if hastime64: */ - __pyx_t_18 = __Pyx_PyObject_IsTrue(__pyx_v_hasdate64); if (unlikely((__pyx_t_18 < 0))) __PYX_ERR(0, 918, __pyx_L22_error) - if (__pyx_t_18) { + __pyx_t_20 = __Pyx_PyObject_IsTrue(__pyx_v_hasdate64); if (unlikely((__pyx_t_20 < 0))) __PYX_ERR(0, 915, __pyx_L23_error) + if (__pyx_t_20) { - /* "pyreadstat/_readstat_writer.pyx":919 + /* "pyreadstat/_readstat_writer.pyx":916 * df2 = vectorized_convert_datetime_to_number(df2, file_format, pywriter_types, pywriter_timeunits, col_count) * if hasdate64: * df2 = vectorized_convert_date_to_number(df2, file_format, pywriter_types, col_count) # <<<<<<<<<<<<<< * if hastime64: * df2 = vectorized_convert_time_to_number(df2, file_format, pywriter_types, col_count) */ - __pyx_t_1 = __pyx_f_10pyreadstat_16_readstat_writer_vectorized_convert_date_to_number(__pyx_v_df2, __pyx_v_file_format, __pyx_v_pywriter_types, __pyx_v_col_count); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 919, __pyx_L22_error) + __pyx_t_1 = __pyx_f_10pyreadstat_16_readstat_writer_vectorized_convert_date_to_number(__pyx_v_df2, __pyx_v_file_format, __pyx_v_pywriter_types, __pyx_v_col_count); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 916, __pyx_L23_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_df2, __pyx_t_1); __pyx_t_1 = 0; - /* "pyreadstat/_readstat_writer.pyx":918 + /* "pyreadstat/_readstat_writer.pyx":915 * if hasdatetime64: * df2 = vectorized_convert_datetime_to_number(df2, file_format, pywriter_types, pywriter_timeunits, col_count) * if hasdate64: # <<<<<<<<<<<<<< @@ -16063,29 +16123,29 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d */ } - /* "pyreadstat/_readstat_writer.pyx":920 + /* "pyreadstat/_readstat_writer.pyx":917 * if hasdate64: * df2 = vectorized_convert_date_to_number(df2, file_format, pywriter_types, col_count) * if hastime64: # <<<<<<<<<<<<<< * df2 = vectorized_convert_time_to_number(df2, file_format, pywriter_types, col_count) * else: */ - __pyx_t_18 = __Pyx_PyObject_IsTrue(__pyx_v_hastime64); if (unlikely((__pyx_t_18 < 0))) __PYX_ERR(0, 920, __pyx_L22_error) - if (__pyx_t_18) { + __pyx_t_20 = __Pyx_PyObject_IsTrue(__pyx_v_hastime64); if (unlikely((__pyx_t_20 < 0))) __PYX_ERR(0, 917, __pyx_L23_error) + if (__pyx_t_20) { - /* "pyreadstat/_readstat_writer.pyx":921 + /* "pyreadstat/_readstat_writer.pyx":918 * df2 = vectorized_convert_date_to_number(df2, file_format, pywriter_types, col_count) * if hastime64: * df2 = vectorized_convert_time_to_number(df2, file_format, pywriter_types, col_count) # <<<<<<<<<<<<<< * else: * df2 = df */ - __pyx_t_1 = __pyx_f_10pyreadstat_16_readstat_writer_vectorized_convert_time_to_number(__pyx_v_df2, __pyx_v_file_format, __pyx_v_pywriter_types, __pyx_v_col_count); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 921, __pyx_L22_error) + __pyx_t_1 = __pyx_f_10pyreadstat_16_readstat_writer_vectorized_convert_time_to_number(__pyx_v_df2, __pyx_v_file_format, __pyx_v_pywriter_types, __pyx_v_col_count); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 918, __pyx_L23_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_df2, __pyx_t_1); __pyx_t_1 = 0; - /* "pyreadstat/_readstat_writer.pyx":920 + /* "pyreadstat/_readstat_writer.pyx":917 * if hasdate64: * df2 = vectorized_convert_date_to_number(df2, file_format, pywriter_types, col_count) * if hastime64: # <<<<<<<<<<<<<< @@ -16094,17 +16154,17 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d */ } - /* "pyreadstat/_readstat_writer.pyx":914 + /* "pyreadstat/_readstat_writer.pyx":911 * hasdate64 = PYWRITER_DATE64 in pywriter_types * hastime64 = PYWRITER_TIME64 in pywriter_types * if hasdatetime64 or hasdate64 or hastime64: # <<<<<<<<<<<<<< * df2 = df.clone() * if hasdatetime64: */ - goto __pyx_L85; + goto __pyx_L86; } - /* "pyreadstat/_readstat_writer.pyx":923 + /* "pyreadstat/_readstat_writer.pyx":920 * df2 = vectorized_convert_time_to_number(df2, file_format, pywriter_types, col_count) * else: * df2 = df # <<<<<<<<<<<<<< @@ -16115,9 +16175,9 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d __Pyx_INCREF(__pyx_v_df); __pyx_v_df2 = __pyx_v_df; } - __pyx_L85:; + __pyx_L86:; - /* "pyreadstat/_readstat_writer.pyx":927 + /* "pyreadstat/_readstat_writer.pyx":924 * * # inserting * rowcnt = 0 # <<<<<<<<<<<<<< @@ -16127,67 +16187,67 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d __Pyx_INCREF(__pyx_mstate_global->__pyx_int_0); __pyx_v_rowcnt = __pyx_mstate_global->__pyx_int_0; - /* "pyreadstat/_readstat_writer.pyx":929 + /* "pyreadstat/_readstat_writer.pyx":926 * rowcnt = 0 * * for row in df2.iter_rows(): # <<<<<<<<<<<<<< * check_exit_status(readstat_begin_row(writer)) * */ - __pyx_t_3 = __pyx_v_df2; - __Pyx_INCREF(__pyx_t_3); + __pyx_t_4 = __pyx_v_df2; + __Pyx_INCREF(__pyx_t_4); __pyx_t_5 = 0; { - PyObject *__pyx_callargs[2] = {__pyx_t_3, NULL}; + PyObject *__pyx_callargs[2] = {__pyx_t_4, NULL}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_iter_rows, __pyx_callargs+__pyx_t_5, (1-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 929, __pyx_L22_error) + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 926, __pyx_L23_error) __Pyx_GOTREF(__pyx_t_1); } if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) { - __pyx_t_3 = __pyx_t_1; __Pyx_INCREF(__pyx_t_3); + __pyx_t_4 = __pyx_t_1; __Pyx_INCREF(__pyx_t_4); __pyx_t_7 = 0; __pyx_t_8 = NULL; } else { - __pyx_t_7 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 929, __pyx_L22_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_8 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_3); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 929, __pyx_L22_error) + __pyx_t_7 = -1; __pyx_t_4 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 926, __pyx_L23_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_8 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_4); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 926, __pyx_L23_error) } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; for (;;) { if (likely(!__pyx_t_8)) { - if (likely(PyList_CheckExact(__pyx_t_3))) { + if (likely(PyList_CheckExact(__pyx_t_4))) { { - Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_3); + Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_4); #if !CYTHON_ASSUME_SAFE_SIZE - if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 929, __pyx_L22_error) + if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 926, __pyx_L23_error) #endif if (__pyx_t_7 >= __pyx_temp) break; } - __pyx_t_1 = __Pyx_PyList_GetItemRefFast(__pyx_t_3, __pyx_t_7, __Pyx_ReferenceSharing_OwnStrongReference); + __pyx_t_1 = __Pyx_PyList_GetItemRefFast(__pyx_t_4, __pyx_t_7, __Pyx_ReferenceSharing_OwnStrongReference); ++__pyx_t_7; } else { { - Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_3); + Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_4); #if !CYTHON_ASSUME_SAFE_SIZE - if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 929, __pyx_L22_error) + if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 926, __pyx_L23_error) #endif if (__pyx_t_7 >= __pyx_temp) break; } #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_1 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_7)); + __pyx_t_1 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_4, __pyx_t_7)); #else - __pyx_t_1 = __Pyx_PySequence_ITEM(__pyx_t_3, __pyx_t_7); + __pyx_t_1 = __Pyx_PySequence_ITEM(__pyx_t_4, __pyx_t_7); #endif ++__pyx_t_7; } - if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 929, __pyx_L22_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 926, __pyx_L23_error) } else { - __pyx_t_1 = __pyx_t_8(__pyx_t_3); + __pyx_t_1 = __pyx_t_8(__pyx_t_4); if (unlikely(!__pyx_t_1)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { - if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(0, 929, __pyx_L22_error) + if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(0, 926, __pyx_L23_error) PyErr_Clear(); } break; @@ -16197,16 +16257,16 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d __Pyx_XDECREF_SET(__pyx_v_row, __pyx_t_1); __pyx_t_1 = 0; - /* "pyreadstat/_readstat_writer.pyx":930 + /* "pyreadstat/_readstat_writer.pyx":927 * * for row in df2.iter_rows(): * check_exit_status(readstat_begin_row(writer)) # <<<<<<<<<<<<<< * * for col_indx in range(col_count): */ - __pyx_f_10pyreadstat_16_readstat_parser_check_exit_status(readstat_begin_row(__pyx_v_writer)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 930, __pyx_L22_error) + __pyx_f_10pyreadstat_16_readstat_parser_check_exit_status(readstat_begin_row(__pyx_v_writer)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 927, __pyx_L23_error) - /* "pyreadstat/_readstat_writer.pyx":932 + /* "pyreadstat/_readstat_writer.pyx":929 * check_exit_status(readstat_begin_row(writer)) * * for col_indx in range(col_count): # <<<<<<<<<<<<<< @@ -16214,11 +16274,11 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d * tempvar = readstat_get_variable(writer, col_indx) */ __pyx_t_12 = __pyx_v_col_count; - __pyx_t_19 = __pyx_t_12; - for (__pyx_t_20 = 0; __pyx_t_20 < __pyx_t_19; __pyx_t_20+=1) { - __pyx_v_col_indx = __pyx_t_20; + __pyx_t_21 = __pyx_t_12; + for (__pyx_t_22 = 0; __pyx_t_22 < __pyx_t_21; __pyx_t_22+=1) { + __pyx_v_col_indx = __pyx_t_22; - /* "pyreadstat/_readstat_writer.pyx":934 + /* "pyreadstat/_readstat_writer.pyx":931 * for col_indx in range(col_count): * * tempvar = readstat_get_variable(writer, col_indx) # <<<<<<<<<<<<<< @@ -16227,32 +16287,32 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d */ __pyx_v_tempvar = readstat_get_variable(__pyx_v_writer, __pyx_v_col_indx); - /* "pyreadstat/_readstat_writer.pyx":935 + /* "pyreadstat/_readstat_writer.pyx":932 * * tempvar = readstat_get_variable(writer, col_indx) * curval = row[col_indx] # <<<<<<<<<<<<<< * curtype = pywriter_types[col_indx] * is_missing = col_types[col_indx][2] */ - __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_row, __pyx_v_col_indx, int, 1, __Pyx_PyLong_From_int, 0, 1, 1, 1, __Pyx_ReferenceSharing_OwnStrongReference); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 935, __pyx_L22_error) + __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_row, __pyx_v_col_indx, int, 1, __Pyx_PyLong_From_int, 0, 1, 1, 1, __Pyx_ReferenceSharing_OwnStrongReference); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 932, __pyx_L23_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_XDECREF_SET(__pyx_v_curval, __pyx_t_1); __pyx_t_1 = 0; - /* "pyreadstat/_readstat_writer.pyx":936 + /* "pyreadstat/_readstat_writer.pyx":933 * tempvar = readstat_get_variable(writer, col_indx) * curval = row[col_indx] * curtype = pywriter_types[col_indx] # <<<<<<<<<<<<<< * is_missing = col_types[col_indx][2] * curuser_missing = None */ - __pyx_t_1 = __Pyx_GetItemInt_List(__pyx_v_pywriter_types, __pyx_v_col_indx, int, 1, __Pyx_PyLong_From_int, 1, 1, 1, 1, __Pyx_ReferenceSharing_OwnStrongReference); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 936, __pyx_L22_error) + __pyx_t_1 = __Pyx_GetItemInt_List(__pyx_v_pywriter_types, __pyx_v_col_indx, int, 1, __Pyx_PyLong_From_int, 1, 1, 1, 1, __Pyx_ReferenceSharing_OwnStrongReference); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 933, __pyx_L23_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_22 = ((__pyx_t_10pyreadstat_16_readstat_writer_pywriter_variable_type)__Pyx_PyLong_As___pyx_t_10pyreadstat_16_readstat_writer_pywriter_variable_type(__pyx_t_1)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 936, __pyx_L22_error) + __pyx_t_24 = ((__pyx_t_10pyreadstat_16_readstat_writer_pywriter_variable_type)__Pyx_PyLong_As___pyx_t_10pyreadstat_16_readstat_writer_pywriter_variable_type(__pyx_t_1)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 933, __pyx_L23_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_v_curtype = __pyx_t_22; + __pyx_v_curtype = __pyx_t_24; - /* "pyreadstat/_readstat_writer.pyx":937 + /* "pyreadstat/_readstat_writer.pyx":934 * curval = row[col_indx] * curtype = pywriter_types[col_indx] * is_missing = col_types[col_indx][2] # <<<<<<<<<<<<<< @@ -16261,17 +16321,17 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d */ if (unlikely(__pyx_v_col_types == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 937, __pyx_L22_error) + __PYX_ERR(0, 934, __pyx_L23_error) } - __pyx_t_1 = __Pyx_GetItemInt_List(__pyx_v_col_types, __pyx_v_col_indx, int, 1, __Pyx_PyLong_From_int, 1, 1, 1, 1, __Pyx_ReferenceSharing_OwnStrongReference); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 937, __pyx_L22_error) + __pyx_t_1 = __Pyx_GetItemInt_List(__pyx_v_col_types, __pyx_v_col_indx, int, 1, __Pyx_PyLong_From_int, 1, 1, 1, 1, __Pyx_ReferenceSharing_OwnStrongReference); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 934, __pyx_L23_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_9 = __Pyx_GetItemInt(__pyx_t_1, 2, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_OwnStrongReference); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 937, __pyx_L22_error) - __Pyx_GOTREF(__pyx_t_9); + __pyx_t_3 = __Pyx_GetItemInt(__pyx_t_1, 2, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_OwnStrongReference); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 934, __pyx_L23_error) + __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_XDECREF_SET(__pyx_v_is_missing, __pyx_t_9); - __pyx_t_9 = 0; + __Pyx_XDECREF_SET(__pyx_v_is_missing, __pyx_t_3); + __pyx_t_3 = 0; - /* "pyreadstat/_readstat_writer.pyx":938 + /* "pyreadstat/_readstat_writer.pyx":935 * curtype = pywriter_types[col_indx] * is_missing = col_types[col_indx][2] * curuser_missing = None # <<<<<<<<<<<<<< @@ -16281,17 +16341,17 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d __Pyx_INCREF(Py_None); __Pyx_XDECREF_SET(__pyx_v_curuser_missing, Py_None); - /* "pyreadstat/_readstat_writer.pyx":939 + /* "pyreadstat/_readstat_writer.pyx":936 * is_missing = col_types[col_indx][2] * curuser_missing = None * if missing_user_values: # <<<<<<<<<<<<<< * curuser_missing = missing_user_values.get(col_names[col_indx]) * */ - __pyx_t_18 = __Pyx_PyObject_IsTrue(__pyx_v_missing_user_values); if (unlikely((__pyx_t_18 < 0))) __PYX_ERR(0, 939, __pyx_L22_error) - if (__pyx_t_18) { + __pyx_t_20 = __Pyx_PyObject_IsTrue(__pyx_v_missing_user_values); if (unlikely((__pyx_t_20 < 0))) __PYX_ERR(0, 936, __pyx_L23_error) + if (__pyx_t_20) { - /* "pyreadstat/_readstat_writer.pyx":940 + /* "pyreadstat/_readstat_writer.pyx":937 * curuser_missing = None * if missing_user_values: * curuser_missing = missing_user_values.get(col_names[col_indx]) # <<<<<<<<<<<<<< @@ -16300,21 +16360,21 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d */ if (unlikely(__pyx_v_missing_user_values == Py_None)) { PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "get"); - __PYX_ERR(0, 940, __pyx_L22_error) + __PYX_ERR(0, 937, __pyx_L23_error) } if (unlikely(__pyx_v_col_names == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 940, __pyx_L22_error) + __PYX_ERR(0, 937, __pyx_L23_error) } - __pyx_t_9 = __Pyx_GetItemInt_List(__pyx_v_col_names, __pyx_v_col_indx, int, 1, __Pyx_PyLong_From_int, 1, 1, 1, 1, __Pyx_ReferenceSharing_OwnStrongReference); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 940, __pyx_L22_error) - __Pyx_GOTREF(__pyx_t_9); - __pyx_t_1 = __Pyx_PyDict_GetItemDefault(__pyx_v_missing_user_values, __pyx_t_9, Py_None); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 940, __pyx_L22_error) + __pyx_t_3 = __Pyx_GetItemInt_List(__pyx_v_col_names, __pyx_v_col_indx, int, 1, __Pyx_PyLong_From_int, 1, 1, 1, 1, __Pyx_ReferenceSharing_OwnStrongReference); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 937, __pyx_L23_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_1 = __Pyx_PyDict_GetItemDefault(__pyx_v_missing_user_values, __pyx_t_3, Py_None); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 937, __pyx_L23_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF_SET(__pyx_v_curuser_missing, __pyx_t_1); __pyx_t_1 = 0; - /* "pyreadstat/_readstat_writer.pyx":939 + /* "pyreadstat/_readstat_writer.pyx":936 * is_missing = col_types[col_indx][2] * curuser_missing = None * if missing_user_values: # <<<<<<<<<<<<<< @@ -16323,17 +16383,17 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d */ } - /* "pyreadstat/_readstat_writer.pyx":942 + /* "pyreadstat/_readstat_writer.pyx":939 * curuser_missing = missing_user_values.get(col_names[col_indx]) * * if is_missing: # <<<<<<<<<<<<<< * # For pandas we need isna because values can be Nan, NA, NAT, None * if is_pandas: */ - __pyx_t_18 = __Pyx_PyObject_IsTrue(__pyx_v_is_missing); if (unlikely((__pyx_t_18 < 0))) __PYX_ERR(0, 942, __pyx_L22_error) - if (__pyx_t_18) { + __pyx_t_20 = __Pyx_PyObject_IsTrue(__pyx_v_is_missing); if (unlikely((__pyx_t_20 < 0))) __PYX_ERR(0, 939, __pyx_L23_error) + if (__pyx_t_20) { - /* "pyreadstat/_readstat_writer.pyx":944 + /* "pyreadstat/_readstat_writer.pyx":941 * if is_missing: * # For pandas we need isna because values can be Nan, NA, NAT, None * if is_pandas: # <<<<<<<<<<<<<< @@ -16342,37 +16402,37 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d */ if (__pyx_v_is_pandas) { - /* "pyreadstat/_readstat_writer.pyx":945 + /* "pyreadstat/_readstat_writer.pyx":942 * # For pandas we need isna because values can be Nan, NA, NAT, None * if is_pandas: * check_if_missing = pd.isna(curval) # <<<<<<<<<<<<<< * # for other libraries the value would be None * else: */ - __pyx_t_9 = __pyx_v_pd; - __Pyx_INCREF(__pyx_t_9); + __pyx_t_3 = __pyx_v_pd; + __Pyx_INCREF(__pyx_t_3); __pyx_t_5 = 0; { - PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_v_curval}; + PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_v_curval}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_isna, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 945, __pyx_L22_error) + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 942, __pyx_L23_error) __Pyx_GOTREF(__pyx_t_1); } __Pyx_XDECREF_SET(__pyx_v_check_if_missing, __pyx_t_1); __pyx_t_1 = 0; - /* "pyreadstat/_readstat_writer.pyx":944 + /* "pyreadstat/_readstat_writer.pyx":941 * if is_missing: * # For pandas we need isna because values can be Nan, NA, NAT, None * if is_pandas: # <<<<<<<<<<<<<< * check_if_missing = pd.isna(curval) * # for other libraries the value would be None */ - goto __pyx_L98; + goto __pyx_L99; } - /* "pyreadstat/_readstat_writer.pyx":948 + /* "pyreadstat/_readstat_writer.pyx":945 * # for other libraries the value would be None * else: * check_if_missing = curval is None # <<<<<<<<<<<<<< @@ -16380,43 +16440,43 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d * check_exit_status(readstat_insert_missing_value(writer, tempvar)) */ /*else*/ { - __pyx_t_18 = (__pyx_v_curval == Py_None); - __pyx_t_1 = __Pyx_PyBool_FromLong(__pyx_t_18); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 948, __pyx_L22_error) + __pyx_t_20 = (__pyx_v_curval == Py_None); + __pyx_t_1 = __Pyx_PyBool_FromLong(__pyx_t_20); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 945, __pyx_L23_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_XDECREF_SET(__pyx_v_check_if_missing, __pyx_t_1); __pyx_t_1 = 0; } - __pyx_L98:; + __pyx_L99:; - /* "pyreadstat/_readstat_writer.pyx":949 + /* "pyreadstat/_readstat_writer.pyx":946 * else: * check_if_missing = curval is None * if check_if_missing: # <<<<<<<<<<<<<< * check_exit_status(readstat_insert_missing_value(writer, tempvar)) * continue */ - __pyx_t_18 = __Pyx_PyObject_IsTrue(__pyx_v_check_if_missing); if (unlikely((__pyx_t_18 < 0))) __PYX_ERR(0, 949, __pyx_L22_error) - if (__pyx_t_18) { + __pyx_t_20 = __Pyx_PyObject_IsTrue(__pyx_v_check_if_missing); if (unlikely((__pyx_t_20 < 0))) __PYX_ERR(0, 946, __pyx_L23_error) + if (__pyx_t_20) { - /* "pyreadstat/_readstat_writer.pyx":950 + /* "pyreadstat/_readstat_writer.pyx":947 * check_if_missing = curval is None * if check_if_missing: * check_exit_status(readstat_insert_missing_value(writer, tempvar)) # <<<<<<<<<<<<<< * continue * */ - __pyx_f_10pyreadstat_16_readstat_parser_check_exit_status(readstat_insert_missing_value(__pyx_v_writer, __pyx_v_tempvar)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 950, __pyx_L22_error) + __pyx_f_10pyreadstat_16_readstat_parser_check_exit_status(readstat_insert_missing_value(__pyx_v_writer, __pyx_v_tempvar)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 947, __pyx_L23_error) - /* "pyreadstat/_readstat_writer.pyx":951 + /* "pyreadstat/_readstat_writer.pyx":948 * if check_if_missing: * check_exit_status(readstat_insert_missing_value(writer, tempvar)) * continue # <<<<<<<<<<<<<< * * if curuser_missing and curtype in pywriter_numeric_types: */ - goto __pyx_L94_continue; + goto __pyx_L95_continue; - /* "pyreadstat/_readstat_writer.pyx":949 + /* "pyreadstat/_readstat_writer.pyx":946 * else: * check_if_missing = curval is None * if check_if_missing: # <<<<<<<<<<<<<< @@ -16425,7 +16485,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d */ } - /* "pyreadstat/_readstat_writer.pyx":942 + /* "pyreadstat/_readstat_writer.pyx":939 * curuser_missing = missing_user_values.get(col_names[col_indx]) * * if is_missing: # <<<<<<<<<<<<<< @@ -16434,61 +16494,61 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d */ } - /* "pyreadstat/_readstat_writer.pyx":953 + /* "pyreadstat/_readstat_writer.pyx":950 * continue * * if curuser_missing and curtype in pywriter_numeric_types: # <<<<<<<<<<<<<< * if curval in curuser_missing: * check_exit_status(readstat_insert_tagged_missing_value(writer, tempvar, ord(curval))) */ - __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_v_curuser_missing); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(0, 953, __pyx_L22_error) + __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_v_curuser_missing); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(0, 950, __pyx_L23_error) if (__pyx_t_6) { } else { - __pyx_t_18 = __pyx_t_6; - goto __pyx_L101_bool_binop_done; + __pyx_t_20 = __pyx_t_6; + goto __pyx_L102_bool_binop_done; } - __pyx_t_1 = __Pyx_PyLong_From___pyx_t_10pyreadstat_16_readstat_writer_pywriter_variable_type(__pyx_v_curtype); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 953, __pyx_L22_error) + __pyx_t_1 = __Pyx_PyLong_From___pyx_t_10pyreadstat_16_readstat_writer_pywriter_variable_type(__pyx_v_curtype); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 950, __pyx_L23_error) __Pyx_GOTREF(__pyx_t_1); if (unlikely(__pyx_v_10pyreadstat_16_readstat_writer_pywriter_numeric_types == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable"); - __PYX_ERR(0, 953, __pyx_L22_error) + __PYX_ERR(0, 950, __pyx_L23_error) } - __pyx_t_6 = (__Pyx_PySet_ContainsTF(__pyx_t_1, __pyx_v_10pyreadstat_16_readstat_writer_pywriter_numeric_types, Py_EQ)); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(0, 953, __pyx_L22_error) + __pyx_t_6 = (__Pyx_PySet_ContainsTF(__pyx_t_1, __pyx_v_10pyreadstat_16_readstat_writer_pywriter_numeric_types, Py_EQ)); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(0, 950, __pyx_L23_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_18 = __pyx_t_6; - __pyx_L101_bool_binop_done:; - if (__pyx_t_18) { + __pyx_t_20 = __pyx_t_6; + __pyx_L102_bool_binop_done:; + if (__pyx_t_20) { - /* "pyreadstat/_readstat_writer.pyx":954 + /* "pyreadstat/_readstat_writer.pyx":951 * * if curuser_missing and curtype in pywriter_numeric_types: * if curval in curuser_missing: # <<<<<<<<<<<<<< * check_exit_status(readstat_insert_tagged_missing_value(writer, tempvar, ord(curval))) * continue */ - __pyx_t_18 = (__Pyx_PySequence_ContainsTF(__pyx_v_curval, __pyx_v_curuser_missing, Py_EQ)); if (unlikely((__pyx_t_18 < 0))) __PYX_ERR(0, 954, __pyx_L22_error) - if (__pyx_t_18) { + __pyx_t_20 = (__Pyx_PySequence_ContainsTF(__pyx_v_curval, __pyx_v_curuser_missing, Py_EQ)); if (unlikely((__pyx_t_20 < 0))) __PYX_ERR(0, 951, __pyx_L23_error) + if (__pyx_t_20) { - /* "pyreadstat/_readstat_writer.pyx":955 + /* "pyreadstat/_readstat_writer.pyx":952 * if curuser_missing and curtype in pywriter_numeric_types: * if curval in curuser_missing: * check_exit_status(readstat_insert_tagged_missing_value(writer, tempvar, ord(curval))) # <<<<<<<<<<<<<< * continue * */ - __pyx_t_30 = __Pyx_PyObject_Ord(__pyx_v_curval); if (unlikely(__pyx_t_30 == ((long)(long)(Py_UCS4)-1))) __PYX_ERR(0, 955, __pyx_L22_error) - __pyx_f_10pyreadstat_16_readstat_parser_check_exit_status(readstat_insert_tagged_missing_value(__pyx_v_writer, __pyx_v_tempvar, __pyx_t_30)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 955, __pyx_L22_error) + __pyx_t_32 = __Pyx_PyObject_Ord(__pyx_v_curval); if (unlikely(__pyx_t_32 == ((long)(long)(Py_UCS4)-1))) __PYX_ERR(0, 952, __pyx_L23_error) + __pyx_f_10pyreadstat_16_readstat_parser_check_exit_status(readstat_insert_tagged_missing_value(__pyx_v_writer, __pyx_v_tempvar, __pyx_t_32)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 952, __pyx_L23_error) - /* "pyreadstat/_readstat_writer.pyx":956 + /* "pyreadstat/_readstat_writer.pyx":953 * if curval in curuser_missing: * check_exit_status(readstat_insert_tagged_missing_value(writer, tempvar, ord(curval))) * continue # <<<<<<<<<<<<<< * * if curtype == PYWRITER_DOUBLE: */ - goto __pyx_L94_continue; + goto __pyx_L95_continue; - /* "pyreadstat/_readstat_writer.pyx":954 + /* "pyreadstat/_readstat_writer.pyx":951 * * if curuser_missing and curtype in pywriter_numeric_types: * if curval in curuser_missing: # <<<<<<<<<<<<<< @@ -16497,7 +16557,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d */ } - /* "pyreadstat/_readstat_writer.pyx":953 + /* "pyreadstat/_readstat_writer.pyx":950 * continue * * if curuser_missing and curtype in pywriter_numeric_types: # <<<<<<<<<<<<<< @@ -16506,246 +16566,246 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d */ } - /* "pyreadstat/_readstat_writer.pyx":958 + /* "pyreadstat/_readstat_writer.pyx":955 * continue * * if curtype == PYWRITER_DOUBLE: # <<<<<<<<<<<<<< * check_exit_status(readstat_insert_double_value(writer, tempvar, curval)) * elif curtype == PYWRITER_INTEGER: */ - __pyx_t_18 = (__pyx_v_curtype == __pyx_e_10pyreadstat_16_readstat_writer_PYWRITER_DOUBLE); - if (__pyx_t_18) { + __pyx_t_20 = (__pyx_v_curtype == __pyx_e_10pyreadstat_16_readstat_writer_PYWRITER_DOUBLE); + if (__pyx_t_20) { - /* "pyreadstat/_readstat_writer.pyx":959 + /* "pyreadstat/_readstat_writer.pyx":956 * * if curtype == PYWRITER_DOUBLE: * check_exit_status(readstat_insert_double_value(writer, tempvar, curval)) # <<<<<<<<<<<<<< * elif curtype == PYWRITER_INTEGER: * check_exit_status(readstat_insert_int32_value(writer, tempvar, curval)) */ - __pyx_t_31 = __Pyx_PyFloat_AsDouble(__pyx_v_curval); if (unlikely((__pyx_t_31 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 959, __pyx_L22_error) - __pyx_f_10pyreadstat_16_readstat_parser_check_exit_status(readstat_insert_double_value(__pyx_v_writer, __pyx_v_tempvar, ((double)__pyx_t_31))); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 959, __pyx_L22_error) + __pyx_t_33 = __Pyx_PyFloat_AsDouble(__pyx_v_curval); if (unlikely((__pyx_t_33 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 956, __pyx_L23_error) + __pyx_f_10pyreadstat_16_readstat_parser_check_exit_status(readstat_insert_double_value(__pyx_v_writer, __pyx_v_tempvar, ((double)__pyx_t_33))); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 956, __pyx_L23_error) - /* "pyreadstat/_readstat_writer.pyx":958 + /* "pyreadstat/_readstat_writer.pyx":955 * continue * * if curtype == PYWRITER_DOUBLE: # <<<<<<<<<<<<<< * check_exit_status(readstat_insert_double_value(writer, tempvar, curval)) * elif curtype == PYWRITER_INTEGER: */ - goto __pyx_L104; + goto __pyx_L105; } - /* "pyreadstat/_readstat_writer.pyx":960 + /* "pyreadstat/_readstat_writer.pyx":957 * if curtype == PYWRITER_DOUBLE: * check_exit_status(readstat_insert_double_value(writer, tempvar, curval)) * elif curtype == PYWRITER_INTEGER: # <<<<<<<<<<<<<< * check_exit_status(readstat_insert_int32_value(writer, tempvar, curval)) * elif curtype == PYWRITER_LOGICAL: */ - __pyx_t_18 = (__pyx_v_curtype == __pyx_e_10pyreadstat_16_readstat_writer_PYWRITER_INTEGER); - if (__pyx_t_18) { + __pyx_t_20 = (__pyx_v_curtype == __pyx_e_10pyreadstat_16_readstat_writer_PYWRITER_INTEGER); + if (__pyx_t_20) { - /* "pyreadstat/_readstat_writer.pyx":961 + /* "pyreadstat/_readstat_writer.pyx":958 * check_exit_status(readstat_insert_double_value(writer, tempvar, curval)) * elif curtype == PYWRITER_INTEGER: * check_exit_status(readstat_insert_int32_value(writer, tempvar, curval)) # <<<<<<<<<<<<<< * elif curtype == PYWRITER_LOGICAL: * check_exit_status(readstat_insert_int32_value(writer, tempvar, curval)) */ - __pyx_t_32 = __Pyx_PyLong_As_int32_t(__pyx_v_curval); if (unlikely((__pyx_t_32 == ((int32_t)-1)) && PyErr_Occurred())) __PYX_ERR(0, 961, __pyx_L22_error) - __pyx_f_10pyreadstat_16_readstat_parser_check_exit_status(readstat_insert_int32_value(__pyx_v_writer, __pyx_v_tempvar, __pyx_t_32)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 961, __pyx_L22_error) + __pyx_t_34 = __Pyx_PyLong_As_int32_t(__pyx_v_curval); if (unlikely((__pyx_t_34 == ((int32_t)-1)) && PyErr_Occurred())) __PYX_ERR(0, 958, __pyx_L23_error) + __pyx_f_10pyreadstat_16_readstat_parser_check_exit_status(readstat_insert_int32_value(__pyx_v_writer, __pyx_v_tempvar, __pyx_t_34)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 958, __pyx_L23_error) - /* "pyreadstat/_readstat_writer.pyx":960 + /* "pyreadstat/_readstat_writer.pyx":957 * if curtype == PYWRITER_DOUBLE: * check_exit_status(readstat_insert_double_value(writer, tempvar, curval)) * elif curtype == PYWRITER_INTEGER: # <<<<<<<<<<<<<< * check_exit_status(readstat_insert_int32_value(writer, tempvar, curval)) * elif curtype == PYWRITER_LOGICAL: */ - goto __pyx_L104; + goto __pyx_L105; } - /* "pyreadstat/_readstat_writer.pyx":962 + /* "pyreadstat/_readstat_writer.pyx":959 * elif curtype == PYWRITER_INTEGER: * check_exit_status(readstat_insert_int32_value(writer, tempvar, curval)) * elif curtype == PYWRITER_LOGICAL: # <<<<<<<<<<<<<< * check_exit_status(readstat_insert_int32_value(writer, tempvar, curval)) * elif curtype == PYWRITER_CHARACTER: */ - __pyx_t_18 = (__pyx_v_curtype == __pyx_e_10pyreadstat_16_readstat_writer_PYWRITER_LOGICAL); - if (__pyx_t_18) { + __pyx_t_20 = (__pyx_v_curtype == __pyx_e_10pyreadstat_16_readstat_writer_PYWRITER_LOGICAL); + if (__pyx_t_20) { - /* "pyreadstat/_readstat_writer.pyx":963 + /* "pyreadstat/_readstat_writer.pyx":960 * check_exit_status(readstat_insert_int32_value(writer, tempvar, curval)) * elif curtype == PYWRITER_LOGICAL: * check_exit_status(readstat_insert_int32_value(writer, tempvar, curval)) # <<<<<<<<<<<<<< * elif curtype == PYWRITER_CHARACTER: * check_exit_status(readstat_insert_string_value(writer, tempvar, curval.encode("utf-8"))) */ - __pyx_t_23 = __Pyx_PyLong_As_int(__pyx_v_curval); if (unlikely((__pyx_t_23 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 963, __pyx_L22_error) - __pyx_f_10pyreadstat_16_readstat_parser_check_exit_status(readstat_insert_int32_value(__pyx_v_writer, __pyx_v_tempvar, ((int)__pyx_t_23))); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 963, __pyx_L22_error) + __pyx_t_25 = __Pyx_PyLong_As_int(__pyx_v_curval); if (unlikely((__pyx_t_25 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 960, __pyx_L23_error) + __pyx_f_10pyreadstat_16_readstat_parser_check_exit_status(readstat_insert_int32_value(__pyx_v_writer, __pyx_v_tempvar, ((int)__pyx_t_25))); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 960, __pyx_L23_error) - /* "pyreadstat/_readstat_writer.pyx":962 + /* "pyreadstat/_readstat_writer.pyx":959 * elif curtype == PYWRITER_INTEGER: * check_exit_status(readstat_insert_int32_value(writer, tempvar, curval)) * elif curtype == PYWRITER_LOGICAL: # <<<<<<<<<<<<<< * check_exit_status(readstat_insert_int32_value(writer, tempvar, curval)) * elif curtype == PYWRITER_CHARACTER: */ - goto __pyx_L104; + goto __pyx_L105; } - /* "pyreadstat/_readstat_writer.pyx":964 + /* "pyreadstat/_readstat_writer.pyx":961 * elif curtype == PYWRITER_LOGICAL: * check_exit_status(readstat_insert_int32_value(writer, tempvar, curval)) * elif curtype == PYWRITER_CHARACTER: # <<<<<<<<<<<<<< * check_exit_status(readstat_insert_string_value(writer, tempvar, curval.encode("utf-8"))) * elif curtype == PYWRITER_OBJECT: */ - __pyx_t_18 = (__pyx_v_curtype == __pyx_e_10pyreadstat_16_readstat_writer_PYWRITER_CHARACTER); - if (__pyx_t_18) { + __pyx_t_20 = (__pyx_v_curtype == __pyx_e_10pyreadstat_16_readstat_writer_PYWRITER_CHARACTER); + if (__pyx_t_20) { - /* "pyreadstat/_readstat_writer.pyx":965 + /* "pyreadstat/_readstat_writer.pyx":962 * check_exit_status(readstat_insert_int32_value(writer, tempvar, curval)) * elif curtype == PYWRITER_CHARACTER: * check_exit_status(readstat_insert_string_value(writer, tempvar, curval.encode("utf-8"))) # <<<<<<<<<<<<<< * elif curtype == PYWRITER_OBJECT: * curvalstr = str(curval) */ - __pyx_t_9 = __pyx_v_curval; - __Pyx_INCREF(__pyx_t_9); + __pyx_t_3 = __pyx_v_curval; + __Pyx_INCREF(__pyx_t_3); __pyx_t_5 = 0; { - PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_mstate_global->__pyx_kp_u_utf_8}; + PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_mstate_global->__pyx_kp_u_utf_8}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_encode, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 965, __pyx_L22_error) + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 962, __pyx_L23_error) __Pyx_GOTREF(__pyx_t_1); } - __pyx_t_33 = __Pyx_PyObject_AsString(__pyx_t_1); if (unlikely((!__pyx_t_33) && PyErr_Occurred())) __PYX_ERR(0, 965, __pyx_L22_error) - __pyx_f_10pyreadstat_16_readstat_parser_check_exit_status(readstat_insert_string_value(__pyx_v_writer, __pyx_v_tempvar, __pyx_t_33)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 965, __pyx_L22_error) + __pyx_t_35 = __Pyx_PyObject_AsString(__pyx_t_1); if (unlikely((!__pyx_t_35) && PyErr_Occurred())) __PYX_ERR(0, 962, __pyx_L23_error) + __pyx_f_10pyreadstat_16_readstat_parser_check_exit_status(readstat_insert_string_value(__pyx_v_writer, __pyx_v_tempvar, __pyx_t_35)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 962, __pyx_L23_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "pyreadstat/_readstat_writer.pyx":964 + /* "pyreadstat/_readstat_writer.pyx":961 * elif curtype == PYWRITER_LOGICAL: * check_exit_status(readstat_insert_int32_value(writer, tempvar, curval)) * elif curtype == PYWRITER_CHARACTER: # <<<<<<<<<<<<<< * check_exit_status(readstat_insert_string_value(writer, tempvar, curval.encode("utf-8"))) * elif curtype == PYWRITER_OBJECT: */ - goto __pyx_L104; + goto __pyx_L105; } - /* "pyreadstat/_readstat_writer.pyx":966 + /* "pyreadstat/_readstat_writer.pyx":963 * elif curtype == PYWRITER_CHARACTER: * check_exit_status(readstat_insert_string_value(writer, tempvar, curval.encode("utf-8"))) * elif curtype == PYWRITER_OBJECT: # <<<<<<<<<<<<<< * curvalstr = str(curval) * check_exit_status(readstat_insert_string_value(writer, tempvar, curvalstr.encode("utf-8"))) */ - __pyx_t_18 = (__pyx_v_curtype == __pyx_e_10pyreadstat_16_readstat_writer_PYWRITER_OBJECT); - if (__pyx_t_18) { + __pyx_t_20 = (__pyx_v_curtype == __pyx_e_10pyreadstat_16_readstat_writer_PYWRITER_OBJECT); + if (__pyx_t_20) { - /* "pyreadstat/_readstat_writer.pyx":967 + /* "pyreadstat/_readstat_writer.pyx":964 * check_exit_status(readstat_insert_string_value(writer, tempvar, curval.encode("utf-8"))) * elif curtype == PYWRITER_OBJECT: * curvalstr = str(curval) # <<<<<<<<<<<<<< * check_exit_status(readstat_insert_string_value(writer, tempvar, curvalstr.encode("utf-8"))) * elif curtype == PYWRITER_DTA_STR_REF: */ - __pyx_t_1 = __Pyx_PyObject_Unicode(__pyx_v_curval); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 967, __pyx_L22_error) + __pyx_t_1 = __Pyx_PyObject_Unicode(__pyx_v_curval); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 964, __pyx_L23_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_XDECREF_SET(__pyx_v_curvalstr, ((PyObject*)__pyx_t_1)); __pyx_t_1 = 0; - /* "pyreadstat/_readstat_writer.pyx":968 + /* "pyreadstat/_readstat_writer.pyx":965 * elif curtype == PYWRITER_OBJECT: * curvalstr = str(curval) * check_exit_status(readstat_insert_string_value(writer, tempvar, curvalstr.encode("utf-8"))) # <<<<<<<<<<<<<< * elif curtype == PYWRITER_DTA_STR_REF: * curvalstr = str(curval) */ - __pyx_t_1 = PyUnicode_AsUTF8String(__pyx_v_curvalstr); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 968, __pyx_L22_error) + __pyx_t_1 = PyUnicode_AsUTF8String(__pyx_v_curvalstr); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 965, __pyx_L23_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_33 = __Pyx_PyBytes_AsString(__pyx_t_1); if (unlikely((!__pyx_t_33) && PyErr_Occurred())) __PYX_ERR(0, 968, __pyx_L22_error) - __pyx_f_10pyreadstat_16_readstat_parser_check_exit_status(readstat_insert_string_value(__pyx_v_writer, __pyx_v_tempvar, __pyx_t_33)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 968, __pyx_L22_error) + __pyx_t_35 = __Pyx_PyBytes_AsString(__pyx_t_1); if (unlikely((!__pyx_t_35) && PyErr_Occurred())) __PYX_ERR(0, 965, __pyx_L23_error) + __pyx_f_10pyreadstat_16_readstat_parser_check_exit_status(readstat_insert_string_value(__pyx_v_writer, __pyx_v_tempvar, __pyx_t_35)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 965, __pyx_L23_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "pyreadstat/_readstat_writer.pyx":966 + /* "pyreadstat/_readstat_writer.pyx":963 * elif curtype == PYWRITER_CHARACTER: * check_exit_status(readstat_insert_string_value(writer, tempvar, curval.encode("utf-8"))) * elif curtype == PYWRITER_OBJECT: # <<<<<<<<<<<<<< * curvalstr = str(curval) * check_exit_status(readstat_insert_string_value(writer, tempvar, curvalstr.encode("utf-8"))) */ - goto __pyx_L104; + goto __pyx_L105; } - /* "pyreadstat/_readstat_writer.pyx":969 + /* "pyreadstat/_readstat_writer.pyx":966 * curvalstr = str(curval) * check_exit_status(readstat_insert_string_value(writer, tempvar, curvalstr.encode("utf-8"))) * elif curtype == PYWRITER_DTA_STR_REF: # <<<<<<<<<<<<<< * curvalstr = str(curval) * strref_indx = strref_map[curvalstr] */ - __pyx_t_18 = (__pyx_v_curtype == __pyx_e_10pyreadstat_16_readstat_writer_PYWRITER_DTA_STR_REF); - if (__pyx_t_18) { + __pyx_t_20 = (__pyx_v_curtype == __pyx_e_10pyreadstat_16_readstat_writer_PYWRITER_DTA_STR_REF); + if (__pyx_t_20) { - /* "pyreadstat/_readstat_writer.pyx":970 + /* "pyreadstat/_readstat_writer.pyx":967 * check_exit_status(readstat_insert_string_value(writer, tempvar, curvalstr.encode("utf-8"))) * elif curtype == PYWRITER_DTA_STR_REF: * curvalstr = str(curval) # <<<<<<<<<<<<<< * strref_indx = strref_map[curvalstr] * strref = readstat_get_string_ref(writer, strref_indx) */ - __pyx_t_1 = __Pyx_PyObject_Unicode(__pyx_v_curval); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 970, __pyx_L22_error) + __pyx_t_1 = __Pyx_PyObject_Unicode(__pyx_v_curval); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 967, __pyx_L23_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_XDECREF_SET(__pyx_v_curvalstr, ((PyObject*)__pyx_t_1)); __pyx_t_1 = 0; - /* "pyreadstat/_readstat_writer.pyx":971 + /* "pyreadstat/_readstat_writer.pyx":968 * elif curtype == PYWRITER_DTA_STR_REF: * curvalstr = str(curval) * strref_indx = strref_map[curvalstr] # <<<<<<<<<<<<<< * strref = readstat_get_string_ref(writer, strref_indx) * check_exit_status(readstat_insert_string_ref(writer, tempvar, strref)) */ - __pyx_t_1 = __Pyx_PyDict_GetItem(__pyx_v_strref_map, __pyx_v_curvalstr); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 971, __pyx_L22_error) + __pyx_t_1 = __Pyx_PyDict_GetItem(__pyx_v_strref_map, __pyx_v_curvalstr); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 968, __pyx_L23_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_XDECREF_SET(__pyx_v_strref_indx, __pyx_t_1); __pyx_t_1 = 0; - /* "pyreadstat/_readstat_writer.pyx":972 + /* "pyreadstat/_readstat_writer.pyx":969 * curvalstr = str(curval) * strref_indx = strref_map[curvalstr] * strref = readstat_get_string_ref(writer, strref_indx) # <<<<<<<<<<<<<< * check_exit_status(readstat_insert_string_ref(writer, tempvar, strref)) * elif curtype == PYWRITER_DATETIME64 or curtype == PYWRITER_DATE64 or curtype == PYWRITER_TIME64: */ - __pyx_t_23 = __Pyx_PyLong_As_int(__pyx_v_strref_indx); if (unlikely((__pyx_t_23 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 972, __pyx_L22_error) - __pyx_v_strref = readstat_get_string_ref(__pyx_v_writer, __pyx_t_23); + __pyx_t_25 = __Pyx_PyLong_As_int(__pyx_v_strref_indx); if (unlikely((__pyx_t_25 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 969, __pyx_L23_error) + __pyx_v_strref = readstat_get_string_ref(__pyx_v_writer, __pyx_t_25); - /* "pyreadstat/_readstat_writer.pyx":973 + /* "pyreadstat/_readstat_writer.pyx":970 * strref_indx = strref_map[curvalstr] * strref = readstat_get_string_ref(writer, strref_indx) * check_exit_status(readstat_insert_string_ref(writer, tempvar, strref)) # <<<<<<<<<<<<<< * elif curtype == PYWRITER_DATETIME64 or curtype == PYWRITER_DATE64 or curtype == PYWRITER_TIME64: * check_exit_status(readstat_insert_double_value(writer, tempvar, curval)) */ - __pyx_f_10pyreadstat_16_readstat_parser_check_exit_status(readstat_insert_string_ref(__pyx_v_writer, __pyx_v_tempvar, __pyx_v_strref)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 973, __pyx_L22_error) + __pyx_f_10pyreadstat_16_readstat_parser_check_exit_status(readstat_insert_string_ref(__pyx_v_writer, __pyx_v_tempvar, __pyx_v_strref)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 970, __pyx_L23_error) - /* "pyreadstat/_readstat_writer.pyx":969 + /* "pyreadstat/_readstat_writer.pyx":966 * curvalstr = str(curval) * check_exit_status(readstat_insert_string_value(writer, tempvar, curvalstr.encode("utf-8"))) * elif curtype == PYWRITER_DTA_STR_REF: # <<<<<<<<<<<<<< * curvalstr = str(curval) * strref_indx = strref_map[curvalstr] */ - goto __pyx_L104; + goto __pyx_L105; } - /* "pyreadstat/_readstat_writer.pyx":974 + /* "pyreadstat/_readstat_writer.pyx":971 * strref = readstat_get_string_ref(writer, strref_indx) * check_exit_status(readstat_insert_string_ref(writer, tempvar, strref)) * elif curtype == PYWRITER_DATETIME64 or curtype == PYWRITER_DATE64 or curtype == PYWRITER_TIME64: # <<<<<<<<<<<<<< @@ -16756,81 +16816,81 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d case __pyx_e_10pyreadstat_16_readstat_writer_PYWRITER_DATETIME64: case __pyx_e_10pyreadstat_16_readstat_writer_PYWRITER_DATE64: case __pyx_e_10pyreadstat_16_readstat_writer_PYWRITER_TIME64: - __pyx_t_18 = 1; + __pyx_t_20 = 1; break; default: - __pyx_t_18 = 0; + __pyx_t_20 = 0; break; } - if (__pyx_t_18) { + if (__pyx_t_20) { - /* "pyreadstat/_readstat_writer.pyx":975 + /* "pyreadstat/_readstat_writer.pyx":972 * check_exit_status(readstat_insert_string_ref(writer, tempvar, strref)) * elif curtype == PYWRITER_DATETIME64 or curtype == PYWRITER_DATE64 or curtype == PYWRITER_TIME64: * check_exit_status(readstat_insert_double_value(writer, tempvar, curval)) # <<<<<<<<<<<<<< * elif curtype in pyrwriter_datetimelike_types: * dtimelikeval = convert_datetimelike_to_number(file_format, curtype, curval) */ - __pyx_t_31 = __Pyx_PyFloat_AsDouble(__pyx_v_curval); if (unlikely((__pyx_t_31 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 975, __pyx_L22_error) - __pyx_f_10pyreadstat_16_readstat_parser_check_exit_status(readstat_insert_double_value(__pyx_v_writer, __pyx_v_tempvar, ((double)__pyx_t_31))); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 975, __pyx_L22_error) + __pyx_t_33 = __Pyx_PyFloat_AsDouble(__pyx_v_curval); if (unlikely((__pyx_t_33 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 972, __pyx_L23_error) + __pyx_f_10pyreadstat_16_readstat_parser_check_exit_status(readstat_insert_double_value(__pyx_v_writer, __pyx_v_tempvar, ((double)__pyx_t_33))); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 972, __pyx_L23_error) - /* "pyreadstat/_readstat_writer.pyx":974 + /* "pyreadstat/_readstat_writer.pyx":971 * strref = readstat_get_string_ref(writer, strref_indx) * check_exit_status(readstat_insert_string_ref(writer, tempvar, strref)) * elif curtype == PYWRITER_DATETIME64 or curtype == PYWRITER_DATE64 or curtype == PYWRITER_TIME64: # <<<<<<<<<<<<<< * check_exit_status(readstat_insert_double_value(writer, tempvar, curval)) * elif curtype in pyrwriter_datetimelike_types: */ - goto __pyx_L104; + goto __pyx_L105; } - /* "pyreadstat/_readstat_writer.pyx":976 + /* "pyreadstat/_readstat_writer.pyx":973 * elif curtype == PYWRITER_DATETIME64 or curtype == PYWRITER_DATE64 or curtype == PYWRITER_TIME64: * check_exit_status(readstat_insert_double_value(writer, tempvar, curval)) * elif curtype in pyrwriter_datetimelike_types: # <<<<<<<<<<<<<< * dtimelikeval = convert_datetimelike_to_number(file_format, curtype, curval) * check_exit_status(readstat_insert_double_value(writer, tempvar, dtimelikeval)) */ - __pyx_t_1 = __Pyx_PyLong_From___pyx_t_10pyreadstat_16_readstat_writer_pywriter_variable_type(__pyx_v_curtype); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 976, __pyx_L22_error) + __pyx_t_1 = __Pyx_PyLong_From___pyx_t_10pyreadstat_16_readstat_writer_pywriter_variable_type(__pyx_v_curtype); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 973, __pyx_L23_error) __Pyx_GOTREF(__pyx_t_1); if (unlikely(__pyx_v_10pyreadstat_16_readstat_writer_pyrwriter_datetimelike_types == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable"); - __PYX_ERR(0, 976, __pyx_L22_error) + __PYX_ERR(0, 973, __pyx_L23_error) } - __pyx_t_18 = (__Pyx_PySet_ContainsTF(__pyx_t_1, __pyx_v_10pyreadstat_16_readstat_writer_pyrwriter_datetimelike_types, Py_EQ)); if (unlikely((__pyx_t_18 < 0))) __PYX_ERR(0, 976, __pyx_L22_error) + __pyx_t_20 = (__Pyx_PySet_ContainsTF(__pyx_t_1, __pyx_v_10pyreadstat_16_readstat_writer_pyrwriter_datetimelike_types, Py_EQ)); if (unlikely((__pyx_t_20 < 0))) __PYX_ERR(0, 973, __pyx_L23_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - if (likely(__pyx_t_18)) { + if (likely(__pyx_t_20)) { - /* "pyreadstat/_readstat_writer.pyx":977 + /* "pyreadstat/_readstat_writer.pyx":974 * check_exit_status(readstat_insert_double_value(writer, tempvar, curval)) * elif curtype in pyrwriter_datetimelike_types: * dtimelikeval = convert_datetimelike_to_number(file_format, curtype, curval) # <<<<<<<<<<<<<< * check_exit_status(readstat_insert_double_value(writer, tempvar, dtimelikeval)) * else: */ - __pyx_t_31 = __pyx_f_10pyreadstat_16_readstat_writer_convert_datetimelike_to_number(__pyx_v_file_format, __pyx_v_curtype, __pyx_v_curval); if (unlikely(__pyx_t_31 == ((double)-1) && PyErr_Occurred())) __PYX_ERR(0, 977, __pyx_L22_error) - __pyx_v_dtimelikeval = __pyx_t_31; + __pyx_t_33 = __pyx_f_10pyreadstat_16_readstat_writer_convert_datetimelike_to_number(__pyx_v_file_format, __pyx_v_curtype, __pyx_v_curval); if (unlikely(__pyx_t_33 == ((double)-1) && PyErr_Occurred())) __PYX_ERR(0, 974, __pyx_L23_error) + __pyx_v_dtimelikeval = __pyx_t_33; - /* "pyreadstat/_readstat_writer.pyx":978 + /* "pyreadstat/_readstat_writer.pyx":975 * elif curtype in pyrwriter_datetimelike_types: * dtimelikeval = convert_datetimelike_to_number(file_format, curtype, curval) * check_exit_status(readstat_insert_double_value(writer, tempvar, dtimelikeval)) # <<<<<<<<<<<<<< * else: * raise PyreadstatError("Unknown data format to insert") */ - __pyx_f_10pyreadstat_16_readstat_parser_check_exit_status(readstat_insert_double_value(__pyx_v_writer, __pyx_v_tempvar, __pyx_v_dtimelikeval)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 978, __pyx_L22_error) + __pyx_f_10pyreadstat_16_readstat_parser_check_exit_status(readstat_insert_double_value(__pyx_v_writer, __pyx_v_tempvar, __pyx_v_dtimelikeval)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 975, __pyx_L23_error) - /* "pyreadstat/_readstat_writer.pyx":976 + /* "pyreadstat/_readstat_writer.pyx":973 * elif curtype == PYWRITER_DATETIME64 or curtype == PYWRITER_DATE64 or curtype == PYWRITER_TIME64: * check_exit_status(readstat_insert_double_value(writer, tempvar, curval)) * elif curtype in pyrwriter_datetimelike_types: # <<<<<<<<<<<<<< * dtimelikeval = convert_datetimelike_to_number(file_format, curtype, curval) * check_exit_status(readstat_insert_double_value(writer, tempvar, dtimelikeval)) */ - goto __pyx_L104; + goto __pyx_L105; } - /* "pyreadstat/_readstat_writer.pyx":980 + /* "pyreadstat/_readstat_writer.pyx":977 * check_exit_status(readstat_insert_double_value(writer, tempvar, dtimelikeval)) * else: * raise PyreadstatError("Unknown data format to insert") # <<<<<<<<<<<<<< @@ -16838,59 +16898,59 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d * check_exit_status(readstat_end_row(writer)) */ /*else*/ { - __pyx_t_9 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 980, __pyx_L22_error) - __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = NULL; + __Pyx_GetModuleGlobalName(__pyx_t_13, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 977, __pyx_L23_error) + __Pyx_GOTREF(__pyx_t_13); __pyx_t_5 = 1; #if CYTHON_UNPACK_METHODS - if (unlikely(PyMethod_Check(__pyx_t_2))) { - __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_2); - assert(__pyx_t_9); - PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_2); - __Pyx_INCREF(__pyx_t_9); + if (unlikely(PyMethod_Check(__pyx_t_13))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_13); + assert(__pyx_t_3); + PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_13); + __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(__pyx__function); - __Pyx_DECREF_SET(__pyx_t_2, __pyx__function); + __Pyx_DECREF_SET(__pyx_t_13, __pyx__function); __pyx_t_5 = 0; } #endif { - PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_mstate_global->__pyx_kp_u_Unknown_data_format_to_insert}; - __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_2, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 980, __pyx_L22_error) + PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_mstate_global->__pyx_kp_u_Unknown_data_format_to_insert}; + __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_13, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 977, __pyx_L23_error) __Pyx_GOTREF(__pyx_t_1); } __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __PYX_ERR(0, 980, __pyx_L22_error) + __PYX_ERR(0, 977, __pyx_L23_error) } - __pyx_L104:; - __pyx_L94_continue:; + __pyx_L105:; + __pyx_L95_continue:; } - /* "pyreadstat/_readstat_writer.pyx":982 + /* "pyreadstat/_readstat_writer.pyx":979 * raise PyreadstatError("Unknown data format to insert") * * check_exit_status(readstat_end_row(writer)) # <<<<<<<<<<<<<< * rowcnt += 1 * */ - __pyx_f_10pyreadstat_16_readstat_parser_check_exit_status(readstat_end_row(__pyx_v_writer)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 982, __pyx_L22_error) + __pyx_f_10pyreadstat_16_readstat_parser_check_exit_status(readstat_end_row(__pyx_v_writer)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 979, __pyx_L23_error) - /* "pyreadstat/_readstat_writer.pyx":983 + /* "pyreadstat/_readstat_writer.pyx":980 * * check_exit_status(readstat_end_row(writer)) * rowcnt += 1 # <<<<<<<<<<<<<< * * check_exit_status(readstat_end_writing(writer)) */ - __pyx_t_1 = __Pyx_PyLong_AddObjC(__pyx_v_rowcnt, __pyx_mstate_global->__pyx_int_1, 1, 1, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 983, __pyx_L22_error) + __pyx_t_1 = __Pyx_PyLong_AddObjC(__pyx_v_rowcnt, __pyx_mstate_global->__pyx_int_1, 1, 1, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 980, __pyx_L23_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_rowcnt, __pyx_t_1); __pyx_t_1 = 0; - /* "pyreadstat/_readstat_writer.pyx":929 + /* "pyreadstat/_readstat_writer.pyx":926 * rowcnt = 0 * * for row in df2.iter_rows(): # <<<<<<<<<<<<<< @@ -16898,18 +16958,18 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d * */ } - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - /* "pyreadstat/_readstat_writer.pyx":985 + /* "pyreadstat/_readstat_writer.pyx":982 * rowcnt += 1 * * check_exit_status(readstat_end_writing(writer)) # <<<<<<<<<<<<<< * * except: */ - __pyx_f_10pyreadstat_16_readstat_parser_check_exit_status(readstat_end_writing(__pyx_v_writer)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 985, __pyx_L22_error) + __pyx_f_10pyreadstat_16_readstat_parser_check_exit_status(readstat_end_writing(__pyx_v_writer)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 982, __pyx_L23_error) - /* "pyreadstat/_readstat_writer.pyx":774 + /* "pyreadstat/_readstat_writer.pyx":771 * writer = readstat_writer_init() * * try: # <<<<<<<<<<<<<< @@ -16917,19 +16977,20 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d * check_exit_status(readstat_set_data_writer(writer, write_bytes)) */ } - __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0; - __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0; __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0; - goto __pyx_L27_try_end; - __pyx_L22_error:; + __Pyx_XDECREF(__pyx_t_16); __pyx_t_16 = 0; + __Pyx_XDECREF(__pyx_t_17); __pyx_t_17 = 0; + goto __pyx_L28_try_end; + __pyx_L23_error:; __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; + __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0; __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - /* "pyreadstat/_readstat_writer.pyx":987 + /* "pyreadstat/_readstat_writer.pyx":984 * check_exit_status(readstat_end_writing(writer)) * * except: # <<<<<<<<<<<<<< @@ -16938,44 +16999,44 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d */ /*except:*/ { __Pyx_AddTraceback("pyreadstat._readstat_writer.run_write", __pyx_clineno, __pyx_lineno, __pyx_filename); - if (__Pyx_GetException(&__pyx_t_3, &__pyx_t_1, &__pyx_t_2) < 0) __PYX_ERR(0, 987, __pyx_L24_except_error) - __Pyx_XGOTREF(__pyx_t_3); + if (__Pyx_GetException(&__pyx_t_4, &__pyx_t_1, &__pyx_t_13) < 0) __PYX_ERR(0, 984, __pyx_L25_except_error) + __Pyx_XGOTREF(__pyx_t_4); __Pyx_XGOTREF(__pyx_t_1); - __Pyx_XGOTREF(__pyx_t_2); + __Pyx_XGOTREF(__pyx_t_13); - /* "pyreadstat/_readstat_writer.pyx":988 + /* "pyreadstat/_readstat_writer.pyx":985 * * except: * raise # <<<<<<<<<<<<<< * finally: * readstat_writer_free(writer) */ - __Pyx_GIVEREF(__pyx_t_3); + __Pyx_GIVEREF(__pyx_t_4); __Pyx_GIVEREF(__pyx_t_1); - __Pyx_XGIVEREF(__pyx_t_2); - __Pyx_ErrRestoreWithState(__pyx_t_3, __pyx_t_1, __pyx_t_2); - __pyx_t_3 = 0; __pyx_t_1 = 0; __pyx_t_2 = 0; - __PYX_ERR(0, 988, __pyx_L24_except_error) + __Pyx_XGIVEREF(__pyx_t_13); + __Pyx_ErrRestoreWithState(__pyx_t_4, __pyx_t_1, __pyx_t_13); + __pyx_t_4 = 0; __pyx_t_1 = 0; __pyx_t_13 = 0; + __PYX_ERR(0, 985, __pyx_L25_except_error) } - /* "pyreadstat/_readstat_writer.pyx":774 + /* "pyreadstat/_readstat_writer.pyx":771 * writer = readstat_writer_init() * * try: # <<<<<<<<<<<<<< * * check_exit_status(readstat_set_data_writer(writer, write_bytes)) */ - __pyx_L24_except_error:; - __Pyx_XGIVEREF(__pyx_t_13); - __Pyx_XGIVEREF(__pyx_t_14); + __pyx_L25_except_error:; __Pyx_XGIVEREF(__pyx_t_15); - __Pyx_ExceptionReset(__pyx_t_13, __pyx_t_14, __pyx_t_15); - goto __pyx_L20_error; - __pyx_L27_try_end:; + __Pyx_XGIVEREF(__pyx_t_16); + __Pyx_XGIVEREF(__pyx_t_17); + __Pyx_ExceptionReset(__pyx_t_15, __pyx_t_16, __pyx_t_17); + goto __pyx_L21_error; + __pyx_L28_try_end:; } } - /* "pyreadstat/_readstat_writer.pyx":990 + /* "pyreadstat/_readstat_writer.pyx":987 * raise * finally: * readstat_writer_free(writer) # <<<<<<<<<<<<<< @@ -16986,39 +17047,40 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d /*normal exit:*/{ readstat_writer_free(__pyx_v_writer); - /* "pyreadstat/_readstat_writer.pyx":991 + /* "pyreadstat/_readstat_writer.pyx":988 * finally: * readstat_writer_free(writer) * close_file(fd) # <<<<<<<<<<<<<< * * return 0 */ - __pyx_t_12 = __pyx_f_10pyreadstat_16_readstat_writer_close_file(__pyx_v_fd); if (unlikely(__pyx_t_12 == ((int)-1) && PyErr_Occurred())) __PYX_ERR(0, 991, __pyx_L1_error) - goto __pyx_L21; + __pyx_t_12 = __pyx_f_10pyreadstat_16_readstat_writer_close_file(__pyx_v_fd); if (unlikely(__pyx_t_12 == ((int)-1) && PyErr_Occurred())) __PYX_ERR(0, 988, __pyx_L1_error) + goto __pyx_L22; } - __pyx_L20_error:; + __pyx_L21_error:; /*exception exit:*/{ __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign - __pyx_t_15 = 0; __pyx_t_14 = 0; __pyx_t_13 = 0; __pyx_t_35 = 0; __pyx_t_36 = 0; __pyx_t_37 = 0; + __pyx_t_17 = 0; __pyx_t_16 = 0; __pyx_t_15 = 0; __pyx_t_37 = 0; __pyx_t_38 = 0; __pyx_t_39 = 0; __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; + __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0; __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_ExceptionSwap(&__pyx_t_35, &__pyx_t_36, &__pyx_t_37); - if ( unlikely(__Pyx_GetException(&__pyx_t_15, &__pyx_t_14, &__pyx_t_13) < 0)) __Pyx_ErrFetch(&__pyx_t_15, &__pyx_t_14, &__pyx_t_13); + __Pyx_ExceptionSwap(&__pyx_t_37, &__pyx_t_38, &__pyx_t_39); + if ( unlikely(__Pyx_GetException(&__pyx_t_17, &__pyx_t_16, &__pyx_t_15) < 0)) __Pyx_ErrFetch(&__pyx_t_17, &__pyx_t_16, &__pyx_t_15); + __Pyx_XGOTREF(__pyx_t_17); + __Pyx_XGOTREF(__pyx_t_16); __Pyx_XGOTREF(__pyx_t_15); - __Pyx_XGOTREF(__pyx_t_14); - __Pyx_XGOTREF(__pyx_t_13); - __Pyx_XGOTREF(__pyx_t_35); - __Pyx_XGOTREF(__pyx_t_36); __Pyx_XGOTREF(__pyx_t_37); - __pyx_t_12 = __pyx_lineno; __pyx_t_19 = __pyx_clineno; __pyx_t_34 = __pyx_filename; + __Pyx_XGOTREF(__pyx_t_38); + __Pyx_XGOTREF(__pyx_t_39); + __pyx_t_12 = __pyx_lineno; __pyx_t_21 = __pyx_clineno; __pyx_t_36 = __pyx_filename; { - /* "pyreadstat/_readstat_writer.pyx":990 + /* "pyreadstat/_readstat_writer.pyx":987 * raise * finally: * readstat_writer_free(writer) # <<<<<<<<<<<<<< @@ -17027,41 +17089,41 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d */ readstat_writer_free(__pyx_v_writer); - /* "pyreadstat/_readstat_writer.pyx":991 + /* "pyreadstat/_readstat_writer.pyx":988 * finally: * readstat_writer_free(writer) * close_file(fd) # <<<<<<<<<<<<<< * * return 0 */ - __pyx_t_20 = __pyx_f_10pyreadstat_16_readstat_writer_close_file(__pyx_v_fd); if (unlikely(__pyx_t_20 == ((int)-1) && PyErr_Occurred())) __PYX_ERR(0, 991, __pyx_L109_error) + __pyx_t_22 = __pyx_f_10pyreadstat_16_readstat_writer_close_file(__pyx_v_fd); if (unlikely(__pyx_t_22 == ((int)-1) && PyErr_Occurred())) __PYX_ERR(0, 988, __pyx_L110_error) } - __Pyx_XGIVEREF(__pyx_t_35); - __Pyx_XGIVEREF(__pyx_t_36); __Pyx_XGIVEREF(__pyx_t_37); - __Pyx_ExceptionReset(__pyx_t_35, __pyx_t_36, __pyx_t_37); + __Pyx_XGIVEREF(__pyx_t_38); + __Pyx_XGIVEREF(__pyx_t_39); + __Pyx_ExceptionReset(__pyx_t_37, __pyx_t_38, __pyx_t_39); + __Pyx_XGIVEREF(__pyx_t_17); + __Pyx_XGIVEREF(__pyx_t_16); __Pyx_XGIVEREF(__pyx_t_15); - __Pyx_XGIVEREF(__pyx_t_14); - __Pyx_XGIVEREF(__pyx_t_13); - __Pyx_ErrRestore(__pyx_t_15, __pyx_t_14, __pyx_t_13); - __pyx_t_15 = 0; __pyx_t_14 = 0; __pyx_t_13 = 0; __pyx_t_35 = 0; __pyx_t_36 = 0; __pyx_t_37 = 0; - __pyx_lineno = __pyx_t_12; __pyx_clineno = __pyx_t_19; __pyx_filename = __pyx_t_34; + __Pyx_ErrRestore(__pyx_t_17, __pyx_t_16, __pyx_t_15); + __pyx_t_17 = 0; __pyx_t_16 = 0; __pyx_t_15 = 0; __pyx_t_37 = 0; __pyx_t_38 = 0; __pyx_t_39 = 0; + __pyx_lineno = __pyx_t_12; __pyx_clineno = __pyx_t_21; __pyx_filename = __pyx_t_36; goto __pyx_L1_error; - __pyx_L109_error:; - __Pyx_XGIVEREF(__pyx_t_35); - __Pyx_XGIVEREF(__pyx_t_36); + __pyx_L110_error:; __Pyx_XGIVEREF(__pyx_t_37); - __Pyx_ExceptionReset(__pyx_t_35, __pyx_t_36, __pyx_t_37); + __Pyx_XGIVEREF(__pyx_t_38); + __Pyx_XGIVEREF(__pyx_t_39); + __Pyx_ExceptionReset(__pyx_t_37, __pyx_t_38, __pyx_t_39); + __Pyx_XDECREF(__pyx_t_17); __pyx_t_17 = 0; + __Pyx_XDECREF(__pyx_t_16); __pyx_t_16 = 0; __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0; - __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0; - __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0; - __pyx_t_35 = 0; __pyx_t_36 = 0; __pyx_t_37 = 0; + __pyx_t_37 = 0; __pyx_t_38 = 0; __pyx_t_39 = 0; goto __pyx_L1_error; } - __pyx_L21:; + __pyx_L22:; } - /* "pyreadstat/_readstat_writer.pyx":993 + /* "pyreadstat/_readstat_writer.pyx":990 * close_file(fd) * * return 0 # <<<<<<<<<<<<<< @@ -17071,7 +17133,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d __pyx_r = 0; goto __pyx_L0; - /* "pyreadstat/_readstat_writer.pyx":685 + /* "pyreadstat/_readstat_writer.pyx":677 * * * cdef int run_write(df, object filename_path, dst_file_format file_format, str file_label, object column_labels, # <<<<<<<<<<<<<< @@ -17087,6 +17149,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_9); __Pyx_XDECREF(__pyx_t_10); + __Pyx_XDECREF(__pyx_t_13); __Pyx_AddTraceback("pyreadstat._readstat_writer.run_write", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; @@ -17135,7 +17198,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d return __pyx_r; } -/* "pyreadstat/_readstat_writer.pyx":995 +/* "pyreadstat/_readstat_writer.pyx":992 * return 0 * * def writer_entry_point(df, dst_path, str writer_format=None, str file_label="", # <<<<<<<<<<<<<< @@ -17198,86 +17261,86 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_df,&__pyx_mstate_global->__pyx_n_u_dst_path,&__pyx_mstate_global->__pyx_n_u_writer_format,&__pyx_mstate_global->__pyx_n_u_file_label,&__pyx_mstate_global->__pyx_n_u_version,&__pyx_mstate_global->__pyx_n_u_table_name,&__pyx_mstate_global->__pyx_n_u_column_labels,&__pyx_mstate_global->__pyx_n_u_compress,&__pyx_mstate_global->__pyx_n_u_row_compress,&__pyx_mstate_global->__pyx_n_u_note,&__pyx_mstate_global->__pyx_n_u_variable_value_labels,&__pyx_mstate_global->__pyx_n_u_missing_ranges,&__pyx_mstate_global->__pyx_n_u_variable_display_width,&__pyx_mstate_global->__pyx_n_u_variable_measure,&__pyx_mstate_global->__pyx_n_u_missing_user_values,&__pyx_mstate_global->__pyx_n_u_variable_format,&__pyx_mstate_global->__pyx_n_u_variable_alignment,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(0, 995, __pyx_L3_error) + if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(0, 992, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 17: values[16] = __Pyx_ArgRef_FASTCALL(__pyx_args, 16); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[16])) __PYX_ERR(0, 995, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[16])) __PYX_ERR(0, 992, __pyx_L3_error) CYTHON_FALLTHROUGH; case 16: values[15] = __Pyx_ArgRef_FASTCALL(__pyx_args, 15); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[15])) __PYX_ERR(0, 995, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[15])) __PYX_ERR(0, 992, __pyx_L3_error) CYTHON_FALLTHROUGH; case 15: values[14] = __Pyx_ArgRef_FASTCALL(__pyx_args, 14); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[14])) __PYX_ERR(0, 995, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[14])) __PYX_ERR(0, 992, __pyx_L3_error) CYTHON_FALLTHROUGH; case 14: values[13] = __Pyx_ArgRef_FASTCALL(__pyx_args, 13); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[13])) __PYX_ERR(0, 995, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[13])) __PYX_ERR(0, 992, __pyx_L3_error) CYTHON_FALLTHROUGH; case 13: values[12] = __Pyx_ArgRef_FASTCALL(__pyx_args, 12); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[12])) __PYX_ERR(0, 995, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[12])) __PYX_ERR(0, 992, __pyx_L3_error) CYTHON_FALLTHROUGH; case 12: values[11] = __Pyx_ArgRef_FASTCALL(__pyx_args, 11); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[11])) __PYX_ERR(0, 995, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[11])) __PYX_ERR(0, 992, __pyx_L3_error) CYTHON_FALLTHROUGH; case 11: values[10] = __Pyx_ArgRef_FASTCALL(__pyx_args, 10); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[10])) __PYX_ERR(0, 995, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[10])) __PYX_ERR(0, 992, __pyx_L3_error) CYTHON_FALLTHROUGH; case 10: values[9] = __Pyx_ArgRef_FASTCALL(__pyx_args, 9); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[9])) __PYX_ERR(0, 995, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[9])) __PYX_ERR(0, 992, __pyx_L3_error) CYTHON_FALLTHROUGH; case 9: values[8] = __Pyx_ArgRef_FASTCALL(__pyx_args, 8); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[8])) __PYX_ERR(0, 995, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[8])) __PYX_ERR(0, 992, __pyx_L3_error) CYTHON_FALLTHROUGH; case 8: values[7] = __Pyx_ArgRef_FASTCALL(__pyx_args, 7); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(0, 995, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(0, 992, __pyx_L3_error) CYTHON_FALLTHROUGH; case 7: values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(0, 995, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(0, 992, __pyx_L3_error) CYTHON_FALLTHROUGH; case 6: values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(0, 995, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(0, 992, __pyx_L3_error) CYTHON_FALLTHROUGH; case 5: values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(0, 995, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(0, 992, __pyx_L3_error) CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(0, 995, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(0, 992, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 995, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 992, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 995, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 992, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 995, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 992, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "writer_entry_point", 0) < (0)) __PYX_ERR(0, 995, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "writer_entry_point", 0) < (0)) __PYX_ERR(0, 992, __pyx_L3_error) if (!values[2]) values[2] = __Pyx_NewRef(((PyObject*)Py_None)); - if (!values[3]) values[3] = __Pyx_NewRef(((PyObject*)((PyObject*)__pyx_mstate_global->__pyx_kp_u__3))); + if (!values[3]) values[3] = __Pyx_NewRef(((PyObject*)((PyObject*)__pyx_mstate_global->__pyx_kp_u__4))); - /* "pyreadstat/_readstat_writer.pyx":997 + /* "pyreadstat/_readstat_writer.pyx":994 * def writer_entry_point(df, dst_path, str writer_format=None, str file_label="", * int version=0, * str table_name=None, # <<<<<<<<<<<<<< @@ -17286,7 +17349,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds */ if (!values[5]) values[5] = __Pyx_NewRef(((PyObject*)Py_None)); - /* "pyreadstat/_readstat_writer.pyx":998 + /* "pyreadstat/_readstat_writer.pyx":995 * int version=0, * str table_name=None, * object column_labels=None, compress=False, row_compress=False, object note=None, # <<<<<<<<<<<<<< @@ -17298,7 +17361,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds if (!values[8]) values[8] = __Pyx_NewRef(((PyObject *)((PyObject*)Py_False))); if (!values[9]) values[9] = __Pyx_NewRef(((PyObject *)Py_None)); - /* "pyreadstat/_readstat_writer.pyx":999 + /* "pyreadstat/_readstat_writer.pyx":996 * str table_name=None, * object column_labels=None, compress=False, row_compress=False, object note=None, * dict variable_value_labels=None, dict missing_ranges=None, dict variable_display_width=None, # <<<<<<<<<<<<<< @@ -17309,7 +17372,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds if (!values[11]) values[11] = __Pyx_NewRef(((PyObject*)Py_None)); if (!values[12]) values[12] = __Pyx_NewRef(((PyObject*)Py_None)); - /* "pyreadstat/_readstat_writer.pyx":1000 + /* "pyreadstat/_readstat_writer.pyx":997 * object column_labels=None, compress=False, row_compress=False, object note=None, * dict variable_value_labels=None, dict missing_ranges=None, dict variable_display_width=None, * dict variable_measure=None, # <<<<<<<<<<<<<< @@ -17318,7 +17381,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds */ if (!values[13]) values[13] = __Pyx_NewRef(((PyObject*)Py_None)); - /* "pyreadstat/_readstat_writer.pyx":1001 + /* "pyreadstat/_readstat_writer.pyx":998 * dict variable_value_labels=None, dict missing_ranges=None, dict variable_display_width=None, * dict variable_measure=None, * dict missing_user_values=None, # <<<<<<<<<<<<<< @@ -17327,7 +17390,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds */ if (!values[14]) values[14] = __Pyx_NewRef(((PyObject*)Py_None)); - /* "pyreadstat/_readstat_writer.pyx":1002 + /* "pyreadstat/_readstat_writer.pyx":999 * dict variable_measure=None, * dict missing_user_values=None, * dict variable_format=None, # <<<<<<<<<<<<<< @@ -17336,7 +17399,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds */ if (!values[15]) values[15] = __Pyx_NewRef(((PyObject*)Py_None)); - /* "pyreadstat/_readstat_writer.pyx":1003 + /* "pyreadstat/_readstat_writer.pyx":1000 * dict missing_user_values=None, * dict variable_format=None, * dict variable_alignment = None, # <<<<<<<<<<<<<< @@ -17345,80 +17408,80 @@ PyObject *__pyx_args, PyObject *__pyx_kwds */ if (!values[16]) values[16] = __Pyx_NewRef(((PyObject*)Py_None)); for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("writer_entry_point", 0, 2, 17, i); __PYX_ERR(0, 995, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("writer_entry_point", 0, 2, 17, i); __PYX_ERR(0, 992, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 17: values[16] = __Pyx_ArgRef_FASTCALL(__pyx_args, 16); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[16])) __PYX_ERR(0, 995, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[16])) __PYX_ERR(0, 992, __pyx_L3_error) CYTHON_FALLTHROUGH; case 16: values[15] = __Pyx_ArgRef_FASTCALL(__pyx_args, 15); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[15])) __PYX_ERR(0, 995, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[15])) __PYX_ERR(0, 992, __pyx_L3_error) CYTHON_FALLTHROUGH; case 15: values[14] = __Pyx_ArgRef_FASTCALL(__pyx_args, 14); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[14])) __PYX_ERR(0, 995, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[14])) __PYX_ERR(0, 992, __pyx_L3_error) CYTHON_FALLTHROUGH; case 14: values[13] = __Pyx_ArgRef_FASTCALL(__pyx_args, 13); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[13])) __PYX_ERR(0, 995, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[13])) __PYX_ERR(0, 992, __pyx_L3_error) CYTHON_FALLTHROUGH; case 13: values[12] = __Pyx_ArgRef_FASTCALL(__pyx_args, 12); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[12])) __PYX_ERR(0, 995, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[12])) __PYX_ERR(0, 992, __pyx_L3_error) CYTHON_FALLTHROUGH; case 12: values[11] = __Pyx_ArgRef_FASTCALL(__pyx_args, 11); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[11])) __PYX_ERR(0, 995, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[11])) __PYX_ERR(0, 992, __pyx_L3_error) CYTHON_FALLTHROUGH; case 11: values[10] = __Pyx_ArgRef_FASTCALL(__pyx_args, 10); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[10])) __PYX_ERR(0, 995, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[10])) __PYX_ERR(0, 992, __pyx_L3_error) CYTHON_FALLTHROUGH; case 10: values[9] = __Pyx_ArgRef_FASTCALL(__pyx_args, 9); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[9])) __PYX_ERR(0, 995, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[9])) __PYX_ERR(0, 992, __pyx_L3_error) CYTHON_FALLTHROUGH; case 9: values[8] = __Pyx_ArgRef_FASTCALL(__pyx_args, 8); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[8])) __PYX_ERR(0, 995, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[8])) __PYX_ERR(0, 992, __pyx_L3_error) CYTHON_FALLTHROUGH; case 8: values[7] = __Pyx_ArgRef_FASTCALL(__pyx_args, 7); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(0, 995, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(0, 992, __pyx_L3_error) CYTHON_FALLTHROUGH; case 7: values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(0, 995, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(0, 992, __pyx_L3_error) CYTHON_FALLTHROUGH; case 6: values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(0, 995, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(0, 992, __pyx_L3_error) CYTHON_FALLTHROUGH; case 5: values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(0, 995, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(0, 992, __pyx_L3_error) CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(0, 995, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(0, 992, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 995, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 992, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 995, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 992, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 995, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 992, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } - /* "pyreadstat/_readstat_writer.pyx":995 + /* "pyreadstat/_readstat_writer.pyx":992 * return 0 * * def writer_entry_point(df, dst_path, str writer_format=None, str file_label="", # <<<<<<<<<<<<<< @@ -17426,9 +17489,9 @@ PyObject *__pyx_args, PyObject *__pyx_kwds * str table_name=None, */ if (!values[2]) values[2] = __Pyx_NewRef(((PyObject*)Py_None)); - if (!values[3]) values[3] = __Pyx_NewRef(((PyObject*)((PyObject*)__pyx_mstate_global->__pyx_kp_u__3))); + if (!values[3]) values[3] = __Pyx_NewRef(((PyObject*)((PyObject*)__pyx_mstate_global->__pyx_kp_u__4))); - /* "pyreadstat/_readstat_writer.pyx":997 + /* "pyreadstat/_readstat_writer.pyx":994 * def writer_entry_point(df, dst_path, str writer_format=None, str file_label="", * int version=0, * str table_name=None, # <<<<<<<<<<<<<< @@ -17437,7 +17500,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds */ if (!values[5]) values[5] = __Pyx_NewRef(((PyObject*)Py_None)); - /* "pyreadstat/_readstat_writer.pyx":998 + /* "pyreadstat/_readstat_writer.pyx":995 * int version=0, * str table_name=None, * object column_labels=None, compress=False, row_compress=False, object note=None, # <<<<<<<<<<<<<< @@ -17449,7 +17512,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds if (!values[8]) values[8] = __Pyx_NewRef(((PyObject *)((PyObject*)Py_False))); if (!values[9]) values[9] = __Pyx_NewRef(((PyObject *)Py_None)); - /* "pyreadstat/_readstat_writer.pyx":999 + /* "pyreadstat/_readstat_writer.pyx":996 * str table_name=None, * object column_labels=None, compress=False, row_compress=False, object note=None, * dict variable_value_labels=None, dict missing_ranges=None, dict variable_display_width=None, # <<<<<<<<<<<<<< @@ -17460,7 +17523,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds if (!values[11]) values[11] = __Pyx_NewRef(((PyObject*)Py_None)); if (!values[12]) values[12] = __Pyx_NewRef(((PyObject*)Py_None)); - /* "pyreadstat/_readstat_writer.pyx":1000 + /* "pyreadstat/_readstat_writer.pyx":997 * object column_labels=None, compress=False, row_compress=False, object note=None, * dict variable_value_labels=None, dict missing_ranges=None, dict variable_display_width=None, * dict variable_measure=None, # <<<<<<<<<<<<<< @@ -17469,7 +17532,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds */ if (!values[13]) values[13] = __Pyx_NewRef(((PyObject*)Py_None)); - /* "pyreadstat/_readstat_writer.pyx":1001 + /* "pyreadstat/_readstat_writer.pyx":998 * dict variable_value_labels=None, dict missing_ranges=None, dict variable_display_width=None, * dict variable_measure=None, * dict missing_user_values=None, # <<<<<<<<<<<<<< @@ -17478,7 +17541,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds */ if (!values[14]) values[14] = __Pyx_NewRef(((PyObject*)Py_None)); - /* "pyreadstat/_readstat_writer.pyx":1002 + /* "pyreadstat/_readstat_writer.pyx":999 * dict variable_measure=None, * dict missing_user_values=None, * dict variable_format=None, # <<<<<<<<<<<<<< @@ -17487,7 +17550,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds */ if (!values[15]) values[15] = __Pyx_NewRef(((PyObject*)Py_None)); - /* "pyreadstat/_readstat_writer.pyx":1003 + /* "pyreadstat/_readstat_writer.pyx":1000 * dict missing_user_values=None, * dict variable_format=None, * dict variable_alignment = None, # <<<<<<<<<<<<<< @@ -17501,7 +17564,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __pyx_v_writer_format = ((PyObject*)values[2]); __pyx_v_file_label = ((PyObject*)values[3]); if (values[4]) { - __pyx_v_version = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_version == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 996, __pyx_L3_error) + __pyx_v_version = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_version == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 993, __pyx_L3_error) } else { __pyx_v_version = ((int)((int)0)); } @@ -17520,7 +17583,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("writer_entry_point", 0, 2, 17, __pyx_nargs); __PYX_ERR(0, 995, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("writer_entry_point", 0, 2, 17, __pyx_nargs); __PYX_ERR(0, 992, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -17531,19 +17594,19 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_writer_format), (&PyUnicode_Type), 1, "writer_format", 1))) __PYX_ERR(0, 995, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_file_label), (&PyUnicode_Type), 1, "file_label", 1))) __PYX_ERR(0, 995, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_table_name), (&PyUnicode_Type), 1, "table_name", 1))) __PYX_ERR(0, 997, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_variable_value_labels), (&PyDict_Type), 1, "variable_value_labels", 1))) __PYX_ERR(0, 999, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_missing_ranges), (&PyDict_Type), 1, "missing_ranges", 1))) __PYX_ERR(0, 999, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_variable_display_width), (&PyDict_Type), 1, "variable_display_width", 1))) __PYX_ERR(0, 999, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_variable_measure), (&PyDict_Type), 1, "variable_measure", 1))) __PYX_ERR(0, 1000, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_missing_user_values), (&PyDict_Type), 1, "missing_user_values", 1))) __PYX_ERR(0, 1001, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_variable_format), (&PyDict_Type), 1, "variable_format", 1))) __PYX_ERR(0, 1002, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_variable_alignment), (&PyDict_Type), 1, "variable_alignment", 1))) __PYX_ERR(0, 1003, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_writer_format), (&PyUnicode_Type), 1, "writer_format", 1))) __PYX_ERR(0, 992, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_file_label), (&PyUnicode_Type), 1, "file_label", 1))) __PYX_ERR(0, 992, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_table_name), (&PyUnicode_Type), 1, "table_name", 1))) __PYX_ERR(0, 994, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_variable_value_labels), (&PyDict_Type), 1, "variable_value_labels", 1))) __PYX_ERR(0, 996, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_missing_ranges), (&PyDict_Type), 1, "missing_ranges", 1))) __PYX_ERR(0, 996, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_variable_display_width), (&PyDict_Type), 1, "variable_display_width", 1))) __PYX_ERR(0, 996, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_variable_measure), (&PyDict_Type), 1, "variable_measure", 1))) __PYX_ERR(0, 997, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_missing_user_values), (&PyDict_Type), 1, "missing_user_values", 1))) __PYX_ERR(0, 998, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_variable_format), (&PyDict_Type), 1, "variable_format", 1))) __PYX_ERR(0, 999, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_variable_alignment), (&PyDict_Type), 1, "variable_alignment", 1))) __PYX_ERR(0, 1000, __pyx_L1_error) __pyx_r = __pyx_pf_10pyreadstat_16_readstat_writer_writer_entry_point(__pyx_self, __pyx_v_df, __pyx_v_dst_path, __pyx_v_writer_format, __pyx_v_file_label, __pyx_v_version, __pyx_v_table_name, __pyx_v_column_labels, __pyx_v_compress, __pyx_v_row_compress, __pyx_v_note, __pyx_v_variable_value_labels, __pyx_v_missing_ranges, __pyx_v_variable_display_width, __pyx_v_variable_measure, __pyx_v_missing_user_values, __pyx_v_variable_format, __pyx_v_variable_alignment); - /* "pyreadstat/_readstat_writer.pyx":995 + /* "pyreadstat/_readstat_writer.pyx":992 * return 0 * * def writer_entry_point(df, dst_path, str writer_format=None, str file_label="", # <<<<<<<<<<<<<< @@ -17587,7 +17650,7 @@ static PyObject *__pyx_pf_10pyreadstat_16_readstat_writer_writer_entry_point(CYT __Pyx_RefNannySetupContext("writer_entry_point", 0); __Pyx_INCREF(__pyx_v_note); - /* "pyreadstat/_readstat_writer.pyx":1007 + /* "pyreadstat/_readstat_writer.pyx":1004 * * * cdef int file_format_version = 0 # <<<<<<<<<<<<<< @@ -17596,7 +17659,7 @@ static PyObject *__pyx_pf_10pyreadstat_16_readstat_writer_writer_entry_point(CYT */ __pyx_v_file_format_version = 0; - /* "pyreadstat/_readstat_writer.pyx":1008 + /* "pyreadstat/_readstat_writer.pyx":1005 * * cdef int file_format_version = 0 * cdef bint row_compression = 0 # <<<<<<<<<<<<<< @@ -17605,17 +17668,17 @@ static PyObject *__pyx_pf_10pyreadstat_16_readstat_writer_writer_entry_point(CYT */ __pyx_v_row_compression = 0; - /* "pyreadstat/_readstat_writer.pyx":1012 + /* "pyreadstat/_readstat_writer.pyx":1009 * cdef dst_file_format writer_file_format * * if writer_format == "sav": # <<<<<<<<<<<<<< * writer_file_format = FILE_FORMAT_SAV * file_format_version = 2 */ - __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_writer_format, __pyx_mstate_global->__pyx_n_u_sav, Py_EQ)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 1012, __pyx_L1_error) + __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_writer_format, __pyx_mstate_global->__pyx_n_u_sav, Py_EQ)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 1009, __pyx_L1_error) if (__pyx_t_1) { - /* "pyreadstat/_readstat_writer.pyx":1013 + /* "pyreadstat/_readstat_writer.pyx":1010 * * if writer_format == "sav": * writer_file_format = FILE_FORMAT_SAV # <<<<<<<<<<<<<< @@ -17624,7 +17687,7 @@ static PyObject *__pyx_pf_10pyreadstat_16_readstat_writer_writer_entry_point(CYT */ __pyx_v_writer_file_format = __pyx_e_10pyreadstat_16_readstat_writer_FILE_FORMAT_SAV; - /* "pyreadstat/_readstat_writer.pyx":1014 + /* "pyreadstat/_readstat_writer.pyx":1011 * if writer_format == "sav": * writer_file_format = FILE_FORMAT_SAV * file_format_version = 2 # <<<<<<<<<<<<<< @@ -17633,25 +17696,25 @@ static PyObject *__pyx_pf_10pyreadstat_16_readstat_writer_writer_entry_point(CYT */ __pyx_v_file_format_version = 2; - /* "pyreadstat/_readstat_writer.pyx":1015 + /* "pyreadstat/_readstat_writer.pyx":1012 * writer_file_format = FILE_FORMAT_SAV * file_format_version = 2 * if compress and row_compress: # <<<<<<<<<<<<<< * raise PyreadstatError("compress and row_compress cannot be both True") * if compress: */ - __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_compress); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 1015, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_compress); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 1012, __pyx_L1_error) if (__pyx_t_2) { } else { __pyx_t_1 = __pyx_t_2; goto __pyx_L5_bool_binop_done; } - __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_row_compress); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 1015, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_row_compress); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 1012, __pyx_L1_error) __pyx_t_1 = __pyx_t_2; __pyx_L5_bool_binop_done:; if (unlikely(__pyx_t_1)) { - /* "pyreadstat/_readstat_writer.pyx":1016 + /* "pyreadstat/_readstat_writer.pyx":1013 * file_format_version = 2 * if compress and row_compress: * raise PyreadstatError("compress and row_compress cannot be both True") # <<<<<<<<<<<<<< @@ -17659,7 +17722,7 @@ static PyObject *__pyx_pf_10pyreadstat_16_readstat_writer_writer_entry_point(CYT * file_format_version = 3 */ __pyx_t_4 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1016, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1013, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_6 = 1; #if CYTHON_UNPACK_METHODS @@ -17678,14 +17741,14 @@ static PyObject *__pyx_pf_10pyreadstat_16_readstat_writer_writer_entry_point(CYT __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_5, __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1016, __pyx_L1_error) + if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1013, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); } __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __PYX_ERR(0, 1016, __pyx_L1_error) + __PYX_ERR(0, 1013, __pyx_L1_error) - /* "pyreadstat/_readstat_writer.pyx":1015 + /* "pyreadstat/_readstat_writer.pyx":1012 * writer_file_format = FILE_FORMAT_SAV * file_format_version = 2 * if compress and row_compress: # <<<<<<<<<<<<<< @@ -17694,17 +17757,17 @@ static PyObject *__pyx_pf_10pyreadstat_16_readstat_writer_writer_entry_point(CYT */ } - /* "pyreadstat/_readstat_writer.pyx":1017 + /* "pyreadstat/_readstat_writer.pyx":1014 * if compress and row_compress: * raise PyreadstatError("compress and row_compress cannot be both True") * if compress: # <<<<<<<<<<<<<< * file_format_version = 3 * if row_compress: */ - __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_compress); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 1017, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_compress); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 1014, __pyx_L1_error) if (__pyx_t_1) { - /* "pyreadstat/_readstat_writer.pyx":1018 + /* "pyreadstat/_readstat_writer.pyx":1015 * raise PyreadstatError("compress and row_compress cannot be both True") * if compress: * file_format_version = 3 # <<<<<<<<<<<<<< @@ -17713,7 +17776,7 @@ static PyObject *__pyx_pf_10pyreadstat_16_readstat_writer_writer_entry_point(CYT */ __pyx_v_file_format_version = 3; - /* "pyreadstat/_readstat_writer.pyx":1017 + /* "pyreadstat/_readstat_writer.pyx":1014 * if compress and row_compress: * raise PyreadstatError("compress and row_compress cannot be both True") * if compress: # <<<<<<<<<<<<<< @@ -17722,17 +17785,17 @@ static PyObject *__pyx_pf_10pyreadstat_16_readstat_writer_writer_entry_point(CYT */ } - /* "pyreadstat/_readstat_writer.pyx":1019 + /* "pyreadstat/_readstat_writer.pyx":1016 * if compress: * file_format_version = 3 * if row_compress: # <<<<<<<<<<<<<< * row_compression = 1 * elif writer_format == "dta": */ - __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_row_compress); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 1019, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_row_compress); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 1016, __pyx_L1_error) if (__pyx_t_1) { - /* "pyreadstat/_readstat_writer.pyx":1020 + /* "pyreadstat/_readstat_writer.pyx":1017 * file_format_version = 3 * if row_compress: * row_compression = 1 # <<<<<<<<<<<<<< @@ -17741,7 +17804,7 @@ static PyObject *__pyx_pf_10pyreadstat_16_readstat_writer_writer_entry_point(CYT */ __pyx_v_row_compression = 1; - /* "pyreadstat/_readstat_writer.pyx":1019 + /* "pyreadstat/_readstat_writer.pyx":1016 * if compress: * file_format_version = 3 * if row_compress: # <<<<<<<<<<<<<< @@ -17750,7 +17813,7 @@ static PyObject *__pyx_pf_10pyreadstat_16_readstat_writer_writer_entry_point(CYT */ } - /* "pyreadstat/_readstat_writer.pyx":1012 + /* "pyreadstat/_readstat_writer.pyx":1009 * cdef dst_file_format writer_file_format * * if writer_format == "sav": # <<<<<<<<<<<<<< @@ -17760,17 +17823,17 @@ static PyObject *__pyx_pf_10pyreadstat_16_readstat_writer_writer_entry_point(CYT goto __pyx_L3; } - /* "pyreadstat/_readstat_writer.pyx":1021 + /* "pyreadstat/_readstat_writer.pyx":1018 * if row_compress: * row_compression = 1 * elif writer_format == "dta": # <<<<<<<<<<<<<< * writer_file_format = FILE_FORMAT_DTA * if version == 15: */ - __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_writer_format, __pyx_mstate_global->__pyx_n_u_dta, Py_EQ)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 1021, __pyx_L1_error) + __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_writer_format, __pyx_mstate_global->__pyx_n_u_dta, Py_EQ)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 1018, __pyx_L1_error) if (__pyx_t_1) { - /* "pyreadstat/_readstat_writer.pyx":1022 + /* "pyreadstat/_readstat_writer.pyx":1019 * row_compression = 1 * elif writer_format == "dta": * writer_file_format = FILE_FORMAT_DTA # <<<<<<<<<<<<<< @@ -17779,7 +17842,7 @@ static PyObject *__pyx_pf_10pyreadstat_16_readstat_writer_writer_entry_point(CYT */ __pyx_v_writer_file_format = __pyx_e_10pyreadstat_16_readstat_writer_FILE_FORMAT_DTA; - /* "pyreadstat/_readstat_writer.pyx":1023 + /* "pyreadstat/_readstat_writer.pyx":1020 * elif writer_format == "dta": * writer_file_format = FILE_FORMAT_DTA * if version == 15: # <<<<<<<<<<<<<< @@ -17789,7 +17852,7 @@ static PyObject *__pyx_pf_10pyreadstat_16_readstat_writer_writer_entry_point(CYT switch (__pyx_v_version) { case 15: - /* "pyreadstat/_readstat_writer.pyx":1024 + /* "pyreadstat/_readstat_writer.pyx":1021 * writer_file_format = FILE_FORMAT_DTA * if version == 15: * file_format_version = 119 # <<<<<<<<<<<<<< @@ -17798,7 +17861,7 @@ static PyObject *__pyx_pf_10pyreadstat_16_readstat_writer_writer_entry_point(CYT */ __pyx_v_file_format_version = 0x77; - /* "pyreadstat/_readstat_writer.pyx":1023 + /* "pyreadstat/_readstat_writer.pyx":1020 * elif writer_format == "dta": * writer_file_format = FILE_FORMAT_DTA * if version == 15: # <<<<<<<<<<<<<< @@ -17808,7 +17871,7 @@ static PyObject *__pyx_pf_10pyreadstat_16_readstat_writer_writer_entry_point(CYT break; case 14: - /* "pyreadstat/_readstat_writer.pyx":1026 + /* "pyreadstat/_readstat_writer.pyx":1023 * file_format_version = 119 * elif version == 14: * file_format_version = 118 # <<<<<<<<<<<<<< @@ -17817,7 +17880,7 @@ static PyObject *__pyx_pf_10pyreadstat_16_readstat_writer_writer_entry_point(CYT */ __pyx_v_file_format_version = 0x76; - /* "pyreadstat/_readstat_writer.pyx":1025 + /* "pyreadstat/_readstat_writer.pyx":1022 * if version == 15: * file_format_version = 119 * elif version == 14: # <<<<<<<<<<<<<< @@ -17827,7 +17890,7 @@ static PyObject *__pyx_pf_10pyreadstat_16_readstat_writer_writer_entry_point(CYT break; case 13: - /* "pyreadstat/_readstat_writer.pyx":1028 + /* "pyreadstat/_readstat_writer.pyx":1025 * file_format_version = 118 * elif version == 13: * file_format_version = 117 # <<<<<<<<<<<<<< @@ -17836,7 +17899,7 @@ static PyObject *__pyx_pf_10pyreadstat_16_readstat_writer_writer_entry_point(CYT */ __pyx_v_file_format_version = 0x75; - /* "pyreadstat/_readstat_writer.pyx":1027 + /* "pyreadstat/_readstat_writer.pyx":1024 * elif version == 14: * file_format_version = 118 * elif version == 13: # <<<<<<<<<<<<<< @@ -17846,7 +17909,7 @@ static PyObject *__pyx_pf_10pyreadstat_16_readstat_writer_writer_entry_point(CYT break; case 12: - /* "pyreadstat/_readstat_writer.pyx":1030 + /* "pyreadstat/_readstat_writer.pyx":1027 * file_format_version = 117 * elif version == 12: * file_format_version = 115 # <<<<<<<<<<<<<< @@ -17855,7 +17918,7 @@ static PyObject *__pyx_pf_10pyreadstat_16_readstat_writer_writer_entry_point(CYT */ __pyx_v_file_format_version = 0x73; - /* "pyreadstat/_readstat_writer.pyx":1029 + /* "pyreadstat/_readstat_writer.pyx":1026 * elif version == 13: * file_format_version = 117 * elif version == 12: # <<<<<<<<<<<<<< @@ -17865,7 +17928,7 @@ static PyObject *__pyx_pf_10pyreadstat_16_readstat_writer_writer_entry_point(CYT break; case 10: - /* "pyreadstat/_readstat_writer.pyx":1031 + /* "pyreadstat/_readstat_writer.pyx":1028 * elif version == 12: * file_format_version = 115 * elif version in {10, 11}: # <<<<<<<<<<<<<< @@ -17874,7 +17937,7 @@ static PyObject *__pyx_pf_10pyreadstat_16_readstat_writer_writer_entry_point(CYT */ case 11: - /* "pyreadstat/_readstat_writer.pyx":1032 + /* "pyreadstat/_readstat_writer.pyx":1029 * file_format_version = 115 * elif version in {10, 11}: * file_format_version = 114 # <<<<<<<<<<<<<< @@ -17883,7 +17946,7 @@ static PyObject *__pyx_pf_10pyreadstat_16_readstat_writer_writer_entry_point(CYT */ __pyx_v_file_format_version = 0x72; - /* "pyreadstat/_readstat_writer.pyx":1031 + /* "pyreadstat/_readstat_writer.pyx":1028 * elif version == 12: * file_format_version = 115 * elif version in {10, 11}: # <<<<<<<<<<<<<< @@ -17893,7 +17956,7 @@ static PyObject *__pyx_pf_10pyreadstat_16_readstat_writer_writer_entry_point(CYT break; case 8: - /* "pyreadstat/_readstat_writer.pyx":1033 + /* "pyreadstat/_readstat_writer.pyx":1030 * elif version in {10, 11}: * file_format_version = 114 * elif version in {8, 9}: # <<<<<<<<<<<<<< @@ -17902,7 +17965,7 @@ static PyObject *__pyx_pf_10pyreadstat_16_readstat_writer_writer_entry_point(CYT */ case 9: - /* "pyreadstat/_readstat_writer.pyx":1034 + /* "pyreadstat/_readstat_writer.pyx":1031 * file_format_version = 114 * elif version in {8, 9}: * file_format_version = 113 # <<<<<<<<<<<<<< @@ -17911,7 +17974,7 @@ static PyObject *__pyx_pf_10pyreadstat_16_readstat_writer_writer_entry_point(CYT */ __pyx_v_file_format_version = 0x71; - /* "pyreadstat/_readstat_writer.pyx":1033 + /* "pyreadstat/_readstat_writer.pyx":1030 * elif version in {10, 11}: * file_format_version = 114 * elif version in {8, 9}: # <<<<<<<<<<<<<< @@ -17921,7 +17984,7 @@ static PyObject *__pyx_pf_10pyreadstat_16_readstat_writer_writer_entry_point(CYT break; default: - /* "pyreadstat/_readstat_writer.pyx":1036 + /* "pyreadstat/_readstat_writer.pyx":1033 * file_format_version = 113 * else: * raise PyreadstatError("Version not supported") # <<<<<<<<<<<<<< @@ -17929,7 +17992,7 @@ static PyObject *__pyx_pf_10pyreadstat_16_readstat_writer_writer_entry_point(CYT * elif writer_format == "xport": */ __pyx_t_5 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1036, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1033, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_6 = 1; #if CYTHON_UNPACK_METHODS @@ -17948,26 +18011,26 @@ static PyObject *__pyx_pf_10pyreadstat_16_readstat_writer_writer_entry_point(CYT __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1036, __pyx_L1_error) + if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1033, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); } __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __PYX_ERR(0, 1036, __pyx_L1_error) + __PYX_ERR(0, 1033, __pyx_L1_error) break; } - /* "pyreadstat/_readstat_writer.pyx":1037 + /* "pyreadstat/_readstat_writer.pyx":1034 * else: * raise PyreadstatError("Version not supported") * note = "" # <<<<<<<<<<<<<< * elif writer_format == "xport": * writer_file_format = FILE_FORMAT_XPORT */ - __Pyx_INCREF(__pyx_mstate_global->__pyx_kp_u__3); - __Pyx_DECREF_SET(__pyx_v_note, __pyx_mstate_global->__pyx_kp_u__3); + __Pyx_INCREF(__pyx_mstate_global->__pyx_kp_u__4); + __Pyx_DECREF_SET(__pyx_v_note, __pyx_mstate_global->__pyx_kp_u__4); - /* "pyreadstat/_readstat_writer.pyx":1021 + /* "pyreadstat/_readstat_writer.pyx":1018 * if row_compress: * row_compression = 1 * elif writer_format == "dta": # <<<<<<<<<<<<<< @@ -17977,17 +18040,17 @@ static PyObject *__pyx_pf_10pyreadstat_16_readstat_writer_writer_entry_point(CYT goto __pyx_L3; } - /* "pyreadstat/_readstat_writer.pyx":1038 + /* "pyreadstat/_readstat_writer.pyx":1035 * raise PyreadstatError("Version not supported") * note = "" * elif writer_format == "xport": # <<<<<<<<<<<<<< * writer_file_format = FILE_FORMAT_XPORT * file_format_version = version */ - __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_writer_format, __pyx_mstate_global->__pyx_n_u_xport, Py_EQ)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 1038, __pyx_L1_error) + __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_writer_format, __pyx_mstate_global->__pyx_n_u_xport, Py_EQ)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 1035, __pyx_L1_error) if (__pyx_t_1) { - /* "pyreadstat/_readstat_writer.pyx":1039 + /* "pyreadstat/_readstat_writer.pyx":1036 * note = "" * elif writer_format == "xport": * writer_file_format = FILE_FORMAT_XPORT # <<<<<<<<<<<<<< @@ -17996,7 +18059,7 @@ static PyObject *__pyx_pf_10pyreadstat_16_readstat_writer_writer_entry_point(CYT */ __pyx_v_writer_file_format = __pyx_e_10pyreadstat_16_readstat_writer_FILE_FORMAT_XPORT; - /* "pyreadstat/_readstat_writer.pyx":1040 + /* "pyreadstat/_readstat_writer.pyx":1037 * elif writer_format == "xport": * writer_file_format = FILE_FORMAT_XPORT * file_format_version = version # <<<<<<<<<<<<<< @@ -18005,7 +18068,7 @@ static PyObject *__pyx_pf_10pyreadstat_16_readstat_writer_writer_entry_point(CYT */ __pyx_v_file_format_version = __pyx_v_version; - /* "pyreadstat/_readstat_writer.pyx":1038 + /* "pyreadstat/_readstat_writer.pyx":1035 * raise PyreadstatError("Version not supported") * note = "" * elif writer_format == "xport": # <<<<<<<<<<<<<< @@ -18015,17 +18078,17 @@ static PyObject *__pyx_pf_10pyreadstat_16_readstat_writer_writer_entry_point(CYT goto __pyx_L3; } - /* "pyreadstat/_readstat_writer.pyx":1041 + /* "pyreadstat/_readstat_writer.pyx":1038 * writer_file_format = FILE_FORMAT_XPORT * file_format_version = version * elif writer_format == "por": # <<<<<<<<<<<<<< * writer_file_format = FILE_FORMAT_POR * else: */ - __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_writer_format, __pyx_mstate_global->__pyx_n_u_por, Py_EQ)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 1041, __pyx_L1_error) + __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_writer_format, __pyx_mstate_global->__pyx_n_u_por, Py_EQ)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 1038, __pyx_L1_error) if (likely(__pyx_t_1)) { - /* "pyreadstat/_readstat_writer.pyx":1042 + /* "pyreadstat/_readstat_writer.pyx":1039 * file_format_version = version * elif writer_format == "por": * writer_file_format = FILE_FORMAT_POR # <<<<<<<<<<<<<< @@ -18034,7 +18097,7 @@ static PyObject *__pyx_pf_10pyreadstat_16_readstat_writer_writer_entry_point(CYT */ __pyx_v_writer_file_format = __pyx_e_10pyreadstat_16_readstat_writer_FILE_FORMAT_POR; - /* "pyreadstat/_readstat_writer.pyx":1041 + /* "pyreadstat/_readstat_writer.pyx":1038 * writer_file_format = FILE_FORMAT_XPORT * file_format_version = version * elif writer_format == "por": # <<<<<<<<<<<<<< @@ -18044,7 +18107,7 @@ static PyObject *__pyx_pf_10pyreadstat_16_readstat_writer_writer_entry_point(CYT goto __pyx_L3; } - /* "pyreadstat/_readstat_writer.pyx":1044 + /* "pyreadstat/_readstat_writer.pyx":1041 * writer_file_format = FILE_FORMAT_POR * else: * raise PyreadstatError("wrong writer format") # <<<<<<<<<<<<<< @@ -18053,7 +18116,7 @@ static PyObject *__pyx_pf_10pyreadstat_16_readstat_writer_writer_entry_point(CYT */ /*else*/ { __pyx_t_4 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1044, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1041, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_6 = 1; #if CYTHON_UNPACK_METHODS @@ -18072,25 +18135,25 @@ static PyObject *__pyx_pf_10pyreadstat_16_readstat_writer_writer_entry_point(CYT __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_5, __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1044, __pyx_L1_error) + if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1041, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); } __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __PYX_ERR(0, 1044, __pyx_L1_error) + __PYX_ERR(0, 1041, __pyx_L1_error) } __pyx_L3:; - /* "pyreadstat/_readstat_writer.pyx":1046 + /* "pyreadstat/_readstat_writer.pyx":1043 * raise PyreadstatError("wrong writer format") * * run_write(df, dst_path, writer_file_format, file_label, column_labels, # <<<<<<<<<<<<<< * file_format_version, note, table_name, variable_value_labels, missing_ranges, missing_user_values, * variable_alignment, variable_display_width, variable_measure, variable_format, row_compression) */ - __pyx_t_7 = __pyx_f_10pyreadstat_16_readstat_writer_run_write(__pyx_v_df, __pyx_v_dst_path, __pyx_v_writer_file_format, __pyx_v_file_label, __pyx_v_column_labels, __pyx_v_file_format_version, __pyx_v_note, __pyx_v_table_name, __pyx_v_variable_value_labels, __pyx_v_missing_ranges, __pyx_v_missing_user_values, __pyx_v_variable_alignment, __pyx_v_variable_display_width, __pyx_v_variable_measure, __pyx_v_variable_format, __pyx_v_row_compression); if (unlikely(__pyx_t_7 == ((int)-1) && PyErr_Occurred())) __PYX_ERR(0, 1046, __pyx_L1_error) + __pyx_t_7 = __pyx_f_10pyreadstat_16_readstat_writer_run_write(__pyx_v_df, __pyx_v_dst_path, __pyx_v_writer_file_format, __pyx_v_file_label, __pyx_v_column_labels, __pyx_v_file_format_version, __pyx_v_note, __pyx_v_table_name, __pyx_v_variable_value_labels, __pyx_v_missing_ranges, __pyx_v_missing_user_values, __pyx_v_variable_alignment, __pyx_v_variable_display_width, __pyx_v_variable_measure, __pyx_v_variable_format, __pyx_v_row_compression); if (unlikely(__pyx_t_7 == ((int)-1) && PyErr_Occurred())) __PYX_ERR(0, 1043, __pyx_L1_error) - /* "pyreadstat/_readstat_writer.pyx":995 + /* "pyreadstat/_readstat_writer.pyx":992 * return 0 * * def writer_entry_point(df, dst_path, str writer_format=None, str file_label="", # <<<<<<<<<<<<<< @@ -18699,426 +18762,426 @@ __Pyx_RefNannySetupContext("PyInit__readstat_writer", 0); if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_nw, __pyx_t_2) < (0)) __PYX_ERR(0, 28, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - /* "pyreadstat/_readstat_writer.pyx":31 - * + /* "pyreadstat/_readstat_writer.pyx":32 * from readstat_api cimport * + * from libc.errno cimport errno * from _readstat_parser import ReadstatError, PyreadstatError # <<<<<<<<<<<<<< * from _readstat_parser cimport check_exit_status * */ { PyObject* const __pyx_imported_names[] = {__pyx_mstate_global->__pyx_n_u_ReadstatError,__pyx_mstate_global->__pyx_n_u_PyreadstatError}; - __pyx_t_1 = __Pyx_Import(__pyx_mstate_global->__pyx_n_u_readstat_parser, __pyx_imported_names, 2, __pyx_mstate_global->__pyx_kp_u_pyreadstat__readstat_parser, -1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 31, __pyx_L1_error) + __pyx_t_1 = __Pyx_Import(__pyx_mstate_global->__pyx_n_u_readstat_parser, __pyx_imported_names, 2, __pyx_mstate_global->__pyx_kp_u_pyreadstat__readstat_parser, -1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 32, __pyx_L1_error) } __pyx_t_2 = __pyx_t_1; __Pyx_GOTREF(__pyx_t_2); { PyObject* const __pyx_imported_names[] = {__pyx_mstate_global->__pyx_n_u_ReadstatError,__pyx_mstate_global->__pyx_n_u_PyreadstatError}; for (__pyx_t_3=0; __pyx_t_3 < 2; __pyx_t_3++) { - __pyx_t_4 = __Pyx_ImportFrom(__pyx_t_2, __pyx_imported_names[__pyx_t_3]); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 31, __pyx_L1_error) + __pyx_t_4 = __Pyx_ImportFrom(__pyx_t_2, __pyx_imported_names[__pyx_t_3]); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 32, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_imported_names[__pyx_t_3], __pyx_t_4) < (0)) __PYX_ERR(0, 31, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_imported_names[__pyx_t_3], __pyx_t_4) < (0)) __PYX_ERR(0, 32, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; } } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - /* "pyreadstat/_readstat_writer.pyx":34 + /* "pyreadstat/_readstat_writer.pyx":35 * from _readstat_parser cimport check_exit_status * * cdef set int_types = {nw.Int32, nw.Int16, nw.Int8, nw.UInt16, nw.UInt8, } # <<<<<<<<<<<<<< * cdef set float_types = {nw.Float64, nw.Float32, nw.Decimal, nw.Int128, nw.Int64, nw.UInt128, nw.UInt64, nw.UInt32} * cdef set nat_types = {datetime.datetime, np.datetime64, datetime.time, datetime.date} #pd._libs.tslibs.timestamps.Timestamp, */ - __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_nw); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 34, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_nw); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 35, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_Int32); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 34, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_Int32); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 35, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_nw); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 34, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_nw); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 35, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_Int16); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 34, __pyx_L1_error) + __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_Int16); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 35, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_nw); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 34, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_nw); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 35, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_Int8); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 34, __pyx_L1_error) + __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_Int8); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 35, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_nw); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 34, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_nw); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 35, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_UInt16); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 34, __pyx_L1_error) + __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_UInt16); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 35, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_nw); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 34, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_nw); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 35, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_UInt8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 34, __pyx_L1_error) + __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_UInt8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 35, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = PySet_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 34, __pyx_L1_error) + __pyx_t_2 = PySet_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 35, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - if (PySet_Add(__pyx_t_2, __pyx_t_4) < (0)) __PYX_ERR(0, 34, __pyx_L1_error) + if (PySet_Add(__pyx_t_2, __pyx_t_4) < (0)) __PYX_ERR(0, 35, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (PySet_Add(__pyx_t_2, __pyx_t_6) < (0)) __PYX_ERR(0, 34, __pyx_L1_error) + if (PySet_Add(__pyx_t_2, __pyx_t_6) < (0)) __PYX_ERR(0, 35, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - if (PySet_Add(__pyx_t_2, __pyx_t_7) < (0)) __PYX_ERR(0, 34, __pyx_L1_error) + if (PySet_Add(__pyx_t_2, __pyx_t_7) < (0)) __PYX_ERR(0, 35, __pyx_L1_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - if (PySet_Add(__pyx_t_2, __pyx_t_8) < (0)) __PYX_ERR(0, 34, __pyx_L1_error) + if (PySet_Add(__pyx_t_2, __pyx_t_8) < (0)) __PYX_ERR(0, 35, __pyx_L1_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - if (PySet_Add(__pyx_t_2, __pyx_t_9) < (0)) __PYX_ERR(0, 34, __pyx_L1_error) + if (PySet_Add(__pyx_t_2, __pyx_t_9) < (0)) __PYX_ERR(0, 35, __pyx_L1_error) __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_XGOTREF(__pyx_v_10pyreadstat_16_readstat_writer_int_types); __Pyx_DECREF_SET(__pyx_v_10pyreadstat_16_readstat_writer_int_types, ((PyObject*)__pyx_t_2)); __Pyx_GIVEREF(__pyx_t_2); __pyx_t_2 = 0; - /* "pyreadstat/_readstat_writer.pyx":35 + /* "pyreadstat/_readstat_writer.pyx":36 * * cdef set int_types = {nw.Int32, nw.Int16, nw.Int8, nw.UInt16, nw.UInt8, } * cdef set float_types = {nw.Float64, nw.Float32, nw.Decimal, nw.Int128, nw.Int64, nw.UInt128, nw.UInt64, nw.UInt32} # <<<<<<<<<<<<<< * cdef set nat_types = {datetime.datetime, np.datetime64, datetime.time, datetime.date} #pd._libs.tslibs.timestamps.Timestamp, * cdef set pyrwriter_datetimelike_types = {PYWRITER_DATE, PYWRITER_DATETIME, PYWRITER_TIME, PYWRITER_DATETIME64, PYWRITER_DATE64, PYWRITER_TIME64} */ - __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_nw); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 35, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_nw); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 36, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_Float64); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 35, __pyx_L1_error) + __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_Float64); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 36, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_nw); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 35, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_nw); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 36, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_Float32); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 35, __pyx_L1_error) + __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_Float32); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 36, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_nw); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 35, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_nw); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 36, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_Decimal); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 35, __pyx_L1_error) + __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_Decimal); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 36, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_nw); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 35, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_nw); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 36, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_Int128); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 35, __pyx_L1_error) + __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_Int128); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 36, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_nw); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 35, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_nw); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 36, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_Int64); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 35, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_Int64); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 36, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_nw); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 35, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_nw); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 36, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_UInt128); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 35, __pyx_L1_error) + __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_UInt128); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 36, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_nw); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 35, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_nw); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 36, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_UInt64); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 35, __pyx_L1_error) + __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_UInt64); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 36, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_nw); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 35, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_nw); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 36, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_UInt32); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 35, __pyx_L1_error) + __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_UInt32); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 36, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = PySet_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 35, __pyx_L1_error) + __pyx_t_2 = PySet_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 36, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - if (PySet_Add(__pyx_t_2, __pyx_t_9) < (0)) __PYX_ERR(0, 35, __pyx_L1_error) + if (PySet_Add(__pyx_t_2, __pyx_t_9) < (0)) __PYX_ERR(0, 36, __pyx_L1_error) __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (PySet_Add(__pyx_t_2, __pyx_t_8) < (0)) __PYX_ERR(0, 35, __pyx_L1_error) + if (PySet_Add(__pyx_t_2, __pyx_t_8) < (0)) __PYX_ERR(0, 36, __pyx_L1_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - if (PySet_Add(__pyx_t_2, __pyx_t_7) < (0)) __PYX_ERR(0, 35, __pyx_L1_error) + if (PySet_Add(__pyx_t_2, __pyx_t_7) < (0)) __PYX_ERR(0, 36, __pyx_L1_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - if (PySet_Add(__pyx_t_2, __pyx_t_6) < (0)) __PYX_ERR(0, 35, __pyx_L1_error) + if (PySet_Add(__pyx_t_2, __pyx_t_6) < (0)) __PYX_ERR(0, 36, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - if (PySet_Add(__pyx_t_2, __pyx_t_4) < (0)) __PYX_ERR(0, 35, __pyx_L1_error) + if (PySet_Add(__pyx_t_2, __pyx_t_4) < (0)) __PYX_ERR(0, 36, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (PySet_Add(__pyx_t_2, __pyx_t_10) < (0)) __PYX_ERR(0, 35, __pyx_L1_error) + if (PySet_Add(__pyx_t_2, __pyx_t_10) < (0)) __PYX_ERR(0, 36, __pyx_L1_error) __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - if (PySet_Add(__pyx_t_2, __pyx_t_11) < (0)) __PYX_ERR(0, 35, __pyx_L1_error) + if (PySet_Add(__pyx_t_2, __pyx_t_11) < (0)) __PYX_ERR(0, 36, __pyx_L1_error) __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - if (PySet_Add(__pyx_t_2, __pyx_t_12) < (0)) __PYX_ERR(0, 35, __pyx_L1_error) + if (PySet_Add(__pyx_t_2, __pyx_t_12) < (0)) __PYX_ERR(0, 36, __pyx_L1_error) __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_XGOTREF(__pyx_v_10pyreadstat_16_readstat_writer_float_types); __Pyx_DECREF_SET(__pyx_v_10pyreadstat_16_readstat_writer_float_types, ((PyObject*)__pyx_t_2)); __Pyx_GIVEREF(__pyx_t_2); __pyx_t_2 = 0; - /* "pyreadstat/_readstat_writer.pyx":36 + /* "pyreadstat/_readstat_writer.pyx":37 * cdef set int_types = {nw.Int32, nw.Int16, nw.Int8, nw.UInt16, nw.UInt8, } * cdef set float_types = {nw.Float64, nw.Float32, nw.Decimal, nw.Int128, nw.Int64, nw.UInt128, nw.UInt64, nw.UInt32} * cdef set nat_types = {datetime.datetime, np.datetime64, datetime.time, datetime.date} #pd._libs.tslibs.timestamps.Timestamp, # <<<<<<<<<<<<<< * cdef set pyrwriter_datetimelike_types = {PYWRITER_DATE, PYWRITER_DATETIME, PYWRITER_TIME, PYWRITER_DATETIME64, PYWRITER_DATE64, PYWRITER_TIME64} * cdef set pywriter_numeric_types = {PYWRITER_DOUBLE, PYWRITER_INTEGER, PYWRITER_LOGICAL, PYWRITER_DATE, PYWRITER_DATETIME, PYWRITER_TIME, */ - __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_datetime); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 36, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_datetime); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 37, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_datetime); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 36, __pyx_L1_error) + __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_datetime); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 37, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 36, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 37, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_datetime64); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 36, __pyx_L1_error) + __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_datetime64); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 37, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_datetime); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 36, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_datetime); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 37, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_time); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 36, __pyx_L1_error) + __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_time); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 37, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_datetime); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 36, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_datetime); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 37, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_date); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 36, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_date); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 37, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = PySet_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 36, __pyx_L1_error) + __pyx_t_2 = PySet_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 37, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - if (PySet_Add(__pyx_t_2, __pyx_t_12) < (0)) __PYX_ERR(0, 36, __pyx_L1_error) + if (PySet_Add(__pyx_t_2, __pyx_t_12) < (0)) __PYX_ERR(0, 37, __pyx_L1_error) __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - if (PySet_Add(__pyx_t_2, __pyx_t_11) < (0)) __PYX_ERR(0, 36, __pyx_L1_error) + if (PySet_Add(__pyx_t_2, __pyx_t_11) < (0)) __PYX_ERR(0, 37, __pyx_L1_error) __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - if (PySet_Add(__pyx_t_2, __pyx_t_10) < (0)) __PYX_ERR(0, 36, __pyx_L1_error) + if (PySet_Add(__pyx_t_2, __pyx_t_10) < (0)) __PYX_ERR(0, 37, __pyx_L1_error) __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - if (PySet_Add(__pyx_t_2, __pyx_t_4) < (0)) __PYX_ERR(0, 36, __pyx_L1_error) + if (PySet_Add(__pyx_t_2, __pyx_t_4) < (0)) __PYX_ERR(0, 37, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_XGOTREF(__pyx_v_10pyreadstat_16_readstat_writer_nat_types); __Pyx_DECREF_SET(__pyx_v_10pyreadstat_16_readstat_writer_nat_types, ((PyObject*)__pyx_t_2)); __Pyx_GIVEREF(__pyx_t_2); __pyx_t_2 = 0; - /* "pyreadstat/_readstat_writer.pyx":37 + /* "pyreadstat/_readstat_writer.pyx":38 * cdef set float_types = {nw.Float64, nw.Float32, nw.Decimal, nw.Int128, nw.Int64, nw.UInt128, nw.UInt64, nw.UInt32} * cdef set nat_types = {datetime.datetime, np.datetime64, datetime.time, datetime.date} #pd._libs.tslibs.timestamps.Timestamp, * cdef set pyrwriter_datetimelike_types = {PYWRITER_DATE, PYWRITER_DATETIME, PYWRITER_TIME, PYWRITER_DATETIME64, PYWRITER_DATE64, PYWRITER_TIME64} # <<<<<<<<<<<<<< * cdef set pywriter_numeric_types = {PYWRITER_DOUBLE, PYWRITER_INTEGER, PYWRITER_LOGICAL, PYWRITER_DATE, PYWRITER_DATETIME, PYWRITER_TIME, * PYWRITER_DATETIME64, PYWRITER_DATE64, PYWRITER_TIME64 } */ - __pyx_t_2 = __Pyx_PyLong_From___pyx_t_10pyreadstat_16_readstat_writer_pywriter_variable_type(__pyx_e_10pyreadstat_16_readstat_writer_PYWRITER_DATE); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 37, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From___pyx_t_10pyreadstat_16_readstat_writer_pywriter_variable_type(__pyx_e_10pyreadstat_16_readstat_writer_PYWRITER_DATE); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 38, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_4 = __Pyx_PyLong_From___pyx_t_10pyreadstat_16_readstat_writer_pywriter_variable_type(__pyx_e_10pyreadstat_16_readstat_writer_PYWRITER_DATETIME); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 37, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyLong_From___pyx_t_10pyreadstat_16_readstat_writer_pywriter_variable_type(__pyx_e_10pyreadstat_16_readstat_writer_PYWRITER_DATETIME); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 38, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_10 = __Pyx_PyLong_From___pyx_t_10pyreadstat_16_readstat_writer_pywriter_variable_type(__pyx_e_10pyreadstat_16_readstat_writer_PYWRITER_TIME); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 37, __pyx_L1_error) + __pyx_t_10 = __Pyx_PyLong_From___pyx_t_10pyreadstat_16_readstat_writer_pywriter_variable_type(__pyx_e_10pyreadstat_16_readstat_writer_PYWRITER_TIME); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 38, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); - __pyx_t_11 = __Pyx_PyLong_From___pyx_t_10pyreadstat_16_readstat_writer_pywriter_variable_type(__pyx_e_10pyreadstat_16_readstat_writer_PYWRITER_DATETIME64); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 37, __pyx_L1_error) + __pyx_t_11 = __Pyx_PyLong_From___pyx_t_10pyreadstat_16_readstat_writer_pywriter_variable_type(__pyx_e_10pyreadstat_16_readstat_writer_PYWRITER_DATETIME64); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 38, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); - __pyx_t_12 = __Pyx_PyLong_From___pyx_t_10pyreadstat_16_readstat_writer_pywriter_variable_type(__pyx_e_10pyreadstat_16_readstat_writer_PYWRITER_DATE64); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 37, __pyx_L1_error) + __pyx_t_12 = __Pyx_PyLong_From___pyx_t_10pyreadstat_16_readstat_writer_pywriter_variable_type(__pyx_e_10pyreadstat_16_readstat_writer_PYWRITER_DATE64); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 38, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); - __pyx_t_6 = __Pyx_PyLong_From___pyx_t_10pyreadstat_16_readstat_writer_pywriter_variable_type(__pyx_e_10pyreadstat_16_readstat_writer_PYWRITER_TIME64); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 37, __pyx_L1_error) + __pyx_t_6 = __Pyx_PyLong_From___pyx_t_10pyreadstat_16_readstat_writer_pywriter_variable_type(__pyx_e_10pyreadstat_16_readstat_writer_PYWRITER_TIME64); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 38, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); - __pyx_t_7 = PySet_New(0); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 37, __pyx_L1_error) + __pyx_t_7 = PySet_New(0); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 38, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); - if (PySet_Add(__pyx_t_7, __pyx_t_2) < (0)) __PYX_ERR(0, 37, __pyx_L1_error) + if (PySet_Add(__pyx_t_7, __pyx_t_2) < (0)) __PYX_ERR(0, 38, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (PySet_Add(__pyx_t_7, __pyx_t_4) < (0)) __PYX_ERR(0, 37, __pyx_L1_error) + if (PySet_Add(__pyx_t_7, __pyx_t_4) < (0)) __PYX_ERR(0, 38, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (PySet_Add(__pyx_t_7, __pyx_t_10) < (0)) __PYX_ERR(0, 37, __pyx_L1_error) + if (PySet_Add(__pyx_t_7, __pyx_t_10) < (0)) __PYX_ERR(0, 38, __pyx_L1_error) __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - if (PySet_Add(__pyx_t_7, __pyx_t_11) < (0)) __PYX_ERR(0, 37, __pyx_L1_error) + if (PySet_Add(__pyx_t_7, __pyx_t_11) < (0)) __PYX_ERR(0, 38, __pyx_L1_error) __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - if (PySet_Add(__pyx_t_7, __pyx_t_12) < (0)) __PYX_ERR(0, 37, __pyx_L1_error) + if (PySet_Add(__pyx_t_7, __pyx_t_12) < (0)) __PYX_ERR(0, 38, __pyx_L1_error) __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - if (PySet_Add(__pyx_t_7, __pyx_t_6) < (0)) __PYX_ERR(0, 37, __pyx_L1_error) + if (PySet_Add(__pyx_t_7, __pyx_t_6) < (0)) __PYX_ERR(0, 38, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_XGOTREF(__pyx_v_10pyreadstat_16_readstat_writer_pyrwriter_datetimelike_types); __Pyx_DECREF_SET(__pyx_v_10pyreadstat_16_readstat_writer_pyrwriter_datetimelike_types, ((PyObject*)__pyx_t_7)); __Pyx_GIVEREF(__pyx_t_7); __pyx_t_7 = 0; - /* "pyreadstat/_readstat_writer.pyx":38 + /* "pyreadstat/_readstat_writer.pyx":39 * cdef set nat_types = {datetime.datetime, np.datetime64, datetime.time, datetime.date} #pd._libs.tslibs.timestamps.Timestamp, * cdef set pyrwriter_datetimelike_types = {PYWRITER_DATE, PYWRITER_DATETIME, PYWRITER_TIME, PYWRITER_DATETIME64, PYWRITER_DATE64, PYWRITER_TIME64} * cdef set pywriter_numeric_types = {PYWRITER_DOUBLE, PYWRITER_INTEGER, PYWRITER_LOGICAL, PYWRITER_DATE, PYWRITER_DATETIME, PYWRITER_TIME, # <<<<<<<<<<<<<< * PYWRITER_DATETIME64, PYWRITER_DATE64, PYWRITER_TIME64 } * cdef dict narwhals_to_readstat_types = {PYWRITER_DOUBLE: READSTAT_TYPE_DOUBLE, PYWRITER_INTEGER: READSTAT_TYPE_INT32, */ - __pyx_t_7 = __Pyx_PyLong_From___pyx_t_10pyreadstat_16_readstat_writer_pywriter_variable_type(__pyx_e_10pyreadstat_16_readstat_writer_PYWRITER_DOUBLE); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 38, __pyx_L1_error) + __pyx_t_7 = __Pyx_PyLong_From___pyx_t_10pyreadstat_16_readstat_writer_pywriter_variable_type(__pyx_e_10pyreadstat_16_readstat_writer_PYWRITER_DOUBLE); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 39, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); - __pyx_t_6 = __Pyx_PyLong_From___pyx_t_10pyreadstat_16_readstat_writer_pywriter_variable_type(__pyx_e_10pyreadstat_16_readstat_writer_PYWRITER_INTEGER); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 38, __pyx_L1_error) + __pyx_t_6 = __Pyx_PyLong_From___pyx_t_10pyreadstat_16_readstat_writer_pywriter_variable_type(__pyx_e_10pyreadstat_16_readstat_writer_PYWRITER_INTEGER); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 39, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); - __pyx_t_12 = __Pyx_PyLong_From___pyx_t_10pyreadstat_16_readstat_writer_pywriter_variable_type(__pyx_e_10pyreadstat_16_readstat_writer_PYWRITER_LOGICAL); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 38, __pyx_L1_error) + __pyx_t_12 = __Pyx_PyLong_From___pyx_t_10pyreadstat_16_readstat_writer_pywriter_variable_type(__pyx_e_10pyreadstat_16_readstat_writer_PYWRITER_LOGICAL); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 39, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); - __pyx_t_11 = __Pyx_PyLong_From___pyx_t_10pyreadstat_16_readstat_writer_pywriter_variable_type(__pyx_e_10pyreadstat_16_readstat_writer_PYWRITER_DATE); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 38, __pyx_L1_error) + __pyx_t_11 = __Pyx_PyLong_From___pyx_t_10pyreadstat_16_readstat_writer_pywriter_variable_type(__pyx_e_10pyreadstat_16_readstat_writer_PYWRITER_DATE); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 39, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); - __pyx_t_10 = __Pyx_PyLong_From___pyx_t_10pyreadstat_16_readstat_writer_pywriter_variable_type(__pyx_e_10pyreadstat_16_readstat_writer_PYWRITER_DATETIME); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 38, __pyx_L1_error) + __pyx_t_10 = __Pyx_PyLong_From___pyx_t_10pyreadstat_16_readstat_writer_pywriter_variable_type(__pyx_e_10pyreadstat_16_readstat_writer_PYWRITER_DATETIME); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 39, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); - __pyx_t_4 = __Pyx_PyLong_From___pyx_t_10pyreadstat_16_readstat_writer_pywriter_variable_type(__pyx_e_10pyreadstat_16_readstat_writer_PYWRITER_TIME); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 38, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyLong_From___pyx_t_10pyreadstat_16_readstat_writer_pywriter_variable_type(__pyx_e_10pyreadstat_16_readstat_writer_PYWRITER_TIME); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 39, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - /* "pyreadstat/_readstat_writer.pyx":39 + /* "pyreadstat/_readstat_writer.pyx":40 * cdef set pyrwriter_datetimelike_types = {PYWRITER_DATE, PYWRITER_DATETIME, PYWRITER_TIME, PYWRITER_DATETIME64, PYWRITER_DATE64, PYWRITER_TIME64} * cdef set pywriter_numeric_types = {PYWRITER_DOUBLE, PYWRITER_INTEGER, PYWRITER_LOGICAL, PYWRITER_DATE, PYWRITER_DATETIME, PYWRITER_TIME, * PYWRITER_DATETIME64, PYWRITER_DATE64, PYWRITER_TIME64 } # <<<<<<<<<<<<<< * cdef dict narwhals_to_readstat_types = {PYWRITER_DOUBLE: READSTAT_TYPE_DOUBLE, PYWRITER_INTEGER: READSTAT_TYPE_INT32, * PYWRITER_CHARACTER: READSTAT_TYPE_STRING, PYWRITER_LOGICAL: READSTAT_TYPE_INT32, */ - __pyx_t_2 = __Pyx_PyLong_From___pyx_t_10pyreadstat_16_readstat_writer_pywriter_variable_type(__pyx_e_10pyreadstat_16_readstat_writer_PYWRITER_DATETIME64); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 39, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From___pyx_t_10pyreadstat_16_readstat_writer_pywriter_variable_type(__pyx_e_10pyreadstat_16_readstat_writer_PYWRITER_DATETIME64); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 40, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_8 = __Pyx_PyLong_From___pyx_t_10pyreadstat_16_readstat_writer_pywriter_variable_type(__pyx_e_10pyreadstat_16_readstat_writer_PYWRITER_DATE64); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 39, __pyx_L1_error) + __pyx_t_8 = __Pyx_PyLong_From___pyx_t_10pyreadstat_16_readstat_writer_pywriter_variable_type(__pyx_e_10pyreadstat_16_readstat_writer_PYWRITER_DATE64); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 40, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); - __pyx_t_9 = __Pyx_PyLong_From___pyx_t_10pyreadstat_16_readstat_writer_pywriter_variable_type(__pyx_e_10pyreadstat_16_readstat_writer_PYWRITER_TIME64); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 39, __pyx_L1_error) + __pyx_t_9 = __Pyx_PyLong_From___pyx_t_10pyreadstat_16_readstat_writer_pywriter_variable_type(__pyx_e_10pyreadstat_16_readstat_writer_PYWRITER_TIME64); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 40, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); - __pyx_t_13 = PySet_New(0); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 38, __pyx_L1_error) + __pyx_t_13 = PySet_New(0); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 39, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); - if (PySet_Add(__pyx_t_13, __pyx_t_7) < (0)) __PYX_ERR(0, 38, __pyx_L1_error) + if (PySet_Add(__pyx_t_13, __pyx_t_7) < (0)) __PYX_ERR(0, 39, __pyx_L1_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - if (PySet_Add(__pyx_t_13, __pyx_t_6) < (0)) __PYX_ERR(0, 38, __pyx_L1_error) + if (PySet_Add(__pyx_t_13, __pyx_t_6) < (0)) __PYX_ERR(0, 39, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - if (PySet_Add(__pyx_t_13, __pyx_t_12) < (0)) __PYX_ERR(0, 38, __pyx_L1_error) + if (PySet_Add(__pyx_t_13, __pyx_t_12) < (0)) __PYX_ERR(0, 39, __pyx_L1_error) __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - if (PySet_Add(__pyx_t_13, __pyx_t_11) < (0)) __PYX_ERR(0, 38, __pyx_L1_error) + if (PySet_Add(__pyx_t_13, __pyx_t_11) < (0)) __PYX_ERR(0, 39, __pyx_L1_error) __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - if (PySet_Add(__pyx_t_13, __pyx_t_10) < (0)) __PYX_ERR(0, 38, __pyx_L1_error) + if (PySet_Add(__pyx_t_13, __pyx_t_10) < (0)) __PYX_ERR(0, 39, __pyx_L1_error) __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - if (PySet_Add(__pyx_t_13, __pyx_t_4) < (0)) __PYX_ERR(0, 38, __pyx_L1_error) + if (PySet_Add(__pyx_t_13, __pyx_t_4) < (0)) __PYX_ERR(0, 39, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (PySet_Add(__pyx_t_13, __pyx_t_2) < (0)) __PYX_ERR(0, 38, __pyx_L1_error) + if (PySet_Add(__pyx_t_13, __pyx_t_2) < (0)) __PYX_ERR(0, 39, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (PySet_Add(__pyx_t_13, __pyx_t_8) < (0)) __PYX_ERR(0, 38, __pyx_L1_error) + if (PySet_Add(__pyx_t_13, __pyx_t_8) < (0)) __PYX_ERR(0, 39, __pyx_L1_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - if (PySet_Add(__pyx_t_13, __pyx_t_9) < (0)) __PYX_ERR(0, 38, __pyx_L1_error) + if (PySet_Add(__pyx_t_13, __pyx_t_9) < (0)) __PYX_ERR(0, 39, __pyx_L1_error) __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_XGOTREF(__pyx_v_10pyreadstat_16_readstat_writer_pywriter_numeric_types); __Pyx_DECREF_SET(__pyx_v_10pyreadstat_16_readstat_writer_pywriter_numeric_types, ((PyObject*)__pyx_t_13)); __Pyx_GIVEREF(__pyx_t_13); __pyx_t_13 = 0; - /* "pyreadstat/_readstat_writer.pyx":40 + /* "pyreadstat/_readstat_writer.pyx":41 * cdef set pywriter_numeric_types = {PYWRITER_DOUBLE, PYWRITER_INTEGER, PYWRITER_LOGICAL, PYWRITER_DATE, PYWRITER_DATETIME, PYWRITER_TIME, * PYWRITER_DATETIME64, PYWRITER_DATE64, PYWRITER_TIME64 } * cdef dict narwhals_to_readstat_types = {PYWRITER_DOUBLE: READSTAT_TYPE_DOUBLE, PYWRITER_INTEGER: READSTAT_TYPE_INT32, # <<<<<<<<<<<<<< * PYWRITER_CHARACTER: READSTAT_TYPE_STRING, PYWRITER_LOGICAL: READSTAT_TYPE_INT32, * PYWRITER_DTA_STR_REF: READSTAT_TYPE_STRING_REF, */ - __pyx_t_13 = __Pyx_PyDict_NewPresized(12); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 40, __pyx_L1_error) + __pyx_t_13 = __Pyx_PyDict_NewPresized(12); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 41, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); - __pyx_t_9 = __Pyx_PyLong_From___pyx_t_10pyreadstat_16_readstat_writer_pywriter_variable_type(__pyx_e_10pyreadstat_16_readstat_writer_PYWRITER_DOUBLE); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 40, __pyx_L1_error) + __pyx_t_9 = __Pyx_PyLong_From___pyx_t_10pyreadstat_16_readstat_writer_pywriter_variable_type(__pyx_e_10pyreadstat_16_readstat_writer_PYWRITER_DOUBLE); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 41, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); - __pyx_t_8 = __Pyx_PyLong_From_readstat_type_t(READSTAT_TYPE_DOUBLE); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 40, __pyx_L1_error) + __pyx_t_8 = __Pyx_PyLong_From_readstat_type_t(READSTAT_TYPE_DOUBLE); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 41, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); - if (PyDict_SetItem(__pyx_t_13, __pyx_t_9, __pyx_t_8) < (0)) __PYX_ERR(0, 40, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_13, __pyx_t_9, __pyx_t_8) < (0)) __PYX_ERR(0, 41, __pyx_L1_error) __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - __pyx_t_8 = __Pyx_PyLong_From___pyx_t_10pyreadstat_16_readstat_writer_pywriter_variable_type(__pyx_e_10pyreadstat_16_readstat_writer_PYWRITER_INTEGER); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 40, __pyx_L1_error) + __pyx_t_8 = __Pyx_PyLong_From___pyx_t_10pyreadstat_16_readstat_writer_pywriter_variable_type(__pyx_e_10pyreadstat_16_readstat_writer_PYWRITER_INTEGER); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 41, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); - __pyx_t_9 = __Pyx_PyLong_From_readstat_type_t(READSTAT_TYPE_INT32); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 40, __pyx_L1_error) + __pyx_t_9 = __Pyx_PyLong_From_readstat_type_t(READSTAT_TYPE_INT32); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 41, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); - if (PyDict_SetItem(__pyx_t_13, __pyx_t_8, __pyx_t_9) < (0)) __PYX_ERR(0, 40, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_13, __pyx_t_8, __pyx_t_9) < (0)) __PYX_ERR(0, 41, __pyx_L1_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - /* "pyreadstat/_readstat_writer.pyx":41 + /* "pyreadstat/_readstat_writer.pyx":42 * PYWRITER_DATETIME64, PYWRITER_DATE64, PYWRITER_TIME64 } * cdef dict narwhals_to_readstat_types = {PYWRITER_DOUBLE: READSTAT_TYPE_DOUBLE, PYWRITER_INTEGER: READSTAT_TYPE_INT32, * PYWRITER_CHARACTER: READSTAT_TYPE_STRING, PYWRITER_LOGICAL: READSTAT_TYPE_INT32, # <<<<<<<<<<<<<< * PYWRITER_DTA_STR_REF: READSTAT_TYPE_STRING_REF, * PYWRITER_OBJECT: READSTAT_TYPE_STRING, PYWRITER_DATE: READSTAT_TYPE_DOUBLE, */ - __pyx_t_9 = __Pyx_PyLong_From___pyx_t_10pyreadstat_16_readstat_writer_pywriter_variable_type(__pyx_e_10pyreadstat_16_readstat_writer_PYWRITER_CHARACTER); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 41, __pyx_L1_error) + __pyx_t_9 = __Pyx_PyLong_From___pyx_t_10pyreadstat_16_readstat_writer_pywriter_variable_type(__pyx_e_10pyreadstat_16_readstat_writer_PYWRITER_CHARACTER); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 42, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); - __pyx_t_8 = __Pyx_PyLong_From_readstat_type_t(READSTAT_TYPE_STRING); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 41, __pyx_L1_error) + __pyx_t_8 = __Pyx_PyLong_From_readstat_type_t(READSTAT_TYPE_STRING); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 42, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); - if (PyDict_SetItem(__pyx_t_13, __pyx_t_9, __pyx_t_8) < (0)) __PYX_ERR(0, 40, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_13, __pyx_t_9, __pyx_t_8) < (0)) __PYX_ERR(0, 41, __pyx_L1_error) __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - __pyx_t_8 = __Pyx_PyLong_From___pyx_t_10pyreadstat_16_readstat_writer_pywriter_variable_type(__pyx_e_10pyreadstat_16_readstat_writer_PYWRITER_LOGICAL); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 41, __pyx_L1_error) + __pyx_t_8 = __Pyx_PyLong_From___pyx_t_10pyreadstat_16_readstat_writer_pywriter_variable_type(__pyx_e_10pyreadstat_16_readstat_writer_PYWRITER_LOGICAL); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 42, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); - __pyx_t_9 = __Pyx_PyLong_From_readstat_type_t(READSTAT_TYPE_INT32); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 41, __pyx_L1_error) + __pyx_t_9 = __Pyx_PyLong_From_readstat_type_t(READSTAT_TYPE_INT32); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 42, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); - if (PyDict_SetItem(__pyx_t_13, __pyx_t_8, __pyx_t_9) < (0)) __PYX_ERR(0, 40, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_13, __pyx_t_8, __pyx_t_9) < (0)) __PYX_ERR(0, 41, __pyx_L1_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - /* "pyreadstat/_readstat_writer.pyx":42 + /* "pyreadstat/_readstat_writer.pyx":43 * cdef dict narwhals_to_readstat_types = {PYWRITER_DOUBLE: READSTAT_TYPE_DOUBLE, PYWRITER_INTEGER: READSTAT_TYPE_INT32, * PYWRITER_CHARACTER: READSTAT_TYPE_STRING, PYWRITER_LOGICAL: READSTAT_TYPE_INT32, * PYWRITER_DTA_STR_REF: READSTAT_TYPE_STRING_REF, # <<<<<<<<<<<<<< * PYWRITER_OBJECT: READSTAT_TYPE_STRING, PYWRITER_DATE: READSTAT_TYPE_DOUBLE, * PYWRITER_DATETIME: READSTAT_TYPE_DOUBLE, PYWRITER_TIME: READSTAT_TYPE_DOUBLE, */ - __pyx_t_9 = __Pyx_PyLong_From___pyx_t_10pyreadstat_16_readstat_writer_pywriter_variable_type(__pyx_e_10pyreadstat_16_readstat_writer_PYWRITER_DTA_STR_REF); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 42, __pyx_L1_error) + __pyx_t_9 = __Pyx_PyLong_From___pyx_t_10pyreadstat_16_readstat_writer_pywriter_variable_type(__pyx_e_10pyreadstat_16_readstat_writer_PYWRITER_DTA_STR_REF); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 43, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); - __pyx_t_8 = __Pyx_PyLong_From_readstat_type_t(READSTAT_TYPE_STRING_REF); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 42, __pyx_L1_error) + __pyx_t_8 = __Pyx_PyLong_From_readstat_type_t(READSTAT_TYPE_STRING_REF); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 43, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); - if (PyDict_SetItem(__pyx_t_13, __pyx_t_9, __pyx_t_8) < (0)) __PYX_ERR(0, 40, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_13, __pyx_t_9, __pyx_t_8) < (0)) __PYX_ERR(0, 41, __pyx_L1_error) __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - /* "pyreadstat/_readstat_writer.pyx":43 + /* "pyreadstat/_readstat_writer.pyx":44 * PYWRITER_CHARACTER: READSTAT_TYPE_STRING, PYWRITER_LOGICAL: READSTAT_TYPE_INT32, * PYWRITER_DTA_STR_REF: READSTAT_TYPE_STRING_REF, * PYWRITER_OBJECT: READSTAT_TYPE_STRING, PYWRITER_DATE: READSTAT_TYPE_DOUBLE, # <<<<<<<<<<<<<< * PYWRITER_DATETIME: READSTAT_TYPE_DOUBLE, PYWRITER_TIME: READSTAT_TYPE_DOUBLE, * PYWRITER_DATETIME64: READSTAT_TYPE_DOUBLE, PYWRITER_DATE64: READSTAT_TYPE_DOUBLE, */ - __pyx_t_8 = __Pyx_PyLong_From___pyx_t_10pyreadstat_16_readstat_writer_pywriter_variable_type(__pyx_e_10pyreadstat_16_readstat_writer_PYWRITER_OBJECT); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 43, __pyx_L1_error) + __pyx_t_8 = __Pyx_PyLong_From___pyx_t_10pyreadstat_16_readstat_writer_pywriter_variable_type(__pyx_e_10pyreadstat_16_readstat_writer_PYWRITER_OBJECT); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 44, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); - __pyx_t_9 = __Pyx_PyLong_From_readstat_type_t(READSTAT_TYPE_STRING); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 43, __pyx_L1_error) + __pyx_t_9 = __Pyx_PyLong_From_readstat_type_t(READSTAT_TYPE_STRING); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 44, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); - if (PyDict_SetItem(__pyx_t_13, __pyx_t_8, __pyx_t_9) < (0)) __PYX_ERR(0, 40, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_13, __pyx_t_8, __pyx_t_9) < (0)) __PYX_ERR(0, 41, __pyx_L1_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_9 = __Pyx_PyLong_From___pyx_t_10pyreadstat_16_readstat_writer_pywriter_variable_type(__pyx_e_10pyreadstat_16_readstat_writer_PYWRITER_DATE); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 43, __pyx_L1_error) + __pyx_t_9 = __Pyx_PyLong_From___pyx_t_10pyreadstat_16_readstat_writer_pywriter_variable_type(__pyx_e_10pyreadstat_16_readstat_writer_PYWRITER_DATE); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 44, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); - __pyx_t_8 = __Pyx_PyLong_From_readstat_type_t(READSTAT_TYPE_DOUBLE); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 43, __pyx_L1_error) + __pyx_t_8 = __Pyx_PyLong_From_readstat_type_t(READSTAT_TYPE_DOUBLE); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 44, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); - if (PyDict_SetItem(__pyx_t_13, __pyx_t_9, __pyx_t_8) < (0)) __PYX_ERR(0, 40, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_13, __pyx_t_9, __pyx_t_8) < (0)) __PYX_ERR(0, 41, __pyx_L1_error) __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - /* "pyreadstat/_readstat_writer.pyx":44 + /* "pyreadstat/_readstat_writer.pyx":45 * PYWRITER_DTA_STR_REF: READSTAT_TYPE_STRING_REF, * PYWRITER_OBJECT: READSTAT_TYPE_STRING, PYWRITER_DATE: READSTAT_TYPE_DOUBLE, * PYWRITER_DATETIME: READSTAT_TYPE_DOUBLE, PYWRITER_TIME: READSTAT_TYPE_DOUBLE, # <<<<<<<<<<<<<< * PYWRITER_DATETIME64: READSTAT_TYPE_DOUBLE, PYWRITER_DATE64: READSTAT_TYPE_DOUBLE, * PYWRITER_TIME64: READSTAT_TYPE_DOUBLE, } */ - __pyx_t_8 = __Pyx_PyLong_From___pyx_t_10pyreadstat_16_readstat_writer_pywriter_variable_type(__pyx_e_10pyreadstat_16_readstat_writer_PYWRITER_DATETIME); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 44, __pyx_L1_error) + __pyx_t_8 = __Pyx_PyLong_From___pyx_t_10pyreadstat_16_readstat_writer_pywriter_variable_type(__pyx_e_10pyreadstat_16_readstat_writer_PYWRITER_DATETIME); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 45, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); - __pyx_t_9 = __Pyx_PyLong_From_readstat_type_t(READSTAT_TYPE_DOUBLE); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 44, __pyx_L1_error) + __pyx_t_9 = __Pyx_PyLong_From_readstat_type_t(READSTAT_TYPE_DOUBLE); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 45, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); - if (PyDict_SetItem(__pyx_t_13, __pyx_t_8, __pyx_t_9) < (0)) __PYX_ERR(0, 40, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_13, __pyx_t_8, __pyx_t_9) < (0)) __PYX_ERR(0, 41, __pyx_L1_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_9 = __Pyx_PyLong_From___pyx_t_10pyreadstat_16_readstat_writer_pywriter_variable_type(__pyx_e_10pyreadstat_16_readstat_writer_PYWRITER_TIME); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 44, __pyx_L1_error) + __pyx_t_9 = __Pyx_PyLong_From___pyx_t_10pyreadstat_16_readstat_writer_pywriter_variable_type(__pyx_e_10pyreadstat_16_readstat_writer_PYWRITER_TIME); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 45, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); - __pyx_t_8 = __Pyx_PyLong_From_readstat_type_t(READSTAT_TYPE_DOUBLE); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 44, __pyx_L1_error) + __pyx_t_8 = __Pyx_PyLong_From_readstat_type_t(READSTAT_TYPE_DOUBLE); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 45, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); - if (PyDict_SetItem(__pyx_t_13, __pyx_t_9, __pyx_t_8) < (0)) __PYX_ERR(0, 40, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_13, __pyx_t_9, __pyx_t_8) < (0)) __PYX_ERR(0, 41, __pyx_L1_error) __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - /* "pyreadstat/_readstat_writer.pyx":45 + /* "pyreadstat/_readstat_writer.pyx":46 * PYWRITER_OBJECT: READSTAT_TYPE_STRING, PYWRITER_DATE: READSTAT_TYPE_DOUBLE, * PYWRITER_DATETIME: READSTAT_TYPE_DOUBLE, PYWRITER_TIME: READSTAT_TYPE_DOUBLE, * PYWRITER_DATETIME64: READSTAT_TYPE_DOUBLE, PYWRITER_DATE64: READSTAT_TYPE_DOUBLE, # <<<<<<<<<<<<<< * PYWRITER_TIME64: READSTAT_TYPE_DOUBLE, } * */ - __pyx_t_8 = __Pyx_PyLong_From___pyx_t_10pyreadstat_16_readstat_writer_pywriter_variable_type(__pyx_e_10pyreadstat_16_readstat_writer_PYWRITER_DATETIME64); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 45, __pyx_L1_error) + __pyx_t_8 = __Pyx_PyLong_From___pyx_t_10pyreadstat_16_readstat_writer_pywriter_variable_type(__pyx_e_10pyreadstat_16_readstat_writer_PYWRITER_DATETIME64); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 46, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); - __pyx_t_9 = __Pyx_PyLong_From_readstat_type_t(READSTAT_TYPE_DOUBLE); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 45, __pyx_L1_error) + __pyx_t_9 = __Pyx_PyLong_From_readstat_type_t(READSTAT_TYPE_DOUBLE); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 46, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); - if (PyDict_SetItem(__pyx_t_13, __pyx_t_8, __pyx_t_9) < (0)) __PYX_ERR(0, 40, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_13, __pyx_t_8, __pyx_t_9) < (0)) __PYX_ERR(0, 41, __pyx_L1_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_9 = __Pyx_PyLong_From___pyx_t_10pyreadstat_16_readstat_writer_pywriter_variable_type(__pyx_e_10pyreadstat_16_readstat_writer_PYWRITER_DATE64); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 45, __pyx_L1_error) + __pyx_t_9 = __Pyx_PyLong_From___pyx_t_10pyreadstat_16_readstat_writer_pywriter_variable_type(__pyx_e_10pyreadstat_16_readstat_writer_PYWRITER_DATE64); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 46, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); - __pyx_t_8 = __Pyx_PyLong_From_readstat_type_t(READSTAT_TYPE_DOUBLE); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 45, __pyx_L1_error) + __pyx_t_8 = __Pyx_PyLong_From_readstat_type_t(READSTAT_TYPE_DOUBLE); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 46, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); - if (PyDict_SetItem(__pyx_t_13, __pyx_t_9, __pyx_t_8) < (0)) __PYX_ERR(0, 40, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_13, __pyx_t_9, __pyx_t_8) < (0)) __PYX_ERR(0, 41, __pyx_L1_error) __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - /* "pyreadstat/_readstat_writer.pyx":46 + /* "pyreadstat/_readstat_writer.pyx":47 * PYWRITER_DATETIME: READSTAT_TYPE_DOUBLE, PYWRITER_TIME: READSTAT_TYPE_DOUBLE, * PYWRITER_DATETIME64: READSTAT_TYPE_DOUBLE, PYWRITER_DATE64: READSTAT_TYPE_DOUBLE, * PYWRITER_TIME64: READSTAT_TYPE_DOUBLE, } # <<<<<<<<<<<<<< * * cdef double spss_offset_secs = 12219379200 */ - __pyx_t_8 = __Pyx_PyLong_From___pyx_t_10pyreadstat_16_readstat_writer_pywriter_variable_type(__pyx_e_10pyreadstat_16_readstat_writer_PYWRITER_TIME64); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 46, __pyx_L1_error) + __pyx_t_8 = __Pyx_PyLong_From___pyx_t_10pyreadstat_16_readstat_writer_pywriter_variable_type(__pyx_e_10pyreadstat_16_readstat_writer_PYWRITER_TIME64); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 47, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); - __pyx_t_9 = __Pyx_PyLong_From_readstat_type_t(READSTAT_TYPE_DOUBLE); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 46, __pyx_L1_error) + __pyx_t_9 = __Pyx_PyLong_From_readstat_type_t(READSTAT_TYPE_DOUBLE); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 47, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); - if (PyDict_SetItem(__pyx_t_13, __pyx_t_8, __pyx_t_9) < (0)) __PYX_ERR(0, 40, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_13, __pyx_t_8, __pyx_t_9) < (0)) __PYX_ERR(0, 41, __pyx_L1_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_XGOTREF(__pyx_v_10pyreadstat_16_readstat_writer_narwhals_to_readstat_types); @@ -19126,7 +19189,7 @@ __Pyx_RefNannySetupContext("PyInit__readstat_writer", 0); __Pyx_GIVEREF(__pyx_t_13); __pyx_t_13 = 0; - /* "pyreadstat/_readstat_writer.pyx":48 + /* "pyreadstat/_readstat_writer.pyx":49 * PYWRITER_TIME64: READSTAT_TYPE_DOUBLE, } * * cdef double spss_offset_secs = 12219379200 # <<<<<<<<<<<<<< @@ -19135,7 +19198,7 @@ __Pyx_RefNannySetupContext("PyInit__readstat_writer", 0); */ __pyx_v_10pyreadstat_16_readstat_writer_spss_offset_secs = 12219379200.0; - /* "pyreadstat/_readstat_writer.pyx":49 + /* "pyreadstat/_readstat_writer.pyx":50 * * cdef double spss_offset_secs = 12219379200 * cdef double sas_offset_secs = 315619200 # <<<<<<<<<<<<<< @@ -19144,7 +19207,7 @@ __Pyx_RefNannySetupContext("PyInit__readstat_writer", 0); */ __pyx_v_10pyreadstat_16_readstat_writer_sas_offset_secs = 315619200.0; - /* "pyreadstat/_readstat_writer.pyx":50 + /* "pyreadstat/_readstat_writer.pyx":51 * cdef double spss_offset_secs = 12219379200 * cdef double sas_offset_secs = 315619200 * cdef double spss_offset_days = 141428 # <<<<<<<<<<<<<< @@ -19153,7 +19216,7 @@ __Pyx_RefNannySetupContext("PyInit__readstat_writer", 0); */ __pyx_v_10pyreadstat_16_readstat_writer_spss_offset_days = 141428.0; - /* "pyreadstat/_readstat_writer.pyx":51 + /* "pyreadstat/_readstat_writer.pyx":52 * cdef double sas_offset_secs = 315619200 * cdef double spss_offset_days = 141428 * cdef double sas_offset_days = 3653 # <<<<<<<<<<<<<< @@ -19162,19 +19225,19 @@ __Pyx_RefNannySetupContext("PyInit__readstat_writer", 0); */ __pyx_v_10pyreadstat_16_readstat_writer_sas_offset_days = 3653.0; - /* "pyreadstat/_readstat_writer.pyx":52 + /* "pyreadstat/_readstat_writer.pyx":53 * cdef double spss_offset_days = 141428 * cdef double sas_offset_days = 3653 * cdef object date_0 = datetime.datetime(1970,1,1).date() # <<<<<<<<<<<<<< * * cdef valid_user_missing_sas = [chr(x) for x in range(ord("A"), ord("Z")+1)] + ["_"] */ - __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_datetime); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 52, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_datetime); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 53, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_datetime); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 52, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_datetime); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 53, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_mstate_global->__pyx_tuple[1], NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 52, __pyx_L1_error) + __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_mstate_global->__pyx_tuple[1], NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 53, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_9 = __pyx_t_8; @@ -19185,7 +19248,7 @@ __Pyx_RefNannySetupContext("PyInit__readstat_writer", 0); __pyx_t_13 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_date, __pyx_callargs+__pyx_t_14, (1-__pyx_t_14) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 52, __pyx_L1_error) + if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 53, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); } __Pyx_XGOTREF(__pyx_v_10pyreadstat_16_readstat_writer_date_0); @@ -19193,17 +19256,17 @@ __Pyx_RefNannySetupContext("PyInit__readstat_writer", 0); __Pyx_GIVEREF(__pyx_t_13); __pyx_t_13 = 0; - /* "pyreadstat/_readstat_writer.pyx":54 + /* "pyreadstat/_readstat_writer.pyx":55 * cdef object date_0 = datetime.datetime(1970,1,1).date() * * cdef valid_user_missing_sas = [chr(x) for x in range(ord("A"), ord("Z")+1)] + ["_"] # <<<<<<<<<<<<<< * cdef valid_user_missing_stata = [chr(x) for x in range(ord("a"), ord("z")+1)] * */ - __pyx_t_13 = PyList_New(0); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 54, __pyx_L1_error) + __pyx_t_13 = PyList_New(0); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 55, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __pyx_t_9 = NULL; - __pyx_t_2 = __Pyx_PyLong_From_long((90 + 1)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 54, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_long((90 + 1)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 55, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_14 = 1; { @@ -19211,12 +19274,12 @@ __Pyx_RefNannySetupContext("PyInit__readstat_writer", 0); __pyx_t_8 = __Pyx_PyObject_FastCall((PyObject*)(&PyRange_Type), __pyx_callargs+__pyx_t_14, (3-__pyx_t_14) | (__pyx_t_14*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 54, __pyx_L1_error) + if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 55, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); } - __pyx_t_2 = PyObject_GetIter(__pyx_t_8); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 54, __pyx_L1_error) + __pyx_t_2 = PyObject_GetIter(__pyx_t_8); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 55, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_15 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_2); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 54, __pyx_L1_error) + __pyx_t_15 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_2); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 55, __pyx_L1_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; for (;;) { { @@ -19224,28 +19287,28 @@ __Pyx_RefNannySetupContext("PyInit__readstat_writer", 0); if (unlikely(!__pyx_t_8)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { - if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(0, 54, __pyx_L1_error) + if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(0, 55, __pyx_L1_error) PyErr_Clear(); } break; } } __Pyx_GOTREF(__pyx_t_8); - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_x, __pyx_t_8) < (0)) __PYX_ERR(0, 54, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_x, __pyx_t_8) < (0)) __PYX_ERR(0, 55, __pyx_L1_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_x); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 54, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_x); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 55, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); - __pyx_t_16 = __Pyx_PyLong_As_int(__pyx_t_8); if (unlikely((__pyx_t_16 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 54, __pyx_L1_error) + __pyx_t_16 = __Pyx_PyLong_As_int(__pyx_t_8); if (unlikely((__pyx_t_16 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 55, __pyx_L1_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - __pyx_t_8 = PyUnicode_FromOrdinal(__pyx_t_16); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 54, __pyx_L1_error) + __pyx_t_8 = PyUnicode_FromOrdinal(__pyx_t_16); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 55, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); - if (unlikely(__Pyx_ListComp_Append(__pyx_t_13, (PyObject*)__pyx_t_8))) __PYX_ERR(0, 54, __pyx_L1_error) + if (unlikely(__Pyx_ListComp_Append(__pyx_t_13, (PyObject*)__pyx_t_8))) __PYX_ERR(0, 55, __pyx_L1_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_PyList_Pack(1, __pyx_mstate_global->__pyx_n_u__5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 54, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyList_Pack(1, __pyx_mstate_global->__pyx_n_u_); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 55, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_8 = PyNumber_Add(__pyx_t_13, __pyx_t_2); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 54, __pyx_L1_error) + __pyx_t_8 = PyNumber_Add(__pyx_t_13, __pyx_t_2); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 55, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -19254,17 +19317,17 @@ __Pyx_RefNannySetupContext("PyInit__readstat_writer", 0); __Pyx_GIVEREF(__pyx_t_8); __pyx_t_8 = 0; - /* "pyreadstat/_readstat_writer.pyx":55 + /* "pyreadstat/_readstat_writer.pyx":56 * * cdef valid_user_missing_sas = [chr(x) for x in range(ord("A"), ord("Z")+1)] + ["_"] * cdef valid_user_missing_stata = [chr(x) for x in range(ord("a"), ord("z")+1)] # <<<<<<<<<<<<<< * * # max lenght of a string in dta before it has to use string_ref */ - __pyx_t_8 = PyList_New(0); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 55, __pyx_L1_error) + __pyx_t_8 = PyList_New(0); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 56, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_13 = NULL; - __pyx_t_9 = __Pyx_PyLong_From_long((0x7A + 1)); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 55, __pyx_L1_error) + __pyx_t_9 = __Pyx_PyLong_From_long((0x7A + 1)); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 56, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_14 = 1; { @@ -19272,12 +19335,12 @@ __Pyx_RefNannySetupContext("PyInit__readstat_writer", 0); __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)(&PyRange_Type), __pyx_callargs+__pyx_t_14, (3-__pyx_t_14) | (__pyx_t_14*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 55, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 56, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } - __pyx_t_9 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 55, __pyx_L1_error) + __pyx_t_9 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 56, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); - __pyx_t_15 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_9); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 55, __pyx_L1_error) + __pyx_t_15 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_9); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 56, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; for (;;) { { @@ -19285,22 +19348,22 @@ __Pyx_RefNannySetupContext("PyInit__readstat_writer", 0); if (unlikely(!__pyx_t_2)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { - if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(0, 55, __pyx_L1_error) + if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(0, 56, __pyx_L1_error) PyErr_Clear(); } break; } } __Pyx_GOTREF(__pyx_t_2); - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_x, __pyx_t_2) < (0)) __PYX_ERR(0, 55, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_x, __pyx_t_2) < (0)) __PYX_ERR(0, 56, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_x); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 55, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_x); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 56, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_16 = __Pyx_PyLong_As_int(__pyx_t_2); if (unlikely((__pyx_t_16 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 55, __pyx_L1_error) + __pyx_t_16 = __Pyx_PyLong_As_int(__pyx_t_2); if (unlikely((__pyx_t_16 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 56, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = PyUnicode_FromOrdinal(__pyx_t_16); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 55, __pyx_L1_error) + __pyx_t_2 = PyUnicode_FromOrdinal(__pyx_t_16); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 56, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - if (unlikely(__Pyx_ListComp_Append(__pyx_t_8, (PyObject*)__pyx_t_2))) __PYX_ERR(0, 55, __pyx_L1_error) + if (unlikely(__Pyx_ListComp_Append(__pyx_t_8, (PyObject*)__pyx_t_2))) __PYX_ERR(0, 56, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; @@ -19309,7 +19372,7 @@ __Pyx_RefNannySetupContext("PyInit__readstat_writer", 0); __Pyx_GIVEREF(__pyx_t_8); __pyx_t_8 = 0; - /* "pyreadstat/_readstat_writer.pyx":58 + /* "pyreadstat/_readstat_writer.pyx":59 * * # max lenght of a string in dta before it has to use string_ref * cdef int dta_old_max_width = 128 # <<<<<<<<<<<<<< @@ -19318,7 +19381,7 @@ __Pyx_RefNannySetupContext("PyInit__readstat_writer", 0); */ __pyx_v_10pyreadstat_16_readstat_writer_dta_old_max_width = 0x80; - /* "pyreadstat/_readstat_writer.pyx":59 + /* "pyreadstat/_readstat_writer.pyx":60 * # max lenght of a string in dta before it has to use string_ref * cdef int dta_old_max_width = 128 * cdef int dta_111_max_width = 244 # <<<<<<<<<<<<<< @@ -19327,7 +19390,7 @@ __Pyx_RefNannySetupContext("PyInit__readstat_writer", 0); */ __pyx_v_10pyreadstat_16_readstat_writer_dta_111_max_width = 0xF4; - /* "pyreadstat/_readstat_writer.pyx":60 + /* "pyreadstat/_readstat_writer.pyx":61 * cdef int dta_old_max_width = 128 * cdef int dta_111_max_width = 244 * cdef int dta_117_max_width = 2045 # <<<<<<<<<<<<<< @@ -19336,34 +19399,34 @@ __Pyx_RefNannySetupContext("PyInit__readstat_writer", 0); */ __pyx_v_10pyreadstat_16_readstat_writer_dta_117_max_width = 0x7FD; - /* "pyreadstat/_readstat_writer.pyx":996 + /* "pyreadstat/_readstat_writer.pyx":993 * * def writer_entry_point(df, dst_path, str writer_format=None, str file_label="", * int version=0, # <<<<<<<<<<<<<< * str table_name=None, * object column_labels=None, compress=False, row_compress=False, object note=None, */ - __pyx_t_8 = __Pyx_PyLong_From_int(((int)0)); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 996, __pyx_L1_error) + __pyx_t_8 = __Pyx_PyLong_From_int(((int)0)); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 993, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); - /* "pyreadstat/_readstat_writer.pyx":995 + /* "pyreadstat/_readstat_writer.pyx":992 * return 0 * * def writer_entry_point(df, dst_path, str writer_format=None, str file_label="", # <<<<<<<<<<<<<< * int version=0, * str table_name=None, */ - __pyx_t_9 = PyTuple_Pack(15, Py_None, ((PyObject*)__pyx_mstate_global->__pyx_kp_u__3), __pyx_t_8, Py_None, Py_None, ((PyObject*)Py_False), ((PyObject*)Py_False), Py_None, Py_None, Py_None, Py_None, Py_None, Py_None, Py_None, Py_None); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 995, __pyx_L1_error) + __pyx_t_9 = PyTuple_Pack(15, Py_None, ((PyObject*)__pyx_mstate_global->__pyx_kp_u__4), __pyx_t_8, Py_None, Py_None, ((PyObject*)Py_False), ((PyObject*)Py_False), Py_None, Py_None, Py_None, Py_None, Py_None, Py_None, Py_None, Py_None); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 992, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - __pyx_t_8 = __Pyx_CyFunction_New(&__pyx_mdef_10pyreadstat_16_readstat_writer_1writer_entry_point, 0, __pyx_mstate_global->__pyx_n_u_writer_entry_point, NULL, __pyx_mstate_global->__pyx_n_u_pyreadstat__readstat_writer, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[0])); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 995, __pyx_L1_error) + __pyx_t_8 = __Pyx_CyFunction_New(&__pyx_mdef_10pyreadstat_16_readstat_writer_1writer_entry_point, 0, __pyx_mstate_global->__pyx_n_u_writer_entry_point, NULL, __pyx_mstate_global->__pyx_n_u_pyreadstat__readstat_writer, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[0])); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 992, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_8); #endif __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_8, __pyx_t_9); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_writer_entry_point, __pyx_t_8) < (0)) __PYX_ERR(0, 995, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_writer_entry_point, __pyx_t_8) < (0)) __PYX_ERR(0, 992, __pyx_L1_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; /* "pyreadstat/_readstat_writer.pyx":1 @@ -19421,7 +19484,7 @@ __Pyx_RefNannySetupContext("PyInit__readstat_writer", 0); static int __Pyx_InitCachedBuiltins(__pyx_mstatetype *__pyx_mstate) { CYTHON_UNUSED_VAR(__pyx_mstate); - __pyx_builtin_zip = __Pyx_GetBuiltinName(__pyx_mstate->__pyx_n_u_zip); if (!__pyx_builtin_zip) __PYX_ERR(0, 740, __pyx_L1_error) + __pyx_builtin_zip = __Pyx_GetBuiltinName(__pyx_mstate->__pyx_n_u_zip); if (!__pyx_builtin_zip) __PYX_ERR(0, 732, __pyx_L1_error) /* Cached unbound methods */ __pyx_mstate->__pyx_umethod_PyDict_Type_get.type = (PyObject*)&PyDict_Type; @@ -19445,25 +19508,25 @@ static int __Pyx_InitCachedConstants(__pyx_mstatetype *__pyx_mstate) { CYTHON_UNUSED_VAR(__pyx_mstate); __Pyx_RefNannySetupContext("__Pyx_InitCachedConstants", 0); - /* "pyreadstat/_readstat_writer.pyx":674 + /* "pyreadstat/_readstat_writer.pyx":666 * except UnicodeError: * warnings.warn("file path could not be encoded with %s which is set as your system encoding, trying to encode it as utf-8. Please set your system encoding correctly." % sys.getfilesystemencoding()) * filename_bytes = os.fsdecode(filename_path).encode("utf-8", "surrogateescape") # <<<<<<<<<<<<<< * else: * if type(filename_path) == str: */ - __pyx_mstate_global->__pyx_tuple[0] = PyTuple_Pack(2, __pyx_mstate_global->__pyx_kp_u_utf_8, __pyx_mstate_global->__pyx_n_u_surrogateescape); if (unlikely(!__pyx_mstate_global->__pyx_tuple[0])) __PYX_ERR(0, 674, __pyx_L1_error) + __pyx_mstate_global->__pyx_tuple[0] = PyTuple_Pack(2, __pyx_mstate_global->__pyx_kp_u_utf_8, __pyx_mstate_global->__pyx_n_u_surrogateescape); if (unlikely(!__pyx_mstate_global->__pyx_tuple[0])) __PYX_ERR(0, 666, __pyx_L1_error) __Pyx_GOTREF(__pyx_mstate_global->__pyx_tuple[0]); __Pyx_GIVEREF(__pyx_mstate_global->__pyx_tuple[0]); - /* "pyreadstat/_readstat_writer.pyx":52 + /* "pyreadstat/_readstat_writer.pyx":53 * cdef double spss_offset_days = 141428 * cdef double sas_offset_days = 3653 * cdef object date_0 = datetime.datetime(1970,1,1).date() # <<<<<<<<<<<<<< * * cdef valid_user_missing_sas = [chr(x) for x in range(ord("A"), ord("Z")+1)] + ["_"] */ - __pyx_mstate_global->__pyx_tuple[1] = PyTuple_Pack(3, __pyx_mstate_global->__pyx_int_1970, __pyx_mstate_global->__pyx_int_1, __pyx_mstate_global->__pyx_int_1); if (unlikely(!__pyx_mstate_global->__pyx_tuple[1])) __PYX_ERR(0, 52, __pyx_L1_error) + __pyx_mstate_global->__pyx_tuple[1] = PyTuple_Pack(3, __pyx_mstate_global->__pyx_int_1970, __pyx_mstate_global->__pyx_int_1, __pyx_mstate_global->__pyx_int_1); if (unlikely(!__pyx_mstate_global->__pyx_tuple[1])) __PYX_ERR(0, 53, __pyx_L1_error) __Pyx_GOTREF(__pyx_mstate_global->__pyx_tuple[1]); __Pyx_GIVEREF(__pyx_mstate_global->__pyx_tuple[1]); #if CYTHON_IMMORTAL_CONSTANTS @@ -19496,34 +19559,34 @@ static int __Pyx_InitCachedConstants(__pyx_mstatetype *__pyx_mstate) { static int __Pyx_InitConstants(__pyx_mstatetype *__pyx_mstate) { CYTHON_UNUSED_VAR(__pyx_mstate); { - const struct { const unsigned int length: 11; } index[] = {{1},{29},{50},{4},{179},{29},{32},{21},{1},{0},{1},{1},{8},{23},{48},{66},{42},{45},{44},{59},{16},{149},{13},{8},{13},{61},{21},{70},{78},{96},{54},{66},{56},{62},{49},{68},{57},{93},{54},{29},{19},{55},{51},{12},{16},{15},{85},{39},{62},{11},{32},{27},{31},{19},{29},{16},{13},{14},{19},{54},{23},{19},{5},{15},{57},{67},{37},{37},{37},{19},{7},{11},{4},{8},{7},{4},{7},{7},{6},{5},{5},{5},{4},{6},{15},{20},{13},{6},{4},{7},{6},{6},{6},{5},{1},{18},{4},{3},{6},{17},{18},{5},{13},{7},{7},{8},{4},{8},{10},{4},{2},{7},{10},{8},{3},{5},{10},{6},{10},{19},{10},{6},{11},{8},{8},{8},{3},{14},{20},{21},{2},{14},{13},{5},{9},{9},{7},{5},{4},{5},{12},{9},{4},{4},{2},{8},{3},{14},{19},{10},{2},{4},{8},{18},{7},{4},{2},{2},{2},{3},{10},{5},{2},{7},{2},{4},{3},{3},{27},{12},{12},{16},{7},{5},{5},{12},{15},{3},{5},{12},{10},{6},{15},{3},{10},{8},{4},{4},{9},{9},{8},{13},{6},{7},{5},{2},{3},{2},{6},{18},{22},{15},{16},{21},{7},{4},{8},{4},{12},{18},{18},{13},{1},{5},{3},{1370},{310},{306},{41}}; - #if (CYTHON_COMPRESS_STRINGS) == 2 /* compression: bz2 (2357 bytes) */ -const char* const cstring = "BZh91AY&SYk=(\314\000\001\\\377\377\346o\376\307v\367\375v\277-\377\320\277\377\377\361@@@@@\000@@\000@@@@\000@\000`\n\017\225\224\366sXt\005\022P(\240\350\006 \252\256BQ&!O\3254\236iOQ\352<\231OH\000\r7\252d\006\236\240\007\250\364\207\250=O\3256\247\250`\322~T\022H\000Bjz#I\224\003@\000\000\032\000\000\000\001\240\036\240\007\000\003A\241\240\320\001\246A\241\2204\320\000\001\220\001\220\031\000\006\236\245\010\200d\000h\r4\321\2402\000\000\310\000\000\000\000\000p\0004\032\032\r\000\032d\032\031\003M\000\000\031\000\031\001\220\000H\210M\002\023L\247\224\364\231M\244\323$\321\204hi\243j\032\000\000\000hhh\036\246\227\224\274\361\234q#\024\305\216\210\212\006\214B\214MC\356\240\252\013\023\025\253\300\207\r4\350|\244\004\264\035mn\007,\n\372a\034*B.v\00733\302\212\256k\274\344b\226\017\211\340\016P\217}\3107\373~/\007\2654\024\270`\003\217\222\327\205q\317\317=\016d\340&\221+\237#\204\276K\000X\362\345n\276\352m\310\331\n\312!\005Dm\022\215i]6\317\226\326l\276\377\213u\313d\362\210yE\014=\037c\256\246#P\377\251\245\016\377\253I@h\267.N\r\"1\035:\304b=S\216\\\320\225R\236\234\215\n\341\321\032Sq\001\242\261\200\234{2\214\327\254\330.\335C\343&\233\327,\342Y\277{\247H\312\261\263\010\271Ks\031VV\267RO:\323\007M\013\024\3067\276\346X\302\370\232K\251II\343\370X\337\n\032\271\313\177s\226\313y\356a\237\301\351^\362\245\231\245\340\210Y\335(\377\273\251\"\243\2000i\264\332'2\362\355\r\246\364\245&\003\010\"\026\374\375m\250\312\346\257\005\347\212\030\240\357B\216\331\371\261\336\005:\215\361c\034\262\335W\324\005\212\032\333\205\202:\341c\004m\006\031\n\265\254\002\360\r\037\333b\014z\tP`\330\236\372\264\177\247\205\373,\220\022Cquq\233.\230\342O'\310\215\005\353\320\362\367\340;\2178^F \261\325a\220\210\210\rp2\320h8+$\266z\031dq\314\005\227\215M\307\232\240\262\361\263Tk8`\263\241\277\0358%\010\370t\361\226\276&\036\2469\025\243\332\315)\003c\243\253\027G4\033\033 \263\304\031\247\3370\266\016\243\030A\264G\372i#|\321T\327\277U\246f\237\330\220V\346\211\357\353\266T\246\345\256ri\2037$\241=Z\355\252\326$\272\022\323\201<\016\002H\245\327|\373\233B\3337\202\305\252\232\214fS\245\356\216o\310'V\341\243\234\355f\240\300%\255A\226\210\301(3fu\365\366\221H\014n5\303\026v\260\214\343\305xNK4\245\216\307>1K\343\324\207\033\267\343\224f\2503&\241'\231\325*\260>\362\333\\\372\272UuF\254\217\343\004\314\352[\256\341a\353\337}\370\010\253bc\022mW\2740\310)D\222\215 \245a\n\370\256\274.Wb2\031B\021)`\0071\211\263\211\332\020J\035Z\010L\226\224\2508\311\223\201\364Xl\001N\350J\035\r\347\216ao\014\2443h\271\203<\211*>\2333_\361\2407\355X\"_\036\033y\266\353\247a\007}7z\215\0248\322|\010\010\345#\317\303\246\273\024\241\213\335c\347\303]\032\032\333\236\252\341\247JX\251\246\310\330\200\336{\214""\310\212\232a\001v\220\331\320Y\245\231e\304\261%\300H%\271r\230%QB\344\231\031!\267\023\031\034\035\2614\376#\356a!\260\274AI\202Rl`P\364_\\\361\316\205\356\3642\031\245CJ\005X\241\222\267{e\212f&]1\2468\210\271y@\266$R\373`\253\246\230nH\321\2000\233%S\021Y\264\320\300ombF]\325\314\351\245\004\3452TSf\340\036V-\013\305\256\221KY\027\234SF\342D\225Kp\224\342\304\024\360Q\225pM+R\215\224\211\232\222\342\370\321\0276\316Km\010\301\373\014\203\010/\331\232Z$M\241\331\262\354\201\2446\010\224\223EV%\244~\206\233\2672\230\027\367\331\342k\255\250dg\256\357(\247\034\367\303:L\222\321F#\312\"\222\271>=P[\311\247\300\303h\207~\\\363\016O.v7\264\307\244@\231\330\007WMDe\347\016\013\313\251\177\240\320Y\234\306\207\257\006\370\002vP\301Y2\030\366/\0311/>)\262+d\241\000\010\006B\205\005\314\026\227\206\213\222\301!jb\332\332t\3007\211\265\2037\263pxy\361\317\253X\251(\320W\024{\\y\367\034:\374\354\205\333\024\315\"\325\0162\036\256\243\213\341\335\263,_VKO\036\254\2721CC\335\\\375]jW\362\001\256\251\035;z\370f\0358u%-\2661\251\"\023]D\020\332i6\230\322M\314@\242\201\31033B\255\226\023\264A\333\007\341b4\335\213\342\217\t\216f\250\023KM\223$\336!Q\006=\311\004\211(\262\313m{%a\201\217\032\354\246m\351\352\221\243cM\212\2206\375\2164\240\263 \032C\361<\315wO\026\276\026\035\315\214\243\305\304A\030\336J2l\346\362w\355v\304i4\324y\343\014b\271R\215\221I\231)3=f\375\021\243\373\312\231Z4+\313\253\343\206\333)nC\215KX\315@\311\317@Df\263v\363\204y\263\206\225\322\220\2343\216\250{\351g\230\347L\303\234M\000\354\332\332!\020fO\342\227h[\232\031\250\210\014\321k\334\242\235\250\244\310(\30127nM\374\327\266\313\\\177Mm\256\360\301\032\366!\007]jn\306\222\300m\264\017\010N\221/\224*\331\341\\\025\332\253\032<\225\255+T\020\r\215\203T\362uM@`R\327\250\335$NA\221\235% \220\353\200\307:\t\007\302\3213\005\016\030\342\312\224%\205I\2469U\025,\335\235\001\335\304@\007\016+[\244ffq\300\311\326\00729\211\340\233_Q\242\364K<\255\272\231\"\315\266\331\202m\276\234s\335\241\251\205\252\2538""\340\351T\270\260()\304\036\311l\307\t\317\024\213\344i;Yf\331\263\004fn\205\t\274\361\353\364\311\021\232E\030\227\232\205.]\222QHe-e{\262q\033\216\031m\020\267@\221X\322S:\306\260\026 \322lk\315\t\034\375\2352\313\213\2718\034\267\370\016\324\325\255\274)\351\277\232\373\327$\307\013`\254\3132#\0213\355\016\227\201,\307\017!;\003\306`3]\321\030fs\211\217pH(\374W\2454\246j\340\020#\006\005\356\354\216\305\354\325\036\242\022rP\224\222\257\235\001\366\247w6\256r\376\212\267\320\311\221:\373j\223\234\324\336\301\302\234\nq%\233\237\023G\020\242q\373|\330i\252\276|\330j\315\342\311\213p\324(\177\310\345N\306\255*fp\357Z\2722 \243\255\221^j\366\371K\305\257o\376.\344\212p\241 \326zQ\230"; - PyObject *data = __Pyx_DecompressString(cstring, 2357, 2); + const struct { const unsigned int length: 11; } index[] = {{29},{21},{50},{4},{179},{82},{29},{32},{21},{1},{1},{0},{1},{1},{8},{23},{48},{66},{42},{45},{44},{59},{16},{8},{149},{15},{13},{8},{13},{61},{21},{70},{78},{96},{54},{66},{56},{62},{49},{68},{57},{93},{54},{29},{19},{55},{51},{12},{16},{15},{85},{39},{62},{11},{32},{27},{31},{19},{29},{16},{13},{14},{19},{76},{23},{19},{5},{15},{57},{67},{37},{37},{37},{19},{1},{7},{11},{4},{8},{7},{4},{7},{7},{6},{5},{5},{5},{4},{6},{15},{20},{13},{6},{4},{7},{6},{6},{6},{5},{18},{4},{3},{6},{17},{18},{5},{13},{7},{7},{8},{1},{4},{8},{10},{4},{2},{7},{10},{8},{3},{5},{10},{6},{10},{19},{10},{6},{11},{8},{8},{8},{3},{14},{20},{21},{2},{14},{13},{5},{9},{9},{7},{5},{4},{5},{12},{9},{4},{4},{2},{8},{3},{14},{19},{10},{2},{4},{8},{18},{7},{4},{2},{2},{2},{3},{10},{5},{2},{7},{2},{4},{3},{3},{27},{12},{12},{16},{7},{5},{5},{12},{15},{3},{5},{12},{10},{6},{8},{15},{3},{10},{8},{4},{4},{9},{9},{8},{13},{6},{7},{5},{2},{3},{2},{6},{18},{22},{15},{16},{21},{7},{4},{8},{4},{12},{18},{18},{13},{1},{5},{3},{1370},{310},{306},{41}}; + #if (CYTHON_COMPRESS_STRINGS) == 2 /* compression: bz2 (2436 bytes) */ +const char* const cstring = "BZh91AY&SY\223\264k\203\000\001\342\377\377\346o\376\307v\367\375v\277-\377\320\277\377\377\361@@@@@\000@@\000@@@@\000@\000`\no\275\267\241\357^\014\340#\254\321M\000P\nL\314\2009\341)\251M\220\247\250M\223MG\243j'\246\240\365\032\0035\001\243OP\003\324dd\036\247\352\233S\3243F\223\312\014SI\243*~\247\224\311Ce?T\000\3204\000\000\320\000\000\000\000\000\002)\242yL\206\236\240\032L\000L\000\020\300\000LL\230M0\021\223\020\300\t\t\023D\324\321=H\375S\365C@\362\217Sj\006\200\000\000\000\000\000\000\r\003\200\001\240\320\320h\000\323 \320\310\032h\000\000\310\000\310\014\200\002D\200\215\010\230F\2044\022yF\2312\001\240\365\000\000\000\00044\r\rTj\300w5&r/n\321H\240\210s\024^\211\217\272\004\201Rr\211bc\223&M\017\374@I\240\342\326\360r`S\341\204r\241\010\271\336\035\014\035\250\242\350\271N\006\211a\357\363_\000\354\340\251\320>\211\364\375\374:\325aS\214\000\355+\367\317c\232\304q\341\271C\335p\006\314\035+\341$\006\350\222\314\nY\025\373\357\331\341m\311q?0\225\010\321\242l\206\211\243iR\272\357\227\013Y\262\334\177\227U\312\346\363\210y\304\313}O\255\310`\200\010\303E\370\005<\016LlO\362\2150\010\202R\221\250\210\302\220\004\004\002\266\001\214\0161\004\221\024\251t\253\273G;\342(:\332\t\216\211\343\001\037\005\353\357\316\267_e\352h\372\022\245]\244\272\355C7\214(\265\215r\214\345\266S\314\255\373\006Q\224\246jD\253\331ZI\317\005I\313)p~FLv/\221\244\234\313\326\262%\3133\224\356n\210\\\272Ny\226u\tK\253\022:\212\326_\207\225\367m\273\006\305\354\264Y\254Q\234jD\212\361\207IV\314\340\006k\244#0\256\017P\312\247HOU\232\347j\235\371@\352\023\303\336bt!\302\220\313\317\323\253\243\305ccM\006\330\306\370\340Ez\313\243 \021\327\305\336\006&\222H$@E\313\332\230\025\257\226p\371\331o\257Lcww{\215\265\204F(\nD:\002\254\251\222Z\002\353\202\330\017\004\0046\247\377\031e\037m\261\266\324\304\315\235\245zM\320\320\203S\315\030\207wu\351M\026\201b\265f\032\257\303^K9z\332:\234\351\346$\265T\326\257\257\026\2211\035\311\267\272\021/\344\352u\005\022\261\n\235{u*0\3015\370\310""\352\343\3546\373\304\204\206HI\222\022HgU\205\23565\026\303\373\322\032\363\203\255'\025)\327\257^\314\323\222\273>\213\357w\021\307\036\222\220`\273H\250\274\324\351Zw\213f\336\264M\t\203TFdM\232\240m\247K\234\376\214\031l\364:\353\314V\311\232\347\t\026\271\245?\316KP\254\340\030i\264\332+S:yF\323|V\265@\304$[\265\347\344F\314\315\257\013\253,h\203\225\nx\245\355G\224\t\365\034\"\246Y\347\276\217\250\n\2235\257*\204q\205\224\021\270\030f*R\220\013\230\321\375vA\227h\224\306\r\211\362\311\323\375\3101\374\332@U\017\244e\246\315w\323J\310\267\004n\027\330\271\034p\036\036\360\274\254AS}FB\" 4\261|6\320qUIk\356N\n\243\226\000Y\370)d<)\212\376\014\325\032\312\326X\231\352\313NIB\017(\310`6\332m#&\206\026\224{\355\035\236\3758\314\243\003To\310f@\241\207\265\241\276Io\277\305_\035\360\3559\010^Q\027G\211\220\317\200H!\024i\"\211x\307P7\275I;>\224\311Z\247\014\212\361=<\2241\267c4\322[\224|\370\300]\254\327\025e\0359\243\244\235[\247\221J\373\362\230j\346\032\206e\224\265\243\261J\233\242\211\371\341\317\312VW\313\016\376\031\340\254\336\346k8\033\034\335\030\273\234\24666AW\200f>\351j\331\320c\0104\021\376ZH\341)\252\032\355\3575\240\257\354\022\004t\205KSR\312F-\224\337VV\200\226\020}\270)\254\016\026\n\235\351o\346[B\000\252/\205\353\224`\345\031\362~\3233\311;\263b\376)E6\226\241;6\341\213\244\2673P`\022kPeb,\224\030\254\036\356\230\276~\316\362V\200\276\006\271\350\317#\010\332\234\264\320hkv5W\r;\247R\206\233F\302\016\007\311fdQih\013\264\206\316\341`\014I\325s*Ms\022\n\357]c\320\256B\226\n\264j\207\274\260\321\3168\226R\350\245\203D6&0\274A9A$\233\030\023=w\327\031be\356\3643\031\245\003I\205\030\241\222[\375\322*O\002e\323\032c\210\213\227\222\005\262D\362\335\005\034\364\266\364\2140\006\022eR\241\220\252\332h`7\272\261!\227yC\213%5\n\305n\254\3370\3674\316x\243\323D\214\261\204iz'M\004\212\252\025\345%X\224\020O\256l\273\205Z\367*\321\222U\\\2473\331dfrV\305\255\211\207\3372\030\205\373\360\226\211\022+\016\255\227}\316CHm\010\232I\242\2532\322\037\255\246\353\332N\305r\372\014\\Z0\310\306\273\357\350\024\363\323\2043\272R$\3216#\320\"r]\217\237\010+\347\327\351\260\336!\337\263\246\003\233\317\245N/\223 z\304\t\226}\340p\356\330E=!\315{\033\027\371M\005Y\250\320\365\344\343\324\340S\226\336\304\355\316*'\347\3724\337\351\337\033\315`\206\333\033hi\320\207\341.\230\363\032\256\305t\20537\224-\347u\303D\233\013\263\2037\203\355:s\323\257]\245RH\324W\024{}}<\207>^\246B\361\304\360\221R\210\353\220y\365\034^\336M\263\311\360\315i\345\325\227E\262D!\357\256=\032\320\247\342\002\372\244w\3718\362\300w\362\352Rhm\2661\252$\006\267\020\215\246\223M1\244\233\251\005,\034\003\006\020\251Ug-\302\017$\037}\210\323~ONh\3551\241\262\004\322\326\262\221+\304)\240\313\301\010\220\222\234\252f\363\215\326\361H2\310\317\2356\236\215\232\372\010mc\032v\202pm\367\373\355aj@i\017\266z\233wV\366\275V\035\303c,\364rb\212\322\250\263+'Y\321\314_1\244\323\\\225\325\254i2\223\336\220s\331\230=\231\263\014*E[w\021\222VR\"[\013\332\031\026jB\362\034\"%!B\361\221\314@\026$\224\226\332\327\331\247G\3265\271\366\276\226^C5\322c<\3452 \260\2026y\356B&\332\227D\274f}\223\331P@l\214\361\202\352\331\335VP\202\354,p\322\221\313\263\025\332\267\037\316[\251\300,\215{\320\203\215(o\322\324\300m\264\017\0222ZP\370E|\235\261\205\233WcG5\257k\335""\004\006\306\301\226\346\335W\001\240\266Y\334n\324'@\311\255\251 \220q\200\313\023\022\017\256\321)A3\226Y1\320\231\014(Jy\347DP\253ut\007w\021\000\034\271\255n\221\203\007;\031\272@\345!\312%\3116\275\346\213\315\024k\031\333|\363E\233m\266\027|\257\323m\373\216\243=\027R\315\301\316-\231\240\265\024\325\250\022`qg;[$\213\340\326Z2\255\263k#\006\370P\233\306\\\017\206DF\022&\304\275SW\301\206\222\242CU\352\305\236\032\202\230 k\215\003>\361#*^\266;\216\251\213 i65\351\204\216\236\336\231\347\315\334\225\216\316\035m\370\323U\257\000\237\303\177M\370.\026 \\C+\031\264R\202r\226o\305 +\261\004\211\226\314$6\006\313\311\021n\332h>\331\322=\321 \243\361Vs\326z\005\300 E\230\027\273\2522^\315\025X\213\362D\244\231w\350\017\266N\034\023\3415\261\345\343c\203\201\2667\023\\4\333\212\317#bG+h\352|\214|\242\033\233\333\347\273\223.\206\034\027r\340\333\337\275\274g\224C\350V\270\350\226D`x\377b|c\234D\237\006\006\314\303\311\330\0174\207\223\270\273\222)\302\204\204\235\243\\\030"; + PyObject *data = __Pyx_DecompressString(cstring, 2436, 2); if (unlikely(!data)) __PYX_ERR(0, 1, __pyx_L1_error) const char* const bytes = __Pyx_PyBytes_AsString(data); #if !CYTHON_ASSUME_SAFE_MACROS if (likely(bytes)); else { Py_DECREF(data); __PYX_ERR(0, 1, __pyx_L1_error) } #endif - #elif (CYTHON_COMPRESS_STRINGS) != 0 /* compression: zlib (2150 bytes) */ -const char* const cstring = "x\332\305WKo\033\307\035g\200\024P\021\247M\372@zp\213QQAR \313\246,\010\252\321\242\260-\033\010Z\270rl\313E/\203\341\356\220\234jwf\2753Kju(z\324QG\035\365\021z\314G\350\221G\035\375\021\372\021\372\373\317\354\213\014%\307F\203\010\324\356<\376\357\367n>6I\221j\226\210\201L,K\013\353\330@2\353r\245G\366\231\321\254\320\352M!Y\024\340\264H\245e\261t2r2fJ37\226,\026N\014s\\\255\002C>3N\342X8\366\270tc\220P\204\221\250\201\314\205\223I\351\251\003=' \315\016\237\034\336\331\335\337eB\307,\227\377\000a\313l1\210\022a-x\231!\033\024*q\304\252\314\244\335f_\rYi\n\246%\004p\206e\200\353\"@ \315\254t^\262u\241\265q\302)\2439\320\241\324:\213U\016&j\"\t\373\251H\254\334~\245\217\265\231j\257\010\033\232<\205\360\270T\332\312\334\325\227Y9\315\025\211=\021\271\022\203DV\220G2\267\240\317\300\010rd\231\311\3114\333\177\022q\314q&E\242F:\225\332\021|\213\354\025V\256ks\266\341i8\221C\335\021\233*7f\272Ha8\273\272\031\215E.\274\331Re-\356y.\364\010\nOD\002\007\215\240\220\366\0344di\201\033~k6\370\220/\370Z\202\013\340\022\205-\260c\270f52i\226K\330\325;\305Lys\020y\203\022\336\300@\272\227y!\033\3577$3\240\tK\3242\223\210\334\266\001B\324a+\310\004\301\341\322\005U<\201\261 \327\300y\307\262\264l\254\274\020\211a\261\001\0041\227'\220uu\250\022\342\004!\"S$1\253\304\222:21\354\357\215\267f\331t\254\2421\205 \205\004\204B\350\344\314\226\326\3114\300\202\375\026syI\026\207\317\003>9\006\300\205\033\336\331\337f\207\211\024Vz\n\313\320!@N!\225\224\333\244S\353a\304\017\334\037\257\023{\3041\305/K\244\036A2l\243\245\251G\212[2&\330\007\337\267\2606\205\034E.\347\003i\336\206\017:\026\363\221\321\222\366\036k\350\023\215\220\347^\260\367\243R\005\r$\203\214\022\351\314n\246\226\212\023\326Gl\331(G\355h\220B\350*\322/\035(]\273\255\317<^u\235u\243X$\211\231\312x9\375\017\301\272\177\215T\366=(T\212\277\007\336\225\215\177(\221\257A\370 \027\026\250\201\274\"@\302U\032\371\370YZf\226!Vu\321\326\222\010J\265SO\343\205\243\242K""\261\366\220\016\377\356\227<\\=|\261\305F\340\271f\353\\ZB\374;\330\243\243\271A.kR\025\273>\275\3575\227\204\034\370-\026GmR\245E\262\005\3708,l$\240,\320\213\252;,C\313\325h\014\212\021j\277\314\267\340\346\241\273\026E\351V\312\332!\363\3558l\321p\242\220\305\276\234PY\0317\355Y\351\266\324z;\016dSxp!\267\374\323\251\324\213NojP\314\216}\005m\005\247^dBO\010\006i$zw\353i\263\250\211\210u\266Q\031.\024\354\0053U\334\006\245\2236+sx\031-\320m\363z\3053\364\020\231\267Ww\333\253\320\222\267\263\362\244\203Y+\3319BHL\307\350\365\333\330A\250\355\311N\367\262H\263\262\2637]1P\354;\273\251\3105\215F\353\241M\333P\260\020Q*I\344\010\n\242\205\353;\"\311\306(\353NE\233m\216<`\353~X\222\026\335\335\217$\260Y\022\3136 |K\013C\205\357<\215\ti\354b\353\013[\262kd\264\023H\r$\224\315D\004\0077\375\256\223\253s\210m\031 Ie\232\271\262\236\367\266\330\265\363GM\"\344\\5C=\367\360\270\277\203\207?\334\377\353\200f\315\303\306\265O\362\334\344\234\037\226'\370?@)\340\317\344\211\373Z\016\277\356\002\274\360\226z\t\216\257\002e\377\332{\345i\277\362\304\351\271\317\205-u\244\3146f\003S\300\234\022\025\303\272\010\331\353\253\001\347~^\345#H\217Y\202\266\200\341\nc*\242E\016Dt\034%\030\246\347f\266j\n\250\232e=\223Q\264\327\021_\277\367vcQ\332x\210Y\227|\036\347&\343\272H\022\013M8\345`\354DL~\221\002m\206\033\235\224a\360\221'4\274Qu\245`\344\301\364|\022F\\\177\344E\301\nJ\014s\223r\n\345\211\034\332X\022\376\320\006:\234\017\013\035q\322\017?\036U^\223\226v\001\205\373h\244\250\305\031\221\016cU=U\215\225J\263\204\366\325\374\256,o\214\211\265\322x\204I\223\026~\320T\326g\236\262\320[Y-\310\264\226b\210W\246\363k\014\264\226fK\252\307\211\341\2446\274\2347\n\373\1776\315f\217\200\250\246sg\270\037k{\241\355\205.Q\325\031\357n\333\233\000\007\235\361T\3068\327(O\216\327]\234\320\303\374u\035\324\315\020\0134\274\026\035yj6\211:n:=^\215\332\275Ey<`K\317dR{{ get\214\342N\r\036E\033u\236zC\320//t\260\337\274\r0r\326\010\370\210\346\341\023\270\207\231\307\312@\023\375\335)\264\014O\333\266\326\355-\3745N\n\202ee\305\327\212 JP,\354\275\311\026\017\274\225\272\207\260\342Hi\277\234\277\313\354\002I:\230\247Y\237|\033\261\246J\353\371[\372\000\236\247\353O\346\t7GKpk\322~\323\275\237\365\326fk\177\374\346\371\325\027\277\362\277\235\331\316\243\331\243\243\331\321\353\253\317\372\263\376\237\377\323\277\372\354\363\346\367\337\225\336\217~w\331\277\372\230]~D\353\225\177\375\363\374\305\305GW+\277\276x~\265\362\233\013q\265\362\311\331\357\317\017pt\353g\347w/?\277\\\245\223\376\325\255\3376+\202\372\361\027\347\366b\265B\373\344l\377\374\376\271\0100\237\376\322\023|\327\372\345\305/\200\332\356~~\361\320\357\336\266l\177z\366f\236\317\002\343\267+?93\027\317/\304\333\217?={~\026\237\1779\273}\357\337\267\276yH\267G\227\177\230\335}:{\352\r\261r{v{w""\266\213\355\353\331\353\277\205\222\321\304\224\364\037\005n\263\212py\242\034\247\213\302\376\01719\275\302"; - PyObject *data = __Pyx_DecompressString(cstring, 2150, 1); + #elif (CYTHON_COMPRESS_STRINGS) != 0 /* compression: zlib (2241 bytes) */ +const char* const cstring = "x\332\305X\313n\034\307\025\035\003\016\300\300rb\347\001g\241\004\305 \002I\203\032i(\202`\204\004\201\236\200\221@\241\254W\220M\241\246\273f\246\302\356\252VU5\207\315E\220%\227\\r\251O\310\322\237\220\345,\271\324'\344\023rnUwO\317xHYB\014\023dw\275\356\243\356=\367\321|`\2622\327,\023C\2319\226\227\316\263\241d\316[\245\307\356\201)\263\224i\343\231)\244f#\225I\266\361\304hVj\365\272\224,\211\304Z\344\322\261Tz\231x\2312\245\231\237H\226\n/F\026[\353\240\220O\214\227X\026\236=\250\374\004,\024Qdj(\255\3602\253\202H\220[:\244\331\301\243\203\233\273\373\273L\350\224Y\371\0170v\314\225\303$\023\316A\226\031\261a\2512O\242\252B\272>\373j\304*S2-\241\2007\254\300\271.\001\024\322\314I\0374\333\020\032w\022^\031\315A\216\233n\260TY\010QG\222\250\037\213\314\311\376V\237=\307\351p\353\\Td\227\314$\207\0200\254\240\230\001+\313\nk\022\tY\306\006\371t\216\3545\021\3404\265\n\227.\244\315\225s\020\326\177\241\017\265\231\352`\032626\2079 Ni'\255o6\213*\320Yv$\254\022C\010\217'_JKL\002{W\026\205\2610\366\026\353\377I\244)\307\242\024\231\032\353\\jO\004s\352`C\345\273\276e\233\201\211\027\026\026\034\263\251\362\023\246\313\034\276p\353[\311DX\021<\021\324\326cn\205\036\303\206G\"\203\317\307\260\221\016\0224\224\231\037n\345\335p\021\026|\tSR\005\203e\nSP\247\360\366zb\362\302\222\371\202\237\315\224\267\013I\360\021\321\rah\366\334\226\262\005T\313\262\000\231\010\266/L&\254\233c\216\270\303X\320\t\212\003%KW\t\014\202\217\010\017\207\262rl\242\202\022\231a\251\301\t\022.\217\241\353:\333\224\326j\023qP\010(\223\264aA\327\322\211I\201\211`\304\033\216M'*\231\020\272\tmP\016\250\260\314U\316\313<\236\205\032\333\314\333\212,\017\347Gzr\020\016\227~ts\277\317\0162)\234\014\034V\221C\001Kh\315\252\376F\360\004\001\006\353w\031]u\356x\340\n\250H7H\033D\014E\n\313\244\036CQL\223\225\221O\366pdch\023!1?\353r\250UZ\271\210\257E\323\336\355\0302\000f\316:8\262\345OT\272\361\342\200""\005\272z\273\350\202[d\231\231\312t5\377\017\241\272s\211V\356=8\324\027\177\017\272E\212\032\023\301\3025\252\021M\343&\027\357/S\327d\300Z\033fU\353\037\212\357K\010>\310\205%r#\257\031\220r\365\215\002~Vf\237U\204u\276t\215&\202\"\357$\360x\346)\031\023\326\356\321\342\337\303\220\307\255{\317\266\331\0302o\270&\226V0\377\016\366\350\334\334 \2645]\025\263\001\275o\267\233D\034\345-\347Lmr\245E\266\215\363i\034\270D\340\262 /\353\252\261\212\314\252\361\004\034\023\224\004i\267\341\346\221\277\224D\351\271\226\215C\026\273\2018E!Jb\024\207tBie\3226\002J\3173p\260\343P\266\211\007\033r;<\275\312\203\352\364\246\272\305\334$$\324\271\342T\242L,\025\321 \255F\357\256H\363(j\021\261\3016k\303\305\374\275d\246Z\332\260\362\322\025\225\205\227Q\031}\2377#^\240\264H;\337\2725\337\212\245\272_T\307\035\312\346\222\235%@b:AW\321\307\014J\365\217v\272\233e^T\235\271\351\252\201\334\337\231M\205\325\324\231m\304\352\355b\302\002\242T\226\3111.\270\251\353[\211\254\230 \265{\230B\343v\202\232\266\024\005\036\265Cn\315#\347.\333\010\315\232t\250 \241%\202%3\034la\022\352^lAByj\rKm\037\333X\232\222\265\023\243\275@\300 \314\\!\022\270\275-\212\235\010^ \234'\007\370\360\246\314\013_5M\3506\273\264YiX\304H\254\033\216\273-2\377Bs\366\216C/\003\206.9\024\001F\320B\217\2002kH\201\330\235E\213\360\3731\242\037\300\345c\003\334\211\354!\206\017k\004<\224\211\312E\366\010\372>\316\214\360wv\302ko\367+\355\007;\373\364\334\303\343\316\016\036aq\377\257Cjv\017Z\217?\262\326X\316\017\252c\374=D\206\340O\344\261\377Z\216\276\356\036x\026L\365\034\022_D\316\341\265\367\"\360~\021\230\323s_\270J'\312\364\001\002S\302\234\022y\304\371\0041\035r\004\347\241_\346c(\217\206\203\2468\303\025\332d\240E\016Er\230dh\346\027\032\274\2727\250Kh\323\300\245\024\004M 4\357\275\335TT.\035\241\331&\247\247\326\024\\\227Y\346p\023N\241\231z\221\222c\244@\365\341FgUl\217\3441\265z\224t\t\215\274\266\375Q\354\210\303R\320\005#\334bdM\316\t\313Gr\344RI\364#\027\371p>*u\302\351\202\370\345I\3555\351h\026Ix""\200#\301\026k\304:6_M\3575Q*/2\232\327\037\020\312\361\326\232\030+\215G\354Ki\020\332R\345B0*\207{+\247\005\331\326\021\210xm\2730F\373\353\250\023\2454\235\031\316s\204\020\236J/&\275\025\025\010\247LZ\302\010\336\006\331A\022\364\321\220Z3\206#\t\313E\360V\010\344H\205\224\356\361\304\327\037\341\217\3768\276]=\rp\016i\006\203\023 \332\343{0\203\014\244.(}\242\364\310\324\371\017\235\203\264\245+}r\264\023\315\335\346\212\366\203\253]A/\207[V|\252R?iW#\\\333i\335E\257L95\244)\3157\251~\n\345)\3515`\251\315\016\261\266\002\300P\270\353\225Nh4+ar|L\275\317\211*\016\252\230]\330\227\233\363\341Vo\345\3626\273l\014\201\227\322D0x>\270=G\014\037\354}\0133\024\357\035u\177@aA\000$p\000\357Dr\3176\217\214J\251\204\271\260\037W\267YX\205\261\250pB\217\017\226\375]\t\233\377\002\360\026&\224\027\267z\251)\251f\376P\nt\215\267\325\243\246q\363\212\205+O/\372\341\373@\316\345\233\337\3078 \351\312;\316O\204Q\200\324f\320\363Je\377\317\246\331\352\321!\312\355\334\033\036\272\336^,\177\261Z\324y&\270\333\365\216@\203\ny\"S\254k\244'\317\233jN\344\261\021\273\354\324\325'\226x\204[t\364i\304d\352\260\255\370x\265\327\356-\353\023\016\316\371\321\277,\203=\020\26329Dr\247B\217\244\215^\344\033V\026\031\267K+h\033\326a\322\335\237\365n\314n\374\361\233\247\027_\374*\374\356\314v\356\317\356\277\234\275|u\361\331`6\370\363\177\006\027\237}\336\376\376w\255\367\243\337\275\031\\|\314\336|D\343\265\177\375\363\354\331\371G\027k\277>\177z\261\366\233sq\261\366\311\351\357""\317\036b\351\332\317\316n\275\371\374\315:\255\014.\256\375\266\035\321\251\037\177q\346\316\327k\262ON\367\317\356\234\211x\346\323_\006\206\357\032\077\077\377\005H\347\263\237\237\337\013\263\267s\261?=}\275(gI\360\333\265\237\234\232\363\247\347\342\355\307\237\236>=M\317\276\234]\277\375\357k\337\334\243\335\227o\3760\273\365x\3668\030b\355\372\354\372\356l\027\323W\263W\177\213)\243\305Th\200\270\337\252\021.\217\225\347\264Q\272\377\001\225c\3662"; + PyObject *data = __Pyx_DecompressString(cstring, 2241, 1); if (unlikely(!data)) __PYX_ERR(0, 1, __pyx_L1_error) const char* const bytes = __Pyx_PyBytes_AsString(data); #if !CYTHON_ASSUME_SAFE_MACROS if (likely(bytes)); else { Py_DECREF(data); __PYX_ERR(0, 1, __pyx_L1_error) } #endif - #else /* compression: none (5946 bytes) */ -const char* const bytes = ")Column labels must be stringsNon unique column names detected in the dataframe!NoneNote that Cython is deliberately stricter than PEP-484 and rejects subclasses of builtin types. If you need to pass subclasses then set the 'annotation_typing' directive to False.Unknown data format to insertUnknown pywriter variable formatVersion not supported .?add_notealignment for variable and it must be str (not starting with numbers!)character missing_ranges value given for non character variable %scolumn_labels must be either list or dict!compress and row_compress cannot be both Truedataframe must be pandas or polars dataframedictionaries in missing_ranges must have the keys hi and lo does not exist!file path could not be encoded with %s which is set as your system encoding, trying to encode it as utf-8. Please set your system encoding correctly. in variable instead' is of type length of column labels must be the same as number of columnsmeasure for variable missing_ranges: hi and lo values must be both the same for string typemissing_ranges: hi and lo values must be both either of numeric or string typemissing_ranges: max 1 discrete numeric value if combined with 1 range value per variable allowedmissing_ranges: max 1 range value per variable allowedmissing_ranges: max 3 discrete numeric values per variable allowedmissing_ranges: max 3 string values per variable allowedmissing_ranges: string values length must not be larger than 8missing_ranges: values in dictionary must be listmissing_ranges: values must be both either of numeric or string typemissing_user_values not allowed for character variable %smissing_user_values supports values a to z for Stata and A to Z and _ for SAS, got %s insteadmissing_user_values: values in dictionary must be list must be boolean or be 1 or 0 must be dict, got must be either nominal, ordinal, scale or unknown got must be either right, center, left or unknown got must be int must be numeric must be string must match the type of the column i""n dataframe and be of type date, datetime or timenote should be either str or list, got numeric missing_ranges value given for non numeric variable %s' (ordinal path must be either str or bytespyreadstat._readstat_parserpyreadstat/_readstat_writer.pyxpyreadstat.datetimepyreadstat.narwhals.stable.v2pyreadstat.numpypyreadstat.ospyreadstat.syspyreadstat.warnings' starts with an illegal (non-alphabetic) character: 'the destination folder unknown file formatutf-8variable name 'variable name '%s' contains a space, which is not allowedvariable names must be non-empty strings, not starting with numbersvariable_value_labels: type of Label variable_value_labels: type of Value variable_value_labels: value for key wrong writer formatBooleanCategoricalDateDatetimeDecimalEnumFloat32Float64Int128Int16Int32Int64Int8ObjectPyreadstatError__Pyx_PyDict_NextRefReadstatErrorStringTimeUInt128UInt16UInt32UInt64UInt8_asyncio.coroutinescastcatcenter__class_getitem__cline_in_tracebackclonecolumn_labelscolumnscombinecompressdatedatetimedatetime64daysdfdirnamedrop_nullsdst_pathdtadtypeeager_onlyencodeexpanduserfile_format_versionfile_labelfilterfrom_nativefsdecodefsencode__func__getget_categoriesget_native_namespacegetfilesystemencodinghiimplementation_is_coroutineis_inis_pandasis_polarsisalphaisdirisnaitemsiter_columnsiter_rowskeysleftlo__main__minmissing_rangesmissing_user_values__module__msname__name__narwhals.stable.v2nominalnotenpnsntnthnull_countnumpynwordinalospathpopporpyreadstat._readstat_writer__pyx_capi____qualname___readstat_parserreplacerightroundrow_compressrow_compressionsavscale__set_name__setdefaultstablesurrogateescapesystable_name__test__thentimetime_unittimestamptimezonetotal_secondstzinfounknownupperusutcv2valuesvariable_alignmentvariable_display_widthvariable_formatvariable_measurevariable_value_labelsversionwarnwarningswhenwith_columnswriter_entry_pointwriter_file_formatwriter_formatxxportzipPyObject *(PyObject *)\000PyObject *(PyObject *, PyObject *, PyObject *, int)""\000PyObject *(PyObject *, __pyx_t_10pyreadstat_16_readstat_writer_dst_file_format, PyObject *, PyObject *, int)\000PyObject *(PyObject *, __pyx_t_10pyreadstat_16_readstat_writer_dst_file_format, PyObject *, int)\000\000Py_ssize_t (void const *, size_t, void *)\000char *(__pyx_t_10pyreadstat_16_readstat_writer_dst_file_format, __pyx_t_10pyreadstat_16_readstat_writer_pywriter_variable_type)\000double (__pyx_t_10pyreadstat_16_readstat_writer_dst_file_format, __pyx_t_10pyreadstat_16_readstat_writer_pywriter_variable_type, PyObject *)\000int (PyObject *)\000int (PyObject *, PyObject *)\000int (PyObject *, PyObject *, __pyx_t_10pyreadstat_16_readstat_writer_dst_file_format, PyObject *, PyObject *, int, PyObject *, PyObject *, PyObject *, PyObject *, PyObject *, PyObject *, PyObject *, PyObject *, PyObject *, int)\000int (PyObject *, PyObject *, int)\000int (int)\000void (int, int, PyObject *, PyObject *, __pyx_t_10pyreadstat_16_readstat_writer_dst_file_format, PyObject *, PyObject *)\000filepath_to_bytes\000get_narwhals_column_types\000vectorized_convert_datetime_to_number\000vectorized_convert_date_to_number\000vectorized_convert_time_to_number\000write_bytes\000get_datetimelike_format_for_readstat\000convert_datetimelike_to_number\000open_file\000check_series_all_same_types\000run_write\000get_narwhals_str_series_max_length\000close_file\000initial_checksPyObject *\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000readstat_to_numpy_types\000sas_all_formats\000sas_date_formats\000sas_datetime_formats\000sas_origin\000sas_time_formats\000spss_all_formats\000spss_date_formats\000spss_datetime_formats\000spss_origin\000spss_time_formats\000stata_all_formats\000stata_date_formats\000stata_datetime_formats\000stata_origin\000stata_time_formats\320\000%\320%=\270Q\330\027\030\330\027\030\330\0272\3202B\320BV\320VW\330\0201\3201K\3101\330\020\021\330\020\021\330\020\021\330\020\021\360\010\000\005$\2401\330\004 \240\001\360\010\000\005\010\200~\220S\230\001\330""\010\035\230Q\330\010\036\230a\330\010\013\2109\220D\230\001\330\014\022\220/\240\021\240!\330\010\013\2101\330\014\"\240!\330\010\013\2101\330\014\036\230a\330\t\027\220s\230!\330\010\035\230Q\330\010\013\2108\2203\220a\330\014\"\240!\330\r\025\220S\230\001\330\014\"\240!\330\r\025\220S\230\001\330\014\"\240!\330\r\025\220S\230\001\330\014\"\240!\330\r\025\220T\230\024\230Q\330\014\"\240!\330\r\025\220T\230\023\230A\330\014\"\240!\340\014\022\220/\240\021\240!\330\010\017\210q\330\t\027\220s\230!\330\010\035\230Q\330\010\036\230a\330\t\027\220s\230!\330\010\035\230Q\340\010\016\210o\230Q\230a\340\004\r\210Q\210d\220*\320\0340\260\014\270A\330\010\035\230V\240<\320/F\320FV\320VW\330\010\034\320\0344\3204F\320FW\320WXvoid (readstat_error_t)\000check_exit_status"; + #else /* compression: none (6103 bytes) */ +const char* const bytes = "Column labels must be stringsCould not open file 'Non unique column names detected in the dataframe!NoneNote that Cython is deliberately stricter than PEP-484 and rejects subclasses of builtin types. If you need to pass subclasses then set the 'annotation_typing' directive to False.). The file may be locked by another process or you may not have write permission.Unknown data format to insertUnknown pywriter variable formatVersion not supported) .?add_notealignment for variable and it must be str (not starting with numbers!)character missing_ranges value given for non character variable %scolumn_labels must be either list or dict!compress and row_compress cannot be both Truedataframe must be pandas or polars dataframedictionaries in missing_ranges must have the keys hi and lo does not exist! (errno file path could not be encoded with %s which is set as your system encoding, trying to encode it as utf-8. Please set your system encoding correctly.' for writing: in variable instead' is of type length of column labels must be the same as number of columnsmeasure for variable missing_ranges: hi and lo values must be both the same for string typemissing_ranges: hi and lo values must be both either of numeric or string typemissing_ranges: max 1 discrete numeric value if combined with 1 range value per variable allowedmissing_ranges: max 1 range value per variable allowedmissing_ranges: max 3 discrete numeric values per variable allowedmissing_ranges: max 3 string values per variable allowedmissing_ranges: string values length must not be larger than 8missing_ranges: values in dictionary must be listmissing_ranges: values must be both either of numeric or string typemissing_user_values not allowed for character variable %smissing_user_values supports values a to z for Stata and A to Z and _ for SAS, got %s insteadmissing_user_values: values in dictionary must be list must be boolean or be 1 or 0 must be dict, got must be either nominal, ordinal, scale or unknown got mus""t be either right, center, left or unknown got must be int must be numeric must be string must match the type of the column in dataframe and be of type date, datetime or timenote should be either str or list, got numeric missing_ranges value given for non numeric variable %s' (ordinal path must be either str or bytespyreadstat._readstat_parserpyreadstat/_readstat_writer.pyxpyreadstat.datetimepyreadstat.narwhals.stable.v2pyreadstat.numpypyreadstat.ospyreadstat.syspyreadstat.warnings' starts with an illegal (neither alphabetic nor an underscore) character: 'the destination folder unknown file formatutf-8variable name 'variable name '%s' contains a space, which is not allowedvariable names must be non-empty strings, not starting with numbersvariable_value_labels: type of Label variable_value_labels: type of Value variable_value_labels: value for key wrong writer format_BooleanCategoricalDateDatetimeDecimalEnumFloat32Float64Int128Int16Int32Int64Int8ObjectPyreadstatError__Pyx_PyDict_NextRefReadstatErrorStringTimeUInt128UInt16UInt32UInt64UInt8asyncio.coroutinescastcatcenter__class_getitem__cline_in_tracebackclonecolumn_labelscolumnscombinecompressddatedatetimedatetime64daysdfdirnamedrop_nullsdst_pathdtadtypeeager_onlyencodeexpanduserfile_format_versionfile_labelfilterfrom_nativefsdecodefsencode__func__getget_categoriesget_native_namespacegetfilesystemencodinghiimplementation_is_coroutineis_inis_pandasis_polarsisalphaisdirisnaitemsiter_columnsiter_rowskeysleftlo__main__minmissing_rangesmissing_user_values__module__msname__name__narwhals.stable.v2nominalnotenpnsntnthnull_countnumpynwordinalospathpopporpyreadstat._readstat_writer__pyx_capi____qualname___readstat_parserreplacerightroundrow_compressrow_compressionsavscale__set_name__setdefaultstablestrerrorsurrogateescapesystable_name__test__thentimetime_unittimestamptimezonetotal_secondstzinfounknownupperusutcv2valuesvariable_alignmentvariable_display_widthvariable_formatvariable_measurevariable_value_labelsversionwarnwarnin""gswhenwith_columnswriter_entry_pointwriter_file_formatwriter_formatxxportzipPyObject *(PyObject *)\000PyObject *(PyObject *, PyObject *, PyObject *, int)\000PyObject *(PyObject *, __pyx_t_10pyreadstat_16_readstat_writer_dst_file_format, PyObject *, PyObject *, int)\000PyObject *(PyObject *, __pyx_t_10pyreadstat_16_readstat_writer_dst_file_format, PyObject *, int)\000\000Py_ssize_t (void const *, size_t, void *)\000char *(__pyx_t_10pyreadstat_16_readstat_writer_dst_file_format, __pyx_t_10pyreadstat_16_readstat_writer_pywriter_variable_type)\000double (__pyx_t_10pyreadstat_16_readstat_writer_dst_file_format, __pyx_t_10pyreadstat_16_readstat_writer_pywriter_variable_type, PyObject *)\000int (PyObject *)\000int (PyObject *, PyObject *)\000int (PyObject *, PyObject *, __pyx_t_10pyreadstat_16_readstat_writer_dst_file_format, PyObject *, PyObject *, int, PyObject *, PyObject *, PyObject *, PyObject *, PyObject *, PyObject *, PyObject *, PyObject *, PyObject *, int)\000int (PyObject *, PyObject *, int)\000int (int)\000void (int, int, PyObject *, PyObject *, __pyx_t_10pyreadstat_16_readstat_writer_dst_file_format, PyObject *, PyObject *)\000filepath_to_bytes\000get_narwhals_column_types\000vectorized_convert_datetime_to_number\000vectorized_convert_date_to_number\000vectorized_convert_time_to_number\000write_bytes\000get_datetimelike_format_for_readstat\000convert_datetimelike_to_number\000open_file\000check_series_all_same_types\000run_write\000get_narwhals_str_series_max_length\000close_file\000initial_checksPyObject *\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000readstat_to_numpy_types\000sas_all_formats\000sas_date_formats\000sas_datetime_formats\000sas_origin\000sas_time_formats\000spss_all_formats\000spss_date_formats\000spss_datetime_formats\000spss_origin\000spss_time_formats\000stata_all_formats\000stata_date_formats\000stata_datetime_formats\000stata_origin\000stata_time_formats\320\000%\320%=\270Q\330\027\030\330\027\030\330\0272\3202B\320BV\320V""W\330\0201\3201K\3101\330\020\021\330\020\021\330\020\021\330\020\021\360\010\000\005$\2401\330\004 \240\001\360\010\000\005\010\200~\220S\230\001\330\010\035\230Q\330\010\036\230a\330\010\013\2109\220D\230\001\330\014\022\220/\240\021\240!\330\010\013\2101\330\014\"\240!\330\010\013\2101\330\014\036\230a\330\t\027\220s\230!\330\010\035\230Q\330\010\013\2108\2203\220a\330\014\"\240!\330\r\025\220S\230\001\330\014\"\240!\330\r\025\220S\230\001\330\014\"\240!\330\r\025\220S\230\001\330\014\"\240!\330\r\025\220T\230\024\230Q\330\014\"\240!\330\r\025\220T\230\023\230A\330\014\"\240!\340\014\022\220/\240\021\240!\330\010\017\210q\330\t\027\220s\230!\330\010\035\230Q\330\010\036\230a\330\t\027\220s\230!\330\010\035\230Q\340\010\016\210o\230Q\230a\340\004\r\210Q\210d\220*\320\0340\260\014\270A\330\010\035\230V\240<\320/F\320FV\320VW\330\010\034\320\0344\3204F\320FW\320WXvoid (readstat_error_t)\000check_exit_status"; PyObject *data = NULL; CYTHON_UNUSED_VAR(__Pyx_DecompressString); #endif PyObject **stringtab = __pyx_mstate->__pyx_string_tab; Py_ssize_t pos = 0; - for (int i = 0; i < 215; i++) { + for (int i = 0; i < 221; i++) { Py_ssize_t bytes_length = index[i].length; PyObject *string = PyUnicode_DecodeUTF8(bytes + pos, bytes_length, NULL); - if (likely(string) && i >= 70) PyUnicode_InternInPlace(&string); + if (likely(string) && i >= 74) PyUnicode_InternInPlace(&string); if (unlikely(!string)) { Py_XDECREF(data); __PYX_ERR(0, 1, __pyx_L1_error) @@ -19531,7 +19594,7 @@ const char* const bytes = ")Column labels must be stringsNon unique column names stringtab[i] = string; pos += bytes_length; } - for (int i = 215; i < 219; i++) { + for (int i = 221; i < 225; i++) { Py_ssize_t bytes_length = index[i].length; PyObject *string = PyBytes_FromStringAndSize(bytes + pos, bytes_length); stringtab[i] = string; @@ -19542,14 +19605,14 @@ const char* const bytes = ")Column labels must be stringsNon unique column names } } Py_XDECREF(data); - for (Py_ssize_t i = 0; i < 219; i++) { + for (Py_ssize_t i = 0; i < 225; i++) { if (unlikely(PyObject_Hash(stringtab[i]) == -1)) { __PYX_ERR(0, 1, __pyx_L1_error) } } #if CYTHON_IMMORTAL_CONSTANTS { - PyObject **table = stringtab + 215; + PyObject **table = stringtab + 221; for (Py_ssize_t i=0; i<4; ++i) { #if CYTHON_COMPILING_IN_CPYTHON_FREETHREADING #if PY_VERSION_HEX < 0x030E0000 @@ -19641,7 +19704,7 @@ static int __Pyx_CreateCodeObjects(__pyx_mstatetype *__pyx_mstate) { PyObject* tuple_dedup_map = PyDict_New(); if (unlikely(!tuple_dedup_map)) return -1; { - const __Pyx_PyCode_New_function_description descr = {17, 0, 0, 20, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 995}; + const __Pyx_PyCode_New_function_description descr = {17, 0, 0, 20, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 992}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_df, __pyx_mstate->__pyx_n_u_dst_path, __pyx_mstate->__pyx_n_u_writer_format, __pyx_mstate->__pyx_n_u_file_label, __pyx_mstate->__pyx_n_u_version, __pyx_mstate->__pyx_n_u_table_name, __pyx_mstate->__pyx_n_u_column_labels, __pyx_mstate->__pyx_n_u_compress, __pyx_mstate->__pyx_n_u_row_compress, __pyx_mstate->__pyx_n_u_note, __pyx_mstate->__pyx_n_u_variable_value_labels, __pyx_mstate->__pyx_n_u_missing_ranges, __pyx_mstate->__pyx_n_u_variable_display_width, __pyx_mstate->__pyx_n_u_variable_measure, __pyx_mstate->__pyx_n_u_missing_user_values, __pyx_mstate->__pyx_n_u_variable_format, __pyx_mstate->__pyx_n_u_variable_alignment, __pyx_mstate->__pyx_n_u_file_format_version, __pyx_mstate->__pyx_n_u_row_compression, __pyx_mstate->__pyx_n_u_writer_file_format}; __pyx_mstate_global->__pyx_codeobj_tab[0] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_pyreadstat__readstat_writer_pyx, __pyx_mstate->__pyx_n_u_writer_entry_point, __pyx_mstate->__pyx_kp_b_iso88591_Q_22BBVVW_11K1_1_S_Q_a_9D_1_1_a, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[0])) goto bad; } @@ -21646,6 +21709,99 @@ static int __Pyx_GetException(PyObject **type, PyObject **value, PyObject **tb) #endif } +/* CIntToPyUnicode */ +static CYTHON_INLINE PyObject* __Pyx_uchar___Pyx_PyUnicode_From_int(int value, Py_ssize_t width, char padding_char) { +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wconversion" +#endif + const int neg_one = (int) -1, const_zero = (int) 0; +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic pop +#endif + const int is_unsigned = neg_one > const_zero; + if (unlikely(!(is_unsigned || value == 0 || value > 0) || + !(sizeof(value) <= 2 || value & ~ (int) 0x01fffff || __Pyx_CheckUnicodeValue((int) value)))) { + PyErr_SetString(PyExc_OverflowError, "%c arg not in range(0x110000)"); + return NULL; + } + if (width <= 1) { + return PyUnicode_FromOrdinal((int) value); + } + return __Pyx_PyUnicode_FromOrdinal_Padded((int) value, width, padding_char); +} +static CYTHON_INLINE PyObject* __Pyx____Pyx_PyUnicode_From_int(int value, Py_ssize_t width, char padding_char, char format_char) { + char digits[sizeof(int)*3+2]; + char *dpos, *end = digits + sizeof(int)*3+2; + const char *hex_digits = DIGITS_HEX; + Py_ssize_t length, ulength; + int prepend_sign, last_one_off; + int remaining; +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wconversion" +#endif + const int neg_one = (int) -1, const_zero = (int) 0; +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic pop +#endif + const int is_unsigned = neg_one > const_zero; + if (format_char == 'X') { + hex_digits += 16; + format_char = 'x'; + } + remaining = value; + last_one_off = 0; + dpos = end; + do { + int digit_pos; + switch (format_char) { + case 'o': + digit_pos = abs((int)(remaining % (8*8))); + remaining = (int) (remaining / (8*8)); + dpos -= 2; + memcpy(dpos, DIGIT_PAIRS_8 + digit_pos * 2, 2); + last_one_off = (digit_pos < 8); + break; + case 'd': + digit_pos = abs((int)(remaining % (10*10))); + remaining = (int) (remaining / (10*10)); + dpos -= 2; + memcpy(dpos, DIGIT_PAIRS_10 + digit_pos * 2, 2); + last_one_off = (digit_pos < 10); + break; + case 'x': + *(--dpos) = hex_digits[abs((int)(remaining % 16))]; + remaining = (int) (remaining / 16); + break; + default: + assert(0); + break; + } + } while (unlikely(remaining != 0)); + assert(!last_one_off || *dpos == '0'); + dpos += last_one_off; + length = end - dpos; + ulength = length; + prepend_sign = 0; + if (!is_unsigned && value <= neg_one) { + if (padding_char == ' ' || width <= length + 1) { + *(--dpos) = '-'; + ++length; + } else { + prepend_sign = 1; + } + ++ulength; + } + if (width > ulength) { + ulength = width; + } + if (ulength == 1) { + return PyUnicode_FromOrdinal(*dpos); + } + return __Pyx_PyUnicode_BuildFromAscii(ulength, dpos, (int) length, prepend_sign, padding_char); +} + /* ObjectGetItem */ #if CYTHON_USE_TYPE_SLOTS static PyObject *__Pyx_PyObject_GetIndex(PyObject *obj, PyObject *index) { @@ -22813,7 +22969,7 @@ static PyObject* __Pyx_ImportFrom(PyObject* module, PyObject* name) { if (unlikely(!module_name_str)) { goto modbad; } module_name = PyUnicode_FromString(module_name_str); if (unlikely(!module_name)) { goto modbad; } - module_dot = PyUnicode_Concat(module_name, __pyx_mstate_global->__pyx_kp_u__4); + module_dot = PyUnicode_Concat(module_name, __pyx_mstate_global->__pyx_kp_u__5); if (unlikely(!module_dot)) { goto modbad; } full_name = PyUnicode_Concat(module_dot, name); if (unlikely(!full_name)) { goto modbad; } diff --git a/pyreadstat/_readstat_writer.pyx b/pyreadstat/_readstat_writer.pyx index 4ab18db..06156c8 100644 --- a/pyreadstat/_readstat_writer.pyx +++ b/pyreadstat/_readstat_writer.pyx @@ -28,6 +28,7 @@ import numpy as np import narwhals.stable.v2 as nw from readstat_api cimport * +from libc.errno cimport errno from _readstat_parser import ReadstatError, PyreadstatError from _readstat_parser cimport check_exit_status @@ -596,6 +597,8 @@ cdef int open_file(bytes filename_bytes): return fd cdef int close_file(int fd): + if fd == -1: + return -1 if os.name == "nt": return _close(fd) else: @@ -758,6 +761,11 @@ cdef int run_write(df, object filename_path, dst_file_format file_format, str fi cdef int fd = open_file(filename_bytes) + if fd == -1: + raise PyreadstatError( + "Could not open file '%s' for writing: %s (errno %d). " + "The file may be locked by another process or you may not have write permission." + % (os.fsdecode(filename_bytes), os.strerror(errno), errno)) writer = readstat_writer_init() try: diff --git a/setup.py b/setup.py index bc9434a..bc9ec8e 100644 --- a/setup.py +++ b/setup.py @@ -129,7 +129,7 @@ def is_conda(): setup( name='pyreadstat', - version='1.3.5', + version='1.3.6', description=short_description, author="Otto Fajardo", author_email="pleasecontactviagithub@notvalid.com", diff --git a/tests/test_narwhalified.py b/tests/test_narwhalified.py index 3d9ec46..c8b0ef4 100644 --- a/tests/test_narwhalified.py +++ b/tests/test_narwhalified.py @@ -1361,6 +1361,37 @@ def test_sav_write_mixed_types(self): df2, meta = pyreadstat.read_sav(path, output_format=self.backend) self.assertTrue(df_ori.to_native().equals(df2)) + def test_write_sav_locked_file(self): + """Test that writing to a locked or unwritable file raises PyreadstatError, not a crash (issue #328).""" + from pyreadstat._readstat_parser import PyreadstatError + import stat + + df = nw.from_native(self.df_pandas).to_native() + path = os.path.join(self.write_folder, "locked_write_test.sav") + + if os.name == "nt": + import msvcrt + pyreadstat.write_sav(df, path) + f = open(path, "r+b") + msvcrt.locking(f.fileno(), msvcrt.LK_NBLCK, 1) + try: + with self.assertRaises(PyreadstatError): + pyreadstat.write_sav(df, path) + finally: + msvcrt.locking(f.fileno(), msvcrt.LK_UNLCK, 1) + f.close() + os.remove(path) + else: + pyreadstat.write_sav(df, path) + os.chmod(path, stat.S_IRUSR | stat.S_IRGRP | stat.S_IROTH) + try: + if os.getuid() != 0: + with self.assertRaises(PyreadstatError): + pyreadstat.write_sav(df, path) + finally: + os.chmod(path, stat.S_IRWXU) + os.remove(path) + def test_read_sav_file_handle(self): """Test reading SAV file from file-like object (e.g., zip archive)""" sav_file = os.path.join(self.basic_data_folder, "sample.sav") From b605fd15666d33eb37ffaa2e49cac38395d60457 Mon Sep 17 00:00:00 2001 From: Julian Sikorski Date: Mon, 6 Jul 2026 10:58:22 +0200 Subject: [PATCH 4/9] Add support for writing fractional seconds (#337) * Add support for writing fractional seconds, both pandas and polars Co-authored-by: Otto Fajardo --- pyreadstat/_readstat_writer.pyx | 20 +++++++++++--------- tests/test_narwhalified.py | 6 ++++++ 2 files changed, 17 insertions(+), 9 deletions(-) diff --git a/pyreadstat/_readstat_writer.pyx b/pyreadstat/_readstat_writer.pyx index 06156c8..582a7d7 100644 --- a/pyreadstat/_readstat_writer.pyx +++ b/pyreadstat/_readstat_writer.pyx @@ -65,19 +65,19 @@ cdef object vectorized_convert_datetime_to_number(object df, dst_file_format fil transforms datetime64 columns in the dataframe to floats """ cdef dict convfacs - cdef double offset_secs - cdef double mulfac = 1.0 + cdef long long offset_secs + cdef int mulfac = 1 cdef int col_indx cdef list col_indxs - cdef double convfac + cdef int convfac if file_format == FILE_FORMAT_SAV or file_format == FILE_FORMAT_POR: - offset_secs = spss_offset_secs + offset_secs = int(spss_offset_secs) else: - offset_secs = sas_offset_secs + offset_secs = int(sas_offset_secs) if file_format == FILE_FORMAT_DTA: # stata stores in milliseconds - mulfac = 1000.0 + mulfac = 1000 convfacs = {'ns': 1e9, 'us': 1e6, 'ms': 1e3} col_indxs = list() @@ -88,8 +88,10 @@ cdef object vectorized_convert_datetime_to_number(object df, dst_file_format fil df = df.with_columns(nw.nth(col_indxs).cast(nw.Int64)) for col_indx in col_indxs: convfac = convfacs[pywriter_timeunits[col_indx]] - df = df.with_columns(nw.when(nw.nth(col_indx)!=-9223372036854775808).then(nw.nth(col_indx))) - df = df.with_columns((((nw.nth(col_indx).cast(nw.Float64))/convfac) + offset_secs).round() * mulfac) + whole = nw.nth(col_indx) // convfac + offset_secs + frac = nw.nth(col_indx) % convfac + df = df.with_columns(nw.when(nw.nth(col_indx)!=-9223372036854775808).then( + (whole.cast(nw.Float64) * mulfac + frac.cast(nw.Float64) / convfac * mulfac))) return df @@ -139,7 +141,7 @@ cdef object vectorized_convert_time_to_number(object df, dst_file_format file_fo df = df.with_columns(nw.nth(col_indxs).cast(nw.Int64)) for col_indx in col_indxs: df = df.with_columns(nw.when(nw.nth(col_indx)!=-9223372036854775808).then(nw.nth(col_indx))) - df = df.with_columns((nw.nth(col_indx).cast(nw.Float64)/1e9).round() * mulfac) + df = df.with_columns((nw.nth(col_indx).cast(nw.Float64)/1e9).round(9) * mulfac) return df cdef double convert_datetimelike_to_number(dst_file_format file_format, pywriter_variable_type curtype, object curval) except *: diff --git a/tests/test_narwhalified.py b/tests/test_narwhalified.py index c8b0ef4..e771682 100644 --- a/tests/test_narwhalified.py +++ b/tests/test_narwhalified.py @@ -970,6 +970,12 @@ def test_xport_write_dates(self): df, meta = pyreadstat.read_xport(path, output_format=self.backend) self.assertTrue(df.equals(self.df_sas_dates2)) + def test_xport_write_fractional_seconds(self): + path = os.path.join(self.write_folder, "fractional_seconds.xpt") + pyreadstat.write_xport(self.df_sas_fractional_seconds, path) + df, meta = pyreadstat.read_xport(path, output_format=self.backend) + self.assertTrue(df.equals(self.df_sas_fractional_seconds)) + def test_sav_write_charnan(self): path = os.path.join(self.write_folder, "charnan.sav") pyreadstat.write_sav(self.df_charnan, path) From 3201e84031bb38c0c0ff97c22ba7c206f3b09df7 Mon Sep 17 00:00:00 2001 From: Eirik Date: Mon, 10 Aug 2026 16:33:00 +0200 Subject: [PATCH 5/9] Make reading from file handle thread safe (#343) * Make reading from file handle thread safe by using the `io_ctx` parameter instead of a global mutable variable. Ref: https://github.com/Roche/pyreadstat/issues/342 * Added thread safety test to use BytesIO instead of reading from disk --- README.md | 2 +- pyreadstat/_readstat_parser.pyx | 20 ++++++++------------ tests/test_narwhalified.py | 28 ++++++++++++++++++++++++++++ 3 files changed, 37 insertions(+), 13 deletions(-) diff --git a/README.md b/README.md index d1fb846..b4ff416 100644 --- a/README.md +++ b/README.md @@ -969,4 +969,4 @@ pull request to ReadStat first. [alchemyst](https://github.com/alchemyst): improvements to docstrings -[bmwiedemann](https://github.com/bmwiedemann), [toddrme2178 ](https://github.com/toddrme2178), [Martin Thorsen Ranang](https://github.com/mtr): improvements to source code +[bmwiedemann](https://github.com/bmwiedemann), [toddrme2178 ](https://github.com/toddrme2178), [Martin Thorsen Ranang](https://github.com/mtr), [Eirik Stavestrand](https://github.com/eirki): improvements to source code diff --git a/pyreadstat/_readstat_parser.pyx b/pyreadstat/_readstat_parser.pyx index 64eda3f..fc13fd1 100644 --- a/pyreadstat/_readstat_parser.pyx +++ b/pyreadstat/_readstat_parser.pyx @@ -852,7 +852,6 @@ cdef int handle_open(const char *u8_path, void *io_ctx) except READSTAT_HANDLER_ return -1 -cdef object _file_object_ctx = None cdef int pyobject_open_handler(const char *path, void *io_ctx) noexcept: """File is already open - this is a no-op""" @@ -864,13 +863,12 @@ cdef int pyobject_close_handler(void *io_ctx) noexcept: cdef ssize_t pyobject_read_handler(void *buf, size_t nbyte, void *io_ctx) noexcept: """Bridge Python file.read() to C read operation""" - global _file_object_ctx cdef bytes data cdef ssize_t bytes_read cdef char *data_ptr - + cdef object file_obj = io_ctx + try: - file_obj = _file_object_ctx data = file_obj.read(nbyte) bytes_read = len(data) if bytes_read > 0: @@ -882,18 +880,17 @@ cdef ssize_t pyobject_read_handler(void *buf, size_t nbyte, void *io_ctx) noexce cdef readstat_off_t pyobject_seek_handler(readstat_off_t offset, readstat_io_flags_t whence, void *io_ctx) noexcept: """Bridge Python file.seek() to C seek operation""" - global _file_object_ctx cdef int py_whence - + cdef object file_obj = io_ctx + try: - file_obj = _file_object_ctx if whence == READSTAT_SEEK_SET: py_whence = 0 elif whence == READSTAT_SEEK_CUR: py_whence = 1 else: # READSTAT_SEEK_END py_whence = 2 - + file_obj.seek(offset, py_whence) return file_obj.tell() except: @@ -916,11 +913,9 @@ cdef void check_exit_status(readstat_error_t retcode) except *: cdef void run_readstat_parser(char * filename, data_container data, py_file_extension file_extension, long row_limit, long row_offset, object file_obj=None) except *: """ Runs the parsing of the file by readstat library. - + If file_obj is provided, it will be used instead of filename for I/O operations. """ - global _file_object_ctx - cdef readstat_parser_t *parser cdef readstat_error_t error cdef readstat_metadata_handler metadata_handler @@ -959,11 +954,12 @@ cdef void run_readstat_parser(char * filename, data_container data, py_file_exte # Set up custom I/O handlers for file objects if file_obj is not None: - _file_object_ctx = file_obj + io_ctx = file_obj open_handler = pyobject_open_handler close_handler = pyobject_close_handler read_handler = pyobject_read_handler seek_handler = pyobject_seek_handler + readstat_set_io_ctx(parser, io_ctx) readstat_set_open_handler(parser, open_handler) readstat_set_close_handler(parser, close_handler) readstat_set_read_handler(parser, read_handler) diff --git a/tests/test_narwhalified.py b/tests/test_narwhalified.py index e771682..ceda9bf 100644 --- a/tests/test_narwhalified.py +++ b/tests/test_narwhalified.py @@ -16,12 +16,14 @@ # ############################################################################# from datetime import datetime, timedelta, date +from concurrent.futures import ThreadPoolExecutor import unittest import os import sys import shutil import multiprocessing as mp import tempfile +import time import zipfile import io @@ -1415,6 +1417,32 @@ def test_read_sav_file_handle(self): self.assertEqual(len(df.columns), len(self.df_pandas.columns)) self.assertEqual(len(df), len(self.df_pandas)) + def test_read_sav_bytesio_threads(self): + """Test reading SAV file from file-like object in multiple threads at once (tests thread safety)""" + + class SlowBytesIO(io.BytesIO): + """A BytesIO that sleeps a bit on each read. This subclass is necessary because we want + to test paralell threads reading at the same time, but the test data is so small that + the reads are too fast to overlap. """ + def read(self, *args, **kwargs): + time.sleep(0.001) + return super().read(*args, **kwargs) + + def read_sav_file(buffer): + df, meta = pyreadstat.read_sav(buffer, output_format=self.backend) + return df, meta + + sav_file = os.path.join(self.basic_data_folder, "sample.sav") + with open(sav_file, "rb") as f: + file_bytes = f.read() + num_threads = 5 + buffers = [SlowBytesIO(file_bytes) for _ in range(num_threads)] + with ThreadPoolExecutor(max_workers=num_threads) as executor: + results = list(executor.map(read_sav_file, buffers)) + for df, meta in results: + self.assertEqual(len(df.columns), len(self.df_pandas.columns)) + self.assertEqual(len(df), len(self.df_pandas)) + self.assertListEqual(list(df.columns), list(self.df_pandas.columns)) def test_read_sav_bytesio(self): """Test reading SAV file from BytesIO (simulates remote/streaming data)""" From 6c2767834a5f8053ed4d7c578876b78151f021b7 Mon Sep 17 00:00:00 2001 From: Otto Fajardo Date: Mon, 10 Aug 2026 16:43:52 +0200 Subject: [PATCH 6/9] fixing issue #344 --- pyreadstat/_readstat_parser.c | 2199 ++++++++------- pyreadstat/_readstat_writer.c | 4860 ++++++++++++++++++--------------- pyreadstat/pyreadstat.py | 9 +- 3 files changed, 3717 insertions(+), 3351 deletions(-) diff --git a/pyreadstat/_readstat_parser.c b/pyreadstat/_readstat_parser.c index b3ca69e..e3efd27 100644 --- a/pyreadstat/_readstat_parser.c +++ b/pyreadstat/_readstat_parser.c @@ -1740,7 +1740,7 @@ enum __pyx_t_10pyreadstat_16_readstat_parser_py_variable_format { }; typedef enum __pyx_t_10pyreadstat_16_readstat_parser_py_variable_format __pyx_t_10pyreadstat_16_readstat_parser_py_variable_format; -/* "pyreadstat/_readstat_parser.pyx":916 +/* "pyreadstat/_readstat_parser.pyx":913 * * * cdef void run_readstat_parser(char * filename, data_container data, py_file_extension file_extension, long row_limit, long row_offset, object file_obj=None) except *: # <<<<<<<<<<<<<< @@ -3016,7 +3016,6 @@ static PyObject *__pyx_v_10pyreadstat_16_readstat_parser_format_regex = 0; static PyObject *__pyx_v_10pyreadstat_16_readstat_parser_sas_secs_from_unix = 0; static PyObject *__pyx_v_10pyreadstat_16_readstat_parser_spss_secs_from_unix = 0; static PyObject *__pyx_v_10pyreadstat_16_readstat_parser_stata_secs_from_unix = 0; -static PyObject *__pyx_v_10pyreadstat_16_readstat_parser__file_object_ctx = 0; static __pyx_t_10pyreadstat_16_readstat_parser_py_datetime_format __pyx_f_10pyreadstat_16_readstat_parser_transform_variable_format(PyObject *, __pyx_t_10pyreadstat_16_readstat_parser_py_file_format); /*proto*/ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_transform_datetime(__pyx_t_10pyreadstat_16_readstat_parser_py_datetime_format, double, __pyx_t_10pyreadstat_16_readstat_parser_py_file_format, PyObject *, int, PyObject *, double); /*proto*/ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_metadata(readstat_metadata_t *, void *); /*proto*/ @@ -12712,8 +12711,8 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_open(char const *__pyx return __pyx_r; } -/* "pyreadstat/_readstat_parser.pyx":857 - * cdef object _file_object_ctx = None +/* "pyreadstat/_readstat_parser.pyx":856 + * * * cdef int pyobject_open_handler(const char *path, void *io_ctx) noexcept: # <<<<<<<<<<<<<< * """File is already open - this is a no-op""" @@ -12723,7 +12722,7 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_open(char const *__pyx static int __pyx_f_10pyreadstat_16_readstat_parser_pyobject_open_handler(CYTHON_UNUSED char const *__pyx_v_path, CYTHON_UNUSED void *__pyx_v_io_ctx) { int __pyx_r; - /* "pyreadstat/_readstat_parser.pyx":859 + /* "pyreadstat/_readstat_parser.pyx":858 * cdef int pyobject_open_handler(const char *path, void *io_ctx) noexcept: * """File is already open - this is a no-op""" * return 0 # <<<<<<<<<<<<<< @@ -12733,8 +12732,8 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_pyobject_open_handler(CYTHON_ __pyx_r = 0; goto __pyx_L0; - /* "pyreadstat/_readstat_parser.pyx":857 - * cdef object _file_object_ctx = None + /* "pyreadstat/_readstat_parser.pyx":856 + * * * cdef int pyobject_open_handler(const char *path, void *io_ctx) noexcept: # <<<<<<<<<<<<<< * """File is already open - this is a no-op""" @@ -12746,7 +12745,7 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_pyobject_open_handler(CYTHON_ return __pyx_r; } -/* "pyreadstat/_readstat_parser.pyx":861 +/* "pyreadstat/_readstat_parser.pyx":860 * return 0 * * cdef int pyobject_close_handler(void *io_ctx) noexcept: # <<<<<<<<<<<<<< @@ -12757,7 +12756,7 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_pyobject_open_handler(CYTHON_ static int __pyx_f_10pyreadstat_16_readstat_parser_pyobject_close_handler(CYTHON_UNUSED void *__pyx_v_io_ctx) { int __pyx_r; - /* "pyreadstat/_readstat_parser.pyx":863 + /* "pyreadstat/_readstat_parser.pyx":862 * cdef int pyobject_close_handler(void *io_ctx) noexcept: * """User manages file lifetime - this is a no-op""" * return 0 # <<<<<<<<<<<<<< @@ -12767,7 +12766,7 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_pyobject_close_handler(CYTHON __pyx_r = 0; goto __pyx_L0; - /* "pyreadstat/_readstat_parser.pyx":861 + /* "pyreadstat/_readstat_parser.pyx":860 * return 0 * * cdef int pyobject_close_handler(void *io_ctx) noexcept: # <<<<<<<<<<<<<< @@ -12780,19 +12779,19 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_pyobject_close_handler(CYTHON return __pyx_r; } -/* "pyreadstat/_readstat_parser.pyx":865 +/* "pyreadstat/_readstat_parser.pyx":864 * return 0 * * cdef ssize_t pyobject_read_handler(void *buf, size_t nbyte, void *io_ctx) noexcept: # <<<<<<<<<<<<<< * """Bridge Python file.read() to C read operation""" - * global _file_object_ctx + * cdef bytes data */ -static Py_ssize_t __pyx_f_10pyreadstat_16_readstat_parser_pyobject_read_handler(void *__pyx_v_buf, size_t __pyx_v_nbyte, CYTHON_UNUSED void *__pyx_v_io_ctx) { +static Py_ssize_t __pyx_f_10pyreadstat_16_readstat_parser_pyobject_read_handler(void *__pyx_v_buf, size_t __pyx_v_nbyte, void *__pyx_v_io_ctx) { PyObject *__pyx_v_data = 0; Py_ssize_t __pyx_v_bytes_read; char *__pyx_v_data_ptr; - PyObject *__pyx_v_file_obj = NULL; + PyObject *__pyx_v_file_obj = 0; Py_ssize_t __pyx_r; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; @@ -12810,58 +12809,60 @@ static Py_ssize_t __pyx_f_10pyreadstat_16_readstat_parser_pyobject_read_handler( int __pyx_clineno = 0; __Pyx_RefNannySetupContext("pyobject_read_handler", 0); - /* "pyreadstat/_readstat_parser.pyx":872 + /* "pyreadstat/_readstat_parser.pyx":869 + * cdef ssize_t bytes_read * cdef char *data_ptr + * cdef object file_obj = io_ctx # <<<<<<<<<<<<<< + * + * try: +*/ + __pyx_t_1 = ((PyObject *)__pyx_v_io_ctx); + __Pyx_INCREF(__pyx_t_1); + __pyx_v_file_obj = __pyx_t_1; + __pyx_t_1 = 0; + + /* "pyreadstat/_readstat_parser.pyx":871 + * cdef object file_obj = io_ctx * * try: # <<<<<<<<<<<<<< - * file_obj = _file_object_ctx * data = file_obj.read(nbyte) + * bytes_read = len(data) */ { __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign - __Pyx_ExceptionSave(&__pyx_t_1, &__pyx_t_2, &__pyx_t_3); - __Pyx_XGOTREF(__pyx_t_1); + __Pyx_ExceptionSave(&__pyx_t_2, &__pyx_t_3, &__pyx_t_4); __Pyx_XGOTREF(__pyx_t_2); __Pyx_XGOTREF(__pyx_t_3); + __Pyx_XGOTREF(__pyx_t_4); /*try:*/ { - /* "pyreadstat/_readstat_parser.pyx":873 + /* "pyreadstat/_readstat_parser.pyx":872 * * try: - * file_obj = _file_object_ctx # <<<<<<<<<<<<<< - * data = file_obj.read(nbyte) - * bytes_read = len(data) -*/ - __Pyx_INCREF(__pyx_v_10pyreadstat_16_readstat_parser__file_object_ctx); - __pyx_v_file_obj = __pyx_v_10pyreadstat_16_readstat_parser__file_object_ctx; - - /* "pyreadstat/_readstat_parser.pyx":874 - * try: - * file_obj = _file_object_ctx * data = file_obj.read(nbyte) # <<<<<<<<<<<<<< * bytes_read = len(data) * if bytes_read > 0: */ __pyx_t_5 = __pyx_v_file_obj; __Pyx_INCREF(__pyx_t_5); - __pyx_t_6 = __Pyx_PyLong_FromSize_t(__pyx_v_nbyte); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 874, __pyx_L3_error) + __pyx_t_6 = __Pyx_PyLong_FromSize_t(__pyx_v_nbyte); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 872, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_7 = 0; { PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_6}; - __pyx_t_4 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_read, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_read, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 874, __pyx_L3_error) - __Pyx_GOTREF(__pyx_t_4); + if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 872, __pyx_L3_error) + __Pyx_GOTREF(__pyx_t_1); } - if (!(likely(PyBytes_CheckExact(__pyx_t_4))||((__pyx_t_4) == Py_None) || __Pyx_RaiseUnexpectedTypeError("bytes", __pyx_t_4))) __PYX_ERR(0, 874, __pyx_L3_error) - __pyx_v_data = ((PyObject*)__pyx_t_4); - __pyx_t_4 = 0; + if (!(likely(PyBytes_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("bytes", __pyx_t_1))) __PYX_ERR(0, 872, __pyx_L3_error) + __pyx_v_data = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; - /* "pyreadstat/_readstat_parser.pyx":875 - * file_obj = _file_object_ctx + /* "pyreadstat/_readstat_parser.pyx":873 + * try: * data = file_obj.read(nbyte) * bytes_read = len(data) # <<<<<<<<<<<<<< * if bytes_read > 0: @@ -12869,12 +12870,12 @@ static Py_ssize_t __pyx_f_10pyreadstat_16_readstat_parser_pyobject_read_handler( */ if (unlikely(__pyx_v_data == Py_None)) { PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()"); - __PYX_ERR(0, 875, __pyx_L3_error) + __PYX_ERR(0, 873, __pyx_L3_error) } - __pyx_t_8 = __Pyx_PyBytes_GET_SIZE(__pyx_v_data); if (unlikely(__pyx_t_8 == ((Py_ssize_t)-1))) __PYX_ERR(0, 875, __pyx_L3_error) + __pyx_t_8 = __Pyx_PyBytes_GET_SIZE(__pyx_v_data); if (unlikely(__pyx_t_8 == ((Py_ssize_t)-1))) __PYX_ERR(0, 873, __pyx_L3_error) __pyx_v_bytes_read = __pyx_t_8; - /* "pyreadstat/_readstat_parser.pyx":876 + /* "pyreadstat/_readstat_parser.pyx":874 * data = file_obj.read(nbyte) * bytes_read = len(data) * if bytes_read > 0: # <<<<<<<<<<<<<< @@ -12884,7 +12885,7 @@ static Py_ssize_t __pyx_f_10pyreadstat_16_readstat_parser_pyobject_read_handler( __pyx_t_9 = (__pyx_v_bytes_read > 0); if (__pyx_t_9) { - /* "pyreadstat/_readstat_parser.pyx":877 + /* "pyreadstat/_readstat_parser.pyx":875 * bytes_read = len(data) * if bytes_read > 0: * data_ptr = data # <<<<<<<<<<<<<< @@ -12893,12 +12894,12 @@ static Py_ssize_t __pyx_f_10pyreadstat_16_readstat_parser_pyobject_read_handler( */ if (unlikely(__pyx_v_data == Py_None)) { PyErr_SetString(PyExc_TypeError, "expected bytes, NoneType found"); - __PYX_ERR(0, 877, __pyx_L3_error) + __PYX_ERR(0, 875, __pyx_L3_error) } - __pyx_t_10 = __Pyx_PyBytes_AsWritableString(__pyx_v_data); if (unlikely((!__pyx_t_10) && PyErr_Occurred())) __PYX_ERR(0, 877, __pyx_L3_error) + __pyx_t_10 = __Pyx_PyBytes_AsWritableString(__pyx_v_data); if (unlikely((!__pyx_t_10) && PyErr_Occurred())) __PYX_ERR(0, 875, __pyx_L3_error) __pyx_v_data_ptr = ((char *)__pyx_t_10); - /* "pyreadstat/_readstat_parser.pyx":878 + /* "pyreadstat/_readstat_parser.pyx":876 * if bytes_read > 0: * data_ptr = data * memcpy(buf, data_ptr, bytes_read) # <<<<<<<<<<<<<< @@ -12907,7 +12908,7 @@ static Py_ssize_t __pyx_f_10pyreadstat_16_readstat_parser_pyobject_read_handler( */ (void)(memcpy(__pyx_v_buf, __pyx_v_data_ptr, __pyx_v_bytes_read)); - /* "pyreadstat/_readstat_parser.pyx":876 + /* "pyreadstat/_readstat_parser.pyx":874 * data = file_obj.read(nbyte) * bytes_read = len(data) * if bytes_read > 0: # <<<<<<<<<<<<<< @@ -12916,7 +12917,7 @@ static Py_ssize_t __pyx_f_10pyreadstat_16_readstat_parser_pyobject_read_handler( */ } - /* "pyreadstat/_readstat_parser.pyx":879 + /* "pyreadstat/_readstat_parser.pyx":877 * data_ptr = data * memcpy(buf, data_ptr, bytes_read) * return bytes_read # <<<<<<<<<<<<<< @@ -12926,20 +12927,20 @@ static Py_ssize_t __pyx_f_10pyreadstat_16_readstat_parser_pyobject_read_handler( __pyx_r = __pyx_v_bytes_read; goto __pyx_L7_try_return; - /* "pyreadstat/_readstat_parser.pyx":872 - * cdef char *data_ptr + /* "pyreadstat/_readstat_parser.pyx":871 + * cdef object file_obj = io_ctx * * try: # <<<<<<<<<<<<<< - * file_obj = _file_object_ctx * data = file_obj.read(nbyte) + * bytes_read = len(data) */ } __pyx_L3_error:; - __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; - /* "pyreadstat/_readstat_parser.pyx":880 + /* "pyreadstat/_readstat_parser.pyx":878 * memcpy(buf, data_ptr, bytes_read) * return bytes_read * except: # <<<<<<<<<<<<<< @@ -12949,7 +12950,7 @@ static Py_ssize_t __pyx_f_10pyreadstat_16_readstat_parser_pyobject_read_handler( /*except:*/ { __Pyx_ErrRestore(0,0,0); - /* "pyreadstat/_readstat_parser.pyx":881 + /* "pyreadstat/_readstat_parser.pyx":879 * return bytes_read * except: * return -1 # <<<<<<<<<<<<<< @@ -12960,33 +12961,33 @@ static Py_ssize_t __pyx_f_10pyreadstat_16_readstat_parser_pyobject_read_handler( goto __pyx_L6_except_return; } - /* "pyreadstat/_readstat_parser.pyx":872 - * cdef char *data_ptr + /* "pyreadstat/_readstat_parser.pyx":871 + * cdef object file_obj = io_ctx * * try: # <<<<<<<<<<<<<< - * file_obj = _file_object_ctx * data = file_obj.read(nbyte) + * bytes_read = len(data) */ __pyx_L7_try_return:; - __Pyx_XGIVEREF(__pyx_t_1); __Pyx_XGIVEREF(__pyx_t_2); __Pyx_XGIVEREF(__pyx_t_3); - __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3); + __Pyx_XGIVEREF(__pyx_t_4); + __Pyx_ExceptionReset(__pyx_t_2, __pyx_t_3, __pyx_t_4); goto __pyx_L0; __pyx_L6_except_return:; - __Pyx_XGIVEREF(__pyx_t_1); __Pyx_XGIVEREF(__pyx_t_2); __Pyx_XGIVEREF(__pyx_t_3); - __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3); + __Pyx_XGIVEREF(__pyx_t_4); + __Pyx_ExceptionReset(__pyx_t_2, __pyx_t_3, __pyx_t_4); goto __pyx_L0; } - /* "pyreadstat/_readstat_parser.pyx":865 + /* "pyreadstat/_readstat_parser.pyx":864 * return 0 * * cdef ssize_t pyobject_read_handler(void *buf, size_t nbyte, void *io_ctx) noexcept: # <<<<<<<<<<<<<< * """Bridge Python file.read() to C read operation""" - * global _file_object_ctx + * cdef bytes data */ /* function exit code */ @@ -12997,17 +12998,17 @@ static Py_ssize_t __pyx_f_10pyreadstat_16_readstat_parser_pyobject_read_handler( return __pyx_r; } -/* "pyreadstat/_readstat_parser.pyx":883 +/* "pyreadstat/_readstat_parser.pyx":881 * return -1 * * cdef readstat_off_t pyobject_seek_handler(readstat_off_t offset, readstat_io_flags_t whence, void *io_ctx) noexcept: # <<<<<<<<<<<<<< * """Bridge Python file.seek() to C seek operation""" - * global _file_object_ctx + * cdef int py_whence */ -static readstat_off_t __pyx_f_10pyreadstat_16_readstat_parser_pyobject_seek_handler(readstat_off_t __pyx_v_offset, readstat_io_flags_t __pyx_v_whence, CYTHON_UNUSED void *__pyx_v_io_ctx) { +static readstat_off_t __pyx_f_10pyreadstat_16_readstat_parser_pyobject_seek_handler(readstat_off_t __pyx_v_offset, readstat_io_flags_t __pyx_v_whence, void *__pyx_v_io_ctx) { int __pyx_v_py_whence; - PyObject *__pyx_v_file_obj = NULL; + PyObject *__pyx_v_file_obj = 0; readstat_off_t __pyx_r; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; @@ -13024,35 +13025,37 @@ static readstat_off_t __pyx_f_10pyreadstat_16_readstat_parser_pyobject_seek_hand int __pyx_clineno = 0; __Pyx_RefNannySetupContext("pyobject_seek_handler", 0); - /* "pyreadstat/_readstat_parser.pyx":888 + /* "pyreadstat/_readstat_parser.pyx":884 + * """Bridge Python file.seek() to C seek operation""" * cdef int py_whence + * cdef object file_obj = io_ctx # <<<<<<<<<<<<<< + * + * try: +*/ + __pyx_t_1 = ((PyObject *)__pyx_v_io_ctx); + __Pyx_INCREF(__pyx_t_1); + __pyx_v_file_obj = __pyx_t_1; + __pyx_t_1 = 0; + + /* "pyreadstat/_readstat_parser.pyx":886 + * cdef object file_obj = io_ctx * * try: # <<<<<<<<<<<<<< - * file_obj = _file_object_ctx * if whence == READSTAT_SEEK_SET: + * py_whence = 0 */ { __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign - __Pyx_ExceptionSave(&__pyx_t_1, &__pyx_t_2, &__pyx_t_3); - __Pyx_XGOTREF(__pyx_t_1); + __Pyx_ExceptionSave(&__pyx_t_2, &__pyx_t_3, &__pyx_t_4); __Pyx_XGOTREF(__pyx_t_2); __Pyx_XGOTREF(__pyx_t_3); + __Pyx_XGOTREF(__pyx_t_4); /*try:*/ { - /* "pyreadstat/_readstat_parser.pyx":889 + /* "pyreadstat/_readstat_parser.pyx":887 * * try: - * file_obj = _file_object_ctx # <<<<<<<<<<<<<< - * if whence == READSTAT_SEEK_SET: - * py_whence = 0 -*/ - __Pyx_INCREF(__pyx_v_10pyreadstat_16_readstat_parser__file_object_ctx); - __pyx_v_file_obj = __pyx_v_10pyreadstat_16_readstat_parser__file_object_ctx; - - /* "pyreadstat/_readstat_parser.pyx":890 - * try: - * file_obj = _file_object_ctx * if whence == READSTAT_SEEK_SET: # <<<<<<<<<<<<<< * py_whence = 0 * elif whence == READSTAT_SEEK_CUR: @@ -13060,8 +13063,8 @@ static readstat_off_t __pyx_f_10pyreadstat_16_readstat_parser_pyobject_seek_hand switch (__pyx_v_whence) { case READSTAT_SEEK_SET: - /* "pyreadstat/_readstat_parser.pyx":891 - * file_obj = _file_object_ctx + /* "pyreadstat/_readstat_parser.pyx":888 + * try: * if whence == READSTAT_SEEK_SET: * py_whence = 0 # <<<<<<<<<<<<<< * elif whence == READSTAT_SEEK_CUR: @@ -13069,9 +13072,9 @@ static readstat_off_t __pyx_f_10pyreadstat_16_readstat_parser_pyobject_seek_hand */ __pyx_v_py_whence = 0; - /* "pyreadstat/_readstat_parser.pyx":890 + /* "pyreadstat/_readstat_parser.pyx":887 + * * try: - * file_obj = _file_object_ctx * if whence == READSTAT_SEEK_SET: # <<<<<<<<<<<<<< * py_whence = 0 * elif whence == READSTAT_SEEK_CUR: @@ -13079,7 +13082,7 @@ static readstat_off_t __pyx_f_10pyreadstat_16_readstat_parser_pyobject_seek_hand break; case READSTAT_SEEK_CUR: - /* "pyreadstat/_readstat_parser.pyx":893 + /* "pyreadstat/_readstat_parser.pyx":890 * py_whence = 0 * elif whence == READSTAT_SEEK_CUR: * py_whence = 1 # <<<<<<<<<<<<<< @@ -13088,7 +13091,7 @@ static readstat_off_t __pyx_f_10pyreadstat_16_readstat_parser_pyobject_seek_hand */ __pyx_v_py_whence = 1; - /* "pyreadstat/_readstat_parser.pyx":892 + /* "pyreadstat/_readstat_parser.pyx":889 * if whence == READSTAT_SEEK_SET: * py_whence = 0 * elif whence == READSTAT_SEEK_CUR: # <<<<<<<<<<<<<< @@ -13098,7 +13101,7 @@ static readstat_off_t __pyx_f_10pyreadstat_16_readstat_parser_pyobject_seek_hand break; default: - /* "pyreadstat/_readstat_parser.pyx":895 + /* "pyreadstat/_readstat_parser.pyx":892 * py_whence = 1 * else: # READSTAT_SEEK_END * py_whence = 2 # <<<<<<<<<<<<<< @@ -13109,7 +13112,7 @@ static readstat_off_t __pyx_f_10pyreadstat_16_readstat_parser_pyobject_seek_hand break; } - /* "pyreadstat/_readstat_parser.pyx":897 + /* "pyreadstat/_readstat_parser.pyx":894 * py_whence = 2 * * file_obj.seek(offset, py_whence) # <<<<<<<<<<<<<< @@ -13118,23 +13121,23 @@ static readstat_off_t __pyx_f_10pyreadstat_16_readstat_parser_pyobject_seek_hand */ __pyx_t_5 = __pyx_v_file_obj; __Pyx_INCREF(__pyx_t_5); - __pyx_t_6 = __Pyx_PyLong_From_off_t(__pyx_v_offset); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 897, __pyx_L3_error) + __pyx_t_6 = __Pyx_PyLong_From_off_t(__pyx_v_offset); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 894, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_6); - __pyx_t_7 = __Pyx_PyLong_From_int(__pyx_v_py_whence); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 897, __pyx_L3_error) + __pyx_t_7 = __Pyx_PyLong_From_int(__pyx_v_py_whence); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 894, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_8 = 0; { PyObject *__pyx_callargs[3] = {__pyx_t_5, __pyx_t_6, __pyx_t_7}; - __pyx_t_4 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_seek, __pyx_callargs+__pyx_t_8, (3-__pyx_t_8) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_seek, __pyx_callargs+__pyx_t_8, (3-__pyx_t_8) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 897, __pyx_L3_error) - __Pyx_GOTREF(__pyx_t_4); + if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 894, __pyx_L3_error) + __Pyx_GOTREF(__pyx_t_1); } - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "pyreadstat/_readstat_parser.pyx":898 + /* "pyreadstat/_readstat_parser.pyx":895 * * file_obj.seek(offset, py_whence) * return file_obj.tell() # <<<<<<<<<<<<<< @@ -13146,31 +13149,31 @@ static readstat_off_t __pyx_f_10pyreadstat_16_readstat_parser_pyobject_seek_hand __pyx_t_8 = 0; { PyObject *__pyx_callargs[2] = {__pyx_t_7, NULL}; - __pyx_t_4 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_tell, __pyx_callargs+__pyx_t_8, (1-__pyx_t_8) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_tell, __pyx_callargs+__pyx_t_8, (1-__pyx_t_8) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 898, __pyx_L3_error) - __Pyx_GOTREF(__pyx_t_4); + if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 895, __pyx_L3_error) + __Pyx_GOTREF(__pyx_t_1); } - __pyx_t_9 = __Pyx_PyLong_As_off_t(__pyx_t_4); if (unlikely((__pyx_t_9 == ((readstat_off_t)-1)) && PyErr_Occurred())) __PYX_ERR(0, 898, __pyx_L3_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_9 = __Pyx_PyLong_As_off_t(__pyx_t_1); if (unlikely((__pyx_t_9 == ((readstat_off_t)-1)) && PyErr_Occurred())) __PYX_ERR(0, 895, __pyx_L3_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_r = __pyx_t_9; goto __pyx_L7_try_return; - /* "pyreadstat/_readstat_parser.pyx":888 - * cdef int py_whence + /* "pyreadstat/_readstat_parser.pyx":886 + * cdef object file_obj = io_ctx * * try: # <<<<<<<<<<<<<< - * file_obj = _file_object_ctx * if whence == READSTAT_SEEK_SET: + * py_whence = 0 */ } __pyx_L3_error:; - __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; - /* "pyreadstat/_readstat_parser.pyx":899 + /* "pyreadstat/_readstat_parser.pyx":896 * file_obj.seek(offset, py_whence) * return file_obj.tell() * except: # <<<<<<<<<<<<<< @@ -13180,7 +13183,7 @@ static readstat_off_t __pyx_f_10pyreadstat_16_readstat_parser_pyobject_seek_hand /*except:*/ { __Pyx_ErrRestore(0,0,0); - /* "pyreadstat/_readstat_parser.pyx":900 + /* "pyreadstat/_readstat_parser.pyx":897 * return file_obj.tell() * except: * return -1 # <<<<<<<<<<<<<< @@ -13191,33 +13194,33 @@ static readstat_off_t __pyx_f_10pyreadstat_16_readstat_parser_pyobject_seek_hand goto __pyx_L6_except_return; } - /* "pyreadstat/_readstat_parser.pyx":888 - * cdef int py_whence + /* "pyreadstat/_readstat_parser.pyx":886 + * cdef object file_obj = io_ctx * * try: # <<<<<<<<<<<<<< - * file_obj = _file_object_ctx * if whence == READSTAT_SEEK_SET: + * py_whence = 0 */ __pyx_L7_try_return:; - __Pyx_XGIVEREF(__pyx_t_1); __Pyx_XGIVEREF(__pyx_t_2); __Pyx_XGIVEREF(__pyx_t_3); - __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3); + __Pyx_XGIVEREF(__pyx_t_4); + __Pyx_ExceptionReset(__pyx_t_2, __pyx_t_3, __pyx_t_4); goto __pyx_L0; __pyx_L6_except_return:; - __Pyx_XGIVEREF(__pyx_t_1); __Pyx_XGIVEREF(__pyx_t_2); __Pyx_XGIVEREF(__pyx_t_3); - __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3); + __Pyx_XGIVEREF(__pyx_t_4); + __Pyx_ExceptionReset(__pyx_t_2, __pyx_t_3, __pyx_t_4); goto __pyx_L0; } - /* "pyreadstat/_readstat_parser.pyx":883 + /* "pyreadstat/_readstat_parser.pyx":881 * return -1 * * cdef readstat_off_t pyobject_seek_handler(readstat_off_t offset, readstat_io_flags_t whence, void *io_ctx) noexcept: # <<<<<<<<<<<<<< * """Bridge Python file.seek() to C seek operation""" - * global _file_object_ctx + * cdef int py_whence */ /* function exit code */ @@ -13227,7 +13230,7 @@ static readstat_off_t __pyx_f_10pyreadstat_16_readstat_parser_pyobject_seek_hand return __pyx_r; } -/* "pyreadstat/_readstat_parser.pyx":903 +/* "pyreadstat/_readstat_parser.pyx":900 * * * cdef void check_exit_status(readstat_error_t retcode) except *: # <<<<<<<<<<<<<< @@ -13249,7 +13252,7 @@ static void __pyx_f_10pyreadstat_16_readstat_parser_check_exit_status(readstat_e int __pyx_clineno = 0; __Pyx_RefNannySetupContext("check_exit_status", 0); - /* "pyreadstat/_readstat_parser.pyx":910 + /* "pyreadstat/_readstat_parser.pyx":907 * cdef const char * err_readstat * cdef str err_message * if retcode != READSTAT_OK: # <<<<<<<<<<<<<< @@ -13259,7 +13262,7 @@ static void __pyx_f_10pyreadstat_16_readstat_parser_check_exit_status(readstat_e __pyx_t_1 = (__pyx_v_retcode != READSTAT_OK); if (unlikely(__pyx_t_1)) { - /* "pyreadstat/_readstat_parser.pyx":911 + /* "pyreadstat/_readstat_parser.pyx":908 * cdef str err_message * if retcode != READSTAT_OK: * err_readstat = readstat_error_message(retcode) # <<<<<<<<<<<<<< @@ -13268,14 +13271,14 @@ static void __pyx_f_10pyreadstat_16_readstat_parser_check_exit_status(readstat_e */ __pyx_v_err_readstat = readstat_error_message(__pyx_v_retcode); - /* "pyreadstat/_readstat_parser.pyx":912 + /* "pyreadstat/_readstat_parser.pyx":909 * if retcode != READSTAT_OK: * err_readstat = readstat_error_message(retcode) * err_message = err_readstat # <<<<<<<<<<<<<< * raise ReadstatError(err_message) * */ - __pyx_t_2 = __Pyx_PyUnicode_FromString(__pyx_v_err_readstat); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 912, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyUnicode_FromString(__pyx_v_err_readstat); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 909, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = __pyx_t_2; __Pyx_INCREF(__pyx_t_3); @@ -13283,7 +13286,7 @@ static void __pyx_f_10pyreadstat_16_readstat_parser_check_exit_status(readstat_e __pyx_v_err_message = ((PyObject*)__pyx_t_3); __pyx_t_3 = 0; - /* "pyreadstat/_readstat_parser.pyx":913 + /* "pyreadstat/_readstat_parser.pyx":910 * err_readstat = readstat_error_message(retcode) * err_message = err_readstat * raise ReadstatError(err_message) # <<<<<<<<<<<<<< @@ -13291,7 +13294,7 @@ static void __pyx_f_10pyreadstat_16_readstat_parser_check_exit_status(readstat_e * */ __pyx_t_2 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_ReadstatError); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 913, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_ReadstatError); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 910, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = 1; #if CYTHON_UNPACK_METHODS @@ -13310,14 +13313,14 @@ static void __pyx_f_10pyreadstat_16_readstat_parser_check_exit_status(readstat_e __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 913, __pyx_L1_error) + if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 910, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); } __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __PYX_ERR(0, 913, __pyx_L1_error) + __PYX_ERR(0, 910, __pyx_L1_error) - /* "pyreadstat/_readstat_parser.pyx":910 + /* "pyreadstat/_readstat_parser.pyx":907 * cdef const char * err_readstat * cdef str err_message * if retcode != READSTAT_OK: # <<<<<<<<<<<<<< @@ -13326,7 +13329,7 @@ static void __pyx_f_10pyreadstat_16_readstat_parser_check_exit_status(readstat_e */ } - /* "pyreadstat/_readstat_parser.pyx":903 + /* "pyreadstat/_readstat_parser.pyx":900 * * * cdef void check_exit_status(readstat_error_t retcode) except *: # <<<<<<<<<<<<<< @@ -13346,7 +13349,7 @@ static void __pyx_f_10pyreadstat_16_readstat_parser_check_exit_status(readstat_e __Pyx_RefNannyFinishContext(); } -/* "pyreadstat/_readstat_parser.pyx":916 +/* "pyreadstat/_readstat_parser.pyx":913 * * * cdef void run_readstat_parser(char * filename, data_container data, py_file_extension file_extension, long row_limit, long row_offset, object file_obj=None) except *: # <<<<<<<<<<<<<< @@ -13370,6 +13373,7 @@ static void __pyx_f_10pyreadstat_16_readstat_parser_run_readstat_parser(char *__ void *__pyx_v_ctx; PyObject *__pyx_v_pyerr; int __pyx_v_metaonly; + void *__pyx_v_io_ctx; PyObject *__pyx_v_encoding_bytes = NULL; __Pyx_RefNannyDeclarations int __pyx_t_1; @@ -13386,7 +13390,7 @@ static void __pyx_f_10pyreadstat_16_readstat_parser_run_readstat_parser(char *__ } } - /* "pyreadstat/_readstat_parser.pyx":943 + /* "pyreadstat/_readstat_parser.pyx":938 * cdef bytes encoding_byte * * metaonly = data.metaonly # <<<<<<<<<<<<<< @@ -13396,7 +13400,7 @@ static void __pyx_f_10pyreadstat_16_readstat_parser_run_readstat_parser(char *__ __pyx_t_1 = __pyx_v_data->metaonly; __pyx_v_metaonly = __pyx_t_1; - /* "pyreadstat/_readstat_parser.pyx":944 + /* "pyreadstat/_readstat_parser.pyx":939 * * metaonly = data.metaonly * ctx = data # <<<<<<<<<<<<<< @@ -13405,7 +13409,7 @@ static void __pyx_f_10pyreadstat_16_readstat_parser_run_readstat_parser(char *__ */ __pyx_v_ctx = ((void *)__pyx_v_data); - /* "pyreadstat/_readstat_parser.pyx":946 + /* "pyreadstat/_readstat_parser.pyx":941 * ctx = data * * error = READSTAT_OK; # <<<<<<<<<<<<<< @@ -13414,7 +13418,7 @@ static void __pyx_f_10pyreadstat_16_readstat_parser_run_readstat_parser(char *__ */ __pyx_v_error = READSTAT_OK; - /* "pyreadstat/_readstat_parser.pyx":947 + /* "pyreadstat/_readstat_parser.pyx":942 * * error = READSTAT_OK; * parser = readstat_parser_init() # <<<<<<<<<<<<<< @@ -13423,7 +13427,7 @@ static void __pyx_f_10pyreadstat_16_readstat_parser_run_readstat_parser(char *__ */ __pyx_v_parser = readstat_parser_init(); - /* "pyreadstat/_readstat_parser.pyx":948 + /* "pyreadstat/_readstat_parser.pyx":943 * error = READSTAT_OK; * parser = readstat_parser_init() * metadata_handler = handle_metadata # <<<<<<<<<<<<<< @@ -13432,7 +13436,7 @@ static void __pyx_f_10pyreadstat_16_readstat_parser_run_readstat_parser(char *__ */ __pyx_v_metadata_handler = ((readstat_metadata_handler)__pyx_f_10pyreadstat_16_readstat_parser_handle_metadata); - /* "pyreadstat/_readstat_parser.pyx":949 + /* "pyreadstat/_readstat_parser.pyx":944 * parser = readstat_parser_init() * metadata_handler = handle_metadata * variable_handler = handle_variable # <<<<<<<<<<<<<< @@ -13441,7 +13445,7 @@ static void __pyx_f_10pyreadstat_16_readstat_parser_run_readstat_parser(char *__ */ __pyx_v_variable_handler = ((readstat_variable_handler)__pyx_f_10pyreadstat_16_readstat_parser_handle_variable); - /* "pyreadstat/_readstat_parser.pyx":950 + /* "pyreadstat/_readstat_parser.pyx":945 * metadata_handler = handle_metadata * variable_handler = handle_variable * value_handler = handle_value # <<<<<<<<<<<<<< @@ -13450,7 +13454,7 @@ static void __pyx_f_10pyreadstat_16_readstat_parser_run_readstat_parser(char *__ */ __pyx_v_value_handler = ((readstat_value_handler)__pyx_f_10pyreadstat_16_readstat_parser_handle_value); - /* "pyreadstat/_readstat_parser.pyx":951 + /* "pyreadstat/_readstat_parser.pyx":946 * variable_handler = handle_variable * value_handler = handle_value * value_label_handler = handle_value_label # <<<<<<<<<<<<<< @@ -13459,7 +13463,7 @@ static void __pyx_f_10pyreadstat_16_readstat_parser_run_readstat_parser(char *__ */ __pyx_v_value_label_handler = ((readstat_value_label_handler)__pyx_f_10pyreadstat_16_readstat_parser_handle_value_label); - /* "pyreadstat/_readstat_parser.pyx":952 + /* "pyreadstat/_readstat_parser.pyx":947 * value_handler = handle_value * value_label_handler = handle_value_label * note_handler = handle_note # <<<<<<<<<<<<<< @@ -13468,75 +13472,72 @@ static void __pyx_f_10pyreadstat_16_readstat_parser_run_readstat_parser(char *__ */ __pyx_v_note_handler = ((readstat_note_handler)__pyx_f_10pyreadstat_16_readstat_parser_handle_note); - /* "pyreadstat/_readstat_parser.pyx":955 + /* "pyreadstat/_readstat_parser.pyx":950 * * * check_exit_status(readstat_set_metadata_handler(parser, metadata_handler)) # <<<<<<<<<<<<<< * check_exit_status(readstat_set_variable_handler(parser, variable_handler)) * check_exit_status(readstat_set_value_label_handler(parser, value_label_handler)) */ - __pyx_f_10pyreadstat_16_readstat_parser_check_exit_status(readstat_set_metadata_handler(__pyx_v_parser, __pyx_v_metadata_handler)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 955, __pyx_L1_error) + __pyx_f_10pyreadstat_16_readstat_parser_check_exit_status(readstat_set_metadata_handler(__pyx_v_parser, __pyx_v_metadata_handler)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 950, __pyx_L1_error) - /* "pyreadstat/_readstat_parser.pyx":956 + /* "pyreadstat/_readstat_parser.pyx":951 * * check_exit_status(readstat_set_metadata_handler(parser, metadata_handler)) * check_exit_status(readstat_set_variable_handler(parser, variable_handler)) # <<<<<<<<<<<<<< * check_exit_status(readstat_set_value_label_handler(parser, value_label_handler)) * check_exit_status(readstat_set_note_handler(parser, note_handler)) */ - __pyx_f_10pyreadstat_16_readstat_parser_check_exit_status(readstat_set_variable_handler(__pyx_v_parser, __pyx_v_variable_handler)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 956, __pyx_L1_error) + __pyx_f_10pyreadstat_16_readstat_parser_check_exit_status(readstat_set_variable_handler(__pyx_v_parser, __pyx_v_variable_handler)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 951, __pyx_L1_error) - /* "pyreadstat/_readstat_parser.pyx":957 + /* "pyreadstat/_readstat_parser.pyx":952 * check_exit_status(readstat_set_metadata_handler(parser, metadata_handler)) * check_exit_status(readstat_set_variable_handler(parser, variable_handler)) * check_exit_status(readstat_set_value_label_handler(parser, value_label_handler)) # <<<<<<<<<<<<<< * check_exit_status(readstat_set_note_handler(parser, note_handler)) * */ - __pyx_f_10pyreadstat_16_readstat_parser_check_exit_status(readstat_set_value_label_handler(__pyx_v_parser, __pyx_v_value_label_handler)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 957, __pyx_L1_error) + __pyx_f_10pyreadstat_16_readstat_parser_check_exit_status(readstat_set_value_label_handler(__pyx_v_parser, __pyx_v_value_label_handler)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 952, __pyx_L1_error) - /* "pyreadstat/_readstat_parser.pyx":958 + /* "pyreadstat/_readstat_parser.pyx":953 * check_exit_status(readstat_set_variable_handler(parser, variable_handler)) * check_exit_status(readstat_set_value_label_handler(parser, value_label_handler)) * check_exit_status(readstat_set_note_handler(parser, note_handler)) # <<<<<<<<<<<<<< * * # Set up custom I/O handlers for file objects */ - __pyx_f_10pyreadstat_16_readstat_parser_check_exit_status(readstat_set_note_handler(__pyx_v_parser, __pyx_v_note_handler)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 958, __pyx_L1_error) + __pyx_f_10pyreadstat_16_readstat_parser_check_exit_status(readstat_set_note_handler(__pyx_v_parser, __pyx_v_note_handler)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 953, __pyx_L1_error) - /* "pyreadstat/_readstat_parser.pyx":961 + /* "pyreadstat/_readstat_parser.pyx":956 * * # Set up custom I/O handlers for file objects * if file_obj is not None: # <<<<<<<<<<<<<< - * _file_object_ctx = file_obj + * io_ctx = file_obj * open_handler = pyobject_open_handler */ __pyx_t_1 = (__pyx_v_file_obj != Py_None); if (__pyx_t_1) { - /* "pyreadstat/_readstat_parser.pyx":962 + /* "pyreadstat/_readstat_parser.pyx":957 * # Set up custom I/O handlers for file objects * if file_obj is not None: - * _file_object_ctx = file_obj # <<<<<<<<<<<<<< + * io_ctx = file_obj # <<<<<<<<<<<<<< * open_handler = pyobject_open_handler * close_handler = pyobject_close_handler */ - __Pyx_INCREF(__pyx_v_file_obj); - __Pyx_XGOTREF(__pyx_v_10pyreadstat_16_readstat_parser__file_object_ctx); - __Pyx_DECREF_SET(__pyx_v_10pyreadstat_16_readstat_parser__file_object_ctx, __pyx_v_file_obj); - __Pyx_GIVEREF(__pyx_v_file_obj); + __pyx_v_io_ctx = ((void *)__pyx_v_file_obj); - /* "pyreadstat/_readstat_parser.pyx":963 + /* "pyreadstat/_readstat_parser.pyx":958 * if file_obj is not None: - * _file_object_ctx = file_obj + * io_ctx = file_obj * open_handler = pyobject_open_handler # <<<<<<<<<<<<<< * close_handler = pyobject_close_handler * read_handler = pyobject_read_handler */ __pyx_v_open_handler = ((readstat_open_handler)__pyx_f_10pyreadstat_16_readstat_parser_pyobject_open_handler); - /* "pyreadstat/_readstat_parser.pyx":964 - * _file_object_ctx = file_obj + /* "pyreadstat/_readstat_parser.pyx":959 + * io_ctx = file_obj * open_handler = pyobject_open_handler * close_handler = pyobject_close_handler # <<<<<<<<<<<<<< * read_handler = pyobject_read_handler @@ -13544,35 +13545,44 @@ static void __pyx_f_10pyreadstat_16_readstat_parser_run_readstat_parser(char *__ */ __pyx_v_close_handler = ((readstat_close_handler)__pyx_f_10pyreadstat_16_readstat_parser_pyobject_close_handler); - /* "pyreadstat/_readstat_parser.pyx":965 + /* "pyreadstat/_readstat_parser.pyx":960 * open_handler = pyobject_open_handler * close_handler = pyobject_close_handler * read_handler = pyobject_read_handler # <<<<<<<<<<<<<< * seek_handler = pyobject_seek_handler - * readstat_set_open_handler(parser, open_handler) + * readstat_set_io_ctx(parser, io_ctx) */ __pyx_v_read_handler = ((readstat_read_handler)__pyx_f_10pyreadstat_16_readstat_parser_pyobject_read_handler); - /* "pyreadstat/_readstat_parser.pyx":966 + /* "pyreadstat/_readstat_parser.pyx":961 * close_handler = pyobject_close_handler * read_handler = pyobject_read_handler * seek_handler = pyobject_seek_handler # <<<<<<<<<<<<<< + * readstat_set_io_ctx(parser, io_ctx) * readstat_set_open_handler(parser, open_handler) - * readstat_set_close_handler(parser, close_handler) */ __pyx_v_seek_handler = ((readstat_seek_handler)__pyx_f_10pyreadstat_16_readstat_parser_pyobject_seek_handler); - /* "pyreadstat/_readstat_parser.pyx":967 + /* "pyreadstat/_readstat_parser.pyx":962 * read_handler = pyobject_read_handler * seek_handler = pyobject_seek_handler + * readstat_set_io_ctx(parser, io_ctx) # <<<<<<<<<<<<<< + * readstat_set_open_handler(parser, open_handler) + * readstat_set_close_handler(parser, close_handler) +*/ + (void)(readstat_set_io_ctx(__pyx_v_parser, __pyx_v_io_ctx)); + + /* "pyreadstat/_readstat_parser.pyx":963 + * seek_handler = pyobject_seek_handler + * readstat_set_io_ctx(parser, io_ctx) * readstat_set_open_handler(parser, open_handler) # <<<<<<<<<<<<<< * readstat_set_close_handler(parser, close_handler) * readstat_set_read_handler(parser, read_handler) */ (void)(readstat_set_open_handler(__pyx_v_parser, __pyx_v_open_handler)); - /* "pyreadstat/_readstat_parser.pyx":968 - * seek_handler = pyobject_seek_handler + /* "pyreadstat/_readstat_parser.pyx":964 + * readstat_set_io_ctx(parser, io_ctx) * readstat_set_open_handler(parser, open_handler) * readstat_set_close_handler(parser, close_handler) # <<<<<<<<<<<<<< * readstat_set_read_handler(parser, read_handler) @@ -13580,7 +13590,7 @@ static void __pyx_f_10pyreadstat_16_readstat_parser_run_readstat_parser(char *__ */ (void)(readstat_set_close_handler(__pyx_v_parser, __pyx_v_close_handler)); - /* "pyreadstat/_readstat_parser.pyx":969 + /* "pyreadstat/_readstat_parser.pyx":965 * readstat_set_open_handler(parser, open_handler) * readstat_set_close_handler(parser, close_handler) * readstat_set_read_handler(parser, read_handler) # <<<<<<<<<<<<<< @@ -13589,7 +13599,7 @@ static void __pyx_f_10pyreadstat_16_readstat_parser_run_readstat_parser(char *__ */ (void)(readstat_set_read_handler(__pyx_v_parser, __pyx_v_read_handler)); - /* "pyreadstat/_readstat_parser.pyx":970 + /* "pyreadstat/_readstat_parser.pyx":966 * readstat_set_close_handler(parser, close_handler) * readstat_set_read_handler(parser, read_handler) * readstat_set_seek_handler(parser, seek_handler) # <<<<<<<<<<<<<< @@ -13598,33 +13608,33 @@ static void __pyx_f_10pyreadstat_16_readstat_parser_run_readstat_parser(char *__ */ (void)(readstat_set_seek_handler(__pyx_v_parser, __pyx_v_seek_handler)); - /* "pyreadstat/_readstat_parser.pyx":961 + /* "pyreadstat/_readstat_parser.pyx":956 * * # Set up custom I/O handlers for file objects * if file_obj is not None: # <<<<<<<<<<<<<< - * _file_object_ctx = file_obj + * io_ctx = file_obj * open_handler = pyobject_open_handler */ goto __pyx_L3; } - /* "pyreadstat/_readstat_parser.pyx":971 + /* "pyreadstat/_readstat_parser.pyx":967 * readstat_set_read_handler(parser, read_handler) * readstat_set_seek_handler(parser, seek_handler) * elif os.name == "nt": # <<<<<<<<<<<<<< * # on windows we need a custom open handler in order to deal with internation characters in the path. * open_handler = handle_open */ - __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_os); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 971, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_os); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 967, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_name); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 971, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_name); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 967, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_nt, Py_EQ)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 971, __pyx_L1_error) + __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_nt, Py_EQ)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 967, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (__pyx_t_1) { - /* "pyreadstat/_readstat_parser.pyx":973 + /* "pyreadstat/_readstat_parser.pyx":969 * elif os.name == "nt": * # on windows we need a custom open handler in order to deal with internation characters in the path. * open_handler = handle_open # <<<<<<<<<<<<<< @@ -13633,7 +13643,7 @@ static void __pyx_f_10pyreadstat_16_readstat_parser_run_readstat_parser(char *__ */ __pyx_v_open_handler = ((readstat_open_handler)__pyx_f_10pyreadstat_16_readstat_parser_handle_open); - /* "pyreadstat/_readstat_parser.pyx":974 + /* "pyreadstat/_readstat_parser.pyx":970 * # on windows we need a custom open handler in order to deal with internation characters in the path. * open_handler = handle_open * readstat_set_open_handler(parser, open_handler) # <<<<<<<<<<<<<< @@ -13642,7 +13652,7 @@ static void __pyx_f_10pyreadstat_16_readstat_parser_run_readstat_parser(char *__ */ (void)(readstat_set_open_handler(__pyx_v_parser, __pyx_v_open_handler)); - /* "pyreadstat/_readstat_parser.pyx":971 + /* "pyreadstat/_readstat_parser.pyx":967 * readstat_set_read_handler(parser, read_handler) * readstat_set_seek_handler(parser, seek_handler) * elif os.name == "nt": # <<<<<<<<<<<<<< @@ -13652,7 +13662,7 @@ static void __pyx_f_10pyreadstat_16_readstat_parser_run_readstat_parser(char *__ } __pyx_L3:; - /* "pyreadstat/_readstat_parser.pyx":976 + /* "pyreadstat/_readstat_parser.pyx":972 * readstat_set_open_handler(parser, open_handler) * * if not metaonly: # <<<<<<<<<<<<<< @@ -13662,16 +13672,16 @@ static void __pyx_f_10pyreadstat_16_readstat_parser_run_readstat_parser(char *__ __pyx_t_1 = (!__pyx_v_metaonly); if (__pyx_t_1) { - /* "pyreadstat/_readstat_parser.pyx":977 + /* "pyreadstat/_readstat_parser.pyx":973 * * if not metaonly: * check_exit_status(readstat_set_value_handler(parser, value_handler)) # <<<<<<<<<<<<<< * * # if the user set the encoding manually */ - __pyx_f_10pyreadstat_16_readstat_parser_check_exit_status(readstat_set_value_handler(__pyx_v_parser, __pyx_v_value_handler)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 977, __pyx_L1_error) + __pyx_f_10pyreadstat_16_readstat_parser_check_exit_status(readstat_set_value_handler(__pyx_v_parser, __pyx_v_value_handler)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 973, __pyx_L1_error) - /* "pyreadstat/_readstat_parser.pyx":976 + /* "pyreadstat/_readstat_parser.pyx":972 * readstat_set_open_handler(parser, open_handler) * * if not metaonly: # <<<<<<<<<<<<<< @@ -13680,7 +13690,7 @@ static void __pyx_f_10pyreadstat_16_readstat_parser_run_readstat_parser(char *__ */ } - /* "pyreadstat/_readstat_parser.pyx":980 + /* "pyreadstat/_readstat_parser.pyx":976 * * # if the user set the encoding manually * if data.user_encoding: # <<<<<<<<<<<<<< @@ -13691,13 +13701,13 @@ static void __pyx_f_10pyreadstat_16_readstat_parser_run_readstat_parser(char *__ else { Py_ssize_t __pyx_temp = __Pyx_PyUnicode_IS_TRUE(__pyx_v_data->user_encoding); - if (unlikely(((!CYTHON_ASSUME_SAFE_SIZE) && __pyx_temp < 0))) __PYX_ERR(0, 980, __pyx_L1_error) + if (unlikely(((!CYTHON_ASSUME_SAFE_SIZE) && __pyx_temp < 0))) __PYX_ERR(0, 976, __pyx_L1_error) __pyx_t_1 = (__pyx_temp != 0); } if (__pyx_t_1) { - /* "pyreadstat/_readstat_parser.pyx":981 + /* "pyreadstat/_readstat_parser.pyx":977 * # if the user set the encoding manually * if data.user_encoding: * encoding_bytes = data.user_encoding.encode("utf-8") # <<<<<<<<<<<<<< @@ -13706,24 +13716,24 @@ static void __pyx_f_10pyreadstat_16_readstat_parser_run_readstat_parser(char *__ */ if (unlikely(__pyx_v_data->user_encoding == Py_None)) { PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "encode"); - __PYX_ERR(0, 981, __pyx_L1_error) + __PYX_ERR(0, 977, __pyx_L1_error) } - __pyx_t_3 = PyUnicode_AsUTF8String(__pyx_v_data->user_encoding); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 981, __pyx_L1_error) + __pyx_t_3 = PyUnicode_AsUTF8String(__pyx_v_data->user_encoding); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 977, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_v_encoding_bytes = ((PyObject*)__pyx_t_3); __pyx_t_3 = 0; - /* "pyreadstat/_readstat_parser.pyx":982 + /* "pyreadstat/_readstat_parser.pyx":978 * if data.user_encoding: * encoding_bytes = data.user_encoding.encode("utf-8") * readstat_set_file_character_encoding(parser, encoding_bytes) # <<<<<<<<<<<<<< * * if row_limit: */ - __pyx_t_4 = __Pyx_PyBytes_AsWritableString(__pyx_v_encoding_bytes); if (unlikely((!__pyx_t_4) && PyErr_Occurred())) __PYX_ERR(0, 982, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyBytes_AsWritableString(__pyx_v_encoding_bytes); if (unlikely((!__pyx_t_4) && PyErr_Occurred())) __PYX_ERR(0, 978, __pyx_L1_error) (void)(readstat_set_file_character_encoding(__pyx_v_parser, ((char *)__pyx_t_4))); - /* "pyreadstat/_readstat_parser.pyx":980 + /* "pyreadstat/_readstat_parser.pyx":976 * * # if the user set the encoding manually * if data.user_encoding: # <<<<<<<<<<<<<< @@ -13732,7 +13742,7 @@ static void __pyx_f_10pyreadstat_16_readstat_parser_run_readstat_parser(char *__ */ } - /* "pyreadstat/_readstat_parser.pyx":984 + /* "pyreadstat/_readstat_parser.pyx":980 * readstat_set_file_character_encoding(parser, encoding_bytes) * * if row_limit: # <<<<<<<<<<<<<< @@ -13742,16 +13752,16 @@ static void __pyx_f_10pyreadstat_16_readstat_parser_run_readstat_parser(char *__ __pyx_t_1 = (__pyx_v_row_limit != 0); if (__pyx_t_1) { - /* "pyreadstat/_readstat_parser.pyx":985 + /* "pyreadstat/_readstat_parser.pyx":981 * * if row_limit: * check_exit_status(readstat_set_row_limit(parser, row_limit)) # <<<<<<<<<<<<<< * * if row_offset: */ - __pyx_f_10pyreadstat_16_readstat_parser_check_exit_status(readstat_set_row_limit(__pyx_v_parser, __pyx_v_row_limit)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 985, __pyx_L1_error) + __pyx_f_10pyreadstat_16_readstat_parser_check_exit_status(readstat_set_row_limit(__pyx_v_parser, __pyx_v_row_limit)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 981, __pyx_L1_error) - /* "pyreadstat/_readstat_parser.pyx":984 + /* "pyreadstat/_readstat_parser.pyx":980 * readstat_set_file_character_encoding(parser, encoding_bytes) * * if row_limit: # <<<<<<<<<<<<<< @@ -13760,7 +13770,7 @@ static void __pyx_f_10pyreadstat_16_readstat_parser_run_readstat_parser(char *__ */ } - /* "pyreadstat/_readstat_parser.pyx":987 + /* "pyreadstat/_readstat_parser.pyx":983 * check_exit_status(readstat_set_row_limit(parser, row_limit)) * * if row_offset: # <<<<<<<<<<<<<< @@ -13770,16 +13780,16 @@ static void __pyx_f_10pyreadstat_16_readstat_parser_run_readstat_parser(char *__ __pyx_t_1 = (__pyx_v_row_offset != 0); if (__pyx_t_1) { - /* "pyreadstat/_readstat_parser.pyx":988 + /* "pyreadstat/_readstat_parser.pyx":984 * * if row_offset: * check_exit_status(readstat_set_row_offset(parser, row_offset)) # <<<<<<<<<<<<<< * * # parse! */ - __pyx_f_10pyreadstat_16_readstat_parser_check_exit_status(readstat_set_row_offset(__pyx_v_parser, __pyx_v_row_offset)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 988, __pyx_L1_error) + __pyx_f_10pyreadstat_16_readstat_parser_check_exit_status(readstat_set_row_offset(__pyx_v_parser, __pyx_v_row_offset)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 984, __pyx_L1_error) - /* "pyreadstat/_readstat_parser.pyx":987 + /* "pyreadstat/_readstat_parser.pyx":983 * check_exit_status(readstat_set_row_limit(parser, row_limit)) * * if row_offset: # <<<<<<<<<<<<<< @@ -13788,7 +13798,7 @@ static void __pyx_f_10pyreadstat_16_readstat_parser_run_readstat_parser(char *__ */ } - /* "pyreadstat/_readstat_parser.pyx":991 + /* "pyreadstat/_readstat_parser.pyx":987 * * # parse! * if file_extension == FILE_EXT_SAV: # <<<<<<<<<<<<<< @@ -13798,7 +13808,7 @@ static void __pyx_f_10pyreadstat_16_readstat_parser_run_readstat_parser(char *__ switch (__pyx_v_file_extension) { case __pyx_e_10pyreadstat_16_readstat_parser_FILE_EXT_SAV: - /* "pyreadstat/_readstat_parser.pyx":992 + /* "pyreadstat/_readstat_parser.pyx":988 * # parse! * if file_extension == FILE_EXT_SAV: * error = readstat_parse_sav(parser, filename, ctx); # <<<<<<<<<<<<<< @@ -13807,7 +13817,7 @@ static void __pyx_f_10pyreadstat_16_readstat_parser_run_readstat_parser(char *__ */ __pyx_v_error = readstat_parse_sav(__pyx_v_parser, __pyx_v_filename, __pyx_v_ctx); - /* "pyreadstat/_readstat_parser.pyx":991 + /* "pyreadstat/_readstat_parser.pyx":987 * * # parse! * if file_extension == FILE_EXT_SAV: # <<<<<<<<<<<<<< @@ -13817,7 +13827,7 @@ static void __pyx_f_10pyreadstat_16_readstat_parser_run_readstat_parser(char *__ break; case __pyx_e_10pyreadstat_16_readstat_parser_FILE_EXT_SAS7BDAT: - /* "pyreadstat/_readstat_parser.pyx":994 + /* "pyreadstat/_readstat_parser.pyx":990 * error = readstat_parse_sav(parser, filename, ctx); * elif file_extension == FILE_EXT_SAS7BDAT: * error = readstat_parse_sas7bdat(parser, filename, ctx); # <<<<<<<<<<<<<< @@ -13826,7 +13836,7 @@ static void __pyx_f_10pyreadstat_16_readstat_parser_run_readstat_parser(char *__ */ __pyx_v_error = readstat_parse_sas7bdat(__pyx_v_parser, __pyx_v_filename, __pyx_v_ctx); - /* "pyreadstat/_readstat_parser.pyx":993 + /* "pyreadstat/_readstat_parser.pyx":989 * if file_extension == FILE_EXT_SAV: * error = readstat_parse_sav(parser, filename, ctx); * elif file_extension == FILE_EXT_SAS7BDAT: # <<<<<<<<<<<<<< @@ -13836,7 +13846,7 @@ static void __pyx_f_10pyreadstat_16_readstat_parser_run_readstat_parser(char *__ break; case __pyx_e_10pyreadstat_16_readstat_parser_FILE_EXT_DTA: - /* "pyreadstat/_readstat_parser.pyx":996 + /* "pyreadstat/_readstat_parser.pyx":992 * error = readstat_parse_sas7bdat(parser, filename, ctx); * elif file_extension == FILE_EXT_DTA: * error = readstat_parse_dta(parser, filename, ctx); # <<<<<<<<<<<<<< @@ -13845,7 +13855,7 @@ static void __pyx_f_10pyreadstat_16_readstat_parser_run_readstat_parser(char *__ */ __pyx_v_error = readstat_parse_dta(__pyx_v_parser, __pyx_v_filename, __pyx_v_ctx); - /* "pyreadstat/_readstat_parser.pyx":995 + /* "pyreadstat/_readstat_parser.pyx":991 * elif file_extension == FILE_EXT_SAS7BDAT: * error = readstat_parse_sas7bdat(parser, filename, ctx); * elif file_extension == FILE_EXT_DTA: # <<<<<<<<<<<<<< @@ -13855,7 +13865,7 @@ static void __pyx_f_10pyreadstat_16_readstat_parser_run_readstat_parser(char *__ break; case __pyx_e_10pyreadstat_16_readstat_parser_FILE_EXT_XPORT: - /* "pyreadstat/_readstat_parser.pyx":998 + /* "pyreadstat/_readstat_parser.pyx":994 * error = readstat_parse_dta(parser, filename, ctx); * elif file_extension == FILE_EXT_XPORT: * error = readstat_parse_xport(parser, filename, ctx); # <<<<<<<<<<<<<< @@ -13864,7 +13874,7 @@ static void __pyx_f_10pyreadstat_16_readstat_parser_run_readstat_parser(char *__ */ __pyx_v_error = readstat_parse_xport(__pyx_v_parser, __pyx_v_filename, __pyx_v_ctx); - /* "pyreadstat/_readstat_parser.pyx":997 + /* "pyreadstat/_readstat_parser.pyx":993 * elif file_extension == FILE_EXT_DTA: * error = readstat_parse_dta(parser, filename, ctx); * elif file_extension == FILE_EXT_XPORT: # <<<<<<<<<<<<<< @@ -13874,7 +13884,7 @@ static void __pyx_f_10pyreadstat_16_readstat_parser_run_readstat_parser(char *__ break; case __pyx_e_10pyreadstat_16_readstat_parser_FILE_EXT_POR: - /* "pyreadstat/_readstat_parser.pyx":1000 + /* "pyreadstat/_readstat_parser.pyx":996 * error = readstat_parse_xport(parser, filename, ctx); * elif file_extension == FILE_EXT_POR: * error = readstat_parse_por(parser, filename, ctx); # <<<<<<<<<<<<<< @@ -13883,7 +13893,7 @@ static void __pyx_f_10pyreadstat_16_readstat_parser_run_readstat_parser(char *__ */ __pyx_v_error = readstat_parse_por(__pyx_v_parser, __pyx_v_filename, __pyx_v_ctx); - /* "pyreadstat/_readstat_parser.pyx":999 + /* "pyreadstat/_readstat_parser.pyx":995 * elif file_extension == FILE_EXT_XPORT: * error = readstat_parse_xport(parser, filename, ctx); * elif file_extension == FILE_EXT_POR: # <<<<<<<<<<<<<< @@ -13893,7 +13903,7 @@ static void __pyx_f_10pyreadstat_16_readstat_parser_run_readstat_parser(char *__ break; case __pyx_e_10pyreadstat_16_readstat_parser_FILE_EXT_SAS7BCAT: - /* "pyreadstat/_readstat_parser.pyx":1002 + /* "pyreadstat/_readstat_parser.pyx":998 * error = readstat_parse_por(parser, filename, ctx); * elif file_extension == FILE_EXT_SAS7BCAT: * error = readstat_parse_sas7bcat(parser, filename, ctx); # <<<<<<<<<<<<<< @@ -13902,7 +13912,7 @@ static void __pyx_f_10pyreadstat_16_readstat_parser_run_readstat_parser(char *__ */ __pyx_v_error = readstat_parse_sas7bcat(__pyx_v_parser, __pyx_v_filename, __pyx_v_ctx); - /* "pyreadstat/_readstat_parser.pyx":1001 + /* "pyreadstat/_readstat_parser.pyx":997 * elif file_extension == FILE_EXT_POR: * error = readstat_parse_por(parser, filename, ctx); * elif file_extension == FILE_EXT_SAS7BCAT: # <<<<<<<<<<<<<< @@ -13913,7 +13923,7 @@ static void __pyx_f_10pyreadstat_16_readstat_parser_run_readstat_parser(char *__ default: break; } - /* "pyreadstat/_readstat_parser.pyx":1004 + /* "pyreadstat/_readstat_parser.pyx":1000 * error = readstat_parse_sas7bcat(parser, filename, ctx); * #error = parse_func(parser, filename, ctx); * readstat_parser_free(parser) # <<<<<<<<<<<<<< @@ -13922,7 +13932,7 @@ static void __pyx_f_10pyreadstat_16_readstat_parser_run_readstat_parser(char *__ */ readstat_parser_free(__pyx_v_parser); - /* "pyreadstat/_readstat_parser.pyx":1007 + /* "pyreadstat/_readstat_parser.pyx":1003 * # check if a python error ocurred, if yes, it will be printed by the interpreter, * # if not, make sure that the return from parse_func is OK, if not print * pyerr = PyErr_Occurred() # <<<<<<<<<<<<<< @@ -13931,7 +13941,7 @@ static void __pyx_f_10pyreadstat_16_readstat_parser_run_readstat_parser(char *__ */ __pyx_v_pyerr = PyErr_Occurred(); - /* "pyreadstat/_readstat_parser.pyx":1008 + /* "pyreadstat/_readstat_parser.pyx":1004 * # if not, make sure that the return from parse_func is OK, if not print * pyerr = PyErr_Occurred() * if pyerr == NULL: # <<<<<<<<<<<<<< @@ -13941,16 +13951,16 @@ static void __pyx_f_10pyreadstat_16_readstat_parser_run_readstat_parser(char *__ __pyx_t_1 = (((void *)__pyx_v_pyerr) == NULL); if (__pyx_t_1) { - /* "pyreadstat/_readstat_parser.pyx":1009 + /* "pyreadstat/_readstat_parser.pyx":1005 * pyerr = PyErr_Occurred() * if pyerr == NULL: * check_exit_status(error) # <<<<<<<<<<<<<< * * */ - __pyx_f_10pyreadstat_16_readstat_parser_check_exit_status(__pyx_v_error); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1009, __pyx_L1_error) + __pyx_f_10pyreadstat_16_readstat_parser_check_exit_status(__pyx_v_error); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1005, __pyx_L1_error) - /* "pyreadstat/_readstat_parser.pyx":1008 + /* "pyreadstat/_readstat_parser.pyx":1004 * # if not, make sure that the return from parse_func is OK, if not print * pyerr = PyErr_Occurred() * if pyerr == NULL: # <<<<<<<<<<<<<< @@ -13959,7 +13969,7 @@ static void __pyx_f_10pyreadstat_16_readstat_parser_run_readstat_parser(char *__ */ } - /* "pyreadstat/_readstat_parser.pyx":916 + /* "pyreadstat/_readstat_parser.pyx":913 * * * cdef void run_readstat_parser(char * filename, data_container data, py_file_extension file_extension, long row_limit, long row_offset, object file_obj=None) except *: # <<<<<<<<<<<<<< @@ -13978,7 +13988,7 @@ static void __pyx_f_10pyreadstat_16_readstat_parser_run_readstat_parser(char *__ __Pyx_RefNannyFinishContext(); } -/* "pyreadstat/_readstat_parser.pyx":1012 +/* "pyreadstat/_readstat_parser.pyx":1008 * * * cdef object data_container_to_dict(data_container data): # <<<<<<<<<<<<<< @@ -14012,7 +14022,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_data_container_to_dict( int __pyx_clineno = 0; __Pyx_RefNannySetupContext("data_container_to_dict", 0); - /* "pyreadstat/_readstat_parser.pyx":1026 + /* "pyreadstat/_readstat_parser.pyx":1022 * cdef bint metaonly * * final_container = OrderedDict() # <<<<<<<<<<<<<< @@ -14020,7 +14030,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_data_container_to_dict( * col_names = data.col_names */ __pyx_t_2 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_OrderedDict); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1026, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_OrderedDict); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1022, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = 1; #if CYTHON_UNPACK_METHODS @@ -14039,13 +14049,13 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_data_container_to_dict( __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_3, __pyx_callargs+__pyx_t_4, (1-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1026, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1022, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } __pyx_v_final_container = __pyx_t_1; __pyx_t_1 = 0; - /* "pyreadstat/_readstat_parser.pyx":1027 + /* "pyreadstat/_readstat_parser.pyx":1023 * * final_container = OrderedDict() * col_data = data.col_data # <<<<<<<<<<<<<< @@ -14057,7 +14067,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_data_container_to_dict( __pyx_v_col_data = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - /* "pyreadstat/_readstat_parser.pyx":1028 + /* "pyreadstat/_readstat_parser.pyx":1024 * final_container = OrderedDict() * col_data = data.col_data * col_names = data.col_names # <<<<<<<<<<<<<< @@ -14069,7 +14079,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_data_container_to_dict( __pyx_v_col_names = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - /* "pyreadstat/_readstat_parser.pyx":1029 + /* "pyreadstat/_readstat_parser.pyx":1025 * col_data = data.col_data * col_names = data.col_names * is_unkown_number_rows = data.is_unkown_number_rows # <<<<<<<<<<<<<< @@ -14079,7 +14089,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_data_container_to_dict( __pyx_t_5 = __pyx_v_data->is_unkown_number_rows; __pyx_v_is_unkown_number_rows = __pyx_t_5; - /* "pyreadstat/_readstat_parser.pyx":1030 + /* "pyreadstat/_readstat_parser.pyx":1026 * col_names = data.col_names * is_unkown_number_rows = data.is_unkown_number_rows * max_n_obs = data.max_n_obs # <<<<<<<<<<<<<< @@ -14089,7 +14099,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_data_container_to_dict( __pyx_t_6 = __pyx_v_data->max_n_obs; __pyx_v_max_n_obs = __pyx_t_6; - /* "pyreadstat/_readstat_parser.pyx":1031 + /* "pyreadstat/_readstat_parser.pyx":1027 * is_unkown_number_rows = data.is_unkown_number_rows * max_n_obs = data.max_n_obs * metaonly = data.metaonly # <<<<<<<<<<<<<< @@ -14099,7 +14109,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_data_container_to_dict( __pyx_t_5 = __pyx_v_data->metaonly; __pyx_v_metaonly = __pyx_t_5; - /* "pyreadstat/_readstat_parser.pyx":1033 + /* "pyreadstat/_readstat_parser.pyx":1029 * metaonly = data.metaonly * * for fc_cnt in range(0, len(col_names)): # <<<<<<<<<<<<<< @@ -14108,14 +14118,14 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_data_container_to_dict( */ if (unlikely(__pyx_v_col_names == Py_None)) { PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()"); - __PYX_ERR(0, 1033, __pyx_L1_error) + __PYX_ERR(0, 1029, __pyx_L1_error) } - __pyx_t_7 = __Pyx_PyList_GET_SIZE(__pyx_v_col_names); if (unlikely(__pyx_t_7 == ((Py_ssize_t)-1))) __PYX_ERR(0, 1033, __pyx_L1_error) + __pyx_t_7 = __Pyx_PyList_GET_SIZE(__pyx_v_col_names); if (unlikely(__pyx_t_7 == ((Py_ssize_t)-1))) __PYX_ERR(0, 1029, __pyx_L1_error) __pyx_t_8 = __pyx_t_7; for (__pyx_t_6 = 0; __pyx_t_6 < __pyx_t_8; __pyx_t_6+=1) { __pyx_v_fc_cnt = __pyx_t_6; - /* "pyreadstat/_readstat_parser.pyx":1034 + /* "pyreadstat/_readstat_parser.pyx":1030 * * for fc_cnt in range(0, len(col_names)): * cur_name_str = col_names[fc_cnt] # <<<<<<<<<<<<<< @@ -14124,15 +14134,15 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_data_container_to_dict( */ if (unlikely(__pyx_v_col_names == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 1034, __pyx_L1_error) + __PYX_ERR(0, 1030, __pyx_L1_error) } - __pyx_t_1 = __Pyx_GetItemInt_List(__pyx_v_col_names, __pyx_v_fc_cnt, int, 1, __Pyx_PyLong_From_int, 1, 1, 1, 1, __Pyx_ReferenceSharing_OwnStrongReference); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1034, __pyx_L1_error) + __pyx_t_1 = __Pyx_GetItemInt_List(__pyx_v_col_names, __pyx_v_fc_cnt, int, 1, __Pyx_PyLong_From_int, 1, 1, 1, 1, __Pyx_ReferenceSharing_OwnStrongReference); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1030, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - if (!(likely(PyUnicode_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("str", __pyx_t_1))) __PYX_ERR(0, 1034, __pyx_L1_error) + if (!(likely(PyUnicode_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("str", __pyx_t_1))) __PYX_ERR(0, 1030, __pyx_L1_error) __Pyx_XDECREF_SET(__pyx_v_cur_name_str, ((PyObject*)__pyx_t_1)); __pyx_t_1 = 0; - /* "pyreadstat/_readstat_parser.pyx":1035 + /* "pyreadstat/_readstat_parser.pyx":1031 * for fc_cnt in range(0, len(col_names)): * cur_name_str = col_names[fc_cnt] * cur_data = col_data[fc_cnt] # <<<<<<<<<<<<<< @@ -14141,14 +14151,14 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_data_container_to_dict( */ if (unlikely(__pyx_v_col_data == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 1035, __pyx_L1_error) + __PYX_ERR(0, 1031, __pyx_L1_error) } - __pyx_t_1 = __Pyx_GetItemInt_List(__pyx_v_col_data, __pyx_v_fc_cnt, int, 1, __Pyx_PyLong_From_int, 1, 1, 1, 1, __Pyx_ReferenceSharing_OwnStrongReference); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1035, __pyx_L1_error) + __pyx_t_1 = __Pyx_GetItemInt_List(__pyx_v_col_data, __pyx_v_fc_cnt, int, 1, __Pyx_PyLong_From_int, 1, 1, 1, 1, __Pyx_ReferenceSharing_OwnStrongReference); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1031, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_XDECREF_SET(__pyx_v_cur_data, __pyx_t_1); __pyx_t_1 = 0; - /* "pyreadstat/_readstat_parser.pyx":1036 + /* "pyreadstat/_readstat_parser.pyx":1032 * cur_name_str = col_names[fc_cnt] * cur_data = col_data[fc_cnt] * if is_unkown_number_rows and not metaonly: # <<<<<<<<<<<<<< @@ -14165,19 +14175,19 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_data_container_to_dict( __pyx_L6_bool_binop_done:; if (__pyx_t_5) { - /* "pyreadstat/_readstat_parser.pyx":1037 + /* "pyreadstat/_readstat_parser.pyx":1033 * cur_data = col_data[fc_cnt] * if is_unkown_number_rows and not metaonly: * cur_data = cur_data[0:max_n_obs] # <<<<<<<<<<<<<< * if not metaonly: * final_container[cur_name_str] = cur_data */ - __pyx_t_1 = __Pyx_PyObject_GetSlice(__pyx_v_cur_data, 0, __pyx_v_max_n_obs, NULL, NULL, NULL, 1, 1, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1037, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_GetSlice(__pyx_v_cur_data, 0, __pyx_v_max_n_obs, NULL, NULL, NULL, 1, 1, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1033, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_cur_data, __pyx_t_1); __pyx_t_1 = 0; - /* "pyreadstat/_readstat_parser.pyx":1036 + /* "pyreadstat/_readstat_parser.pyx":1032 * cur_name_str = col_names[fc_cnt] * cur_data = col_data[fc_cnt] * if is_unkown_number_rows and not metaonly: # <<<<<<<<<<<<<< @@ -14186,7 +14196,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_data_container_to_dict( */ } - /* "pyreadstat/_readstat_parser.pyx":1038 + /* "pyreadstat/_readstat_parser.pyx":1034 * if is_unkown_number_rows and not metaonly: * cur_data = cur_data[0:max_n_obs] * if not metaonly: # <<<<<<<<<<<<<< @@ -14196,16 +14206,16 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_data_container_to_dict( __pyx_t_5 = (!__pyx_v_metaonly); if (__pyx_t_5) { - /* "pyreadstat/_readstat_parser.pyx":1039 + /* "pyreadstat/_readstat_parser.pyx":1035 * cur_data = cur_data[0:max_n_obs] * if not metaonly: * final_container[cur_name_str] = cur_data # <<<<<<<<<<<<<< * else: * final_container[cur_name_str] = list() */ - if (unlikely((PyObject_SetItem(__pyx_v_final_container, __pyx_v_cur_name_str, __pyx_v_cur_data) < 0))) __PYX_ERR(0, 1039, __pyx_L1_error) + if (unlikely((PyObject_SetItem(__pyx_v_final_container, __pyx_v_cur_name_str, __pyx_v_cur_data) < 0))) __PYX_ERR(0, 1035, __pyx_L1_error) - /* "pyreadstat/_readstat_parser.pyx":1038 + /* "pyreadstat/_readstat_parser.pyx":1034 * if is_unkown_number_rows and not metaonly: * cur_data = cur_data[0:max_n_obs] * if not metaonly: # <<<<<<<<<<<<<< @@ -14215,7 +14225,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_data_container_to_dict( goto __pyx_L8; } - /* "pyreadstat/_readstat_parser.pyx":1041 + /* "pyreadstat/_readstat_parser.pyx":1037 * final_container[cur_name_str] = cur_data * else: * final_container[cur_name_str] = list() # <<<<<<<<<<<<<< @@ -14223,15 +14233,15 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_data_container_to_dict( * return final_container */ /*else*/ { - __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1041, __pyx_L1_error) + __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1037, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - if (unlikely((PyObject_SetItem(__pyx_v_final_container, __pyx_v_cur_name_str, __pyx_t_1) < 0))) __PYX_ERR(0, 1041, __pyx_L1_error) + if (unlikely((PyObject_SetItem(__pyx_v_final_container, __pyx_v_cur_name_str, __pyx_t_1) < 0))) __PYX_ERR(0, 1037, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } __pyx_L8:; } - /* "pyreadstat/_readstat_parser.pyx":1043 + /* "pyreadstat/_readstat_parser.pyx":1039 * final_container[cur_name_str] = list() * * return final_container # <<<<<<<<<<<<<< @@ -14243,7 +14253,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_data_container_to_dict( __pyx_r = __pyx_v_final_container; goto __pyx_L0; - /* "pyreadstat/_readstat_parser.pyx":1012 + /* "pyreadstat/_readstat_parser.pyx":1008 * * * cdef object data_container_to_dict(data_container data): # <<<<<<<<<<<<<< @@ -14269,7 +14279,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_data_container_to_dict( return __pyx_r; } -/* "pyreadstat/_readstat_parser.pyx":1045 +/* "pyreadstat/_readstat_parser.pyx":1041 * return final_container * * cdef object dict_to_dataframe(object dict_data, data_container dc): # <<<<<<<<<<<<<< @@ -14328,7 +14338,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_dict_to_dataframe(PyObj int __pyx_clineno = 0; __Pyx_RefNannySetupContext("dict_to_dataframe", 0); - /* "pyreadstat/_readstat_parser.pyx":1055 + /* "pyreadstat/_readstat_parser.pyx":1051 * cdef py_datetime_format var_format * cdef list dtypes, sertypes, datetime_cols, date_cols * cdef dict schema = None # <<<<<<<<<<<<<< @@ -14338,7 +14348,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_dict_to_dataframe(PyObj __Pyx_INCREF(Py_None); __pyx_v_schema = ((PyObject*)Py_None); - /* "pyreadstat/_readstat_parser.pyx":1057 + /* "pyreadstat/_readstat_parser.pyx":1053 * cdef dict schema = None * * dates_as_pandas = dc.dates_as_pandas # <<<<<<<<<<<<<< @@ -14348,7 +14358,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_dict_to_dataframe(PyObj __pyx_t_1 = __pyx_v_dc->dates_as_pandas; __pyx_v_dates_as_pandas = __pyx_t_1; - /* "pyreadstat/_readstat_parser.pyx":1058 + /* "pyreadstat/_readstat_parser.pyx":1054 * * dates_as_pandas = dc.dates_as_pandas * output_format = dc.output_format # <<<<<<<<<<<<<< @@ -14360,47 +14370,47 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_dict_to_dataframe(PyObj __pyx_v_output_format = ((PyObject*)__pyx_t_2); __pyx_t_2 = 0; - /* "pyreadstat/_readstat_parser.pyx":1060 + /* "pyreadstat/_readstat_parser.pyx":1056 * output_format = dc.output_format * * if dict_data: # <<<<<<<<<<<<<< * #schema = None * # in polars if missing user values we need to explicitly set the type */ - __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_dict_data); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 1060, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_dict_data); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 1056, __pyx_L1_error) if (__pyx_t_1) { - /* "pyreadstat/_readstat_parser.pyx":1064 + /* "pyreadstat/_readstat_parser.pyx":1060 * # in polars if missing user values we need to explicitly set the type * # of that column to Object if not all the elements are of the same type * if output_format != "pandas" and dc.missing_user_values: # <<<<<<<<<<<<<< * schema = dict() * for indx in range(0, len(dc.col_names)): */ - __pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_v_output_format, __pyx_mstate_global->__pyx_n_u_pandas, Py_NE)); if (unlikely((__pyx_t_3 < 0))) __PYX_ERR(0, 1064, __pyx_L1_error) + __pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_v_output_format, __pyx_mstate_global->__pyx_n_u_pandas, Py_NE)); if (unlikely((__pyx_t_3 < 0))) __PYX_ERR(0, 1060, __pyx_L1_error) if (__pyx_t_3) { } else { __pyx_t_1 = __pyx_t_3; goto __pyx_L5_bool_binop_done; } - __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_v_dc->missing_user_values); if (unlikely((__pyx_t_3 < 0))) __PYX_ERR(0, 1064, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_v_dc->missing_user_values); if (unlikely((__pyx_t_3 < 0))) __PYX_ERR(0, 1060, __pyx_L1_error) __pyx_t_1 = __pyx_t_3; __pyx_L5_bool_binop_done:; if (__pyx_t_1) { - /* "pyreadstat/_readstat_parser.pyx":1065 + /* "pyreadstat/_readstat_parser.pyx":1061 * # of that column to Object if not all the elements are of the same type * if output_format != "pandas" and dc.missing_user_values: * schema = dict() # <<<<<<<<<<<<<< * for indx in range(0, len(dc.col_names)): * col_name = dc.col_names[indx] */ - __pyx_t_2 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1065, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1061, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF_SET(__pyx_v_schema, ((PyObject*)__pyx_t_2)); __pyx_t_2 = 0; - /* "pyreadstat/_readstat_parser.pyx":1066 + /* "pyreadstat/_readstat_parser.pyx":1062 * if output_format != "pandas" and dc.missing_user_values: * schema = dict() * for indx in range(0, len(dc.col_names)): # <<<<<<<<<<<<<< @@ -14411,15 +14421,15 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_dict_to_dataframe(PyObj __Pyx_INCREF(__pyx_t_2); if (unlikely(__pyx_t_2 == Py_None)) { PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()"); - __PYX_ERR(0, 1066, __pyx_L1_error) + __PYX_ERR(0, 1062, __pyx_L1_error) } - __pyx_t_4 = __Pyx_PyList_GET_SIZE(__pyx_t_2); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(0, 1066, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyList_GET_SIZE(__pyx_t_2); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(0, 1062, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_5 = __pyx_t_4; for (__pyx_t_6 = 0; __pyx_t_6 < __pyx_t_5; __pyx_t_6+=1) { __pyx_v_indx = __pyx_t_6; - /* "pyreadstat/_readstat_parser.pyx":1067 + /* "pyreadstat/_readstat_parser.pyx":1063 * schema = dict() * for indx in range(0, len(dc.col_names)): * col_name = dc.col_names[indx] # <<<<<<<<<<<<<< @@ -14428,53 +14438,53 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_dict_to_dataframe(PyObj */ if (unlikely(__pyx_v_dc->col_names == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 1067, __pyx_L1_error) + __PYX_ERR(0, 1063, __pyx_L1_error) } - __pyx_t_2 = __Pyx_GetItemInt_List(__pyx_v_dc->col_names, __pyx_v_indx, Py_ssize_t, 1, PyLong_FromSsize_t, 1, 1, 1, 1, __Pyx_ReferenceSharing_SharedReference); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1067, __pyx_L1_error) + __pyx_t_2 = __Pyx_GetItemInt_List(__pyx_v_dc->col_names, __pyx_v_indx, Py_ssize_t, 1, PyLong_FromSsize_t, 1, 1, 1, 1, __Pyx_ReferenceSharing_SharedReference); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1063, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - if (!(likely(PyUnicode_CheckExact(__pyx_t_2))||((__pyx_t_2) == Py_None) || __Pyx_RaiseUnexpectedTypeError("str", __pyx_t_2))) __PYX_ERR(0, 1067, __pyx_L1_error) + if (!(likely(PyUnicode_CheckExact(__pyx_t_2))||((__pyx_t_2) == Py_None) || __Pyx_RaiseUnexpectedTypeError("str", __pyx_t_2))) __PYX_ERR(0, 1063, __pyx_L1_error) __Pyx_XDECREF_SET(__pyx_v_col_name, ((PyObject*)__pyx_t_2)); __pyx_t_2 = 0; - /* "pyreadstat/_readstat_parser.pyx":1068 + /* "pyreadstat/_readstat_parser.pyx":1064 * for indx in range(0, len(dc.col_names)): * col_name = dc.col_names[indx] * if indx in dc.missing_user_values.keys(): # <<<<<<<<<<<<<< * sertypes = [type(x) for x in dict_data[col_name] if x is not None] * # all missing, let polars decide */ - __pyx_t_2 = PyLong_FromSsize_t(__pyx_v_indx); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1068, __pyx_L1_error) + __pyx_t_2 = PyLong_FromSsize_t(__pyx_v_indx); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1064, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (unlikely(__pyx_v_dc->missing_user_values == Py_None)) { PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "keys"); - __PYX_ERR(0, 1068, __pyx_L1_error) + __PYX_ERR(0, 1064, __pyx_L1_error) } - __pyx_t_7 = __Pyx_PyDict_Keys(__pyx_v_dc->missing_user_values); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1068, __pyx_L1_error) + __pyx_t_7 = __Pyx_PyDict_Keys(__pyx_v_dc->missing_user_values); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1064, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); - __pyx_t_1 = (__Pyx_PySequence_ContainsTF(__pyx_t_2, __pyx_t_7, Py_EQ)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 1068, __pyx_L1_error) + __pyx_t_1 = (__Pyx_PySequence_ContainsTF(__pyx_t_2, __pyx_t_7, Py_EQ)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 1064, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; if (__pyx_t_1) { - /* "pyreadstat/_readstat_parser.pyx":1069 + /* "pyreadstat/_readstat_parser.pyx":1065 * col_name = dc.col_names[indx] * if indx in dc.missing_user_values.keys(): * sertypes = [type(x) for x in dict_data[col_name] if x is not None] # <<<<<<<<<<<<<< * # all missing, let polars decide * if not sertypes: */ - __pyx_t_7 = PyList_New(0); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1069, __pyx_L1_error) + __pyx_t_7 = PyList_New(0); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1065, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); - __pyx_t_2 = __Pyx_PyObject_Dict_GetItem(__pyx_v_dict_data, __pyx_v_col_name); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1069, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_Dict_GetItem(__pyx_v_dict_data, __pyx_v_col_name); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1065, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (likely(PyList_CheckExact(__pyx_t_2)) || PyTuple_CheckExact(__pyx_t_2)) { __pyx_t_8 = __pyx_t_2; __Pyx_INCREF(__pyx_t_8); __pyx_t_9 = 0; __pyx_t_10 = NULL; } else { - __pyx_t_9 = -1; __pyx_t_8 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1069, __pyx_L1_error) + __pyx_t_9 = -1; __pyx_t_8 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1065, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); - __pyx_t_10 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_8); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1069, __pyx_L1_error) + __pyx_t_10 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_8); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1065, __pyx_L1_error) } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; for (;;) { @@ -14483,7 +14493,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_dict_to_dataframe(PyObj { Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_8); #if !CYTHON_ASSUME_SAFE_SIZE - if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 1069, __pyx_L1_error) + if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 1065, __pyx_L1_error) #endif if (__pyx_t_9 >= __pyx_temp) break; } @@ -14493,7 +14503,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_dict_to_dataframe(PyObj { Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_8); #if !CYTHON_ASSUME_SAFE_SIZE - if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 1069, __pyx_L1_error) + if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 1065, __pyx_L1_error) #endif if (__pyx_t_9 >= __pyx_temp) break; } @@ -14504,13 +14514,13 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_dict_to_dataframe(PyObj #endif ++__pyx_t_9; } - if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1069, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1065, __pyx_L1_error) } else { __pyx_t_2 = __pyx_t_10(__pyx_t_8); if (unlikely(!__pyx_t_2)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { - if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(0, 1069, __pyx_L1_error) + if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(0, 1065, __pyx_L1_error) PyErr_Clear(); } break; @@ -14521,14 +14531,14 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_dict_to_dataframe(PyObj __pyx_t_2 = 0; __pyx_t_1 = (__pyx_v_x != Py_None); if (__pyx_t_1) { - if (unlikely(__Pyx_ListComp_Append(__pyx_t_7, (PyObject*)((PyObject *)Py_TYPE(__pyx_v_x))))) __PYX_ERR(0, 1069, __pyx_L1_error) + if (unlikely(__Pyx_ListComp_Append(__pyx_t_7, (PyObject*)((PyObject *)Py_TYPE(__pyx_v_x))))) __PYX_ERR(0, 1065, __pyx_L1_error) } } __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_XDECREF_SET(__pyx_v_sertypes, ((PyObject*)__pyx_t_7)); __pyx_t_7 = 0; - /* "pyreadstat/_readstat_parser.pyx":1071 + /* "pyreadstat/_readstat_parser.pyx":1067 * sertypes = [type(x) for x in dict_data[col_name] if x is not None] * # all missing, let polars decide * if not sertypes: # <<<<<<<<<<<<<< @@ -14537,23 +14547,23 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_dict_to_dataframe(PyObj */ { Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_v_sertypes); - if (unlikely(((!CYTHON_ASSUME_SAFE_SIZE) && __pyx_temp < 0))) __PYX_ERR(0, 1071, __pyx_L1_error) + if (unlikely(((!CYTHON_ASSUME_SAFE_SIZE) && __pyx_temp < 0))) __PYX_ERR(0, 1067, __pyx_L1_error) __pyx_t_1 = (__pyx_temp != 0); } __pyx_t_3 = (!__pyx_t_1); if (__pyx_t_3) { - /* "pyreadstat/_readstat_parser.pyx":1072 + /* "pyreadstat/_readstat_parser.pyx":1068 * # all missing, let polars decide * if not sertypes: * schema[col_name] = None # <<<<<<<<<<<<<< * continue * allsame = all([x==sertypes[0] for x in sertypes]) */ - if (unlikely((PyDict_SetItem(__pyx_v_schema, __pyx_v_col_name, Py_None) < 0))) __PYX_ERR(0, 1072, __pyx_L1_error) + if (unlikely((PyDict_SetItem(__pyx_v_schema, __pyx_v_col_name, Py_None) < 0))) __PYX_ERR(0, 1068, __pyx_L1_error) - /* "pyreadstat/_readstat_parser.pyx":1073 + /* "pyreadstat/_readstat_parser.pyx":1069 * if not sertypes: * schema[col_name] = None * continue # <<<<<<<<<<<<<< @@ -14562,7 +14572,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_dict_to_dataframe(PyObj */ goto __pyx_L7_continue; - /* "pyreadstat/_readstat_parser.pyx":1071 + /* "pyreadstat/_readstat_parser.pyx":1067 * sertypes = [type(x) for x in dict_data[col_name] if x is not None] * # all missing, let polars decide * if not sertypes: # <<<<<<<<<<<<<< @@ -14571,7 +14581,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_dict_to_dataframe(PyObj */ } - /* "pyreadstat/_readstat_parser.pyx":1074 + /* "pyreadstat/_readstat_parser.pyx":1070 * schema[col_name] = None * continue * allsame = all([x==sertypes[0] for x in sertypes]) # <<<<<<<<<<<<<< @@ -14579,7 +14589,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_dict_to_dataframe(PyObj * if allsame: */ __pyx_t_8 = NULL; - __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1074, __pyx_L1_error) + __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1070, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_11 = __pyx_v_sertypes; __Pyx_INCREF(__pyx_t_11); __pyx_t_9 = 0; @@ -14587,21 +14597,21 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_dict_to_dataframe(PyObj { Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_11); #if !CYTHON_ASSUME_SAFE_SIZE - if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 1074, __pyx_L1_error) + if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 1070, __pyx_L1_error) #endif if (__pyx_t_9 >= __pyx_temp) break; } __pyx_t_12 = __Pyx_PyList_GetItemRefFast(__pyx_t_11, __pyx_t_9, __Pyx_ReferenceSharing_OwnStrongReference); ++__pyx_t_9; - if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1074, __pyx_L1_error) + if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1070, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_12); __pyx_t_12 = 0; - __pyx_t_12 = __Pyx_GetItemInt_List(__pyx_v_sertypes, 0, long, 1, __Pyx_PyLong_From_long, 1, 0, 1, 1, __Pyx_ReferenceSharing_OwnStrongReference); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1074, __pyx_L1_error) + __pyx_t_12 = __Pyx_GetItemInt_List(__pyx_v_sertypes, 0, long, 1, __Pyx_PyLong_From_long, 1, 0, 1, 1, __Pyx_ReferenceSharing_OwnStrongReference); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1070, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); - __pyx_t_13 = PyObject_RichCompare(__pyx_v_x, __pyx_t_12, Py_EQ); __Pyx_XGOTREF(__pyx_t_13); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1074, __pyx_L1_error) + __pyx_t_13 = PyObject_RichCompare(__pyx_v_x, __pyx_t_12, Py_EQ); __Pyx_XGOTREF(__pyx_t_13); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1070, __pyx_L1_error) __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - if (unlikely(__Pyx_ListComp_Append(__pyx_t_2, (PyObject*)__pyx_t_13))) __PYX_ERR(0, 1074, __pyx_L1_error) + if (unlikely(__Pyx_ListComp_Append(__pyx_t_2, (PyObject*)__pyx_t_13))) __PYX_ERR(0, 1070, __pyx_L1_error) __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; } __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; @@ -14611,14 +14621,14 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_dict_to_dataframe(PyObj __pyx_t_7 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_all, __pyx_callargs+__pyx_t_14, (2-__pyx_t_14) | (__pyx_t_14*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1074, __pyx_L1_error) + if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1070, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); } - __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 1074, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 1070, __pyx_L1_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_v_allsame = __pyx_t_3; - /* "pyreadstat/_readstat_parser.pyx":1076 + /* "pyreadstat/_readstat_parser.pyx":1072 * allsame = all([x==sertypes[0] for x in sertypes]) * # all the same: let polars decide * if allsame: # <<<<<<<<<<<<<< @@ -14627,16 +14637,16 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_dict_to_dataframe(PyObj */ if (__pyx_v_allsame) { - /* "pyreadstat/_readstat_parser.pyx":1077 + /* "pyreadstat/_readstat_parser.pyx":1073 * # all the same: let polars decide * if allsame: * schema[col_name] = None # <<<<<<<<<<<<<< * # not all the same type, has to be Object * else: */ - if (unlikely((PyDict_SetItem(__pyx_v_schema, __pyx_v_col_name, Py_None) < 0))) __PYX_ERR(0, 1077, __pyx_L1_error) + if (unlikely((PyDict_SetItem(__pyx_v_schema, __pyx_v_col_name, Py_None) < 0))) __PYX_ERR(0, 1073, __pyx_L1_error) - /* "pyreadstat/_readstat_parser.pyx":1076 + /* "pyreadstat/_readstat_parser.pyx":1072 * allsame = all([x==sertypes[0] for x in sertypes]) * # all the same: let polars decide * if allsame: # <<<<<<<<<<<<<< @@ -14646,7 +14656,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_dict_to_dataframe(PyObj goto __pyx_L18; } - /* "pyreadstat/_readstat_parser.pyx":1080 + /* "pyreadstat/_readstat_parser.pyx":1076 * # not all the same type, has to be Object * else: * schema[col_name] = nw.Object # <<<<<<<<<<<<<< @@ -14654,17 +14664,17 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_dict_to_dataframe(PyObj * schema[col_name] = None */ /*else*/ { - __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_mstate_global->__pyx_n_u_nw); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1080, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_mstate_global->__pyx_n_u_nw); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1076, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_mstate_global->__pyx_n_u_Object); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1080, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_mstate_global->__pyx_n_u_Object); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1076, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - if (unlikely((PyDict_SetItem(__pyx_v_schema, __pyx_v_col_name, __pyx_t_2) < 0))) __PYX_ERR(0, 1080, __pyx_L1_error) + if (unlikely((PyDict_SetItem(__pyx_v_schema, __pyx_v_col_name, __pyx_t_2) < 0))) __PYX_ERR(0, 1076, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } __pyx_L18:; - /* "pyreadstat/_readstat_parser.pyx":1068 + /* "pyreadstat/_readstat_parser.pyx":1064 * for indx in range(0, len(dc.col_names)): * col_name = dc.col_names[indx] * if indx in dc.missing_user_values.keys(): # <<<<<<<<<<<<<< @@ -14674,7 +14684,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_dict_to_dataframe(PyObj goto __pyx_L9; } - /* "pyreadstat/_readstat_parser.pyx":1082 + /* "pyreadstat/_readstat_parser.pyx":1078 * schema[col_name] = nw.Object * else: * schema[col_name] = None # <<<<<<<<<<<<<< @@ -14682,13 +14692,13 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_dict_to_dataframe(PyObj * data_frame = nw.from_dict(dict_data, backend=output_format, schema=schema) */ /*else*/ { - if (unlikely((PyDict_SetItem(__pyx_v_schema, __pyx_v_col_name, Py_None) < 0))) __PYX_ERR(0, 1082, __pyx_L1_error) + if (unlikely((PyDict_SetItem(__pyx_v_schema, __pyx_v_col_name, Py_None) < 0))) __PYX_ERR(0, 1078, __pyx_L1_error) } __pyx_L9:; __pyx_L7_continue:; } - /* "pyreadstat/_readstat_parser.pyx":1064 + /* "pyreadstat/_readstat_parser.pyx":1060 * # in polars if missing user values we need to explicitly set the type * # of that column to Object if not all the elements are of the same type * if output_format != "pandas" and dc.missing_user_values: # <<<<<<<<<<<<<< @@ -14697,7 +14707,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_dict_to_dataframe(PyObj */ } - /* "pyreadstat/_readstat_parser.pyx":1084 + /* "pyreadstat/_readstat_parser.pyx":1080 * schema[col_name] = None * * data_frame = nw.from_dict(dict_data, backend=output_format, schema=schema) # <<<<<<<<<<<<<< @@ -14705,9 +14715,9 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_dict_to_dataframe(PyObj * data_frame = data_frame.to_native() */ __pyx_t_7 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_nw); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1084, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_nw); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1080, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); - __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_from_dict); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1084, __pyx_L1_error) + __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_from_dict); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1080, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_t_14 = 1; @@ -14724,21 +14734,21 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_dict_to_dataframe(PyObj #endif { PyObject *__pyx_callargs[2 + ((CYTHON_VECTORCALL) ? 2 : 0)] = {__pyx_t_7, __pyx_v_dict_data}; - __pyx_t_8 = __Pyx_MakeVectorcallBuilderKwds(2); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1084, __pyx_L1_error) + __pyx_t_8 = __Pyx_MakeVectorcallBuilderKwds(2); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1080, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); - if (__Pyx_VectorcallBuilder_AddArg(__pyx_mstate_global->__pyx_n_u_backend, __pyx_v_output_format, __pyx_t_8, __pyx_callargs+2, 0) < (0)) __PYX_ERR(0, 1084, __pyx_L1_error) - if (__Pyx_VectorcallBuilder_AddArg(__pyx_mstate_global->__pyx_n_u_schema, __pyx_v_schema, __pyx_t_8, __pyx_callargs+2, 1) < (0)) __PYX_ERR(0, 1084, __pyx_L1_error) + if (__Pyx_VectorcallBuilder_AddArg(__pyx_mstate_global->__pyx_n_u_backend, __pyx_v_output_format, __pyx_t_8, __pyx_callargs+2, 0) < (0)) __PYX_ERR(0, 1080, __pyx_L1_error) + if (__Pyx_VectorcallBuilder_AddArg(__pyx_mstate_global->__pyx_n_u_schema, __pyx_v_schema, __pyx_t_8, __pyx_callargs+2, 1) < (0)) __PYX_ERR(0, 1080, __pyx_L1_error) __pyx_t_2 = __Pyx_Object_Vectorcall_CallFromBuilder((PyObject*)__pyx_t_11, __pyx_callargs+__pyx_t_14, (2-__pyx_t_14) | (__pyx_t_14*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET), __pyx_t_8); __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1084, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1080, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } __pyx_v_data_frame = __pyx_t_2; __pyx_t_2 = 0; - /* "pyreadstat/_readstat_parser.pyx":1085 + /* "pyreadstat/_readstat_parser.pyx":1081 * * data_frame = nw.from_dict(dict_data, backend=output_format, schema=schema) * natnamespace = nw.get_native_namespace(data_frame) # <<<<<<<<<<<<<< @@ -14746,9 +14756,9 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_dict_to_dataframe(PyObj * */ __pyx_t_11 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_nw); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1085, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_nw); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1081, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); - __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_get_native_namespace); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1085, __pyx_L1_error) + __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_get_native_namespace); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1081, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_t_14 = 1; @@ -14768,13 +14778,13 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_dict_to_dataframe(PyObj __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_7, __pyx_callargs+__pyx_t_14, (2-__pyx_t_14) | (__pyx_t_14*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1085, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1081, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } __pyx_v_natnamespace = __pyx_t_2; __pyx_t_2 = 0; - /* "pyreadstat/_readstat_parser.pyx":1086 + /* "pyreadstat/_readstat_parser.pyx":1082 * data_frame = nw.from_dict(dict_data, backend=output_format, schema=schema) * natnamespace = nw.get_native_namespace(data_frame) * data_frame = data_frame.to_native() # <<<<<<<<<<<<<< @@ -14788,13 +14798,13 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_dict_to_dataframe(PyObj PyObject *__pyx_callargs[2] = {__pyx_t_7, NULL}; __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_to_native, __pyx_callargs+__pyx_t_14, (1-__pyx_t_14) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1086, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1082, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } __Pyx_DECREF_SET(__pyx_v_data_frame, __pyx_t_2); __pyx_t_2 = 0; - /* "pyreadstat/_readstat_parser.pyx":1088 + /* "pyreadstat/_readstat_parser.pyx":1084 * data_frame = data_frame.to_native() * * if dates_as_pandas and output_format=="pandas": # <<<<<<<<<<<<<< @@ -14806,12 +14816,12 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_dict_to_dataframe(PyObj __pyx_t_3 = __pyx_v_dates_as_pandas; goto __pyx_L20_bool_binop_done; } - __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_output_format, __pyx_mstate_global->__pyx_n_u_pandas, Py_EQ)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 1088, __pyx_L1_error) + __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_output_format, __pyx_mstate_global->__pyx_n_u_pandas, Py_EQ)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 1084, __pyx_L1_error) __pyx_t_3 = __pyx_t_1; __pyx_L20_bool_binop_done:; if (__pyx_t_3) { - /* "pyreadstat/_readstat_parser.pyx":1089 + /* "pyreadstat/_readstat_parser.pyx":1085 * * if dates_as_pandas and output_format=="pandas": * pd = natnamespace # <<<<<<<<<<<<<< @@ -14821,14 +14831,14 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_dict_to_dataframe(PyObj __Pyx_INCREF(__pyx_v_natnamespace); __pyx_v_pd = __pyx_v_natnamespace; - /* "pyreadstat/_readstat_parser.pyx":1090 + /* "pyreadstat/_readstat_parser.pyx":1086 * if dates_as_pandas and output_format=="pandas": * pd = natnamespace * dtypes = data_frame.dtypes.tolist() # <<<<<<<<<<<<<< * # check that datetime columns are datetime type * # this is needed in case all date values are nan */ - __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_data_frame, __pyx_mstate_global->__pyx_n_u_dtypes); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1090, __pyx_L1_error) + __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_data_frame, __pyx_mstate_global->__pyx_n_u_dtypes); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1086, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __pyx_t_7 = __pyx_t_11; __Pyx_INCREF(__pyx_t_7); @@ -14838,14 +14848,14 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_dict_to_dataframe(PyObj __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_tolist, __pyx_callargs+__pyx_t_14, (1-__pyx_t_14) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1090, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1086, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } - if (!(likely(PyList_CheckExact(__pyx_t_2))||((__pyx_t_2) == Py_None) || __Pyx_RaiseUnexpectedTypeError("list", __pyx_t_2))) __PYX_ERR(0, 1090, __pyx_L1_error) + if (!(likely(PyList_CheckExact(__pyx_t_2))||((__pyx_t_2) == Py_None) || __Pyx_RaiseUnexpectedTypeError("list", __pyx_t_2))) __PYX_ERR(0, 1086, __pyx_L1_error) __pyx_v_dtypes = ((PyObject*)__pyx_t_2); __pyx_t_2 = 0; - /* "pyreadstat/_readstat_parser.pyx":1093 + /* "pyreadstat/_readstat_parser.pyx":1089 * # check that datetime columns are datetime type * # this is needed in case all date values are nan * for index, column in enumerate(data_frame.columns): # <<<<<<<<<<<<<< @@ -14853,16 +14863,16 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_dict_to_dataframe(PyObj * if dtypes[index] != '__pyx_n_u_columns); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1093, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_data_frame, __pyx_mstate_global->__pyx_n_u_columns); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1089, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (likely(PyList_CheckExact(__pyx_t_2)) || PyTuple_CheckExact(__pyx_t_2)) { __pyx_t_11 = __pyx_t_2; __Pyx_INCREF(__pyx_t_11); __pyx_t_4 = 0; __pyx_t_10 = NULL; } else { - __pyx_t_4 = -1; __pyx_t_11 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1093, __pyx_L1_error) + __pyx_t_4 = -1; __pyx_t_11 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1089, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); - __pyx_t_10 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_11); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1093, __pyx_L1_error) + __pyx_t_10 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_11); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1089, __pyx_L1_error) } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; for (;;) { @@ -14871,7 +14881,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_dict_to_dataframe(PyObj { Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_11); #if !CYTHON_ASSUME_SAFE_SIZE - if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 1093, __pyx_L1_error) + if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 1089, __pyx_L1_error) #endif if (__pyx_t_4 >= __pyx_temp) break; } @@ -14881,7 +14891,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_dict_to_dataframe(PyObj { Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_11); #if !CYTHON_ASSUME_SAFE_SIZE - if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 1093, __pyx_L1_error) + if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 1089, __pyx_L1_error) #endif if (__pyx_t_4 >= __pyx_temp) break; } @@ -14892,26 +14902,26 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_dict_to_dataframe(PyObj #endif ++__pyx_t_4; } - if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1093, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1089, __pyx_L1_error) } else { __pyx_t_2 = __pyx_t_10(__pyx_t_11); if (unlikely(!__pyx_t_2)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { - if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(0, 1093, __pyx_L1_error) + if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(0, 1089, __pyx_L1_error) PyErr_Clear(); } break; } } __Pyx_GOTREF(__pyx_t_2); - if (!(likely(PyUnicode_CheckExact(__pyx_t_2))||((__pyx_t_2) == Py_None) || __Pyx_RaiseUnexpectedTypeError("str", __pyx_t_2))) __PYX_ERR(0, 1093, __pyx_L1_error) + if (!(likely(PyUnicode_CheckExact(__pyx_t_2))||((__pyx_t_2) == Py_None) || __Pyx_RaiseUnexpectedTypeError("str", __pyx_t_2))) __PYX_ERR(0, 1089, __pyx_L1_error) __Pyx_XDECREF_SET(__pyx_v_column, ((PyObject*)__pyx_t_2)); __pyx_t_2 = 0; __pyx_v_index = __pyx_t_15; __pyx_t_15 = (__pyx_t_15 + 1); - /* "pyreadstat/_readstat_parser.pyx":1094 + /* "pyreadstat/_readstat_parser.pyx":1090 * # this is needed in case all date values are nan * for index, column in enumerate(data_frame.columns): * var_format = dc.col_formats[index] # <<<<<<<<<<<<<< @@ -14920,15 +14930,15 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_dict_to_dataframe(PyObj */ if (unlikely(__pyx_v_dc->col_formats == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 1094, __pyx_L1_error) + __PYX_ERR(0, 1090, __pyx_L1_error) } - __pyx_t_2 = __Pyx_GetItemInt_List(__pyx_v_dc->col_formats, __pyx_v_index, int, 1, __Pyx_PyLong_From_int, 1, 1, 1, 1, __Pyx_ReferenceSharing_SharedReference); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1094, __pyx_L1_error) + __pyx_t_2 = __Pyx_GetItemInt_List(__pyx_v_dc->col_formats, __pyx_v_index, int, 1, __Pyx_PyLong_From_int, 1, 1, 1, 1, __Pyx_ReferenceSharing_SharedReference); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1090, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_16 = ((__pyx_t_10pyreadstat_16_readstat_parser_py_datetime_format)__Pyx_PyLong_As___pyx_t_10pyreadstat_16_readstat_parser_py_datetime_format(__pyx_t_2)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1094, __pyx_L1_error) + __pyx_t_16 = ((__pyx_t_10pyreadstat_16_readstat_parser_py_datetime_format)__Pyx_PyLong_As___pyx_t_10pyreadstat_16_readstat_parser_py_datetime_format(__pyx_t_2)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1090, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_v_var_format = __pyx_t_16; - /* "pyreadstat/_readstat_parser.pyx":1095 + /* "pyreadstat/_readstat_parser.pyx":1091 * for index, column in enumerate(data_frame.columns): * var_format = dc.col_formats[index] * if dtypes[index] != '__pyx_kp_u_M8_ns, Py_NE)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 1095, __pyx_L1_error) + __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_t_2, __pyx_mstate_global->__pyx_kp_u_M8_ns, Py_NE)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 1091, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (__pyx_t_1) { } else { @@ -14961,7 +14971,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_dict_to_dataframe(PyObj __pyx_L25_bool_binop_done:; if (__pyx_t_3) { - /* "pyreadstat/_readstat_parser.pyx":1096 + /* "pyreadstat/_readstat_parser.pyx":1092 * var_format = dc.col_formats[index] * if dtypes[index] != '__pyx_n_u_to_datetime, __pyx_callargs+__pyx_t_14, (2-__pyx_t_14) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1096, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1092, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } - __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_data_frame, __pyx_mstate_global->__pyx_n_u_loc); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1096, __pyx_L1_error) + __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_data_frame, __pyx_mstate_global->__pyx_n_u_loc); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1092, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); - __pyx_t_7 = PyTuple_New(2); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1096, __pyx_L1_error) + __pyx_t_7 = PyTuple_New(2); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1092, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_INCREF(__pyx_mstate_global->__pyx_slice[0]); __Pyx_GIVEREF(__pyx_mstate_global->__pyx_slice[0]); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_mstate_global->__pyx_slice[0]) != (0)) __PYX_ERR(0, 1096, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_mstate_global->__pyx_slice[0]) != (0)) __PYX_ERR(0, 1092, __pyx_L1_error); __Pyx_INCREF(__pyx_v_column); __Pyx_GIVEREF(__pyx_v_column); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_v_column) != (0)) __PYX_ERR(0, 1096, __pyx_L1_error); - if (unlikely((PyObject_SetItem(__pyx_t_8, __pyx_t_7, __pyx_t_2) < 0))) __PYX_ERR(0, 1096, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_v_column) != (0)) __PYX_ERR(0, 1092, __pyx_L1_error); + if (unlikely((PyObject_SetItem(__pyx_t_8, __pyx_t_7, __pyx_t_2) < 0))) __PYX_ERR(0, 1092, __pyx_L1_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - /* "pyreadstat/_readstat_parser.pyx":1095 + /* "pyreadstat/_readstat_parser.pyx":1091 * for index, column in enumerate(data_frame.columns): * var_format = dc.col_formats[index] * if dtypes[index] != '__pyx_n_u_polars, Py_EQ)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 1098, __pyx_L1_error) + __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_output_format, __pyx_mstate_global->__pyx_n_u_polars, Py_EQ)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 1094, __pyx_L1_error) if (__pyx_t_1) { } else { __pyx_t_3 = __pyx_t_1; @@ -15042,7 +15052,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_dict_to_dataframe(PyObj __pyx_L29_bool_binop_done:; if (__pyx_t_3) { - /* "pyreadstat/_readstat_parser.pyx":1100 + /* "pyreadstat/_readstat_parser.pyx":1096 * if output_format == "polars" and not dc.no_datetime_conversion: * # datetime and date vectorized conversion * pl = natnamespace # <<<<<<<<<<<<<< @@ -15052,31 +15062,31 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_dict_to_dataframe(PyObj __Pyx_INCREF(__pyx_v_natnamespace); __pyx_v_pl = __pyx_v_natnamespace; - /* "pyreadstat/_readstat_parser.pyx":1101 + /* "pyreadstat/_readstat_parser.pyx":1097 * # datetime and date vectorized conversion * pl = natnamespace * datetime_cols = list() # <<<<<<<<<<<<<< * date_cols = list() * for index, column in enumerate(data_frame.columns): */ - __pyx_t_11 = PyList_New(0); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1101, __pyx_L1_error) + __pyx_t_11 = PyList_New(0); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1097, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __pyx_v_datetime_cols = ((PyObject*)__pyx_t_11); __pyx_t_11 = 0; - /* "pyreadstat/_readstat_parser.pyx":1102 + /* "pyreadstat/_readstat_parser.pyx":1098 * pl = natnamespace * datetime_cols = list() * date_cols = list() # <<<<<<<<<<<<<< * for index, column in enumerate(data_frame.columns): * var_format = dc.col_formats[index] */ - __pyx_t_11 = PyList_New(0); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1102, __pyx_L1_error) + __pyx_t_11 = PyList_New(0); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1098, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __pyx_v_date_cols = ((PyObject*)__pyx_t_11); __pyx_t_11 = 0; - /* "pyreadstat/_readstat_parser.pyx":1103 + /* "pyreadstat/_readstat_parser.pyx":1099 * datetime_cols = list() * date_cols = list() * for index, column in enumerate(data_frame.columns): # <<<<<<<<<<<<<< @@ -15084,16 +15094,16 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_dict_to_dataframe(PyObj * if var_format == DATE_FORMAT_DATETIME: */ __pyx_t_15 = 0; - __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_data_frame, __pyx_mstate_global->__pyx_n_u_columns); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1103, __pyx_L1_error) + __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_data_frame, __pyx_mstate_global->__pyx_n_u_columns); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1099, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); if (likely(PyList_CheckExact(__pyx_t_11)) || PyTuple_CheckExact(__pyx_t_11)) { __pyx_t_2 = __pyx_t_11; __Pyx_INCREF(__pyx_t_2); __pyx_t_4 = 0; __pyx_t_10 = NULL; } else { - __pyx_t_4 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_11); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1103, __pyx_L1_error) + __pyx_t_4 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_11); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1099, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_10 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_2); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1103, __pyx_L1_error) + __pyx_t_10 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_2); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1099, __pyx_L1_error) } __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; for (;;) { @@ -15102,7 +15112,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_dict_to_dataframe(PyObj { Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_2); #if !CYTHON_ASSUME_SAFE_SIZE - if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 1103, __pyx_L1_error) + if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 1099, __pyx_L1_error) #endif if (__pyx_t_4 >= __pyx_temp) break; } @@ -15112,7 +15122,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_dict_to_dataframe(PyObj { Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_2); #if !CYTHON_ASSUME_SAFE_SIZE - if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 1103, __pyx_L1_error) + if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 1099, __pyx_L1_error) #endif if (__pyx_t_4 >= __pyx_temp) break; } @@ -15123,26 +15133,26 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_dict_to_dataframe(PyObj #endif ++__pyx_t_4; } - if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1103, __pyx_L1_error) + if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1099, __pyx_L1_error) } else { __pyx_t_11 = __pyx_t_10(__pyx_t_2); if (unlikely(!__pyx_t_11)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { - if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(0, 1103, __pyx_L1_error) + if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(0, 1099, __pyx_L1_error) PyErr_Clear(); } break; } } __Pyx_GOTREF(__pyx_t_11); - if (!(likely(PyUnicode_CheckExact(__pyx_t_11))||((__pyx_t_11) == Py_None) || __Pyx_RaiseUnexpectedTypeError("str", __pyx_t_11))) __PYX_ERR(0, 1103, __pyx_L1_error) + if (!(likely(PyUnicode_CheckExact(__pyx_t_11))||((__pyx_t_11) == Py_None) || __Pyx_RaiseUnexpectedTypeError("str", __pyx_t_11))) __PYX_ERR(0, 1099, __pyx_L1_error) __Pyx_XDECREF_SET(__pyx_v_column, ((PyObject*)__pyx_t_11)); __pyx_t_11 = 0; __pyx_v_index = __pyx_t_15; __pyx_t_15 = (__pyx_t_15 + 1); - /* "pyreadstat/_readstat_parser.pyx":1104 + /* "pyreadstat/_readstat_parser.pyx":1100 * date_cols = list() * for index, column in enumerate(data_frame.columns): * var_format = dc.col_formats[index] # <<<<<<<<<<<<<< @@ -15151,15 +15161,15 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_dict_to_dataframe(PyObj */ if (unlikely(__pyx_v_dc->col_formats == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 1104, __pyx_L1_error) + __PYX_ERR(0, 1100, __pyx_L1_error) } - __pyx_t_11 = __Pyx_GetItemInt_List(__pyx_v_dc->col_formats, __pyx_v_index, int, 1, __Pyx_PyLong_From_int, 1, 1, 1, 1, __Pyx_ReferenceSharing_SharedReference); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1104, __pyx_L1_error) + __pyx_t_11 = __Pyx_GetItemInt_List(__pyx_v_dc->col_formats, __pyx_v_index, int, 1, __Pyx_PyLong_From_int, 1, 1, 1, 1, __Pyx_ReferenceSharing_SharedReference); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1100, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); - __pyx_t_16 = ((__pyx_t_10pyreadstat_16_readstat_parser_py_datetime_format)__Pyx_PyLong_As___pyx_t_10pyreadstat_16_readstat_parser_py_datetime_format(__pyx_t_11)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1104, __pyx_L1_error) + __pyx_t_16 = ((__pyx_t_10pyreadstat_16_readstat_parser_py_datetime_format)__Pyx_PyLong_As___pyx_t_10pyreadstat_16_readstat_parser_py_datetime_format(__pyx_t_11)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1100, __pyx_L1_error) __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __pyx_v_var_format = __pyx_t_16; - /* "pyreadstat/_readstat_parser.pyx":1105 + /* "pyreadstat/_readstat_parser.pyx":1101 * for index, column in enumerate(data_frame.columns): * var_format = dc.col_formats[index] * if var_format == DATE_FORMAT_DATETIME: # <<<<<<<<<<<<<< @@ -15169,16 +15179,16 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_dict_to_dataframe(PyObj __pyx_t_3 = (__pyx_v_var_format == __pyx_e_10pyreadstat_16_readstat_parser_DATE_FORMAT_DATETIME); if (__pyx_t_3) { - /* "pyreadstat/_readstat_parser.pyx":1106 + /* "pyreadstat/_readstat_parser.pyx":1102 * var_format = dc.col_formats[index] * if var_format == DATE_FORMAT_DATETIME: * datetime_cols.append(column) # <<<<<<<<<<<<<< * if var_format == DATE_FORMAT_DATE: * date_cols.append(column) */ - __pyx_t_17 = __Pyx_PyList_Append(__pyx_v_datetime_cols, __pyx_v_column); if (unlikely(__pyx_t_17 == ((int)-1))) __PYX_ERR(0, 1106, __pyx_L1_error) + __pyx_t_17 = __Pyx_PyList_Append(__pyx_v_datetime_cols, __pyx_v_column); if (unlikely(__pyx_t_17 == ((int)-1))) __PYX_ERR(0, 1102, __pyx_L1_error) - /* "pyreadstat/_readstat_parser.pyx":1105 + /* "pyreadstat/_readstat_parser.pyx":1101 * for index, column in enumerate(data_frame.columns): * var_format = dc.col_formats[index] * if var_format == DATE_FORMAT_DATETIME: # <<<<<<<<<<<<<< @@ -15187,7 +15197,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_dict_to_dataframe(PyObj */ } - /* "pyreadstat/_readstat_parser.pyx":1107 + /* "pyreadstat/_readstat_parser.pyx":1103 * if var_format == DATE_FORMAT_DATETIME: * datetime_cols.append(column) * if var_format == DATE_FORMAT_DATE: # <<<<<<<<<<<<<< @@ -15197,16 +15207,16 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_dict_to_dataframe(PyObj __pyx_t_3 = (__pyx_v_var_format == __pyx_e_10pyreadstat_16_readstat_parser_DATE_FORMAT_DATE); if (__pyx_t_3) { - /* "pyreadstat/_readstat_parser.pyx":1108 + /* "pyreadstat/_readstat_parser.pyx":1104 * datetime_cols.append(column) * if var_format == DATE_FORMAT_DATE: * date_cols.append(column) # <<<<<<<<<<<<<< * if datetime_cols: * data_frame = data_frame.with_columns( */ - __pyx_t_17 = __Pyx_PyList_Append(__pyx_v_date_cols, __pyx_v_column); if (unlikely(__pyx_t_17 == ((int)-1))) __PYX_ERR(0, 1108, __pyx_L1_error) + __pyx_t_17 = __Pyx_PyList_Append(__pyx_v_date_cols, __pyx_v_column); if (unlikely(__pyx_t_17 == ((int)-1))) __PYX_ERR(0, 1104, __pyx_L1_error) - /* "pyreadstat/_readstat_parser.pyx":1107 + /* "pyreadstat/_readstat_parser.pyx":1103 * if var_format == DATE_FORMAT_DATETIME: * datetime_cols.append(column) * if var_format == DATE_FORMAT_DATE: # <<<<<<<<<<<<<< @@ -15215,7 +15225,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_dict_to_dataframe(PyObj */ } - /* "pyreadstat/_readstat_parser.pyx":1103 + /* "pyreadstat/_readstat_parser.pyx":1099 * datetime_cols = list() * date_cols = list() * for index, column in enumerate(data_frame.columns): # <<<<<<<<<<<<<< @@ -15225,7 +15235,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_dict_to_dataframe(PyObj } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - /* "pyreadstat/_readstat_parser.pyx":1109 + /* "pyreadstat/_readstat_parser.pyx":1105 * if var_format == DATE_FORMAT_DATE: * date_cols.append(column) * if datetime_cols: # <<<<<<<<<<<<<< @@ -15234,13 +15244,13 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_dict_to_dataframe(PyObj */ { Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_v_datetime_cols); - if (unlikely(((!CYTHON_ASSUME_SAFE_SIZE) && __pyx_temp < 0))) __PYX_ERR(0, 1109, __pyx_L1_error) + if (unlikely(((!CYTHON_ASSUME_SAFE_SIZE) && __pyx_temp < 0))) __PYX_ERR(0, 1105, __pyx_L1_error) __pyx_t_3 = (__pyx_temp != 0); } if (__pyx_t_3) { - /* "pyreadstat/_readstat_parser.pyx":1110 + /* "pyreadstat/_readstat_parser.pyx":1106 * date_cols.append(column) * if datetime_cols: * data_frame = data_frame.with_columns( # <<<<<<<<<<<<<< @@ -15250,17 +15260,17 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_dict_to_dataframe(PyObj __pyx_t_11 = __pyx_v_data_frame; __Pyx_INCREF(__pyx_t_11); - /* "pyreadstat/_readstat_parser.pyx":1111 + /* "pyreadstat/_readstat_parser.pyx":1107 * if datetime_cols: * data_frame = data_frame.with_columns( * [ # <<<<<<<<<<<<<< * pl.from_epoch( * (pl.col(c) % 1 * 1e6).round().cast(pl.Int64) + ( */ - __pyx_t_7 = PyList_New(0); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1111, __pyx_L1_error) + __pyx_t_7 = PyList_New(0); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1107, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); - /* "pyreadstat/_readstat_parser.pyx":1117 + /* "pyreadstat/_readstat_parser.pyx":1113 * pl.lit(dc.unix_to_origin_secs) * 1e6).cast(pl.Int64), * time_unit='us') * for c in datetime_cols if data_frame[c].len() > 0 # <<<<<<<<<<<<<< @@ -15273,17 +15283,17 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_dict_to_dataframe(PyObj { Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_8); #if !CYTHON_ASSUME_SAFE_SIZE - if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 1117, __pyx_L1_error) + if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 1113, __pyx_L1_error) #endif if (__pyx_t_4 >= __pyx_temp) break; } __pyx_t_13 = __Pyx_PyList_GetItemRefFast(__pyx_t_8, __pyx_t_4, __Pyx_ReferenceSharing_OwnStrongReference); ++__pyx_t_4; - if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1117, __pyx_L1_error) + if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1113, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_XDECREF_SET(__pyx_v_c, __pyx_t_13); __pyx_t_13 = 0; - __pyx_t_18 = __Pyx_PyObject_GetItem(__pyx_v_data_frame, __pyx_v_c); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 1117, __pyx_L1_error) + __pyx_t_18 = __Pyx_PyObject_GetItem(__pyx_v_data_frame, __pyx_v_c); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 1113, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_18); __pyx_t_12 = __pyx_t_18; __Pyx_INCREF(__pyx_t_12); @@ -15293,16 +15303,16 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_dict_to_dataframe(PyObj __pyx_t_13 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_len, __pyx_callargs+__pyx_t_14, (1-__pyx_t_14) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; - if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1117, __pyx_L1_error) + if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1113, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); } - __pyx_t_18 = PyObject_RichCompare(__pyx_t_13, __pyx_mstate_global->__pyx_int_0, Py_GT); __Pyx_XGOTREF(__pyx_t_18); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 1117, __pyx_L1_error) + __pyx_t_18 = PyObject_RichCompare(__pyx_t_13, __pyx_mstate_global->__pyx_int_0, Py_GT); __Pyx_XGOTREF(__pyx_t_18); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 1113, __pyx_L1_error) __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; - __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_18); if (unlikely((__pyx_t_3 < 0))) __PYX_ERR(0, 1117, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_18); if (unlikely((__pyx_t_3 < 0))) __PYX_ERR(0, 1113, __pyx_L1_error) __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; if (__pyx_t_3) { - /* "pyreadstat/_readstat_parser.pyx":1112 + /* "pyreadstat/_readstat_parser.pyx":1108 * data_frame = data_frame.with_columns( * [ * pl.from_epoch( # <<<<<<<<<<<<<< @@ -15312,7 +15322,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_dict_to_dataframe(PyObj __pyx_t_13 = __pyx_v_pl; __Pyx_INCREF(__pyx_t_13); - /* "pyreadstat/_readstat_parser.pyx":1113 + /* "pyreadstat/_readstat_parser.pyx":1109 * [ * pl.from_epoch( * (pl.col(c) % 1 * 1e6).round().cast(pl.Int64) + ( # <<<<<<<<<<<<<< @@ -15326,13 +15336,13 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_dict_to_dataframe(PyObj PyObject *__pyx_callargs[2] = {__pyx_t_23, __pyx_v_c}; __pyx_t_22 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_col, __pyx_callargs+__pyx_t_14, (2-__pyx_t_14) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_23); __pyx_t_23 = 0; - if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 1113, __pyx_L1_error) + if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 1109, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_22); } - __pyx_t_23 = __Pyx_PyLong_RemainderObjC(__pyx_t_22, __pyx_mstate_global->__pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 1113, __pyx_L1_error) + __pyx_t_23 = __Pyx_PyLong_RemainderObjC(__pyx_t_22, __pyx_mstate_global->__pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 1109, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_23); __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0; - __pyx_t_22 = PyNumber_Multiply(__pyx_t_23, __pyx_mstate_global->__pyx_float_1e6); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 1113, __pyx_L1_error) + __pyx_t_22 = PyNumber_Multiply(__pyx_t_23, __pyx_mstate_global->__pyx_float_1e6); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 1109, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_22); __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0; __pyx_t_21 = __pyx_t_22; @@ -15343,12 +15353,12 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_dict_to_dataframe(PyObj __pyx_t_20 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_round, __pyx_callargs+__pyx_t_14, (1-__pyx_t_14) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_21); __pyx_t_21 = 0; __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0; - if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 1113, __pyx_L1_error) + if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 1109, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_20); } __pyx_t_19 = __pyx_t_20; __Pyx_INCREF(__pyx_t_19); - __pyx_t_22 = __Pyx_PyObject_GetAttrStr(__pyx_v_pl, __pyx_mstate_global->__pyx_n_u_Int64); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 1113, __pyx_L1_error) + __pyx_t_22 = __Pyx_PyObject_GetAttrStr(__pyx_v_pl, __pyx_mstate_global->__pyx_n_u_Int64); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 1109, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_22); __pyx_t_14 = 0; { @@ -15357,11 +15367,11 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_dict_to_dataframe(PyObj __Pyx_XDECREF(__pyx_t_19); __pyx_t_19 = 0; __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0; __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0; - if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1113, __pyx_L1_error) + if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1109, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); } - /* "pyreadstat/_readstat_parser.pyx":1114 + /* "pyreadstat/_readstat_parser.pyx":1110 * pl.from_epoch( * (pl.col(c) % 1 * 1e6).round().cast(pl.Int64) + ( * pl.col(c).floor() * 1e6).cast(pl.Int64) - ( # <<<<<<<<<<<<<< @@ -15375,7 +15385,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_dict_to_dataframe(PyObj PyObject *__pyx_callargs[2] = {__pyx_t_24, __pyx_v_c}; __pyx_t_23 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_col, __pyx_callargs+__pyx_t_14, (2-__pyx_t_14) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_24); __pyx_t_24 = 0; - if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 1114, __pyx_L1_error) + if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 1110, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_23); } __pyx_t_21 = __pyx_t_23; @@ -15386,15 +15396,15 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_dict_to_dataframe(PyObj __pyx_t_19 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_floor, __pyx_callargs+__pyx_t_14, (1-__pyx_t_14) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_21); __pyx_t_21 = 0; __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0; - if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 1114, __pyx_L1_error) + if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 1110, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_19); } - __pyx_t_23 = PyNumber_Multiply(__pyx_t_19, __pyx_mstate_global->__pyx_float_1e6); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 1114, __pyx_L1_error) + __pyx_t_23 = PyNumber_Multiply(__pyx_t_19, __pyx_mstate_global->__pyx_float_1e6); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 1110, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_23); __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; __pyx_t_22 = __pyx_t_23; __Pyx_INCREF(__pyx_t_22); - __pyx_t_19 = __Pyx_PyObject_GetAttrStr(__pyx_v_pl, __pyx_mstate_global->__pyx_n_u_Int64); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 1114, __pyx_L1_error) + __pyx_t_19 = __Pyx_PyObject_GetAttrStr(__pyx_v_pl, __pyx_mstate_global->__pyx_n_u_Int64); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 1110, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_19); __pyx_t_14 = 0; { @@ -15403,23 +15413,23 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_dict_to_dataframe(PyObj __Pyx_XDECREF(__pyx_t_22); __pyx_t_22 = 0; __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0; - if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 1114, __pyx_L1_error) + if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 1110, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_20); } - /* "pyreadstat/_readstat_parser.pyx":1113 + /* "pyreadstat/_readstat_parser.pyx":1109 * [ * pl.from_epoch( * (pl.col(c) % 1 * 1e6).round().cast(pl.Int64) + ( # <<<<<<<<<<<<<< * pl.col(c).floor() * 1e6).cast(pl.Int64) - ( * pl.lit(dc.unix_to_origin_secs) * 1e6).cast(pl.Int64), */ - __pyx_t_23 = PyNumber_Add(__pyx_t_12, __pyx_t_20); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 1113, __pyx_L1_error) + __pyx_t_23 = PyNumber_Add(__pyx_t_12, __pyx_t_20); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 1109, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_23); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0; - /* "pyreadstat/_readstat_parser.pyx":1115 + /* "pyreadstat/_readstat_parser.pyx":1111 * (pl.col(c) % 1 * 1e6).round().cast(pl.Int64) + ( * pl.col(c).floor() * 1e6).cast(pl.Int64) - ( * pl.lit(dc.unix_to_origin_secs) * 1e6).cast(pl.Int64), # <<<<<<<<<<<<<< @@ -15428,7 +15438,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_dict_to_dataframe(PyObj */ __pyx_t_22 = __pyx_v_pl; __Pyx_INCREF(__pyx_t_22); - __pyx_t_21 = PyFloat_FromDouble(__pyx_v_dc->unix_to_origin_secs); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 1115, __pyx_L1_error) + __pyx_t_21 = PyFloat_FromDouble(__pyx_v_dc->unix_to_origin_secs); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 1111, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_21); __pyx_t_14 = 0; { @@ -15436,15 +15446,15 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_dict_to_dataframe(PyObj __pyx_t_19 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_lit, __pyx_callargs+__pyx_t_14, (2-__pyx_t_14) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_22); __pyx_t_22 = 0; __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; - if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 1115, __pyx_L1_error) + if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 1111, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_19); } - __pyx_t_21 = PyNumber_Multiply(__pyx_t_19, __pyx_mstate_global->__pyx_float_1e6); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 1115, __pyx_L1_error) + __pyx_t_21 = PyNumber_Multiply(__pyx_t_19, __pyx_mstate_global->__pyx_float_1e6); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 1111, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_21); __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; __pyx_t_12 = __pyx_t_21; __Pyx_INCREF(__pyx_t_12); - __pyx_t_19 = __Pyx_PyObject_GetAttrStr(__pyx_v_pl, __pyx_mstate_global->__pyx_n_u_Int64); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 1115, __pyx_L1_error) + __pyx_t_19 = __Pyx_PyObject_GetAttrStr(__pyx_v_pl, __pyx_mstate_global->__pyx_n_u_Int64); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 1111, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_19); __pyx_t_14 = 0; { @@ -15453,38 +15463,38 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_dict_to_dataframe(PyObj __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; - if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 1115, __pyx_L1_error) + if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 1111, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_20); } - /* "pyreadstat/_readstat_parser.pyx":1114 + /* "pyreadstat/_readstat_parser.pyx":1110 * pl.from_epoch( * (pl.col(c) % 1 * 1e6).round().cast(pl.Int64) + ( * pl.col(c).floor() * 1e6).cast(pl.Int64) - ( # <<<<<<<<<<<<<< * pl.lit(dc.unix_to_origin_secs) * 1e6).cast(pl.Int64), * time_unit='us') */ - __pyx_t_21 = PyNumber_Subtract(__pyx_t_23, __pyx_t_20); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 1114, __pyx_L1_error) + __pyx_t_21 = PyNumber_Subtract(__pyx_t_23, __pyx_t_20); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 1110, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_21); __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0; __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0; __pyx_t_14 = 0; { PyObject *__pyx_callargs[2 + ((CYTHON_VECTORCALL) ? 1 : 0)] = {__pyx_t_13, __pyx_t_21}; - __pyx_t_20 = __Pyx_MakeVectorcallBuilderKwds(1); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 1112, __pyx_L1_error) + __pyx_t_20 = __Pyx_MakeVectorcallBuilderKwds(1); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 1108, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_20); - if (__Pyx_VectorcallBuilder_AddArg(__pyx_mstate_global->__pyx_n_u_time_unit, __pyx_mstate_global->__pyx_n_u_us, __pyx_t_20, __pyx_callargs+2, 0) < (0)) __PYX_ERR(0, 1112, __pyx_L1_error) + if (__Pyx_VectorcallBuilder_AddArg(__pyx_mstate_global->__pyx_n_u_time_unit, __pyx_mstate_global->__pyx_n_u_us, __pyx_t_20, __pyx_callargs+2, 0) < (0)) __PYX_ERR(0, 1108, __pyx_L1_error) __pyx_t_18 = __Pyx_Object_VectorcallMethod_CallFromBuilder((PyObject*)__pyx_mstate_global->__pyx_n_u_from_epoch, __pyx_callargs+__pyx_t_14, (2-__pyx_t_14) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET), __pyx_t_20); __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0; __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0; - if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 1112, __pyx_L1_error) + if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 1108, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_18); } - if (unlikely(__Pyx_ListComp_Append(__pyx_t_7, (PyObject*)__pyx_t_18))) __PYX_ERR(0, 1111, __pyx_L1_error) + if (unlikely(__Pyx_ListComp_Append(__pyx_t_7, (PyObject*)__pyx_t_18))) __PYX_ERR(0, 1107, __pyx_L1_error) __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; - /* "pyreadstat/_readstat_parser.pyx":1117 + /* "pyreadstat/_readstat_parser.pyx":1113 * pl.lit(dc.unix_to_origin_secs) * 1e6).cast(pl.Int64), * time_unit='us') * for c in datetime_cols if data_frame[c].len() > 0 # <<<<<<<<<<<<<< @@ -15500,13 +15510,13 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_dict_to_dataframe(PyObj __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_with_columns, __pyx_callargs+__pyx_t_14, (2-__pyx_t_14) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1110, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1106, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } __Pyx_DECREF_SET(__pyx_v_data_frame, __pyx_t_2); __pyx_t_2 = 0; - /* "pyreadstat/_readstat_parser.pyx":1109 + /* "pyreadstat/_readstat_parser.pyx":1105 * if var_format == DATE_FORMAT_DATE: * date_cols.append(column) * if datetime_cols: # <<<<<<<<<<<<<< @@ -15515,7 +15525,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_dict_to_dataframe(PyObj */ } - /* "pyreadstat/_readstat_parser.pyx":1120 + /* "pyreadstat/_readstat_parser.pyx":1116 * ] * ) * if date_cols: # <<<<<<<<<<<<<< @@ -15524,13 +15534,13 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_dict_to_dataframe(PyObj */ { Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_v_date_cols); - if (unlikely(((!CYTHON_ASSUME_SAFE_SIZE) && __pyx_temp < 0))) __PYX_ERR(0, 1120, __pyx_L1_error) + if (unlikely(((!CYTHON_ASSUME_SAFE_SIZE) && __pyx_temp < 0))) __PYX_ERR(0, 1116, __pyx_L1_error) __pyx_t_3 = (__pyx_temp != 0); } if (__pyx_t_3) { - /* "pyreadstat/_readstat_parser.pyx":1121 + /* "pyreadstat/_readstat_parser.pyx":1117 * ) * if date_cols: * data_frame = data_frame.with_columns(pl.from_epoch(pl.col(*date_cols), time_unit='d')) # <<<<<<<<<<<<<< @@ -15541,25 +15551,25 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_dict_to_dataframe(PyObj __Pyx_INCREF(__pyx_t_7); __pyx_t_8 = __pyx_v_pl; __Pyx_INCREF(__pyx_t_8); - __pyx_t_18 = __Pyx_PyObject_GetAttrStr(__pyx_v_pl, __pyx_mstate_global->__pyx_n_u_col); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 1121, __pyx_L1_error) + __pyx_t_18 = __Pyx_PyObject_GetAttrStr(__pyx_v_pl, __pyx_mstate_global->__pyx_n_u_col); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 1117, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_18); - __pyx_t_20 = PySequence_Tuple(__pyx_v_date_cols); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 1121, __pyx_L1_error) + __pyx_t_20 = PySequence_Tuple(__pyx_v_date_cols); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 1117, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_20); - __pyx_t_21 = __Pyx_PyObject_Call(__pyx_t_18, __pyx_t_20, NULL); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 1121, __pyx_L1_error) + __pyx_t_21 = __Pyx_PyObject_Call(__pyx_t_18, __pyx_t_20, NULL); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 1117, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_21); __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0; __pyx_t_14 = 0; { PyObject *__pyx_callargs[2 + ((CYTHON_VECTORCALL) ? 1 : 0)] = {__pyx_t_8, __pyx_t_21}; - __pyx_t_20 = __Pyx_MakeVectorcallBuilderKwds(1); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 1121, __pyx_L1_error) + __pyx_t_20 = __Pyx_MakeVectorcallBuilderKwds(1); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 1117, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_20); - if (__Pyx_VectorcallBuilder_AddArg(__pyx_mstate_global->__pyx_n_u_time_unit, __pyx_mstate_global->__pyx_n_u_d, __pyx_t_20, __pyx_callargs+2, 0) < (0)) __PYX_ERR(0, 1121, __pyx_L1_error) + if (__Pyx_VectorcallBuilder_AddArg(__pyx_mstate_global->__pyx_n_u_time_unit, __pyx_mstate_global->__pyx_n_u_d, __pyx_t_20, __pyx_callargs+2, 0) < (0)) __PYX_ERR(0, 1117, __pyx_L1_error) __pyx_t_11 = __Pyx_Object_VectorcallMethod_CallFromBuilder((PyObject*)__pyx_mstate_global->__pyx_n_u_from_epoch, __pyx_callargs+__pyx_t_14, (2-__pyx_t_14) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET), __pyx_t_20); __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0; - if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1121, __pyx_L1_error) + if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1117, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); } __pyx_t_14 = 0; @@ -15568,13 +15578,13 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_dict_to_dataframe(PyObj __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_with_columns, __pyx_callargs+__pyx_t_14, (2-__pyx_t_14) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1121, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1117, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } __Pyx_DECREF_SET(__pyx_v_data_frame, __pyx_t_2); __pyx_t_2 = 0; - /* "pyreadstat/_readstat_parser.pyx":1120 + /* "pyreadstat/_readstat_parser.pyx":1116 * ] * ) * if date_cols: # <<<<<<<<<<<<<< @@ -15583,7 +15593,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_dict_to_dataframe(PyObj */ } - /* "pyreadstat/_readstat_parser.pyx":1098 + /* "pyreadstat/_readstat_parser.pyx":1094 * data_frame.loc[:, column] = pd.to_datetime(data_frame[column]) * * if output_format == "polars" and not dc.no_datetime_conversion: # <<<<<<<<<<<<<< @@ -15592,7 +15602,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_dict_to_dataframe(PyObj */ } - /* "pyreadstat/_readstat_parser.pyx":1060 + /* "pyreadstat/_readstat_parser.pyx":1056 * output_format = dc.output_format * * if dict_data: # <<<<<<<<<<<<<< @@ -15602,7 +15612,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_dict_to_dataframe(PyObj goto __pyx_L3; } - /* "pyreadstat/_readstat_parser.pyx":1124 + /* "pyreadstat/_readstat_parser.pyx":1120 * * else: * data_frame = nw.from_dict(dict_data, backend=output_format).to_native() # <<<<<<<<<<<<<< @@ -15611,9 +15621,9 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_dict_to_dataframe(PyObj */ /*else*/ { __pyx_t_20 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_21, __pyx_mstate_global->__pyx_n_u_nw); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 1124, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_21, __pyx_mstate_global->__pyx_n_u_nw); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 1120, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_21); - __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_21, __pyx_mstate_global->__pyx_n_u_from_dict); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1124, __pyx_L1_error) + __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_21, __pyx_mstate_global->__pyx_n_u_from_dict); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1120, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; __pyx_t_14 = 1; @@ -15630,14 +15640,14 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_dict_to_dataframe(PyObj #endif { PyObject *__pyx_callargs[2 + ((CYTHON_VECTORCALL) ? 1 : 0)] = {__pyx_t_20, __pyx_v_dict_data}; - __pyx_t_21 = __Pyx_MakeVectorcallBuilderKwds(1); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 1124, __pyx_L1_error) + __pyx_t_21 = __Pyx_MakeVectorcallBuilderKwds(1); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 1120, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_21); - if (__Pyx_VectorcallBuilder_AddArg(__pyx_mstate_global->__pyx_n_u_backend, __pyx_v_output_format, __pyx_t_21, __pyx_callargs+2, 0) < (0)) __PYX_ERR(0, 1124, __pyx_L1_error) + if (__Pyx_VectorcallBuilder_AddArg(__pyx_mstate_global->__pyx_n_u_backend, __pyx_v_output_format, __pyx_t_21, __pyx_callargs+2, 0) < (0)) __PYX_ERR(0, 1120, __pyx_L1_error) __pyx_t_7 = __Pyx_Object_Vectorcall_CallFromBuilder((PyObject*)__pyx_t_8, __pyx_callargs+__pyx_t_14, (2-__pyx_t_14) | (__pyx_t_14*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET), __pyx_t_21); __Pyx_XDECREF(__pyx_t_20); __pyx_t_20 = 0; __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1124, __pyx_L1_error) + if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1120, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); } __pyx_t_11 = __pyx_t_7; @@ -15648,7 +15658,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_dict_to_dataframe(PyObj __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_to_native, __pyx_callargs+__pyx_t_14, (1-__pyx_t_14) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1124, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1120, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } __pyx_v_data_frame = __pyx_t_2; @@ -15656,7 +15666,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_dict_to_dataframe(PyObj } __pyx_L3:; - /* "pyreadstat/_readstat_parser.pyx":1126 + /* "pyreadstat/_readstat_parser.pyx":1122 * data_frame = nw.from_dict(dict_data, backend=output_format).to_native() * * return data_frame # <<<<<<<<<<<<<< @@ -15668,7 +15678,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_dict_to_dataframe(PyObj __pyx_r = __pyx_v_data_frame; goto __pyx_L0; - /* "pyreadstat/_readstat_parser.pyx":1045 + /* "pyreadstat/_readstat_parser.pyx":1041 * return final_container * * cdef object dict_to_dataframe(object dict_data, data_container dc): # <<<<<<<<<<<<<< @@ -15713,7 +15723,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_dict_to_dataframe(PyObj return __pyx_r; } -/* "pyreadstat/_readstat_parser.pyx":1128 +/* "pyreadstat/_readstat_parser.pyx":1124 * return data_frame * * cdef object data_container_extract_metadata(data_container data): # <<<<<<<<<<<<<< @@ -15759,7 +15769,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_data_container_extract_ int __pyx_clineno = 0; __Pyx_RefNannySetupContext("data_container_extract_metadata", 0); - /* "pyreadstat/_readstat_parser.pyx":1145 + /* "pyreadstat/_readstat_parser.pyx":1141 * cdef readstat_type_t var_type * * metaonly = data.metaonly # <<<<<<<<<<<<<< @@ -15769,7 +15779,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_data_container_extract_ __pyx_t_1 = __pyx_v_data->metaonly; __pyx_v_metaonly = __pyx_t_1; - /* "pyreadstat/_readstat_parser.pyx":1146 + /* "pyreadstat/_readstat_parser.pyx":1142 * * metaonly = data.metaonly * is_unkown_number_rows = data.is_unkown_number_rows # <<<<<<<<<<<<<< @@ -15779,7 +15789,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_data_container_extract_ __pyx_t_1 = __pyx_v_data->is_unkown_number_rows; __pyx_v_is_unkown_number_rows = __pyx_t_1; - /* "pyreadstat/_readstat_parser.pyx":1148 + /* "pyreadstat/_readstat_parser.pyx":1144 * is_unkown_number_rows = data.is_unkown_number_rows * * cdef object metadata = metadata_container() # <<<<<<<<<<<<<< @@ -15787,7 +15797,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_data_container_extract_ * # mr sets */ __pyx_t_3 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_metadata_container); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1148, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_metadata_container); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1144, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = 1; #if CYTHON_UNPACK_METHODS @@ -15806,13 +15816,13 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_data_container_extract_ __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_5, (1-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1148, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1144, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } __pyx_v_metadata = __pyx_t_2; __pyx_t_2 = 0; - /* "pyreadstat/_readstat_parser.pyx":1151 + /* "pyreadstat/_readstat_parser.pyx":1147 * * # mr sets * metadata.mr_sets = data.mr_sets # <<<<<<<<<<<<<< @@ -15821,22 +15831,22 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_data_container_extract_ */ __pyx_t_2 = __pyx_v_data->mr_sets; __Pyx_INCREF(__pyx_t_2); - if (__Pyx_PyObject_SetAttrStr(__pyx_v_metadata, __pyx_mstate_global->__pyx_n_u_mr_sets, __pyx_t_2) < (0)) __PYX_ERR(0, 1151, __pyx_L1_error) + if (__Pyx_PyObject_SetAttrStr(__pyx_v_metadata, __pyx_mstate_global->__pyx_n_u_mr_sets, __pyx_t_2) < (0)) __PYX_ERR(0, 1147, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - /* "pyreadstat/_readstat_parser.pyx":1154 + /* "pyreadstat/_readstat_parser.pyx":1150 * * # number of rows * metadata.number_columns = data.n_vars # <<<<<<<<<<<<<< * if is_unkown_number_rows: * if not metaonly: */ - __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_data->n_vars); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1154, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_data->n_vars); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1150, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - if (__Pyx_PyObject_SetAttrStr(__pyx_v_metadata, __pyx_mstate_global->__pyx_n_u_number_columns, __pyx_t_2) < (0)) __PYX_ERR(0, 1154, __pyx_L1_error) + if (__Pyx_PyObject_SetAttrStr(__pyx_v_metadata, __pyx_mstate_global->__pyx_n_u_number_columns, __pyx_t_2) < (0)) __PYX_ERR(0, 1150, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - /* "pyreadstat/_readstat_parser.pyx":1155 + /* "pyreadstat/_readstat_parser.pyx":1151 * # number of rows * metadata.number_columns = data.n_vars * if is_unkown_number_rows: # <<<<<<<<<<<<<< @@ -15845,7 +15855,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_data_container_extract_ */ if (__pyx_v_is_unkown_number_rows) { - /* "pyreadstat/_readstat_parser.pyx":1156 + /* "pyreadstat/_readstat_parser.pyx":1152 * metadata.number_columns = data.n_vars * if is_unkown_number_rows: * if not metaonly: # <<<<<<<<<<<<<< @@ -15855,19 +15865,19 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_data_container_extract_ __pyx_t_1 = (!__pyx_v_metaonly); if (__pyx_t_1) { - /* "pyreadstat/_readstat_parser.pyx":1157 + /* "pyreadstat/_readstat_parser.pyx":1153 * if is_unkown_number_rows: * if not metaonly: * metadata.number_rows = data.max_n_obs # <<<<<<<<<<<<<< * else: * metadata.number_rows = data.n_obs */ - __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_data->max_n_obs); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1157, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_data->max_n_obs); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1153, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - if (__Pyx_PyObject_SetAttrStr(__pyx_v_metadata, __pyx_mstate_global->__pyx_n_u_number_rows, __pyx_t_2) < (0)) __PYX_ERR(0, 1157, __pyx_L1_error) + if (__Pyx_PyObject_SetAttrStr(__pyx_v_metadata, __pyx_mstate_global->__pyx_n_u_number_rows, __pyx_t_2) < (0)) __PYX_ERR(0, 1153, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - /* "pyreadstat/_readstat_parser.pyx":1156 + /* "pyreadstat/_readstat_parser.pyx":1152 * metadata.number_columns = data.n_vars * if is_unkown_number_rows: * if not metaonly: # <<<<<<<<<<<<<< @@ -15876,7 +15886,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_data_container_extract_ */ } - /* "pyreadstat/_readstat_parser.pyx":1155 + /* "pyreadstat/_readstat_parser.pyx":1151 * # number of rows * metadata.number_columns = data.n_vars * if is_unkown_number_rows: # <<<<<<<<<<<<<< @@ -15886,7 +15896,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_data_container_extract_ goto __pyx_L3; } - /* "pyreadstat/_readstat_parser.pyx":1159 + /* "pyreadstat/_readstat_parser.pyx":1155 * metadata.number_rows = data.max_n_obs * else: * metadata.number_rows = data.n_obs # <<<<<<<<<<<<<< @@ -15894,14 +15904,14 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_data_container_extract_ * # value labels */ /*else*/ { - __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_data->n_obs); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1159, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_data->n_obs); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1155, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - if (__Pyx_PyObject_SetAttrStr(__pyx_v_metadata, __pyx_mstate_global->__pyx_n_u_number_rows, __pyx_t_2) < (0)) __PYX_ERR(0, 1159, __pyx_L1_error) + if (__Pyx_PyObject_SetAttrStr(__pyx_v_metadata, __pyx_mstate_global->__pyx_n_u_number_rows, __pyx_t_2) < (0)) __PYX_ERR(0, 1155, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } __pyx_L3:; - /* "pyreadstat/_readstat_parser.pyx":1162 + /* "pyreadstat/_readstat_parser.pyx":1158 * * # value labels * labels_raw = data.labels_raw # <<<<<<<<<<<<<< @@ -15913,7 +15923,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_data_container_extract_ __pyx_v_labels_raw = __pyx_t_2; __pyx_t_2 = 0; - /* "pyreadstat/_readstat_parser.pyx":1163 + /* "pyreadstat/_readstat_parser.pyx":1159 * # value labels * labels_raw = data.labels_raw * label_to_var_name = data.label_to_var_name # <<<<<<<<<<<<<< @@ -15925,29 +15935,29 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_data_container_extract_ __pyx_v_label_to_var_name = __pyx_t_2; __pyx_t_2 = 0; - /* "pyreadstat/_readstat_parser.pyx":1164 + /* "pyreadstat/_readstat_parser.pyx":1160 * labels_raw = data.labels_raw * label_to_var_name = data.label_to_var_name * variable_value_labels = dict() # <<<<<<<<<<<<<< * * if labels_raw: */ - __pyx_t_2 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1164, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1160, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_v_variable_value_labels = ((PyObject*)__pyx_t_2); __pyx_t_2 = 0; - /* "pyreadstat/_readstat_parser.pyx":1166 + /* "pyreadstat/_readstat_parser.pyx":1162 * variable_value_labels = dict() * * if labels_raw: # <<<<<<<<<<<<<< * for var_name, var_label in label_to_var_name.items(): * current_labels = labels_raw.get(var_label) */ - __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_labels_raw); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 1166, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_labels_raw); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 1162, __pyx_L1_error) if (__pyx_t_1) { - /* "pyreadstat/_readstat_parser.pyx":1167 + /* "pyreadstat/_readstat_parser.pyx":1163 * * if labels_raw: * for var_name, var_label in label_to_var_name.items(): # <<<<<<<<<<<<<< @@ -15961,7 +15971,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_data_container_extract_ PyObject *__pyx_callargs[2] = {__pyx_t_4, NULL}; __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_items, __pyx_callargs+__pyx_t_5, (1-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1167, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1163, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } if (likely(PyList_CheckExact(__pyx_t_2)) || PyTuple_CheckExact(__pyx_t_2)) { @@ -15969,9 +15979,9 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_data_container_extract_ __pyx_t_6 = 0; __pyx_t_7 = NULL; } else { - __pyx_t_6 = -1; __pyx_t_4 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1167, __pyx_L1_error) + __pyx_t_6 = -1; __pyx_t_4 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1163, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_7 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_4); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1167, __pyx_L1_error) + __pyx_t_7 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_4); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1163, __pyx_L1_error) } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; for (;;) { @@ -15980,7 +15990,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_data_container_extract_ { Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_4); #if !CYTHON_ASSUME_SAFE_SIZE - if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 1167, __pyx_L1_error) + if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 1163, __pyx_L1_error) #endif if (__pyx_t_6 >= __pyx_temp) break; } @@ -15990,7 +16000,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_data_container_extract_ { Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_4); #if !CYTHON_ASSUME_SAFE_SIZE - if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 1167, __pyx_L1_error) + if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 1163, __pyx_L1_error) #endif if (__pyx_t_6 >= __pyx_temp) break; } @@ -16001,13 +16011,13 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_data_container_extract_ #endif ++__pyx_t_6; } - if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1167, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1163, __pyx_L1_error) } else { __pyx_t_2 = __pyx_t_7(__pyx_t_4); if (unlikely(!__pyx_t_2)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { - if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(0, 1167, __pyx_L1_error) + if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(0, 1163, __pyx_L1_error) PyErr_Clear(); } break; @@ -16020,7 +16030,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_data_container_extract_ if (unlikely(size != 2)) { if (size > 2) __Pyx_RaiseTooManyValuesError(2); else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); - __PYX_ERR(0, 1167, __pyx_L1_error) + __PYX_ERR(0, 1163, __pyx_L1_error) } #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS if (likely(PyTuple_CheckExact(sequence))) { @@ -16030,22 +16040,22 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_data_container_extract_ __Pyx_INCREF(__pyx_t_8); } else { __pyx_t_3 = __Pyx_PyList_GetItemRefFast(sequence, 0, __Pyx_ReferenceSharing_SharedReference); - if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1167, __pyx_L1_error) + if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1163, __pyx_L1_error) __Pyx_XGOTREF(__pyx_t_3); __pyx_t_8 = __Pyx_PyList_GetItemRefFast(sequence, 1, __Pyx_ReferenceSharing_SharedReference); - if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1167, __pyx_L1_error) + if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1163, __pyx_L1_error) __Pyx_XGOTREF(__pyx_t_8); } #else - __pyx_t_3 = __Pyx_PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1167, __pyx_L1_error) + __pyx_t_3 = __Pyx_PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1163, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_8 = __Pyx_PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1167, __pyx_L1_error) + __pyx_t_8 = __Pyx_PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1163, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); #endif __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } else { Py_ssize_t index = -1; - __pyx_t_9 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1167, __pyx_L1_error) + __pyx_t_9 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1163, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_10 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_9); @@ -16053,7 +16063,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_data_container_extract_ __Pyx_GOTREF(__pyx_t_3); index = 1; __pyx_t_8 = __pyx_t_10(__pyx_t_9); if (unlikely(!__pyx_t_8)) goto __pyx_L8_unpacking_failed; __Pyx_GOTREF(__pyx_t_8); - if (__Pyx_IternextUnpackEndCheck(__pyx_t_10(__pyx_t_9), 2) < (0)) __PYX_ERR(0, 1167, __pyx_L1_error) + if (__Pyx_IternextUnpackEndCheck(__pyx_t_10(__pyx_t_9), 2) < (0)) __PYX_ERR(0, 1163, __pyx_L1_error) __pyx_t_10 = NULL; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; goto __pyx_L9_unpacking_done; @@ -16061,17 +16071,17 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_data_container_extract_ __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_10 = NULL; if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); - __PYX_ERR(0, 1167, __pyx_L1_error) + __PYX_ERR(0, 1163, __pyx_L1_error) __pyx_L9_unpacking_done:; } - if (!(likely(PyUnicode_CheckExact(__pyx_t_3))||((__pyx_t_3) == Py_None) || __Pyx_RaiseUnexpectedTypeError("str", __pyx_t_3))) __PYX_ERR(0, 1167, __pyx_L1_error) - if (!(likely(PyUnicode_CheckExact(__pyx_t_8))||((__pyx_t_8) == Py_None) || __Pyx_RaiseUnexpectedTypeError("str", __pyx_t_8))) __PYX_ERR(0, 1167, __pyx_L1_error) + if (!(likely(PyUnicode_CheckExact(__pyx_t_3))||((__pyx_t_3) == Py_None) || __Pyx_RaiseUnexpectedTypeError("str", __pyx_t_3))) __PYX_ERR(0, 1163, __pyx_L1_error) + if (!(likely(PyUnicode_CheckExact(__pyx_t_8))||((__pyx_t_8) == Py_None) || __Pyx_RaiseUnexpectedTypeError("str", __pyx_t_8))) __PYX_ERR(0, 1163, __pyx_L1_error) __Pyx_XDECREF_SET(__pyx_v_var_name, ((PyObject*)__pyx_t_3)); __pyx_t_3 = 0; __Pyx_XDECREF_SET(__pyx_v_var_label, ((PyObject*)__pyx_t_8)); __pyx_t_8 = 0; - /* "pyreadstat/_readstat_parser.pyx":1168 + /* "pyreadstat/_readstat_parser.pyx":1164 * if labels_raw: * for var_name, var_label in label_to_var_name.items(): * current_labels = labels_raw.get(var_label) # <<<<<<<<<<<<<< @@ -16085,32 +16095,32 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_data_container_extract_ PyObject *__pyx_callargs[2] = {__pyx_t_8, __pyx_v_var_label}; __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_get, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1168, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1164, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } __Pyx_XDECREF_SET(__pyx_v_current_labels, __pyx_t_2); __pyx_t_2 = 0; - /* "pyreadstat/_readstat_parser.pyx":1169 + /* "pyreadstat/_readstat_parser.pyx":1165 * for var_name, var_label in label_to_var_name.items(): * current_labels = labels_raw.get(var_label) * if current_labels: # <<<<<<<<<<<<<< * variable_value_labels[var_name] = current_labels * */ - __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_current_labels); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 1169, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_current_labels); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 1165, __pyx_L1_error) if (__pyx_t_1) { - /* "pyreadstat/_readstat_parser.pyx":1170 + /* "pyreadstat/_readstat_parser.pyx":1166 * current_labels = labels_raw.get(var_label) * if current_labels: * variable_value_labels[var_name] = current_labels # <<<<<<<<<<<<<< * * original_types = dict() */ - if (unlikely((PyDict_SetItem(__pyx_v_variable_value_labels, __pyx_v_var_name, __pyx_v_current_labels) < 0))) __PYX_ERR(0, 1170, __pyx_L1_error) + if (unlikely((PyDict_SetItem(__pyx_v_variable_value_labels, __pyx_v_var_name, __pyx_v_current_labels) < 0))) __PYX_ERR(0, 1166, __pyx_L1_error) - /* "pyreadstat/_readstat_parser.pyx":1169 + /* "pyreadstat/_readstat_parser.pyx":1165 * for var_name, var_label in label_to_var_name.items(): * current_labels = labels_raw.get(var_label) * if current_labels: # <<<<<<<<<<<<<< @@ -16119,7 +16129,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_data_container_extract_ */ } - /* "pyreadstat/_readstat_parser.pyx":1167 + /* "pyreadstat/_readstat_parser.pyx":1163 * * if labels_raw: * for var_name, var_label in label_to_var_name.items(): # <<<<<<<<<<<<<< @@ -16129,7 +16139,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_data_container_extract_ } __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - /* "pyreadstat/_readstat_parser.pyx":1166 + /* "pyreadstat/_readstat_parser.pyx":1162 * variable_value_labels = dict() * * if labels_raw: # <<<<<<<<<<<<<< @@ -16138,31 +16148,31 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_data_container_extract_ */ } - /* "pyreadstat/_readstat_parser.pyx":1172 + /* "pyreadstat/_readstat_parser.pyx":1168 * variable_value_labels[var_name] = current_labels * * original_types = dict() # <<<<<<<<<<<<<< * readstat_types = dict() * for indx in range(metadata.number_columns): */ - __pyx_t_4 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1172, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1168, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_v_original_types = __pyx_t_4; __pyx_t_4 = 0; - /* "pyreadstat/_readstat_parser.pyx":1173 + /* "pyreadstat/_readstat_parser.pyx":1169 * * original_types = dict() * readstat_types = dict() # <<<<<<<<<<<<<< * for indx in range(metadata.number_columns): * cur_col = data.col_names[indx] */ - __pyx_t_4 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1173, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1169, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_v_readstat_types = ((PyObject*)__pyx_t_4); __pyx_t_4 = 0; - /* "pyreadstat/_readstat_parser.pyx":1174 + /* "pyreadstat/_readstat_parser.pyx":1170 * original_types = dict() * readstat_types = dict() * for indx in range(metadata.number_columns): # <<<<<<<<<<<<<< @@ -16170,7 +16180,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_data_container_extract_ * cur_type = data.col_formats_original[indx] */ __pyx_t_2 = NULL; - __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_metadata, __pyx_mstate_global->__pyx_n_u_number_columns); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1174, __pyx_L1_error) + __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_metadata, __pyx_mstate_global->__pyx_n_u_number_columns); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1170, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_5 = 1; { @@ -16178,12 +16188,12 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_data_container_extract_ __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)(&PyRange_Type), __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1174, __pyx_L1_error) + if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1170, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); } - __pyx_t_8 = PyObject_GetIter(__pyx_t_4); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1174, __pyx_L1_error) + __pyx_t_8 = PyObject_GetIter(__pyx_t_4); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1170, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); - __pyx_t_7 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_8); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1174, __pyx_L1_error) + __pyx_t_7 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_8); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1170, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; for (;;) { { @@ -16191,7 +16201,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_data_container_extract_ if (unlikely(!__pyx_t_4)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { - if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(0, 1174, __pyx_L1_error) + if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(0, 1170, __pyx_L1_error) PyErr_Clear(); } break; @@ -16201,7 +16211,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_data_container_extract_ __Pyx_XDECREF_SET(__pyx_v_indx, __pyx_t_4); __pyx_t_4 = 0; - /* "pyreadstat/_readstat_parser.pyx":1175 + /* "pyreadstat/_readstat_parser.pyx":1171 * readstat_types = dict() * for indx in range(metadata.number_columns): * cur_col = data.col_names[indx] # <<<<<<<<<<<<<< @@ -16210,14 +16220,14 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_data_container_extract_ */ if (unlikely(__pyx_v_data->col_names == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 1175, __pyx_L1_error) + __PYX_ERR(0, 1171, __pyx_L1_error) } - __pyx_t_4 = __Pyx_PyObject_GetItem(__pyx_v_data->col_names, __pyx_v_indx); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1175, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyObject_GetItem(__pyx_v_data->col_names, __pyx_v_indx); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1171, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_XDECREF_SET(__pyx_v_cur_col, __pyx_t_4); __pyx_t_4 = 0; - /* "pyreadstat/_readstat_parser.pyx":1176 + /* "pyreadstat/_readstat_parser.pyx":1172 * for indx in range(metadata.number_columns): * cur_col = data.col_names[indx] * cur_type = data.col_formats_original[indx] # <<<<<<<<<<<<<< @@ -16226,23 +16236,23 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_data_container_extract_ */ if (unlikely(__pyx_v_data->col_formats_original == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 1176, __pyx_L1_error) + __PYX_ERR(0, 1172, __pyx_L1_error) } - __pyx_t_4 = __Pyx_PyObject_GetItem(__pyx_v_data->col_formats_original, __pyx_v_indx); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1176, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyObject_GetItem(__pyx_v_data->col_formats_original, __pyx_v_indx); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1172, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_XDECREF_SET(__pyx_v_cur_type, __pyx_t_4); __pyx_t_4 = 0; - /* "pyreadstat/_readstat_parser.pyx":1177 + /* "pyreadstat/_readstat_parser.pyx":1173 * cur_col = data.col_names[indx] * cur_type = data.col_formats_original[indx] * original_types[cur_col] = cur_type # <<<<<<<<<<<<<< * var_type = data.col_dtypes[indx] * if var_type == READSTAT_TYPE_STRING or var_type == READSTAT_TYPE_STRING_REF: */ - if (unlikely((PyObject_SetItem(__pyx_v_original_types, __pyx_v_cur_col, __pyx_v_cur_type) < 0))) __PYX_ERR(0, 1177, __pyx_L1_error) + if (unlikely((PyObject_SetItem(__pyx_v_original_types, __pyx_v_cur_col, __pyx_v_cur_type) < 0))) __PYX_ERR(0, 1173, __pyx_L1_error) - /* "pyreadstat/_readstat_parser.pyx":1178 + /* "pyreadstat/_readstat_parser.pyx":1174 * cur_type = data.col_formats_original[indx] * original_types[cur_col] = cur_type * var_type = data.col_dtypes[indx] # <<<<<<<<<<<<<< @@ -16251,15 +16261,15 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_data_container_extract_ */ if (unlikely(__pyx_v_data->col_dtypes == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 1178, __pyx_L1_error) + __PYX_ERR(0, 1174, __pyx_L1_error) } - __pyx_t_4 = __Pyx_PyObject_GetItem(__pyx_v_data->col_dtypes, __pyx_v_indx); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1178, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyObject_GetItem(__pyx_v_data->col_dtypes, __pyx_v_indx); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1174, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_11 = ((readstat_type_t)__Pyx_PyLong_As_readstat_type_t(__pyx_t_4)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1178, __pyx_L1_error) + __pyx_t_11 = ((readstat_type_t)__Pyx_PyLong_As_readstat_type_t(__pyx_t_4)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1174, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_v_var_type = __pyx_t_11; - /* "pyreadstat/_readstat_parser.pyx":1179 + /* "pyreadstat/_readstat_parser.pyx":1175 * original_types[cur_col] = cur_type * var_type = data.col_dtypes[indx] * if var_type == READSTAT_TYPE_STRING or var_type == READSTAT_TYPE_STRING_REF: # <<<<<<<<<<<<<< @@ -16270,16 +16280,16 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_data_container_extract_ case READSTAT_TYPE_STRING: case READSTAT_TYPE_STRING_REF: - /* "pyreadstat/_readstat_parser.pyx":1180 + /* "pyreadstat/_readstat_parser.pyx":1176 * var_type = data.col_dtypes[indx] * if var_type == READSTAT_TYPE_STRING or var_type == READSTAT_TYPE_STRING_REF: * readstat_types[cur_col] = "string" # <<<<<<<<<<<<<< * elif var_type == READSTAT_TYPE_INT8: * readstat_types[cur_col] = "int8" */ - if (unlikely((PyDict_SetItem(__pyx_v_readstat_types, __pyx_v_cur_col, __pyx_mstate_global->__pyx_n_u_string) < 0))) __PYX_ERR(0, 1180, __pyx_L1_error) + if (unlikely((PyDict_SetItem(__pyx_v_readstat_types, __pyx_v_cur_col, __pyx_mstate_global->__pyx_n_u_string) < 0))) __PYX_ERR(0, 1176, __pyx_L1_error) - /* "pyreadstat/_readstat_parser.pyx":1179 + /* "pyreadstat/_readstat_parser.pyx":1175 * original_types[cur_col] = cur_type * var_type = data.col_dtypes[indx] * if var_type == READSTAT_TYPE_STRING or var_type == READSTAT_TYPE_STRING_REF: # <<<<<<<<<<<<<< @@ -16289,16 +16299,16 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_data_container_extract_ break; case READSTAT_TYPE_INT8: - /* "pyreadstat/_readstat_parser.pyx":1182 + /* "pyreadstat/_readstat_parser.pyx":1178 * readstat_types[cur_col] = "string" * elif var_type == READSTAT_TYPE_INT8: * readstat_types[cur_col] = "int8" # <<<<<<<<<<<<<< * elif var_type == READSTAT_TYPE_INT16: * readstat_types[cur_col] = "int16" */ - if (unlikely((PyDict_SetItem(__pyx_v_readstat_types, __pyx_v_cur_col, __pyx_mstate_global->__pyx_n_u_int8) < 0))) __PYX_ERR(0, 1182, __pyx_L1_error) + if (unlikely((PyDict_SetItem(__pyx_v_readstat_types, __pyx_v_cur_col, __pyx_mstate_global->__pyx_n_u_int8) < 0))) __PYX_ERR(0, 1178, __pyx_L1_error) - /* "pyreadstat/_readstat_parser.pyx":1181 + /* "pyreadstat/_readstat_parser.pyx":1177 * if var_type == READSTAT_TYPE_STRING or var_type == READSTAT_TYPE_STRING_REF: * readstat_types[cur_col] = "string" * elif var_type == READSTAT_TYPE_INT8: # <<<<<<<<<<<<<< @@ -16308,16 +16318,16 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_data_container_extract_ break; case READSTAT_TYPE_INT16: - /* "pyreadstat/_readstat_parser.pyx":1184 + /* "pyreadstat/_readstat_parser.pyx":1180 * readstat_types[cur_col] = "int8" * elif var_type == READSTAT_TYPE_INT16: * readstat_types[cur_col] = "int16" # <<<<<<<<<<<<<< * elif var_type == READSTAT_TYPE_INT32: * readstat_types[cur_col] = "int32" */ - if (unlikely((PyDict_SetItem(__pyx_v_readstat_types, __pyx_v_cur_col, __pyx_mstate_global->__pyx_n_u_int16) < 0))) __PYX_ERR(0, 1184, __pyx_L1_error) + if (unlikely((PyDict_SetItem(__pyx_v_readstat_types, __pyx_v_cur_col, __pyx_mstate_global->__pyx_n_u_int16) < 0))) __PYX_ERR(0, 1180, __pyx_L1_error) - /* "pyreadstat/_readstat_parser.pyx":1183 + /* "pyreadstat/_readstat_parser.pyx":1179 * elif var_type == READSTAT_TYPE_INT8: * readstat_types[cur_col] = "int8" * elif var_type == READSTAT_TYPE_INT16: # <<<<<<<<<<<<<< @@ -16327,16 +16337,16 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_data_container_extract_ break; case READSTAT_TYPE_INT32: - /* "pyreadstat/_readstat_parser.pyx":1186 + /* "pyreadstat/_readstat_parser.pyx":1182 * readstat_types[cur_col] = "int16" * elif var_type == READSTAT_TYPE_INT32: * readstat_types[cur_col] = "int32" # <<<<<<<<<<<<<< * elif var_type == READSTAT_TYPE_FLOAT: * readstat_types[cur_col] = "float" */ - if (unlikely((PyDict_SetItem(__pyx_v_readstat_types, __pyx_v_cur_col, __pyx_mstate_global->__pyx_n_u_int32) < 0))) __PYX_ERR(0, 1186, __pyx_L1_error) + if (unlikely((PyDict_SetItem(__pyx_v_readstat_types, __pyx_v_cur_col, __pyx_mstate_global->__pyx_n_u_int32) < 0))) __PYX_ERR(0, 1182, __pyx_L1_error) - /* "pyreadstat/_readstat_parser.pyx":1185 + /* "pyreadstat/_readstat_parser.pyx":1181 * elif var_type == READSTAT_TYPE_INT16: * readstat_types[cur_col] = "int16" * elif var_type == READSTAT_TYPE_INT32: # <<<<<<<<<<<<<< @@ -16346,16 +16356,16 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_data_container_extract_ break; case READSTAT_TYPE_FLOAT: - /* "pyreadstat/_readstat_parser.pyx":1188 + /* "pyreadstat/_readstat_parser.pyx":1184 * readstat_types[cur_col] = "int32" * elif var_type == READSTAT_TYPE_FLOAT: * readstat_types[cur_col] = "float" # <<<<<<<<<<<<<< * elif var_type == READSTAT_TYPE_DOUBLE: * readstat_types[cur_col] = "double" */ - if (unlikely((PyDict_SetItem(__pyx_v_readstat_types, __pyx_v_cur_col, __pyx_mstate_global->__pyx_n_u_float) < 0))) __PYX_ERR(0, 1188, __pyx_L1_error) + if (unlikely((PyDict_SetItem(__pyx_v_readstat_types, __pyx_v_cur_col, __pyx_mstate_global->__pyx_n_u_float) < 0))) __PYX_ERR(0, 1184, __pyx_L1_error) - /* "pyreadstat/_readstat_parser.pyx":1187 + /* "pyreadstat/_readstat_parser.pyx":1183 * elif var_type == READSTAT_TYPE_INT32: * readstat_types[cur_col] = "int32" * elif var_type == READSTAT_TYPE_FLOAT: # <<<<<<<<<<<<<< @@ -16365,16 +16375,16 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_data_container_extract_ break; case READSTAT_TYPE_DOUBLE: - /* "pyreadstat/_readstat_parser.pyx":1190 + /* "pyreadstat/_readstat_parser.pyx":1186 * readstat_types[cur_col] = "float" * elif var_type == READSTAT_TYPE_DOUBLE: * readstat_types[cur_col] = "double" # <<<<<<<<<<<<<< * else: * raise PyreadstatError("Unkown data type") */ - if (unlikely((PyDict_SetItem(__pyx_v_readstat_types, __pyx_v_cur_col, __pyx_mstate_global->__pyx_n_u_double) < 0))) __PYX_ERR(0, 1190, __pyx_L1_error) + if (unlikely((PyDict_SetItem(__pyx_v_readstat_types, __pyx_v_cur_col, __pyx_mstate_global->__pyx_n_u_double) < 0))) __PYX_ERR(0, 1186, __pyx_L1_error) - /* "pyreadstat/_readstat_parser.pyx":1189 + /* "pyreadstat/_readstat_parser.pyx":1185 * elif var_type == READSTAT_TYPE_FLOAT: * readstat_types[cur_col] = "float" * elif var_type == READSTAT_TYPE_DOUBLE: # <<<<<<<<<<<<<< @@ -16384,7 +16394,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_data_container_extract_ break; default: - /* "pyreadstat/_readstat_parser.pyx":1192 + /* "pyreadstat/_readstat_parser.pyx":1188 * readstat_types[cur_col] = "double" * else: * raise PyreadstatError("Unkown data type") # <<<<<<<<<<<<<< @@ -16392,7 +16402,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_data_container_extract_ * for indx, curset in data.missing_user_values.items(): */ __pyx_t_2 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1192, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1188, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_5 = 1; #if CYTHON_UNPACK_METHODS @@ -16411,16 +16421,16 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_data_container_extract_ __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_3, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1192, __pyx_L1_error) + if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1188, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); } __Pyx_Raise(__pyx_t_4, 0, 0, 0); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __PYX_ERR(0, 1192, __pyx_L1_error) + __PYX_ERR(0, 1188, __pyx_L1_error) break; } - /* "pyreadstat/_readstat_parser.pyx":1174 + /* "pyreadstat/_readstat_parser.pyx":1170 * original_types = dict() * readstat_types = dict() * for indx in range(metadata.number_columns): # <<<<<<<<<<<<<< @@ -16430,7 +16440,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_data_container_extract_ } __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - /* "pyreadstat/_readstat_parser.pyx":1194 + /* "pyreadstat/_readstat_parser.pyx":1190 * raise PyreadstatError("Unkown data type") * * for indx, curset in data.missing_user_values.items(): # <<<<<<<<<<<<<< @@ -16439,18 +16449,18 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_data_container_extract_ */ if (unlikely(__pyx_v_data->missing_user_values == Py_None)) { PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "items"); - __PYX_ERR(0, 1194, __pyx_L1_error) + __PYX_ERR(0, 1190, __pyx_L1_error) } - __pyx_t_8 = __Pyx_PyDict_Items(__pyx_v_data->missing_user_values); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1194, __pyx_L1_error) + __pyx_t_8 = __Pyx_PyDict_Items(__pyx_v_data->missing_user_values); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1190, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); if (likely(PyList_CheckExact(__pyx_t_8)) || PyTuple_CheckExact(__pyx_t_8)) { __pyx_t_4 = __pyx_t_8; __Pyx_INCREF(__pyx_t_4); __pyx_t_6 = 0; __pyx_t_7 = NULL; } else { - __pyx_t_6 = -1; __pyx_t_4 = PyObject_GetIter(__pyx_t_8); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1194, __pyx_L1_error) + __pyx_t_6 = -1; __pyx_t_4 = PyObject_GetIter(__pyx_t_8); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1190, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_7 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_4); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1194, __pyx_L1_error) + __pyx_t_7 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_4); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1190, __pyx_L1_error) } __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; for (;;) { @@ -16459,7 +16469,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_data_container_extract_ { Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_4); #if !CYTHON_ASSUME_SAFE_SIZE - if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 1194, __pyx_L1_error) + if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 1190, __pyx_L1_error) #endif if (__pyx_t_6 >= __pyx_temp) break; } @@ -16469,7 +16479,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_data_container_extract_ { Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_4); #if !CYTHON_ASSUME_SAFE_SIZE - if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 1194, __pyx_L1_error) + if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 1190, __pyx_L1_error) #endif if (__pyx_t_6 >= __pyx_temp) break; } @@ -16480,13 +16490,13 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_data_container_extract_ #endif ++__pyx_t_6; } - if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1194, __pyx_L1_error) + if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1190, __pyx_L1_error) } else { __pyx_t_8 = __pyx_t_7(__pyx_t_4); if (unlikely(!__pyx_t_8)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { - if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(0, 1194, __pyx_L1_error) + if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(0, 1190, __pyx_L1_error) PyErr_Clear(); } break; @@ -16499,7 +16509,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_data_container_extract_ if (unlikely(size != 2)) { if (size > 2) __Pyx_RaiseTooManyValuesError(2); else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); - __PYX_ERR(0, 1194, __pyx_L1_error) + __PYX_ERR(0, 1190, __pyx_L1_error) } #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS if (likely(PyTuple_CheckExact(sequence))) { @@ -16509,22 +16519,22 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_data_container_extract_ __Pyx_INCREF(__pyx_t_2); } else { __pyx_t_3 = __Pyx_PyList_GetItemRefFast(sequence, 0, __Pyx_ReferenceSharing_SharedReference); - if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1194, __pyx_L1_error) + if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1190, __pyx_L1_error) __Pyx_XGOTREF(__pyx_t_3); __pyx_t_2 = __Pyx_PyList_GetItemRefFast(sequence, 1, __Pyx_ReferenceSharing_SharedReference); - if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1194, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1190, __pyx_L1_error) __Pyx_XGOTREF(__pyx_t_2); } #else - __pyx_t_3 = __Pyx_PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1194, __pyx_L1_error) + __pyx_t_3 = __Pyx_PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1190, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_2 = __Pyx_PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1194, __pyx_L1_error) + __pyx_t_2 = __Pyx_PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1190, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); #endif __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; } else { Py_ssize_t index = -1; - __pyx_t_9 = PyObject_GetIter(__pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1194, __pyx_L1_error) + __pyx_t_9 = PyObject_GetIter(__pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1190, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_t_10 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_9); @@ -16532,7 +16542,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_data_container_extract_ __Pyx_GOTREF(__pyx_t_3); index = 1; __pyx_t_2 = __pyx_t_10(__pyx_t_9); if (unlikely(!__pyx_t_2)) goto __pyx_L17_unpacking_failed; __Pyx_GOTREF(__pyx_t_2); - if (__Pyx_IternextUnpackEndCheck(__pyx_t_10(__pyx_t_9), 2) < (0)) __PYX_ERR(0, 1194, __pyx_L1_error) + if (__Pyx_IternextUnpackEndCheck(__pyx_t_10(__pyx_t_9), 2) < (0)) __PYX_ERR(0, 1190, __pyx_L1_error) __pyx_t_10 = NULL; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; goto __pyx_L18_unpacking_done; @@ -16540,7 +16550,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_data_container_extract_ __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_10 = NULL; if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); - __PYX_ERR(0, 1194, __pyx_L1_error) + __PYX_ERR(0, 1190, __pyx_L1_error) __pyx_L18_unpacking_done:; } __Pyx_XDECREF_SET(__pyx_v_indx, __pyx_t_3); @@ -16548,7 +16558,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_data_container_extract_ __Pyx_XDECREF_SET(__pyx_v_curset, __pyx_t_2); __pyx_t_2 = 0; - /* "pyreadstat/_readstat_parser.pyx":1195 + /* "pyreadstat/_readstat_parser.pyx":1191 * * for indx, curset in data.missing_user_values.items(): * cur_col = data.col_names[indx] # <<<<<<<<<<<<<< @@ -16557,33 +16567,33 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_data_container_extract_ */ if (unlikely(__pyx_v_data->col_names == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 1195, __pyx_L1_error) + __PYX_ERR(0, 1191, __pyx_L1_error) } - __pyx_t_8 = __Pyx_PyObject_GetItem(__pyx_v_data->col_names, __pyx_v_indx); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1195, __pyx_L1_error) + __pyx_t_8 = __Pyx_PyObject_GetItem(__pyx_v_data->col_names, __pyx_v_indx); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1191, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_XDECREF_SET(__pyx_v_cur_col, __pyx_t_8); __pyx_t_8 = 0; - /* "pyreadstat/_readstat_parser.pyx":1196 + /* "pyreadstat/_readstat_parser.pyx":1192 * for indx, curset in data.missing_user_values.items(): * cur_col = data.col_names[indx] * metadata.missing_user_values[cur_col] = sorted(list(curset)) # <<<<<<<<<<<<<< * * metadata.notes = data.notes */ - __pyx_t_8 = PySequence_List(__pyx_v_curset); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1196, __pyx_L1_error) + __pyx_t_8 = PySequence_List(__pyx_v_curset); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1192, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); - __pyx_t_2 = PySequence_List(__pyx_t_8); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1196, __pyx_L1_error) + __pyx_t_2 = PySequence_List(__pyx_t_8); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1192, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - if (unlikely((PyList_Sort(__pyx_t_2) < 0))) __PYX_ERR(0, 1196, __pyx_L1_error) - __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_metadata, __pyx_mstate_global->__pyx_n_u_missing_user_values); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1196, __pyx_L1_error) + if (unlikely((PyList_Sort(__pyx_t_2) < 0))) __PYX_ERR(0, 1192, __pyx_L1_error) + __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_metadata, __pyx_mstate_global->__pyx_n_u_missing_user_values); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1192, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); - if (unlikely((PyObject_SetItem(__pyx_t_8, __pyx_v_cur_col, __pyx_t_2) < 0))) __PYX_ERR(0, 1196, __pyx_L1_error) + if (unlikely((PyObject_SetItem(__pyx_t_8, __pyx_v_cur_col, __pyx_t_2) < 0))) __PYX_ERR(0, 1192, __pyx_L1_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - /* "pyreadstat/_readstat_parser.pyx":1194 + /* "pyreadstat/_readstat_parser.pyx":1190 * raise PyreadstatError("Unkown data type") * * for indx, curset in data.missing_user_values.items(): # <<<<<<<<<<<<<< @@ -16593,7 +16603,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_data_container_extract_ } __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - /* "pyreadstat/_readstat_parser.pyx":1198 + /* "pyreadstat/_readstat_parser.pyx":1194 * metadata.missing_user_values[cur_col] = sorted(list(curset)) * * metadata.notes = data.notes # <<<<<<<<<<<<<< @@ -16602,10 +16612,10 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_data_container_extract_ */ __pyx_t_4 = __pyx_v_data->notes; __Pyx_INCREF(__pyx_t_4); - if (__Pyx_PyObject_SetAttrStr(__pyx_v_metadata, __pyx_mstate_global->__pyx_n_u_notes, __pyx_t_4) < (0)) __PYX_ERR(0, 1198, __pyx_L1_error) + if (__Pyx_PyObject_SetAttrStr(__pyx_v_metadata, __pyx_mstate_global->__pyx_n_u_notes, __pyx_t_4) < (0)) __PYX_ERR(0, 1194, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - /* "pyreadstat/_readstat_parser.pyx":1199 + /* "pyreadstat/_readstat_parser.pyx":1195 * * metadata.notes = data.notes * metadata.column_names = data.col_names # <<<<<<<<<<<<<< @@ -16614,10 +16624,10 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_data_container_extract_ */ __pyx_t_4 = __pyx_v_data->col_names; __Pyx_INCREF(__pyx_t_4); - if (__Pyx_PyObject_SetAttrStr(__pyx_v_metadata, __pyx_mstate_global->__pyx_n_u_column_names, __pyx_t_4) < (0)) __PYX_ERR(0, 1199, __pyx_L1_error) + if (__Pyx_PyObject_SetAttrStr(__pyx_v_metadata, __pyx_mstate_global->__pyx_n_u_column_names, __pyx_t_4) < (0)) __PYX_ERR(0, 1195, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - /* "pyreadstat/_readstat_parser.pyx":1200 + /* "pyreadstat/_readstat_parser.pyx":1196 * metadata.notes = data.notes * metadata.column_names = data.col_names * metadata.column_labels = data.col_labels # <<<<<<<<<<<<<< @@ -16626,10 +16636,10 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_data_container_extract_ */ __pyx_t_4 = __pyx_v_data->col_labels; __Pyx_INCREF(__pyx_t_4); - if (__Pyx_PyObject_SetAttrStr(__pyx_v_metadata, __pyx_mstate_global->__pyx_n_u_column_labels, __pyx_t_4) < (0)) __PYX_ERR(0, 1200, __pyx_L1_error) + if (__Pyx_PyObject_SetAttrStr(__pyx_v_metadata, __pyx_mstate_global->__pyx_n_u_column_labels, __pyx_t_4) < (0)) __PYX_ERR(0, 1196, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - /* "pyreadstat/_readstat_parser.pyx":1201 + /* "pyreadstat/_readstat_parser.pyx":1197 * metadata.column_names = data.col_names * metadata.column_labels = data.col_labels * metadata.column_names_to_labels = {k:v for k,v in zip(data.col_names, data.col_labels)} # <<<<<<<<<<<<<< @@ -16637,7 +16647,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_data_container_extract_ * metadata.file_label = data.file_label */ { /* enter inner scope */ - __pyx_t_4 = PyDict_New(); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1201, __pyx_L22_error) + __pyx_t_4 = PyDict_New(); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1197, __pyx_L22_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_8 = NULL; __pyx_t_5 = 1; @@ -16645,7 +16655,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_data_container_extract_ PyObject *__pyx_callargs[3] = {__pyx_t_8, __pyx_v_data->col_names, __pyx_v_data->col_labels}; __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_zip, __pyx_callargs+__pyx_t_5, (3-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1201, __pyx_L22_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1197, __pyx_L22_error) __Pyx_GOTREF(__pyx_t_2); } if (likely(PyList_CheckExact(__pyx_t_2)) || PyTuple_CheckExact(__pyx_t_2)) { @@ -16653,9 +16663,9 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_data_container_extract_ __pyx_t_6 = 0; __pyx_t_7 = NULL; } else { - __pyx_t_6 = -1; __pyx_t_8 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1201, __pyx_L22_error) + __pyx_t_6 = -1; __pyx_t_8 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1197, __pyx_L22_error) __Pyx_GOTREF(__pyx_t_8); - __pyx_t_7 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_8); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1201, __pyx_L22_error) + __pyx_t_7 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_8); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1197, __pyx_L22_error) } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; for (;;) { @@ -16664,7 +16674,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_data_container_extract_ { Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_8); #if !CYTHON_ASSUME_SAFE_SIZE - if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 1201, __pyx_L22_error) + if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 1197, __pyx_L22_error) #endif if (__pyx_t_6 >= __pyx_temp) break; } @@ -16674,7 +16684,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_data_container_extract_ { Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_8); #if !CYTHON_ASSUME_SAFE_SIZE - if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 1201, __pyx_L22_error) + if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 1197, __pyx_L22_error) #endif if (__pyx_t_6 >= __pyx_temp) break; } @@ -16685,13 +16695,13 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_data_container_extract_ #endif ++__pyx_t_6; } - if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1201, __pyx_L22_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1197, __pyx_L22_error) } else { __pyx_t_2 = __pyx_t_7(__pyx_t_8); if (unlikely(!__pyx_t_2)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { - if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(0, 1201, __pyx_L22_error) + if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(0, 1197, __pyx_L22_error) PyErr_Clear(); } break; @@ -16704,7 +16714,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_data_container_extract_ if (unlikely(size != 2)) { if (size > 2) __Pyx_RaiseTooManyValuesError(2); else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); - __PYX_ERR(0, 1201, __pyx_L22_error) + __PYX_ERR(0, 1197, __pyx_L22_error) } #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS if (likely(PyTuple_CheckExact(sequence))) { @@ -16714,22 +16724,22 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_data_container_extract_ __Pyx_INCREF(__pyx_t_9); } else { __pyx_t_3 = __Pyx_PyList_GetItemRefFast(sequence, 0, __Pyx_ReferenceSharing_SharedReference); - if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1201, __pyx_L22_error) + if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1197, __pyx_L22_error) __Pyx_XGOTREF(__pyx_t_3); __pyx_t_9 = __Pyx_PyList_GetItemRefFast(sequence, 1, __Pyx_ReferenceSharing_SharedReference); - if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1201, __pyx_L22_error) + if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1197, __pyx_L22_error) __Pyx_XGOTREF(__pyx_t_9); } #else - __pyx_t_3 = __Pyx_PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1201, __pyx_L22_error) + __pyx_t_3 = __Pyx_PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1197, __pyx_L22_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_9 = __Pyx_PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1201, __pyx_L22_error) + __pyx_t_9 = __Pyx_PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1197, __pyx_L22_error) __Pyx_GOTREF(__pyx_t_9); #endif __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } else { Py_ssize_t index = -1; - __pyx_t_12 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1201, __pyx_L22_error) + __pyx_t_12 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1197, __pyx_L22_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_10 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_12); @@ -16737,7 +16747,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_data_container_extract_ __Pyx_GOTREF(__pyx_t_3); index = 1; __pyx_t_9 = __pyx_t_10(__pyx_t_12); if (unlikely(!__pyx_t_9)) goto __pyx_L25_unpacking_failed; __Pyx_GOTREF(__pyx_t_9); - if (__Pyx_IternextUnpackEndCheck(__pyx_t_10(__pyx_t_12), 2) < (0)) __PYX_ERR(0, 1201, __pyx_L22_error) + if (__Pyx_IternextUnpackEndCheck(__pyx_t_10(__pyx_t_12), 2) < (0)) __PYX_ERR(0, 1197, __pyx_L22_error) __pyx_t_10 = NULL; __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; goto __pyx_L26_unpacking_done; @@ -16745,14 +16755,14 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_data_container_extract_ __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __pyx_t_10 = NULL; if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); - __PYX_ERR(0, 1201, __pyx_L22_error) + __PYX_ERR(0, 1197, __pyx_L22_error) __pyx_L26_unpacking_done:; } __Pyx_XDECREF_SET(__pyx_7genexpr__pyx_v_k, __pyx_t_3); __pyx_t_3 = 0; __Pyx_XDECREF_SET(__pyx_7genexpr__pyx_v_v, __pyx_t_9); __pyx_t_9 = 0; - if (unlikely(PyDict_SetItem(__pyx_t_4, (PyObject*)__pyx_7genexpr__pyx_v_k, (PyObject*)__pyx_7genexpr__pyx_v_v))) __PYX_ERR(0, 1201, __pyx_L22_error) + if (unlikely(PyDict_SetItem(__pyx_t_4, (PyObject*)__pyx_7genexpr__pyx_v_k, (PyObject*)__pyx_7genexpr__pyx_v_v))) __PYX_ERR(0, 1197, __pyx_L22_error) } __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_XDECREF(__pyx_7genexpr__pyx_v_k); __pyx_7genexpr__pyx_v_k = 0; @@ -16764,10 +16774,10 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_data_container_extract_ goto __pyx_L1_error; __pyx_L28_exit_scope:; } /* exit inner scope */ - if (__Pyx_PyObject_SetAttrStr(__pyx_v_metadata, __pyx_mstate_global->__pyx_n_u_column_names_to_labels, __pyx_t_4) < (0)) __PYX_ERR(0, 1201, __pyx_L1_error) + if (__Pyx_PyObject_SetAttrStr(__pyx_v_metadata, __pyx_mstate_global->__pyx_n_u_column_names_to_labels, __pyx_t_4) < (0)) __PYX_ERR(0, 1197, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - /* "pyreadstat/_readstat_parser.pyx":1202 + /* "pyreadstat/_readstat_parser.pyx":1198 * metadata.column_labels = data.col_labels * metadata.column_names_to_labels = {k:v for k,v in zip(data.col_names, data.col_labels)} * metadata.file_encoding = data.file_encoding # <<<<<<<<<<<<<< @@ -16776,10 +16786,10 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_data_container_extract_ */ __pyx_t_4 = __pyx_v_data->file_encoding; __Pyx_INCREF(__pyx_t_4); - if (__Pyx_PyObject_SetAttrStr(__pyx_v_metadata, __pyx_mstate_global->__pyx_n_u_file_encoding, __pyx_t_4) < (0)) __PYX_ERR(0, 1202, __pyx_L1_error) + if (__Pyx_PyObject_SetAttrStr(__pyx_v_metadata, __pyx_mstate_global->__pyx_n_u_file_encoding, __pyx_t_4) < (0)) __PYX_ERR(0, 1198, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - /* "pyreadstat/_readstat_parser.pyx":1203 + /* "pyreadstat/_readstat_parser.pyx":1199 * metadata.column_names_to_labels = {k:v for k,v in zip(data.col_names, data.col_labels)} * metadata.file_encoding = data.file_encoding * metadata.file_label = data.file_label # <<<<<<<<<<<<<< @@ -16788,55 +16798,55 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_data_container_extract_ */ __pyx_t_4 = __pyx_v_data->file_label; __Pyx_INCREF(__pyx_t_4); - if (__Pyx_PyObject_SetAttrStr(__pyx_v_metadata, __pyx_mstate_global->__pyx_n_u_file_label, __pyx_t_4) < (0)) __PYX_ERR(0, 1203, __pyx_L1_error) + if (__Pyx_PyObject_SetAttrStr(__pyx_v_metadata, __pyx_mstate_global->__pyx_n_u_file_label, __pyx_t_4) < (0)) __PYX_ERR(0, 1199, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - /* "pyreadstat/_readstat_parser.pyx":1204 + /* "pyreadstat/_readstat_parser.pyx":1200 * metadata.file_encoding = data.file_encoding * metadata.file_label = data.file_label * metadata.variable_value_labels = variable_value_labels # <<<<<<<<<<<<<< * metadata.value_labels = labels_raw * metadata.variable_to_label = label_to_var_name */ - if (__Pyx_PyObject_SetAttrStr(__pyx_v_metadata, __pyx_mstate_global->__pyx_n_u_variable_value_labels, __pyx_v_variable_value_labels) < (0)) __PYX_ERR(0, 1204, __pyx_L1_error) + if (__Pyx_PyObject_SetAttrStr(__pyx_v_metadata, __pyx_mstate_global->__pyx_n_u_variable_value_labels, __pyx_v_variable_value_labels) < (0)) __PYX_ERR(0, 1200, __pyx_L1_error) - /* "pyreadstat/_readstat_parser.pyx":1205 + /* "pyreadstat/_readstat_parser.pyx":1201 * metadata.file_label = data.file_label * metadata.variable_value_labels = variable_value_labels * metadata.value_labels = labels_raw # <<<<<<<<<<<<<< * metadata.variable_to_label = label_to_var_name * metadata.original_variable_types = original_types */ - if (__Pyx_PyObject_SetAttrStr(__pyx_v_metadata, __pyx_mstate_global->__pyx_n_u_value_labels, __pyx_v_labels_raw) < (0)) __PYX_ERR(0, 1205, __pyx_L1_error) + if (__Pyx_PyObject_SetAttrStr(__pyx_v_metadata, __pyx_mstate_global->__pyx_n_u_value_labels, __pyx_v_labels_raw) < (0)) __PYX_ERR(0, 1201, __pyx_L1_error) - /* "pyreadstat/_readstat_parser.pyx":1206 + /* "pyreadstat/_readstat_parser.pyx":1202 * metadata.variable_value_labels = variable_value_labels * metadata.value_labels = labels_raw * metadata.variable_to_label = label_to_var_name # <<<<<<<<<<<<<< * metadata.original_variable_types = original_types * metadata.readstat_variable_types = readstat_types */ - if (__Pyx_PyObject_SetAttrStr(__pyx_v_metadata, __pyx_mstate_global->__pyx_n_u_variable_to_label, __pyx_v_label_to_var_name) < (0)) __PYX_ERR(0, 1206, __pyx_L1_error) + if (__Pyx_PyObject_SetAttrStr(__pyx_v_metadata, __pyx_mstate_global->__pyx_n_u_variable_to_label, __pyx_v_label_to_var_name) < (0)) __PYX_ERR(0, 1202, __pyx_L1_error) - /* "pyreadstat/_readstat_parser.pyx":1207 + /* "pyreadstat/_readstat_parser.pyx":1203 * metadata.value_labels = labels_raw * metadata.variable_to_label = label_to_var_name * metadata.original_variable_types = original_types # <<<<<<<<<<<<<< * metadata.readstat_variable_types = readstat_types * metadata.table_name = data.table_name */ - if (__Pyx_PyObject_SetAttrStr(__pyx_v_metadata, __pyx_mstate_global->__pyx_n_u_original_variable_types, __pyx_v_original_types) < (0)) __PYX_ERR(0, 1207, __pyx_L1_error) + if (__Pyx_PyObject_SetAttrStr(__pyx_v_metadata, __pyx_mstate_global->__pyx_n_u_original_variable_types, __pyx_v_original_types) < (0)) __PYX_ERR(0, 1203, __pyx_L1_error) - /* "pyreadstat/_readstat_parser.pyx":1208 + /* "pyreadstat/_readstat_parser.pyx":1204 * metadata.variable_to_label = label_to_var_name * metadata.original_variable_types = original_types * metadata.readstat_variable_types = readstat_types # <<<<<<<<<<<<<< * metadata.table_name = data.table_name * metadata.missing_ranges = data.missing_ranges */ - if (__Pyx_PyObject_SetAttrStr(__pyx_v_metadata, __pyx_mstate_global->__pyx_n_u_readstat_variable_types, __pyx_v_readstat_types) < (0)) __PYX_ERR(0, 1208, __pyx_L1_error) + if (__Pyx_PyObject_SetAttrStr(__pyx_v_metadata, __pyx_mstate_global->__pyx_n_u_readstat_variable_types, __pyx_v_readstat_types) < (0)) __PYX_ERR(0, 1204, __pyx_L1_error) - /* "pyreadstat/_readstat_parser.pyx":1209 + /* "pyreadstat/_readstat_parser.pyx":1205 * metadata.original_variable_types = original_types * metadata.readstat_variable_types = readstat_types * metadata.table_name = data.table_name # <<<<<<<<<<<<<< @@ -16845,10 +16855,10 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_data_container_extract_ */ __pyx_t_4 = __pyx_v_data->table_name; __Pyx_INCREF(__pyx_t_4); - if (__Pyx_PyObject_SetAttrStr(__pyx_v_metadata, __pyx_mstate_global->__pyx_n_u_table_name, __pyx_t_4) < (0)) __PYX_ERR(0, 1209, __pyx_L1_error) + if (__Pyx_PyObject_SetAttrStr(__pyx_v_metadata, __pyx_mstate_global->__pyx_n_u_table_name, __pyx_t_4) < (0)) __PYX_ERR(0, 1205, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - /* "pyreadstat/_readstat_parser.pyx":1210 + /* "pyreadstat/_readstat_parser.pyx":1206 * metadata.readstat_variable_types = readstat_types * metadata.table_name = data.table_name * metadata.missing_ranges = data.missing_ranges # <<<<<<<<<<<<<< @@ -16857,10 +16867,10 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_data_container_extract_ */ __pyx_t_4 = __pyx_v_data->missing_ranges; __Pyx_INCREF(__pyx_t_4); - if (__Pyx_PyObject_SetAttrStr(__pyx_v_metadata, __pyx_mstate_global->__pyx_n_u_missing_ranges, __pyx_t_4) < (0)) __PYX_ERR(0, 1210, __pyx_L1_error) + if (__Pyx_PyObject_SetAttrStr(__pyx_v_metadata, __pyx_mstate_global->__pyx_n_u_missing_ranges, __pyx_t_4) < (0)) __PYX_ERR(0, 1206, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - /* "pyreadstat/_readstat_parser.pyx":1211 + /* "pyreadstat/_readstat_parser.pyx":1207 * metadata.table_name = data.table_name * metadata.missing_ranges = data.missing_ranges * metadata.variable_storage_width = data.variable_storage_width # <<<<<<<<<<<<<< @@ -16869,10 +16879,10 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_data_container_extract_ */ __pyx_t_4 = __pyx_v_data->variable_storage_width; __Pyx_INCREF(__pyx_t_4); - if (__Pyx_PyObject_SetAttrStr(__pyx_v_metadata, __pyx_mstate_global->__pyx_n_u_variable_storage_width, __pyx_t_4) < (0)) __PYX_ERR(0, 1211, __pyx_L1_error) + if (__Pyx_PyObject_SetAttrStr(__pyx_v_metadata, __pyx_mstate_global->__pyx_n_u_variable_storage_width, __pyx_t_4) < (0)) __PYX_ERR(0, 1207, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - /* "pyreadstat/_readstat_parser.pyx":1212 + /* "pyreadstat/_readstat_parser.pyx":1208 * metadata.missing_ranges = data.missing_ranges * metadata.variable_storage_width = data.variable_storage_width * metadata.variable_display_width = data.variable_display_width # <<<<<<<<<<<<<< @@ -16881,10 +16891,10 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_data_container_extract_ */ __pyx_t_4 = __pyx_v_data->variable_display_width; __Pyx_INCREF(__pyx_t_4); - if (__Pyx_PyObject_SetAttrStr(__pyx_v_metadata, __pyx_mstate_global->__pyx_n_u_variable_display_width, __pyx_t_4) < (0)) __PYX_ERR(0, 1212, __pyx_L1_error) + if (__Pyx_PyObject_SetAttrStr(__pyx_v_metadata, __pyx_mstate_global->__pyx_n_u_variable_display_width, __pyx_t_4) < (0)) __PYX_ERR(0, 1208, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - /* "pyreadstat/_readstat_parser.pyx":1213 + /* "pyreadstat/_readstat_parser.pyx":1209 * metadata.variable_storage_width = data.variable_storage_width * metadata.variable_display_width = data.variable_display_width * metadata.variable_alignment = data.variable_alignment # <<<<<<<<<<<<<< @@ -16893,10 +16903,10 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_data_container_extract_ */ __pyx_t_4 = __pyx_v_data->variable_alignment; __Pyx_INCREF(__pyx_t_4); - if (__Pyx_PyObject_SetAttrStr(__pyx_v_metadata, __pyx_mstate_global->__pyx_n_u_variable_alignment, __pyx_t_4) < (0)) __PYX_ERR(0, 1213, __pyx_L1_error) + if (__Pyx_PyObject_SetAttrStr(__pyx_v_metadata, __pyx_mstate_global->__pyx_n_u_variable_alignment, __pyx_t_4) < (0)) __PYX_ERR(0, 1209, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - /* "pyreadstat/_readstat_parser.pyx":1214 + /* "pyreadstat/_readstat_parser.pyx":1210 * metadata.variable_display_width = data.variable_display_width * metadata.variable_alignment = data.variable_alignment * metadata.variable_measure = data.variable_measure # <<<<<<<<<<<<<< @@ -16905,24 +16915,24 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_data_container_extract_ */ __pyx_t_4 = __pyx_v_data->variable_measure; __Pyx_INCREF(__pyx_t_4); - if (__Pyx_PyObject_SetAttrStr(__pyx_v_metadata, __pyx_mstate_global->__pyx_n_u_variable_measure, __pyx_t_4) < (0)) __PYX_ERR(0, 1214, __pyx_L1_error) + if (__Pyx_PyObject_SetAttrStr(__pyx_v_metadata, __pyx_mstate_global->__pyx_n_u_variable_measure, __pyx_t_4) < (0)) __PYX_ERR(0, 1210, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - /* "pyreadstat/_readstat_parser.pyx":1215 + /* "pyreadstat/_readstat_parser.pyx":1211 * metadata.variable_alignment = data.variable_alignment * metadata.variable_measure = data.variable_measure * metadata.creation_time = datetime.datetime.fromtimestamp(data.ctime) # <<<<<<<<<<<<<< * metadata.modification_time = datetime.datetime.fromtimestamp(data.mtime) * */ - __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_datetime); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1215, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_datetime); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1211, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_datetime); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1215, __pyx_L1_error) + __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_datetime); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1211, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_8 = __pyx_t_9; __Pyx_INCREF(__pyx_t_8); - __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_data->ctime); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1215, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_data->ctime); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1211, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_5 = 0; { @@ -16931,27 +16941,27 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_data_container_extract_ __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1215, __pyx_L1_error) + if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1211, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); } - if (__Pyx_PyObject_SetAttrStr(__pyx_v_metadata, __pyx_mstate_global->__pyx_n_u_creation_time, __pyx_t_4) < (0)) __PYX_ERR(0, 1215, __pyx_L1_error) + if (__Pyx_PyObject_SetAttrStr(__pyx_v_metadata, __pyx_mstate_global->__pyx_n_u_creation_time, __pyx_t_4) < (0)) __PYX_ERR(0, 1211, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - /* "pyreadstat/_readstat_parser.pyx":1216 + /* "pyreadstat/_readstat_parser.pyx":1212 * metadata.variable_measure = data.variable_measure * metadata.creation_time = datetime.datetime.fromtimestamp(data.ctime) * metadata.modification_time = datetime.datetime.fromtimestamp(data.mtime) # <<<<<<<<<<<<<< * * return metadata */ - __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_datetime); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1216, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_datetime); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1212, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_datetime); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1216, __pyx_L1_error) + __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_datetime); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1212, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_9 = __pyx_t_8; __Pyx_INCREF(__pyx_t_9); - __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_data->mtime); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1216, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_data->mtime); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1212, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_5 = 0; { @@ -16960,13 +16970,13 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_data_container_extract_ __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1216, __pyx_L1_error) + if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1212, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); } - if (__Pyx_PyObject_SetAttrStr(__pyx_v_metadata, __pyx_mstate_global->__pyx_n_u_modification_time, __pyx_t_4) < (0)) __PYX_ERR(0, 1216, __pyx_L1_error) + if (__Pyx_PyObject_SetAttrStr(__pyx_v_metadata, __pyx_mstate_global->__pyx_n_u_modification_time, __pyx_t_4) < (0)) __PYX_ERR(0, 1212, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - /* "pyreadstat/_readstat_parser.pyx":1218 + /* "pyreadstat/_readstat_parser.pyx":1214 * metadata.modification_time = datetime.datetime.fromtimestamp(data.mtime) * * return metadata # <<<<<<<<<<<<<< @@ -16978,7 +16988,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_data_container_extract_ __pyx_r = __pyx_v_metadata; goto __pyx_L0; - /* "pyreadstat/_readstat_parser.pyx":1128 + /* "pyreadstat/_readstat_parser.pyx":1124 * return data_frame * * cdef object data_container_extract_metadata(data_container data): # <<<<<<<<<<<<<< @@ -17017,7 +17027,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_data_container_extract_ return __pyx_r; } -/* "pyreadstat/_readstat_parser.pyx":1221 +/* "pyreadstat/_readstat_parser.pyx":1217 * * * cdef object run_conversion(object filename_path, py_file_format file_format, py_file_extension file_extension, # <<<<<<<<<<<<<< @@ -17073,7 +17083,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject __Pyx_RefNannySetupContext("run_conversion", 0); __Pyx_INCREF(__pyx_v_output_format); - /* "pyreadstat/_readstat_parser.pyx":1240 + /* "pyreadstat/_readstat_parser.pyx":1236 * cdef object data_dict * cdef object data_frame * cdef object file_obj = None # <<<<<<<<<<<<<< @@ -17083,25 +17093,25 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject __Pyx_INCREF(Py_None); __pyx_v_file_obj = Py_None; - /* "pyreadstat/_readstat_parser.pyx":1243 + /* "pyreadstat/_readstat_parser.pyx":1239 * * # Check if filename_path is a file-like object * if hasattr(filename_path, 'read') and hasattr(filename_path, 'seek'): # <<<<<<<<<<<<<< * file_obj = filename_path * filename_bytes = b"" # Empty path - will be ignored when file_obj is used */ - __pyx_t_2 = __Pyx_HasAttr(__pyx_v_filename_path, __pyx_mstate_global->__pyx_n_u_read); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(0, 1243, __pyx_L1_error) + __pyx_t_2 = __Pyx_HasAttr(__pyx_v_filename_path, __pyx_mstate_global->__pyx_n_u_read); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(0, 1239, __pyx_L1_error) if (__pyx_t_2) { } else { __pyx_t_1 = __pyx_t_2; goto __pyx_L4_bool_binop_done; } - __pyx_t_2 = __Pyx_HasAttr(__pyx_v_filename_path, __pyx_mstate_global->__pyx_n_u_seek); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(0, 1243, __pyx_L1_error) + __pyx_t_2 = __Pyx_HasAttr(__pyx_v_filename_path, __pyx_mstate_global->__pyx_n_u_seek); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(0, 1239, __pyx_L1_error) __pyx_t_1 = __pyx_t_2; __pyx_L4_bool_binop_done:; if (__pyx_t_1) { - /* "pyreadstat/_readstat_parser.pyx":1244 + /* "pyreadstat/_readstat_parser.pyx":1240 * # Check if filename_path is a file-like object * if hasattr(filename_path, 'read') and hasattr(filename_path, 'seek'): * file_obj = filename_path # <<<<<<<<<<<<<< @@ -17111,7 +17121,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject __Pyx_INCREF(__pyx_v_filename_path); __Pyx_DECREF_SET(__pyx_v_file_obj, __pyx_v_filename_path); - /* "pyreadstat/_readstat_parser.pyx":1245 + /* "pyreadstat/_readstat_parser.pyx":1241 * if hasattr(filename_path, 'read') and hasattr(filename_path, 'seek'): * file_obj = filename_path * filename_bytes = b"" # Empty path - will be ignored when file_obj is used # <<<<<<<<<<<<<< @@ -17121,7 +17131,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject __Pyx_INCREF(__pyx_mstate_global->__pyx_kp_b_); __pyx_v_filename_bytes = __pyx_mstate_global->__pyx_kp_b_; - /* "pyreadstat/_readstat_parser.pyx":1243 + /* "pyreadstat/_readstat_parser.pyx":1239 * * # Check if filename_path is a file-like object * if hasattr(filename_path, 'read') and hasattr(filename_path, 'seek'): # <<<<<<<<<<<<<< @@ -17131,20 +17141,20 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject goto __pyx_L3; } - /* "pyreadstat/_readstat_parser.pyx":1246 + /* "pyreadstat/_readstat_parser.pyx":1242 * file_obj = filename_path * filename_bytes = b"" # Empty path - will be ignored when file_obj is used * elif hasattr(os, 'fsencode'): # <<<<<<<<<<<<<< * try: * filename_bytes = os.fsencode(filename_path) */ - __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_os); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1246, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_os); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1242, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_1 = __Pyx_HasAttr(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_fsencode); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(0, 1246, __pyx_L1_error) + __pyx_t_1 = __Pyx_HasAttr(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_fsencode); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(0, 1242, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (__pyx_t_1) { - /* "pyreadstat/_readstat_parser.pyx":1247 + /* "pyreadstat/_readstat_parser.pyx":1243 * filename_bytes = b"" # Empty path - will be ignored when file_obj is used * elif hasattr(os, 'fsencode'): * try: # <<<<<<<<<<<<<< @@ -17160,7 +17170,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject __Pyx_XGOTREF(__pyx_t_6); /*try:*/ { - /* "pyreadstat/_readstat_parser.pyx":1248 + /* "pyreadstat/_readstat_parser.pyx":1244 * elif hasattr(os, 'fsencode'): * try: * filename_bytes = os.fsencode(filename_path) # <<<<<<<<<<<<<< @@ -17168,9 +17178,9 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject * warnings.warn("file path could not be encoded with %s which is set as your system encoding, trying to encode it as utf-8. Please set your system encoding correctly." % sys.getfilesystemencoding()) */ __pyx_t_7 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_os); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1248, __pyx_L6_error) + __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_os); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1244, __pyx_L6_error) __Pyx_GOTREF(__pyx_t_8); - __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_fsencode); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1248, __pyx_L6_error) + __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_fsencode); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1244, __pyx_L6_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_t_10 = 1; @@ -17190,14 +17200,14 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_9, __pyx_callargs+__pyx_t_10, (2-__pyx_t_10) | (__pyx_t_10*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1248, __pyx_L6_error) + if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1244, __pyx_L6_error) __Pyx_GOTREF(__pyx_t_3); } - if (!(likely(PyBytes_CheckExact(__pyx_t_3))||((__pyx_t_3) == Py_None) || __Pyx_RaiseUnexpectedTypeError("bytes", __pyx_t_3))) __PYX_ERR(0, 1248, __pyx_L6_error) + if (!(likely(PyBytes_CheckExact(__pyx_t_3))||((__pyx_t_3) == Py_None) || __Pyx_RaiseUnexpectedTypeError("bytes", __pyx_t_3))) __PYX_ERR(0, 1244, __pyx_L6_error) __pyx_v_filename_bytes = ((PyObject*)__pyx_t_3); __pyx_t_3 = 0; - /* "pyreadstat/_readstat_parser.pyx":1247 + /* "pyreadstat/_readstat_parser.pyx":1243 * filename_bytes = b"" # Empty path - will be ignored when file_obj is used * elif hasattr(os, 'fsencode'): * try: # <<<<<<<<<<<<<< @@ -17215,7 +17225,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - /* "pyreadstat/_readstat_parser.pyx":1249 + /* "pyreadstat/_readstat_parser.pyx":1245 * try: * filename_bytes = os.fsencode(filename_path) * except UnicodeError: # <<<<<<<<<<<<<< @@ -17225,12 +17235,12 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject __pyx_t_11 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(((PyTypeObject*)PyExc_UnicodeError)))); if (__pyx_t_11) { __Pyx_AddTraceback("pyreadstat._readstat_parser.run_conversion", __pyx_clineno, __pyx_lineno, __pyx_filename); - if (__Pyx_GetException(&__pyx_t_3, &__pyx_t_9, &__pyx_t_7) < 0) __PYX_ERR(0, 1249, __pyx_L8_except_error) + if (__Pyx_GetException(&__pyx_t_3, &__pyx_t_9, &__pyx_t_7) < 0) __PYX_ERR(0, 1245, __pyx_L8_except_error) __Pyx_XGOTREF(__pyx_t_3); __Pyx_XGOTREF(__pyx_t_9); __Pyx_XGOTREF(__pyx_t_7); - /* "pyreadstat/_readstat_parser.pyx":1250 + /* "pyreadstat/_readstat_parser.pyx":1246 * filename_bytes = os.fsencode(filename_path) * except UnicodeError: * warnings.warn("file path could not be encoded with %s which is set as your system encoding, trying to encode it as utf-8. Please set your system encoding correctly." % sys.getfilesystemencoding()) # <<<<<<<<<<<<<< @@ -17238,15 +17248,15 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject * else: */ __pyx_t_12 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_13, __pyx_mstate_global->__pyx_n_u_warnings); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1250, __pyx_L8_except_error) + __Pyx_GetModuleGlobalName(__pyx_t_13, __pyx_mstate_global->__pyx_n_u_warnings); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1246, __pyx_L8_except_error) __Pyx_GOTREF(__pyx_t_13); - __pyx_t_14 = __Pyx_PyObject_GetAttrStr(__pyx_t_13, __pyx_mstate_global->__pyx_n_u_warn); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 1250, __pyx_L8_except_error) + __pyx_t_14 = __Pyx_PyObject_GetAttrStr(__pyx_t_13, __pyx_mstate_global->__pyx_n_u_warn); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 1246, __pyx_L8_except_error) __Pyx_GOTREF(__pyx_t_14); __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; __pyx_t_15 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_16, __pyx_mstate_global->__pyx_n_u_sys); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 1250, __pyx_L8_except_error) + __Pyx_GetModuleGlobalName(__pyx_t_16, __pyx_mstate_global->__pyx_n_u_sys); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 1246, __pyx_L8_except_error) __Pyx_GOTREF(__pyx_t_16); - __pyx_t_17 = __Pyx_PyObject_GetAttrStr(__pyx_t_16, __pyx_mstate_global->__pyx_n_u_getfilesystemencoding); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 1250, __pyx_L8_except_error) + __pyx_t_17 = __Pyx_PyObject_GetAttrStr(__pyx_t_16, __pyx_mstate_global->__pyx_n_u_getfilesystemencoding); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 1246, __pyx_L8_except_error) __Pyx_GOTREF(__pyx_t_17); __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; __pyx_t_10 = 1; @@ -17266,10 +17276,10 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject __pyx_t_13 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_17, __pyx_callargs+__pyx_t_10, (1-__pyx_t_10) | (__pyx_t_10*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0; __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0; - if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1250, __pyx_L8_except_error) + if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1246, __pyx_L8_except_error) __Pyx_GOTREF(__pyx_t_13); } - __pyx_t_17 = __Pyx_PyUnicode_FormatSafe(__pyx_mstate_global->__pyx_kp_u_file_path_could_not_be_encoded_w, __pyx_t_13); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 1250, __pyx_L8_except_error) + __pyx_t_17 = __Pyx_PyUnicode_FormatSafe(__pyx_mstate_global->__pyx_kp_u_file_path_could_not_be_encoded_w, __pyx_t_13); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 1246, __pyx_L8_except_error) __Pyx_GOTREF(__pyx_t_17); __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; __pyx_t_10 = 1; @@ -17290,12 +17300,12 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0; __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; - if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1250, __pyx_L8_except_error) + if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1246, __pyx_L8_except_error) __Pyx_GOTREF(__pyx_t_8); } __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - /* "pyreadstat/_readstat_parser.pyx":1251 + /* "pyreadstat/_readstat_parser.pyx":1247 * except UnicodeError: * warnings.warn("file path could not be encoded with %s which is set as your system encoding, trying to encode it as utf-8. Please set your system encoding correctly." % sys.getfilesystemencoding()) * filename_bytes = os.fsdecode(filename_path).encode("utf-8", "surrogateescape") # <<<<<<<<<<<<<< @@ -17303,9 +17313,9 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject * if type(filename_path) == str: */ __pyx_t_14 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_17, __pyx_mstate_global->__pyx_n_u_os); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 1251, __pyx_L8_except_error) + __Pyx_GetModuleGlobalName(__pyx_t_17, __pyx_mstate_global->__pyx_n_u_os); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 1247, __pyx_L8_except_error) __Pyx_GOTREF(__pyx_t_17); - __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_t_17, __pyx_mstate_global->__pyx_n_u_fsdecode); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1251, __pyx_L8_except_error) + __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_t_17, __pyx_mstate_global->__pyx_n_u_fsdecode); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1247, __pyx_L8_except_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0; __pyx_t_10 = 1; @@ -17325,16 +17335,16 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject __pyx_t_8 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_12, __pyx_callargs+__pyx_t_10, (2-__pyx_t_10) | (__pyx_t_10*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0; __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1251, __pyx_L8_except_error) + if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1247, __pyx_L8_except_error) __Pyx_GOTREF(__pyx_t_8); } - __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_encode); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1251, __pyx_L8_except_error) + __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_encode); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1247, __pyx_L8_except_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_12, __pyx_mstate_global->__pyx_tuple[0], NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1251, __pyx_L8_except_error) + __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_12, __pyx_mstate_global->__pyx_tuple[0], NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1247, __pyx_L8_except_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - if (!(likely(PyBytes_CheckExact(__pyx_t_8))||((__pyx_t_8) == Py_None) || __Pyx_RaiseUnexpectedTypeError("bytes", __pyx_t_8))) __PYX_ERR(0, 1251, __pyx_L8_except_error) + if (!(likely(PyBytes_CheckExact(__pyx_t_8))||((__pyx_t_8) == Py_None) || __Pyx_RaiseUnexpectedTypeError("bytes", __pyx_t_8))) __PYX_ERR(0, 1247, __pyx_L8_except_error) __Pyx_XDECREF_SET(__pyx_v_filename_bytes, ((PyObject*)__pyx_t_8)); __pyx_t_8 = 0; __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; @@ -17344,7 +17354,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject } goto __pyx_L8_except_error; - /* "pyreadstat/_readstat_parser.pyx":1247 + /* "pyreadstat/_readstat_parser.pyx":1243 * filename_bytes = b"" # Empty path - will be ignored when file_obj is used * elif hasattr(os, 'fsencode'): * try: # <<<<<<<<<<<<<< @@ -17365,7 +17375,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject __pyx_L11_try_end:; } - /* "pyreadstat/_readstat_parser.pyx":1246 + /* "pyreadstat/_readstat_parser.pyx":1242 * file_obj = filename_path * filename_bytes = b"" # Empty path - will be ignored when file_obj is used * elif hasattr(os, 'fsencode'): # <<<<<<<<<<<<<< @@ -17375,7 +17385,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject goto __pyx_L3; } - /* "pyreadstat/_readstat_parser.pyx":1253 + /* "pyreadstat/_readstat_parser.pyx":1249 * filename_bytes = os.fsdecode(filename_path).encode("utf-8", "surrogateescape") * else: * if type(filename_path) == str: # <<<<<<<<<<<<<< @@ -17383,12 +17393,12 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject * elif type(filename_path) == bytes: */ /*else*/ { - __pyx_t_7 = PyObject_RichCompare(((PyObject *)Py_TYPE(__pyx_v_filename_path)), ((PyObject *)(&PyUnicode_Type)), Py_EQ); __Pyx_XGOTREF(__pyx_t_7); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1253, __pyx_L1_error) - __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 1253, __pyx_L1_error) + __pyx_t_7 = PyObject_RichCompare(((PyObject *)Py_TYPE(__pyx_v_filename_path)), ((PyObject *)(&PyUnicode_Type)), Py_EQ); __Pyx_XGOTREF(__pyx_t_7); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1249, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 1249, __pyx_L1_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; if (__pyx_t_1) { - /* "pyreadstat/_readstat_parser.pyx":1254 + /* "pyreadstat/_readstat_parser.pyx":1250 * else: * if type(filename_path) == str: * filename_bytes = filename_path.encode('utf-8') # <<<<<<<<<<<<<< @@ -17402,14 +17412,14 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_mstate_global->__pyx_kp_u_utf_8}; __pyx_t_7 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_encode, __pyx_callargs+__pyx_t_10, (2-__pyx_t_10) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1254, __pyx_L1_error) + if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1250, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); } - if (!(likely(PyBytes_CheckExact(__pyx_t_7))||((__pyx_t_7) == Py_None) || __Pyx_RaiseUnexpectedTypeError("bytes", __pyx_t_7))) __PYX_ERR(0, 1254, __pyx_L1_error) + if (!(likely(PyBytes_CheckExact(__pyx_t_7))||((__pyx_t_7) == Py_None) || __Pyx_RaiseUnexpectedTypeError("bytes", __pyx_t_7))) __PYX_ERR(0, 1250, __pyx_L1_error) __pyx_v_filename_bytes = ((PyObject*)__pyx_t_7); __pyx_t_7 = 0; - /* "pyreadstat/_readstat_parser.pyx":1253 + /* "pyreadstat/_readstat_parser.pyx":1249 * filename_bytes = os.fsdecode(filename_path).encode("utf-8", "surrogateescape") * else: * if type(filename_path) == str: # <<<<<<<<<<<<<< @@ -17419,19 +17429,19 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject goto __pyx_L14; } - /* "pyreadstat/_readstat_parser.pyx":1255 + /* "pyreadstat/_readstat_parser.pyx":1251 * if type(filename_path) == str: * filename_bytes = filename_path.encode('utf-8') * elif type(filename_path) == bytes: # <<<<<<<<<<<<<< * filename_bytes = filename_path * else: */ - __pyx_t_7 = PyObject_RichCompare(((PyObject *)Py_TYPE(__pyx_v_filename_path)), ((PyObject *)(&PyBytes_Type)), Py_EQ); __Pyx_XGOTREF(__pyx_t_7); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1255, __pyx_L1_error) - __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 1255, __pyx_L1_error) + __pyx_t_7 = PyObject_RichCompare(((PyObject *)Py_TYPE(__pyx_v_filename_path)), ((PyObject *)(&PyBytes_Type)), Py_EQ); __Pyx_XGOTREF(__pyx_t_7); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1251, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 1251, __pyx_L1_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; if (likely(__pyx_t_1)) { - /* "pyreadstat/_readstat_parser.pyx":1256 + /* "pyreadstat/_readstat_parser.pyx":1252 * filename_bytes = filename_path.encode('utf-8') * elif type(filename_path) == bytes: * filename_bytes = filename_path # <<<<<<<<<<<<<< @@ -17440,11 +17450,11 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject */ __pyx_t_7 = __pyx_v_filename_path; __Pyx_INCREF(__pyx_t_7); - if (!(likely(PyBytes_CheckExact(__pyx_t_7))||((__pyx_t_7) == Py_None) || __Pyx_RaiseUnexpectedTypeError("bytes", __pyx_t_7))) __PYX_ERR(0, 1256, __pyx_L1_error) + if (!(likely(PyBytes_CheckExact(__pyx_t_7))||((__pyx_t_7) == Py_None) || __Pyx_RaiseUnexpectedTypeError("bytes", __pyx_t_7))) __PYX_ERR(0, 1252, __pyx_L1_error) __pyx_v_filename_bytes = ((PyObject*)__pyx_t_7); __pyx_t_7 = 0; - /* "pyreadstat/_readstat_parser.pyx":1255 + /* "pyreadstat/_readstat_parser.pyx":1251 * if type(filename_path) == str: * filename_bytes = filename_path.encode('utf-8') * elif type(filename_path) == bytes: # <<<<<<<<<<<<<< @@ -17454,7 +17464,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject goto __pyx_L14; } - /* "pyreadstat/_readstat_parser.pyx":1258 + /* "pyreadstat/_readstat_parser.pyx":1254 * filename_bytes = filename_path * else: * raise PyreadstatError("path must be either str or bytes") # <<<<<<<<<<<<<< @@ -17463,7 +17473,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject */ /*else*/ { __pyx_t_9 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1258, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1254, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_10 = 1; #if CYTHON_UNPACK_METHODS @@ -17482,16 +17492,16 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject __pyx_t_7 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_3, __pyx_callargs+__pyx_t_10, (2-__pyx_t_10) | (__pyx_t_10*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1258, __pyx_L1_error) + if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1254, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); } __Pyx_Raise(__pyx_t_7, 0, 0, 0); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __PYX_ERR(0, 1258, __pyx_L1_error) + __PYX_ERR(0, 1254, __pyx_L1_error) } __pyx_L14:; - /* "pyreadstat/_readstat_parser.pyx":1259 + /* "pyreadstat/_readstat_parser.pyx":1255 * else: * raise PyreadstatError("path must be either str or bytes") * if type(filename_path) not in (str, bytes, unicode): # <<<<<<<<<<<<<< @@ -17500,24 +17510,24 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject */ __Pyx_INCREF(((PyObject *)Py_TYPE(__pyx_v_filename_path))); __pyx_t_7 = ((PyObject *)Py_TYPE(__pyx_v_filename_path)); - __pyx_t_3 = PyObject_RichCompare(((PyObject *)__pyx_t_7), ((PyObject *)(&PyUnicode_Type)), Py_NE); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1259, __pyx_L1_error) - __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 1259, __pyx_L1_error) + __pyx_t_3 = PyObject_RichCompare(((PyObject *)__pyx_t_7), ((PyObject *)(&PyUnicode_Type)), Py_NE); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1255, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 1255, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (__pyx_t_2) { } else { __pyx_t_1 = __pyx_t_2; goto __pyx_L16_bool_binop_done; } - __pyx_t_3 = PyObject_RichCompare(((PyObject *)__pyx_t_7), ((PyObject *)(&PyBytes_Type)), Py_NE); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1259, __pyx_L1_error) - __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 1259, __pyx_L1_error) + __pyx_t_3 = PyObject_RichCompare(((PyObject *)__pyx_t_7), ((PyObject *)(&PyBytes_Type)), Py_NE); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1255, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 1255, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (__pyx_t_2) { } else { __pyx_t_1 = __pyx_t_2; goto __pyx_L16_bool_binop_done; } - __pyx_t_3 = PyObject_RichCompare(((PyObject *)__pyx_t_7), ((PyObject *)(&PyUnicode_Type)), Py_NE); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1259, __pyx_L1_error) - __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 1259, __pyx_L1_error) + __pyx_t_3 = PyObject_RichCompare(((PyObject *)__pyx_t_7), ((PyObject *)(&PyUnicode_Type)), Py_NE); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1255, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 1255, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_1 = __pyx_t_2; __pyx_L16_bool_binop_done:; @@ -17525,7 +17535,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject __pyx_t_2 = __pyx_t_1; if (unlikely(__pyx_t_2)) { - /* "pyreadstat/_readstat_parser.pyx":1260 + /* "pyreadstat/_readstat_parser.pyx":1256 * raise PyreadstatError("path must be either str or bytes") * if type(filename_path) not in (str, bytes, unicode): * raise PyreadstatError("path must be str, bytes or unicode") # <<<<<<<<<<<<<< @@ -17533,7 +17543,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject * */ __pyx_t_3 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1260, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1256, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_10 = 1; #if CYTHON_UNPACK_METHODS @@ -17552,14 +17562,14 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject __pyx_t_7 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_9, __pyx_callargs+__pyx_t_10, (2-__pyx_t_10) | (__pyx_t_10*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1260, __pyx_L1_error) + if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1256, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); } __Pyx_Raise(__pyx_t_7, 0, 0, 0); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __PYX_ERR(0, 1260, __pyx_L1_error) + __PYX_ERR(0, 1256, __pyx_L1_error) - /* "pyreadstat/_readstat_parser.pyx":1259 + /* "pyreadstat/_readstat_parser.pyx":1255 * else: * raise PyreadstatError("path must be either str or bytes") * if type(filename_path) not in (str, bytes, unicode): # <<<<<<<<<<<<<< @@ -17568,7 +17578,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject */ } - /* "pyreadstat/_readstat_parser.pyx":1261 + /* "pyreadstat/_readstat_parser.pyx":1257 * if type(filename_path) not in (str, bytes, unicode): * raise PyreadstatError("path must be str, bytes or unicode") * filename_bytes = filename_path.encode('utf-8') # <<<<<<<<<<<<<< @@ -17582,16 +17592,16 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_mstate_global->__pyx_kp_u_utf_8}; __pyx_t_7 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_encode, __pyx_callargs+__pyx_t_10, (2-__pyx_t_10) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1261, __pyx_L1_error) + if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1257, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); } - if (!(likely(PyBytes_CheckExact(__pyx_t_7))||((__pyx_t_7) == Py_None) || __Pyx_RaiseUnexpectedTypeError("bytes", __pyx_t_7))) __PYX_ERR(0, 1261, __pyx_L1_error) + if (!(likely(PyBytes_CheckExact(__pyx_t_7))||((__pyx_t_7) == Py_None) || __Pyx_RaiseUnexpectedTypeError("bytes", __pyx_t_7))) __PYX_ERR(0, 1257, __pyx_L1_error) __Pyx_DECREF_SET(__pyx_v_filename_bytes, ((PyObject*)__pyx_t_7)); __pyx_t_7 = 0; } __pyx_L3:; - /* "pyreadstat/_readstat_parser.pyx":1264 + /* "pyreadstat/_readstat_parser.pyx":1260 * * # Only check file existence for path-based reads * if file_obj is None: # <<<<<<<<<<<<<< @@ -17601,16 +17611,16 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject __pyx_t_2 = (__pyx_v_file_obj == Py_None); if (__pyx_t_2) { - /* "pyreadstat/_readstat_parser.pyx":1265 + /* "pyreadstat/_readstat_parser.pyx":1261 * # Only check file existence for path-based reads * if file_obj is None: * filename_bytes = os.path.expanduser(filename_bytes) # <<<<<<<<<<<<<< * if not os.path.isfile(filename_bytes): * raise PyreadstatError("File {0} does not exist!".format(filename_path)) */ - __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_os); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1265, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_os); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1261, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_path); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1265, __pyx_L1_error) + __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_path); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1261, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_9 = __pyx_t_8; @@ -17621,23 +17631,23 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject __pyx_t_7 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_expanduser, __pyx_callargs+__pyx_t_10, (2-__pyx_t_10) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1265, __pyx_L1_error) + if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1261, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); } - if (!(likely(PyBytes_CheckExact(__pyx_t_7))||((__pyx_t_7) == Py_None) || __Pyx_RaiseUnexpectedTypeError("bytes", __pyx_t_7))) __PYX_ERR(0, 1265, __pyx_L1_error) + if (!(likely(PyBytes_CheckExact(__pyx_t_7))||((__pyx_t_7) == Py_None) || __Pyx_RaiseUnexpectedTypeError("bytes", __pyx_t_7))) __PYX_ERR(0, 1261, __pyx_L1_error) __Pyx_DECREF_SET(__pyx_v_filename_bytes, ((PyObject*)__pyx_t_7)); __pyx_t_7 = 0; - /* "pyreadstat/_readstat_parser.pyx":1266 + /* "pyreadstat/_readstat_parser.pyx":1262 * if file_obj is None: * filename_bytes = os.path.expanduser(filename_bytes) * if not os.path.isfile(filename_bytes): # <<<<<<<<<<<<<< * raise PyreadstatError("File {0} does not exist!".format(filename_path)) * */ - __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_os); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1266, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_os); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1262, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); - __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_path); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1266, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_path); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1262, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_8 = __pyx_t_3; @@ -17648,15 +17658,15 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject __pyx_t_7 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_isfile, __pyx_callargs+__pyx_t_10, (2-__pyx_t_10) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1266, __pyx_L1_error) + if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1262, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); } - __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 1266, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 1262, __pyx_L1_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_1 = (!__pyx_t_2); if (unlikely(__pyx_t_1)) { - /* "pyreadstat/_readstat_parser.pyx":1267 + /* "pyreadstat/_readstat_parser.pyx":1263 * filename_bytes = os.path.expanduser(filename_bytes) * if not os.path.isfile(filename_bytes): * raise PyreadstatError("File {0} does not exist!".format(filename_path)) # <<<<<<<<<<<<<< @@ -17664,7 +17674,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject * if output_format is None: */ __pyx_t_3 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1267, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1263, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_12 = __pyx_mstate_global->__pyx_kp_u_File_0_does_not_exist; __Pyx_INCREF(__pyx_t_12); @@ -17673,7 +17683,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject PyObject *__pyx_callargs[2] = {__pyx_t_12, __pyx_v_filename_path}; __pyx_t_9 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_format, __pyx_callargs+__pyx_t_10, (2-__pyx_t_10) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; - if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1267, __pyx_L1_error) + if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1263, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); } __pyx_t_10 = 1; @@ -17694,14 +17704,14 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1267, __pyx_L1_error) + if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1263, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); } __Pyx_Raise(__pyx_t_7, 0, 0, 0); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __PYX_ERR(0, 1267, __pyx_L1_error) + __PYX_ERR(0, 1263, __pyx_L1_error) - /* "pyreadstat/_readstat_parser.pyx":1266 + /* "pyreadstat/_readstat_parser.pyx":1262 * if file_obj is None: * filename_bytes = os.path.expanduser(filename_bytes) * if not os.path.isfile(filename_bytes): # <<<<<<<<<<<<<< @@ -17710,7 +17720,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject */ } - /* "pyreadstat/_readstat_parser.pyx":1264 + /* "pyreadstat/_readstat_parser.pyx":1260 * * # Only check file existence for path-based reads * if file_obj is None: # <<<<<<<<<<<<<< @@ -17719,7 +17729,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject */ } - /* "pyreadstat/_readstat_parser.pyx":1269 + /* "pyreadstat/_readstat_parser.pyx":1265 * raise PyreadstatError("File {0} does not exist!".format(filename_path)) * * if output_format is None: # <<<<<<<<<<<<<< @@ -17729,7 +17739,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject __pyx_t_1 = (__pyx_v_output_format == ((PyObject*)Py_None)); if (__pyx_t_1) { - /* "pyreadstat/_readstat_parser.pyx":1270 + /* "pyreadstat/_readstat_parser.pyx":1266 * * if output_format is None: * output_format = 'pandas' # <<<<<<<<<<<<<< @@ -17739,7 +17749,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject __Pyx_INCREF(__pyx_mstate_global->__pyx_n_u_pandas); __Pyx_DECREF_SET(__pyx_v_output_format, __pyx_mstate_global->__pyx_n_u_pandas); - /* "pyreadstat/_readstat_parser.pyx":1269 + /* "pyreadstat/_readstat_parser.pyx":1265 * raise PyreadstatError("File {0} does not exist!".format(filename_path)) * * if output_format is None: # <<<<<<<<<<<<<< @@ -17748,32 +17758,32 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject */ } - /* "pyreadstat/_readstat_parser.pyx":1271 + /* "pyreadstat/_readstat_parser.pyx":1267 * if output_format is None: * output_format = 'pandas' * allowed_formats = {'pandas', 'dict', 'polars'} # <<<<<<<<<<<<<< * if output_format not in allowed_formats: * raise PyreadstatError("output format must be one of {allowed_formats}, '{output_format}' was given".format(allowed_formats=allowed_formats, output_format=output_format)) */ - __pyx_t_7 = PySet_New(0); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1271, __pyx_L1_error) + __pyx_t_7 = PySet_New(0); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1267, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); - if (PySet_Add(__pyx_t_7, __pyx_mstate_global->__pyx_n_u_pandas) < (0)) __PYX_ERR(0, 1271, __pyx_L1_error) - if (PySet_Add(__pyx_t_7, __pyx_mstate_global->__pyx_n_u_dict) < (0)) __PYX_ERR(0, 1271, __pyx_L1_error) - if (PySet_Add(__pyx_t_7, __pyx_mstate_global->__pyx_n_u_polars) < (0)) __PYX_ERR(0, 1271, __pyx_L1_error) + if (PySet_Add(__pyx_t_7, __pyx_mstate_global->__pyx_n_u_pandas) < (0)) __PYX_ERR(0, 1267, __pyx_L1_error) + if (PySet_Add(__pyx_t_7, __pyx_mstate_global->__pyx_n_u_dict) < (0)) __PYX_ERR(0, 1267, __pyx_L1_error) + if (PySet_Add(__pyx_t_7, __pyx_mstate_global->__pyx_n_u_polars) < (0)) __PYX_ERR(0, 1267, __pyx_L1_error) __pyx_v_allowed_formats = ((PyObject*)__pyx_t_7); __pyx_t_7 = 0; - /* "pyreadstat/_readstat_parser.pyx":1272 + /* "pyreadstat/_readstat_parser.pyx":1268 * output_format = 'pandas' * allowed_formats = {'pandas', 'dict', 'polars'} * if output_format not in allowed_formats: # <<<<<<<<<<<<<< * raise PyreadstatError("output format must be one of {allowed_formats}, '{output_format}' was given".format(allowed_formats=allowed_formats, output_format=output_format)) * if output_format == "pandas": */ - __pyx_t_1 = (__Pyx_PySet_ContainsTF(__pyx_v_output_format, __pyx_v_allowed_formats, Py_NE)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 1272, __pyx_L1_error) + __pyx_t_1 = (__Pyx_PySet_ContainsTF(__pyx_v_output_format, __pyx_v_allowed_formats, Py_NE)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 1268, __pyx_L1_error) if (unlikely(__pyx_t_1)) { - /* "pyreadstat/_readstat_parser.pyx":1273 + /* "pyreadstat/_readstat_parser.pyx":1269 * allowed_formats = {'pandas', 'dict', 'polars'} * if output_format not in allowed_formats: * raise PyreadstatError("output format must be one of {allowed_formats}, '{output_format}' was given".format(allowed_formats=allowed_formats, output_format=output_format)) # <<<<<<<<<<<<<< @@ -17781,21 +17791,21 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject * try: */ __pyx_t_8 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1273, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1269, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_12 = __pyx_mstate_global->__pyx_kp_u_output_format_must_be_one_of_all; __Pyx_INCREF(__pyx_t_12); __pyx_t_10 = 0; { PyObject *__pyx_callargs[2 + ((CYTHON_VECTORCALL) ? 2 : 0)] = {__pyx_t_12, NULL}; - __pyx_t_14 = __Pyx_MakeVectorcallBuilderKwds(2); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 1273, __pyx_L1_error) + __pyx_t_14 = __Pyx_MakeVectorcallBuilderKwds(2); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 1269, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); - if (__Pyx_VectorcallBuilder_AddArg(__pyx_mstate_global->__pyx_n_u_allowed_formats, __pyx_v_allowed_formats, __pyx_t_14, __pyx_callargs+1, 0) < (0)) __PYX_ERR(0, 1273, __pyx_L1_error) - if (__Pyx_VectorcallBuilder_AddArg(__pyx_mstate_global->__pyx_n_u_output_format, __pyx_v_output_format, __pyx_t_14, __pyx_callargs+1, 1) < (0)) __PYX_ERR(0, 1273, __pyx_L1_error) + if (__Pyx_VectorcallBuilder_AddArg(__pyx_mstate_global->__pyx_n_u_allowed_formats, __pyx_v_allowed_formats, __pyx_t_14, __pyx_callargs+1, 0) < (0)) __PYX_ERR(0, 1269, __pyx_L1_error) + if (__Pyx_VectorcallBuilder_AddArg(__pyx_mstate_global->__pyx_n_u_output_format, __pyx_v_output_format, __pyx_t_14, __pyx_callargs+1, 1) < (0)) __PYX_ERR(0, 1269, __pyx_L1_error) __pyx_t_3 = __Pyx_Object_VectorcallMethod_CallFromBuilder((PyObject*)__pyx_mstate_global->__pyx_n_u_format, __pyx_callargs+__pyx_t_10, (1-__pyx_t_10) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET), __pyx_t_14); __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; - if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1273, __pyx_L1_error) + if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1269, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); } __pyx_t_10 = 1; @@ -17816,14 +17826,14 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1273, __pyx_L1_error) + if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1269, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); } __Pyx_Raise(__pyx_t_7, 0, 0, 0); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __PYX_ERR(0, 1273, __pyx_L1_error) + __PYX_ERR(0, 1269, __pyx_L1_error) - /* "pyreadstat/_readstat_parser.pyx":1272 + /* "pyreadstat/_readstat_parser.pyx":1268 * output_format = 'pandas' * allowed_formats = {'pandas', 'dict', 'polars'} * if output_format not in allowed_formats: # <<<<<<<<<<<<<< @@ -17832,17 +17842,17 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject */ } - /* "pyreadstat/_readstat_parser.pyx":1274 + /* "pyreadstat/_readstat_parser.pyx":1270 * if output_format not in allowed_formats: * raise PyreadstatError("output format must be one of {allowed_formats}, '{output_format}' was given".format(allowed_formats=allowed_formats, output_format=output_format)) * if output_format == "pandas": # <<<<<<<<<<<<<< * try: * import pandas */ - __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_output_format, __pyx_mstate_global->__pyx_n_u_pandas, Py_EQ)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 1274, __pyx_L1_error) + __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_output_format, __pyx_mstate_global->__pyx_n_u_pandas, Py_EQ)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 1270, __pyx_L1_error) if (__pyx_t_1) { - /* "pyreadstat/_readstat_parser.pyx":1275 + /* "pyreadstat/_readstat_parser.pyx":1271 * raise PyreadstatError("output format must be one of {allowed_formats}, '{output_format}' was given".format(allowed_formats=allowed_formats, output_format=output_format)) * if output_format == "pandas": * try: # <<<<<<<<<<<<<< @@ -17858,20 +17868,20 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject __Pyx_XGOTREF(__pyx_t_4); /*try:*/ { - /* "pyreadstat/_readstat_parser.pyx":1276 + /* "pyreadstat/_readstat_parser.pyx":1272 * if output_format == "pandas": * try: * import pandas # <<<<<<<<<<<<<< * except: * raise PyreadstatError("You requested pandas as output_format but cannot import pandas") */ - __pyx_t_18 = __Pyx_Import(__pyx_mstate_global->__pyx_n_u_pandas, 0, 0, __pyx_mstate_global->__pyx_kp_u_pyreadstat_pandas, -1); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 1276, __pyx_L24_error) + __pyx_t_18 = __Pyx_Import(__pyx_mstate_global->__pyx_n_u_pandas, 0, 0, __pyx_mstate_global->__pyx_kp_u_pyreadstat_pandas, -1); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 1272, __pyx_L24_error) __pyx_t_7 = __pyx_t_18; __Pyx_GOTREF(__pyx_t_7); __pyx_v_pandas = __pyx_t_7; __pyx_t_7 = 0; - /* "pyreadstat/_readstat_parser.pyx":1275 + /* "pyreadstat/_readstat_parser.pyx":1271 * raise PyreadstatError("output format must be one of {allowed_formats}, '{output_format}' was given".format(allowed_formats=allowed_formats, output_format=output_format)) * if output_format == "pandas": * try: # <<<<<<<<<<<<<< @@ -17895,7 +17905,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - /* "pyreadstat/_readstat_parser.pyx":1277 + /* "pyreadstat/_readstat_parser.pyx":1273 * try: * import pandas * except: # <<<<<<<<<<<<<< @@ -17904,12 +17914,12 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject */ /*except:*/ { __Pyx_AddTraceback("pyreadstat._readstat_parser.run_conversion", __pyx_clineno, __pyx_lineno, __pyx_filename); - if (__Pyx_GetException(&__pyx_t_7, &__pyx_t_9, &__pyx_t_3) < 0) __PYX_ERR(0, 1277, __pyx_L26_except_error) + if (__Pyx_GetException(&__pyx_t_7, &__pyx_t_9, &__pyx_t_3) < 0) __PYX_ERR(0, 1273, __pyx_L26_except_error) __Pyx_XGOTREF(__pyx_t_7); __Pyx_XGOTREF(__pyx_t_9); __Pyx_XGOTREF(__pyx_t_3); - /* "pyreadstat/_readstat_parser.pyx":1278 + /* "pyreadstat/_readstat_parser.pyx":1274 * import pandas * except: * raise PyreadstatError("You requested pandas as output_format but cannot import pandas") # <<<<<<<<<<<<<< @@ -17917,7 +17927,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject * try: */ __pyx_t_14 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_12, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1278, __pyx_L26_except_error) + __Pyx_GetModuleGlobalName(__pyx_t_12, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1274, __pyx_L26_except_error) __Pyx_GOTREF(__pyx_t_12); __pyx_t_10 = 1; #if CYTHON_UNPACK_METHODS @@ -17936,15 +17946,15 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject __pyx_t_8 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_12, __pyx_callargs+__pyx_t_10, (2-__pyx_t_10) | (__pyx_t_10*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0; __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1278, __pyx_L26_except_error) + if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1274, __pyx_L26_except_error) __Pyx_GOTREF(__pyx_t_8); } __Pyx_Raise(__pyx_t_8, 0, 0, 0); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - __PYX_ERR(0, 1278, __pyx_L26_except_error) + __PYX_ERR(0, 1274, __pyx_L26_except_error) } - /* "pyreadstat/_readstat_parser.pyx":1275 + /* "pyreadstat/_readstat_parser.pyx":1271 * raise PyreadstatError("output format must be one of {allowed_formats}, '{output_format}' was given".format(allowed_formats=allowed_formats, output_format=output_format)) * if output_format == "pandas": * try: # <<<<<<<<<<<<<< @@ -17960,7 +17970,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject __pyx_L29_try_end:; } - /* "pyreadstat/_readstat_parser.pyx":1274 + /* "pyreadstat/_readstat_parser.pyx":1270 * if output_format not in allowed_formats: * raise PyreadstatError("output format must be one of {allowed_formats}, '{output_format}' was given".format(allowed_formats=allowed_formats, output_format=output_format)) * if output_format == "pandas": # <<<<<<<<<<<<<< @@ -17969,17 +17979,17 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject */ } - /* "pyreadstat/_readstat_parser.pyx":1279 + /* "pyreadstat/_readstat_parser.pyx":1275 * except: * raise PyreadstatError("You requested pandas as output_format but cannot import pandas") * if output_format == "polars": # <<<<<<<<<<<<<< * try: * import polars */ - __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_output_format, __pyx_mstate_global->__pyx_n_u_polars, Py_EQ)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 1279, __pyx_L1_error) + __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_output_format, __pyx_mstate_global->__pyx_n_u_polars, Py_EQ)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 1275, __pyx_L1_error) if (__pyx_t_1) { - /* "pyreadstat/_readstat_parser.pyx":1280 + /* "pyreadstat/_readstat_parser.pyx":1276 * raise PyreadstatError("You requested pandas as output_format but cannot import pandas") * if output_format == "polars": * try: # <<<<<<<<<<<<<< @@ -17995,20 +18005,20 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject __Pyx_XGOTREF(__pyx_t_6); /*try:*/ { - /* "pyreadstat/_readstat_parser.pyx":1281 + /* "pyreadstat/_readstat_parser.pyx":1277 * if output_format == "polars": * try: * import polars # <<<<<<<<<<<<<< * except: * raise PyreadstatError("You requested polars as output_format but cannot import polars") */ - __pyx_t_18 = __Pyx_Import(__pyx_mstate_global->__pyx_n_u_polars, 0, 0, __pyx_mstate_global->__pyx_kp_u_pyreadstat_polars, -1); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 1281, __pyx_L33_error) + __pyx_t_18 = __Pyx_Import(__pyx_mstate_global->__pyx_n_u_polars, 0, 0, __pyx_mstate_global->__pyx_kp_u_pyreadstat_polars, -1); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 1277, __pyx_L33_error) __pyx_t_3 = __pyx_t_18; __Pyx_GOTREF(__pyx_t_3); __pyx_v_polars = __pyx_t_3; __pyx_t_3 = 0; - /* "pyreadstat/_readstat_parser.pyx":1280 + /* "pyreadstat/_readstat_parser.pyx":1276 * raise PyreadstatError("You requested pandas as output_format but cannot import pandas") * if output_format == "polars": * try: # <<<<<<<<<<<<<< @@ -18032,7 +18042,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - /* "pyreadstat/_readstat_parser.pyx":1282 + /* "pyreadstat/_readstat_parser.pyx":1278 * try: * import polars * except: # <<<<<<<<<<<<<< @@ -18041,12 +18051,12 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject */ /*except:*/ { __Pyx_AddTraceback("pyreadstat._readstat_parser.run_conversion", __pyx_clineno, __pyx_lineno, __pyx_filename); - if (__Pyx_GetException(&__pyx_t_3, &__pyx_t_9, &__pyx_t_7) < 0) __PYX_ERR(0, 1282, __pyx_L35_except_error) + if (__Pyx_GetException(&__pyx_t_3, &__pyx_t_9, &__pyx_t_7) < 0) __PYX_ERR(0, 1278, __pyx_L35_except_error) __Pyx_XGOTREF(__pyx_t_3); __Pyx_XGOTREF(__pyx_t_9); __Pyx_XGOTREF(__pyx_t_7); - /* "pyreadstat/_readstat_parser.pyx":1283 + /* "pyreadstat/_readstat_parser.pyx":1279 * import polars * except: * raise PyreadstatError("You requested polars as output_format but cannot import polars") # <<<<<<<<<<<<<< @@ -18054,7 +18064,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject * */ __pyx_t_12 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_14, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 1283, __pyx_L35_except_error) + __Pyx_GetModuleGlobalName(__pyx_t_14, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 1279, __pyx_L35_except_error) __Pyx_GOTREF(__pyx_t_14); __pyx_t_10 = 1; #if CYTHON_UNPACK_METHODS @@ -18073,15 +18083,15 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject __pyx_t_8 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_14, __pyx_callargs+__pyx_t_10, (2-__pyx_t_10) | (__pyx_t_10*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; - if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1283, __pyx_L35_except_error) + if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1279, __pyx_L35_except_error) __Pyx_GOTREF(__pyx_t_8); } __Pyx_Raise(__pyx_t_8, 0, 0, 0); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - __PYX_ERR(0, 1283, __pyx_L35_except_error) + __PYX_ERR(0, 1279, __pyx_L35_except_error) } - /* "pyreadstat/_readstat_parser.pyx":1280 + /* "pyreadstat/_readstat_parser.pyx":1276 * raise PyreadstatError("You requested pandas as output_format but cannot import pandas") * if output_format == "polars": * try: # <<<<<<<<<<<<<< @@ -18097,7 +18107,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject __pyx_L38_try_end:; } - /* "pyreadstat/_readstat_parser.pyx":1279 + /* "pyreadstat/_readstat_parser.pyx":1275 * except: * raise PyreadstatError("You requested pandas as output_format but cannot import pandas") * if output_format == "polars": # <<<<<<<<<<<<<< @@ -18106,7 +18116,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject */ } - /* "pyreadstat/_readstat_parser.pyx":1286 + /* "pyreadstat/_readstat_parser.pyx":1282 * * * if extra_date_formats is not None: # <<<<<<<<<<<<<< @@ -18116,7 +18126,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject __pyx_t_1 = (__pyx_v_extra_date_formats != ((PyObject*)Py_None)); if (__pyx_t_1) { - /* "pyreadstat/_readstat_parser.pyx":1287 + /* "pyreadstat/_readstat_parser.pyx":1283 * * if extra_date_formats is not None: * if file_format == FILE_FORMAT_SAS: # <<<<<<<<<<<<<< @@ -18126,7 +18136,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject switch (__pyx_v_file_format) { case __pyx_e_10pyreadstat_16_readstat_parser_FILE_FORMAT_SAS: - /* "pyreadstat/_readstat_parser.pyx":1288 + /* "pyreadstat/_readstat_parser.pyx":1284 * if extra_date_formats is not None: * if file_format == FILE_FORMAT_SAS: * sas_date_formats.extend([format_regex.match(edf).group(1) for edf in extra_date_formats if format_regex.match(edf)]) # <<<<<<<<<<<<<< @@ -18135,13 +18145,13 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject */ if (unlikely(__pyx_v_10pyreadstat_16_readstat_parser_sas_date_formats == Py_None)) { PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "extend"); - __PYX_ERR(0, 1288, __pyx_L1_error) + __PYX_ERR(0, 1284, __pyx_L1_error) } - __pyx_t_7 = PyList_New(0); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1288, __pyx_L1_error) + __pyx_t_7 = PyList_New(0); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1284, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); if (unlikely(__pyx_v_extra_date_formats == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable"); - __PYX_ERR(0, 1288, __pyx_L1_error) + __PYX_ERR(0, 1284, __pyx_L1_error) } __pyx_t_9 = __pyx_v_extra_date_formats; __Pyx_INCREF(__pyx_t_9); __pyx_t_19 = 0; @@ -18149,13 +18159,13 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject { Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_9); #if !CYTHON_ASSUME_SAFE_SIZE - if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 1288, __pyx_L1_error) + if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 1284, __pyx_L1_error) #endif if (__pyx_t_19 >= __pyx_temp) break; } __pyx_t_3 = __Pyx_PyList_GetItemRefFast(__pyx_t_9, __pyx_t_19, __Pyx_ReferenceSharing_OwnStrongReference); ++__pyx_t_19; - if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1288, __pyx_L1_error) + if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1284, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_XDECREF_SET(__pyx_v_edf, __pyx_t_3); __pyx_t_3 = 0; @@ -18166,10 +18176,10 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject PyObject *__pyx_callargs[2] = {__pyx_t_8, __pyx_v_edf}; __pyx_t_3 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_match, __pyx_callargs+__pyx_t_10, (2-__pyx_t_10) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; - if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1288, __pyx_L1_error) + if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1284, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); } - __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 1288, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 1284, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (__pyx_t_1) { __pyx_t_12 = __pyx_v_10pyreadstat_16_readstat_parser_format_regex; @@ -18179,7 +18189,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject PyObject *__pyx_callargs[2] = {__pyx_t_12, __pyx_v_edf}; __pyx_t_14 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_match, __pyx_callargs+__pyx_t_10, (2-__pyx_t_10) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; - if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 1288, __pyx_L1_error) + if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 1284, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); } __pyx_t_8 = __pyx_t_14; @@ -18190,18 +18200,18 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject __pyx_t_3 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_group, __pyx_callargs+__pyx_t_10, (2-__pyx_t_10) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; - if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1288, __pyx_L1_error) + if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1284, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); } - if (unlikely(__Pyx_ListComp_Append(__pyx_t_7, (PyObject*)__pyx_t_3))) __PYX_ERR(0, 1288, __pyx_L1_error) + if (unlikely(__Pyx_ListComp_Append(__pyx_t_7, (PyObject*)__pyx_t_3))) __PYX_ERR(0, 1284, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } } __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_20 = __Pyx_PyList_Extend(__pyx_v_10pyreadstat_16_readstat_parser_sas_date_formats, __pyx_t_7); if (unlikely(__pyx_t_20 == ((int)-1))) __PYX_ERR(0, 1288, __pyx_L1_error) + __pyx_t_20 = __Pyx_PyList_Extend(__pyx_v_10pyreadstat_16_readstat_parser_sas_date_formats, __pyx_t_7); if (unlikely(__pyx_t_20 == ((int)-1))) __PYX_ERR(0, 1284, __pyx_L1_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - /* "pyreadstat/_readstat_parser.pyx":1287 + /* "pyreadstat/_readstat_parser.pyx":1283 * * if extra_date_formats is not None: * if file_format == FILE_FORMAT_SAS: # <<<<<<<<<<<<<< @@ -18211,7 +18221,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject break; case __pyx_e_10pyreadstat_16_readstat_parser_FILE_FORMAT_SPSS: - /* "pyreadstat/_readstat_parser.pyx":1290 + /* "pyreadstat/_readstat_parser.pyx":1286 * sas_date_formats.extend([format_regex.match(edf).group(1) for edf in extra_date_formats if format_regex.match(edf)]) * elif file_format == FILE_FORMAT_SPSS: * spss_date_formats.extend([format_regex.match(edf).group(1) for edf in extra_date_formats if format_regex.match(edf)]) # <<<<<<<<<<<<<< @@ -18220,13 +18230,13 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject */ if (unlikely(__pyx_v_10pyreadstat_16_readstat_parser_spss_date_formats == Py_None)) { PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "extend"); - __PYX_ERR(0, 1290, __pyx_L1_error) + __PYX_ERR(0, 1286, __pyx_L1_error) } - __pyx_t_7 = PyList_New(0); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1290, __pyx_L1_error) + __pyx_t_7 = PyList_New(0); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1286, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); if (unlikely(__pyx_v_extra_date_formats == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable"); - __PYX_ERR(0, 1290, __pyx_L1_error) + __PYX_ERR(0, 1286, __pyx_L1_error) } __pyx_t_9 = __pyx_v_extra_date_formats; __Pyx_INCREF(__pyx_t_9); __pyx_t_19 = 0; @@ -18234,13 +18244,13 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject { Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_9); #if !CYTHON_ASSUME_SAFE_SIZE - if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 1290, __pyx_L1_error) + if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 1286, __pyx_L1_error) #endif if (__pyx_t_19 >= __pyx_temp) break; } __pyx_t_3 = __Pyx_PyList_GetItemRefFast(__pyx_t_9, __pyx_t_19, __Pyx_ReferenceSharing_OwnStrongReference); ++__pyx_t_19; - if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1290, __pyx_L1_error) + if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1286, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_XDECREF_SET(__pyx_v_edf, __pyx_t_3); __pyx_t_3 = 0; @@ -18251,10 +18261,10 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject PyObject *__pyx_callargs[2] = {__pyx_t_14, __pyx_v_edf}; __pyx_t_3 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_match, __pyx_callargs+__pyx_t_10, (2-__pyx_t_10) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0; - if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1290, __pyx_L1_error) + if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1286, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); } - __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 1290, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 1286, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (__pyx_t_1) { __pyx_t_12 = __pyx_v_10pyreadstat_16_readstat_parser_format_regex; @@ -18264,7 +18274,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject PyObject *__pyx_callargs[2] = {__pyx_t_12, __pyx_v_edf}; __pyx_t_8 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_match, __pyx_callargs+__pyx_t_10, (2-__pyx_t_10) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; - if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1290, __pyx_L1_error) + if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1286, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); } __pyx_t_14 = __pyx_t_8; @@ -18275,18 +18285,18 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject __pyx_t_3 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_group, __pyx_callargs+__pyx_t_10, (2-__pyx_t_10) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1290, __pyx_L1_error) + if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1286, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); } - if (unlikely(__Pyx_ListComp_Append(__pyx_t_7, (PyObject*)__pyx_t_3))) __PYX_ERR(0, 1290, __pyx_L1_error) + if (unlikely(__Pyx_ListComp_Append(__pyx_t_7, (PyObject*)__pyx_t_3))) __PYX_ERR(0, 1286, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } } __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_20 = __Pyx_PyList_Extend(__pyx_v_10pyreadstat_16_readstat_parser_spss_date_formats, __pyx_t_7); if (unlikely(__pyx_t_20 == ((int)-1))) __PYX_ERR(0, 1290, __pyx_L1_error) + __pyx_t_20 = __Pyx_PyList_Extend(__pyx_v_10pyreadstat_16_readstat_parser_spss_date_formats, __pyx_t_7); if (unlikely(__pyx_t_20 == ((int)-1))) __PYX_ERR(0, 1286, __pyx_L1_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - /* "pyreadstat/_readstat_parser.pyx":1289 + /* "pyreadstat/_readstat_parser.pyx":1285 * if file_format == FILE_FORMAT_SAS: * sas_date_formats.extend([format_regex.match(edf).group(1) for edf in extra_date_formats if format_regex.match(edf)]) * elif file_format == FILE_FORMAT_SPSS: # <<<<<<<<<<<<<< @@ -18296,7 +18306,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject break; case __pyx_e_10pyreadstat_16_readstat_parser_FILE_FORMAT_STATA: - /* "pyreadstat/_readstat_parser.pyx":1292 + /* "pyreadstat/_readstat_parser.pyx":1288 * spss_date_formats.extend([format_regex.match(edf).group(1) for edf in extra_date_formats if format_regex.match(edf)]) * elif file_format == FILE_FORMAT_STATA: * stata_date_formats.extend(extra_date_formats) # <<<<<<<<<<<<<< @@ -18305,11 +18315,11 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject */ if (unlikely(__pyx_v_10pyreadstat_16_readstat_parser_stata_date_formats == Py_None)) { PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "extend"); - __PYX_ERR(0, 1292, __pyx_L1_error) + __PYX_ERR(0, 1288, __pyx_L1_error) } - __pyx_t_20 = __Pyx_PyList_Extend(__pyx_v_10pyreadstat_16_readstat_parser_stata_date_formats, __pyx_v_extra_date_formats); if (unlikely(__pyx_t_20 == ((int)-1))) __PYX_ERR(0, 1292, __pyx_L1_error) + __pyx_t_20 = __Pyx_PyList_Extend(__pyx_v_10pyreadstat_16_readstat_parser_stata_date_formats, __pyx_v_extra_date_formats); if (unlikely(__pyx_t_20 == ((int)-1))) __PYX_ERR(0, 1288, __pyx_L1_error) - /* "pyreadstat/_readstat_parser.pyx":1291 + /* "pyreadstat/_readstat_parser.pyx":1287 * elif file_format == FILE_FORMAT_SPSS: * spss_date_formats.extend([format_regex.match(edf).group(1) for edf in extra_date_formats if format_regex.match(edf)]) * elif file_format == FILE_FORMAT_STATA: # <<<<<<<<<<<<<< @@ -18319,7 +18329,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject break; default: - /* "pyreadstat/_readstat_parser.pyx":1294 + /* "pyreadstat/_readstat_parser.pyx":1290 * stata_date_formats.extend(extra_date_formats) * else: * raise PyreadstatError("Unknown file format") # <<<<<<<<<<<<<< @@ -18327,7 +18337,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject * if file_format == FILE_FORMAT_SAS: */ __pyx_t_9 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1294, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1290, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_10 = 1; #if CYTHON_UNPACK_METHODS @@ -18346,16 +18356,16 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject __pyx_t_7 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_3, __pyx_callargs+__pyx_t_10, (2-__pyx_t_10) | (__pyx_t_10*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1294, __pyx_L1_error) + if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1290, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); } __Pyx_Raise(__pyx_t_7, 0, 0, 0); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __PYX_ERR(0, 1294, __pyx_L1_error) + __PYX_ERR(0, 1290, __pyx_L1_error) break; } - /* "pyreadstat/_readstat_parser.pyx":1286 + /* "pyreadstat/_readstat_parser.pyx":1282 * * * if extra_date_formats is not None: # <<<<<<<<<<<<<< @@ -18364,7 +18374,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject */ } - /* "pyreadstat/_readstat_parser.pyx":1295 + /* "pyreadstat/_readstat_parser.pyx":1291 * else: * raise PyreadstatError("Unknown file format") * if extra_datetime_formats is not None: # <<<<<<<<<<<<<< @@ -18374,7 +18384,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject __pyx_t_1 = (__pyx_v_extra_datetime_formats != ((PyObject*)Py_None)); if (__pyx_t_1) { - /* "pyreadstat/_readstat_parser.pyx":1296 + /* "pyreadstat/_readstat_parser.pyx":1292 * raise PyreadstatError("Unknown file format") * if extra_datetime_formats is not None: * if file_format == FILE_FORMAT_SAS: # <<<<<<<<<<<<<< @@ -18384,7 +18394,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject switch (__pyx_v_file_format) { case __pyx_e_10pyreadstat_16_readstat_parser_FILE_FORMAT_SAS: - /* "pyreadstat/_readstat_parser.pyx":1297 + /* "pyreadstat/_readstat_parser.pyx":1293 * if extra_datetime_formats is not None: * if file_format == FILE_FORMAT_SAS: * sas_datetime_formats.extend([format_regex.match(edtf).group(1) for edtf in extra_datetime_formats if format_regex.match(edtf)]) # <<<<<<<<<<<<<< @@ -18393,13 +18403,13 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject */ if (unlikely(__pyx_v_10pyreadstat_16_readstat_parser_sas_datetime_formats == Py_None)) { PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "extend"); - __PYX_ERR(0, 1297, __pyx_L1_error) + __PYX_ERR(0, 1293, __pyx_L1_error) } - __pyx_t_7 = PyList_New(0); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1297, __pyx_L1_error) + __pyx_t_7 = PyList_New(0); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1293, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); if (unlikely(__pyx_v_extra_datetime_formats == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable"); - __PYX_ERR(0, 1297, __pyx_L1_error) + __PYX_ERR(0, 1293, __pyx_L1_error) } __pyx_t_3 = __pyx_v_extra_datetime_formats; __Pyx_INCREF(__pyx_t_3); __pyx_t_19 = 0; @@ -18407,13 +18417,13 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject { Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_3); #if !CYTHON_ASSUME_SAFE_SIZE - if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 1297, __pyx_L1_error) + if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 1293, __pyx_L1_error) #endif if (__pyx_t_19 >= __pyx_temp) break; } __pyx_t_9 = __Pyx_PyList_GetItemRefFast(__pyx_t_3, __pyx_t_19, __Pyx_ReferenceSharing_OwnStrongReference); ++__pyx_t_19; - if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1297, __pyx_L1_error) + if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1293, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_XDECREF_SET(__pyx_v_edtf, __pyx_t_9); __pyx_t_9 = 0; @@ -18424,10 +18434,10 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject PyObject *__pyx_callargs[2] = {__pyx_t_8, __pyx_v_edtf}; __pyx_t_9 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_match, __pyx_callargs+__pyx_t_10, (2-__pyx_t_10) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; - if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1297, __pyx_L1_error) + if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1293, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); } - __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_9); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 1297, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_9); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 1293, __pyx_L1_error) __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; if (__pyx_t_1) { __pyx_t_12 = __pyx_v_10pyreadstat_16_readstat_parser_format_regex; @@ -18437,7 +18447,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject PyObject *__pyx_callargs[2] = {__pyx_t_12, __pyx_v_edtf}; __pyx_t_14 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_match, __pyx_callargs+__pyx_t_10, (2-__pyx_t_10) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; - if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 1297, __pyx_L1_error) + if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 1293, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); } __pyx_t_8 = __pyx_t_14; @@ -18448,18 +18458,18 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject __pyx_t_9 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_group, __pyx_callargs+__pyx_t_10, (2-__pyx_t_10) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; - if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1297, __pyx_L1_error) + if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1293, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); } - if (unlikely(__Pyx_ListComp_Append(__pyx_t_7, (PyObject*)__pyx_t_9))) __PYX_ERR(0, 1297, __pyx_L1_error) + if (unlikely(__Pyx_ListComp_Append(__pyx_t_7, (PyObject*)__pyx_t_9))) __PYX_ERR(0, 1293, __pyx_L1_error) __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; } } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_20 = __Pyx_PyList_Extend(__pyx_v_10pyreadstat_16_readstat_parser_sas_datetime_formats, __pyx_t_7); if (unlikely(__pyx_t_20 == ((int)-1))) __PYX_ERR(0, 1297, __pyx_L1_error) + __pyx_t_20 = __Pyx_PyList_Extend(__pyx_v_10pyreadstat_16_readstat_parser_sas_datetime_formats, __pyx_t_7); if (unlikely(__pyx_t_20 == ((int)-1))) __PYX_ERR(0, 1293, __pyx_L1_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - /* "pyreadstat/_readstat_parser.pyx":1296 + /* "pyreadstat/_readstat_parser.pyx":1292 * raise PyreadstatError("Unknown file format") * if extra_datetime_formats is not None: * if file_format == FILE_FORMAT_SAS: # <<<<<<<<<<<<<< @@ -18469,7 +18479,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject break; case __pyx_e_10pyreadstat_16_readstat_parser_FILE_FORMAT_SPSS: - /* "pyreadstat/_readstat_parser.pyx":1299 + /* "pyreadstat/_readstat_parser.pyx":1295 * sas_datetime_formats.extend([format_regex.match(edtf).group(1) for edtf in extra_datetime_formats if format_regex.match(edtf)]) * elif file_format == FILE_FORMAT_SPSS: * spss_datetime_formats.extend([format_regex.match(edtf).group(1) for edtf in extra_datetime_formats if format_regex.match(edtf)]) # <<<<<<<<<<<<<< @@ -18478,13 +18488,13 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject */ if (unlikely(__pyx_v_10pyreadstat_16_readstat_parser_spss_datetime_formats == Py_None)) { PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "extend"); - __PYX_ERR(0, 1299, __pyx_L1_error) + __PYX_ERR(0, 1295, __pyx_L1_error) } - __pyx_t_7 = PyList_New(0); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1299, __pyx_L1_error) + __pyx_t_7 = PyList_New(0); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1295, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); if (unlikely(__pyx_v_extra_datetime_formats == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable"); - __PYX_ERR(0, 1299, __pyx_L1_error) + __PYX_ERR(0, 1295, __pyx_L1_error) } __pyx_t_3 = __pyx_v_extra_datetime_formats; __Pyx_INCREF(__pyx_t_3); __pyx_t_19 = 0; @@ -18492,13 +18502,13 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject { Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_3); #if !CYTHON_ASSUME_SAFE_SIZE - if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 1299, __pyx_L1_error) + if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 1295, __pyx_L1_error) #endif if (__pyx_t_19 >= __pyx_temp) break; } __pyx_t_9 = __Pyx_PyList_GetItemRefFast(__pyx_t_3, __pyx_t_19, __Pyx_ReferenceSharing_OwnStrongReference); ++__pyx_t_19; - if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1299, __pyx_L1_error) + if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1295, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_XDECREF_SET(__pyx_v_edtf, __pyx_t_9); __pyx_t_9 = 0; @@ -18509,10 +18519,10 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject PyObject *__pyx_callargs[2] = {__pyx_t_14, __pyx_v_edtf}; __pyx_t_9 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_match, __pyx_callargs+__pyx_t_10, (2-__pyx_t_10) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0; - if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1299, __pyx_L1_error) + if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1295, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); } - __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_9); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 1299, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_9); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 1295, __pyx_L1_error) __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; if (__pyx_t_1) { __pyx_t_12 = __pyx_v_10pyreadstat_16_readstat_parser_format_regex; @@ -18522,7 +18532,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject PyObject *__pyx_callargs[2] = {__pyx_t_12, __pyx_v_edtf}; __pyx_t_8 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_match, __pyx_callargs+__pyx_t_10, (2-__pyx_t_10) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; - if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1299, __pyx_L1_error) + if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1295, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); } __pyx_t_14 = __pyx_t_8; @@ -18533,18 +18543,18 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject __pyx_t_9 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_group, __pyx_callargs+__pyx_t_10, (2-__pyx_t_10) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1299, __pyx_L1_error) + if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1295, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); } - if (unlikely(__Pyx_ListComp_Append(__pyx_t_7, (PyObject*)__pyx_t_9))) __PYX_ERR(0, 1299, __pyx_L1_error) + if (unlikely(__Pyx_ListComp_Append(__pyx_t_7, (PyObject*)__pyx_t_9))) __PYX_ERR(0, 1295, __pyx_L1_error) __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; } } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_20 = __Pyx_PyList_Extend(__pyx_v_10pyreadstat_16_readstat_parser_spss_datetime_formats, __pyx_t_7); if (unlikely(__pyx_t_20 == ((int)-1))) __PYX_ERR(0, 1299, __pyx_L1_error) + __pyx_t_20 = __Pyx_PyList_Extend(__pyx_v_10pyreadstat_16_readstat_parser_spss_datetime_formats, __pyx_t_7); if (unlikely(__pyx_t_20 == ((int)-1))) __PYX_ERR(0, 1295, __pyx_L1_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - /* "pyreadstat/_readstat_parser.pyx":1298 + /* "pyreadstat/_readstat_parser.pyx":1294 * if file_format == FILE_FORMAT_SAS: * sas_datetime_formats.extend([format_regex.match(edtf).group(1) for edtf in extra_datetime_formats if format_regex.match(edtf)]) * elif file_format == FILE_FORMAT_SPSS: # <<<<<<<<<<<<<< @@ -18554,7 +18564,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject break; case __pyx_e_10pyreadstat_16_readstat_parser_FILE_FORMAT_STATA: - /* "pyreadstat/_readstat_parser.pyx":1301 + /* "pyreadstat/_readstat_parser.pyx":1297 * spss_datetime_formats.extend([format_regex.match(edtf).group(1) for edtf in extra_datetime_formats if format_regex.match(edtf)]) * elif file_format == FILE_FORMAT_STATA: * stata_datetime_formats.extend(extra_datetime_formats) # <<<<<<<<<<<<<< @@ -18563,11 +18573,11 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject */ if (unlikely(__pyx_v_10pyreadstat_16_readstat_parser_stata_datetime_formats == Py_None)) { PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "extend"); - __PYX_ERR(0, 1301, __pyx_L1_error) + __PYX_ERR(0, 1297, __pyx_L1_error) } - __pyx_t_20 = __Pyx_PyList_Extend(__pyx_v_10pyreadstat_16_readstat_parser_stata_datetime_formats, __pyx_v_extra_datetime_formats); if (unlikely(__pyx_t_20 == ((int)-1))) __PYX_ERR(0, 1301, __pyx_L1_error) + __pyx_t_20 = __Pyx_PyList_Extend(__pyx_v_10pyreadstat_16_readstat_parser_stata_datetime_formats, __pyx_v_extra_datetime_formats); if (unlikely(__pyx_t_20 == ((int)-1))) __PYX_ERR(0, 1297, __pyx_L1_error) - /* "pyreadstat/_readstat_parser.pyx":1300 + /* "pyreadstat/_readstat_parser.pyx":1296 * elif file_format == FILE_FORMAT_SPSS: * spss_datetime_formats.extend([format_regex.match(edtf).group(1) for edtf in extra_datetime_formats if format_regex.match(edtf)]) * elif file_format == FILE_FORMAT_STATA: # <<<<<<<<<<<<<< @@ -18577,7 +18587,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject break; default: - /* "pyreadstat/_readstat_parser.pyx":1303 + /* "pyreadstat/_readstat_parser.pyx":1299 * stata_datetime_formats.extend(extra_datetime_formats) * else: * raise PyreadstatError("Unknown file format") # <<<<<<<<<<<<<< @@ -18585,7 +18595,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject * if file_format == FILE_FORMAT_SAS: */ __pyx_t_3 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1303, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1299, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_10 = 1; #if CYTHON_UNPACK_METHODS @@ -18604,16 +18614,16 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject __pyx_t_7 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_9, __pyx_callargs+__pyx_t_10, (2-__pyx_t_10) | (__pyx_t_10*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1303, __pyx_L1_error) + if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1299, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); } __Pyx_Raise(__pyx_t_7, 0, 0, 0); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __PYX_ERR(0, 1303, __pyx_L1_error) + __PYX_ERR(0, 1299, __pyx_L1_error) break; } - /* "pyreadstat/_readstat_parser.pyx":1295 + /* "pyreadstat/_readstat_parser.pyx":1291 * else: * raise PyreadstatError("Unknown file format") * if extra_datetime_formats is not None: # <<<<<<<<<<<<<< @@ -18622,7 +18632,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject */ } - /* "pyreadstat/_readstat_parser.pyx":1304 + /* "pyreadstat/_readstat_parser.pyx":1300 * else: * raise PyreadstatError("Unknown file format") * if extra_time_formats is not None: # <<<<<<<<<<<<<< @@ -18632,7 +18642,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject __pyx_t_1 = (__pyx_v_extra_time_formats != ((PyObject*)Py_None)); if (__pyx_t_1) { - /* "pyreadstat/_readstat_parser.pyx":1305 + /* "pyreadstat/_readstat_parser.pyx":1301 * raise PyreadstatError("Unknown file format") * if extra_time_formats is not None: * if file_format == FILE_FORMAT_SAS: # <<<<<<<<<<<<<< @@ -18642,7 +18652,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject switch (__pyx_v_file_format) { case __pyx_e_10pyreadstat_16_readstat_parser_FILE_FORMAT_SAS: - /* "pyreadstat/_readstat_parser.pyx":1306 + /* "pyreadstat/_readstat_parser.pyx":1302 * if extra_time_formats is not None: * if file_format == FILE_FORMAT_SAS: * sas_time_formats.extend([format_regex.match(etf).group(1) for etf in extra_time_formats if format_regex.match(etf)]) # <<<<<<<<<<<<<< @@ -18651,13 +18661,13 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject */ if (unlikely(__pyx_v_10pyreadstat_16_readstat_parser_sas_time_formats == Py_None)) { PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "extend"); - __PYX_ERR(0, 1306, __pyx_L1_error) + __PYX_ERR(0, 1302, __pyx_L1_error) } - __pyx_t_7 = PyList_New(0); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1306, __pyx_L1_error) + __pyx_t_7 = PyList_New(0); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1302, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); if (unlikely(__pyx_v_extra_time_formats == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable"); - __PYX_ERR(0, 1306, __pyx_L1_error) + __PYX_ERR(0, 1302, __pyx_L1_error) } __pyx_t_9 = __pyx_v_extra_time_formats; __Pyx_INCREF(__pyx_t_9); __pyx_t_19 = 0; @@ -18665,13 +18675,13 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject { Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_9); #if !CYTHON_ASSUME_SAFE_SIZE - if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 1306, __pyx_L1_error) + if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 1302, __pyx_L1_error) #endif if (__pyx_t_19 >= __pyx_temp) break; } __pyx_t_3 = __Pyx_PyList_GetItemRefFast(__pyx_t_9, __pyx_t_19, __Pyx_ReferenceSharing_OwnStrongReference); ++__pyx_t_19; - if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1306, __pyx_L1_error) + if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1302, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_XDECREF_SET(__pyx_v_etf, __pyx_t_3); __pyx_t_3 = 0; @@ -18682,10 +18692,10 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject PyObject *__pyx_callargs[2] = {__pyx_t_8, __pyx_v_etf}; __pyx_t_3 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_match, __pyx_callargs+__pyx_t_10, (2-__pyx_t_10) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; - if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1306, __pyx_L1_error) + if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1302, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); } - __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 1306, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 1302, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (__pyx_t_1) { __pyx_t_12 = __pyx_v_10pyreadstat_16_readstat_parser_format_regex; @@ -18695,7 +18705,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject PyObject *__pyx_callargs[2] = {__pyx_t_12, __pyx_v_etf}; __pyx_t_14 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_match, __pyx_callargs+__pyx_t_10, (2-__pyx_t_10) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; - if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 1306, __pyx_L1_error) + if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 1302, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); } __pyx_t_8 = __pyx_t_14; @@ -18706,18 +18716,18 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject __pyx_t_3 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_group, __pyx_callargs+__pyx_t_10, (2-__pyx_t_10) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; - if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1306, __pyx_L1_error) + if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1302, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); } - if (unlikely(__Pyx_ListComp_Append(__pyx_t_7, (PyObject*)__pyx_t_3))) __PYX_ERR(0, 1306, __pyx_L1_error) + if (unlikely(__Pyx_ListComp_Append(__pyx_t_7, (PyObject*)__pyx_t_3))) __PYX_ERR(0, 1302, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } } __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_20 = __Pyx_PyList_Extend(__pyx_v_10pyreadstat_16_readstat_parser_sas_time_formats, __pyx_t_7); if (unlikely(__pyx_t_20 == ((int)-1))) __PYX_ERR(0, 1306, __pyx_L1_error) + __pyx_t_20 = __Pyx_PyList_Extend(__pyx_v_10pyreadstat_16_readstat_parser_sas_time_formats, __pyx_t_7); if (unlikely(__pyx_t_20 == ((int)-1))) __PYX_ERR(0, 1302, __pyx_L1_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - /* "pyreadstat/_readstat_parser.pyx":1305 + /* "pyreadstat/_readstat_parser.pyx":1301 * raise PyreadstatError("Unknown file format") * if extra_time_formats is not None: * if file_format == FILE_FORMAT_SAS: # <<<<<<<<<<<<<< @@ -18727,7 +18737,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject break; case __pyx_e_10pyreadstat_16_readstat_parser_FILE_FORMAT_SPSS: - /* "pyreadstat/_readstat_parser.pyx":1308 + /* "pyreadstat/_readstat_parser.pyx":1304 * sas_time_formats.extend([format_regex.match(etf).group(1) for etf in extra_time_formats if format_regex.match(etf)]) * elif file_format == FILE_FORMAT_SPSS: * spss_time_formats.extend([format_regex.match(etf).group(1) for etf in extra_time_formats if format_regex.match(etf)]) # <<<<<<<<<<<<<< @@ -18736,13 +18746,13 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject */ if (unlikely(__pyx_v_10pyreadstat_16_readstat_parser_spss_time_formats == Py_None)) { PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "extend"); - __PYX_ERR(0, 1308, __pyx_L1_error) + __PYX_ERR(0, 1304, __pyx_L1_error) } - __pyx_t_7 = PyList_New(0); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1308, __pyx_L1_error) + __pyx_t_7 = PyList_New(0); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1304, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); if (unlikely(__pyx_v_extra_time_formats == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable"); - __PYX_ERR(0, 1308, __pyx_L1_error) + __PYX_ERR(0, 1304, __pyx_L1_error) } __pyx_t_9 = __pyx_v_extra_time_formats; __Pyx_INCREF(__pyx_t_9); __pyx_t_19 = 0; @@ -18750,13 +18760,13 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject { Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_9); #if !CYTHON_ASSUME_SAFE_SIZE - if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 1308, __pyx_L1_error) + if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 1304, __pyx_L1_error) #endif if (__pyx_t_19 >= __pyx_temp) break; } __pyx_t_3 = __Pyx_PyList_GetItemRefFast(__pyx_t_9, __pyx_t_19, __Pyx_ReferenceSharing_OwnStrongReference); ++__pyx_t_19; - if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1308, __pyx_L1_error) + if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1304, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_XDECREF_SET(__pyx_v_etf, __pyx_t_3); __pyx_t_3 = 0; @@ -18767,10 +18777,10 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject PyObject *__pyx_callargs[2] = {__pyx_t_14, __pyx_v_etf}; __pyx_t_3 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_match, __pyx_callargs+__pyx_t_10, (2-__pyx_t_10) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0; - if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1308, __pyx_L1_error) + if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1304, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); } - __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 1308, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 1304, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (__pyx_t_1) { __pyx_t_12 = __pyx_v_10pyreadstat_16_readstat_parser_format_regex; @@ -18780,7 +18790,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject PyObject *__pyx_callargs[2] = {__pyx_t_12, __pyx_v_etf}; __pyx_t_8 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_match, __pyx_callargs+__pyx_t_10, (2-__pyx_t_10) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; - if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1308, __pyx_L1_error) + if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1304, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); } __pyx_t_14 = __pyx_t_8; @@ -18791,18 +18801,18 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject __pyx_t_3 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_group, __pyx_callargs+__pyx_t_10, (2-__pyx_t_10) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1308, __pyx_L1_error) + if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1304, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); } - if (unlikely(__Pyx_ListComp_Append(__pyx_t_7, (PyObject*)__pyx_t_3))) __PYX_ERR(0, 1308, __pyx_L1_error) + if (unlikely(__Pyx_ListComp_Append(__pyx_t_7, (PyObject*)__pyx_t_3))) __PYX_ERR(0, 1304, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } } __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_20 = __Pyx_PyList_Extend(__pyx_v_10pyreadstat_16_readstat_parser_spss_time_formats, __pyx_t_7); if (unlikely(__pyx_t_20 == ((int)-1))) __PYX_ERR(0, 1308, __pyx_L1_error) + __pyx_t_20 = __Pyx_PyList_Extend(__pyx_v_10pyreadstat_16_readstat_parser_spss_time_formats, __pyx_t_7); if (unlikely(__pyx_t_20 == ((int)-1))) __PYX_ERR(0, 1304, __pyx_L1_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - /* "pyreadstat/_readstat_parser.pyx":1307 + /* "pyreadstat/_readstat_parser.pyx":1303 * if file_format == FILE_FORMAT_SAS: * sas_time_formats.extend([format_regex.match(etf).group(1) for etf in extra_time_formats if format_regex.match(etf)]) * elif file_format == FILE_FORMAT_SPSS: # <<<<<<<<<<<<<< @@ -18812,7 +18822,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject break; case __pyx_e_10pyreadstat_16_readstat_parser_FILE_FORMAT_STATA: - /* "pyreadstat/_readstat_parser.pyx":1310 + /* "pyreadstat/_readstat_parser.pyx":1306 * spss_time_formats.extend([format_regex.match(etf).group(1) for etf in extra_time_formats if format_regex.match(etf)]) * elif file_format == FILE_FORMAT_STATA: * stata_time_formats.extend(extra_time_formats) # <<<<<<<<<<<<<< @@ -18821,11 +18831,11 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject */ if (unlikely(__pyx_v_10pyreadstat_16_readstat_parser_stata_time_formats == Py_None)) { PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "extend"); - __PYX_ERR(0, 1310, __pyx_L1_error) + __PYX_ERR(0, 1306, __pyx_L1_error) } - __pyx_t_20 = __Pyx_PyList_Extend(__pyx_v_10pyreadstat_16_readstat_parser_stata_time_formats, __pyx_v_extra_time_formats); if (unlikely(__pyx_t_20 == ((int)-1))) __PYX_ERR(0, 1310, __pyx_L1_error) + __pyx_t_20 = __Pyx_PyList_Extend(__pyx_v_10pyreadstat_16_readstat_parser_stata_time_formats, __pyx_v_extra_time_formats); if (unlikely(__pyx_t_20 == ((int)-1))) __PYX_ERR(0, 1306, __pyx_L1_error) - /* "pyreadstat/_readstat_parser.pyx":1309 + /* "pyreadstat/_readstat_parser.pyx":1305 * elif file_format == FILE_FORMAT_SPSS: * spss_time_formats.extend([format_regex.match(etf).group(1) for etf in extra_time_formats if format_regex.match(etf)]) * elif file_format == FILE_FORMAT_STATA: # <<<<<<<<<<<<<< @@ -18835,7 +18845,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject break; default: - /* "pyreadstat/_readstat_parser.pyx":1312 + /* "pyreadstat/_readstat_parser.pyx":1308 * stata_time_formats.extend(extra_time_formats) * else: * raise PyreadstatError("Unknown file format") # <<<<<<<<<<<<<< @@ -18843,7 +18853,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject * sas_all_formats = sas_date_formats + sas_datetime_formats + sas_time_formats */ __pyx_t_9 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1312, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1308, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_10 = 1; #if CYTHON_UNPACK_METHODS @@ -18862,16 +18872,16 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject __pyx_t_7 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_3, __pyx_callargs+__pyx_t_10, (2-__pyx_t_10) | (__pyx_t_10*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1312, __pyx_L1_error) + if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1308, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); } __Pyx_Raise(__pyx_t_7, 0, 0, 0); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __PYX_ERR(0, 1312, __pyx_L1_error) + __PYX_ERR(0, 1308, __pyx_L1_error) break; } - /* "pyreadstat/_readstat_parser.pyx":1304 + /* "pyreadstat/_readstat_parser.pyx":1300 * else: * raise PyreadstatError("Unknown file format") * if extra_time_formats is not None: # <<<<<<<<<<<<<< @@ -18880,16 +18890,16 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject */ } - /* "pyreadstat/_readstat_parser.pyx":1314 + /* "pyreadstat/_readstat_parser.pyx":1310 * raise PyreadstatError("Unknown file format") * global sas_all_formats, spss_all_formats, stata_all_formats * sas_all_formats = sas_date_formats + sas_datetime_formats + sas_time_formats # <<<<<<<<<<<<<< * stata_all_formats = stata_date_formats + stata_datetime_formats + stata_time_formats * spss_all_formats = spss_date_formats + spss_datetime_formats + spss_time_formats */ - __pyx_t_7 = PyNumber_Add(__pyx_v_10pyreadstat_16_readstat_parser_sas_date_formats, __pyx_v_10pyreadstat_16_readstat_parser_sas_datetime_formats); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1314, __pyx_L1_error) + __pyx_t_7 = PyNumber_Add(__pyx_v_10pyreadstat_16_readstat_parser_sas_date_formats, __pyx_v_10pyreadstat_16_readstat_parser_sas_datetime_formats); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1310, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); - __pyx_t_3 = PyNumber_Add(__pyx_t_7, __pyx_v_10pyreadstat_16_readstat_parser_sas_time_formats); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1314, __pyx_L1_error) + __pyx_t_3 = PyNumber_Add(__pyx_t_7, __pyx_v_10pyreadstat_16_readstat_parser_sas_time_formats); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1310, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_XGOTREF(__pyx_v_10pyreadstat_16_readstat_parser_sas_all_formats); @@ -18897,16 +18907,16 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject __Pyx_GIVEREF(__pyx_t_3); __pyx_t_3 = 0; - /* "pyreadstat/_readstat_parser.pyx":1315 + /* "pyreadstat/_readstat_parser.pyx":1311 * global sas_all_formats, spss_all_formats, stata_all_formats * sas_all_formats = sas_date_formats + sas_datetime_formats + sas_time_formats * stata_all_formats = stata_date_formats + stata_datetime_formats + stata_time_formats # <<<<<<<<<<<<<< * spss_all_formats = spss_date_formats + spss_datetime_formats + spss_time_formats * */ - __pyx_t_3 = PyNumber_Add(__pyx_v_10pyreadstat_16_readstat_parser_stata_date_formats, __pyx_v_10pyreadstat_16_readstat_parser_stata_datetime_formats); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1315, __pyx_L1_error) + __pyx_t_3 = PyNumber_Add(__pyx_v_10pyreadstat_16_readstat_parser_stata_date_formats, __pyx_v_10pyreadstat_16_readstat_parser_stata_datetime_formats); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1311, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_7 = PyNumber_Add(__pyx_t_3, __pyx_v_10pyreadstat_16_readstat_parser_stata_time_formats); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1315, __pyx_L1_error) + __pyx_t_7 = PyNumber_Add(__pyx_t_3, __pyx_v_10pyreadstat_16_readstat_parser_stata_time_formats); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1311, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_XGOTREF(__pyx_v_10pyreadstat_16_readstat_parser_stata_all_formats); @@ -18914,16 +18924,16 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject __Pyx_GIVEREF(__pyx_t_7); __pyx_t_7 = 0; - /* "pyreadstat/_readstat_parser.pyx":1316 + /* "pyreadstat/_readstat_parser.pyx":1312 * sas_all_formats = sas_date_formats + sas_datetime_formats + sas_time_formats * stata_all_formats = stata_date_formats + stata_datetime_formats + stata_time_formats * spss_all_formats = spss_date_formats + spss_datetime_formats + spss_time_formats # <<<<<<<<<<<<<< * * filename = filename_bytes */ - __pyx_t_7 = PyNumber_Add(__pyx_v_10pyreadstat_16_readstat_parser_spss_date_formats, __pyx_v_10pyreadstat_16_readstat_parser_spss_datetime_formats); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1316, __pyx_L1_error) + __pyx_t_7 = PyNumber_Add(__pyx_v_10pyreadstat_16_readstat_parser_spss_date_formats, __pyx_v_10pyreadstat_16_readstat_parser_spss_datetime_formats); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1312, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); - __pyx_t_3 = PyNumber_Add(__pyx_t_7, __pyx_v_10pyreadstat_16_readstat_parser_spss_time_formats); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1316, __pyx_L1_error) + __pyx_t_3 = PyNumber_Add(__pyx_t_7, __pyx_v_10pyreadstat_16_readstat_parser_spss_time_formats); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1312, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_XGOTREF(__pyx_v_10pyreadstat_16_readstat_parser_spss_all_formats); @@ -18931,7 +18941,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject __Pyx_GIVEREF(__pyx_t_3); __pyx_t_3 = 0; - /* "pyreadstat/_readstat_parser.pyx":1318 + /* "pyreadstat/_readstat_parser.pyx":1314 * spss_all_formats = spss_date_formats + spss_datetime_formats + spss_time_formats * * filename = filename_bytes # <<<<<<<<<<<<<< @@ -18940,12 +18950,12 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject */ if (unlikely(__pyx_v_filename_bytes == Py_None)) { PyErr_SetString(PyExc_TypeError, "expected bytes, NoneType found"); - __PYX_ERR(0, 1318, __pyx_L1_error) + __PYX_ERR(0, 1314, __pyx_L1_error) } - __pyx_t_21 = __Pyx_PyBytes_AsWritableString(__pyx_v_filename_bytes); if (unlikely((!__pyx_t_21) && PyErr_Occurred())) __PYX_ERR(0, 1318, __pyx_L1_error) + __pyx_t_21 = __Pyx_PyBytes_AsWritableString(__pyx_v_filename_bytes); if (unlikely((!__pyx_t_21) && PyErr_Occurred())) __PYX_ERR(0, 1314, __pyx_L1_error) __pyx_v_filename = ((char *)__pyx_t_21); - /* "pyreadstat/_readstat_parser.pyx":1320 + /* "pyreadstat/_readstat_parser.pyx":1316 * filename = filename_bytes * * data = data_container() # <<<<<<<<<<<<<< @@ -18958,13 +18968,13 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject PyObject *__pyx_callargs[2] = {__pyx_t_7, NULL}; __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_mstate_global->__pyx_ptype_10pyreadstat_16_readstat_parser_data_container, __pyx_callargs+__pyx_t_10, (1-__pyx_t_10) | (__pyx_t_10*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; - if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1320, __pyx_L1_error) + if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1316, __pyx_L1_error) __Pyx_GOTREF((PyObject *)__pyx_t_3); } __pyx_v_data = ((struct __pyx_obj_10pyreadstat_16_readstat_parser_data_container *)__pyx_t_3); __pyx_t_3 = 0; - /* "pyreadstat/_readstat_parser.pyx":1321 + /* "pyreadstat/_readstat_parser.pyx":1317 * * data = data_container() * ctx = data # <<<<<<<<<<<<<< @@ -18973,7 +18983,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject */ __pyx_v_ctx = ((void *)__pyx_v_data); - /* "pyreadstat/_readstat_parser.pyx":1323 + /* "pyreadstat/_readstat_parser.pyx":1319 * ctx = data * * data.file_format = file_format # <<<<<<<<<<<<<< @@ -18982,7 +18992,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject */ __pyx_v_data->file_format = __pyx_v_file_format; - /* "pyreadstat/_readstat_parser.pyx":1324 + /* "pyreadstat/_readstat_parser.pyx":1320 * * data.file_format = file_format * data.metaonly = metaonly # <<<<<<<<<<<<<< @@ -18991,7 +19001,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject */ __pyx_v_data->metaonly = __pyx_v_metaonly; - /* "pyreadstat/_readstat_parser.pyx":1325 + /* "pyreadstat/_readstat_parser.pyx":1321 * data.file_format = file_format * data.metaonly = metaonly * data.dates_as_pandas = dates_as_pandas # <<<<<<<<<<<<<< @@ -19000,7 +19010,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject */ __pyx_v_data->dates_as_pandas = __pyx_v_dates_as_pandas; - /* "pyreadstat/_readstat_parser.pyx":1326 + /* "pyreadstat/_readstat_parser.pyx":1322 * data.metaonly = metaonly * data.dates_as_pandas = dates_as_pandas * data.output_format = output_format # <<<<<<<<<<<<<< @@ -19013,7 +19023,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject __Pyx_DECREF(__pyx_v_data->output_format); __pyx_v_data->output_format = __pyx_v_output_format; - /* "pyreadstat/_readstat_parser.pyx":1328 + /* "pyreadstat/_readstat_parser.pyx":1324 * data.output_format = output_format * * if encoding: # <<<<<<<<<<<<<< @@ -19024,13 +19034,13 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject else { Py_ssize_t __pyx_temp = __Pyx_PyUnicode_IS_TRUE(__pyx_v_encoding); - if (unlikely(((!CYTHON_ASSUME_SAFE_SIZE) && __pyx_temp < 0))) __PYX_ERR(0, 1328, __pyx_L1_error) + if (unlikely(((!CYTHON_ASSUME_SAFE_SIZE) && __pyx_temp < 0))) __PYX_ERR(0, 1324, __pyx_L1_error) __pyx_t_1 = (__pyx_temp != 0); } if (__pyx_t_1) { - /* "pyreadstat/_readstat_parser.pyx":1329 + /* "pyreadstat/_readstat_parser.pyx":1325 * * if encoding: * data.user_encoding = encoding # <<<<<<<<<<<<<< @@ -19043,7 +19053,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject __Pyx_DECREF(__pyx_v_data->user_encoding); __pyx_v_data->user_encoding = __pyx_v_encoding; - /* "pyreadstat/_readstat_parser.pyx":1328 + /* "pyreadstat/_readstat_parser.pyx":1324 * data.output_format = output_format * * if encoding: # <<<<<<<<<<<<<< @@ -19052,7 +19062,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject */ } - /* "pyreadstat/_readstat_parser.pyx":1331 + /* "pyreadstat/_readstat_parser.pyx":1327 * data.user_encoding = encoding * * if file_format == FILE_FORMAT_SAS: # <<<<<<<<<<<<<< @@ -19062,7 +19072,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject switch (__pyx_v_file_format) { case __pyx_e_10pyreadstat_16_readstat_parser_FILE_FORMAT_SAS: - /* "pyreadstat/_readstat_parser.pyx":1332 + /* "pyreadstat/_readstat_parser.pyx":1328 * * if file_format == FILE_FORMAT_SAS: * origin = sas_origin # <<<<<<<<<<<<<< @@ -19072,7 +19082,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject __Pyx_INCREF(__pyx_v_10pyreadstat_16_readstat_parser_sas_origin); __pyx_v_origin = __pyx_v_10pyreadstat_16_readstat_parser_sas_origin; - /* "pyreadstat/_readstat_parser.pyx":1333 + /* "pyreadstat/_readstat_parser.pyx":1329 * if file_format == FILE_FORMAT_SAS: * origin = sas_origin * unix_to_origin_secs = sas_secs_from_unix # <<<<<<<<<<<<<< @@ -19082,7 +19092,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject __Pyx_INCREF(__pyx_v_10pyreadstat_16_readstat_parser_sas_secs_from_unix); __pyx_v_unix_to_origin_secs = __pyx_v_10pyreadstat_16_readstat_parser_sas_secs_from_unix; - /* "pyreadstat/_readstat_parser.pyx":1331 + /* "pyreadstat/_readstat_parser.pyx":1327 * data.user_encoding = encoding * * if file_format == FILE_FORMAT_SAS: # <<<<<<<<<<<<<< @@ -19092,7 +19102,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject break; case __pyx_e_10pyreadstat_16_readstat_parser_FILE_FORMAT_SPSS: - /* "pyreadstat/_readstat_parser.pyx":1335 + /* "pyreadstat/_readstat_parser.pyx":1331 * unix_to_origin_secs = sas_secs_from_unix * elif file_format == FILE_FORMAT_SPSS: * origin = spss_origin # <<<<<<<<<<<<<< @@ -19102,7 +19112,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject __Pyx_INCREF(__pyx_v_10pyreadstat_16_readstat_parser_spss_origin); __pyx_v_origin = __pyx_v_10pyreadstat_16_readstat_parser_spss_origin; - /* "pyreadstat/_readstat_parser.pyx":1336 + /* "pyreadstat/_readstat_parser.pyx":1332 * elif file_format == FILE_FORMAT_SPSS: * origin = spss_origin * unix_to_origin_secs = spss_secs_from_unix # <<<<<<<<<<<<<< @@ -19112,7 +19122,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject __Pyx_INCREF(__pyx_v_10pyreadstat_16_readstat_parser_spss_secs_from_unix); __pyx_v_unix_to_origin_secs = __pyx_v_10pyreadstat_16_readstat_parser_spss_secs_from_unix; - /* "pyreadstat/_readstat_parser.pyx":1334 + /* "pyreadstat/_readstat_parser.pyx":1330 * origin = sas_origin * unix_to_origin_secs = sas_secs_from_unix * elif file_format == FILE_FORMAT_SPSS: # <<<<<<<<<<<<<< @@ -19122,7 +19132,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject break; case __pyx_e_10pyreadstat_16_readstat_parser_FILE_FORMAT_STATA: - /* "pyreadstat/_readstat_parser.pyx":1338 + /* "pyreadstat/_readstat_parser.pyx":1334 * unix_to_origin_secs = spss_secs_from_unix * elif file_format == FILE_FORMAT_STATA: * origin = stata_origin # <<<<<<<<<<<<<< @@ -19132,7 +19142,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject __Pyx_INCREF(__pyx_v_10pyreadstat_16_readstat_parser_stata_origin); __pyx_v_origin = __pyx_v_10pyreadstat_16_readstat_parser_stata_origin; - /* "pyreadstat/_readstat_parser.pyx":1339 + /* "pyreadstat/_readstat_parser.pyx":1335 * elif file_format == FILE_FORMAT_STATA: * origin = stata_origin * unix_to_origin_secs = stata_secs_from_unix # <<<<<<<<<<<<<< @@ -19142,7 +19152,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject __Pyx_INCREF(__pyx_v_10pyreadstat_16_readstat_parser_stata_secs_from_unix); __pyx_v_unix_to_origin_secs = __pyx_v_10pyreadstat_16_readstat_parser_stata_secs_from_unix; - /* "pyreadstat/_readstat_parser.pyx":1337 + /* "pyreadstat/_readstat_parser.pyx":1333 * origin = spss_origin * unix_to_origin_secs = spss_secs_from_unix * elif file_format == FILE_FORMAT_STATA: # <<<<<<<<<<<<<< @@ -19152,7 +19162,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject break; default: - /* "pyreadstat/_readstat_parser.pyx":1341 + /* "pyreadstat/_readstat_parser.pyx":1337 * unix_to_origin_secs = stata_secs_from_unix * else: * raise PyreadstatError("Unknown file format") # <<<<<<<<<<<<<< @@ -19160,7 +19170,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject * data.origin = origin */ __pyx_t_7 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1341, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1337, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_10 = 1; #if CYTHON_UNPACK_METHODS @@ -19179,16 +19189,16 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_9, __pyx_callargs+__pyx_t_10, (2-__pyx_t_10) | (__pyx_t_10*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1341, __pyx_L1_error) + if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1337, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); } __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __PYX_ERR(0, 1341, __pyx_L1_error) + __PYX_ERR(0, 1337, __pyx_L1_error) break; } - /* "pyreadstat/_readstat_parser.pyx":1343 + /* "pyreadstat/_readstat_parser.pyx":1339 * raise PyreadstatError("Unknown file format") * * data.origin = origin # <<<<<<<<<<<<<< @@ -19201,17 +19211,17 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject __Pyx_DECREF(__pyx_v_data->origin); __pyx_v_data->origin = __pyx_v_origin; - /* "pyreadstat/_readstat_parser.pyx":1344 + /* "pyreadstat/_readstat_parser.pyx":1340 * * data.origin = origin * data.unix_to_origin_secs = unix_to_origin_secs # <<<<<<<<<<<<<< * * if usecols is not None: */ - __pyx_t_22 = __Pyx_PyFloat_AsDouble(__pyx_v_unix_to_origin_secs); if (unlikely((__pyx_t_22 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1344, __pyx_L1_error) + __pyx_t_22 = __Pyx_PyFloat_AsDouble(__pyx_v_unix_to_origin_secs); if (unlikely((__pyx_t_22 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1340, __pyx_L1_error) __pyx_v_data->unix_to_origin_secs = __pyx_t_22; - /* "pyreadstat/_readstat_parser.pyx":1346 + /* "pyreadstat/_readstat_parser.pyx":1342 * data.unix_to_origin_secs = unix_to_origin_secs * * if usecols is not None: # <<<<<<<<<<<<<< @@ -19221,7 +19231,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject __pyx_t_1 = (__pyx_v_usecols != ((PyObject*)Py_None)); if (__pyx_t_1) { - /* "pyreadstat/_readstat_parser.pyx":1347 + /* "pyreadstat/_readstat_parser.pyx":1343 * * if usecols is not None: * data.filter_cols = 1 # <<<<<<<<<<<<<< @@ -19230,7 +19240,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject */ __pyx_v_data->filter_cols = 1; - /* "pyreadstat/_readstat_parser.pyx":1348 + /* "pyreadstat/_readstat_parser.pyx":1344 * if usecols is not None: * data.filter_cols = 1 * data.use_cols = usecols # <<<<<<<<<<<<<< @@ -19243,7 +19253,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject __Pyx_DECREF(__pyx_v_data->use_cols); __pyx_v_data->use_cols = __pyx_v_usecols; - /* "pyreadstat/_readstat_parser.pyx":1346 + /* "pyreadstat/_readstat_parser.pyx":1342 * data.unix_to_origin_secs = unix_to_origin_secs * * if usecols is not None: # <<<<<<<<<<<<<< @@ -19252,7 +19262,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject */ } - /* "pyreadstat/_readstat_parser.pyx":1350 + /* "pyreadstat/_readstat_parser.pyx":1346 * data.use_cols = usecols * * data.usernan = usernan # <<<<<<<<<<<<<< @@ -19261,7 +19271,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject */ __pyx_v_data->usernan = __pyx_v_usernan; - /* "pyreadstat/_readstat_parser.pyx":1351 + /* "pyreadstat/_readstat_parser.pyx":1347 * * data.usernan = usernan * data.no_datetime_conversion = no_datetime_conversion # <<<<<<<<<<<<<< @@ -19270,7 +19280,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject */ __pyx_v_data->no_datetime_conversion = __pyx_v_no_datetime_conversion; - /* "pyreadstat/_readstat_parser.pyx":1354 + /* "pyreadstat/_readstat_parser.pyx":1350 * * # go! * run_readstat_parser(filename, data, file_extension, row_limit, row_offset, file_obj) # <<<<<<<<<<<<<< @@ -19279,31 +19289,31 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject */ __pyx_t_23.__pyx_n = 1; __pyx_t_23.file_obj = __pyx_v_file_obj; - __pyx_f_10pyreadstat_16_readstat_parser_run_readstat_parser(__pyx_v_filename, __pyx_v_data, __pyx_v_file_extension, __pyx_v_row_limit, __pyx_v_row_offset, &__pyx_t_23); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1354, __pyx_L1_error) + __pyx_f_10pyreadstat_16_readstat_parser_run_readstat_parser(__pyx_v_filename, __pyx_v_data, __pyx_v_file_extension, __pyx_v_row_limit, __pyx_v_row_offset, &__pyx_t_23); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1350, __pyx_L1_error) - /* "pyreadstat/_readstat_parser.pyx":1355 + /* "pyreadstat/_readstat_parser.pyx":1351 * # go! * run_readstat_parser(filename, data, file_extension, row_limit, row_offset, file_obj) * data_dict = data_container_to_dict(data) # <<<<<<<<<<<<<< * if output_format == 'dict': * data_frame = data_dict */ - __pyx_t_3 = __pyx_f_10pyreadstat_16_readstat_parser_data_container_to_dict(__pyx_v_data); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1355, __pyx_L1_error) + __pyx_t_3 = __pyx_f_10pyreadstat_16_readstat_parser_data_container_to_dict(__pyx_v_data); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1351, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_v_data_dict = __pyx_t_3; __pyx_t_3 = 0; - /* "pyreadstat/_readstat_parser.pyx":1356 + /* "pyreadstat/_readstat_parser.pyx":1352 * run_readstat_parser(filename, data, file_extension, row_limit, row_offset, file_obj) * data_dict = data_container_to_dict(data) * if output_format == 'dict': # <<<<<<<<<<<<<< * data_frame = data_dict * else: */ - __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_output_format, __pyx_mstate_global->__pyx_n_u_dict, Py_EQ)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 1356, __pyx_L1_error) + __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_output_format, __pyx_mstate_global->__pyx_n_u_dict, Py_EQ)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 1352, __pyx_L1_error) if (__pyx_t_1) { - /* "pyreadstat/_readstat_parser.pyx":1357 + /* "pyreadstat/_readstat_parser.pyx":1353 * data_dict = data_container_to_dict(data) * if output_format == 'dict': * data_frame = data_dict # <<<<<<<<<<<<<< @@ -19313,7 +19323,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject __Pyx_INCREF(__pyx_v_data_dict); __pyx_v_data_frame = __pyx_v_data_dict; - /* "pyreadstat/_readstat_parser.pyx":1356 + /* "pyreadstat/_readstat_parser.pyx":1352 * run_readstat_parser(filename, data, file_extension, row_limit, row_offset, file_obj) * data_dict = data_container_to_dict(data) * if output_format == 'dict': # <<<<<<<<<<<<<< @@ -19323,7 +19333,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject goto __pyx_L70; } - /* "pyreadstat/_readstat_parser.pyx":1359 + /* "pyreadstat/_readstat_parser.pyx":1355 * data_frame = data_dict * else: * data_frame = dict_to_dataframe(data_dict, data) # <<<<<<<<<<<<<< @@ -19331,26 +19341,26 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject * */ /*else*/ { - __pyx_t_3 = __pyx_f_10pyreadstat_16_readstat_parser_dict_to_dataframe(__pyx_v_data_dict, __pyx_v_data); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1359, __pyx_L1_error) + __pyx_t_3 = __pyx_f_10pyreadstat_16_readstat_parser_dict_to_dataframe(__pyx_v_data_dict, __pyx_v_data); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1355, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_v_data_frame = __pyx_t_3; __pyx_t_3 = 0; } __pyx_L70:; - /* "pyreadstat/_readstat_parser.pyx":1360 + /* "pyreadstat/_readstat_parser.pyx":1356 * else: * data_frame = dict_to_dataframe(data_dict, data) * metadata = data_container_extract_metadata(data) # <<<<<<<<<<<<<< * * return data_frame, metadata */ - __pyx_t_3 = __pyx_f_10pyreadstat_16_readstat_parser_data_container_extract_metadata(__pyx_v_data); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1360, __pyx_L1_error) + __pyx_t_3 = __pyx_f_10pyreadstat_16_readstat_parser_data_container_extract_metadata(__pyx_v_data); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1356, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_v_metadata = __pyx_t_3; __pyx_t_3 = 0; - /* "pyreadstat/_readstat_parser.pyx":1362 + /* "pyreadstat/_readstat_parser.pyx":1358 * metadata = data_container_extract_metadata(data) * * return data_frame, metadata # <<<<<<<<<<<<<< @@ -19358,19 +19368,19 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject * def parser_entry_point(filename_path, str parser_format=None, */ __Pyx_XDECREF(__pyx_r); - __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1362, __pyx_L1_error) + __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1358, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_INCREF(__pyx_v_data_frame); __Pyx_GIVEREF(__pyx_v_data_frame); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_data_frame) != (0)) __PYX_ERR(0, 1362, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_data_frame) != (0)) __PYX_ERR(0, 1358, __pyx_L1_error); __Pyx_INCREF(__pyx_v_metadata); __Pyx_GIVEREF(__pyx_v_metadata); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_v_metadata) != (0)) __PYX_ERR(0, 1362, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_v_metadata) != (0)) __PYX_ERR(0, 1358, __pyx_L1_error); __pyx_r = __pyx_t_3; __pyx_t_3 = 0; goto __pyx_L0; - /* "pyreadstat/_readstat_parser.pyx":1221 + /* "pyreadstat/_readstat_parser.pyx":1217 * * * cdef object run_conversion(object filename_path, py_file_format file_format, py_file_extension file_extension, # <<<<<<<<<<<<<< @@ -19413,7 +19423,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject return __pyx_r; } -/* "pyreadstat/_readstat_parser.pyx":1364 +/* "pyreadstat/_readstat_parser.pyx":1360 * return data_frame, metadata * * def parser_entry_point(filename_path, str parser_format=None, # <<<<<<<<<<<<<< @@ -19475,81 +19485,81 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_filename_path,&__pyx_mstate_global->__pyx_n_u_parser_format,&__pyx_mstate_global->__pyx_n_u_metadataonly,&__pyx_mstate_global->__pyx_n_u_dates_as_pandas_datetime,&__pyx_mstate_global->__pyx_n_u_formats_as_category,&__pyx_mstate_global->__pyx_n_u_formats_as_ordered_category,&__pyx_mstate_global->__pyx_n_u_encoding,&__pyx_mstate_global->__pyx_n_u_usecols,&__pyx_mstate_global->__pyx_n_u_user_missing,&__pyx_mstate_global->__pyx_n_u_disable_datetime_conversion,&__pyx_mstate_global->__pyx_n_u_row_limit,&__pyx_mstate_global->__pyx_n_u_row_offset,&__pyx_mstate_global->__pyx_n_u_output_format,&__pyx_mstate_global->__pyx_n_u_extra_datetime_formats,&__pyx_mstate_global->__pyx_n_u_extra_date_formats,&__pyx_mstate_global->__pyx_n_u_extra_time_formats,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(0, 1364, __pyx_L3_error) + if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(0, 1360, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 16: values[15] = __Pyx_ArgRef_FASTCALL(__pyx_args, 15); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[15])) __PYX_ERR(0, 1364, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[15])) __PYX_ERR(0, 1360, __pyx_L3_error) CYTHON_FALLTHROUGH; case 15: values[14] = __Pyx_ArgRef_FASTCALL(__pyx_args, 14); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[14])) __PYX_ERR(0, 1364, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[14])) __PYX_ERR(0, 1360, __pyx_L3_error) CYTHON_FALLTHROUGH; case 14: values[13] = __Pyx_ArgRef_FASTCALL(__pyx_args, 13); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[13])) __PYX_ERR(0, 1364, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[13])) __PYX_ERR(0, 1360, __pyx_L3_error) CYTHON_FALLTHROUGH; case 13: values[12] = __Pyx_ArgRef_FASTCALL(__pyx_args, 12); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[12])) __PYX_ERR(0, 1364, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[12])) __PYX_ERR(0, 1360, __pyx_L3_error) CYTHON_FALLTHROUGH; case 12: values[11] = __Pyx_ArgRef_FASTCALL(__pyx_args, 11); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[11])) __PYX_ERR(0, 1364, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[11])) __PYX_ERR(0, 1360, __pyx_L3_error) CYTHON_FALLTHROUGH; case 11: values[10] = __Pyx_ArgRef_FASTCALL(__pyx_args, 10); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[10])) __PYX_ERR(0, 1364, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[10])) __PYX_ERR(0, 1360, __pyx_L3_error) CYTHON_FALLTHROUGH; case 10: values[9] = __Pyx_ArgRef_FASTCALL(__pyx_args, 9); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[9])) __PYX_ERR(0, 1364, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[9])) __PYX_ERR(0, 1360, __pyx_L3_error) CYTHON_FALLTHROUGH; case 9: values[8] = __Pyx_ArgRef_FASTCALL(__pyx_args, 8); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[8])) __PYX_ERR(0, 1364, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[8])) __PYX_ERR(0, 1360, __pyx_L3_error) CYTHON_FALLTHROUGH; case 8: values[7] = __Pyx_ArgRef_FASTCALL(__pyx_args, 7); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(0, 1364, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(0, 1360, __pyx_L3_error) CYTHON_FALLTHROUGH; case 7: values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(0, 1364, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(0, 1360, __pyx_L3_error) CYTHON_FALLTHROUGH; case 6: values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(0, 1364, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(0, 1360, __pyx_L3_error) CYTHON_FALLTHROUGH; case 5: values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(0, 1364, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(0, 1360, __pyx_L3_error) CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(0, 1364, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(0, 1360, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 1364, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 1360, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 1364, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 1360, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1364, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1360, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "parser_entry_point", 0) < (0)) __PYX_ERR(0, 1364, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "parser_entry_point", 0) < (0)) __PYX_ERR(0, 1360, __pyx_L3_error) if (!values[1]) values[1] = __Pyx_NewRef(((PyObject*)Py_None)); - /* "pyreadstat/_readstat_parser.pyx":1365 + /* "pyreadstat/_readstat_parser.pyx":1361 * * def parser_entry_point(filename_path, str parser_format=None, * metadataonly=False, dates_as_pandas_datetime=False, # <<<<<<<<<<<<<< @@ -19559,7 +19569,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds if (!values[2]) values[2] = __Pyx_NewRef(((PyObject *)((PyObject*)Py_False))); if (!values[3]) values[3] = __Pyx_NewRef(((PyObject *)((PyObject*)Py_False))); - /* "pyreadstat/_readstat_parser.pyx":1366 + /* "pyreadstat/_readstat_parser.pyx":1362 * def parser_entry_point(filename_path, str parser_format=None, * metadataonly=False, dates_as_pandas_datetime=False, * formats_as_category=True, formats_as_ordered_category=False, str encoding=None, list usecols=None, user_missing=False, # <<<<<<<<<<<<<< @@ -19572,7 +19582,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds if (!values[7]) values[7] = __Pyx_NewRef(((PyObject*)Py_None)); if (!values[8]) values[8] = __Pyx_NewRef(((PyObject *)((PyObject*)Py_False))); - /* "pyreadstat/_readstat_parser.pyx":1367 + /* "pyreadstat/_readstat_parser.pyx":1363 * metadataonly=False, dates_as_pandas_datetime=False, * formats_as_category=True, formats_as_ordered_category=False, str encoding=None, list usecols=None, user_missing=False, * disable_datetime_conversion=False, int row_limit=0, int row_offset=0, str output_format=None, list extra_datetime_formats=None, # <<<<<<<<<<<<<< @@ -19583,7 +19593,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds if (!values[12]) values[12] = __Pyx_NewRef(((PyObject*)Py_None)); if (!values[13]) values[13] = __Pyx_NewRef(((PyObject*)Py_None)); - /* "pyreadstat/_readstat_parser.pyx":1368 + /* "pyreadstat/_readstat_parser.pyx":1364 * formats_as_category=True, formats_as_ordered_category=False, str encoding=None, list usecols=None, user_missing=False, * disable_datetime_conversion=False, int row_limit=0, int row_offset=0, str output_format=None, list extra_datetime_formats=None, * list extra_date_formats=None, list extra_time_formats=None): # <<<<<<<<<<<<<< @@ -19593,78 +19603,78 @@ PyObject *__pyx_args, PyObject *__pyx_kwds if (!values[14]) values[14] = __Pyx_NewRef(((PyObject*)Py_None)); if (!values[15]) values[15] = __Pyx_NewRef(((PyObject*)Py_None)); for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("parser_entry_point", 0, 1, 16, i); __PYX_ERR(0, 1364, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("parser_entry_point", 0, 1, 16, i); __PYX_ERR(0, 1360, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 16: values[15] = __Pyx_ArgRef_FASTCALL(__pyx_args, 15); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[15])) __PYX_ERR(0, 1364, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[15])) __PYX_ERR(0, 1360, __pyx_L3_error) CYTHON_FALLTHROUGH; case 15: values[14] = __Pyx_ArgRef_FASTCALL(__pyx_args, 14); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[14])) __PYX_ERR(0, 1364, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[14])) __PYX_ERR(0, 1360, __pyx_L3_error) CYTHON_FALLTHROUGH; case 14: values[13] = __Pyx_ArgRef_FASTCALL(__pyx_args, 13); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[13])) __PYX_ERR(0, 1364, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[13])) __PYX_ERR(0, 1360, __pyx_L3_error) CYTHON_FALLTHROUGH; case 13: values[12] = __Pyx_ArgRef_FASTCALL(__pyx_args, 12); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[12])) __PYX_ERR(0, 1364, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[12])) __PYX_ERR(0, 1360, __pyx_L3_error) CYTHON_FALLTHROUGH; case 12: values[11] = __Pyx_ArgRef_FASTCALL(__pyx_args, 11); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[11])) __PYX_ERR(0, 1364, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[11])) __PYX_ERR(0, 1360, __pyx_L3_error) CYTHON_FALLTHROUGH; case 11: values[10] = __Pyx_ArgRef_FASTCALL(__pyx_args, 10); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[10])) __PYX_ERR(0, 1364, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[10])) __PYX_ERR(0, 1360, __pyx_L3_error) CYTHON_FALLTHROUGH; case 10: values[9] = __Pyx_ArgRef_FASTCALL(__pyx_args, 9); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[9])) __PYX_ERR(0, 1364, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[9])) __PYX_ERR(0, 1360, __pyx_L3_error) CYTHON_FALLTHROUGH; case 9: values[8] = __Pyx_ArgRef_FASTCALL(__pyx_args, 8); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[8])) __PYX_ERR(0, 1364, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[8])) __PYX_ERR(0, 1360, __pyx_L3_error) CYTHON_FALLTHROUGH; case 8: values[7] = __Pyx_ArgRef_FASTCALL(__pyx_args, 7); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(0, 1364, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(0, 1360, __pyx_L3_error) CYTHON_FALLTHROUGH; case 7: values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(0, 1364, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(0, 1360, __pyx_L3_error) CYTHON_FALLTHROUGH; case 6: values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(0, 1364, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(0, 1360, __pyx_L3_error) CYTHON_FALLTHROUGH; case 5: values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(0, 1364, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(0, 1360, __pyx_L3_error) CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(0, 1364, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(0, 1360, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 1364, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 1360, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 1364, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 1360, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1364, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1360, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } - /* "pyreadstat/_readstat_parser.pyx":1364 + /* "pyreadstat/_readstat_parser.pyx":1360 * return data_frame, metadata * * def parser_entry_point(filename_path, str parser_format=None, # <<<<<<<<<<<<<< @@ -19677,7 +19687,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds if (!values[4]) values[4] = __Pyx_NewRef(((PyObject *)((PyObject*)Py_True))); if (!values[5]) values[5] = __Pyx_NewRef(((PyObject *)((PyObject*)Py_False))); - /* "pyreadstat/_readstat_parser.pyx":1366 + /* "pyreadstat/_readstat_parser.pyx":1362 * def parser_entry_point(filename_path, str parser_format=None, * metadataonly=False, dates_as_pandas_datetime=False, * formats_as_category=True, formats_as_ordered_category=False, str encoding=None, list usecols=None, user_missing=False, # <<<<<<<<<<<<<< @@ -19689,7 +19699,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds if (!values[8]) values[8] = __Pyx_NewRef(((PyObject *)((PyObject*)Py_False))); if (!values[9]) values[9] = __Pyx_NewRef(((PyObject *)((PyObject*)Py_False))); - /* "pyreadstat/_readstat_parser.pyx":1367 + /* "pyreadstat/_readstat_parser.pyx":1363 * metadataonly=False, dates_as_pandas_datetime=False, * formats_as_category=True, formats_as_ordered_category=False, str encoding=None, list usecols=None, user_missing=False, * disable_datetime_conversion=False, int row_limit=0, int row_offset=0, str output_format=None, list extra_datetime_formats=None, # <<<<<<<<<<<<<< @@ -19699,7 +19709,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds if (!values[12]) values[12] = __Pyx_NewRef(((PyObject*)Py_None)); if (!values[13]) values[13] = __Pyx_NewRef(((PyObject*)Py_None)); - /* "pyreadstat/_readstat_parser.pyx":1368 + /* "pyreadstat/_readstat_parser.pyx":1364 * formats_as_category=True, formats_as_ordered_category=False, str encoding=None, list usecols=None, user_missing=False, * disable_datetime_conversion=False, int row_limit=0, int row_offset=0, str output_format=None, list extra_datetime_formats=None, * list extra_date_formats=None, list extra_time_formats=None): # <<<<<<<<<<<<<< @@ -19720,12 +19730,12 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __pyx_v_user_missing = values[8]; __pyx_v_disable_datetime_conversion = values[9]; if (values[10]) { - __pyx_v_row_limit = __Pyx_PyLong_As_int(values[10]); if (unlikely((__pyx_v_row_limit == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 1367, __pyx_L3_error) + __pyx_v_row_limit = __Pyx_PyLong_As_int(values[10]); if (unlikely((__pyx_v_row_limit == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 1363, __pyx_L3_error) } else { __pyx_v_row_limit = ((int)((int)0)); } if (values[11]) { - __pyx_v_row_offset = __Pyx_PyLong_As_int(values[11]); if (unlikely((__pyx_v_row_offset == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 1367, __pyx_L3_error) + __pyx_v_row_offset = __Pyx_PyLong_As_int(values[11]); if (unlikely((__pyx_v_row_offset == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 1363, __pyx_L3_error) } else { __pyx_v_row_offset = ((int)((int)0)); } @@ -19736,7 +19746,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("parser_entry_point", 0, 1, 16, __pyx_nargs); __PYX_ERR(0, 1364, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("parser_entry_point", 0, 1, 16, __pyx_nargs); __PYX_ERR(0, 1360, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -19747,16 +19757,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_parser_format), (&PyUnicode_Type), 1, "parser_format", 1))) __PYX_ERR(0, 1364, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_encoding), (&PyUnicode_Type), 1, "encoding", 1))) __PYX_ERR(0, 1366, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_usecols), (&PyList_Type), 1, "usecols", 1))) __PYX_ERR(0, 1366, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_output_format), (&PyUnicode_Type), 1, "output_format", 1))) __PYX_ERR(0, 1367, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_extra_datetime_formats), (&PyList_Type), 1, "extra_datetime_formats", 1))) __PYX_ERR(0, 1367, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_extra_date_formats), (&PyList_Type), 1, "extra_date_formats", 1))) __PYX_ERR(0, 1368, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_extra_time_formats), (&PyList_Type), 1, "extra_time_formats", 1))) __PYX_ERR(0, 1368, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_parser_format), (&PyUnicode_Type), 1, "parser_format", 1))) __PYX_ERR(0, 1360, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_encoding), (&PyUnicode_Type), 1, "encoding", 1))) __PYX_ERR(0, 1362, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_usecols), (&PyList_Type), 1, "usecols", 1))) __PYX_ERR(0, 1362, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_output_format), (&PyUnicode_Type), 1, "output_format", 1))) __PYX_ERR(0, 1363, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_extra_datetime_formats), (&PyList_Type), 1, "extra_datetime_formats", 1))) __PYX_ERR(0, 1363, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_extra_date_formats), (&PyList_Type), 1, "extra_date_formats", 1))) __PYX_ERR(0, 1364, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_extra_time_formats), (&PyList_Type), 1, "extra_time_formats", 1))) __PYX_ERR(0, 1364, __pyx_L1_error) __pyx_r = __pyx_pf_10pyreadstat_16_readstat_parser_parser_entry_point(__pyx_self, __pyx_v_filename_path, __pyx_v_parser_format, __pyx_v_metadataonly, __pyx_v_dates_as_pandas_datetime, __pyx_v_formats_as_category, __pyx_v_formats_as_ordered_category, __pyx_v_encoding, __pyx_v_usecols, __pyx_v_user_missing, __pyx_v_disable_datetime_conversion, __pyx_v_row_limit, __pyx_v_row_offset, __pyx_v_output_format, __pyx_v_extra_datetime_formats, __pyx_v_extra_date_formats, __pyx_v_extra_time_formats); - /* "pyreadstat/_readstat_parser.pyx":1364 + /* "pyreadstat/_readstat_parser.pyx":1360 * return data_frame, metadata * * def parser_entry_point(filename_path, str parser_format=None, # <<<<<<<<<<<<<< @@ -19804,17 +19814,17 @@ static PyObject *__pyx_pf_10pyreadstat_16_readstat_parser_parser_entry_point(CYT int __pyx_clineno = 0; __Pyx_RefNannySetupContext("parser_entry_point", 0); - /* "pyreadstat/_readstat_parser.pyx":1374 + /* "pyreadstat/_readstat_parser.pyx":1370 * cdef py_file_extension file_extension * * if parser_format == "sav/zsav": # <<<<<<<<<<<<<< * file_format = FILE_FORMAT_SPSS * file_extension = FILE_EXT_SAV */ - __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_parser_format, __pyx_mstate_global->__pyx_kp_u_sav_zsav, Py_EQ)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 1374, __pyx_L1_error) + __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_parser_format, __pyx_mstate_global->__pyx_kp_u_sav_zsav, Py_EQ)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 1370, __pyx_L1_error) if (__pyx_t_1) { - /* "pyreadstat/_readstat_parser.pyx":1375 + /* "pyreadstat/_readstat_parser.pyx":1371 * * if parser_format == "sav/zsav": * file_format = FILE_FORMAT_SPSS # <<<<<<<<<<<<<< @@ -19823,7 +19833,7 @@ static PyObject *__pyx_pf_10pyreadstat_16_readstat_parser_parser_entry_point(CYT */ __pyx_v_file_format = __pyx_e_10pyreadstat_16_readstat_parser_FILE_FORMAT_SPSS; - /* "pyreadstat/_readstat_parser.pyx":1376 + /* "pyreadstat/_readstat_parser.pyx":1372 * if parser_format == "sav/zsav": * file_format = FILE_FORMAT_SPSS * file_extension = FILE_EXT_SAV # <<<<<<<<<<<<<< @@ -19832,7 +19842,7 @@ static PyObject *__pyx_pf_10pyreadstat_16_readstat_parser_parser_entry_point(CYT */ __pyx_v_file_extension = __pyx_e_10pyreadstat_16_readstat_parser_FILE_EXT_SAV; - /* "pyreadstat/_readstat_parser.pyx":1374 + /* "pyreadstat/_readstat_parser.pyx":1370 * cdef py_file_extension file_extension * * if parser_format == "sav/zsav": # <<<<<<<<<<<<<< @@ -19842,17 +19852,17 @@ static PyObject *__pyx_pf_10pyreadstat_16_readstat_parser_parser_entry_point(CYT goto __pyx_L3; } - /* "pyreadstat/_readstat_parser.pyx":1377 + /* "pyreadstat/_readstat_parser.pyx":1373 * file_format = FILE_FORMAT_SPSS * file_extension = FILE_EXT_SAV * elif parser_format == "sas7bdat": # <<<<<<<<<<<<<< * file_format = FILE_FORMAT_SAS * file_extension = FILE_EXT_SAS7BDAT */ - __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_parser_format, __pyx_mstate_global->__pyx_n_u_sas7bdat, Py_EQ)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 1377, __pyx_L1_error) + __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_parser_format, __pyx_mstate_global->__pyx_n_u_sas7bdat, Py_EQ)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 1373, __pyx_L1_error) if (__pyx_t_1) { - /* "pyreadstat/_readstat_parser.pyx":1378 + /* "pyreadstat/_readstat_parser.pyx":1374 * file_extension = FILE_EXT_SAV * elif parser_format == "sas7bdat": * file_format = FILE_FORMAT_SAS # <<<<<<<<<<<<<< @@ -19861,7 +19871,7 @@ static PyObject *__pyx_pf_10pyreadstat_16_readstat_parser_parser_entry_point(CYT */ __pyx_v_file_format = __pyx_e_10pyreadstat_16_readstat_parser_FILE_FORMAT_SAS; - /* "pyreadstat/_readstat_parser.pyx":1379 + /* "pyreadstat/_readstat_parser.pyx":1375 * elif parser_format == "sas7bdat": * file_format = FILE_FORMAT_SAS * file_extension = FILE_EXT_SAS7BDAT # <<<<<<<<<<<<<< @@ -19870,7 +19880,7 @@ static PyObject *__pyx_pf_10pyreadstat_16_readstat_parser_parser_entry_point(CYT */ __pyx_v_file_extension = __pyx_e_10pyreadstat_16_readstat_parser_FILE_EXT_SAS7BDAT; - /* "pyreadstat/_readstat_parser.pyx":1377 + /* "pyreadstat/_readstat_parser.pyx":1373 * file_format = FILE_FORMAT_SPSS * file_extension = FILE_EXT_SAV * elif parser_format == "sas7bdat": # <<<<<<<<<<<<<< @@ -19880,17 +19890,17 @@ static PyObject *__pyx_pf_10pyreadstat_16_readstat_parser_parser_entry_point(CYT goto __pyx_L3; } - /* "pyreadstat/_readstat_parser.pyx":1380 + /* "pyreadstat/_readstat_parser.pyx":1376 * file_format = FILE_FORMAT_SAS * file_extension = FILE_EXT_SAS7BDAT * elif parser_format == "xport": # <<<<<<<<<<<<<< * file_format = FILE_FORMAT_SAS * file_extension = FILE_EXT_XPORT */ - __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_parser_format, __pyx_mstate_global->__pyx_n_u_xport, Py_EQ)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 1380, __pyx_L1_error) + __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_parser_format, __pyx_mstate_global->__pyx_n_u_xport, Py_EQ)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 1376, __pyx_L1_error) if (__pyx_t_1) { - /* "pyreadstat/_readstat_parser.pyx":1381 + /* "pyreadstat/_readstat_parser.pyx":1377 * file_extension = FILE_EXT_SAS7BDAT * elif parser_format == "xport": * file_format = FILE_FORMAT_SAS # <<<<<<<<<<<<<< @@ -19899,7 +19909,7 @@ static PyObject *__pyx_pf_10pyreadstat_16_readstat_parser_parser_entry_point(CYT */ __pyx_v_file_format = __pyx_e_10pyreadstat_16_readstat_parser_FILE_FORMAT_SAS; - /* "pyreadstat/_readstat_parser.pyx":1382 + /* "pyreadstat/_readstat_parser.pyx":1378 * elif parser_format == "xport": * file_format = FILE_FORMAT_SAS * file_extension = FILE_EXT_XPORT # <<<<<<<<<<<<<< @@ -19908,7 +19918,7 @@ static PyObject *__pyx_pf_10pyreadstat_16_readstat_parser_parser_entry_point(CYT */ __pyx_v_file_extension = __pyx_e_10pyreadstat_16_readstat_parser_FILE_EXT_XPORT; - /* "pyreadstat/_readstat_parser.pyx":1380 + /* "pyreadstat/_readstat_parser.pyx":1376 * file_format = FILE_FORMAT_SAS * file_extension = FILE_EXT_SAS7BDAT * elif parser_format == "xport": # <<<<<<<<<<<<<< @@ -19918,17 +19928,17 @@ static PyObject *__pyx_pf_10pyreadstat_16_readstat_parser_parser_entry_point(CYT goto __pyx_L3; } - /* "pyreadstat/_readstat_parser.pyx":1383 + /* "pyreadstat/_readstat_parser.pyx":1379 * file_format = FILE_FORMAT_SAS * file_extension = FILE_EXT_XPORT * elif parser_format == "dta": # <<<<<<<<<<<<<< * file_format = FILE_FORMAT_STATA * file_extension = FILE_EXT_DTA */ - __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_parser_format, __pyx_mstate_global->__pyx_n_u_dta, Py_EQ)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 1383, __pyx_L1_error) + __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_parser_format, __pyx_mstate_global->__pyx_n_u_dta, Py_EQ)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 1379, __pyx_L1_error) if (__pyx_t_1) { - /* "pyreadstat/_readstat_parser.pyx":1384 + /* "pyreadstat/_readstat_parser.pyx":1380 * file_extension = FILE_EXT_XPORT * elif parser_format == "dta": * file_format = FILE_FORMAT_STATA # <<<<<<<<<<<<<< @@ -19937,7 +19947,7 @@ static PyObject *__pyx_pf_10pyreadstat_16_readstat_parser_parser_entry_point(CYT */ __pyx_v_file_format = __pyx_e_10pyreadstat_16_readstat_parser_FILE_FORMAT_STATA; - /* "pyreadstat/_readstat_parser.pyx":1385 + /* "pyreadstat/_readstat_parser.pyx":1381 * elif parser_format == "dta": * file_format = FILE_FORMAT_STATA * file_extension = FILE_EXT_DTA # <<<<<<<<<<<<<< @@ -19946,7 +19956,7 @@ static PyObject *__pyx_pf_10pyreadstat_16_readstat_parser_parser_entry_point(CYT */ __pyx_v_file_extension = __pyx_e_10pyreadstat_16_readstat_parser_FILE_EXT_DTA; - /* "pyreadstat/_readstat_parser.pyx":1383 + /* "pyreadstat/_readstat_parser.pyx":1379 * file_format = FILE_FORMAT_SAS * file_extension = FILE_EXT_XPORT * elif parser_format == "dta": # <<<<<<<<<<<<<< @@ -19956,17 +19966,17 @@ static PyObject *__pyx_pf_10pyreadstat_16_readstat_parser_parser_entry_point(CYT goto __pyx_L3; } - /* "pyreadstat/_readstat_parser.pyx":1386 + /* "pyreadstat/_readstat_parser.pyx":1382 * file_format = FILE_FORMAT_STATA * file_extension = FILE_EXT_DTA * elif parser_format == "por": # <<<<<<<<<<<<<< * file_format = FILE_FORMAT_SPSS * file_extension = FILE_EXT_POR */ - __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_parser_format, __pyx_mstate_global->__pyx_n_u_por, Py_EQ)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 1386, __pyx_L1_error) + __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_parser_format, __pyx_mstate_global->__pyx_n_u_por, Py_EQ)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 1382, __pyx_L1_error) if (__pyx_t_1) { - /* "pyreadstat/_readstat_parser.pyx":1387 + /* "pyreadstat/_readstat_parser.pyx":1383 * file_extension = FILE_EXT_DTA * elif parser_format == "por": * file_format = FILE_FORMAT_SPSS # <<<<<<<<<<<<<< @@ -19975,7 +19985,7 @@ static PyObject *__pyx_pf_10pyreadstat_16_readstat_parser_parser_entry_point(CYT */ __pyx_v_file_format = __pyx_e_10pyreadstat_16_readstat_parser_FILE_FORMAT_SPSS; - /* "pyreadstat/_readstat_parser.pyx":1388 + /* "pyreadstat/_readstat_parser.pyx":1384 * elif parser_format == "por": * file_format = FILE_FORMAT_SPSS * file_extension = FILE_EXT_POR # <<<<<<<<<<<<<< @@ -19984,7 +19994,7 @@ static PyObject *__pyx_pf_10pyreadstat_16_readstat_parser_parser_entry_point(CYT */ __pyx_v_file_extension = __pyx_e_10pyreadstat_16_readstat_parser_FILE_EXT_POR; - /* "pyreadstat/_readstat_parser.pyx":1386 + /* "pyreadstat/_readstat_parser.pyx":1382 * file_format = FILE_FORMAT_STATA * file_extension = FILE_EXT_DTA * elif parser_format == "por": # <<<<<<<<<<<<<< @@ -19994,17 +20004,17 @@ static PyObject *__pyx_pf_10pyreadstat_16_readstat_parser_parser_entry_point(CYT goto __pyx_L3; } - /* "pyreadstat/_readstat_parser.pyx":1389 + /* "pyreadstat/_readstat_parser.pyx":1385 * file_format = FILE_FORMAT_SPSS * file_extension = FILE_EXT_POR * elif parser_format == "sas7bcat": # <<<<<<<<<<<<<< * file_format = FILE_FORMAT_SAS * file_extension = FILE_EXT_SAS7BCAT */ - __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_parser_format, __pyx_mstate_global->__pyx_n_u_sas7bcat, Py_EQ)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 1389, __pyx_L1_error) + __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_parser_format, __pyx_mstate_global->__pyx_n_u_sas7bcat, Py_EQ)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 1385, __pyx_L1_error) if (likely(__pyx_t_1)) { - /* "pyreadstat/_readstat_parser.pyx":1390 + /* "pyreadstat/_readstat_parser.pyx":1386 * file_extension = FILE_EXT_POR * elif parser_format == "sas7bcat": * file_format = FILE_FORMAT_SAS # <<<<<<<<<<<<<< @@ -20013,7 +20023,7 @@ static PyObject *__pyx_pf_10pyreadstat_16_readstat_parser_parser_entry_point(CYT */ __pyx_v_file_format = __pyx_e_10pyreadstat_16_readstat_parser_FILE_FORMAT_SAS; - /* "pyreadstat/_readstat_parser.pyx":1391 + /* "pyreadstat/_readstat_parser.pyx":1387 * elif parser_format == "sas7bcat": * file_format = FILE_FORMAT_SAS * file_extension = FILE_EXT_SAS7BCAT # <<<<<<<<<<<<<< @@ -20022,7 +20032,7 @@ static PyObject *__pyx_pf_10pyreadstat_16_readstat_parser_parser_entry_point(CYT */ __pyx_v_file_extension = __pyx_e_10pyreadstat_16_readstat_parser_FILE_EXT_SAS7BCAT; - /* "pyreadstat/_readstat_parser.pyx":1389 + /* "pyreadstat/_readstat_parser.pyx":1385 * file_format = FILE_FORMAT_SPSS * file_extension = FILE_EXT_POR * elif parser_format == "sas7bcat": # <<<<<<<<<<<<<< @@ -20032,7 +20042,7 @@ static PyObject *__pyx_pf_10pyreadstat_16_readstat_parser_parser_entry_point(CYT goto __pyx_L3; } - /* "pyreadstat/_readstat_parser.pyx":1393 + /* "pyreadstat/_readstat_parser.pyx":1389 * file_extension = FILE_EXT_SAS7BCAT * else: * raise PyreadstatError("wrong parser format") # <<<<<<<<<<<<<< @@ -20041,7 +20051,7 @@ static PyObject *__pyx_pf_10pyreadstat_16_readstat_parser_parser_entry_point(CYT */ /*else*/ { __pyx_t_3 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1393, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1389, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = 1; #if CYTHON_UNPACK_METHODS @@ -20060,16 +20070,16 @@ static PyObject *__pyx_pf_10pyreadstat_16_readstat_parser_parser_entry_point(CYT __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1393, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1389, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } __Pyx_Raise(__pyx_t_2, 0, 0, 0); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __PYX_ERR(0, 1393, __pyx_L1_error) + __PYX_ERR(0, 1389, __pyx_L1_error) } __pyx_L3:; - /* "pyreadstat/_readstat_parser.pyx":1395 + /* "pyreadstat/_readstat_parser.pyx":1391 * raise PyreadstatError("wrong parser format") * * cdef bint metaonly = 0 # <<<<<<<<<<<<<< @@ -20078,17 +20088,17 @@ static PyObject *__pyx_pf_10pyreadstat_16_readstat_parser_parser_entry_point(CYT */ __pyx_v_metaonly = 0; - /* "pyreadstat/_readstat_parser.pyx":1396 + /* "pyreadstat/_readstat_parser.pyx":1392 * * cdef bint metaonly = 0 * if metadataonly: # <<<<<<<<<<<<<< * metaonly = 1 * */ - __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_metadataonly); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 1396, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_metadataonly); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 1392, __pyx_L1_error) if (__pyx_t_1) { - /* "pyreadstat/_readstat_parser.pyx":1397 + /* "pyreadstat/_readstat_parser.pyx":1393 * cdef bint metaonly = 0 * if metadataonly: * metaonly = 1 # <<<<<<<<<<<<<< @@ -20097,7 +20107,7 @@ static PyObject *__pyx_pf_10pyreadstat_16_readstat_parser_parser_entry_point(CYT */ __pyx_v_metaonly = 1; - /* "pyreadstat/_readstat_parser.pyx":1396 + /* "pyreadstat/_readstat_parser.pyx":1392 * * cdef bint metaonly = 0 * if metadataonly: # <<<<<<<<<<<<<< @@ -20106,7 +20116,7 @@ static PyObject *__pyx_pf_10pyreadstat_16_readstat_parser_parser_entry_point(CYT */ } - /* "pyreadstat/_readstat_parser.pyx":1399 + /* "pyreadstat/_readstat_parser.pyx":1395 * metaonly = 1 * * cdef bint dates_as_pandas = 0 # <<<<<<<<<<<<<< @@ -20115,17 +20125,17 @@ static PyObject *__pyx_pf_10pyreadstat_16_readstat_parser_parser_entry_point(CYT */ __pyx_v_dates_as_pandas = 0; - /* "pyreadstat/_readstat_parser.pyx":1400 + /* "pyreadstat/_readstat_parser.pyx":1396 * * cdef bint dates_as_pandas = 0 * if dates_as_pandas_datetime: # <<<<<<<<<<<<<< * dates_as_pandas = 1 * */ - __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_dates_as_pandas_datetime); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 1400, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_dates_as_pandas_datetime); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 1396, __pyx_L1_error) if (__pyx_t_1) { - /* "pyreadstat/_readstat_parser.pyx":1401 + /* "pyreadstat/_readstat_parser.pyx":1397 * cdef bint dates_as_pandas = 0 * if dates_as_pandas_datetime: * dates_as_pandas = 1 # <<<<<<<<<<<<<< @@ -20134,7 +20144,7 @@ static PyObject *__pyx_pf_10pyreadstat_16_readstat_parser_parser_entry_point(CYT */ __pyx_v_dates_as_pandas = 1; - /* "pyreadstat/_readstat_parser.pyx":1400 + /* "pyreadstat/_readstat_parser.pyx":1396 * * cdef bint dates_as_pandas = 0 * if dates_as_pandas_datetime: # <<<<<<<<<<<<<< @@ -20143,7 +20153,7 @@ static PyObject *__pyx_pf_10pyreadstat_16_readstat_parser_parser_entry_point(CYT */ } - /* "pyreadstat/_readstat_parser.pyx":1403 + /* "pyreadstat/_readstat_parser.pyx":1399 * dates_as_pandas = 1 * * cdef bint usernan = 0 # <<<<<<<<<<<<<< @@ -20152,17 +20162,17 @@ static PyObject *__pyx_pf_10pyreadstat_16_readstat_parser_parser_entry_point(CYT */ __pyx_v_usernan = 0; - /* "pyreadstat/_readstat_parser.pyx":1404 + /* "pyreadstat/_readstat_parser.pyx":1400 * * cdef bint usernan = 0 * if user_missing: # <<<<<<<<<<<<<< * usernan = 1 * */ - __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_user_missing); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 1404, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_user_missing); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 1400, __pyx_L1_error) if (__pyx_t_1) { - /* "pyreadstat/_readstat_parser.pyx":1405 + /* "pyreadstat/_readstat_parser.pyx":1401 * cdef bint usernan = 0 * if user_missing: * usernan = 1 # <<<<<<<<<<<<<< @@ -20171,7 +20181,7 @@ static PyObject *__pyx_pf_10pyreadstat_16_readstat_parser_parser_entry_point(CYT */ __pyx_v_usernan = 1; - /* "pyreadstat/_readstat_parser.pyx":1404 + /* "pyreadstat/_readstat_parser.pyx":1400 * * cdef bint usernan = 0 * if user_missing: # <<<<<<<<<<<<<< @@ -20180,7 +20190,7 @@ static PyObject *__pyx_pf_10pyreadstat_16_readstat_parser_parser_entry_point(CYT */ } - /* "pyreadstat/_readstat_parser.pyx":1407 + /* "pyreadstat/_readstat_parser.pyx":1403 * usernan = 1 * * cdef bint no_datetime_conversion = 0 # <<<<<<<<<<<<<< @@ -20189,17 +20199,17 @@ static PyObject *__pyx_pf_10pyreadstat_16_readstat_parser_parser_entry_point(CYT */ __pyx_v_no_datetime_conversion = 0; - /* "pyreadstat/_readstat_parser.pyx":1408 + /* "pyreadstat/_readstat_parser.pyx":1404 * * cdef bint no_datetime_conversion = 0 * if disable_datetime_conversion: # <<<<<<<<<<<<<< * no_datetime_conversion = 1 * */ - __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_disable_datetime_conversion); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 1408, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_disable_datetime_conversion); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 1404, __pyx_L1_error) if (__pyx_t_1) { - /* "pyreadstat/_readstat_parser.pyx":1409 + /* "pyreadstat/_readstat_parser.pyx":1405 * cdef bint no_datetime_conversion = 0 * if disable_datetime_conversion: * no_datetime_conversion = 1 # <<<<<<<<<<<<<< @@ -20208,7 +20218,7 @@ static PyObject *__pyx_pf_10pyreadstat_16_readstat_parser_parser_entry_point(CYT */ __pyx_v_no_datetime_conversion = 1; - /* "pyreadstat/_readstat_parser.pyx":1408 + /* "pyreadstat/_readstat_parser.pyx":1404 * * cdef bint no_datetime_conversion = 0 * if disable_datetime_conversion: # <<<<<<<<<<<<<< @@ -20217,14 +20227,14 @@ static PyObject *__pyx_pf_10pyreadstat_16_readstat_parser_parser_entry_point(CYT */ } - /* "pyreadstat/_readstat_parser.pyx":1411 + /* "pyreadstat/_readstat_parser.pyx":1407 * no_datetime_conversion = 1 * * data_frame, metadata = run_conversion(filename_path, file_format, file_extension, encoding, metaonly, # <<<<<<<<<<<<<< * dates_as_pandas, usecols, usernan, no_datetime_conversion, row_limit, row_offset, * output_format, extra_datetime_formats, extra_date_formats, extra_time_formats) */ - __pyx_t_2 = __pyx_f_10pyreadstat_16_readstat_parser_run_conversion(__pyx_v_filename_path, __pyx_v_file_format, __pyx_v_file_extension, __pyx_v_encoding, __pyx_v_metaonly, __pyx_v_dates_as_pandas, __pyx_v_usecols, __pyx_v_usernan, __pyx_v_no_datetime_conversion, ((long)__pyx_v_row_limit), ((long)__pyx_v_row_offset), __pyx_v_output_format, __pyx_v_extra_datetime_formats, __pyx_v_extra_date_formats, __pyx_v_extra_time_formats); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1411, __pyx_L1_error) + __pyx_t_2 = __pyx_f_10pyreadstat_16_readstat_parser_run_conversion(__pyx_v_filename_path, __pyx_v_file_format, __pyx_v_file_extension, __pyx_v_encoding, __pyx_v_metaonly, __pyx_v_dates_as_pandas, __pyx_v_usecols, __pyx_v_usernan, __pyx_v_no_datetime_conversion, ((long)__pyx_v_row_limit), ((long)__pyx_v_row_offset), __pyx_v_output_format, __pyx_v_extra_datetime_formats, __pyx_v_extra_date_formats, __pyx_v_extra_time_formats); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1407, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if ((likely(PyTuple_CheckExact(__pyx_t_2))) || (PyList_CheckExact(__pyx_t_2))) { PyObject* sequence = __pyx_t_2; @@ -20232,7 +20242,7 @@ static PyObject *__pyx_pf_10pyreadstat_16_readstat_parser_parser_entry_point(CYT if (unlikely(size != 2)) { if (size > 2) __Pyx_RaiseTooManyValuesError(2); else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); - __PYX_ERR(0, 1411, __pyx_L1_error) + __PYX_ERR(0, 1407, __pyx_L1_error) } #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS if (likely(PyTuple_CheckExact(sequence))) { @@ -20242,22 +20252,22 @@ static PyObject *__pyx_pf_10pyreadstat_16_readstat_parser_parser_entry_point(CYT __Pyx_INCREF(__pyx_t_3); } else { __pyx_t_4 = __Pyx_PyList_GetItemRefFast(sequence, 0, __Pyx_ReferenceSharing_SharedReference); - if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1411, __pyx_L1_error) + if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1407, __pyx_L1_error) __Pyx_XGOTREF(__pyx_t_4); __pyx_t_3 = __Pyx_PyList_GetItemRefFast(sequence, 1, __Pyx_ReferenceSharing_SharedReference); - if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1411, __pyx_L1_error) + if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1407, __pyx_L1_error) __Pyx_XGOTREF(__pyx_t_3); } #else - __pyx_t_4 = __Pyx_PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1411, __pyx_L1_error) + __pyx_t_4 = __Pyx_PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1407, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_3 = __Pyx_PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1411, __pyx_L1_error) + __pyx_t_3 = __Pyx_PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1407, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); #endif __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } else { Py_ssize_t index = -1; - __pyx_t_6 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1411, __pyx_L1_error) + __pyx_t_6 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1407, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_7 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_6); @@ -20265,7 +20275,7 @@ static PyObject *__pyx_pf_10pyreadstat_16_readstat_parser_parser_entry_point(CYT __Pyx_GOTREF(__pyx_t_4); index = 1; __pyx_t_3 = __pyx_t_7(__pyx_t_6); if (unlikely(!__pyx_t_3)) goto __pyx_L8_unpacking_failed; __Pyx_GOTREF(__pyx_t_3); - if (__Pyx_IternextUnpackEndCheck(__pyx_t_7(__pyx_t_6), 2) < (0)) __PYX_ERR(0, 1411, __pyx_L1_error) + if (__Pyx_IternextUnpackEndCheck(__pyx_t_7(__pyx_t_6), 2) < (0)) __PYX_ERR(0, 1407, __pyx_L1_error) __pyx_t_7 = NULL; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; goto __pyx_L9_unpacking_done; @@ -20273,7 +20283,7 @@ static PyObject *__pyx_pf_10pyreadstat_16_readstat_parser_parser_entry_point(CYT __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_7 = NULL; if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); - __PYX_ERR(0, 1411, __pyx_L1_error) + __PYX_ERR(0, 1407, __pyx_L1_error) __pyx_L9_unpacking_done:; } __pyx_v_data_frame = __pyx_t_4; @@ -20281,26 +20291,26 @@ static PyObject *__pyx_pf_10pyreadstat_16_readstat_parser_parser_entry_point(CYT __pyx_v_metadata = __pyx_t_3; __pyx_t_3 = 0; - /* "pyreadstat/_readstat_parser.pyx":1415 + /* "pyreadstat/_readstat_parser.pyx":1411 * output_format, extra_datetime_formats, extra_date_formats, extra_time_formats) * * return data_frame, metadata # <<<<<<<<<<<<<< * */ __Pyx_XDECREF(__pyx_r); - __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1415, __pyx_L1_error) + __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1411, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(__pyx_v_data_frame); __Pyx_GIVEREF(__pyx_v_data_frame); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_data_frame) != (0)) __PYX_ERR(0, 1415, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_data_frame) != (0)) __PYX_ERR(0, 1411, __pyx_L1_error); __Pyx_INCREF(__pyx_v_metadata); __Pyx_GIVEREF(__pyx_v_metadata); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_v_metadata) != (0)) __PYX_ERR(0, 1415, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_v_metadata) != (0)) __PYX_ERR(0, 1411, __pyx_L1_error); __pyx_r = __pyx_t_2; __pyx_t_2 = 0; goto __pyx_L0; - /* "pyreadstat/_readstat_parser.pyx":1364 + /* "pyreadstat/_readstat_parser.pyx":1360 * return data_frame, metadata * * def parser_entry_point(filename_path, str parser_format=None, # <<<<<<<<<<<<<< @@ -20705,7 +20715,6 @@ static int __Pyx_modinit_global_init_code(__pyx_mstatetype *__pyx_mstate) { __pyx_v_10pyreadstat_16_readstat_parser_sas_secs_from_unix = Py_None; Py_INCREF(Py_None); __pyx_v_10pyreadstat_16_readstat_parser_spss_secs_from_unix = Py_None; Py_INCREF(Py_None); __pyx_v_10pyreadstat_16_readstat_parser_stata_secs_from_unix = Py_None; Py_INCREF(Py_None); - __pyx_v_10pyreadstat_16_readstat_parser__file_object_ctx = Py_None; Py_INCREF(Py_None); __Pyx_RefNannyFinishContext(); return 0; } @@ -21781,49 +21790,37 @@ __Pyx_RefNannySetupContext("PyInit__readstat_parser", 0); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - /* "pyreadstat/_readstat_parser.pyx":855 - * - * - * cdef object _file_object_ctx = None # <<<<<<<<<<<<<< - * - * cdef int pyobject_open_handler(const char *path, void *io_ctx) noexcept: -*/ - __Pyx_INCREF(Py_None); - __Pyx_XGOTREF(__pyx_v_10pyreadstat_16_readstat_parser__file_object_ctx); - __Pyx_DECREF_SET(__pyx_v_10pyreadstat_16_readstat_parser__file_object_ctx, Py_None); - __Pyx_GIVEREF(Py_None); - - /* "pyreadstat/_readstat_parser.pyx":1367 + /* "pyreadstat/_readstat_parser.pyx":1363 * metadataonly=False, dates_as_pandas_datetime=False, * formats_as_category=True, formats_as_ordered_category=False, str encoding=None, list usecols=None, user_missing=False, * disable_datetime_conversion=False, int row_limit=0, int row_offset=0, str output_format=None, list extra_datetime_formats=None, # <<<<<<<<<<<<<< * list extra_date_formats=None, list extra_time_formats=None): * */ - __pyx_t_6 = __Pyx_PyLong_From_int(((int)0)); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1367, __pyx_L1_error) + __pyx_t_6 = __Pyx_PyLong_From_int(((int)0)); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1363, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); - __pyx_t_2 = __Pyx_PyLong_From_int(((int)0)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1367, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(((int)0)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1363, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - /* "pyreadstat/_readstat_parser.pyx":1364 + /* "pyreadstat/_readstat_parser.pyx":1360 * return data_frame, metadata * * def parser_entry_point(filename_path, str parser_format=None, # <<<<<<<<<<<<<< * metadataonly=False, dates_as_pandas_datetime=False, * formats_as_category=True, formats_as_ordered_category=False, str encoding=None, list usecols=None, user_missing=False, */ - __pyx_t_7 = PyTuple_Pack(15, Py_None, ((PyObject*)Py_False), ((PyObject*)Py_False), ((PyObject*)Py_True), ((PyObject*)Py_False), Py_None, Py_None, ((PyObject*)Py_False), ((PyObject*)Py_False), __pyx_t_6, __pyx_t_2, Py_None, Py_None, Py_None, Py_None); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1364, __pyx_L1_error) + __pyx_t_7 = PyTuple_Pack(15, Py_None, ((PyObject*)Py_False), ((PyObject*)Py_False), ((PyObject*)Py_True), ((PyObject*)Py_False), Py_None, Py_None, ((PyObject*)Py_False), ((PyObject*)Py_False), __pyx_t_6, __pyx_t_2, Py_None, Py_None, Py_None, Py_None); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1360, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_10pyreadstat_16_readstat_parser_1parser_entry_point, 0, __pyx_mstate_global->__pyx_n_u_parser_entry_point, NULL, __pyx_mstate_global->__pyx_n_u_pyreadstat__readstat_parser, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[2])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1364, __pyx_L1_error) + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_10pyreadstat_16_readstat_parser_1parser_entry_point, 0, __pyx_mstate_global->__pyx_n_u_parser_entry_point, NULL, __pyx_mstate_global->__pyx_n_u_pyreadstat__readstat_parser, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[2])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1360, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_t_7); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_parser_entry_point, __pyx_t_2) < (0)) __PYX_ERR(0, 1364, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_parser_entry_point, __pyx_t_2) < (0)) __PYX_ERR(0, 1360, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* "pyreadstat/_readstat_parser.pyx":1 @@ -21877,9 +21874,9 @@ static int __Pyx_InitCachedBuiltins(__pyx_mstatetype *__pyx_mstate) { CYTHON_UNUSED_VAR(__pyx_mstate); __pyx_builtin_object = __Pyx_GetBuiltinName(__pyx_mstate->__pyx_n_u_object); if (!__pyx_builtin_object) __PYX_ERR(0, 80, __pyx_L1_error) __pyx_builtin_round = __Pyx_GetBuiltinName(__pyx_mstate->__pyx_n_u_round); if (!__pyx_builtin_round) __PYX_ERR(0, 256, __pyx_L1_error) - __pyx_builtin_all = __Pyx_GetBuiltinName(__pyx_mstate->__pyx_n_u_all); if (!__pyx_builtin_all) __PYX_ERR(0, 1074, __pyx_L1_error) - __pyx_builtin_enumerate = __Pyx_GetBuiltinName(__pyx_mstate->__pyx_n_u_enumerate); if (!__pyx_builtin_enumerate) __PYX_ERR(0, 1093, __pyx_L1_error) - __pyx_builtin_zip = __Pyx_GetBuiltinName(__pyx_mstate->__pyx_n_u_zip); if (!__pyx_builtin_zip) __PYX_ERR(0, 1201, __pyx_L1_error) + __pyx_builtin_all = __Pyx_GetBuiltinName(__pyx_mstate->__pyx_n_u_all); if (!__pyx_builtin_all) __PYX_ERR(0, 1070, __pyx_L1_error) + __pyx_builtin_enumerate = __Pyx_GetBuiltinName(__pyx_mstate->__pyx_n_u_enumerate); if (!__pyx_builtin_enumerate) __PYX_ERR(0, 1089, __pyx_L1_error) + __pyx_builtin_zip = __Pyx_GetBuiltinName(__pyx_mstate->__pyx_n_u_zip); if (!__pyx_builtin_zip) __PYX_ERR(0, 1197, __pyx_L1_error) /* Cached unbound methods */ __pyx_mstate->__pyx_umethod_PyDict_Type_get.type = (PyObject*)&PyDict_Type; @@ -21903,25 +21900,25 @@ static int __Pyx_InitCachedConstants(__pyx_mstatetype *__pyx_mstate) { CYTHON_UNUSED_VAR(__pyx_mstate); __Pyx_RefNannySetupContext("__Pyx_InitCachedConstants", 0); - /* "pyreadstat/_readstat_parser.pyx":1096 + /* "pyreadstat/_readstat_parser.pyx":1092 * var_format = dc.col_formats[index] * if dtypes[index] != '__pyx_slice[0] = PySlice_New(Py_None, Py_None, Py_None); if (unlikely(!__pyx_mstate_global->__pyx_slice[0])) __PYX_ERR(0, 1096, __pyx_L1_error) + __pyx_mstate_global->__pyx_slice[0] = PySlice_New(Py_None, Py_None, Py_None); if (unlikely(!__pyx_mstate_global->__pyx_slice[0])) __PYX_ERR(0, 1092, __pyx_L1_error) __Pyx_GOTREF(__pyx_mstate_global->__pyx_slice[0]); __Pyx_GIVEREF(__pyx_mstate_global->__pyx_slice[0]); - /* "pyreadstat/_readstat_parser.pyx":1251 + /* "pyreadstat/_readstat_parser.pyx":1247 * except UnicodeError: * warnings.warn("file path could not be encoded with %s which is set as your system encoding, trying to encode it as utf-8. Please set your system encoding correctly." % sys.getfilesystemencoding()) * filename_bytes = os.fsdecode(filename_path).encode("utf-8", "surrogateescape") # <<<<<<<<<<<<<< * else: * if type(filename_path) == str: */ - __pyx_mstate_global->__pyx_tuple[0] = PyTuple_Pack(2, __pyx_mstate_global->__pyx_kp_u_utf_8, __pyx_mstate_global->__pyx_n_u_surrogateescape); if (unlikely(!__pyx_mstate_global->__pyx_tuple[0])) __PYX_ERR(0, 1251, __pyx_L1_error) + __pyx_mstate_global->__pyx_tuple[0] = PyTuple_Pack(2, __pyx_mstate_global->__pyx_kp_u_utf_8, __pyx_mstate_global->__pyx_n_u_surrogateescape); if (unlikely(!__pyx_mstate_global->__pyx_tuple[0])) __PYX_ERR(0, 1247, __pyx_L1_error) __Pyx_GOTREF(__pyx_mstate_global->__pyx_tuple[0]); __Pyx_GIVEREF(__pyx_mstate_global->__pyx_tuple[0]); #if CYTHON_IMMORTAL_CONSTANTS @@ -22118,7 +22115,7 @@ static int __Pyx_CreateCodeObjects(__pyx_mstatetype *__pyx_mstate) { __pyx_mstate_global->__pyx_codeobj_tab[1] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_mstate->__pyx_kp_b_iso88591_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[1])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {16, 0, 0, 24, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1364}; + const __Pyx_PyCode_New_function_description descr = {16, 0, 0, 24, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1360}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_filename_path, __pyx_mstate->__pyx_n_u_parser_format, __pyx_mstate->__pyx_n_u_metadataonly, __pyx_mstate->__pyx_n_u_dates_as_pandas_datetime, __pyx_mstate->__pyx_n_u_formats_as_category, __pyx_mstate->__pyx_n_u_formats_as_ordered_category, __pyx_mstate->__pyx_n_u_encoding, __pyx_mstate->__pyx_n_u_usecols, __pyx_mstate->__pyx_n_u_user_missing, __pyx_mstate->__pyx_n_u_disable_datetime_conversion, __pyx_mstate->__pyx_n_u_row_limit, __pyx_mstate->__pyx_n_u_row_offset, __pyx_mstate->__pyx_n_u_output_format, __pyx_mstate->__pyx_n_u_extra_datetime_formats, __pyx_mstate->__pyx_n_u_extra_date_formats, __pyx_mstate->__pyx_n_u_extra_time_formats, __pyx_mstate->__pyx_n_u_file_format, __pyx_mstate->__pyx_n_u_file_extension, __pyx_mstate->__pyx_n_u_metaonly, __pyx_mstate->__pyx_n_u_dates_as_pandas, __pyx_mstate->__pyx_n_u_usernan, __pyx_mstate->__pyx_n_u_no_datetime_conversion, __pyx_mstate->__pyx_n_u_data_frame, __pyx_mstate->__pyx_n_u_metadata}; __pyx_mstate_global->__pyx_codeobj_tab[2] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_pyreadstat__readstat_parser_pyx, __pyx_mstate->__pyx_n_u_parser_entry_point, __pyx_mstate->__pyx_kp_b_iso88591_a_1_JJ_ppq_00AASSkkl_1_S_a_s_a, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[2])) goto bad; } diff --git a/pyreadstat/_readstat_writer.c b/pyreadstat/_readstat_writer.c index 4c41274..5d96d8f 100644 --- a/pyreadstat/_readstat_writer.c +++ b/pyreadstat/_readstat_writer.c @@ -2690,6 +2690,12 @@ static CYTHON_INLINE int __Pyx_PyLong_As_int(PyObject *); /* CIntToPy.proto */ static CYTHON_INLINE PyObject* __Pyx_PyLong_From_int(int value); +/* CIntFromPy.proto */ +static CYTHON_INLINE PY_LONG_LONG __Pyx_PyLong_As_PY_LONG_LONG(PyObject *); + +/* CIntToPy.proto */ +static CYTHON_INLINE PyObject* __Pyx_PyLong_From_PY_LONG_LONG(PY_LONG_LONG value); + /* CIntFromPy.proto */ static CYTHON_INLINE readstat_type_t __Pyx_PyLong_As_readstat_type_t(PyObject *); @@ -2924,7 +2930,7 @@ typedef struct { PyObject *__pyx_tuple[2]; PyObject *__pyx_codeobj_tab[1]; PyObject *__pyx_string_tab[225]; - PyObject *__pyx_number_tab[9]; + PyObject *__pyx_number_tab[10]; /* #### Code section: module_state_contents ### */ /* CommonTypesMetaclass.module_state_decls */ PyTypeObject *__pyx_CommonTypesMetaclassType; @@ -3195,10 +3201,11 @@ static __pyx_mstatetype * const __pyx_mstate_global = &__pyx_mstate_global_stati #define __pyx_float_1e9 __pyx_number_tab[2] #define __pyx_int_0 __pyx_number_tab[3] #define __pyx_int_1 __pyx_number_tab[4] -#define __pyx_int_65 __pyx_number_tab[5] -#define __pyx_int_97 __pyx_number_tab[6] -#define __pyx_int_1970 __pyx_number_tab[7] -#define __pyx_int_neg_9223372036854775808 __pyx_number_tab[8] +#define __pyx_int_9 __pyx_number_tab[5] +#define __pyx_int_65 __pyx_number_tab[6] +#define __pyx_int_97 __pyx_number_tab[7] +#define __pyx_int_1970 __pyx_number_tab[8] +#define __pyx_int_neg_9223372036854775808 __pyx_number_tab[9] /* #### Code section: module_state_clear ### */ #if CYTHON_USE_MODULE_STATE static CYTHON_SMALL_CODE int __pyx_m_clear(PyObject *m) { @@ -3217,7 +3224,7 @@ static CYTHON_SMALL_CODE int __pyx_m_clear(PyObject *m) { for (int i=0; i<2; ++i) { Py_CLEAR(clear_module_state->__pyx_tuple[i]); } for (int i=0; i<1; ++i) { Py_CLEAR(clear_module_state->__pyx_codeobj_tab[i]); } for (int i=0; i<225; ++i) { Py_CLEAR(clear_module_state->__pyx_string_tab[i]); } - for (int i=0; i<9; ++i) { Py_CLEAR(clear_module_state->__pyx_number_tab[i]); } + for (int i=0; i<10; ++i) { Py_CLEAR(clear_module_state->__pyx_number_tab[i]); } /* #### Code section: module_state_clear_contents ### */ /* CommonTypesMetaclass.module_state_clear */ Py_CLEAR(clear_module_state->__pyx_CommonTypesMetaclassType); @@ -3244,7 +3251,7 @@ static CYTHON_SMALL_CODE int __pyx_m_traverse(PyObject *m, visitproc visit, void for (int i=0; i<2; ++i) { __Pyx_VISIT_CONST(traverse_module_state->__pyx_tuple[i]); } for (int i=0; i<1; ++i) { __Pyx_VISIT_CONST(traverse_module_state->__pyx_codeobj_tab[i]); } for (int i=0; i<225; ++i) { __Pyx_VISIT_CONST(traverse_module_state->__pyx_string_tab[i]); } - for (int i=0; i<9; ++i) { __Pyx_VISIT_CONST(traverse_module_state->__pyx_number_tab[i]); } + for (int i=0; i<10; ++i) { __Pyx_VISIT_CONST(traverse_module_state->__pyx_number_tab[i]); } /* #### Code section: module_state_traverse_contents ### */ /* CommonTypesMetaclass.module_state_traverse */ Py_VISIT(traverse_module_state->__pyx_CommonTypesMetaclassType); @@ -3268,11 +3275,13 @@ return 0; static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_vectorized_convert_datetime_to_number(PyObject *__pyx_v_df, __pyx_t_10pyreadstat_16_readstat_writer_dst_file_format __pyx_v_file_format, PyObject *__pyx_v_pywriter_types, PyObject *__pyx_v_pywriter_timeunits, int __pyx_v_col_count) { PyObject *__pyx_v_convfacs = 0; - double __pyx_v_offset_secs; - double __pyx_v_mulfac; + PY_LONG_LONG __pyx_v_offset_secs; + int __pyx_v_mulfac; int __pyx_v_col_indx; PyObject *__pyx_v_col_indxs = 0; - double __pyx_v_convfac; + int __pyx_v_convfac; + PyObject *__pyx_v_whole = NULL; + PyObject *__pyx_v_frac = NULL; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_t_1; @@ -3290,11 +3299,10 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_vectorized_convert_date PyObject *__pyx_t_13 = NULL; size_t __pyx_t_14; Py_ssize_t __pyx_t_15; - double __pyx_t_16; + PyObject *__pyx_t_16 = NULL; PyObject *__pyx_t_17 = NULL; PyObject *__pyx_t_18 = NULL; PyObject *__pyx_t_19 = NULL; - PyObject *__pyx_t_20 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -3303,18 +3311,18 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_vectorized_convert_date /* "pyreadstat/_readstat_writer.pyx":69 * cdef dict convfacs - * cdef double offset_secs - * cdef double mulfac = 1.0 # <<<<<<<<<<<<<< + * cdef long long offset_secs + * cdef int mulfac = 1 # <<<<<<<<<<<<<< * cdef int col_indx * cdef list col_indxs */ - __pyx_v_mulfac = 1.0; + __pyx_v_mulfac = 1; /* "pyreadstat/_readstat_writer.pyx":74 - * cdef double convfac + * cdef int convfac * * if file_format == FILE_FORMAT_SAV or file_format == FILE_FORMAT_POR: # <<<<<<<<<<<<<< - * offset_secs = spss_offset_secs + * offset_secs = int(spss_offset_secs) * else: */ switch (__pyx_v_file_format) { @@ -3324,39 +3332,39 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_vectorized_convert_date /* "pyreadstat/_readstat_writer.pyx":75 * * if file_format == FILE_FORMAT_SAV or file_format == FILE_FORMAT_POR: - * offset_secs = spss_offset_secs # <<<<<<<<<<<<<< + * offset_secs = int(spss_offset_secs) # <<<<<<<<<<<<<< * else: - * offset_secs = sas_offset_secs + * offset_secs = int(sas_offset_secs) */ - __pyx_v_offset_secs = __pyx_v_10pyreadstat_16_readstat_writer_spss_offset_secs; + __pyx_v_offset_secs = ((PY_LONG_LONG)__pyx_v_10pyreadstat_16_readstat_writer_spss_offset_secs); /* "pyreadstat/_readstat_writer.pyx":74 - * cdef double convfac + * cdef int convfac * * if file_format == FILE_FORMAT_SAV or file_format == FILE_FORMAT_POR: # <<<<<<<<<<<<<< - * offset_secs = spss_offset_secs + * offset_secs = int(spss_offset_secs) * else: */ break; default: /* "pyreadstat/_readstat_writer.pyx":77 - * offset_secs = spss_offset_secs + * offset_secs = int(spss_offset_secs) * else: - * offset_secs = sas_offset_secs # <<<<<<<<<<<<<< + * offset_secs = int(sas_offset_secs) # <<<<<<<<<<<<<< * if file_format == FILE_FORMAT_DTA: * # stata stores in milliseconds */ - __pyx_v_offset_secs = __pyx_v_10pyreadstat_16_readstat_writer_sas_offset_secs; + __pyx_v_offset_secs = ((PY_LONG_LONG)__pyx_v_10pyreadstat_16_readstat_writer_sas_offset_secs); break; } /* "pyreadstat/_readstat_writer.pyx":78 * else: - * offset_secs = sas_offset_secs + * offset_secs = int(sas_offset_secs) * if file_format == FILE_FORMAT_DTA: # <<<<<<<<<<<<<< * # stata stores in milliseconds - * mulfac = 1000.0 + * mulfac = 1000 */ __pyx_t_1 = (__pyx_v_file_format == __pyx_e_10pyreadstat_16_readstat_writer_FILE_FORMAT_DTA); if (__pyx_t_1) { @@ -3364,24 +3372,24 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_vectorized_convert_date /* "pyreadstat/_readstat_writer.pyx":80 * if file_format == FILE_FORMAT_DTA: * # stata stores in milliseconds - * mulfac = 1000.0 # <<<<<<<<<<<<<< + * mulfac = 1000 # <<<<<<<<<<<<<< * convfacs = {'ns': 1e9, 'us': 1e6, 'ms': 1e3} * */ - __pyx_v_mulfac = 1000.0; + __pyx_v_mulfac = 0x3E8; /* "pyreadstat/_readstat_writer.pyx":78 * else: - * offset_secs = sas_offset_secs + * offset_secs = int(sas_offset_secs) * if file_format == FILE_FORMAT_DTA: # <<<<<<<<<<<<<< * # stata stores in milliseconds - * mulfac = 1000.0 + * mulfac = 1000 */ } /* "pyreadstat/_readstat_writer.pyx":81 * # stata stores in milliseconds - * mulfac = 1000.0 + * mulfac = 1000 * convfacs = {'ns': 1e9, 'us': 1e6, 'ms': 1e3} # <<<<<<<<<<<<<< * * col_indxs = list() @@ -3531,7 +3539,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_vectorized_convert_date * df = df.with_columns(nw.nth(col_indxs).cast(nw.Int64)) * for col_indx in col_indxs: # <<<<<<<<<<<<<< * convfac = convfacs[pywriter_timeunits[col_indx]] - * df = df.with_columns(nw.when(nw.nth(col_indx)!=-9223372036854775808).then(nw.nth(col_indx))) + * whole = nw.nth(col_indx) // convfac + offset_secs */ __pyx_t_7 = __pyx_v_col_indxs; __Pyx_INCREF(__pyx_t_7); __pyx_t_15 = 0; @@ -3555,8 +3563,8 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_vectorized_convert_date * df = df.with_columns(nw.nth(col_indxs).cast(nw.Int64)) * for col_indx in col_indxs: * convfac = convfacs[pywriter_timeunits[col_indx]] # <<<<<<<<<<<<<< - * df = df.with_columns(nw.when(nw.nth(col_indx)!=-9223372036854775808).then(nw.nth(col_indx))) - * df = df.with_columns((((nw.nth(col_indx).cast(nw.Float64))/convfac) + offset_secs).round() * mulfac) + * whole = nw.nth(col_indx) // convfac + offset_secs + * frac = nw.nth(col_indx) % convfac */ if (unlikely(__pyx_v_pywriter_timeunits == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); @@ -3567,239 +3575,272 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_vectorized_convert_date __pyx_t_6 = __Pyx_PyDict_GetItem(__pyx_v_convfacs, __pyx_t_2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 90, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_16 = __Pyx_PyFloat_AsDouble(__pyx_t_6); if (unlikely((__pyx_t_16 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 90, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyLong_As_int(__pyx_t_6); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 90, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __pyx_v_convfac = __pyx_t_16; + __pyx_v_convfac = __pyx_t_3; /* "pyreadstat/_readstat_writer.pyx":91 * for col_indx in col_indxs: * convfac = convfacs[pywriter_timeunits[col_indx]] - * df = df.with_columns(nw.when(nw.nth(col_indx)!=-9223372036854775808).then(nw.nth(col_indx))) # <<<<<<<<<<<<<< - * df = df.with_columns((((nw.nth(col_indx).cast(nw.Float64))/convfac) + offset_secs).round() * mulfac) - * return df + * whole = nw.nth(col_indx) // convfac + offset_secs # <<<<<<<<<<<<<< + * frac = nw.nth(col_indx) % convfac + * df = df.with_columns(nw.when(nw.nth(col_indx)!=-9223372036854775808).then( */ - __pyx_t_2 = __pyx_v_df; - __Pyx_INCREF(__pyx_t_2); - __pyx_t_13 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_12, __pyx_mstate_global->__pyx_n_u_nw); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 91, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_12); - __pyx_t_17 = __Pyx_PyObject_GetAttrStr(__pyx_t_12, __pyx_mstate_global->__pyx_n_u_when); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 91, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_17); - __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - __pyx_t_18 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_19, __pyx_mstate_global->__pyx_n_u_nw); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 91, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_19); - __pyx_t_20 = __Pyx_PyObject_GetAttrStr(__pyx_t_19, __pyx_mstate_global->__pyx_n_u_nth); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 91, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_20); - __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; - __pyx_t_19 = __Pyx_PyLong_From_int(__pyx_v_col_indx); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 91, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_19); - __pyx_t_14 = 1; - #if CYTHON_UNPACK_METHODS - if (unlikely(PyMethod_Check(__pyx_t_20))) { - __pyx_t_18 = PyMethod_GET_SELF(__pyx_t_20); - assert(__pyx_t_18); - PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_20); - __Pyx_INCREF(__pyx_t_18); - __Pyx_INCREF(__pyx__function); - __Pyx_DECREF_SET(__pyx_t_20, __pyx__function); - __pyx_t_14 = 0; - } - #endif - { - PyObject *__pyx_callargs[2] = {__pyx_t_18, __pyx_t_19}; - __pyx_t_12 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_20, __pyx_callargs+__pyx_t_14, (2-__pyx_t_14) | (__pyx_t_14*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_18); __pyx_t_18 = 0; - __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; - __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0; - if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 91, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_12); - } - __pyx_t_20 = PyObject_RichCompare(__pyx_t_12, __pyx_mstate_global->__pyx_int_neg_9223372036854775808, Py_NE); __Pyx_XGOTREF(__pyx_t_20); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 91, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; + __pyx_t_2 = NULL; + __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_mstate_global->__pyx_n_u_nw); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 91, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_10); + __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_mstate_global->__pyx_n_u_nth); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 91, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_11); + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + __pyx_t_10 = __Pyx_PyLong_From_int(__pyx_v_col_indx); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 91, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_10); __pyx_t_14 = 1; #if CYTHON_UNPACK_METHODS - if (unlikely(PyMethod_Check(__pyx_t_17))) { - __pyx_t_13 = PyMethod_GET_SELF(__pyx_t_17); - assert(__pyx_t_13); - PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_17); - __Pyx_INCREF(__pyx_t_13); + if (unlikely(PyMethod_Check(__pyx_t_11))) { + __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_11); + assert(__pyx_t_2); + PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_11); + __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(__pyx__function); - __Pyx_DECREF_SET(__pyx_t_17, __pyx__function); + __Pyx_DECREF_SET(__pyx_t_11, __pyx__function); __pyx_t_14 = 0; } #endif { - PyObject *__pyx_callargs[2] = {__pyx_t_13, __pyx_t_20}; - __pyx_t_9 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_17, __pyx_callargs+__pyx_t_14, (2-__pyx_t_14) | (__pyx_t_14*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0; - __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0; - __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0; - if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 91, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_10}; + __pyx_t_6 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_11, __pyx_callargs+__pyx_t_14, (2-__pyx_t_14) | (__pyx_t_14*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; + if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 91, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); } - __pyx_t_11 = __pyx_t_9; - __Pyx_INCREF(__pyx_t_11); - __pyx_t_20 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_13, __pyx_mstate_global->__pyx_n_u_nw); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 91, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_13); - __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_t_13, __pyx_mstate_global->__pyx_n_u_nth); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 91, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_12); - __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; - __pyx_t_13 = __Pyx_PyLong_From_int(__pyx_v_col_indx); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 91, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_13); + __pyx_t_11 = __Pyx_PyLong_From_int(__pyx_v_convfac); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 91, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_11); + __pyx_t_10 = PyNumber_FloorDivide(__pyx_t_6, __pyx_t_11); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 91, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_10); + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; + __pyx_t_11 = __Pyx_PyLong_From_PY_LONG_LONG(__pyx_v_offset_secs); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 91, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_11); + __pyx_t_6 = PyNumber_Add(__pyx_t_10, __pyx_t_11); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 91, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; + __Pyx_XDECREF_SET(__pyx_v_whole, __pyx_t_6); + __pyx_t_6 = 0; + + /* "pyreadstat/_readstat_writer.pyx":92 + * convfac = convfacs[pywriter_timeunits[col_indx]] + * whole = nw.nth(col_indx) // convfac + offset_secs + * frac = nw.nth(col_indx) % convfac # <<<<<<<<<<<<<< + * df = df.with_columns(nw.when(nw.nth(col_indx)!=-9223372036854775808).then( + * (whole.cast(nw.Float64) * mulfac + frac.cast(nw.Float64) / convfac * mulfac))) +*/ + __pyx_t_11 = NULL; + __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_mstate_global->__pyx_n_u_nw); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 92, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_10); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_mstate_global->__pyx_n_u_nth); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 92, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + __pyx_t_10 = __Pyx_PyLong_From_int(__pyx_v_col_indx); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 92, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_10); __pyx_t_14 = 1; #if CYTHON_UNPACK_METHODS - if (unlikely(PyMethod_Check(__pyx_t_12))) { - __pyx_t_20 = PyMethod_GET_SELF(__pyx_t_12); - assert(__pyx_t_20); - PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_12); - __Pyx_INCREF(__pyx_t_20); + if (unlikely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_11 = PyMethod_GET_SELF(__pyx_t_2); + assert(__pyx_t_11); + PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_11); __Pyx_INCREF(__pyx__function); - __Pyx_DECREF_SET(__pyx_t_12, __pyx__function); + __Pyx_DECREF_SET(__pyx_t_2, __pyx__function); __pyx_t_14 = 0; } #endif { - PyObject *__pyx_callargs[2] = {__pyx_t_20, __pyx_t_13}; - __pyx_t_17 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_12, __pyx_callargs+__pyx_t_14, (2-__pyx_t_14) | (__pyx_t_14*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_20); __pyx_t_20 = 0; - __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; - __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 91, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_17); - } - __pyx_t_14 = 0; - { - PyObject *__pyx_callargs[2] = {__pyx_t_11, __pyx_t_17}; - __pyx_t_10 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_then, __pyx_callargs+__pyx_t_14, (2-__pyx_t_14) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + PyObject *__pyx_callargs[2] = {__pyx_t_11, __pyx_t_10}; + __pyx_t_6 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_2, __pyx_callargs+__pyx_t_14, (2-__pyx_t_14) | (__pyx_t_14*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0; - __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0; - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 91, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_10); - } - __pyx_t_14 = 0; - { - PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_10}; - __pyx_t_6 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_with_columns, __pyx_callargs+__pyx_t_14, (2-__pyx_t_14) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 91, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 92, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); } - __Pyx_DECREF_SET(__pyx_v_df, __pyx_t_6); - __pyx_t_6 = 0; - - /* "pyreadstat/_readstat_writer.pyx":92 - * convfac = convfacs[pywriter_timeunits[col_indx]] - * df = df.with_columns(nw.when(nw.nth(col_indx)!=-9223372036854775808).then(nw.nth(col_indx))) - * df = df.with_columns((((nw.nth(col_indx).cast(nw.Float64))/convfac) + offset_secs).round() * mulfac) # <<<<<<<<<<<<<< + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_convfac); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 92, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_10 = PyNumber_Remainder(__pyx_t_6, __pyx_t_2); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 92, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_10); + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_XDECREF_SET(__pyx_v_frac, __pyx_t_10); + __pyx_t_10 = 0; + + /* "pyreadstat/_readstat_writer.pyx":93 + * whole = nw.nth(col_indx) // convfac + offset_secs + * frac = nw.nth(col_indx) % convfac + * df = df.with_columns(nw.when(nw.nth(col_indx)!=-9223372036854775808).then( # <<<<<<<<<<<<<< + * (whole.cast(nw.Float64) * mulfac + frac.cast(nw.Float64) / convfac * mulfac))) * return df - * */ - __pyx_t_10 = __pyx_v_df; - __Pyx_INCREF(__pyx_t_10); + __pyx_t_2 = __pyx_v_df; + __Pyx_INCREF(__pyx_t_2); __pyx_t_13 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_20, __pyx_mstate_global->__pyx_n_u_nw); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 92, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_20); - __pyx_t_19 = __Pyx_PyObject_GetAttrStr(__pyx_t_20, __pyx_mstate_global->__pyx_n_u_nth); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 92, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_12, __pyx_mstate_global->__pyx_n_u_nw); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 93, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_12); + __pyx_t_16 = __Pyx_PyObject_GetAttrStr(__pyx_t_12, __pyx_mstate_global->__pyx_n_u_when); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 93, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_16); + __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; + __pyx_t_17 = NULL; + __Pyx_GetModuleGlobalName(__pyx_t_18, __pyx_mstate_global->__pyx_n_u_nw); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 93, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_18); + __pyx_t_19 = __Pyx_PyObject_GetAttrStr(__pyx_t_18, __pyx_mstate_global->__pyx_n_u_nth); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 93, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_19); - __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0; - __pyx_t_20 = __Pyx_PyLong_From_int(__pyx_v_col_indx); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 92, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_20); + __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; + __pyx_t_18 = __Pyx_PyLong_From_int(__pyx_v_col_indx); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 93, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_18); __pyx_t_14 = 1; #if CYTHON_UNPACK_METHODS if (unlikely(PyMethod_Check(__pyx_t_19))) { - __pyx_t_13 = PyMethod_GET_SELF(__pyx_t_19); - assert(__pyx_t_13); + __pyx_t_17 = PyMethod_GET_SELF(__pyx_t_19); + assert(__pyx_t_17); PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_19); - __Pyx_INCREF(__pyx_t_13); + __Pyx_INCREF(__pyx_t_17); __Pyx_INCREF(__pyx__function); __Pyx_DECREF_SET(__pyx_t_19, __pyx__function); __pyx_t_14 = 0; } #endif { - PyObject *__pyx_callargs[2] = {__pyx_t_13, __pyx_t_20}; + PyObject *__pyx_callargs[2] = {__pyx_t_17, __pyx_t_18}; __pyx_t_12 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_19, __pyx_callargs+__pyx_t_14, (2-__pyx_t_14) | (__pyx_t_14*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0; - __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0; + __Pyx_XDECREF(__pyx_t_17); __pyx_t_17 = 0; + __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; - if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 92, __pyx_L1_error) + if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 93, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); } - __pyx_t_11 = __pyx_t_12; + __pyx_t_19 = PyObject_RichCompare(__pyx_t_12, __pyx_mstate_global->__pyx_int_neg_9223372036854775808, Py_NE); __Pyx_XGOTREF(__pyx_t_19); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 93, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; + __pyx_t_14 = 1; + #if CYTHON_UNPACK_METHODS + if (unlikely(PyMethod_Check(__pyx_t_16))) { + __pyx_t_13 = PyMethod_GET_SELF(__pyx_t_16); + assert(__pyx_t_13); + PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_16); + __Pyx_INCREF(__pyx_t_13); + __Pyx_INCREF(__pyx__function); + __Pyx_DECREF_SET(__pyx_t_16, __pyx__function); + __pyx_t_14 = 0; + } + #endif + { + PyObject *__pyx_callargs[2] = {__pyx_t_13, __pyx_t_19}; + __pyx_t_9 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_16, __pyx_callargs+__pyx_t_14, (2-__pyx_t_14) | (__pyx_t_14*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0; + __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; + __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; + if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 93, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + } + __pyx_t_11 = __pyx_t_9; __Pyx_INCREF(__pyx_t_11); - __Pyx_GetModuleGlobalName(__pyx_t_19, __pyx_mstate_global->__pyx_n_u_nw); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 92, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_19); - __pyx_t_20 = __Pyx_PyObject_GetAttrStr(__pyx_t_19, __pyx_mstate_global->__pyx_n_u_Float64); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 92, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_20); - __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; + + /* "pyreadstat/_readstat_writer.pyx":94 + * frac = nw.nth(col_indx) % convfac + * df = df.with_columns(nw.when(nw.nth(col_indx)!=-9223372036854775808).then( + * (whole.cast(nw.Float64) * mulfac + frac.cast(nw.Float64) / convfac * mulfac))) # <<<<<<<<<<<<<< + * return df + * +*/ + __pyx_t_19 = __pyx_v_whole; + __Pyx_INCREF(__pyx_t_19); + __Pyx_GetModuleGlobalName(__pyx_t_13, __pyx_mstate_global->__pyx_n_u_nw); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 94, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); + __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_t_13, __pyx_mstate_global->__pyx_n_u_Float64); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 94, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_12); + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; __pyx_t_14 = 0; { - PyObject *__pyx_callargs[2] = {__pyx_t_11, __pyx_t_20}; - __pyx_t_17 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_cast, __pyx_callargs+__pyx_t_14, (2-__pyx_t_14) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0; - __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0; + PyObject *__pyx_callargs[2] = {__pyx_t_19, __pyx_t_12}; + __pyx_t_16 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_cast, __pyx_callargs+__pyx_t_14, (2-__pyx_t_14) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_19); __pyx_t_19 = 0; __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 92, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_17); + if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 94, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_16); } - __pyx_t_12 = PyFloat_FromDouble(__pyx_v_convfac); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 92, __pyx_L1_error) + __pyx_t_12 = __Pyx_PyLong_From_int(__pyx_v_mulfac); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 94, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); - __pyx_t_20 = __Pyx_PyNumber_Divide(__pyx_t_17, __pyx_t_12); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 92, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_20); - __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0; - __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - __pyx_t_12 = PyFloat_FromDouble(__pyx_v_offset_secs); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 92, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_12); - __pyx_t_17 = PyNumber_Add(__pyx_t_20, __pyx_t_12); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 92, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_17); - __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0; + __pyx_t_19 = PyNumber_Multiply(__pyx_t_16, __pyx_t_12); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 94, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_19); + __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - __pyx_t_9 = __pyx_t_17; - __Pyx_INCREF(__pyx_t_9); + __pyx_t_16 = __pyx_v_frac; + __Pyx_INCREF(__pyx_t_16); + __Pyx_GetModuleGlobalName(__pyx_t_13, __pyx_mstate_global->__pyx_n_u_nw); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 94, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); + __pyx_t_18 = __Pyx_PyObject_GetAttrStr(__pyx_t_13, __pyx_mstate_global->__pyx_n_u_Float64); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 94, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_18); + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; __pyx_t_14 = 0; { - PyObject *__pyx_callargs[2] = {__pyx_t_9, NULL}; - __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_round, __pyx_callargs+__pyx_t_14, (1-__pyx_t_14) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 92, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + PyObject *__pyx_callargs[2] = {__pyx_t_16, __pyx_t_18}; + __pyx_t_12 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_cast, __pyx_callargs+__pyx_t_14, (2-__pyx_t_14) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_16); __pyx_t_16 = 0; + __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; + if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 94, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_12); } - __pyx_t_17 = PyFloat_FromDouble(__pyx_v_mulfac); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 92, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_17); - __pyx_t_9 = PyNumber_Multiply(__pyx_t_2, __pyx_t_17); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 92, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0; + __pyx_t_18 = __Pyx_PyLong_From_int(__pyx_v_convfac); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 94, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_18); + __pyx_t_16 = __Pyx_PyNumber_Divide(__pyx_t_12, __pyx_t_18); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 94, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_16); + __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; + __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; + __pyx_t_18 = __Pyx_PyLong_From_int(__pyx_v_mulfac); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 94, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_18); + __pyx_t_12 = PyNumber_Multiply(__pyx_t_16, __pyx_t_18); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 94, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_12); + __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; + __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; + __pyx_t_18 = PyNumber_Add(__pyx_t_19, __pyx_t_12); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 94, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_18); + __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; + __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __pyx_t_14 = 0; { - PyObject *__pyx_callargs[2] = {__pyx_t_10, __pyx_t_9}; - __pyx_t_6 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_with_columns, __pyx_callargs+__pyx_t_14, (2-__pyx_t_14) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; + PyObject *__pyx_callargs[2] = {__pyx_t_11, __pyx_t_18}; + __pyx_t_6 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_then, __pyx_callargs+__pyx_t_14, (2-__pyx_t_14) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0; + __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 92, __pyx_L1_error) + if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 93, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); } - __Pyx_DECREF_SET(__pyx_v_df, __pyx_t_6); - __pyx_t_6 = 0; + __pyx_t_14 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_6}; + __pyx_t_10 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_with_columns, __pyx_callargs+__pyx_t_14, (2-__pyx_t_14) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 93, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_10); + } + __Pyx_DECREF_SET(__pyx_v_df, __pyx_t_10); + __pyx_t_10 = 0; /* "pyreadstat/_readstat_writer.pyx":89 * * df = df.with_columns(nw.nth(col_indxs).cast(nw.Int64)) * for col_indx in col_indxs: # <<<<<<<<<<<<<< * convfac = convfacs[pywriter_timeunits[col_indx]] - * df = df.with_columns(nw.when(nw.nth(col_indx)!=-9223372036854775808).then(nw.nth(col_indx))) + * whole = nw.nth(col_indx) // convfac + offset_secs */ } __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - /* "pyreadstat/_readstat_writer.pyx":93 - * df = df.with_columns(nw.when(nw.nth(col_indx)!=-9223372036854775808).then(nw.nth(col_indx))) - * df = df.with_columns((((nw.nth(col_indx).cast(nw.Float64))/convfac) + offset_secs).round() * mulfac) + /* "pyreadstat/_readstat_writer.pyx":95 + * df = df.with_columns(nw.when(nw.nth(col_indx)!=-9223372036854775808).then( + * (whole.cast(nw.Float64) * mulfac + frac.cast(nw.Float64) / convfac * mulfac))) * return df # <<<<<<<<<<<<<< * * @@ -3827,22 +3868,24 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_vectorized_convert_date __Pyx_XDECREF(__pyx_t_11); __Pyx_XDECREF(__pyx_t_12); __Pyx_XDECREF(__pyx_t_13); + __Pyx_XDECREF(__pyx_t_16); __Pyx_XDECREF(__pyx_t_17); __Pyx_XDECREF(__pyx_t_18); __Pyx_XDECREF(__pyx_t_19); - __Pyx_XDECREF(__pyx_t_20); __Pyx_AddTraceback("pyreadstat._readstat_writer.vectorized_convert_datetime_to_number", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XDECREF(__pyx_v_convfacs); __Pyx_XDECREF(__pyx_v_col_indxs); + __Pyx_XDECREF(__pyx_v_whole); + __Pyx_XDECREF(__pyx_v_frac); __Pyx_XDECREF(__pyx_v_df); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } -/* "pyreadstat/_readstat_writer.pyx":96 +/* "pyreadstat/_readstat_writer.pyx":98 * * * cdef object vectorized_convert_date_to_number(object df, dst_file_format file_format, list pywriter_types, int col_count): # <<<<<<<<<<<<<< @@ -3882,7 +3925,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_vectorized_convert_date __Pyx_RefNannySetupContext("vectorized_convert_date_to_number", 0); __Pyx_INCREF(__pyx_v_df); - /* "pyreadstat/_readstat_writer.pyx":101 + /* "pyreadstat/_readstat_writer.pyx":103 * """ * cdef double offset_days * cdef double mulfac = 1.0 # <<<<<<<<<<<<<< @@ -3891,7 +3934,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_vectorized_convert_date */ __pyx_v_mulfac = 1.0; - /* "pyreadstat/_readstat_writer.pyx":105 + /* "pyreadstat/_readstat_writer.pyx":107 * cdef list col_indxs * * if file_format == FILE_FORMAT_SAV or file_format == FILE_FORMAT_POR: # <<<<<<<<<<<<<< @@ -3902,7 +3945,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_vectorized_convert_date case __pyx_e_10pyreadstat_16_readstat_writer_FILE_FORMAT_SAV: case __pyx_e_10pyreadstat_16_readstat_writer_FILE_FORMAT_POR: - /* "pyreadstat/_readstat_writer.pyx":106 + /* "pyreadstat/_readstat_writer.pyx":108 * * if file_format == FILE_FORMAT_SAV or file_format == FILE_FORMAT_POR: * offset_days = spss_offset_days # <<<<<<<<<<<<<< @@ -3911,7 +3954,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_vectorized_convert_date */ __pyx_v_offset_days = __pyx_v_10pyreadstat_16_readstat_writer_spss_offset_days; - /* "pyreadstat/_readstat_writer.pyx":108 + /* "pyreadstat/_readstat_writer.pyx":110 * offset_days = spss_offset_days * # spss stores in seconds * mulfac = 86400 # <<<<<<<<<<<<<< @@ -3920,7 +3963,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_vectorized_convert_date */ __pyx_v_mulfac = 86400.0; - /* "pyreadstat/_readstat_writer.pyx":105 + /* "pyreadstat/_readstat_writer.pyx":107 * cdef list col_indxs * * if file_format == FILE_FORMAT_SAV or file_format == FILE_FORMAT_POR: # <<<<<<<<<<<<<< @@ -3930,7 +3973,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_vectorized_convert_date break; default: - /* "pyreadstat/_readstat_writer.pyx":110 + /* "pyreadstat/_readstat_writer.pyx":112 * mulfac = 86400 * else: * offset_days = sas_offset_days # <<<<<<<<<<<<<< @@ -3941,19 +3984,19 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_vectorized_convert_date break; } - /* "pyreadstat/_readstat_writer.pyx":111 + /* "pyreadstat/_readstat_writer.pyx":113 * else: * offset_days = sas_offset_days * col_indxs = list() # <<<<<<<<<<<<<< * for col_indx in range(col_count): * if pywriter_types[col_indx] == PYWRITER_DATE64: */ - __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 111, __pyx_L1_error) + __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 113, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_col_indxs = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - /* "pyreadstat/_readstat_writer.pyx":112 + /* "pyreadstat/_readstat_writer.pyx":114 * offset_days = sas_offset_days * col_indxs = list() * for col_indx in range(col_count): # <<<<<<<<<<<<<< @@ -3965,7 +4008,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_vectorized_convert_date for (__pyx_t_4 = 0; __pyx_t_4 < __pyx_t_3; __pyx_t_4+=1) { __pyx_v_col_indx = __pyx_t_4; - /* "pyreadstat/_readstat_writer.pyx":113 + /* "pyreadstat/_readstat_writer.pyx":115 * col_indxs = list() * for col_indx in range(col_count): * if pywriter_types[col_indx] == PYWRITER_DATE64: # <<<<<<<<<<<<<< @@ -3974,32 +4017,32 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_vectorized_convert_date */ if (unlikely(__pyx_v_pywriter_types == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 113, __pyx_L1_error) + __PYX_ERR(0, 115, __pyx_L1_error) } - __pyx_t_1 = __Pyx_GetItemInt_List(__pyx_v_pywriter_types, __pyx_v_col_indx, int, 1, __Pyx_PyLong_From_int, 1, 1, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 113, __pyx_L1_error) + __pyx_t_1 = __Pyx_GetItemInt_List(__pyx_v_pywriter_types, __pyx_v_col_indx, int, 1, __Pyx_PyLong_From_int, 1, 1, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 115, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_5 = __Pyx_PyLong_From___pyx_t_10pyreadstat_16_readstat_writer_pywriter_variable_type(__pyx_e_10pyreadstat_16_readstat_writer_PYWRITER_DATE64); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 113, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyLong_From___pyx_t_10pyreadstat_16_readstat_writer_pywriter_variable_type(__pyx_e_10pyreadstat_16_readstat_writer_PYWRITER_DATE64); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 115, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); - __pyx_t_6 = PyObject_RichCompare(__pyx_t_1, __pyx_t_5, Py_EQ); __Pyx_XGOTREF(__pyx_t_6); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 113, __pyx_L1_error) + __pyx_t_6 = PyObject_RichCompare(__pyx_t_1, __pyx_t_5, Py_EQ); __Pyx_XGOTREF(__pyx_t_6); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 115, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely((__pyx_t_7 < 0))) __PYX_ERR(0, 113, __pyx_L1_error) + __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely((__pyx_t_7 < 0))) __PYX_ERR(0, 115, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (__pyx_t_7) { - /* "pyreadstat/_readstat_writer.pyx":114 + /* "pyreadstat/_readstat_writer.pyx":116 * for col_indx in range(col_count): * if pywriter_types[col_indx] == PYWRITER_DATE64: * col_indxs.append(col_indx) # <<<<<<<<<<<<<< * * df = df.with_columns(nw.nth(col_indxs).cast(nw.Int64)) */ - __pyx_t_6 = __Pyx_PyLong_From_int(__pyx_v_col_indx); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 114, __pyx_L1_error) + __pyx_t_6 = __Pyx_PyLong_From_int(__pyx_v_col_indx); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 116, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); - __pyx_t_8 = __Pyx_PyList_Append(__pyx_v_col_indxs, __pyx_t_6); if (unlikely(__pyx_t_8 == ((int)-1))) __PYX_ERR(0, 114, __pyx_L1_error) + __pyx_t_8 = __Pyx_PyList_Append(__pyx_v_col_indxs, __pyx_t_6); if (unlikely(__pyx_t_8 == ((int)-1))) __PYX_ERR(0, 116, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - /* "pyreadstat/_readstat_writer.pyx":113 + /* "pyreadstat/_readstat_writer.pyx":115 * col_indxs = list() * for col_indx in range(col_count): * if pywriter_types[col_indx] == PYWRITER_DATE64: # <<<<<<<<<<<<<< @@ -4009,7 +4052,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_vectorized_convert_date } } - /* "pyreadstat/_readstat_writer.pyx":116 + /* "pyreadstat/_readstat_writer.pyx":118 * col_indxs.append(col_indx) * * df = df.with_columns(nw.nth(col_indxs).cast(nw.Int64)) # <<<<<<<<<<<<<< @@ -4019,9 +4062,9 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_vectorized_convert_date __pyx_t_5 = __pyx_v_df; __Pyx_INCREF(__pyx_t_5); __pyx_t_11 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_12, __pyx_mstate_global->__pyx_n_u_nw); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 116, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_12, __pyx_mstate_global->__pyx_n_u_nw); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 118, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); - __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_t_12, __pyx_mstate_global->__pyx_n_u_nth); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 116, __pyx_L1_error) + __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_t_12, __pyx_mstate_global->__pyx_n_u_nth); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 118, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __pyx_t_14 = 1; @@ -4041,14 +4084,14 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_vectorized_convert_date __pyx_t_10 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_13, __pyx_callargs+__pyx_t_14, (2-__pyx_t_14) | (__pyx_t_14*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0; __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; - if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 116, __pyx_L1_error) + if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 118, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); } __pyx_t_9 = __pyx_t_10; __Pyx_INCREF(__pyx_t_9); - __Pyx_GetModuleGlobalName(__pyx_t_13, __pyx_mstate_global->__pyx_n_u_nw); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 116, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_13, __pyx_mstate_global->__pyx_n_u_nw); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 118, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); - __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_13, __pyx_mstate_global->__pyx_n_u_Int64); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 116, __pyx_L1_error) + __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_13, __pyx_mstate_global->__pyx_n_u_Int64); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 118, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; __pyx_t_14 = 0; @@ -4058,7 +4101,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_vectorized_convert_date __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 116, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 118, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } __pyx_t_14 = 0; @@ -4067,13 +4110,13 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_vectorized_convert_date __pyx_t_6 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_with_columns, __pyx_callargs+__pyx_t_14, (2-__pyx_t_14) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 116, __pyx_L1_error) + if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 118, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); } __Pyx_DECREF_SET(__pyx_v_df, __pyx_t_6); __pyx_t_6 = 0; - /* "pyreadstat/_readstat_writer.pyx":117 + /* "pyreadstat/_readstat_writer.pyx":119 * * df = df.with_columns(nw.nth(col_indxs).cast(nw.Int64)) * for col_indx in col_indxs: # <<<<<<<<<<<<<< @@ -4086,19 +4129,19 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_vectorized_convert_date { Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_6); #if !CYTHON_ASSUME_SAFE_SIZE - if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 117, __pyx_L1_error) + if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 119, __pyx_L1_error) #endif if (__pyx_t_15 >= __pyx_temp) break; } __pyx_t_1 = __Pyx_PyList_GetItemRefFast(__pyx_t_6, __pyx_t_15, __Pyx_ReferenceSharing_OwnStrongReference); ++__pyx_t_15; - if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 117, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 119, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = __Pyx_PyLong_As_int(__pyx_t_1); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 117, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_As_int(__pyx_t_1); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 119, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_v_col_indx = __pyx_t_2; - /* "pyreadstat/_readstat_writer.pyx":118 + /* "pyreadstat/_readstat_writer.pyx":120 * df = df.with_columns(nw.nth(col_indxs).cast(nw.Int64)) * for col_indx in col_indxs: * df = df.with_columns(nw.when(nw.nth(col_indx)!=-9223372036854775808).then(nw.nth(col_indx))) # <<<<<<<<<<<<<< @@ -4108,18 +4151,18 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_vectorized_convert_date __pyx_t_5 = __pyx_v_df; __Pyx_INCREF(__pyx_t_5); __pyx_t_13 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_12, __pyx_mstate_global->__pyx_n_u_nw); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 118, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_12, __pyx_mstate_global->__pyx_n_u_nw); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 120, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); - __pyx_t_16 = __Pyx_PyObject_GetAttrStr(__pyx_t_12, __pyx_mstate_global->__pyx_n_u_when); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 118, __pyx_L1_error) + __pyx_t_16 = __Pyx_PyObject_GetAttrStr(__pyx_t_12, __pyx_mstate_global->__pyx_n_u_when); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 120, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_16); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __pyx_t_17 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_18, __pyx_mstate_global->__pyx_n_u_nw); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 118, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_18, __pyx_mstate_global->__pyx_n_u_nw); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 120, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_18); - __pyx_t_19 = __Pyx_PyObject_GetAttrStr(__pyx_t_18, __pyx_mstate_global->__pyx_n_u_nth); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 118, __pyx_L1_error) + __pyx_t_19 = __Pyx_PyObject_GetAttrStr(__pyx_t_18, __pyx_mstate_global->__pyx_n_u_nth); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 120, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_19); __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; - __pyx_t_18 = __Pyx_PyLong_From_int(__pyx_v_col_indx); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 118, __pyx_L1_error) + __pyx_t_18 = __Pyx_PyLong_From_int(__pyx_v_col_indx); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 120, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_18); __pyx_t_14 = 1; #if CYTHON_UNPACK_METHODS @@ -4139,10 +4182,10 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_vectorized_convert_date __Pyx_XDECREF(__pyx_t_17); __pyx_t_17 = 0; __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; - if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 118, __pyx_L1_error) + if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 120, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); } - __pyx_t_19 = PyObject_RichCompare(__pyx_t_12, __pyx_mstate_global->__pyx_int_neg_9223372036854775808, Py_NE); __Pyx_XGOTREF(__pyx_t_19); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 118, __pyx_L1_error) + __pyx_t_19 = PyObject_RichCompare(__pyx_t_12, __pyx_mstate_global->__pyx_int_neg_9223372036854775808, Py_NE); __Pyx_XGOTREF(__pyx_t_19); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 120, __pyx_L1_error) __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __pyx_t_14 = 1; #if CYTHON_UNPACK_METHODS @@ -4162,18 +4205,18 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_vectorized_convert_date __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0; __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; - if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 118, __pyx_L1_error) + if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 120, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); } __pyx_t_11 = __pyx_t_9; __Pyx_INCREF(__pyx_t_11); __pyx_t_19 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_13, __pyx_mstate_global->__pyx_n_u_nw); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 118, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_13, __pyx_mstate_global->__pyx_n_u_nw); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 120, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); - __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_t_13, __pyx_mstate_global->__pyx_n_u_nth); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 118, __pyx_L1_error) + __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_t_13, __pyx_mstate_global->__pyx_n_u_nth); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 120, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; - __pyx_t_13 = __Pyx_PyLong_From_int(__pyx_v_col_indx); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 118, __pyx_L1_error) + __pyx_t_13 = __Pyx_PyLong_From_int(__pyx_v_col_indx); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 120, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __pyx_t_14 = 1; #if CYTHON_UNPACK_METHODS @@ -4193,7 +4236,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_vectorized_convert_date __Pyx_XDECREF(__pyx_t_19); __pyx_t_19 = 0; __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 118, __pyx_L1_error) + if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 120, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_16); } __pyx_t_14 = 0; @@ -4203,7 +4246,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_vectorized_convert_date __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0; __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 118, __pyx_L1_error) + if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 120, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); } __pyx_t_14 = 0; @@ -4212,13 +4255,13 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_vectorized_convert_date __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_with_columns, __pyx_callargs+__pyx_t_14, (2-__pyx_t_14) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 118, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 120, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } __Pyx_DECREF_SET(__pyx_v_df, __pyx_t_1); __pyx_t_1 = 0; - /* "pyreadstat/_readstat_writer.pyx":119 + /* "pyreadstat/_readstat_writer.pyx":121 * for col_indx in col_indxs: * df = df.with_columns(nw.when(nw.nth(col_indx)!=-9223372036854775808).then(nw.nth(col_indx))) * df = df.with_columns((nw.nth(col_indx).cast(nw.Float64) + offset_days).round() * mulfac) # <<<<<<<<<<<<<< @@ -4228,12 +4271,12 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_vectorized_convert_date __pyx_t_10 = __pyx_v_df; __Pyx_INCREF(__pyx_t_10); __pyx_t_13 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_19, __pyx_mstate_global->__pyx_n_u_nw); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 119, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_19, __pyx_mstate_global->__pyx_n_u_nw); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 121, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_19); - __pyx_t_18 = __Pyx_PyObject_GetAttrStr(__pyx_t_19, __pyx_mstate_global->__pyx_n_u_nth); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 119, __pyx_L1_error) + __pyx_t_18 = __Pyx_PyObject_GetAttrStr(__pyx_t_19, __pyx_mstate_global->__pyx_n_u_nth); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 121, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_18); __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; - __pyx_t_19 = __Pyx_PyLong_From_int(__pyx_v_col_indx); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 119, __pyx_L1_error) + __pyx_t_19 = __Pyx_PyLong_From_int(__pyx_v_col_indx); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 121, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_19); __pyx_t_14 = 1; #if CYTHON_UNPACK_METHODS @@ -4253,14 +4296,14 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_vectorized_convert_date __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0; __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; - if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 119, __pyx_L1_error) + if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 121, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); } __pyx_t_11 = __pyx_t_12; __Pyx_INCREF(__pyx_t_11); - __Pyx_GetModuleGlobalName(__pyx_t_18, __pyx_mstate_global->__pyx_n_u_nw); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 119, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_18, __pyx_mstate_global->__pyx_n_u_nw); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 121, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_18); - __pyx_t_19 = __Pyx_PyObject_GetAttrStr(__pyx_t_18, __pyx_mstate_global->__pyx_n_u_Float64); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 119, __pyx_L1_error) + __pyx_t_19 = __Pyx_PyObject_GetAttrStr(__pyx_t_18, __pyx_mstate_global->__pyx_n_u_Float64); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 121, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_19); __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; __pyx_t_14 = 0; @@ -4270,12 +4313,12 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_vectorized_convert_date __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0; __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 119, __pyx_L1_error) + if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 121, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_16); } - __pyx_t_12 = PyFloat_FromDouble(__pyx_v_offset_days); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 119, __pyx_L1_error) + __pyx_t_12 = PyFloat_FromDouble(__pyx_v_offset_days); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 121, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); - __pyx_t_19 = PyNumber_Add(__pyx_t_16, __pyx_t_12); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 119, __pyx_L1_error) + __pyx_t_19 = PyNumber_Add(__pyx_t_16, __pyx_t_12); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 121, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_19); __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; @@ -4287,12 +4330,12 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_vectorized_convert_date __pyx_t_5 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_round, __pyx_callargs+__pyx_t_14, (1-__pyx_t_14) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; - if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 119, __pyx_L1_error) + if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 121, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); } - __pyx_t_19 = PyFloat_FromDouble(__pyx_v_mulfac); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 119, __pyx_L1_error) + __pyx_t_19 = PyFloat_FromDouble(__pyx_v_mulfac); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 121, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_19); - __pyx_t_9 = PyNumber_Multiply(__pyx_t_5, __pyx_t_19); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 119, __pyx_L1_error) + __pyx_t_9 = PyNumber_Multiply(__pyx_t_5, __pyx_t_19); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 121, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; @@ -4302,13 +4345,13 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_vectorized_convert_date __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_with_columns, __pyx_callargs+__pyx_t_14, (2-__pyx_t_14) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 119, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 121, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } __Pyx_DECREF_SET(__pyx_v_df, __pyx_t_1); __pyx_t_1 = 0; - /* "pyreadstat/_readstat_writer.pyx":117 + /* "pyreadstat/_readstat_writer.pyx":119 * * df = df.with_columns(nw.nth(col_indxs).cast(nw.Int64)) * for col_indx in col_indxs: # <<<<<<<<<<<<<< @@ -4318,7 +4361,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_vectorized_convert_date } __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - /* "pyreadstat/_readstat_writer.pyx":120 + /* "pyreadstat/_readstat_writer.pyx":122 * df = df.with_columns(nw.when(nw.nth(col_indx)!=-9223372036854775808).then(nw.nth(col_indx))) * df = df.with_columns((nw.nth(col_indx).cast(nw.Float64) + offset_days).round() * mulfac) * return df # <<<<<<<<<<<<<< @@ -4330,7 +4373,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_vectorized_convert_date __pyx_r = __pyx_v_df; goto __pyx_L0; - /* "pyreadstat/_readstat_writer.pyx":96 + /* "pyreadstat/_readstat_writer.pyx":98 * * * cdef object vectorized_convert_date_to_number(object df, dst_file_format file_format, list pywriter_types, int col_count): # <<<<<<<<<<<<<< @@ -4362,7 +4405,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_vectorized_convert_date return __pyx_r; } -/* "pyreadstat/_readstat_writer.pyx":122 +/* "pyreadstat/_readstat_writer.pyx":124 * return df * * cdef object vectorized_convert_time_to_number(object df, dst_file_format file_format, list pywriter_types, int col_count): # <<<<<<<<<<<<<< @@ -4401,7 +4444,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_vectorized_convert_time __Pyx_RefNannySetupContext("vectorized_convert_time_to_number", 0); __Pyx_INCREF(__pyx_v_df); - /* "pyreadstat/_readstat_writer.pyx":126 + /* "pyreadstat/_readstat_writer.pyx":128 * transforms time64 columns in the dataframe to floats * """ * cdef double mulfac = 1.0 # <<<<<<<<<<<<<< @@ -4410,7 +4453,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_vectorized_convert_time */ __pyx_v_mulfac = 1.0; - /* "pyreadstat/_readstat_writer.pyx":130 + /* "pyreadstat/_readstat_writer.pyx":132 * cdef list col_indxs * * if file_format == FILE_FORMAT_DTA: # <<<<<<<<<<<<<< @@ -4420,7 +4463,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_vectorized_convert_time __pyx_t_1 = (__pyx_v_file_format == __pyx_e_10pyreadstat_16_readstat_writer_FILE_FORMAT_DTA); if (__pyx_t_1) { - /* "pyreadstat/_readstat_writer.pyx":132 + /* "pyreadstat/_readstat_writer.pyx":134 * if file_format == FILE_FORMAT_DTA: * # stata stores in milliseconds * mulfac = 1000.0 # <<<<<<<<<<<<<< @@ -4429,7 +4472,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_vectorized_convert_time */ __pyx_v_mulfac = 1000.0; - /* "pyreadstat/_readstat_writer.pyx":130 + /* "pyreadstat/_readstat_writer.pyx":132 * cdef list col_indxs * * if file_format == FILE_FORMAT_DTA: # <<<<<<<<<<<<<< @@ -4438,19 +4481,19 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_vectorized_convert_time */ } - /* "pyreadstat/_readstat_writer.pyx":134 + /* "pyreadstat/_readstat_writer.pyx":136 * mulfac = 1000.0 * * col_indxs = list() # <<<<<<<<<<<<<< * for col_indx in range(col_count): * if pywriter_types[col_indx] == PYWRITER_TIME64: */ - __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 134, __pyx_L1_error) + __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 136, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_v_col_indxs = ((PyObject*)__pyx_t_2); __pyx_t_2 = 0; - /* "pyreadstat/_readstat_writer.pyx":135 + /* "pyreadstat/_readstat_writer.pyx":137 * * col_indxs = list() * for col_indx in range(col_count): # <<<<<<<<<<<<<< @@ -4462,7 +4505,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_vectorized_convert_time for (__pyx_t_5 = 0; __pyx_t_5 < __pyx_t_4; __pyx_t_5+=1) { __pyx_v_col_indx = __pyx_t_5; - /* "pyreadstat/_readstat_writer.pyx":136 + /* "pyreadstat/_readstat_writer.pyx":138 * col_indxs = list() * for col_indx in range(col_count): * if pywriter_types[col_indx] == PYWRITER_TIME64: # <<<<<<<<<<<<<< @@ -4471,32 +4514,32 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_vectorized_convert_time */ if (unlikely(__pyx_v_pywriter_types == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 136, __pyx_L1_error) + __PYX_ERR(0, 138, __pyx_L1_error) } - __pyx_t_2 = __Pyx_GetItemInt_List(__pyx_v_pywriter_types, __pyx_v_col_indx, int, 1, __Pyx_PyLong_From_int, 1, 1, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 136, __pyx_L1_error) + __pyx_t_2 = __Pyx_GetItemInt_List(__pyx_v_pywriter_types, __pyx_v_col_indx, int, 1, __Pyx_PyLong_From_int, 1, 1, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 138, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_6 = __Pyx_PyLong_From___pyx_t_10pyreadstat_16_readstat_writer_pywriter_variable_type(__pyx_e_10pyreadstat_16_readstat_writer_PYWRITER_TIME64); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 136, __pyx_L1_error) + __pyx_t_6 = __Pyx_PyLong_From___pyx_t_10pyreadstat_16_readstat_writer_pywriter_variable_type(__pyx_e_10pyreadstat_16_readstat_writer_PYWRITER_TIME64); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 138, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); - __pyx_t_7 = PyObject_RichCompare(__pyx_t_2, __pyx_t_6, Py_EQ); __Pyx_XGOTREF(__pyx_t_7); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 136, __pyx_L1_error) + __pyx_t_7 = PyObject_RichCompare(__pyx_t_2, __pyx_t_6, Py_EQ); __Pyx_XGOTREF(__pyx_t_7); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 138, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 136, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 138, __pyx_L1_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; if (__pyx_t_1) { - /* "pyreadstat/_readstat_writer.pyx":137 + /* "pyreadstat/_readstat_writer.pyx":139 * for col_indx in range(col_count): * if pywriter_types[col_indx] == PYWRITER_TIME64: * col_indxs.append(col_indx) # <<<<<<<<<<<<<< * * df = df.with_columns(nw.nth(col_indxs).cast(nw.Int64)) */ - __pyx_t_7 = __Pyx_PyLong_From_int(__pyx_v_col_indx); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 137, __pyx_L1_error) + __pyx_t_7 = __Pyx_PyLong_From_int(__pyx_v_col_indx); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 139, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); - __pyx_t_8 = __Pyx_PyList_Append(__pyx_v_col_indxs, __pyx_t_7); if (unlikely(__pyx_t_8 == ((int)-1))) __PYX_ERR(0, 137, __pyx_L1_error) + __pyx_t_8 = __Pyx_PyList_Append(__pyx_v_col_indxs, __pyx_t_7); if (unlikely(__pyx_t_8 == ((int)-1))) __PYX_ERR(0, 139, __pyx_L1_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - /* "pyreadstat/_readstat_writer.pyx":136 + /* "pyreadstat/_readstat_writer.pyx":138 * col_indxs = list() * for col_indx in range(col_count): * if pywriter_types[col_indx] == PYWRITER_TIME64: # <<<<<<<<<<<<<< @@ -4506,7 +4549,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_vectorized_convert_time } } - /* "pyreadstat/_readstat_writer.pyx":139 + /* "pyreadstat/_readstat_writer.pyx":141 * col_indxs.append(col_indx) * * df = df.with_columns(nw.nth(col_indxs).cast(nw.Int64)) # <<<<<<<<<<<<<< @@ -4516,9 +4559,9 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_vectorized_convert_time __pyx_t_6 = __pyx_v_df; __Pyx_INCREF(__pyx_t_6); __pyx_t_11 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_12, __pyx_mstate_global->__pyx_n_u_nw); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 139, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_12, __pyx_mstate_global->__pyx_n_u_nw); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 141, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); - __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_t_12, __pyx_mstate_global->__pyx_n_u_nth); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 139, __pyx_L1_error) + __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_t_12, __pyx_mstate_global->__pyx_n_u_nth); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 141, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __pyx_t_14 = 1; @@ -4538,14 +4581,14 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_vectorized_convert_time __pyx_t_10 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_13, __pyx_callargs+__pyx_t_14, (2-__pyx_t_14) | (__pyx_t_14*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0; __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; - if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 139, __pyx_L1_error) + if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 141, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); } __pyx_t_9 = __pyx_t_10; __Pyx_INCREF(__pyx_t_9); - __Pyx_GetModuleGlobalName(__pyx_t_13, __pyx_mstate_global->__pyx_n_u_nw); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 139, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_13, __pyx_mstate_global->__pyx_n_u_nw); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 141, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); - __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_13, __pyx_mstate_global->__pyx_n_u_Int64); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 139, __pyx_L1_error) + __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_13, __pyx_mstate_global->__pyx_n_u_Int64); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 141, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; __pyx_t_14 = 0; @@ -4555,7 +4598,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_vectorized_convert_time __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 139, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 141, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } __pyx_t_14 = 0; @@ -4564,18 +4607,18 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_vectorized_convert_time __pyx_t_7 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_with_columns, __pyx_callargs+__pyx_t_14, (2-__pyx_t_14) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 139, __pyx_L1_error) + if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 141, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); } __Pyx_DECREF_SET(__pyx_v_df, __pyx_t_7); __pyx_t_7 = 0; - /* "pyreadstat/_readstat_writer.pyx":140 + /* "pyreadstat/_readstat_writer.pyx":142 * * df = df.with_columns(nw.nth(col_indxs).cast(nw.Int64)) * for col_indx in col_indxs: # <<<<<<<<<<<<<< * df = df.with_columns(nw.when(nw.nth(col_indx)!=-9223372036854775808).then(nw.nth(col_indx))) - * df = df.with_columns((nw.nth(col_indx).cast(nw.Float64)/1e9).round() * mulfac) + * df = df.with_columns((nw.nth(col_indx).cast(nw.Float64)/1e9).round(9) * mulfac) */ __pyx_t_7 = __pyx_v_col_indxs; __Pyx_INCREF(__pyx_t_7); __pyx_t_15 = 0; @@ -4583,40 +4626,40 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_vectorized_convert_time { Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_7); #if !CYTHON_ASSUME_SAFE_SIZE - if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 140, __pyx_L1_error) + if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 142, __pyx_L1_error) #endif if (__pyx_t_15 >= __pyx_temp) break; } __pyx_t_2 = __Pyx_PyList_GetItemRefFast(__pyx_t_7, __pyx_t_15, __Pyx_ReferenceSharing_OwnStrongReference); ++__pyx_t_15; - if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 140, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 142, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_3 = __Pyx_PyLong_As_int(__pyx_t_2); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 140, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyLong_As_int(__pyx_t_2); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 142, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_v_col_indx = __pyx_t_3; - /* "pyreadstat/_readstat_writer.pyx":141 + /* "pyreadstat/_readstat_writer.pyx":143 * df = df.with_columns(nw.nth(col_indxs).cast(nw.Int64)) * for col_indx in col_indxs: * df = df.with_columns(nw.when(nw.nth(col_indx)!=-9223372036854775808).then(nw.nth(col_indx))) # <<<<<<<<<<<<<< - * df = df.with_columns((nw.nth(col_indx).cast(nw.Float64)/1e9).round() * mulfac) + * df = df.with_columns((nw.nth(col_indx).cast(nw.Float64)/1e9).round(9) * mulfac) * return df */ __pyx_t_6 = __pyx_v_df; __Pyx_INCREF(__pyx_t_6); __pyx_t_13 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_12, __pyx_mstate_global->__pyx_n_u_nw); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 141, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_12, __pyx_mstate_global->__pyx_n_u_nw); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 143, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); - __pyx_t_16 = __Pyx_PyObject_GetAttrStr(__pyx_t_12, __pyx_mstate_global->__pyx_n_u_when); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 141, __pyx_L1_error) + __pyx_t_16 = __Pyx_PyObject_GetAttrStr(__pyx_t_12, __pyx_mstate_global->__pyx_n_u_when); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 143, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_16); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __pyx_t_17 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_18, __pyx_mstate_global->__pyx_n_u_nw); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 141, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_18, __pyx_mstate_global->__pyx_n_u_nw); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 143, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_18); - __pyx_t_19 = __Pyx_PyObject_GetAttrStr(__pyx_t_18, __pyx_mstate_global->__pyx_n_u_nth); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 141, __pyx_L1_error) + __pyx_t_19 = __Pyx_PyObject_GetAttrStr(__pyx_t_18, __pyx_mstate_global->__pyx_n_u_nth); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 143, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_19); __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; - __pyx_t_18 = __Pyx_PyLong_From_int(__pyx_v_col_indx); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 141, __pyx_L1_error) + __pyx_t_18 = __Pyx_PyLong_From_int(__pyx_v_col_indx); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 143, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_18); __pyx_t_14 = 1; #if CYTHON_UNPACK_METHODS @@ -4636,10 +4679,10 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_vectorized_convert_time __Pyx_XDECREF(__pyx_t_17); __pyx_t_17 = 0; __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; - if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 141, __pyx_L1_error) + if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 143, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); } - __pyx_t_19 = PyObject_RichCompare(__pyx_t_12, __pyx_mstate_global->__pyx_int_neg_9223372036854775808, Py_NE); __Pyx_XGOTREF(__pyx_t_19); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 141, __pyx_L1_error) + __pyx_t_19 = PyObject_RichCompare(__pyx_t_12, __pyx_mstate_global->__pyx_int_neg_9223372036854775808, Py_NE); __Pyx_XGOTREF(__pyx_t_19); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 143, __pyx_L1_error) __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __pyx_t_14 = 1; #if CYTHON_UNPACK_METHODS @@ -4659,18 +4702,18 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_vectorized_convert_time __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0; __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; - if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 141, __pyx_L1_error) + if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 143, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); } __pyx_t_11 = __pyx_t_9; __Pyx_INCREF(__pyx_t_11); __pyx_t_19 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_13, __pyx_mstate_global->__pyx_n_u_nw); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 141, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_13, __pyx_mstate_global->__pyx_n_u_nw); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 143, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); - __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_t_13, __pyx_mstate_global->__pyx_n_u_nth); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 141, __pyx_L1_error) + __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_t_13, __pyx_mstate_global->__pyx_n_u_nth); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 143, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; - __pyx_t_13 = __Pyx_PyLong_From_int(__pyx_v_col_indx); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 141, __pyx_L1_error) + __pyx_t_13 = __Pyx_PyLong_From_int(__pyx_v_col_indx); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 143, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __pyx_t_14 = 1; #if CYTHON_UNPACK_METHODS @@ -4690,7 +4733,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_vectorized_convert_time __Pyx_XDECREF(__pyx_t_19); __pyx_t_19 = 0; __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 141, __pyx_L1_error) + if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 143, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_16); } __pyx_t_14 = 0; @@ -4700,7 +4743,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_vectorized_convert_time __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0; __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 141, __pyx_L1_error) + if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 143, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); } __pyx_t_14 = 0; @@ -4709,28 +4752,28 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_vectorized_convert_time __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_with_columns, __pyx_callargs+__pyx_t_14, (2-__pyx_t_14) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 141, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 143, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } __Pyx_DECREF_SET(__pyx_v_df, __pyx_t_2); __pyx_t_2 = 0; - /* "pyreadstat/_readstat_writer.pyx":142 + /* "pyreadstat/_readstat_writer.pyx":144 * for col_indx in col_indxs: * df = df.with_columns(nw.when(nw.nth(col_indx)!=-9223372036854775808).then(nw.nth(col_indx))) - * df = df.with_columns((nw.nth(col_indx).cast(nw.Float64)/1e9).round() * mulfac) # <<<<<<<<<<<<<< + * df = df.with_columns((nw.nth(col_indx).cast(nw.Float64)/1e9).round(9) * mulfac) # <<<<<<<<<<<<<< * return df * */ __pyx_t_10 = __pyx_v_df; __Pyx_INCREF(__pyx_t_10); __pyx_t_13 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_19, __pyx_mstate_global->__pyx_n_u_nw); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 142, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_19, __pyx_mstate_global->__pyx_n_u_nw); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 144, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_19); - __pyx_t_18 = __Pyx_PyObject_GetAttrStr(__pyx_t_19, __pyx_mstate_global->__pyx_n_u_nth); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 142, __pyx_L1_error) + __pyx_t_18 = __Pyx_PyObject_GetAttrStr(__pyx_t_19, __pyx_mstate_global->__pyx_n_u_nth); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 144, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_18); __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; - __pyx_t_19 = __Pyx_PyLong_From_int(__pyx_v_col_indx); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 142, __pyx_L1_error) + __pyx_t_19 = __Pyx_PyLong_From_int(__pyx_v_col_indx); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 144, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_19); __pyx_t_14 = 1; #if CYTHON_UNPACK_METHODS @@ -4750,14 +4793,14 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_vectorized_convert_time __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0; __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; - if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 142, __pyx_L1_error) + if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 144, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); } __pyx_t_11 = __pyx_t_12; __Pyx_INCREF(__pyx_t_11); - __Pyx_GetModuleGlobalName(__pyx_t_18, __pyx_mstate_global->__pyx_n_u_nw); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 142, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_18, __pyx_mstate_global->__pyx_n_u_nw); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 144, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_18); - __pyx_t_19 = __Pyx_PyObject_GetAttrStr(__pyx_t_18, __pyx_mstate_global->__pyx_n_u_Float64); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 142, __pyx_L1_error) + __pyx_t_19 = __Pyx_PyObject_GetAttrStr(__pyx_t_18, __pyx_mstate_global->__pyx_n_u_Float64); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 144, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_19); __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; __pyx_t_14 = 0; @@ -4767,26 +4810,26 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_vectorized_convert_time __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0; __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 142, __pyx_L1_error) + if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 144, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_16); } - __pyx_t_12 = __Pyx_PyFloat_DivideObjC(__pyx_t_16, __pyx_mstate_global->__pyx_float_1e9, 1e9, 0, 0); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 142, __pyx_L1_error) + __pyx_t_12 = __Pyx_PyFloat_DivideObjC(__pyx_t_16, __pyx_mstate_global->__pyx_float_1e9, 1e9, 0, 0); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 144, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; __pyx_t_9 = __pyx_t_12; __Pyx_INCREF(__pyx_t_9); __pyx_t_14 = 0; { - PyObject *__pyx_callargs[2] = {__pyx_t_9, NULL}; - __pyx_t_6 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_round, __pyx_callargs+__pyx_t_14, (1-__pyx_t_14) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_mstate_global->__pyx_int_9}; + __pyx_t_6 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_round, __pyx_callargs+__pyx_t_14, (2-__pyx_t_14) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 142, __pyx_L1_error) + if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 144, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); } - __pyx_t_12 = PyFloat_FromDouble(__pyx_v_mulfac); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 142, __pyx_L1_error) + __pyx_t_12 = PyFloat_FromDouble(__pyx_v_mulfac); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 144, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); - __pyx_t_9 = PyNumber_Multiply(__pyx_t_6, __pyx_t_12); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 142, __pyx_L1_error) + __pyx_t_9 = PyNumber_Multiply(__pyx_t_6, __pyx_t_12); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 144, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; @@ -4796,25 +4839,25 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_vectorized_convert_time __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_with_columns, __pyx_callargs+__pyx_t_14, (2-__pyx_t_14) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 142, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 144, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } __Pyx_DECREF_SET(__pyx_v_df, __pyx_t_2); __pyx_t_2 = 0; - /* "pyreadstat/_readstat_writer.pyx":140 + /* "pyreadstat/_readstat_writer.pyx":142 * * df = df.with_columns(nw.nth(col_indxs).cast(nw.Int64)) * for col_indx in col_indxs: # <<<<<<<<<<<<<< * df = df.with_columns(nw.when(nw.nth(col_indx)!=-9223372036854775808).then(nw.nth(col_indx))) - * df = df.with_columns((nw.nth(col_indx).cast(nw.Float64)/1e9).round() * mulfac) + * df = df.with_columns((nw.nth(col_indx).cast(nw.Float64)/1e9).round(9) * mulfac) */ } __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - /* "pyreadstat/_readstat_writer.pyx":143 + /* "pyreadstat/_readstat_writer.pyx":145 * df = df.with_columns(nw.when(nw.nth(col_indx)!=-9223372036854775808).then(nw.nth(col_indx))) - * df = df.with_columns((nw.nth(col_indx).cast(nw.Float64)/1e9).round() * mulfac) + * df = df.with_columns((nw.nth(col_indx).cast(nw.Float64)/1e9).round(9) * mulfac) * return df # <<<<<<<<<<<<<< * * cdef double convert_datetimelike_to_number(dst_file_format file_format, pywriter_variable_type curtype, object curval) except *: @@ -4824,7 +4867,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_vectorized_convert_time __pyx_r = __pyx_v_df; goto __pyx_L0; - /* "pyreadstat/_readstat_writer.pyx":122 + /* "pyreadstat/_readstat_writer.pyx":124 * return df * * cdef object vectorized_convert_time_to_number(object df, dst_file_format file_format, list pywriter_types, int col_count): # <<<<<<<<<<<<<< @@ -4856,7 +4899,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_vectorized_convert_time return __pyx_r; } -/* "pyreadstat/_readstat_writer.pyx":145 +/* "pyreadstat/_readstat_writer.pyx":147 * return df * * cdef double convert_datetimelike_to_number(dst_file_format file_format, pywriter_variable_type curtype, object curval) except *: # <<<<<<<<<<<<<< @@ -4886,7 +4929,7 @@ static double __pyx_f_10pyreadstat_16_readstat_writer_convert_datetimelike_to_nu int __pyx_clineno = 0; __Pyx_RefNannySetupContext("convert_datetimelike_to_number", 0); - /* "pyreadstat/_readstat_writer.pyx":151 + /* "pyreadstat/_readstat_writer.pyx":153 * * cdef double offset_days * cdef double tstamp = 0 # <<<<<<<<<<<<<< @@ -4895,7 +4938,7 @@ static double __pyx_f_10pyreadstat_16_readstat_writer_convert_datetimelike_to_nu */ __pyx_v_tstamp = 0.0; - /* "pyreadstat/_readstat_writer.pyx":153 + /* "pyreadstat/_readstat_writer.pyx":155 * cdef double tstamp = 0 * * if file_format == FILE_FORMAT_SAV or file_format == FILE_FORMAT_POR: # <<<<<<<<<<<<<< @@ -4906,7 +4949,7 @@ static double __pyx_f_10pyreadstat_16_readstat_writer_convert_datetimelike_to_nu case __pyx_e_10pyreadstat_16_readstat_writer_FILE_FORMAT_SAV: case __pyx_e_10pyreadstat_16_readstat_writer_FILE_FORMAT_POR: - /* "pyreadstat/_readstat_writer.pyx":154 + /* "pyreadstat/_readstat_writer.pyx":156 * * if file_format == FILE_FORMAT_SAV or file_format == FILE_FORMAT_POR: * offset_days = spss_offset_days # <<<<<<<<<<<<<< @@ -4915,7 +4958,7 @@ static double __pyx_f_10pyreadstat_16_readstat_writer_convert_datetimelike_to_nu */ __pyx_v_offset_days = __pyx_v_10pyreadstat_16_readstat_writer_spss_offset_days; - /* "pyreadstat/_readstat_writer.pyx":155 + /* "pyreadstat/_readstat_writer.pyx":157 * if file_format == FILE_FORMAT_SAV or file_format == FILE_FORMAT_POR: * offset_days = spss_offset_days * offset_secs = spss_offset_secs # <<<<<<<<<<<<<< @@ -4924,7 +4967,7 @@ static double __pyx_f_10pyreadstat_16_readstat_writer_convert_datetimelike_to_nu */ __pyx_v_offset_secs = __pyx_v_10pyreadstat_16_readstat_writer_spss_offset_secs; - /* "pyreadstat/_readstat_writer.pyx":153 + /* "pyreadstat/_readstat_writer.pyx":155 * cdef double tstamp = 0 * * if file_format == FILE_FORMAT_SAV or file_format == FILE_FORMAT_POR: # <<<<<<<<<<<<<< @@ -4934,7 +4977,7 @@ static double __pyx_f_10pyreadstat_16_readstat_writer_convert_datetimelike_to_nu break; default: - /* "pyreadstat/_readstat_writer.pyx":157 + /* "pyreadstat/_readstat_writer.pyx":159 * offset_secs = spss_offset_secs * else: * offset_days = sas_offset_days # <<<<<<<<<<<<<< @@ -4943,7 +4986,7 @@ static double __pyx_f_10pyreadstat_16_readstat_writer_convert_datetimelike_to_nu */ __pyx_v_offset_days = __pyx_v_10pyreadstat_16_readstat_writer_sas_offset_days; - /* "pyreadstat/_readstat_writer.pyx":158 + /* "pyreadstat/_readstat_writer.pyx":160 * else: * offset_days = sas_offset_days * offset_secs = sas_offset_secs # <<<<<<<<<<<<<< @@ -4954,7 +4997,7 @@ static double __pyx_f_10pyreadstat_16_readstat_writer_convert_datetimelike_to_nu break; } - /* "pyreadstat/_readstat_writer.pyx":160 + /* "pyreadstat/_readstat_writer.pyx":162 * offset_secs = sas_offset_secs * * if curtype == PYWRITER_DATETIME or curtype == PYWRITER_DATETIME64: # <<<<<<<<<<<<<< @@ -4965,25 +5008,25 @@ static double __pyx_f_10pyreadstat_16_readstat_writer_convert_datetimelike_to_nu case __pyx_e_10pyreadstat_16_readstat_writer_PYWRITER_DATETIME: case __pyx_e_10pyreadstat_16_readstat_writer_PYWRITER_DATETIME64: - /* "pyreadstat/_readstat_writer.pyx":162 + /* "pyreadstat/_readstat_writer.pyx":164 * if curtype == PYWRITER_DATETIME or curtype == PYWRITER_DATETIME64: * # get timestamp in seconds * if type(curval) == datetime.datetime: # <<<<<<<<<<<<<< * tstamp = curval.replace(tzinfo=timezone.utc).timestamp() # works only in python 3 * #tstamp = calendar.timegm(curval.replace(tzinfo=_timezone.utc).timetuple()) */ - __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_datetime); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 162, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_datetime); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 164, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_datetime); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 162, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_datetime); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 164, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyObject_RichCompare(((PyObject *)Py_TYPE(__pyx_v_curval)), __pyx_t_2, Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 162, __pyx_L1_error) + __pyx_t_1 = PyObject_RichCompare(((PyObject *)Py_TYPE(__pyx_v_curval)), __pyx_t_2, Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 164, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_3 < 0))) __PYX_ERR(0, 162, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_3 < 0))) __PYX_ERR(0, 164, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_3) { - /* "pyreadstat/_readstat_writer.pyx":163 + /* "pyreadstat/_readstat_writer.pyx":165 * # get timestamp in seconds * if type(curval) == datetime.datetime: * tstamp = curval.replace(tzinfo=timezone.utc).timestamp() # works only in python 3 # <<<<<<<<<<<<<< @@ -4992,22 +5035,22 @@ static double __pyx_f_10pyreadstat_16_readstat_writer_convert_datetimelike_to_nu */ __pyx_t_5 = __pyx_v_curval; __Pyx_INCREF(__pyx_t_5); - __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_timezone); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 163, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_timezone); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 165, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); - __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_utc); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 163, __pyx_L1_error) + __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_utc); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 165, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_8 = 0; { PyObject *__pyx_callargs[2 + ((CYTHON_VECTORCALL) ? 1 : 0)] = {__pyx_t_5, NULL}; - __pyx_t_6 = __Pyx_MakeVectorcallBuilderKwds(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 163, __pyx_L1_error) + __pyx_t_6 = __Pyx_MakeVectorcallBuilderKwds(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 165, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); - if (__Pyx_VectorcallBuilder_AddArg(__pyx_mstate_global->__pyx_n_u_tzinfo, __pyx_t_7, __pyx_t_6, __pyx_callargs+1, 0) < (0)) __PYX_ERR(0, 163, __pyx_L1_error) + if (__Pyx_VectorcallBuilder_AddArg(__pyx_mstate_global->__pyx_n_u_tzinfo, __pyx_t_7, __pyx_t_6, __pyx_callargs+1, 0) < (0)) __PYX_ERR(0, 165, __pyx_L1_error) __pyx_t_4 = __Pyx_Object_VectorcallMethod_CallFromBuilder((PyObject*)__pyx_mstate_global->__pyx_n_u_replace, __pyx_callargs+__pyx_t_8, (1-__pyx_t_8) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET), __pyx_t_6); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 163, __pyx_L1_error) + if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 165, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); } __pyx_t_2 = __pyx_t_4; @@ -5018,14 +5061,14 @@ static double __pyx_f_10pyreadstat_16_readstat_writer_convert_datetimelike_to_nu __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_timestamp, __pyx_callargs+__pyx_t_8, (1-__pyx_t_8) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 163, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 165, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } - __pyx_t_9 = __Pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_9 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 163, __pyx_L1_error) + __pyx_t_9 = __Pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_9 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 165, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_v_tstamp = __pyx_t_9; - /* "pyreadstat/_readstat_writer.pyx":162 + /* "pyreadstat/_readstat_writer.pyx":164 * if curtype == PYWRITER_DATETIME or curtype == PYWRITER_DATETIME64: * # get timestamp in seconds * if type(curval) == datetime.datetime: # <<<<<<<<<<<<<< @@ -5034,7 +5077,7 @@ static double __pyx_f_10pyreadstat_16_readstat_writer_convert_datetimelike_to_nu */ } - /* "pyreadstat/_readstat_writer.pyx":166 + /* "pyreadstat/_readstat_writer.pyx":168 * #tstamp = calendar.timegm(curval.replace(tzinfo=_timezone.utc).timetuple()) * * tstamp += offset_secs # <<<<<<<<<<<<<< @@ -5043,7 +5086,7 @@ static double __pyx_f_10pyreadstat_16_readstat_writer_convert_datetimelike_to_nu */ __pyx_v_tstamp = (__pyx_v_tstamp + __pyx_v_offset_secs); - /* "pyreadstat/_readstat_writer.pyx":167 + /* "pyreadstat/_readstat_writer.pyx":169 * * tstamp += offset_secs * if file_format == FILE_FORMAT_DTA: # <<<<<<<<<<<<<< @@ -5053,7 +5096,7 @@ static double __pyx_f_10pyreadstat_16_readstat_writer_convert_datetimelike_to_nu __pyx_t_3 = (__pyx_v_file_format == __pyx_e_10pyreadstat_16_readstat_writer_FILE_FORMAT_DTA); if (__pyx_t_3) { - /* "pyreadstat/_readstat_writer.pyx":169 + /* "pyreadstat/_readstat_writer.pyx":171 * if file_format == FILE_FORMAT_DTA: * # stata stores in milliseconds * tstamp *= 1000 # <<<<<<<<<<<<<< @@ -5062,7 +5105,7 @@ static double __pyx_f_10pyreadstat_16_readstat_writer_convert_datetimelike_to_nu */ __pyx_v_tstamp = (__pyx_v_tstamp * 1000.0); - /* "pyreadstat/_readstat_writer.pyx":167 + /* "pyreadstat/_readstat_writer.pyx":169 * * tstamp += offset_secs * if file_format == FILE_FORMAT_DTA: # <<<<<<<<<<<<<< @@ -5071,7 +5114,7 @@ static double __pyx_f_10pyreadstat_16_readstat_writer_convert_datetimelike_to_nu */ } - /* "pyreadstat/_readstat_writer.pyx":160 + /* "pyreadstat/_readstat_writer.pyx":162 * offset_secs = sas_offset_secs * * if curtype == PYWRITER_DATETIME or curtype == PYWRITER_DATETIME64: # <<<<<<<<<<<<<< @@ -5081,50 +5124,50 @@ static double __pyx_f_10pyreadstat_16_readstat_writer_convert_datetimelike_to_nu break; case __pyx_e_10pyreadstat_16_readstat_writer_PYWRITER_DATE: - /* "pyreadstat/_readstat_writer.pyx":172 + /* "pyreadstat/_readstat_writer.pyx":174 * * elif curtype == PYWRITER_DATE: * if type(curval) == datetime.date: # <<<<<<<<<<<<<< * days = curval - date_0 * tstamp = days.days */ - __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_datetime); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 172, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_datetime); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 174, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_date); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 172, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_date); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 174, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyObject_RichCompare(((PyObject *)Py_TYPE(__pyx_v_curval)), __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 172, __pyx_L1_error) + __pyx_t_1 = PyObject_RichCompare(((PyObject *)Py_TYPE(__pyx_v_curval)), __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 174, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_3 < 0))) __PYX_ERR(0, 172, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_3 < 0))) __PYX_ERR(0, 174, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_3) { - /* "pyreadstat/_readstat_writer.pyx":173 + /* "pyreadstat/_readstat_writer.pyx":175 * elif curtype == PYWRITER_DATE: * if type(curval) == datetime.date: * days = curval - date_0 # <<<<<<<<<<<<<< * tstamp = days.days * tstamp += offset_days */ - __pyx_t_1 = PyNumber_Subtract(__pyx_v_curval, __pyx_v_10pyreadstat_16_readstat_writer_date_0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 173, __pyx_L1_error) + __pyx_t_1 = PyNumber_Subtract(__pyx_v_curval, __pyx_v_10pyreadstat_16_readstat_writer_date_0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 175, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_days = __pyx_t_1; __pyx_t_1 = 0; - /* "pyreadstat/_readstat_writer.pyx":174 + /* "pyreadstat/_readstat_writer.pyx":176 * if type(curval) == datetime.date: * days = curval - date_0 * tstamp = days.days # <<<<<<<<<<<<<< * tstamp += offset_days * if file_format == FILE_FORMAT_SAV or file_format == FILE_FORMAT_POR: */ - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_days, __pyx_mstate_global->__pyx_n_u_days); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 174, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_days, __pyx_mstate_global->__pyx_n_u_days); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 176, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_9 = __Pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_9 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 174, __pyx_L1_error) + __pyx_t_9 = __Pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_9 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 176, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_v_tstamp = __pyx_t_9; - /* "pyreadstat/_readstat_writer.pyx":175 + /* "pyreadstat/_readstat_writer.pyx":177 * days = curval - date_0 * tstamp = days.days * tstamp += offset_days # <<<<<<<<<<<<<< @@ -5133,7 +5176,7 @@ static double __pyx_f_10pyreadstat_16_readstat_writer_convert_datetimelike_to_nu */ __pyx_v_tstamp = (__pyx_v_tstamp + __pyx_v_offset_days); - /* "pyreadstat/_readstat_writer.pyx":176 + /* "pyreadstat/_readstat_writer.pyx":178 * tstamp = days.days * tstamp += offset_days * if file_format == FILE_FORMAT_SAV or file_format == FILE_FORMAT_POR: # <<<<<<<<<<<<<< @@ -5144,7 +5187,7 @@ static double __pyx_f_10pyreadstat_16_readstat_writer_convert_datetimelike_to_nu case __pyx_e_10pyreadstat_16_readstat_writer_FILE_FORMAT_SAV: case __pyx_e_10pyreadstat_16_readstat_writer_FILE_FORMAT_POR: - /* "pyreadstat/_readstat_writer.pyx":178 + /* "pyreadstat/_readstat_writer.pyx":180 * if file_format == FILE_FORMAT_SAV or file_format == FILE_FORMAT_POR: * # spss stores in seconds * tstamp *= 86400 # <<<<<<<<<<<<<< @@ -5153,7 +5196,7 @@ static double __pyx_f_10pyreadstat_16_readstat_writer_convert_datetimelike_to_nu */ __pyx_v_tstamp = (__pyx_v_tstamp * 86400.0); - /* "pyreadstat/_readstat_writer.pyx":176 + /* "pyreadstat/_readstat_writer.pyx":178 * tstamp = days.days * tstamp += offset_days * if file_format == FILE_FORMAT_SAV or file_format == FILE_FORMAT_POR: # <<<<<<<<<<<<<< @@ -5164,7 +5207,7 @@ static double __pyx_f_10pyreadstat_16_readstat_writer_convert_datetimelike_to_nu default: break; } - /* "pyreadstat/_readstat_writer.pyx":172 + /* "pyreadstat/_readstat_writer.pyx":174 * * elif curtype == PYWRITER_DATE: * if type(curval) == datetime.date: # <<<<<<<<<<<<<< @@ -5173,7 +5216,7 @@ static double __pyx_f_10pyreadstat_16_readstat_writer_convert_datetimelike_to_nu */ } - /* "pyreadstat/_readstat_writer.pyx":171 + /* "pyreadstat/_readstat_writer.pyx":173 * tstamp *= 1000 * * elif curtype == PYWRITER_DATE: # <<<<<<<<<<<<<< @@ -5183,44 +5226,44 @@ static double __pyx_f_10pyreadstat_16_readstat_writer_convert_datetimelike_to_nu break; case __pyx_e_10pyreadstat_16_readstat_writer_PYWRITER_TIME: - /* "pyreadstat/_readstat_writer.pyx":181 + /* "pyreadstat/_readstat_writer.pyx":183 * * elif curtype == PYWRITER_TIME: * if type(curval) == datetime.time: # <<<<<<<<<<<<<< * tdelta = datetime.datetime.combine(datetime.date.min, curval) - datetime.datetime.min * tstamp = tdelta.total_seconds() */ - __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_datetime); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 181, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_datetime); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 183, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_time); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 181, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_time); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 183, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyObject_RichCompare(((PyObject *)Py_TYPE(__pyx_v_curval)), __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 181, __pyx_L1_error) + __pyx_t_1 = PyObject_RichCompare(((PyObject *)Py_TYPE(__pyx_v_curval)), __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 183, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_3 < 0))) __PYX_ERR(0, 181, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_3 < 0))) __PYX_ERR(0, 183, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_3) { - /* "pyreadstat/_readstat_writer.pyx":182 + /* "pyreadstat/_readstat_writer.pyx":184 * elif curtype == PYWRITER_TIME: * if type(curval) == datetime.time: * tdelta = datetime.datetime.combine(datetime.date.min, curval) - datetime.datetime.min # <<<<<<<<<<<<<< * tstamp = tdelta.total_seconds() * #tstamp += offset * 86400 */ - __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_datetime); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 182, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_datetime); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 184, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_datetime); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 182, __pyx_L1_error) + __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_datetime); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 184, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_4 = __pyx_t_6; __Pyx_INCREF(__pyx_t_4); - __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_datetime); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 182, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_datetime); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 184, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_date); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 182, __pyx_L1_error) + __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_date); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 184, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_mstate_global->__pyx_n_u_min); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 182, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_mstate_global->__pyx_n_u_min); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 184, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_8 = 0; @@ -5230,25 +5273,25 @@ static double __pyx_f_10pyreadstat_16_readstat_writer_convert_datetimelike_to_nu __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 182, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 184, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } - __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_datetime); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 182, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_datetime); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 184, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_datetime); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 182, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_datetime); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 184, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_min); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 182, __pyx_L1_error) + __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_min); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 184, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = PyNumber_Subtract(__pyx_t_1, __pyx_t_6); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 182, __pyx_L1_error) + __pyx_t_2 = PyNumber_Subtract(__pyx_t_1, __pyx_t_6); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 184, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_v_tdelta = __pyx_t_2; __pyx_t_2 = 0; - /* "pyreadstat/_readstat_writer.pyx":183 + /* "pyreadstat/_readstat_writer.pyx":185 * if type(curval) == datetime.time: * tdelta = datetime.datetime.combine(datetime.date.min, curval) - datetime.datetime.min * tstamp = tdelta.total_seconds() # <<<<<<<<<<<<<< @@ -5262,14 +5305,14 @@ static double __pyx_f_10pyreadstat_16_readstat_writer_convert_datetimelike_to_nu PyObject *__pyx_callargs[2] = {__pyx_t_6, NULL}; __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_total_seconds, __pyx_callargs+__pyx_t_8, (1-__pyx_t_8) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 183, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 185, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } - __pyx_t_9 = __Pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_9 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 183, __pyx_L1_error) + __pyx_t_9 = __Pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_9 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 185, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_v_tstamp = __pyx_t_9; - /* "pyreadstat/_readstat_writer.pyx":185 + /* "pyreadstat/_readstat_writer.pyx":187 * tstamp = tdelta.total_seconds() * #tstamp += offset * 86400 * if file_format == FILE_FORMAT_DTA: # <<<<<<<<<<<<<< @@ -5279,7 +5322,7 @@ static double __pyx_f_10pyreadstat_16_readstat_writer_convert_datetimelike_to_nu __pyx_t_3 = (__pyx_v_file_format == __pyx_e_10pyreadstat_16_readstat_writer_FILE_FORMAT_DTA); if (__pyx_t_3) { - /* "pyreadstat/_readstat_writer.pyx":187 + /* "pyreadstat/_readstat_writer.pyx":189 * if file_format == FILE_FORMAT_DTA: * # stata stores in milliseconds * tstamp *= 1000 # <<<<<<<<<<<<<< @@ -5288,7 +5331,7 @@ static double __pyx_f_10pyreadstat_16_readstat_writer_convert_datetimelike_to_nu */ __pyx_v_tstamp = (__pyx_v_tstamp * 1000.0); - /* "pyreadstat/_readstat_writer.pyx":185 + /* "pyreadstat/_readstat_writer.pyx":187 * tstamp = tdelta.total_seconds() * #tstamp += offset * 86400 * if file_format == FILE_FORMAT_DTA: # <<<<<<<<<<<<<< @@ -5297,7 +5340,7 @@ static double __pyx_f_10pyreadstat_16_readstat_writer_convert_datetimelike_to_nu */ } - /* "pyreadstat/_readstat_writer.pyx":181 + /* "pyreadstat/_readstat_writer.pyx":183 * * elif curtype == PYWRITER_TIME: * if type(curval) == datetime.time: # <<<<<<<<<<<<<< @@ -5306,7 +5349,7 @@ static double __pyx_f_10pyreadstat_16_readstat_writer_convert_datetimelike_to_nu */ } - /* "pyreadstat/_readstat_writer.pyx":180 + /* "pyreadstat/_readstat_writer.pyx":182 * tstamp *= 86400 * * elif curtype == PYWRITER_TIME: # <<<<<<<<<<<<<< @@ -5317,7 +5360,7 @@ static double __pyx_f_10pyreadstat_16_readstat_writer_convert_datetimelike_to_nu default: break; } - /* "pyreadstat/_readstat_writer.pyx":189 + /* "pyreadstat/_readstat_writer.pyx":191 * tstamp *= 1000 * * return tstamp # <<<<<<<<<<<<<< @@ -5327,7 +5370,7 @@ static double __pyx_f_10pyreadstat_16_readstat_writer_convert_datetimelike_to_nu __pyx_r = __pyx_v_tstamp; goto __pyx_L0; - /* "pyreadstat/_readstat_writer.pyx":145 + /* "pyreadstat/_readstat_writer.pyx":147 * return df * * cdef double convert_datetimelike_to_number(dst_file_format file_format, pywriter_variable_type curtype, object curval) except *: # <<<<<<<<<<<<<< @@ -5352,7 +5395,7 @@ static double __pyx_f_10pyreadstat_16_readstat_writer_convert_datetimelike_to_nu return __pyx_r; } -/* "pyreadstat/_readstat_writer.pyx":191 +/* "pyreadstat/_readstat_writer.pyx":193 * return tstamp * * cdef char * get_datetimelike_format_for_readstat(dst_file_format file_format, pywriter_variable_type curtype): # <<<<<<<<<<<<<< @@ -5373,7 +5416,7 @@ static char *__pyx_f_10pyreadstat_16_readstat_writer_get_datetimelike_format_for int __pyx_clineno = 0; __Pyx_RefNannySetupContext("get_datetimelike_format_for_readstat", 0); - /* "pyreadstat/_readstat_writer.pyx":196 + /* "pyreadstat/_readstat_writer.pyx":198 * """ * * if curtype == PYWRITER_DATE or curtype == PYWRITER_DATE64: # <<<<<<<<<<<<<< @@ -5384,7 +5427,7 @@ static char *__pyx_f_10pyreadstat_16_readstat_writer_get_datetimelike_format_for case __pyx_e_10pyreadstat_16_readstat_writer_PYWRITER_DATE: case __pyx_e_10pyreadstat_16_readstat_writer_PYWRITER_DATE64: - /* "pyreadstat/_readstat_writer.pyx":197 + /* "pyreadstat/_readstat_writer.pyx":199 * * if curtype == PYWRITER_DATE or curtype == PYWRITER_DATE64: * if file_format == FILE_FORMAT_DTA: # <<<<<<<<<<<<<< @@ -5394,7 +5437,7 @@ static char *__pyx_f_10pyreadstat_16_readstat_writer_get_datetimelike_format_for __pyx_t_1 = (__pyx_v_file_format == __pyx_e_10pyreadstat_16_readstat_writer_FILE_FORMAT_DTA); if (__pyx_t_1) { - /* "pyreadstat/_readstat_writer.pyx":198 + /* "pyreadstat/_readstat_writer.pyx":200 * if curtype == PYWRITER_DATE or curtype == PYWRITER_DATE64: * if file_format == FILE_FORMAT_DTA: * return "%td" # <<<<<<<<<<<<<< @@ -5404,7 +5447,7 @@ static char *__pyx_f_10pyreadstat_16_readstat_writer_get_datetimelike_format_for __pyx_r = ((char *)"%td"); goto __pyx_L0; - /* "pyreadstat/_readstat_writer.pyx":197 + /* "pyreadstat/_readstat_writer.pyx":199 * * if curtype == PYWRITER_DATE or curtype == PYWRITER_DATE64: * if file_format == FILE_FORMAT_DTA: # <<<<<<<<<<<<<< @@ -5413,7 +5456,7 @@ static char *__pyx_f_10pyreadstat_16_readstat_writer_get_datetimelike_format_for */ } - /* "pyreadstat/_readstat_writer.pyx":202 + /* "pyreadstat/_readstat_writer.pyx":204 * # return "DATE11" * else: * return "DATE" # <<<<<<<<<<<<<< @@ -5425,7 +5468,7 @@ static char *__pyx_f_10pyreadstat_16_readstat_writer_get_datetimelike_format_for goto __pyx_L0; } - /* "pyreadstat/_readstat_writer.pyx":196 + /* "pyreadstat/_readstat_writer.pyx":198 * """ * * if curtype == PYWRITER_DATE or curtype == PYWRITER_DATE64: # <<<<<<<<<<<<<< @@ -5435,7 +5478,7 @@ static char *__pyx_f_10pyreadstat_16_readstat_writer_get_datetimelike_format_for break; case __pyx_e_10pyreadstat_16_readstat_writer_PYWRITER_DATETIME: - /* "pyreadstat/_readstat_writer.pyx":203 + /* "pyreadstat/_readstat_writer.pyx":205 * else: * return "DATE" * elif curtype == PYWRITER_DATETIME or curtype == PYWRITER_DATETIME64: # <<<<<<<<<<<<<< @@ -5444,7 +5487,7 @@ static char *__pyx_f_10pyreadstat_16_readstat_writer_get_datetimelike_format_for */ case __pyx_e_10pyreadstat_16_readstat_writer_PYWRITER_DATETIME64: - /* "pyreadstat/_readstat_writer.pyx":204 + /* "pyreadstat/_readstat_writer.pyx":206 * return "DATE" * elif curtype == PYWRITER_DATETIME or curtype == PYWRITER_DATETIME64: * if file_format == FILE_FORMAT_DTA: # <<<<<<<<<<<<<< @@ -5454,7 +5497,7 @@ static char *__pyx_f_10pyreadstat_16_readstat_writer_get_datetimelike_format_for __pyx_t_1 = (__pyx_v_file_format == __pyx_e_10pyreadstat_16_readstat_writer_FILE_FORMAT_DTA); if (__pyx_t_1) { - /* "pyreadstat/_readstat_writer.pyx":205 + /* "pyreadstat/_readstat_writer.pyx":207 * elif curtype == PYWRITER_DATETIME or curtype == PYWRITER_DATETIME64: * if file_format == FILE_FORMAT_DTA: * return "%tc" # <<<<<<<<<<<<<< @@ -5464,7 +5507,7 @@ static char *__pyx_f_10pyreadstat_16_readstat_writer_get_datetimelike_format_for __pyx_r = ((char *)"%tc"); goto __pyx_L0; - /* "pyreadstat/_readstat_writer.pyx":204 + /* "pyreadstat/_readstat_writer.pyx":206 * return "DATE" * elif curtype == PYWRITER_DATETIME or curtype == PYWRITER_DATETIME64: * if file_format == FILE_FORMAT_DTA: # <<<<<<<<<<<<<< @@ -5473,7 +5516,7 @@ static char *__pyx_f_10pyreadstat_16_readstat_writer_get_datetimelike_format_for */ } - /* "pyreadstat/_readstat_writer.pyx":209 + /* "pyreadstat/_readstat_writer.pyx":211 * # return "DATETIME20" * else: * return "DATETIME" # <<<<<<<<<<<<<< @@ -5485,7 +5528,7 @@ static char *__pyx_f_10pyreadstat_16_readstat_writer_get_datetimelike_format_for goto __pyx_L0; } - /* "pyreadstat/_readstat_writer.pyx":203 + /* "pyreadstat/_readstat_writer.pyx":205 * else: * return "DATE" * elif curtype == PYWRITER_DATETIME or curtype == PYWRITER_DATETIME64: # <<<<<<<<<<<<<< @@ -5495,7 +5538,7 @@ static char *__pyx_f_10pyreadstat_16_readstat_writer_get_datetimelike_format_for break; case __pyx_e_10pyreadstat_16_readstat_writer_PYWRITER_TIME: - /* "pyreadstat/_readstat_writer.pyx":210 + /* "pyreadstat/_readstat_writer.pyx":212 * else: * return "DATETIME" * elif curtype == PYWRITER_TIME or curtype == PYWRITER_TIME64: # <<<<<<<<<<<<<< @@ -5504,7 +5547,7 @@ static char *__pyx_f_10pyreadstat_16_readstat_writer_get_datetimelike_format_for */ case __pyx_e_10pyreadstat_16_readstat_writer_PYWRITER_TIME64: - /* "pyreadstat/_readstat_writer.pyx":211 + /* "pyreadstat/_readstat_writer.pyx":213 * return "DATETIME" * elif curtype == PYWRITER_TIME or curtype == PYWRITER_TIME64: * if file_format == FILE_FORMAT_DTA: # <<<<<<<<<<<<<< @@ -5514,7 +5557,7 @@ static char *__pyx_f_10pyreadstat_16_readstat_writer_get_datetimelike_format_for __pyx_t_1 = (__pyx_v_file_format == __pyx_e_10pyreadstat_16_readstat_writer_FILE_FORMAT_DTA); if (__pyx_t_1) { - /* "pyreadstat/_readstat_writer.pyx":212 + /* "pyreadstat/_readstat_writer.pyx":214 * elif curtype == PYWRITER_TIME or curtype == PYWRITER_TIME64: * if file_format == FILE_FORMAT_DTA: * return "%tcHH:MM:SS" # <<<<<<<<<<<<<< @@ -5524,7 +5567,7 @@ static char *__pyx_f_10pyreadstat_16_readstat_writer_get_datetimelike_format_for __pyx_r = ((char *)"%tcHH:MM:SS"); goto __pyx_L0; - /* "pyreadstat/_readstat_writer.pyx":211 + /* "pyreadstat/_readstat_writer.pyx":213 * return "DATETIME" * elif curtype == PYWRITER_TIME or curtype == PYWRITER_TIME64: * if file_format == FILE_FORMAT_DTA: # <<<<<<<<<<<<<< @@ -5533,7 +5576,7 @@ static char *__pyx_f_10pyreadstat_16_readstat_writer_get_datetimelike_format_for */ } - /* "pyreadstat/_readstat_writer.pyx":214 + /* "pyreadstat/_readstat_writer.pyx":216 * return "%tcHH:MM:SS" * else: * return "TIME" # <<<<<<<<<<<<<< @@ -5545,7 +5588,7 @@ static char *__pyx_f_10pyreadstat_16_readstat_writer_get_datetimelike_format_for goto __pyx_L0; } - /* "pyreadstat/_readstat_writer.pyx":210 + /* "pyreadstat/_readstat_writer.pyx":212 * else: * return "DATETIME" * elif curtype == PYWRITER_TIME or curtype == PYWRITER_TIME64: # <<<<<<<<<<<<<< @@ -5555,7 +5598,7 @@ static char *__pyx_f_10pyreadstat_16_readstat_writer_get_datetimelike_format_for break; default: - /* "pyreadstat/_readstat_writer.pyx":216 + /* "pyreadstat/_readstat_writer.pyx":218 * return "TIME" * else: * raise PyreadstatError("Unknown pywriter variable format") # <<<<<<<<<<<<<< @@ -5563,7 +5606,7 @@ static char *__pyx_f_10pyreadstat_16_readstat_writer_get_datetimelike_format_for * cdef int get_narwhals_str_series_max_length(object series, dict value_labels, bint isobject): */ __pyx_t_3 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 216, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 218, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = 1; #if CYTHON_UNPACK_METHODS @@ -5582,16 +5625,16 @@ static char *__pyx_f_10pyreadstat_16_readstat_writer_get_datetimelike_format_for __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 216, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 218, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } __Pyx_Raise(__pyx_t_2, 0, 0, 0); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __PYX_ERR(0, 216, __pyx_L1_error) + __PYX_ERR(0, 218, __pyx_L1_error) break; } - /* "pyreadstat/_readstat_writer.pyx":191 + /* "pyreadstat/_readstat_writer.pyx":193 * return tstamp * * cdef char * get_datetimelike_format_for_readstat(dst_file_format file_format, pywriter_variable_type curtype): # <<<<<<<<<<<<<< @@ -5611,7 +5654,7 @@ static char *__pyx_f_10pyreadstat_16_readstat_writer_get_datetimelike_format_for return __pyx_r; } -/* "pyreadstat/_readstat_writer.pyx":218 +/* "pyreadstat/_readstat_writer.pyx":220 * raise PyreadstatError("Unknown pywriter variable format") * * cdef int get_narwhals_str_series_max_length(object series, dict value_labels, bint isobject): # <<<<<<<<<<<<<< @@ -5641,7 +5684,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_get_narwhals_str_series_max_l int __pyx_clineno = 0; __Pyx_RefNannySetupContext("get_narwhals_str_series_max_length", 0); - /* "pyreadstat/_readstat_writer.pyx":223 + /* "pyreadstat/_readstat_writer.pyx":225 * cdef object val * cdef bytes temp * cdef int max_length = 1 # <<<<<<<<<<<<<< @@ -5650,7 +5693,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_get_narwhals_str_series_max_l */ __pyx_v_max_length = 1; - /* "pyreadstat/_readstat_writer.pyx":226 + /* "pyreadstat/_readstat_writer.pyx":228 * cdef int curlen * cdef list labels * for val in series: # <<<<<<<<<<<<<< @@ -5662,9 +5705,9 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_get_narwhals_str_series_max_l __pyx_t_2 = 0; __pyx_t_3 = NULL; } else { - __pyx_t_2 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_v_series); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 226, __pyx_L1_error) + __pyx_t_2 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_v_series); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 228, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_3 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 226, __pyx_L1_error) + __pyx_t_3 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 228, __pyx_L1_error) } for (;;) { if (likely(!__pyx_t_3)) { @@ -5672,7 +5715,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_get_narwhals_str_series_max_l { Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_1); #if !CYTHON_ASSUME_SAFE_SIZE - if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 226, __pyx_L1_error) + if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 228, __pyx_L1_error) #endif if (__pyx_t_2 >= __pyx_temp) break; } @@ -5682,7 +5725,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_get_narwhals_str_series_max_l { Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_1); #if !CYTHON_ASSUME_SAFE_SIZE - if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 226, __pyx_L1_error) + if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 228, __pyx_L1_error) #endif if (__pyx_t_2 >= __pyx_temp) break; } @@ -5693,13 +5736,13 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_get_narwhals_str_series_max_l #endif ++__pyx_t_2; } - if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 226, __pyx_L1_error) + if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 228, __pyx_L1_error) } else { __pyx_t_4 = __pyx_t_3(__pyx_t_1); if (unlikely(!__pyx_t_4)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { - if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(0, 226, __pyx_L1_error) + if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(0, 228, __pyx_L1_error) PyErr_Clear(); } break; @@ -5709,7 +5752,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_get_narwhals_str_series_max_l __Pyx_XDECREF_SET(__pyx_v_val, __pyx_t_4); __pyx_t_4 = 0; - /* "pyreadstat/_readstat_writer.pyx":227 + /* "pyreadstat/_readstat_writer.pyx":229 * cdef list labels * for val in series: * if isobject: # <<<<<<<<<<<<<< @@ -5718,19 +5761,19 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_get_narwhals_str_series_max_l */ if (__pyx_v_isobject) { - /* "pyreadstat/_readstat_writer.pyx":228 + /* "pyreadstat/_readstat_writer.pyx":230 * for val in series: * if isobject: * val = str(val) # <<<<<<<<<<<<<< * temp = val.encode("utf-8") * curlen = len(temp) */ - __pyx_t_4 = __Pyx_PyObject_Unicode(__pyx_v_val); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 228, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyObject_Unicode(__pyx_v_val); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 230, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF_SET(__pyx_v_val, __pyx_t_4); __pyx_t_4 = 0; - /* "pyreadstat/_readstat_writer.pyx":227 + /* "pyreadstat/_readstat_writer.pyx":229 * cdef list labels * for val in series: * if isobject: # <<<<<<<<<<<<<< @@ -5739,7 +5782,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_get_narwhals_str_series_max_l */ } - /* "pyreadstat/_readstat_writer.pyx":229 + /* "pyreadstat/_readstat_writer.pyx":231 * if isobject: * val = str(val) * temp = val.encode("utf-8") # <<<<<<<<<<<<<< @@ -5753,14 +5796,14 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_get_narwhals_str_series_max_l PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_mstate_global->__pyx_kp_u_utf_8}; __pyx_t_4 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_encode, __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 229, __pyx_L1_error) + if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 231, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); } - if (!(likely(PyBytes_CheckExact(__pyx_t_4))||((__pyx_t_4) == Py_None) || __Pyx_RaiseUnexpectedTypeError("bytes", __pyx_t_4))) __PYX_ERR(0, 229, __pyx_L1_error) + if (!(likely(PyBytes_CheckExact(__pyx_t_4))||((__pyx_t_4) == Py_None) || __Pyx_RaiseUnexpectedTypeError("bytes", __pyx_t_4))) __PYX_ERR(0, 231, __pyx_L1_error) __Pyx_XDECREF_SET(__pyx_v_temp, ((PyObject*)__pyx_t_4)); __pyx_t_4 = 0; - /* "pyreadstat/_readstat_writer.pyx":230 + /* "pyreadstat/_readstat_writer.pyx":232 * val = str(val) * temp = val.encode("utf-8") * curlen = len(temp) # <<<<<<<<<<<<<< @@ -5769,12 +5812,12 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_get_narwhals_str_series_max_l */ if (unlikely(__pyx_v_temp == Py_None)) { PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()"); - __PYX_ERR(0, 230, __pyx_L1_error) + __PYX_ERR(0, 232, __pyx_L1_error) } - __pyx_t_7 = __Pyx_PyBytes_GET_SIZE(__pyx_v_temp); if (unlikely(__pyx_t_7 == ((Py_ssize_t)-1))) __PYX_ERR(0, 230, __pyx_L1_error) + __pyx_t_7 = __Pyx_PyBytes_GET_SIZE(__pyx_v_temp); if (unlikely(__pyx_t_7 == ((Py_ssize_t)-1))) __PYX_ERR(0, 232, __pyx_L1_error) __pyx_v_curlen = __pyx_t_7; - /* "pyreadstat/_readstat_writer.pyx":231 + /* "pyreadstat/_readstat_writer.pyx":233 * temp = val.encode("utf-8") * curlen = len(temp) * if curlen > max_length: # <<<<<<<<<<<<<< @@ -5784,7 +5827,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_get_narwhals_str_series_max_l __pyx_t_8 = (__pyx_v_curlen > __pyx_v_max_length); if (__pyx_t_8) { - /* "pyreadstat/_readstat_writer.pyx":232 + /* "pyreadstat/_readstat_writer.pyx":234 * curlen = len(temp) * if curlen > max_length: * max_length = curlen # <<<<<<<<<<<<<< @@ -5793,7 +5836,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_get_narwhals_str_series_max_l */ __pyx_v_max_length = __pyx_v_curlen; - /* "pyreadstat/_readstat_writer.pyx":231 + /* "pyreadstat/_readstat_writer.pyx":233 * temp = val.encode("utf-8") * curlen = len(temp) * if curlen > max_length: # <<<<<<<<<<<<<< @@ -5802,7 +5845,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_get_narwhals_str_series_max_l */ } - /* "pyreadstat/_readstat_writer.pyx":226 + /* "pyreadstat/_readstat_writer.pyx":228 * cdef int curlen * cdef list labels * for val in series: # <<<<<<<<<<<<<< @@ -5812,17 +5855,17 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_get_narwhals_str_series_max_l } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "pyreadstat/_readstat_writer.pyx":233 + /* "pyreadstat/_readstat_writer.pyx":235 * if curlen > max_length: * max_length = curlen * if value_labels: # <<<<<<<<<<<<<< * labels = list(value_labels.keys()) * for lab in labels: */ - __pyx_t_8 = __Pyx_PyObject_IsTrue(__pyx_v_value_labels); if (unlikely((__pyx_t_8 < 0))) __PYX_ERR(0, 233, __pyx_L1_error) + __pyx_t_8 = __Pyx_PyObject_IsTrue(__pyx_v_value_labels); if (unlikely((__pyx_t_8 < 0))) __PYX_ERR(0, 235, __pyx_L1_error) if (__pyx_t_8) { - /* "pyreadstat/_readstat_writer.pyx":234 + /* "pyreadstat/_readstat_writer.pyx":236 * max_length = curlen * if value_labels: * labels = list(value_labels.keys()) # <<<<<<<<<<<<<< @@ -5831,17 +5874,17 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_get_narwhals_str_series_max_l */ if (unlikely(__pyx_v_value_labels == Py_None)) { PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "keys"); - __PYX_ERR(0, 234, __pyx_L1_error) + __PYX_ERR(0, 236, __pyx_L1_error) } - __pyx_t_1 = __Pyx_PyDict_Keys(__pyx_v_value_labels); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 234, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyDict_Keys(__pyx_v_value_labels); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 236, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_4 = __Pyx_PySequence_ListKeepNew(__pyx_t_1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 234, __pyx_L1_error) + __pyx_t_4 = __Pyx_PySequence_ListKeepNew(__pyx_t_1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 236, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_v_labels = ((PyObject*)__pyx_t_4); __pyx_t_4 = 0; - /* "pyreadstat/_readstat_writer.pyx":235 + /* "pyreadstat/_readstat_writer.pyx":237 * if value_labels: * labels = list(value_labels.keys()) * for lab in labels: # <<<<<<<<<<<<<< @@ -5854,31 +5897,31 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_get_narwhals_str_series_max_l { Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_4); #if !CYTHON_ASSUME_SAFE_SIZE - if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 235, __pyx_L1_error) + if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 237, __pyx_L1_error) #endif if (__pyx_t_2 >= __pyx_temp) break; } __pyx_t_1 = __Pyx_PyList_GetItemRefFast(__pyx_t_4, __pyx_t_2, __Pyx_ReferenceSharing_OwnStrongReference); ++__pyx_t_2; - if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 235, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 237, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_XDECREF_SET(__pyx_v_lab, __pyx_t_1); __pyx_t_1 = 0; - /* "pyreadstat/_readstat_writer.pyx":236 + /* "pyreadstat/_readstat_writer.pyx":238 * labels = list(value_labels.keys()) * for lab in labels: * curlen = len(str(lab)) # <<<<<<<<<<<<<< * if curlen > max_length: * max_length = curlen */ - __pyx_t_1 = __Pyx_PyObject_Unicode(__pyx_v_lab); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 236, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_Unicode(__pyx_v_lab); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 238, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_7 = __Pyx_PyUnicode_GET_LENGTH(__pyx_t_1); if (unlikely(__pyx_t_7 == ((Py_ssize_t)-1))) __PYX_ERR(0, 236, __pyx_L1_error) + __pyx_t_7 = __Pyx_PyUnicode_GET_LENGTH(__pyx_t_1); if (unlikely(__pyx_t_7 == ((Py_ssize_t)-1))) __PYX_ERR(0, 238, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_v_curlen = __pyx_t_7; - /* "pyreadstat/_readstat_writer.pyx":237 + /* "pyreadstat/_readstat_writer.pyx":239 * for lab in labels: * curlen = len(str(lab)) * if curlen > max_length: # <<<<<<<<<<<<<< @@ -5888,7 +5931,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_get_narwhals_str_series_max_l __pyx_t_8 = (__pyx_v_curlen > __pyx_v_max_length); if (__pyx_t_8) { - /* "pyreadstat/_readstat_writer.pyx":238 + /* "pyreadstat/_readstat_writer.pyx":240 * curlen = len(str(lab)) * if curlen > max_length: * max_length = curlen # <<<<<<<<<<<<<< @@ -5897,7 +5940,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_get_narwhals_str_series_max_l */ __pyx_v_max_length = __pyx_v_curlen; - /* "pyreadstat/_readstat_writer.pyx":237 + /* "pyreadstat/_readstat_writer.pyx":239 * for lab in labels: * curlen = len(str(lab)) * if curlen > max_length: # <<<<<<<<<<<<<< @@ -5906,7 +5949,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_get_narwhals_str_series_max_l */ } - /* "pyreadstat/_readstat_writer.pyx":235 + /* "pyreadstat/_readstat_writer.pyx":237 * if value_labels: * labels = list(value_labels.keys()) * for lab in labels: # <<<<<<<<<<<<<< @@ -5916,7 +5959,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_get_narwhals_str_series_max_l } __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - /* "pyreadstat/_readstat_writer.pyx":233 + /* "pyreadstat/_readstat_writer.pyx":235 * if curlen > max_length: * max_length = curlen * if value_labels: # <<<<<<<<<<<<<< @@ -5925,7 +5968,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_get_narwhals_str_series_max_l */ } - /* "pyreadstat/_readstat_writer.pyx":240 + /* "pyreadstat/_readstat_writer.pyx":242 * max_length = curlen * * return max_length # <<<<<<<<<<<<<< @@ -5935,7 +5978,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_get_narwhals_str_series_max_l __pyx_r = __pyx_v_max_length; goto __pyx_L0; - /* "pyreadstat/_readstat_writer.pyx":218 + /* "pyreadstat/_readstat_writer.pyx":220 * raise PyreadstatError("Unknown pywriter variable format") * * cdef int get_narwhals_str_series_max_length(object series, dict value_labels, bint isobject): # <<<<<<<<<<<<<< @@ -5959,7 +6002,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_get_narwhals_str_series_max_l return __pyx_r; } -/* "pyreadstat/_readstat_writer.pyx":243 +/* "pyreadstat/_readstat_writer.pyx":245 * * * cdef int check_series_all_same_types(object series, object type_to_check): # <<<<<<<<<<<<<< @@ -5981,7 +6024,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_check_series_all_same_types(P int __pyx_clineno = 0; __Pyx_RefNannySetupContext("check_series_all_same_types", 0); - /* "pyreadstat/_readstat_writer.pyx":247 + /* "pyreadstat/_readstat_writer.pyx":249 * 1 if all elements in a series are of type type_to_check, 0 otherwise * """ * for val in series: # <<<<<<<<<<<<<< @@ -5993,9 +6036,9 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_check_series_all_same_types(P __pyx_t_2 = 0; __pyx_t_3 = NULL; } else { - __pyx_t_2 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_v_series); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 247, __pyx_L1_error) + __pyx_t_2 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_v_series); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 249, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_3 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 247, __pyx_L1_error) + __pyx_t_3 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 249, __pyx_L1_error) } for (;;) { if (likely(!__pyx_t_3)) { @@ -6003,7 +6046,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_check_series_all_same_types(P { Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_1); #if !CYTHON_ASSUME_SAFE_SIZE - if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 247, __pyx_L1_error) + if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 249, __pyx_L1_error) #endif if (__pyx_t_2 >= __pyx_temp) break; } @@ -6013,7 +6056,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_check_series_all_same_types(P { Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_1); #if !CYTHON_ASSUME_SAFE_SIZE - if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 247, __pyx_L1_error) + if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 249, __pyx_L1_error) #endif if (__pyx_t_2 >= __pyx_temp) break; } @@ -6024,13 +6067,13 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_check_series_all_same_types(P #endif ++__pyx_t_2; } - if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 247, __pyx_L1_error) + if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 249, __pyx_L1_error) } else { __pyx_t_4 = __pyx_t_3(__pyx_t_1); if (unlikely(!__pyx_t_4)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { - if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(0, 247, __pyx_L1_error) + if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(0, 249, __pyx_L1_error) PyErr_Clear(); } break; @@ -6040,19 +6083,19 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_check_series_all_same_types(P __Pyx_XDECREF_SET(__pyx_v_val, __pyx_t_4); __pyx_t_4 = 0; - /* "pyreadstat/_readstat_writer.pyx":248 + /* "pyreadstat/_readstat_writer.pyx":250 * """ * for val in series: * if type(val) != type_to_check: # <<<<<<<<<<<<<< * return 0 * return 1 */ - __pyx_t_4 = PyObject_RichCompare(((PyObject *)Py_TYPE(__pyx_v_val)), __pyx_v_type_to_check, Py_NE); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 248, __pyx_L1_error) - __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely((__pyx_t_5 < 0))) __PYX_ERR(0, 248, __pyx_L1_error) + __pyx_t_4 = PyObject_RichCompare(((PyObject *)Py_TYPE(__pyx_v_val)), __pyx_v_type_to_check, Py_NE); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 250, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely((__pyx_t_5 < 0))) __PYX_ERR(0, 250, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (__pyx_t_5) { - /* "pyreadstat/_readstat_writer.pyx":249 + /* "pyreadstat/_readstat_writer.pyx":251 * for val in series: * if type(val) != type_to_check: * return 0 # <<<<<<<<<<<<<< @@ -6063,7 +6106,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_check_series_all_same_types(P __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; goto __pyx_L0; - /* "pyreadstat/_readstat_writer.pyx":248 + /* "pyreadstat/_readstat_writer.pyx":250 * """ * for val in series: * if type(val) != type_to_check: # <<<<<<<<<<<<<< @@ -6072,7 +6115,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_check_series_all_same_types(P */ } - /* "pyreadstat/_readstat_writer.pyx":247 + /* "pyreadstat/_readstat_writer.pyx":249 * 1 if all elements in a series are of type type_to_check, 0 otherwise * """ * for val in series: # <<<<<<<<<<<<<< @@ -6082,7 +6125,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_check_series_all_same_types(P } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "pyreadstat/_readstat_writer.pyx":250 + /* "pyreadstat/_readstat_writer.pyx":252 * if type(val) != type_to_check: * return 0 * return 1 # <<<<<<<<<<<<<< @@ -6092,7 +6135,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_check_series_all_same_types(P __pyx_r = 1; goto __pyx_L0; - /* "pyreadstat/_readstat_writer.pyx":243 + /* "pyreadstat/_readstat_writer.pyx":245 * * * cdef int check_series_all_same_types(object series, object type_to_check): # <<<<<<<<<<<<<< @@ -6112,7 +6155,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_check_series_all_same_types(P return __pyx_r; } -/* "pyreadstat/_readstat_writer.pyx":252 +/* "pyreadstat/_readstat_writer.pyx":254 * return 1 * * cdef list get_narwhals_column_types(object df, dict missing_user_values, dict variable_value_labels, int dta_str_max_len): # <<<<<<<<<<<<<< @@ -6155,19 +6198,19 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_get_narwhals_column_typ __Pyx_RefNannySetupContext("get_narwhals_column_types", 0); __Pyx_INCREF(__pyx_v_variable_value_labels); - /* "pyreadstat/_readstat_writer.pyx":263 + /* "pyreadstat/_readstat_writer.pyx":265 * cdef int max_length, isobject * cdef bint has_missing * cdef list result = list() # <<<<<<<<<<<<<< * cdef int equal, is_missing * */ - __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 263, __pyx_L1_error) + __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 265, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_result = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - /* "pyreadstat/_readstat_writer.pyx":266 + /* "pyreadstat/_readstat_writer.pyx":268 * cdef int equal, is_missing * * if variable_value_labels is None: # <<<<<<<<<<<<<< @@ -6177,19 +6220,19 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_get_narwhals_column_typ __pyx_t_2 = (__pyx_v_variable_value_labels == ((PyObject*)Py_None)); if (__pyx_t_2) { - /* "pyreadstat/_readstat_writer.pyx":267 + /* "pyreadstat/_readstat_writer.pyx":269 * * if variable_value_labels is None: * variable_value_labels = dict() # <<<<<<<<<<<<<< * * for curseries in df.iter_columns(): */ - __pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 267, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 269, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_variable_value_labels, ((PyObject*)__pyx_t_1)); __pyx_t_1 = 0; - /* "pyreadstat/_readstat_writer.pyx":266 + /* "pyreadstat/_readstat_writer.pyx":268 * cdef int equal, is_missing * * if variable_value_labels is None: # <<<<<<<<<<<<<< @@ -6198,7 +6241,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_get_narwhals_column_typ */ } - /* "pyreadstat/_readstat_writer.pyx":269 + /* "pyreadstat/_readstat_writer.pyx":271 * variable_value_labels = dict() * * for curseries in df.iter_columns(): # <<<<<<<<<<<<<< @@ -6212,7 +6255,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_get_narwhals_column_typ PyObject *__pyx_callargs[2] = {__pyx_t_3, NULL}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_iter_columns, __pyx_callargs+__pyx_t_4, (1-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 269, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 271, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) { @@ -6220,9 +6263,9 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_get_narwhals_column_typ __pyx_t_5 = 0; __pyx_t_6 = NULL; } else { - __pyx_t_5 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 269, __pyx_L1_error) + __pyx_t_5 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 271, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_6 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_3); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 269, __pyx_L1_error) + __pyx_t_6 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_3); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 271, __pyx_L1_error) } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; for (;;) { @@ -6231,7 +6274,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_get_narwhals_column_typ { Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_3); #if !CYTHON_ASSUME_SAFE_SIZE - if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 269, __pyx_L1_error) + if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 271, __pyx_L1_error) #endif if (__pyx_t_5 >= __pyx_temp) break; } @@ -6241,7 +6284,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_get_narwhals_column_typ { Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_3); #if !CYTHON_ASSUME_SAFE_SIZE - if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 269, __pyx_L1_error) + if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 271, __pyx_L1_error) #endif if (__pyx_t_5 >= __pyx_temp) break; } @@ -6252,13 +6295,13 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_get_narwhals_column_typ #endif ++__pyx_t_5; } - if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 269, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 271, __pyx_L1_error) } else { __pyx_t_1 = __pyx_t_6(__pyx_t_3); if (unlikely(!__pyx_t_1)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { - if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(0, 269, __pyx_L1_error) + if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(0, 271, __pyx_L1_error) PyErr_Clear(); } break; @@ -6268,56 +6311,56 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_get_narwhals_column_typ __Pyx_XDECREF_SET(__pyx_v_curseries, __pyx_t_1); __pyx_t_1 = 0; - /* "pyreadstat/_readstat_writer.pyx":270 + /* "pyreadstat/_readstat_writer.pyx":272 * * for curseries in df.iter_columns(): * col_name = curseries.name # <<<<<<<<<<<<<< * col_type = curseries.dtype * */ - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_curseries, __pyx_mstate_global->__pyx_n_u_name); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 270, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_curseries, __pyx_mstate_global->__pyx_n_u_name); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 272, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_XDECREF_SET(__pyx_v_col_name, __pyx_t_1); __pyx_t_1 = 0; - /* "pyreadstat/_readstat_writer.pyx":271 + /* "pyreadstat/_readstat_writer.pyx":273 * for curseries in df.iter_columns(): * col_name = curseries.name * col_type = curseries.dtype # <<<<<<<<<<<<<< * * # if categorical, let's use the type of the categories */ - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_curseries, __pyx_mstate_global->__pyx_n_u_dtype); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 271, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_curseries, __pyx_mstate_global->__pyx_n_u_dtype); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 273, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_XDECREF_SET(__pyx_v_col_type, __pyx_t_1); __pyx_t_1 = 0; - /* "pyreadstat/_readstat_writer.pyx":274 + /* "pyreadstat/_readstat_writer.pyx":276 * * # if categorical, let's use the type of the categories * if col_type == nw.Categorical: # <<<<<<<<<<<<<< * col_type = curseries.cat.get_categories().dtype * */ - __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_nw); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 274, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_nw); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 276, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_Categorical); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 274, __pyx_L1_error) + __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_Categorical); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 276, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyObject_RichCompare(__pyx_v_col_type, __pyx_t_7, Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 274, __pyx_L1_error) + __pyx_t_1 = PyObject_RichCompare(__pyx_v_col_type, __pyx_t_7, Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 276, __pyx_L1_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 274, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 276, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_2) { - /* "pyreadstat/_readstat_writer.pyx":275 + /* "pyreadstat/_readstat_writer.pyx":277 * # if categorical, let's use the type of the categories * if col_type == nw.Categorical: * col_type = curseries.cat.get_categories().dtype # <<<<<<<<<<<<<< * * # we need to remove nulls for series inspection */ - __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_curseries, __pyx_mstate_global->__pyx_n_u_cat); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 275, __pyx_L1_error) + __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_curseries, __pyx_mstate_global->__pyx_n_u_cat); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 277, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_7 = __pyx_t_8; __Pyx_INCREF(__pyx_t_7); @@ -6327,16 +6370,16 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_get_narwhals_column_typ __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_get_categories, __pyx_callargs+__pyx_t_4, (1-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 275, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 277, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } - __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_dtype); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 275, __pyx_L1_error) + __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_dtype); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 277, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF_SET(__pyx_v_col_type, __pyx_t_8); __pyx_t_8 = 0; - /* "pyreadstat/_readstat_writer.pyx":274 + /* "pyreadstat/_readstat_writer.pyx":276 * * # if categorical, let's use the type of the categories * if col_type == nw.Categorical: # <<<<<<<<<<<<<< @@ -6345,7 +6388,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_get_narwhals_column_typ */ } - /* "pyreadstat/_readstat_writer.pyx":278 + /* "pyreadstat/_readstat_writer.pyx":280 * * # we need to remove nulls for series inspection * has_missing = curseries.null_count()>0 # <<<<<<<<<<<<<< @@ -6359,14 +6402,14 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_get_narwhals_column_typ PyObject *__pyx_callargs[2] = {__pyx_t_1, NULL}; __pyx_t_8 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_null_count, __pyx_callargs+__pyx_t_4, (1-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 278, __pyx_L1_error) + if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 280, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); } - __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 278, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 280, __pyx_L1_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_v_has_missing = (__pyx_t_2 > 0); - /* "pyreadstat/_readstat_writer.pyx":279 + /* "pyreadstat/_readstat_writer.pyx":281 * # we need to remove nulls for series inspection * has_missing = curseries.null_count()>0 * if has_missing: # <<<<<<<<<<<<<< @@ -6375,7 +6418,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_get_narwhals_column_typ */ if (__pyx_v_has_missing) { - /* "pyreadstat/_readstat_writer.pyx":280 + /* "pyreadstat/_readstat_writer.pyx":282 * has_missing = curseries.null_count()>0 * if has_missing: * curseries = curseries.drop_nulls() # <<<<<<<<<<<<<< @@ -6389,13 +6432,13 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_get_narwhals_column_typ PyObject *__pyx_callargs[2] = {__pyx_t_1, NULL}; __pyx_t_8 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_drop_nulls, __pyx_callargs+__pyx_t_4, (1-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 280, __pyx_L1_error) + if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 282, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); } __Pyx_DECREF_SET(__pyx_v_curseries, __pyx_t_8); __pyx_t_8 = 0; - /* "pyreadstat/_readstat_writer.pyx":279 + /* "pyreadstat/_readstat_writer.pyx":281 * # we need to remove nulls for series inspection * has_missing = curseries.null_count()>0 * if has_missing: # <<<<<<<<<<<<<< @@ -6404,7 +6447,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_get_narwhals_column_typ */ } - /* "pyreadstat/_readstat_writer.pyx":287 + /* "pyreadstat/_readstat_writer.pyx":289 * # missing values and missing_user_values. * # we need to take out those before inspecting the object series futher * curuser_missing = None # <<<<<<<<<<<<<< @@ -6414,17 +6457,17 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_get_narwhals_column_typ __Pyx_INCREF(Py_None); __Pyx_XDECREF_SET(__pyx_v_curuser_missing, Py_None); - /* "pyreadstat/_readstat_writer.pyx":288 + /* "pyreadstat/_readstat_writer.pyx":290 * # we need to take out those before inspecting the object series futher * curuser_missing = None * if missing_user_values: # <<<<<<<<<<<<<< * curuser_missing = missing_user_values.get(col_name) * if curuser_missing: */ - __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_missing_user_values); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 288, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_missing_user_values); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 290, __pyx_L1_error) if (__pyx_t_2) { - /* "pyreadstat/_readstat_writer.pyx":289 + /* "pyreadstat/_readstat_writer.pyx":291 * curuser_missing = None * if missing_user_values: * curuser_missing = missing_user_values.get(col_name) # <<<<<<<<<<<<<< @@ -6433,14 +6476,14 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_get_narwhals_column_typ */ if (unlikely(__pyx_v_missing_user_values == Py_None)) { PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "get"); - __PYX_ERR(0, 289, __pyx_L1_error) + __PYX_ERR(0, 291, __pyx_L1_error) } - __pyx_t_8 = __Pyx_PyDict_GetItemDefault(__pyx_v_missing_user_values, __pyx_v_col_name, Py_None); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 289, __pyx_L1_error) + __pyx_t_8 = __Pyx_PyDict_GetItemDefault(__pyx_v_missing_user_values, __pyx_v_col_name, Py_None); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 291, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF_SET(__pyx_v_curuser_missing, __pyx_t_8); __pyx_t_8 = 0; - /* "pyreadstat/_readstat_writer.pyx":288 + /* "pyreadstat/_readstat_writer.pyx":290 * # we need to take out those before inspecting the object series futher * curuser_missing = None * if missing_user_values: # <<<<<<<<<<<<<< @@ -6449,24 +6492,24 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_get_narwhals_column_typ */ } - /* "pyreadstat/_readstat_writer.pyx":290 + /* "pyreadstat/_readstat_writer.pyx":292 * if missing_user_values: * curuser_missing = missing_user_values.get(col_name) * if curuser_missing: # <<<<<<<<<<<<<< * if not df.implementation.is_pandas() and col_type == nw.Object: * curseries = [x for x in curseries if x not in curuser_missing] */ - __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_curuser_missing); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 290, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_curuser_missing); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 292, __pyx_L1_error) if (__pyx_t_2) { - /* "pyreadstat/_readstat_writer.pyx":291 + /* "pyreadstat/_readstat_writer.pyx":293 * curuser_missing = missing_user_values.get(col_name) * if curuser_missing: * if not df.implementation.is_pandas() and col_type == nw.Object: # <<<<<<<<<<<<<< * curseries = [x for x in curseries if x not in curuser_missing] * else: */ - __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_df, __pyx_mstate_global->__pyx_n_u_implementation); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 291, __pyx_L1_error) + __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_df, __pyx_mstate_global->__pyx_n_u_implementation); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 293, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_1 = __pyx_t_7; __Pyx_INCREF(__pyx_t_1); @@ -6476,10 +6519,10 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_get_narwhals_column_typ __pyx_t_8 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_is_pandas, __pyx_callargs+__pyx_t_4, (1-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 291, __pyx_L1_error) + if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 293, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); } - __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely((__pyx_t_9 < 0))) __PYX_ERR(0, 291, __pyx_L1_error) + __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely((__pyx_t_9 < 0))) __PYX_ERR(0, 293, __pyx_L1_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_t_10 = (!__pyx_t_9); if (__pyx_t_10) { @@ -6487,36 +6530,36 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_get_narwhals_column_typ __pyx_t_2 = __pyx_t_10; goto __pyx_L11_bool_binop_done; } - __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_nw); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 291, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_nw); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 293, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); - __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_Object); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 291, __pyx_L1_error) + __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_Object); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 293, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - __pyx_t_8 = PyObject_RichCompare(__pyx_v_col_type, __pyx_t_7, Py_EQ); __Pyx_XGOTREF(__pyx_t_8); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 291, __pyx_L1_error) + __pyx_t_8 = PyObject_RichCompare(__pyx_v_col_type, __pyx_t_7, Py_EQ); __Pyx_XGOTREF(__pyx_t_8); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 293, __pyx_L1_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely((__pyx_t_10 < 0))) __PYX_ERR(0, 291, __pyx_L1_error) + __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely((__pyx_t_10 < 0))) __PYX_ERR(0, 293, __pyx_L1_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_t_2 = __pyx_t_10; __pyx_L11_bool_binop_done:; if (__pyx_t_2) { - /* "pyreadstat/_readstat_writer.pyx":292 + /* "pyreadstat/_readstat_writer.pyx":294 * if curuser_missing: * if not df.implementation.is_pandas() and col_type == nw.Object: * curseries = [x for x in curseries if x not in curuser_missing] # <<<<<<<<<<<<<< * else: * curseries = curseries.filter(~curseries.is_in(curuser_missing)) */ - __pyx_t_8 = PyList_New(0); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 292, __pyx_L1_error) + __pyx_t_8 = PyList_New(0); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 294, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); if (likely(PyList_CheckExact(__pyx_v_curseries)) || PyTuple_CheckExact(__pyx_v_curseries)) { __pyx_t_7 = __pyx_v_curseries; __Pyx_INCREF(__pyx_t_7); __pyx_t_11 = 0; __pyx_t_12 = NULL; } else { - __pyx_t_11 = -1; __pyx_t_7 = PyObject_GetIter(__pyx_v_curseries); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 292, __pyx_L1_error) + __pyx_t_11 = -1; __pyx_t_7 = PyObject_GetIter(__pyx_v_curseries); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 294, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); - __pyx_t_12 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_7); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 292, __pyx_L1_error) + __pyx_t_12 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_7); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 294, __pyx_L1_error) } for (;;) { if (likely(!__pyx_t_12)) { @@ -6524,7 +6567,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_get_narwhals_column_typ { Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_7); #if !CYTHON_ASSUME_SAFE_SIZE - if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 292, __pyx_L1_error) + if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 294, __pyx_L1_error) #endif if (__pyx_t_11 >= __pyx_temp) break; } @@ -6534,7 +6577,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_get_narwhals_column_typ { Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_7); #if !CYTHON_ASSUME_SAFE_SIZE - if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 292, __pyx_L1_error) + if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 294, __pyx_L1_error) #endif if (__pyx_t_11 >= __pyx_temp) break; } @@ -6545,13 +6588,13 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_get_narwhals_column_typ #endif ++__pyx_t_11; } - if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 292, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 294, __pyx_L1_error) } else { __pyx_t_1 = __pyx_t_12(__pyx_t_7); if (unlikely(!__pyx_t_1)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { - if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(0, 292, __pyx_L1_error) + if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(0, 294, __pyx_L1_error) PyErr_Clear(); } break; @@ -6560,16 +6603,16 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_get_narwhals_column_typ __Pyx_GOTREF(__pyx_t_1); __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_v_x, __pyx_v_curuser_missing, Py_NE)); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 292, __pyx_L1_error) + __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_v_x, __pyx_v_curuser_missing, Py_NE)); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 294, __pyx_L1_error) if (__pyx_t_2) { - if (unlikely(__Pyx_ListComp_Append(__pyx_t_8, (PyObject*)__pyx_v_x))) __PYX_ERR(0, 292, __pyx_L1_error) + if (unlikely(__Pyx_ListComp_Append(__pyx_t_8, (PyObject*)__pyx_v_x))) __PYX_ERR(0, 294, __pyx_L1_error) } } __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF_SET(__pyx_v_curseries, __pyx_t_8); __pyx_t_8 = 0; - /* "pyreadstat/_readstat_writer.pyx":291 + /* "pyreadstat/_readstat_writer.pyx":293 * curuser_missing = missing_user_values.get(col_name) * if curuser_missing: * if not df.implementation.is_pandas() and col_type == nw.Object: # <<<<<<<<<<<<<< @@ -6579,7 +6622,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_get_narwhals_column_typ goto __pyx_L10; } - /* "pyreadstat/_readstat_writer.pyx":294 + /* "pyreadstat/_readstat_writer.pyx":296 * curseries = [x for x in curseries if x not in curuser_missing] * else: * curseries = curseries.filter(~curseries.is_in(curuser_missing)) # <<<<<<<<<<<<<< @@ -6596,10 +6639,10 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_get_narwhals_column_typ PyObject *__pyx_callargs[2] = {__pyx_t_13, __pyx_v_curuser_missing}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_is_in, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 294, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 296, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } - __pyx_t_13 = PyNumber_Invert(__pyx_t_1); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 294, __pyx_L1_error) + __pyx_t_13 = PyNumber_Invert(__pyx_t_1); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 296, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_4 = 0; @@ -6608,7 +6651,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_get_narwhals_column_typ __pyx_t_8 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_filter, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; - if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 294, __pyx_L1_error) + if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 296, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); } __Pyx_DECREF_SET(__pyx_v_curseries, __pyx_t_8); @@ -6616,44 +6659,44 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_get_narwhals_column_typ } __pyx_L10:; - /* "pyreadstat/_readstat_writer.pyx":295 + /* "pyreadstat/_readstat_writer.pyx":297 * else: * curseries = curseries.filter(~curseries.is_in(curuser_missing)) * if not len(curseries): # <<<<<<<<<<<<<< * result.append((PYWRITER_DOUBLE, 0, 1, None)) * continue */ - __pyx_t_11 = PyObject_Length(__pyx_v_curseries); if (unlikely(__pyx_t_11 == ((Py_ssize_t)-1))) __PYX_ERR(0, 295, __pyx_L1_error) + __pyx_t_11 = PyObject_Length(__pyx_v_curseries); if (unlikely(__pyx_t_11 == ((Py_ssize_t)-1))) __PYX_ERR(0, 297, __pyx_L1_error) __pyx_t_2 = (!(__pyx_t_11 != 0)); if (__pyx_t_2) { - /* "pyreadstat/_readstat_writer.pyx":296 + /* "pyreadstat/_readstat_writer.pyx":298 * curseries = curseries.filter(~curseries.is_in(curuser_missing)) * if not len(curseries): * result.append((PYWRITER_DOUBLE, 0, 1, None)) # <<<<<<<<<<<<<< * continue * */ - __pyx_t_8 = __Pyx_PyLong_From___pyx_t_10pyreadstat_16_readstat_writer_pywriter_variable_type(__pyx_e_10pyreadstat_16_readstat_writer_PYWRITER_DOUBLE); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 296, __pyx_L1_error) + __pyx_t_8 = __Pyx_PyLong_From___pyx_t_10pyreadstat_16_readstat_writer_pywriter_variable_type(__pyx_e_10pyreadstat_16_readstat_writer_PYWRITER_DOUBLE); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 298, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); - __pyx_t_13 = PyTuple_New(4); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 296, __pyx_L1_error) + __pyx_t_13 = PyTuple_New(4); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 298, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_GIVEREF(__pyx_t_8); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_13, 0, __pyx_t_8) != (0)) __PYX_ERR(0, 296, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_13, 0, __pyx_t_8) != (0)) __PYX_ERR(0, 298, __pyx_L1_error); __Pyx_INCREF(__pyx_mstate_global->__pyx_int_0); __Pyx_GIVEREF(__pyx_mstate_global->__pyx_int_0); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_13, 1, __pyx_mstate_global->__pyx_int_0) != (0)) __PYX_ERR(0, 296, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_13, 1, __pyx_mstate_global->__pyx_int_0) != (0)) __PYX_ERR(0, 298, __pyx_L1_error); __Pyx_INCREF(__pyx_mstate_global->__pyx_int_1); __Pyx_GIVEREF(__pyx_mstate_global->__pyx_int_1); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_13, 2, __pyx_mstate_global->__pyx_int_1) != (0)) __PYX_ERR(0, 296, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_13, 2, __pyx_mstate_global->__pyx_int_1) != (0)) __PYX_ERR(0, 298, __pyx_L1_error); __Pyx_INCREF(Py_None); __Pyx_GIVEREF(Py_None); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_13, 3, Py_None) != (0)) __PYX_ERR(0, 296, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_13, 3, Py_None) != (0)) __PYX_ERR(0, 298, __pyx_L1_error); __pyx_t_8 = 0; - __pyx_t_14 = __Pyx_PyList_Append(__pyx_v_result, __pyx_t_13); if (unlikely(__pyx_t_14 == ((int)-1))) __PYX_ERR(0, 296, __pyx_L1_error) + __pyx_t_14 = __Pyx_PyList_Append(__pyx_v_result, __pyx_t_13); if (unlikely(__pyx_t_14 == ((int)-1))) __PYX_ERR(0, 298, __pyx_L1_error) __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; - /* "pyreadstat/_readstat_writer.pyx":297 + /* "pyreadstat/_readstat_writer.pyx":299 * if not len(curseries): * result.append((PYWRITER_DOUBLE, 0, 1, None)) * continue # <<<<<<<<<<<<<< @@ -6662,7 +6705,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_get_narwhals_column_typ */ goto __pyx_L4_continue; - /* "pyreadstat/_readstat_writer.pyx":295 + /* "pyreadstat/_readstat_writer.pyx":297 * else: * curseries = curseries.filter(~curseries.is_in(curuser_missing)) * if not len(curseries): # <<<<<<<<<<<<<< @@ -6671,7 +6714,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_get_narwhals_column_typ */ } - /* "pyreadstat/_readstat_writer.pyx":290 + /* "pyreadstat/_readstat_writer.pyx":292 * if missing_user_values: * curuser_missing = missing_user_values.get(col_name) * if curuser_missing: # <<<<<<<<<<<<<< @@ -6680,7 +6723,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_get_narwhals_column_typ */ } - /* "pyreadstat/_readstat_writer.pyx":299 + /* "pyreadstat/_readstat_writer.pyx":301 * continue * * max_length = 0 # <<<<<<<<<<<<<< @@ -6689,7 +6732,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_get_narwhals_column_typ */ __pyx_v_max_length = 0; - /* "pyreadstat/_readstat_writer.pyx":300 + /* "pyreadstat/_readstat_writer.pyx":302 * * max_length = 0 * curtype = None # <<<<<<<<<<<<<< @@ -6699,7 +6742,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_get_narwhals_column_typ __Pyx_INCREF(Py_None); __Pyx_XDECREF_SET(__pyx_v_curtype, ((PyTypeObject*)Py_None)); - /* "pyreadstat/_readstat_writer.pyx":301 + /* "pyreadstat/_readstat_writer.pyx":303 * max_length = 0 * curtype = None * equal = True # <<<<<<<<<<<<<< @@ -6708,64 +6751,64 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_get_narwhals_column_typ */ __pyx_v_equal = 1; - /* "pyreadstat/_readstat_writer.pyx":303 + /* "pyreadstat/_readstat_writer.pyx":305 * equal = True * # let's deal first with object type, Enum could also be anything * if col_type == nw.Object or col_type==nw.Enum: # <<<<<<<<<<<<<< * curtype = type(curseries[0]) * equal = check_series_all_same_types(curseries, curtype) */ - __Pyx_GetModuleGlobalName(__pyx_t_13, __pyx_mstate_global->__pyx_n_u_nw); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 303, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_13, __pyx_mstate_global->__pyx_n_u_nw); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 305, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); - __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_13, __pyx_mstate_global->__pyx_n_u_Object); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 303, __pyx_L1_error) + __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_13, __pyx_mstate_global->__pyx_n_u_Object); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 305, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; - __pyx_t_13 = PyObject_RichCompare(__pyx_v_col_type, __pyx_t_8, Py_EQ); __Pyx_XGOTREF(__pyx_t_13); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 303, __pyx_L1_error) + __pyx_t_13 = PyObject_RichCompare(__pyx_v_col_type, __pyx_t_8, Py_EQ); __Pyx_XGOTREF(__pyx_t_13); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 305, __pyx_L1_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_t_13); if (unlikely((__pyx_t_10 < 0))) __PYX_ERR(0, 303, __pyx_L1_error) + __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_t_13); if (unlikely((__pyx_t_10 < 0))) __PYX_ERR(0, 305, __pyx_L1_error) __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; if (!__pyx_t_10) { } else { __pyx_t_2 = __pyx_t_10; goto __pyx_L19_bool_binop_done; } - __Pyx_GetModuleGlobalName(__pyx_t_13, __pyx_mstate_global->__pyx_n_u_nw); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 303, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_13, __pyx_mstate_global->__pyx_n_u_nw); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 305, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); - __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_13, __pyx_mstate_global->__pyx_n_u_Enum); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 303, __pyx_L1_error) + __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_13, __pyx_mstate_global->__pyx_n_u_Enum); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 305, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; - __pyx_t_13 = PyObject_RichCompare(__pyx_v_col_type, __pyx_t_8, Py_EQ); __Pyx_XGOTREF(__pyx_t_13); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 303, __pyx_L1_error) + __pyx_t_13 = PyObject_RichCompare(__pyx_v_col_type, __pyx_t_8, Py_EQ); __Pyx_XGOTREF(__pyx_t_13); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 305, __pyx_L1_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_t_13); if (unlikely((__pyx_t_10 < 0))) __PYX_ERR(0, 303, __pyx_L1_error) + __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_t_13); if (unlikely((__pyx_t_10 < 0))) __PYX_ERR(0, 305, __pyx_L1_error) __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; __pyx_t_2 = __pyx_t_10; __pyx_L19_bool_binop_done:; if (__pyx_t_2) { - /* "pyreadstat/_readstat_writer.pyx":304 + /* "pyreadstat/_readstat_writer.pyx":306 * # let's deal first with object type, Enum could also be anything * if col_type == nw.Object or col_type==nw.Enum: * curtype = type(curseries[0]) # <<<<<<<<<<<<<< * equal = check_series_all_same_types(curseries, curtype) * # if all elements are equal, they could be a few we expect to be an object class */ - __pyx_t_13 = __Pyx_GetItemInt(__pyx_v_curseries, 0, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_OwnStrongReference); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 304, __pyx_L1_error) + __pyx_t_13 = __Pyx_GetItemInt(__pyx_v_curseries, 0, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_OwnStrongReference); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 306, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_INCREF(((PyObject *)Py_TYPE(__pyx_t_13))); __Pyx_DECREF_SET(__pyx_v_curtype, ((PyTypeObject*)((PyObject *)Py_TYPE(__pyx_t_13)))); __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; - /* "pyreadstat/_readstat_writer.pyx":305 + /* "pyreadstat/_readstat_writer.pyx":307 * if col_type == nw.Object or col_type==nw.Enum: * curtype = type(curseries[0]) * equal = check_series_all_same_types(curseries, curtype) # <<<<<<<<<<<<<< * # if all elements are equal, they could be a few we expect to be an object class * # or it could be that they are some other common types (numeric) after removing the missing_user_values */ - __pyx_t_15 = __pyx_f_10pyreadstat_16_readstat_writer_check_series_all_same_types(__pyx_v_curseries, ((PyObject *)__pyx_v_curtype)); if (unlikely(__pyx_t_15 == ((int)-1) && PyErr_Occurred())) __PYX_ERR(0, 305, __pyx_L1_error) + __pyx_t_15 = __pyx_f_10pyreadstat_16_readstat_writer_check_series_all_same_types(__pyx_v_curseries, ((PyObject *)__pyx_v_curtype)); if (unlikely(__pyx_t_15 == ((int)-1) && PyErr_Occurred())) __PYX_ERR(0, 307, __pyx_L1_error) __pyx_v_equal = __pyx_t_15; - /* "pyreadstat/_readstat_writer.pyx":311 + /* "pyreadstat/_readstat_writer.pyx":313 * # if not all the elements of the series are from the same type, then we deal with it at the end * # as other types we don't know what to do with * if equal: # <<<<<<<<<<<<<< @@ -6775,53 +6818,53 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_get_narwhals_column_typ __pyx_t_2 = (__pyx_v_equal != 0); if (__pyx_t_2) { - /* "pyreadstat/_readstat_writer.pyx":313 + /* "pyreadstat/_readstat_writer.pyx":315 * if equal: * # types expected to be object * if curtype == datetime.date: # <<<<<<<<<<<<<< * result.append((PYWRITER_DATE, 0, has_missing, None)) * continue */ - __Pyx_GetModuleGlobalName(__pyx_t_13, __pyx_mstate_global->__pyx_n_u_datetime); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 313, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_13, __pyx_mstate_global->__pyx_n_u_datetime); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 315, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); - __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_13, __pyx_mstate_global->__pyx_n_u_date); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 313, __pyx_L1_error) + __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_13, __pyx_mstate_global->__pyx_n_u_date); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 315, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; - __pyx_t_13 = PyObject_RichCompare(((PyObject *)__pyx_v_curtype), __pyx_t_8, Py_EQ); __Pyx_XGOTREF(__pyx_t_13); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 313, __pyx_L1_error) + __pyx_t_13 = PyObject_RichCompare(((PyObject *)__pyx_v_curtype), __pyx_t_8, Py_EQ); __Pyx_XGOTREF(__pyx_t_13); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 315, __pyx_L1_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_13); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 313, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_13); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 315, __pyx_L1_error) __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; if (__pyx_t_2) { - /* "pyreadstat/_readstat_writer.pyx":314 + /* "pyreadstat/_readstat_writer.pyx":316 * # types expected to be object * if curtype == datetime.date: * result.append((PYWRITER_DATE, 0, has_missing, None)) # <<<<<<<<<<<<<< * continue * elif curtype == datetime.datetime: */ - __pyx_t_13 = __Pyx_PyLong_From___pyx_t_10pyreadstat_16_readstat_writer_pywriter_variable_type(__pyx_e_10pyreadstat_16_readstat_writer_PYWRITER_DATE); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 314, __pyx_L1_error) + __pyx_t_13 = __Pyx_PyLong_From___pyx_t_10pyreadstat_16_readstat_writer_pywriter_variable_type(__pyx_e_10pyreadstat_16_readstat_writer_PYWRITER_DATE); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 316, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); - __pyx_t_8 = __Pyx_PyBool_FromLong(__pyx_v_has_missing); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 314, __pyx_L1_error) + __pyx_t_8 = __Pyx_PyBool_FromLong(__pyx_v_has_missing); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 316, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); - __pyx_t_7 = PyTuple_New(4); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 314, __pyx_L1_error) + __pyx_t_7 = PyTuple_New(4); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 316, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_GIVEREF(__pyx_t_13); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_13) != (0)) __PYX_ERR(0, 314, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_13) != (0)) __PYX_ERR(0, 316, __pyx_L1_error); __Pyx_INCREF(__pyx_mstate_global->__pyx_int_0); __Pyx_GIVEREF(__pyx_mstate_global->__pyx_int_0); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_mstate_global->__pyx_int_0) != (0)) __PYX_ERR(0, 314, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_mstate_global->__pyx_int_0) != (0)) __PYX_ERR(0, 316, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_8); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 2, __pyx_t_8) != (0)) __PYX_ERR(0, 314, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 2, __pyx_t_8) != (0)) __PYX_ERR(0, 316, __pyx_L1_error); __Pyx_INCREF(Py_None); __Pyx_GIVEREF(Py_None); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 3, Py_None) != (0)) __PYX_ERR(0, 314, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 3, Py_None) != (0)) __PYX_ERR(0, 316, __pyx_L1_error); __pyx_t_13 = 0; __pyx_t_8 = 0; - __pyx_t_14 = __Pyx_PyList_Append(__pyx_v_result, __pyx_t_7); if (unlikely(__pyx_t_14 == ((int)-1))) __PYX_ERR(0, 314, __pyx_L1_error) + __pyx_t_14 = __Pyx_PyList_Append(__pyx_v_result, __pyx_t_7); if (unlikely(__pyx_t_14 == ((int)-1))) __PYX_ERR(0, 316, __pyx_L1_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - /* "pyreadstat/_readstat_writer.pyx":315 + /* "pyreadstat/_readstat_writer.pyx":317 * if curtype == datetime.date: * result.append((PYWRITER_DATE, 0, has_missing, None)) * continue # <<<<<<<<<<<<<< @@ -6830,7 +6873,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_get_narwhals_column_typ */ goto __pyx_L4_continue; - /* "pyreadstat/_readstat_writer.pyx":313 + /* "pyreadstat/_readstat_writer.pyx":315 * if equal: * # types expected to be object * if curtype == datetime.date: # <<<<<<<<<<<<<< @@ -6839,53 +6882,53 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_get_narwhals_column_typ */ } - /* "pyreadstat/_readstat_writer.pyx":316 + /* "pyreadstat/_readstat_writer.pyx":318 * result.append((PYWRITER_DATE, 0, has_missing, None)) * continue * elif curtype == datetime.datetime: # <<<<<<<<<<<<<< * result.append((PYWRITER_DATETIME, 0, has_missing, None)) * continue */ - __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_mstate_global->__pyx_n_u_datetime); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 316, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_mstate_global->__pyx_n_u_datetime); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 318, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); - __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_mstate_global->__pyx_n_u_datetime); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 316, __pyx_L1_error) + __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_mstate_global->__pyx_n_u_datetime); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 318, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __pyx_t_7 = PyObject_RichCompare(((PyObject *)__pyx_v_curtype), __pyx_t_8, Py_EQ); __Pyx_XGOTREF(__pyx_t_7); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 316, __pyx_L1_error) + __pyx_t_7 = PyObject_RichCompare(((PyObject *)__pyx_v_curtype), __pyx_t_8, Py_EQ); __Pyx_XGOTREF(__pyx_t_7); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 318, __pyx_L1_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 316, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 318, __pyx_L1_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; if (__pyx_t_2) { - /* "pyreadstat/_readstat_writer.pyx":317 + /* "pyreadstat/_readstat_writer.pyx":319 * continue * elif curtype == datetime.datetime: * result.append((PYWRITER_DATETIME, 0, has_missing, None)) # <<<<<<<<<<<<<< * continue * elif curtype == datetime.time: */ - __pyx_t_7 = __Pyx_PyLong_From___pyx_t_10pyreadstat_16_readstat_writer_pywriter_variable_type(__pyx_e_10pyreadstat_16_readstat_writer_PYWRITER_DATETIME); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 317, __pyx_L1_error) + __pyx_t_7 = __Pyx_PyLong_From___pyx_t_10pyreadstat_16_readstat_writer_pywriter_variable_type(__pyx_e_10pyreadstat_16_readstat_writer_PYWRITER_DATETIME); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 319, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); - __pyx_t_8 = __Pyx_PyBool_FromLong(__pyx_v_has_missing); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 317, __pyx_L1_error) + __pyx_t_8 = __Pyx_PyBool_FromLong(__pyx_v_has_missing); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 319, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); - __pyx_t_13 = PyTuple_New(4); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 317, __pyx_L1_error) + __pyx_t_13 = PyTuple_New(4); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 319, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_GIVEREF(__pyx_t_7); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_13, 0, __pyx_t_7) != (0)) __PYX_ERR(0, 317, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_13, 0, __pyx_t_7) != (0)) __PYX_ERR(0, 319, __pyx_L1_error); __Pyx_INCREF(__pyx_mstate_global->__pyx_int_0); __Pyx_GIVEREF(__pyx_mstate_global->__pyx_int_0); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_13, 1, __pyx_mstate_global->__pyx_int_0) != (0)) __PYX_ERR(0, 317, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_13, 1, __pyx_mstate_global->__pyx_int_0) != (0)) __PYX_ERR(0, 319, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_8); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_13, 2, __pyx_t_8) != (0)) __PYX_ERR(0, 317, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_13, 2, __pyx_t_8) != (0)) __PYX_ERR(0, 319, __pyx_L1_error); __Pyx_INCREF(Py_None); __Pyx_GIVEREF(Py_None); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_13, 3, Py_None) != (0)) __PYX_ERR(0, 317, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_13, 3, Py_None) != (0)) __PYX_ERR(0, 319, __pyx_L1_error); __pyx_t_7 = 0; __pyx_t_8 = 0; - __pyx_t_14 = __Pyx_PyList_Append(__pyx_v_result, __pyx_t_13); if (unlikely(__pyx_t_14 == ((int)-1))) __PYX_ERR(0, 317, __pyx_L1_error) + __pyx_t_14 = __Pyx_PyList_Append(__pyx_v_result, __pyx_t_13); if (unlikely(__pyx_t_14 == ((int)-1))) __PYX_ERR(0, 319, __pyx_L1_error) __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; - /* "pyreadstat/_readstat_writer.pyx":318 + /* "pyreadstat/_readstat_writer.pyx":320 * elif curtype == datetime.datetime: * result.append((PYWRITER_DATETIME, 0, has_missing, None)) * continue # <<<<<<<<<<<<<< @@ -6894,7 +6937,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_get_narwhals_column_typ */ goto __pyx_L4_continue; - /* "pyreadstat/_readstat_writer.pyx":316 + /* "pyreadstat/_readstat_writer.pyx":318 * result.append((PYWRITER_DATE, 0, has_missing, None)) * continue * elif curtype == datetime.datetime: # <<<<<<<<<<<<<< @@ -6903,53 +6946,53 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_get_narwhals_column_typ */ } - /* "pyreadstat/_readstat_writer.pyx":319 + /* "pyreadstat/_readstat_writer.pyx":321 * result.append((PYWRITER_DATETIME, 0, has_missing, None)) * continue * elif curtype == datetime.time: # <<<<<<<<<<<<<< * result.append((PYWRITER_TIME, 0, has_missing, None)) * continue */ - __Pyx_GetModuleGlobalName(__pyx_t_13, __pyx_mstate_global->__pyx_n_u_datetime); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 319, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_13, __pyx_mstate_global->__pyx_n_u_datetime); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 321, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); - __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_13, __pyx_mstate_global->__pyx_n_u_time); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 319, __pyx_L1_error) + __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_13, __pyx_mstate_global->__pyx_n_u_time); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 321, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; - __pyx_t_13 = PyObject_RichCompare(((PyObject *)__pyx_v_curtype), __pyx_t_8, Py_EQ); __Pyx_XGOTREF(__pyx_t_13); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 319, __pyx_L1_error) + __pyx_t_13 = PyObject_RichCompare(((PyObject *)__pyx_v_curtype), __pyx_t_8, Py_EQ); __Pyx_XGOTREF(__pyx_t_13); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 321, __pyx_L1_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_13); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 319, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_13); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 321, __pyx_L1_error) __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; if (__pyx_t_2) { - /* "pyreadstat/_readstat_writer.pyx":320 + /* "pyreadstat/_readstat_writer.pyx":322 * continue * elif curtype == datetime.time: * result.append((PYWRITER_TIME, 0, has_missing, None)) # <<<<<<<<<<<<<< * continue * */ - __pyx_t_13 = __Pyx_PyLong_From___pyx_t_10pyreadstat_16_readstat_writer_pywriter_variable_type(__pyx_e_10pyreadstat_16_readstat_writer_PYWRITER_TIME); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 320, __pyx_L1_error) + __pyx_t_13 = __Pyx_PyLong_From___pyx_t_10pyreadstat_16_readstat_writer_pywriter_variable_type(__pyx_e_10pyreadstat_16_readstat_writer_PYWRITER_TIME); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 322, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); - __pyx_t_8 = __Pyx_PyBool_FromLong(__pyx_v_has_missing); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 320, __pyx_L1_error) + __pyx_t_8 = __Pyx_PyBool_FromLong(__pyx_v_has_missing); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 322, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); - __pyx_t_7 = PyTuple_New(4); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 320, __pyx_L1_error) + __pyx_t_7 = PyTuple_New(4); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 322, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_GIVEREF(__pyx_t_13); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_13) != (0)) __PYX_ERR(0, 320, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_13) != (0)) __PYX_ERR(0, 322, __pyx_L1_error); __Pyx_INCREF(__pyx_mstate_global->__pyx_int_0); __Pyx_GIVEREF(__pyx_mstate_global->__pyx_int_0); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_mstate_global->__pyx_int_0) != (0)) __PYX_ERR(0, 320, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_mstate_global->__pyx_int_0) != (0)) __PYX_ERR(0, 322, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_8); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 2, __pyx_t_8) != (0)) __PYX_ERR(0, 320, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 2, __pyx_t_8) != (0)) __PYX_ERR(0, 322, __pyx_L1_error); __Pyx_INCREF(Py_None); __Pyx_GIVEREF(Py_None); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 3, Py_None) != (0)) __PYX_ERR(0, 320, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 3, Py_None) != (0)) __PYX_ERR(0, 322, __pyx_L1_error); __pyx_t_13 = 0; __pyx_t_8 = 0; - __pyx_t_14 = __Pyx_PyList_Append(__pyx_v_result, __pyx_t_7); if (unlikely(__pyx_t_14 == ((int)-1))) __PYX_ERR(0, 320, __pyx_L1_error) + __pyx_t_14 = __Pyx_PyList_Append(__pyx_v_result, __pyx_t_7); if (unlikely(__pyx_t_14 == ((int)-1))) __PYX_ERR(0, 322, __pyx_L1_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - /* "pyreadstat/_readstat_writer.pyx":321 + /* "pyreadstat/_readstat_writer.pyx":323 * elif curtype == datetime.time: * result.append((PYWRITER_TIME, 0, has_missing, None)) * continue # <<<<<<<<<<<<<< @@ -6958,7 +7001,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_get_narwhals_column_typ */ goto __pyx_L4_continue; - /* "pyreadstat/_readstat_writer.pyx":319 + /* "pyreadstat/_readstat_writer.pyx":321 * result.append((PYWRITER_DATETIME, 0, has_missing, None)) * continue * elif curtype == datetime.time: # <<<<<<<<<<<<<< @@ -6967,7 +7010,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_get_narwhals_column_typ */ } - /* "pyreadstat/_readstat_writer.pyx":311 + /* "pyreadstat/_readstat_writer.pyx":313 * # if not all the elements of the series are from the same type, then we deal with it at the end * # as other types we don't know what to do with * if equal: # <<<<<<<<<<<<<< @@ -6976,7 +7019,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_get_narwhals_column_typ */ } - /* "pyreadstat/_readstat_writer.pyx":303 + /* "pyreadstat/_readstat_writer.pyx":305 * equal = True * # let's deal first with object type, Enum could also be anything * if col_type == nw.Object or col_type==nw.Enum: # <<<<<<<<<<<<<< @@ -6985,7 +7028,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_get_narwhals_column_typ */ } - /* "pyreadstat/_readstat_writer.pyx":324 + /* "pyreadstat/_readstat_writer.pyx":326 * * # numeric types: they could contain missing_user_values * if equal and (col_type in float_types or curtype == float): # <<<<<<<<<<<<<< @@ -7000,50 +7043,50 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_get_narwhals_column_typ } if (unlikely(__pyx_v_10pyreadstat_16_readstat_writer_float_types == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable"); - __PYX_ERR(0, 324, __pyx_L1_error) + __PYX_ERR(0, 326, __pyx_L1_error) } - __pyx_t_10 = (__Pyx_PySet_ContainsTF(__pyx_v_col_type, __pyx_v_10pyreadstat_16_readstat_writer_float_types, Py_EQ)); if (unlikely((__pyx_t_10 < 0))) __PYX_ERR(0, 324, __pyx_L1_error) + __pyx_t_10 = (__Pyx_PySet_ContainsTF(__pyx_v_col_type, __pyx_v_10pyreadstat_16_readstat_writer_float_types, Py_EQ)); if (unlikely((__pyx_t_10 < 0))) __PYX_ERR(0, 326, __pyx_L1_error) if (!__pyx_t_10) { } else { __pyx_t_2 = __pyx_t_10; goto __pyx_L24_bool_binop_done; } - __pyx_t_7 = PyObject_RichCompare(((PyObject *)__pyx_v_curtype), ((PyObject *)(&PyFloat_Type)), Py_EQ); __Pyx_XGOTREF(__pyx_t_7); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 324, __pyx_L1_error) - __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely((__pyx_t_10 < 0))) __PYX_ERR(0, 324, __pyx_L1_error) + __pyx_t_7 = PyObject_RichCompare(((PyObject *)__pyx_v_curtype), ((PyObject *)(&PyFloat_Type)), Py_EQ); __Pyx_XGOTREF(__pyx_t_7); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 326, __pyx_L1_error) + __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely((__pyx_t_10 < 0))) __PYX_ERR(0, 326, __pyx_L1_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_2 = __pyx_t_10; __pyx_L24_bool_binop_done:; if (__pyx_t_2) { - /* "pyreadstat/_readstat_writer.pyx":325 + /* "pyreadstat/_readstat_writer.pyx":327 * # numeric types: they could contain missing_user_values * if equal and (col_type in float_types or curtype == float): * result.append((PYWRITER_DOUBLE, 0, has_missing, None)) # <<<<<<<<<<<<<< * continue * elif equal and (col_type in int_types or curtype == int): */ - __pyx_t_7 = __Pyx_PyLong_From___pyx_t_10pyreadstat_16_readstat_writer_pywriter_variable_type(__pyx_e_10pyreadstat_16_readstat_writer_PYWRITER_DOUBLE); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 325, __pyx_L1_error) + __pyx_t_7 = __Pyx_PyLong_From___pyx_t_10pyreadstat_16_readstat_writer_pywriter_variable_type(__pyx_e_10pyreadstat_16_readstat_writer_PYWRITER_DOUBLE); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 327, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); - __pyx_t_8 = __Pyx_PyBool_FromLong(__pyx_v_has_missing); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 325, __pyx_L1_error) + __pyx_t_8 = __Pyx_PyBool_FromLong(__pyx_v_has_missing); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 327, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); - __pyx_t_13 = PyTuple_New(4); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 325, __pyx_L1_error) + __pyx_t_13 = PyTuple_New(4); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 327, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_GIVEREF(__pyx_t_7); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_13, 0, __pyx_t_7) != (0)) __PYX_ERR(0, 325, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_13, 0, __pyx_t_7) != (0)) __PYX_ERR(0, 327, __pyx_L1_error); __Pyx_INCREF(__pyx_mstate_global->__pyx_int_0); __Pyx_GIVEREF(__pyx_mstate_global->__pyx_int_0); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_13, 1, __pyx_mstate_global->__pyx_int_0) != (0)) __PYX_ERR(0, 325, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_13, 1, __pyx_mstate_global->__pyx_int_0) != (0)) __PYX_ERR(0, 327, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_8); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_13, 2, __pyx_t_8) != (0)) __PYX_ERR(0, 325, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_13, 2, __pyx_t_8) != (0)) __PYX_ERR(0, 327, __pyx_L1_error); __Pyx_INCREF(Py_None); __Pyx_GIVEREF(Py_None); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_13, 3, Py_None) != (0)) __PYX_ERR(0, 325, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_13, 3, Py_None) != (0)) __PYX_ERR(0, 327, __pyx_L1_error); __pyx_t_7 = 0; __pyx_t_8 = 0; - __pyx_t_14 = __Pyx_PyList_Append(__pyx_v_result, __pyx_t_13); if (unlikely(__pyx_t_14 == ((int)-1))) __PYX_ERR(0, 325, __pyx_L1_error) + __pyx_t_14 = __Pyx_PyList_Append(__pyx_v_result, __pyx_t_13); if (unlikely(__pyx_t_14 == ((int)-1))) __PYX_ERR(0, 327, __pyx_L1_error) __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; - /* "pyreadstat/_readstat_writer.pyx":326 + /* "pyreadstat/_readstat_writer.pyx":328 * if equal and (col_type in float_types or curtype == float): * result.append((PYWRITER_DOUBLE, 0, has_missing, None)) * continue # <<<<<<<<<<<<<< @@ -7052,7 +7095,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_get_narwhals_column_typ */ goto __pyx_L4_continue; - /* "pyreadstat/_readstat_writer.pyx":324 + /* "pyreadstat/_readstat_writer.pyx":326 * * # numeric types: they could contain missing_user_values * if equal and (col_type in float_types or curtype == float): # <<<<<<<<<<<<<< @@ -7061,7 +7104,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_get_narwhals_column_typ */ } - /* "pyreadstat/_readstat_writer.pyx":327 + /* "pyreadstat/_readstat_writer.pyx":329 * result.append((PYWRITER_DOUBLE, 0, has_missing, None)) * continue * elif equal and (col_type in int_types or curtype == int): # <<<<<<<<<<<<<< @@ -7076,50 +7119,50 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_get_narwhals_column_typ } if (unlikely(__pyx_v_10pyreadstat_16_readstat_writer_int_types == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable"); - __PYX_ERR(0, 327, __pyx_L1_error) + __PYX_ERR(0, 329, __pyx_L1_error) } - __pyx_t_10 = (__Pyx_PySet_ContainsTF(__pyx_v_col_type, __pyx_v_10pyreadstat_16_readstat_writer_int_types, Py_EQ)); if (unlikely((__pyx_t_10 < 0))) __PYX_ERR(0, 327, __pyx_L1_error) + __pyx_t_10 = (__Pyx_PySet_ContainsTF(__pyx_v_col_type, __pyx_v_10pyreadstat_16_readstat_writer_int_types, Py_EQ)); if (unlikely((__pyx_t_10 < 0))) __PYX_ERR(0, 329, __pyx_L1_error) if (!__pyx_t_10) { } else { __pyx_t_2 = __pyx_t_10; goto __pyx_L27_bool_binop_done; } - __pyx_t_13 = PyObject_RichCompare(((PyObject *)__pyx_v_curtype), ((PyObject *)(&PyLong_Type)), Py_EQ); __Pyx_XGOTREF(__pyx_t_13); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 327, __pyx_L1_error) - __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_t_13); if (unlikely((__pyx_t_10 < 0))) __PYX_ERR(0, 327, __pyx_L1_error) + __pyx_t_13 = PyObject_RichCompare(((PyObject *)__pyx_v_curtype), ((PyObject *)(&PyLong_Type)), Py_EQ); __Pyx_XGOTREF(__pyx_t_13); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 329, __pyx_L1_error) + __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_t_13); if (unlikely((__pyx_t_10 < 0))) __PYX_ERR(0, 329, __pyx_L1_error) __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; __pyx_t_2 = __pyx_t_10; __pyx_L27_bool_binop_done:; if (__pyx_t_2) { - /* "pyreadstat/_readstat_writer.pyx":328 + /* "pyreadstat/_readstat_writer.pyx":330 * continue * elif equal and (col_type in int_types or curtype == int): * result.append((PYWRITER_INTEGER, 0,has_missing, None)) # <<<<<<<<<<<<<< * continue * elif equal and (col_type == nw.Boolean or curtype == bool): */ - __pyx_t_13 = __Pyx_PyLong_From___pyx_t_10pyreadstat_16_readstat_writer_pywriter_variable_type(__pyx_e_10pyreadstat_16_readstat_writer_PYWRITER_INTEGER); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 328, __pyx_L1_error) + __pyx_t_13 = __Pyx_PyLong_From___pyx_t_10pyreadstat_16_readstat_writer_pywriter_variable_type(__pyx_e_10pyreadstat_16_readstat_writer_PYWRITER_INTEGER); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 330, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); - __pyx_t_8 = __Pyx_PyBool_FromLong(__pyx_v_has_missing); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 328, __pyx_L1_error) + __pyx_t_8 = __Pyx_PyBool_FromLong(__pyx_v_has_missing); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 330, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); - __pyx_t_7 = PyTuple_New(4); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 328, __pyx_L1_error) + __pyx_t_7 = PyTuple_New(4); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 330, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_GIVEREF(__pyx_t_13); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_13) != (0)) __PYX_ERR(0, 328, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_13) != (0)) __PYX_ERR(0, 330, __pyx_L1_error); __Pyx_INCREF(__pyx_mstate_global->__pyx_int_0); __Pyx_GIVEREF(__pyx_mstate_global->__pyx_int_0); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_mstate_global->__pyx_int_0) != (0)) __PYX_ERR(0, 328, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_mstate_global->__pyx_int_0) != (0)) __PYX_ERR(0, 330, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_8); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 2, __pyx_t_8) != (0)) __PYX_ERR(0, 328, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 2, __pyx_t_8) != (0)) __PYX_ERR(0, 330, __pyx_L1_error); __Pyx_INCREF(Py_None); __Pyx_GIVEREF(Py_None); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 3, Py_None) != (0)) __PYX_ERR(0, 328, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 3, Py_None) != (0)) __PYX_ERR(0, 330, __pyx_L1_error); __pyx_t_13 = 0; __pyx_t_8 = 0; - __pyx_t_14 = __Pyx_PyList_Append(__pyx_v_result, __pyx_t_7); if (unlikely(__pyx_t_14 == ((int)-1))) __PYX_ERR(0, 328, __pyx_L1_error) + __pyx_t_14 = __Pyx_PyList_Append(__pyx_v_result, __pyx_t_7); if (unlikely(__pyx_t_14 == ((int)-1))) __PYX_ERR(0, 330, __pyx_L1_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - /* "pyreadstat/_readstat_writer.pyx":329 + /* "pyreadstat/_readstat_writer.pyx":331 * elif equal and (col_type in int_types or curtype == int): * result.append((PYWRITER_INTEGER, 0,has_missing, None)) * continue # <<<<<<<<<<<<<< @@ -7128,7 +7171,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_get_narwhals_column_typ */ goto __pyx_L4_continue; - /* "pyreadstat/_readstat_writer.pyx":327 + /* "pyreadstat/_readstat_writer.pyx":329 * result.append((PYWRITER_DOUBLE, 0, has_missing, None)) * continue * elif equal and (col_type in int_types or curtype == int): # <<<<<<<<<<<<<< @@ -7137,7 +7180,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_get_narwhals_column_typ */ } - /* "pyreadstat/_readstat_writer.pyx":330 + /* "pyreadstat/_readstat_writer.pyx":332 * result.append((PYWRITER_INTEGER, 0,has_missing, None)) * continue * elif equal and (col_type == nw.Boolean or curtype == bool): # <<<<<<<<<<<<<< @@ -7150,56 +7193,56 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_get_narwhals_column_typ __pyx_t_2 = __pyx_t_10; goto __pyx_L30_bool_binop_done; } - __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_mstate_global->__pyx_n_u_nw); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 330, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_mstate_global->__pyx_n_u_nw); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 332, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); - __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_mstate_global->__pyx_n_u_Boolean); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 330, __pyx_L1_error) + __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_mstate_global->__pyx_n_u_Boolean); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 332, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __pyx_t_7 = PyObject_RichCompare(__pyx_v_col_type, __pyx_t_8, Py_EQ); __Pyx_XGOTREF(__pyx_t_7); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 330, __pyx_L1_error) + __pyx_t_7 = PyObject_RichCompare(__pyx_v_col_type, __pyx_t_8, Py_EQ); __Pyx_XGOTREF(__pyx_t_7); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 332, __pyx_L1_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely((__pyx_t_10 < 0))) __PYX_ERR(0, 330, __pyx_L1_error) + __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely((__pyx_t_10 < 0))) __PYX_ERR(0, 332, __pyx_L1_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; if (!__pyx_t_10) { } else { __pyx_t_2 = __pyx_t_10; goto __pyx_L30_bool_binop_done; } - __pyx_t_7 = PyObject_RichCompare(((PyObject *)__pyx_v_curtype), ((PyObject *)(&PyBool_Type)), Py_EQ); __Pyx_XGOTREF(__pyx_t_7); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 330, __pyx_L1_error) - __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely((__pyx_t_10 < 0))) __PYX_ERR(0, 330, __pyx_L1_error) + __pyx_t_7 = PyObject_RichCompare(((PyObject *)__pyx_v_curtype), ((PyObject *)(&PyBool_Type)), Py_EQ); __Pyx_XGOTREF(__pyx_t_7); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 332, __pyx_L1_error) + __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely((__pyx_t_10 < 0))) __PYX_ERR(0, 332, __pyx_L1_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_2 = __pyx_t_10; __pyx_L30_bool_binop_done:; if (__pyx_t_2) { - /* "pyreadstat/_readstat_writer.pyx":331 + /* "pyreadstat/_readstat_writer.pyx":333 * continue * elif equal and (col_type == nw.Boolean or curtype == bool): * result.append((PYWRITER_LOGICAL, 0,has_missing, None)) # <<<<<<<<<<<<<< * continue * # these types here should not contain missing_user_values, */ - __pyx_t_7 = __Pyx_PyLong_From___pyx_t_10pyreadstat_16_readstat_writer_pywriter_variable_type(__pyx_e_10pyreadstat_16_readstat_writer_PYWRITER_LOGICAL); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 331, __pyx_L1_error) + __pyx_t_7 = __Pyx_PyLong_From___pyx_t_10pyreadstat_16_readstat_writer_pywriter_variable_type(__pyx_e_10pyreadstat_16_readstat_writer_PYWRITER_LOGICAL); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 333, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); - __pyx_t_8 = __Pyx_PyBool_FromLong(__pyx_v_has_missing); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 331, __pyx_L1_error) + __pyx_t_8 = __Pyx_PyBool_FromLong(__pyx_v_has_missing); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 333, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); - __pyx_t_13 = PyTuple_New(4); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 331, __pyx_L1_error) + __pyx_t_13 = PyTuple_New(4); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 333, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_GIVEREF(__pyx_t_7); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_13, 0, __pyx_t_7) != (0)) __PYX_ERR(0, 331, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_13, 0, __pyx_t_7) != (0)) __PYX_ERR(0, 333, __pyx_L1_error); __Pyx_INCREF(__pyx_mstate_global->__pyx_int_0); __Pyx_GIVEREF(__pyx_mstate_global->__pyx_int_0); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_13, 1, __pyx_mstate_global->__pyx_int_0) != (0)) __PYX_ERR(0, 331, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_13, 1, __pyx_mstate_global->__pyx_int_0) != (0)) __PYX_ERR(0, 333, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_8); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_13, 2, __pyx_t_8) != (0)) __PYX_ERR(0, 331, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_13, 2, __pyx_t_8) != (0)) __PYX_ERR(0, 333, __pyx_L1_error); __Pyx_INCREF(Py_None); __Pyx_GIVEREF(Py_None); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_13, 3, Py_None) != (0)) __PYX_ERR(0, 331, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_13, 3, Py_None) != (0)) __PYX_ERR(0, 333, __pyx_L1_error); __pyx_t_7 = 0; __pyx_t_8 = 0; - __pyx_t_14 = __Pyx_PyList_Append(__pyx_v_result, __pyx_t_13); if (unlikely(__pyx_t_14 == ((int)-1))) __PYX_ERR(0, 331, __pyx_L1_error) + __pyx_t_14 = __Pyx_PyList_Append(__pyx_v_result, __pyx_t_13); if (unlikely(__pyx_t_14 == ((int)-1))) __PYX_ERR(0, 333, __pyx_L1_error) __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; - /* "pyreadstat/_readstat_writer.pyx":332 + /* "pyreadstat/_readstat_writer.pyx":334 * elif equal and (col_type == nw.Boolean or curtype == bool): * result.append((PYWRITER_LOGICAL, 0,has_missing, None)) * continue # <<<<<<<<<<<<<< @@ -7208,7 +7251,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_get_narwhals_column_typ */ goto __pyx_L4_continue; - /* "pyreadstat/_readstat_writer.pyx":330 + /* "pyreadstat/_readstat_writer.pyx":332 * result.append((PYWRITER_INTEGER, 0,has_missing, None)) * continue * elif equal and (col_type == nw.Boolean or curtype == bool): # <<<<<<<<<<<<<< @@ -7217,35 +7260,35 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_get_narwhals_column_typ */ } - /* "pyreadstat/_readstat_writer.pyx":335 + /* "pyreadstat/_readstat_writer.pyx":337 * # these types here should not contain missing_user_values, * # for string we still check, as later we will raise an error * elif col_type == nw.String or curtype == str: # <<<<<<<<<<<<<< * isobject = 0 * if not equal: */ - __Pyx_GetModuleGlobalName(__pyx_t_13, __pyx_mstate_global->__pyx_n_u_nw); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 335, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_13, __pyx_mstate_global->__pyx_n_u_nw); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 337, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); - __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_13, __pyx_mstate_global->__pyx_n_u_String); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 335, __pyx_L1_error) + __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_13, __pyx_mstate_global->__pyx_n_u_String); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 337, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; - __pyx_t_13 = PyObject_RichCompare(__pyx_v_col_type, __pyx_t_8, Py_EQ); __Pyx_XGOTREF(__pyx_t_13); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 335, __pyx_L1_error) + __pyx_t_13 = PyObject_RichCompare(__pyx_v_col_type, __pyx_t_8, Py_EQ); __Pyx_XGOTREF(__pyx_t_13); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 337, __pyx_L1_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_t_13); if (unlikely((__pyx_t_10 < 0))) __PYX_ERR(0, 335, __pyx_L1_error) + __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_t_13); if (unlikely((__pyx_t_10 < 0))) __PYX_ERR(0, 337, __pyx_L1_error) __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; if (!__pyx_t_10) { } else { __pyx_t_2 = __pyx_t_10; goto __pyx_L33_bool_binop_done; } - __pyx_t_13 = PyObject_RichCompare(((PyObject *)__pyx_v_curtype), ((PyObject *)(&PyUnicode_Type)), Py_EQ); __Pyx_XGOTREF(__pyx_t_13); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 335, __pyx_L1_error) - __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_t_13); if (unlikely((__pyx_t_10 < 0))) __PYX_ERR(0, 335, __pyx_L1_error) + __pyx_t_13 = PyObject_RichCompare(((PyObject *)__pyx_v_curtype), ((PyObject *)(&PyUnicode_Type)), Py_EQ); __Pyx_XGOTREF(__pyx_t_13); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 337, __pyx_L1_error) + __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_t_13); if (unlikely((__pyx_t_10 < 0))) __PYX_ERR(0, 337, __pyx_L1_error) __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; __pyx_t_2 = __pyx_t_10; __pyx_L33_bool_binop_done:; if (__pyx_t_2) { - /* "pyreadstat/_readstat_writer.pyx":336 + /* "pyreadstat/_readstat_writer.pyx":338 * # for string we still check, as later we will raise an error * elif col_type == nw.String or curtype == str: * isobject = 0 # <<<<<<<<<<<<<< @@ -7254,7 +7297,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_get_narwhals_column_typ */ __pyx_v_isobject = 0; - /* "pyreadstat/_readstat_writer.pyx":337 + /* "pyreadstat/_readstat_writer.pyx":339 * elif col_type == nw.String or curtype == str: * isobject = 0 * if not equal: # <<<<<<<<<<<<<< @@ -7264,7 +7307,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_get_narwhals_column_typ __pyx_t_2 = (!(__pyx_v_equal != 0)); if (__pyx_t_2) { - /* "pyreadstat/_readstat_writer.pyx":338 + /* "pyreadstat/_readstat_writer.pyx":340 * isobject = 0 * if not equal: * isobject = 1 # <<<<<<<<<<<<<< @@ -7273,7 +7316,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_get_narwhals_column_typ */ __pyx_v_isobject = 1; - /* "pyreadstat/_readstat_writer.pyx":337 + /* "pyreadstat/_readstat_writer.pyx":339 * elif col_type == nw.String or curtype == str: * isobject = 0 * if not equal: # <<<<<<<<<<<<<< @@ -7282,7 +7325,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_get_narwhals_column_typ */ } - /* "pyreadstat/_readstat_writer.pyx":339 + /* "pyreadstat/_readstat_writer.pyx":341 * if not equal: * isobject = 1 * max_length = get_narwhals_str_series_max_length(curseries, variable_value_labels.get(col_name), isobject) # <<<<<<<<<<<<<< @@ -7291,16 +7334,16 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_get_narwhals_column_typ */ if (unlikely(__pyx_v_variable_value_labels == Py_None)) { PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "get"); - __PYX_ERR(0, 339, __pyx_L1_error) + __PYX_ERR(0, 341, __pyx_L1_error) } - __pyx_t_13 = __Pyx_PyDict_GetItemDefault(__pyx_v_variable_value_labels, __pyx_v_col_name, Py_None); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 339, __pyx_L1_error) + __pyx_t_13 = __Pyx_PyDict_GetItemDefault(__pyx_v_variable_value_labels, __pyx_v_col_name, Py_None); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 341, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); - if (!(likely(PyDict_CheckExact(__pyx_t_13))||((__pyx_t_13) == Py_None) || __Pyx_RaiseUnexpectedTypeError("dict", __pyx_t_13))) __PYX_ERR(0, 339, __pyx_L1_error) - __pyx_t_15 = __pyx_f_10pyreadstat_16_readstat_writer_get_narwhals_str_series_max_length(__pyx_v_curseries, ((PyObject*)__pyx_t_13), __pyx_v_isobject); if (unlikely(__pyx_t_15 == ((int)-1) && PyErr_Occurred())) __PYX_ERR(0, 339, __pyx_L1_error) + if (!(likely(PyDict_CheckExact(__pyx_t_13))||((__pyx_t_13) == Py_None) || __Pyx_RaiseUnexpectedTypeError("dict", __pyx_t_13))) __PYX_ERR(0, 341, __pyx_L1_error) + __pyx_t_15 = __pyx_f_10pyreadstat_16_readstat_writer_get_narwhals_str_series_max_length(__pyx_v_curseries, ((PyObject*)__pyx_t_13), __pyx_v_isobject); if (unlikely(__pyx_t_15 == ((int)-1) && PyErr_Occurred())) __PYX_ERR(0, 341, __pyx_L1_error) __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; __pyx_v_max_length = __pyx_t_15; - /* "pyreadstat/_readstat_writer.pyx":340 + /* "pyreadstat/_readstat_writer.pyx":342 * isobject = 1 * max_length = get_narwhals_str_series_max_length(curseries, variable_value_labels.get(col_name), isobject) * if dta_str_max_len and max_length >= dta_str_max_len: # <<<<<<<<<<<<<< @@ -7318,37 +7361,37 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_get_narwhals_column_typ __pyx_L37_bool_binop_done:; if (__pyx_t_2) { - /* "pyreadstat/_readstat_writer.pyx":341 + /* "pyreadstat/_readstat_writer.pyx":343 * max_length = get_narwhals_str_series_max_length(curseries, variable_value_labels.get(col_name), isobject) * if dta_str_max_len and max_length >= dta_str_max_len: * result.append((PYWRITER_DTA_STR_REF, max_length, has_missing, None)) # <<<<<<<<<<<<<< * continue * else: */ - __pyx_t_13 = __Pyx_PyLong_From___pyx_t_10pyreadstat_16_readstat_writer_pywriter_variable_type(__pyx_e_10pyreadstat_16_readstat_writer_PYWRITER_DTA_STR_REF); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 341, __pyx_L1_error) + __pyx_t_13 = __Pyx_PyLong_From___pyx_t_10pyreadstat_16_readstat_writer_pywriter_variable_type(__pyx_e_10pyreadstat_16_readstat_writer_PYWRITER_DTA_STR_REF); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 343, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); - __pyx_t_8 = __Pyx_PyLong_From_int(__pyx_v_max_length); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 341, __pyx_L1_error) + __pyx_t_8 = __Pyx_PyLong_From_int(__pyx_v_max_length); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 343, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); - __pyx_t_7 = __Pyx_PyBool_FromLong(__pyx_v_has_missing); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 341, __pyx_L1_error) + __pyx_t_7 = __Pyx_PyBool_FromLong(__pyx_v_has_missing); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 343, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 341, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 343, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_13); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_13) != (0)) __PYX_ERR(0, 341, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_13) != (0)) __PYX_ERR(0, 343, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_8); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_8) != (0)) __PYX_ERR(0, 341, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_8) != (0)) __PYX_ERR(0, 343, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_7); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_t_7) != (0)) __PYX_ERR(0, 341, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_t_7) != (0)) __PYX_ERR(0, 343, __pyx_L1_error); __Pyx_INCREF(Py_None); __Pyx_GIVEREF(Py_None); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, Py_None) != (0)) __PYX_ERR(0, 341, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, Py_None) != (0)) __PYX_ERR(0, 343, __pyx_L1_error); __pyx_t_13 = 0; __pyx_t_8 = 0; __pyx_t_7 = 0; - __pyx_t_14 = __Pyx_PyList_Append(__pyx_v_result, __pyx_t_1); if (unlikely(__pyx_t_14 == ((int)-1))) __PYX_ERR(0, 341, __pyx_L1_error) + __pyx_t_14 = __Pyx_PyList_Append(__pyx_v_result, __pyx_t_1); if (unlikely(__pyx_t_14 == ((int)-1))) __PYX_ERR(0, 343, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "pyreadstat/_readstat_writer.pyx":342 + /* "pyreadstat/_readstat_writer.pyx":344 * if dta_str_max_len and max_length >= dta_str_max_len: * result.append((PYWRITER_DTA_STR_REF, max_length, has_missing, None)) * continue # <<<<<<<<<<<<<< @@ -7357,7 +7400,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_get_narwhals_column_typ */ goto __pyx_L4_continue; - /* "pyreadstat/_readstat_writer.pyx":340 + /* "pyreadstat/_readstat_writer.pyx":342 * isobject = 1 * max_length = get_narwhals_str_series_max_length(curseries, variable_value_labels.get(col_name), isobject) * if dta_str_max_len and max_length >= dta_str_max_len: # <<<<<<<<<<<<<< @@ -7366,7 +7409,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_get_narwhals_column_typ */ } - /* "pyreadstat/_readstat_writer.pyx":344 + /* "pyreadstat/_readstat_writer.pyx":346 * continue * else: * if isobject: # <<<<<<<<<<<<<< @@ -7377,37 +7420,37 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_get_narwhals_column_typ __pyx_t_2 = (__pyx_v_isobject != 0); if (__pyx_t_2) { - /* "pyreadstat/_readstat_writer.pyx":345 + /* "pyreadstat/_readstat_writer.pyx":347 * else: * if isobject: * result.append((PYWRITER_OBJECT, max_length, has_missing, None)) # <<<<<<<<<<<<<< * else: * result.append((PYWRITER_CHARACTER, max_length, has_missing, None)) */ - __pyx_t_1 = __Pyx_PyLong_From___pyx_t_10pyreadstat_16_readstat_writer_pywriter_variable_type(__pyx_e_10pyreadstat_16_readstat_writer_PYWRITER_OBJECT); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 345, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyLong_From___pyx_t_10pyreadstat_16_readstat_writer_pywriter_variable_type(__pyx_e_10pyreadstat_16_readstat_writer_PYWRITER_OBJECT); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 347, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_7 = __Pyx_PyLong_From_int(__pyx_v_max_length); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 345, __pyx_L1_error) + __pyx_t_7 = __Pyx_PyLong_From_int(__pyx_v_max_length); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 347, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); - __pyx_t_8 = __Pyx_PyBool_FromLong(__pyx_v_has_missing); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 345, __pyx_L1_error) + __pyx_t_8 = __Pyx_PyBool_FromLong(__pyx_v_has_missing); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 347, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); - __pyx_t_13 = PyTuple_New(4); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 345, __pyx_L1_error) + __pyx_t_13 = PyTuple_New(4); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 347, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_GIVEREF(__pyx_t_1); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_13, 0, __pyx_t_1) != (0)) __PYX_ERR(0, 345, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_13, 0, __pyx_t_1) != (0)) __PYX_ERR(0, 347, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_7); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_13, 1, __pyx_t_7) != (0)) __PYX_ERR(0, 345, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_13, 1, __pyx_t_7) != (0)) __PYX_ERR(0, 347, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_8); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_13, 2, __pyx_t_8) != (0)) __PYX_ERR(0, 345, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_13, 2, __pyx_t_8) != (0)) __PYX_ERR(0, 347, __pyx_L1_error); __Pyx_INCREF(Py_None); __Pyx_GIVEREF(Py_None); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_13, 3, Py_None) != (0)) __PYX_ERR(0, 345, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_13, 3, Py_None) != (0)) __PYX_ERR(0, 347, __pyx_L1_error); __pyx_t_1 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; - __pyx_t_14 = __Pyx_PyList_Append(__pyx_v_result, __pyx_t_13); if (unlikely(__pyx_t_14 == ((int)-1))) __PYX_ERR(0, 345, __pyx_L1_error) + __pyx_t_14 = __Pyx_PyList_Append(__pyx_v_result, __pyx_t_13); if (unlikely(__pyx_t_14 == ((int)-1))) __PYX_ERR(0, 347, __pyx_L1_error) __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; - /* "pyreadstat/_readstat_writer.pyx":344 + /* "pyreadstat/_readstat_writer.pyx":346 * continue * else: * if isobject: # <<<<<<<<<<<<<< @@ -7417,7 +7460,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_get_narwhals_column_typ goto __pyx_L39; } - /* "pyreadstat/_readstat_writer.pyx":347 + /* "pyreadstat/_readstat_writer.pyx":349 * result.append((PYWRITER_OBJECT, max_length, has_missing, None)) * else: * result.append((PYWRITER_CHARACTER, max_length, has_missing, None)) # <<<<<<<<<<<<<< @@ -7425,32 +7468,32 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_get_narwhals_column_typ * elif col_type == nw.Datetime: */ /*else*/ { - __pyx_t_13 = __Pyx_PyLong_From___pyx_t_10pyreadstat_16_readstat_writer_pywriter_variable_type(__pyx_e_10pyreadstat_16_readstat_writer_PYWRITER_CHARACTER); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 347, __pyx_L1_error) + __pyx_t_13 = __Pyx_PyLong_From___pyx_t_10pyreadstat_16_readstat_writer_pywriter_variable_type(__pyx_e_10pyreadstat_16_readstat_writer_PYWRITER_CHARACTER); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 349, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); - __pyx_t_8 = __Pyx_PyLong_From_int(__pyx_v_max_length); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 347, __pyx_L1_error) + __pyx_t_8 = __Pyx_PyLong_From_int(__pyx_v_max_length); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 349, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); - __pyx_t_7 = __Pyx_PyBool_FromLong(__pyx_v_has_missing); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 347, __pyx_L1_error) + __pyx_t_7 = __Pyx_PyBool_FromLong(__pyx_v_has_missing); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 349, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 347, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 349, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_13); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_13) != (0)) __PYX_ERR(0, 347, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_13) != (0)) __PYX_ERR(0, 349, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_8); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_8) != (0)) __PYX_ERR(0, 347, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_8) != (0)) __PYX_ERR(0, 349, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_7); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_t_7) != (0)) __PYX_ERR(0, 347, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_t_7) != (0)) __PYX_ERR(0, 349, __pyx_L1_error); __Pyx_INCREF(Py_None); __Pyx_GIVEREF(Py_None); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, Py_None) != (0)) __PYX_ERR(0, 347, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, Py_None) != (0)) __PYX_ERR(0, 349, __pyx_L1_error); __pyx_t_13 = 0; __pyx_t_8 = 0; __pyx_t_7 = 0; - __pyx_t_14 = __Pyx_PyList_Append(__pyx_v_result, __pyx_t_1); if (unlikely(__pyx_t_14 == ((int)-1))) __PYX_ERR(0, 347, __pyx_L1_error) + __pyx_t_14 = __Pyx_PyList_Append(__pyx_v_result, __pyx_t_1); if (unlikely(__pyx_t_14 == ((int)-1))) __PYX_ERR(0, 349, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } __pyx_L39:; - /* "pyreadstat/_readstat_writer.pyx":348 + /* "pyreadstat/_readstat_writer.pyx":350 * else: * result.append((PYWRITER_CHARACTER, max_length, has_missing, None)) * continue # <<<<<<<<<<<<<< @@ -7460,7 +7503,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_get_narwhals_column_typ goto __pyx_L4_continue; } - /* "pyreadstat/_readstat_writer.pyx":335 + /* "pyreadstat/_readstat_writer.pyx":337 * # these types here should not contain missing_user_values, * # for string we still check, as later we will raise an error * elif col_type == nw.String or curtype == str: # <<<<<<<<<<<<<< @@ -7469,66 +7512,66 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_get_narwhals_column_typ */ } - /* "pyreadstat/_readstat_writer.pyx":349 + /* "pyreadstat/_readstat_writer.pyx":351 * result.append((PYWRITER_CHARACTER, max_length, has_missing, None)) * continue * elif col_type == nw.Datetime: # <<<<<<<<<<<<<< * if col_type.time_unit == 'us': * result.append((PYWRITER_DATETIME64, 0,has_missing, 'us')) */ - __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_nw); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 349, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_nw); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 351, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_Datetime); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 349, __pyx_L1_error) + __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_Datetime); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 351, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyObject_RichCompare(__pyx_v_col_type, __pyx_t_7, Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 349, __pyx_L1_error) + __pyx_t_1 = PyObject_RichCompare(__pyx_v_col_type, __pyx_t_7, Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 351, __pyx_L1_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 349, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 351, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_2) { - /* "pyreadstat/_readstat_writer.pyx":350 + /* "pyreadstat/_readstat_writer.pyx":352 * continue * elif col_type == nw.Datetime: * if col_type.time_unit == 'us': # <<<<<<<<<<<<<< * result.append((PYWRITER_DATETIME64, 0,has_missing, 'us')) * continue */ - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_col_type, __pyx_mstate_global->__pyx_n_u_time_unit); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 350, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_col_type, __pyx_mstate_global->__pyx_n_u_time_unit); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 352, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_us, Py_EQ)); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 350, __pyx_L1_error) + __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_us, Py_EQ)); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 352, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_2) { - /* "pyreadstat/_readstat_writer.pyx":351 + /* "pyreadstat/_readstat_writer.pyx":353 * elif col_type == nw.Datetime: * if col_type.time_unit == 'us': * result.append((PYWRITER_DATETIME64, 0,has_missing, 'us')) # <<<<<<<<<<<<<< * continue * elif col_type.time_unit == 'ns': */ - __pyx_t_1 = __Pyx_PyLong_From___pyx_t_10pyreadstat_16_readstat_writer_pywriter_variable_type(__pyx_e_10pyreadstat_16_readstat_writer_PYWRITER_DATETIME64); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 351, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyLong_From___pyx_t_10pyreadstat_16_readstat_writer_pywriter_variable_type(__pyx_e_10pyreadstat_16_readstat_writer_PYWRITER_DATETIME64); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 353, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_7 = __Pyx_PyBool_FromLong(__pyx_v_has_missing); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 351, __pyx_L1_error) + __pyx_t_7 = __Pyx_PyBool_FromLong(__pyx_v_has_missing); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 353, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); - __pyx_t_8 = PyTuple_New(4); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 351, __pyx_L1_error) + __pyx_t_8 = PyTuple_New(4); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 353, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_GIVEREF(__pyx_t_1); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_1) != (0)) __PYX_ERR(0, 351, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_1) != (0)) __PYX_ERR(0, 353, __pyx_L1_error); __Pyx_INCREF(__pyx_mstate_global->__pyx_int_0); __Pyx_GIVEREF(__pyx_mstate_global->__pyx_int_0); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_8, 1, __pyx_mstate_global->__pyx_int_0) != (0)) __PYX_ERR(0, 351, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_8, 1, __pyx_mstate_global->__pyx_int_0) != (0)) __PYX_ERR(0, 353, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_7); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_8, 2, __pyx_t_7) != (0)) __PYX_ERR(0, 351, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_8, 2, __pyx_t_7) != (0)) __PYX_ERR(0, 353, __pyx_L1_error); __Pyx_INCREF(__pyx_mstate_global->__pyx_n_u_us); __Pyx_GIVEREF(__pyx_mstate_global->__pyx_n_u_us); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_8, 3, __pyx_mstate_global->__pyx_n_u_us) != (0)) __PYX_ERR(0, 351, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_8, 3, __pyx_mstate_global->__pyx_n_u_us) != (0)) __PYX_ERR(0, 353, __pyx_L1_error); __pyx_t_1 = 0; __pyx_t_7 = 0; - __pyx_t_14 = __Pyx_PyList_Append(__pyx_v_result, __pyx_t_8); if (unlikely(__pyx_t_14 == ((int)-1))) __PYX_ERR(0, 351, __pyx_L1_error) + __pyx_t_14 = __Pyx_PyList_Append(__pyx_v_result, __pyx_t_8); if (unlikely(__pyx_t_14 == ((int)-1))) __PYX_ERR(0, 353, __pyx_L1_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - /* "pyreadstat/_readstat_writer.pyx":352 + /* "pyreadstat/_readstat_writer.pyx":354 * if col_type.time_unit == 'us': * result.append((PYWRITER_DATETIME64, 0,has_missing, 'us')) * continue # <<<<<<<<<<<<<< @@ -7537,7 +7580,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_get_narwhals_column_typ */ goto __pyx_L4_continue; - /* "pyreadstat/_readstat_writer.pyx":350 + /* "pyreadstat/_readstat_writer.pyx":352 * continue * elif col_type == nw.Datetime: * if col_type.time_unit == 'us': # <<<<<<<<<<<<<< @@ -7546,48 +7589,48 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_get_narwhals_column_typ */ } - /* "pyreadstat/_readstat_writer.pyx":353 + /* "pyreadstat/_readstat_writer.pyx":355 * result.append((PYWRITER_DATETIME64, 0,has_missing, 'us')) * continue * elif col_type.time_unit == 'ns': # <<<<<<<<<<<<<< * result.append((PYWRITER_DATETIME64, 0,has_missing, 'ns')) * continue */ - __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_col_type, __pyx_mstate_global->__pyx_n_u_time_unit); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 353, __pyx_L1_error) + __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_col_type, __pyx_mstate_global->__pyx_n_u_time_unit); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 355, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); - __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_ns, Py_EQ)); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 353, __pyx_L1_error) + __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_ns, Py_EQ)); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 355, __pyx_L1_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; if (__pyx_t_2) { - /* "pyreadstat/_readstat_writer.pyx":354 + /* "pyreadstat/_readstat_writer.pyx":356 * continue * elif col_type.time_unit == 'ns': * result.append((PYWRITER_DATETIME64, 0,has_missing, 'ns')) # <<<<<<<<<<<<<< * continue * elif col_type.time_unit == 'ms': */ - __pyx_t_8 = __Pyx_PyLong_From___pyx_t_10pyreadstat_16_readstat_writer_pywriter_variable_type(__pyx_e_10pyreadstat_16_readstat_writer_PYWRITER_DATETIME64); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 354, __pyx_L1_error) + __pyx_t_8 = __Pyx_PyLong_From___pyx_t_10pyreadstat_16_readstat_writer_pywriter_variable_type(__pyx_e_10pyreadstat_16_readstat_writer_PYWRITER_DATETIME64); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 356, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); - __pyx_t_7 = __Pyx_PyBool_FromLong(__pyx_v_has_missing); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 354, __pyx_L1_error) + __pyx_t_7 = __Pyx_PyBool_FromLong(__pyx_v_has_missing); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 356, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 354, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 356, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_8); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_8) != (0)) __PYX_ERR(0, 354, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_8) != (0)) __PYX_ERR(0, 356, __pyx_L1_error); __Pyx_INCREF(__pyx_mstate_global->__pyx_int_0); __Pyx_GIVEREF(__pyx_mstate_global->__pyx_int_0); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_mstate_global->__pyx_int_0) != (0)) __PYX_ERR(0, 354, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_mstate_global->__pyx_int_0) != (0)) __PYX_ERR(0, 356, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_7); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_t_7) != (0)) __PYX_ERR(0, 354, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_t_7) != (0)) __PYX_ERR(0, 356, __pyx_L1_error); __Pyx_INCREF(__pyx_mstate_global->__pyx_n_u_ns); __Pyx_GIVEREF(__pyx_mstate_global->__pyx_n_u_ns); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_mstate_global->__pyx_n_u_ns) != (0)) __PYX_ERR(0, 354, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_mstate_global->__pyx_n_u_ns) != (0)) __PYX_ERR(0, 356, __pyx_L1_error); __pyx_t_8 = 0; __pyx_t_7 = 0; - __pyx_t_14 = __Pyx_PyList_Append(__pyx_v_result, __pyx_t_1); if (unlikely(__pyx_t_14 == ((int)-1))) __PYX_ERR(0, 354, __pyx_L1_error) + __pyx_t_14 = __Pyx_PyList_Append(__pyx_v_result, __pyx_t_1); if (unlikely(__pyx_t_14 == ((int)-1))) __PYX_ERR(0, 356, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "pyreadstat/_readstat_writer.pyx":355 + /* "pyreadstat/_readstat_writer.pyx":357 * elif col_type.time_unit == 'ns': * result.append((PYWRITER_DATETIME64, 0,has_missing, 'ns')) * continue # <<<<<<<<<<<<<< @@ -7596,7 +7639,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_get_narwhals_column_typ */ goto __pyx_L4_continue; - /* "pyreadstat/_readstat_writer.pyx":353 + /* "pyreadstat/_readstat_writer.pyx":355 * result.append((PYWRITER_DATETIME64, 0,has_missing, 'us')) * continue * elif col_type.time_unit == 'ns': # <<<<<<<<<<<<<< @@ -7605,48 +7648,48 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_get_narwhals_column_typ */ } - /* "pyreadstat/_readstat_writer.pyx":356 + /* "pyreadstat/_readstat_writer.pyx":358 * result.append((PYWRITER_DATETIME64, 0,has_missing, 'ns')) * continue * elif col_type.time_unit == 'ms': # <<<<<<<<<<<<<< * result.append((PYWRITER_DATETIME64, 0,has_missing, 'ms')) * continue */ - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_col_type, __pyx_mstate_global->__pyx_n_u_time_unit); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 356, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_col_type, __pyx_mstate_global->__pyx_n_u_time_unit); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 358, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_ms, Py_EQ)); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 356, __pyx_L1_error) + __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_ms, Py_EQ)); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 358, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_2) { - /* "pyreadstat/_readstat_writer.pyx":357 + /* "pyreadstat/_readstat_writer.pyx":359 * continue * elif col_type.time_unit == 'ms': * result.append((PYWRITER_DATETIME64, 0,has_missing, 'ms')) # <<<<<<<<<<<<<< * continue * else: */ - __pyx_t_1 = __Pyx_PyLong_From___pyx_t_10pyreadstat_16_readstat_writer_pywriter_variable_type(__pyx_e_10pyreadstat_16_readstat_writer_PYWRITER_DATETIME64); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 357, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyLong_From___pyx_t_10pyreadstat_16_readstat_writer_pywriter_variable_type(__pyx_e_10pyreadstat_16_readstat_writer_PYWRITER_DATETIME64); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 359, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_7 = __Pyx_PyBool_FromLong(__pyx_v_has_missing); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 357, __pyx_L1_error) + __pyx_t_7 = __Pyx_PyBool_FromLong(__pyx_v_has_missing); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 359, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); - __pyx_t_8 = PyTuple_New(4); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 357, __pyx_L1_error) + __pyx_t_8 = PyTuple_New(4); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 359, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_GIVEREF(__pyx_t_1); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_1) != (0)) __PYX_ERR(0, 357, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_1) != (0)) __PYX_ERR(0, 359, __pyx_L1_error); __Pyx_INCREF(__pyx_mstate_global->__pyx_int_0); __Pyx_GIVEREF(__pyx_mstate_global->__pyx_int_0); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_8, 1, __pyx_mstate_global->__pyx_int_0) != (0)) __PYX_ERR(0, 357, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_8, 1, __pyx_mstate_global->__pyx_int_0) != (0)) __PYX_ERR(0, 359, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_7); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_8, 2, __pyx_t_7) != (0)) __PYX_ERR(0, 357, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_8, 2, __pyx_t_7) != (0)) __PYX_ERR(0, 359, __pyx_L1_error); __Pyx_INCREF(__pyx_mstate_global->__pyx_n_u_ms); __Pyx_GIVEREF(__pyx_mstate_global->__pyx_n_u_ms); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_8, 3, __pyx_mstate_global->__pyx_n_u_ms) != (0)) __PYX_ERR(0, 357, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_8, 3, __pyx_mstate_global->__pyx_n_u_ms) != (0)) __PYX_ERR(0, 359, __pyx_L1_error); __pyx_t_1 = 0; __pyx_t_7 = 0; - __pyx_t_14 = __Pyx_PyList_Append(__pyx_v_result, __pyx_t_8); if (unlikely(__pyx_t_14 == ((int)-1))) __PYX_ERR(0, 357, __pyx_L1_error) + __pyx_t_14 = __Pyx_PyList_Append(__pyx_v_result, __pyx_t_8); if (unlikely(__pyx_t_14 == ((int)-1))) __PYX_ERR(0, 359, __pyx_L1_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - /* "pyreadstat/_readstat_writer.pyx":358 + /* "pyreadstat/_readstat_writer.pyx":360 * elif col_type.time_unit == 'ms': * result.append((PYWRITER_DATETIME64, 0,has_missing, 'ms')) * continue # <<<<<<<<<<<<<< @@ -7655,7 +7698,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_get_narwhals_column_typ */ goto __pyx_L4_continue; - /* "pyreadstat/_readstat_writer.pyx":356 + /* "pyreadstat/_readstat_writer.pyx":358 * result.append((PYWRITER_DATETIME64, 0,has_missing, 'ns')) * continue * elif col_type.time_unit == 'ms': # <<<<<<<<<<<<<< @@ -7664,7 +7707,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_get_narwhals_column_typ */ } - /* "pyreadstat/_readstat_writer.pyx":360 + /* "pyreadstat/_readstat_writer.pyx":362 * continue * else: * result.append((PYWRITER_DATETIME, 0, has_missing, None)) # <<<<<<<<<<<<<< @@ -7672,28 +7715,28 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_get_narwhals_column_typ * elif col_type == nw.Date: */ /*else*/ { - __pyx_t_8 = __Pyx_PyLong_From___pyx_t_10pyreadstat_16_readstat_writer_pywriter_variable_type(__pyx_e_10pyreadstat_16_readstat_writer_PYWRITER_DATETIME); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 360, __pyx_L1_error) + __pyx_t_8 = __Pyx_PyLong_From___pyx_t_10pyreadstat_16_readstat_writer_pywriter_variable_type(__pyx_e_10pyreadstat_16_readstat_writer_PYWRITER_DATETIME); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 362, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); - __pyx_t_7 = __Pyx_PyBool_FromLong(__pyx_v_has_missing); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 360, __pyx_L1_error) + __pyx_t_7 = __Pyx_PyBool_FromLong(__pyx_v_has_missing); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 362, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 360, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 362, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_8); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_8) != (0)) __PYX_ERR(0, 360, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_8) != (0)) __PYX_ERR(0, 362, __pyx_L1_error); __Pyx_INCREF(__pyx_mstate_global->__pyx_int_0); __Pyx_GIVEREF(__pyx_mstate_global->__pyx_int_0); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_mstate_global->__pyx_int_0) != (0)) __PYX_ERR(0, 360, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_mstate_global->__pyx_int_0) != (0)) __PYX_ERR(0, 362, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_7); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_t_7) != (0)) __PYX_ERR(0, 360, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_t_7) != (0)) __PYX_ERR(0, 362, __pyx_L1_error); __Pyx_INCREF(Py_None); __Pyx_GIVEREF(Py_None); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, Py_None) != (0)) __PYX_ERR(0, 360, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, Py_None) != (0)) __PYX_ERR(0, 362, __pyx_L1_error); __pyx_t_8 = 0; __pyx_t_7 = 0; - __pyx_t_14 = __Pyx_PyList_Append(__pyx_v_result, __pyx_t_1); if (unlikely(__pyx_t_14 == ((int)-1))) __PYX_ERR(0, 360, __pyx_L1_error) + __pyx_t_14 = __Pyx_PyList_Append(__pyx_v_result, __pyx_t_1); if (unlikely(__pyx_t_14 == ((int)-1))) __PYX_ERR(0, 362, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "pyreadstat/_readstat_writer.pyx":361 + /* "pyreadstat/_readstat_writer.pyx":363 * else: * result.append((PYWRITER_DATETIME, 0, has_missing, None)) * continue # <<<<<<<<<<<<<< @@ -7703,7 +7746,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_get_narwhals_column_typ goto __pyx_L4_continue; } - /* "pyreadstat/_readstat_writer.pyx":349 + /* "pyreadstat/_readstat_writer.pyx":351 * result.append((PYWRITER_CHARACTER, max_length, has_missing, None)) * continue * elif col_type == nw.Datetime: # <<<<<<<<<<<<<< @@ -7712,53 +7755,53 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_get_narwhals_column_typ */ } - /* "pyreadstat/_readstat_writer.pyx":362 + /* "pyreadstat/_readstat_writer.pyx":364 * result.append((PYWRITER_DATETIME, 0, has_missing, None)) * continue * elif col_type == nw.Date: # <<<<<<<<<<<<<< * result.append((PYWRITER_DATE64, 0, has_missing, None)) * continue */ - __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_nw); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 362, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_nw); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 364, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_Date); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 362, __pyx_L1_error) + __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_Date); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 364, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyObject_RichCompare(__pyx_v_col_type, __pyx_t_7, Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 362, __pyx_L1_error) + __pyx_t_1 = PyObject_RichCompare(__pyx_v_col_type, __pyx_t_7, Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 364, __pyx_L1_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 362, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 364, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_2) { - /* "pyreadstat/_readstat_writer.pyx":363 + /* "pyreadstat/_readstat_writer.pyx":365 * continue * elif col_type == nw.Date: * result.append((PYWRITER_DATE64, 0, has_missing, None)) # <<<<<<<<<<<<<< * continue * elif col_type == nw.Time: */ - __pyx_t_1 = __Pyx_PyLong_From___pyx_t_10pyreadstat_16_readstat_writer_pywriter_variable_type(__pyx_e_10pyreadstat_16_readstat_writer_PYWRITER_DATE64); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 363, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyLong_From___pyx_t_10pyreadstat_16_readstat_writer_pywriter_variable_type(__pyx_e_10pyreadstat_16_readstat_writer_PYWRITER_DATE64); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 365, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_7 = __Pyx_PyBool_FromLong(__pyx_v_has_missing); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 363, __pyx_L1_error) + __pyx_t_7 = __Pyx_PyBool_FromLong(__pyx_v_has_missing); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 365, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); - __pyx_t_8 = PyTuple_New(4); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 363, __pyx_L1_error) + __pyx_t_8 = PyTuple_New(4); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 365, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_GIVEREF(__pyx_t_1); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_1) != (0)) __PYX_ERR(0, 363, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_1) != (0)) __PYX_ERR(0, 365, __pyx_L1_error); __Pyx_INCREF(__pyx_mstate_global->__pyx_int_0); __Pyx_GIVEREF(__pyx_mstate_global->__pyx_int_0); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_8, 1, __pyx_mstate_global->__pyx_int_0) != (0)) __PYX_ERR(0, 363, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_8, 1, __pyx_mstate_global->__pyx_int_0) != (0)) __PYX_ERR(0, 365, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_7); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_8, 2, __pyx_t_7) != (0)) __PYX_ERR(0, 363, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_8, 2, __pyx_t_7) != (0)) __PYX_ERR(0, 365, __pyx_L1_error); __Pyx_INCREF(Py_None); __Pyx_GIVEREF(Py_None); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_8, 3, Py_None) != (0)) __PYX_ERR(0, 363, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_8, 3, Py_None) != (0)) __PYX_ERR(0, 365, __pyx_L1_error); __pyx_t_1 = 0; __pyx_t_7 = 0; - __pyx_t_14 = __Pyx_PyList_Append(__pyx_v_result, __pyx_t_8); if (unlikely(__pyx_t_14 == ((int)-1))) __PYX_ERR(0, 363, __pyx_L1_error) + __pyx_t_14 = __Pyx_PyList_Append(__pyx_v_result, __pyx_t_8); if (unlikely(__pyx_t_14 == ((int)-1))) __PYX_ERR(0, 365, __pyx_L1_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - /* "pyreadstat/_readstat_writer.pyx":364 + /* "pyreadstat/_readstat_writer.pyx":366 * elif col_type == nw.Date: * result.append((PYWRITER_DATE64, 0, has_missing, None)) * continue # <<<<<<<<<<<<<< @@ -7767,7 +7810,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_get_narwhals_column_typ */ goto __pyx_L4_continue; - /* "pyreadstat/_readstat_writer.pyx":362 + /* "pyreadstat/_readstat_writer.pyx":364 * result.append((PYWRITER_DATETIME, 0, has_missing, None)) * continue * elif col_type == nw.Date: # <<<<<<<<<<<<<< @@ -7776,53 +7819,53 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_get_narwhals_column_typ */ } - /* "pyreadstat/_readstat_writer.pyx":365 + /* "pyreadstat/_readstat_writer.pyx":367 * result.append((PYWRITER_DATE64, 0, has_missing, None)) * continue * elif col_type == nw.Time: # <<<<<<<<<<<<<< * result.append((PYWRITER_TIME64, 0, has_missing, None)) * continue */ - __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_nw); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 365, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_nw); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 367, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); - __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_Time); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 365, __pyx_L1_error) + __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_Time); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 367, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - __pyx_t_8 = PyObject_RichCompare(__pyx_v_col_type, __pyx_t_7, Py_EQ); __Pyx_XGOTREF(__pyx_t_8); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 365, __pyx_L1_error) + __pyx_t_8 = PyObject_RichCompare(__pyx_v_col_type, __pyx_t_7, Py_EQ); __Pyx_XGOTREF(__pyx_t_8); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 367, __pyx_L1_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 365, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 367, __pyx_L1_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; if (__pyx_t_2) { - /* "pyreadstat/_readstat_writer.pyx":366 + /* "pyreadstat/_readstat_writer.pyx":368 * continue * elif col_type == nw.Time: * result.append((PYWRITER_TIME64, 0, has_missing, None)) # <<<<<<<<<<<<<< * continue * */ - __pyx_t_8 = __Pyx_PyLong_From___pyx_t_10pyreadstat_16_readstat_writer_pywriter_variable_type(__pyx_e_10pyreadstat_16_readstat_writer_PYWRITER_TIME64); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 366, __pyx_L1_error) + __pyx_t_8 = __Pyx_PyLong_From___pyx_t_10pyreadstat_16_readstat_writer_pywriter_variable_type(__pyx_e_10pyreadstat_16_readstat_writer_PYWRITER_TIME64); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 368, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); - __pyx_t_7 = __Pyx_PyBool_FromLong(__pyx_v_has_missing); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 366, __pyx_L1_error) + __pyx_t_7 = __Pyx_PyBool_FromLong(__pyx_v_has_missing); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 368, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 366, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 368, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_8); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_8) != (0)) __PYX_ERR(0, 366, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_8) != (0)) __PYX_ERR(0, 368, __pyx_L1_error); __Pyx_INCREF(__pyx_mstate_global->__pyx_int_0); __Pyx_GIVEREF(__pyx_mstate_global->__pyx_int_0); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_mstate_global->__pyx_int_0) != (0)) __PYX_ERR(0, 366, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_mstate_global->__pyx_int_0) != (0)) __PYX_ERR(0, 368, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_7); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_t_7) != (0)) __PYX_ERR(0, 366, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_t_7) != (0)) __PYX_ERR(0, 368, __pyx_L1_error); __Pyx_INCREF(Py_None); __Pyx_GIVEREF(Py_None); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, Py_None) != (0)) __PYX_ERR(0, 366, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, Py_None) != (0)) __PYX_ERR(0, 368, __pyx_L1_error); __pyx_t_8 = 0; __pyx_t_7 = 0; - __pyx_t_14 = __Pyx_PyList_Append(__pyx_v_result, __pyx_t_1); if (unlikely(__pyx_t_14 == ((int)-1))) __PYX_ERR(0, 366, __pyx_L1_error) + __pyx_t_14 = __Pyx_PyList_Append(__pyx_v_result, __pyx_t_1); if (unlikely(__pyx_t_14 == ((int)-1))) __PYX_ERR(0, 368, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "pyreadstat/_readstat_writer.pyx":367 + /* "pyreadstat/_readstat_writer.pyx":369 * elif col_type == nw.Time: * result.append((PYWRITER_TIME64, 0, has_missing, None)) * continue # <<<<<<<<<<<<<< @@ -7831,7 +7874,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_get_narwhals_column_typ */ goto __pyx_L4_continue; - /* "pyreadstat/_readstat_writer.pyx":365 + /* "pyreadstat/_readstat_writer.pyx":367 * result.append((PYWRITER_DATE64, 0, has_missing, None)) * continue * elif col_type == nw.Time: # <<<<<<<<<<<<<< @@ -7840,7 +7883,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_get_narwhals_column_typ */ } - /* "pyreadstat/_readstat_writer.pyx":370 + /* "pyreadstat/_readstat_writer.pyx":372 * * # if the object was not captured by any of the previous cases, we transform it to string * max_length = get_narwhals_str_series_max_length(curseries, variable_value_labels.get(col_name), 1) # <<<<<<<<<<<<<< @@ -7849,16 +7892,16 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_get_narwhals_column_typ */ if (unlikely(__pyx_v_variable_value_labels == Py_None)) { PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "get"); - __PYX_ERR(0, 370, __pyx_L1_error) + __PYX_ERR(0, 372, __pyx_L1_error) } - __pyx_t_1 = __Pyx_PyDict_GetItemDefault(__pyx_v_variable_value_labels, __pyx_v_col_name, Py_None); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 370, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyDict_GetItemDefault(__pyx_v_variable_value_labels, __pyx_v_col_name, Py_None); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 372, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - if (!(likely(PyDict_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("dict", __pyx_t_1))) __PYX_ERR(0, 370, __pyx_L1_error) - __pyx_t_15 = __pyx_f_10pyreadstat_16_readstat_writer_get_narwhals_str_series_max_length(__pyx_v_curseries, ((PyObject*)__pyx_t_1), 1); if (unlikely(__pyx_t_15 == ((int)-1) && PyErr_Occurred())) __PYX_ERR(0, 370, __pyx_L1_error) + if (!(likely(PyDict_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("dict", __pyx_t_1))) __PYX_ERR(0, 372, __pyx_L1_error) + __pyx_t_15 = __pyx_f_10pyreadstat_16_readstat_writer_get_narwhals_str_series_max_length(__pyx_v_curseries, ((PyObject*)__pyx_t_1), 1); if (unlikely(__pyx_t_15 == ((int)-1) && PyErr_Occurred())) __PYX_ERR(0, 372, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_v_max_length = __pyx_t_15; - /* "pyreadstat/_readstat_writer.pyx":371 + /* "pyreadstat/_readstat_writer.pyx":373 * # if the object was not captured by any of the previous cases, we transform it to string * max_length = get_narwhals_str_series_max_length(curseries, variable_value_labels.get(col_name), 1) * if dta_str_max_len and max_length >= dta_str_max_len: # <<<<<<<<<<<<<< @@ -7876,37 +7919,37 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_get_narwhals_column_typ __pyx_L42_bool_binop_done:; if (__pyx_t_2) { - /* "pyreadstat/_readstat_writer.pyx":372 + /* "pyreadstat/_readstat_writer.pyx":374 * max_length = get_narwhals_str_series_max_length(curseries, variable_value_labels.get(col_name), 1) * if dta_str_max_len and max_length >= dta_str_max_len: * result.append((PYWRITER_DTA_STR_REF, max_length, has_missing, None)) # <<<<<<<<<<<<<< * else: * result.append((PYWRITER_OBJECT, max_length, has_missing, None)) */ - __pyx_t_1 = __Pyx_PyLong_From___pyx_t_10pyreadstat_16_readstat_writer_pywriter_variable_type(__pyx_e_10pyreadstat_16_readstat_writer_PYWRITER_DTA_STR_REF); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 372, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyLong_From___pyx_t_10pyreadstat_16_readstat_writer_pywriter_variable_type(__pyx_e_10pyreadstat_16_readstat_writer_PYWRITER_DTA_STR_REF); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 374, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_7 = __Pyx_PyLong_From_int(__pyx_v_max_length); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 372, __pyx_L1_error) + __pyx_t_7 = __Pyx_PyLong_From_int(__pyx_v_max_length); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 374, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); - __pyx_t_8 = __Pyx_PyBool_FromLong(__pyx_v_has_missing); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 372, __pyx_L1_error) + __pyx_t_8 = __Pyx_PyBool_FromLong(__pyx_v_has_missing); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 374, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); - __pyx_t_13 = PyTuple_New(4); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 372, __pyx_L1_error) + __pyx_t_13 = PyTuple_New(4); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 374, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_GIVEREF(__pyx_t_1); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_13, 0, __pyx_t_1) != (0)) __PYX_ERR(0, 372, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_13, 0, __pyx_t_1) != (0)) __PYX_ERR(0, 374, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_7); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_13, 1, __pyx_t_7) != (0)) __PYX_ERR(0, 372, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_13, 1, __pyx_t_7) != (0)) __PYX_ERR(0, 374, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_8); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_13, 2, __pyx_t_8) != (0)) __PYX_ERR(0, 372, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_13, 2, __pyx_t_8) != (0)) __PYX_ERR(0, 374, __pyx_L1_error); __Pyx_INCREF(Py_None); __Pyx_GIVEREF(Py_None); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_13, 3, Py_None) != (0)) __PYX_ERR(0, 372, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_13, 3, Py_None) != (0)) __PYX_ERR(0, 374, __pyx_L1_error); __pyx_t_1 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; - __pyx_t_14 = __Pyx_PyList_Append(__pyx_v_result, __pyx_t_13); if (unlikely(__pyx_t_14 == ((int)-1))) __PYX_ERR(0, 372, __pyx_L1_error) + __pyx_t_14 = __Pyx_PyList_Append(__pyx_v_result, __pyx_t_13); if (unlikely(__pyx_t_14 == ((int)-1))) __PYX_ERR(0, 374, __pyx_L1_error) __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; - /* "pyreadstat/_readstat_writer.pyx":371 + /* "pyreadstat/_readstat_writer.pyx":373 * # if the object was not captured by any of the previous cases, we transform it to string * max_length = get_narwhals_str_series_max_length(curseries, variable_value_labels.get(col_name), 1) * if dta_str_max_len and max_length >= dta_str_max_len: # <<<<<<<<<<<<<< @@ -7916,7 +7959,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_get_narwhals_column_typ goto __pyx_L41; } - /* "pyreadstat/_readstat_writer.pyx":374 + /* "pyreadstat/_readstat_writer.pyx":376 * result.append((PYWRITER_DTA_STR_REF, max_length, has_missing, None)) * else: * result.append((PYWRITER_OBJECT, max_length, has_missing, None)) # <<<<<<<<<<<<<< @@ -7924,32 +7967,32 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_get_narwhals_column_typ * */ /*else*/ { - __pyx_t_13 = __Pyx_PyLong_From___pyx_t_10pyreadstat_16_readstat_writer_pywriter_variable_type(__pyx_e_10pyreadstat_16_readstat_writer_PYWRITER_OBJECT); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 374, __pyx_L1_error) + __pyx_t_13 = __Pyx_PyLong_From___pyx_t_10pyreadstat_16_readstat_writer_pywriter_variable_type(__pyx_e_10pyreadstat_16_readstat_writer_PYWRITER_OBJECT); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 376, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); - __pyx_t_8 = __Pyx_PyLong_From_int(__pyx_v_max_length); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 374, __pyx_L1_error) + __pyx_t_8 = __Pyx_PyLong_From_int(__pyx_v_max_length); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 376, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); - __pyx_t_7 = __Pyx_PyBool_FromLong(__pyx_v_has_missing); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 374, __pyx_L1_error) + __pyx_t_7 = __Pyx_PyBool_FromLong(__pyx_v_has_missing); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 376, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 374, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 376, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_13); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_13) != (0)) __PYX_ERR(0, 374, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_13) != (0)) __PYX_ERR(0, 376, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_8); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_8) != (0)) __PYX_ERR(0, 374, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_8) != (0)) __PYX_ERR(0, 376, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_7); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_t_7) != (0)) __PYX_ERR(0, 374, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_t_7) != (0)) __PYX_ERR(0, 376, __pyx_L1_error); __Pyx_INCREF(Py_None); __Pyx_GIVEREF(Py_None); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, Py_None) != (0)) __PYX_ERR(0, 374, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, Py_None) != (0)) __PYX_ERR(0, 376, __pyx_L1_error); __pyx_t_13 = 0; __pyx_t_8 = 0; __pyx_t_7 = 0; - __pyx_t_14 = __Pyx_PyList_Append(__pyx_v_result, __pyx_t_1); if (unlikely(__pyx_t_14 == ((int)-1))) __PYX_ERR(0, 374, __pyx_L1_error) + __pyx_t_14 = __Pyx_PyList_Append(__pyx_v_result, __pyx_t_1); if (unlikely(__pyx_t_14 == ((int)-1))) __PYX_ERR(0, 376, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } __pyx_L41:; - /* "pyreadstat/_readstat_writer.pyx":375 + /* "pyreadstat/_readstat_writer.pyx":377 * else: * result.append((PYWRITER_OBJECT, max_length, has_missing, None)) * continue # <<<<<<<<<<<<<< @@ -7958,7 +8001,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_get_narwhals_column_typ */ goto __pyx_L4_continue; - /* "pyreadstat/_readstat_writer.pyx":269 + /* "pyreadstat/_readstat_writer.pyx":271 * variable_value_labels = dict() * * for curseries in df.iter_columns(): # <<<<<<<<<<<<<< @@ -7969,7 +8012,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_get_narwhals_column_typ } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - /* "pyreadstat/_readstat_writer.pyx":377 + /* "pyreadstat/_readstat_writer.pyx":379 * continue * * return result # <<<<<<<<<<<<<< @@ -7981,7 +8024,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_get_narwhals_column_typ __pyx_r = __pyx_v_result; goto __pyx_L0; - /* "pyreadstat/_readstat_writer.pyx":252 + /* "pyreadstat/_readstat_writer.pyx":254 * return 1 * * cdef list get_narwhals_column_types(object df, dict missing_user_values, dict variable_value_labels, int dta_str_max_len): # <<<<<<<<<<<<<< @@ -8012,7 +8055,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_get_narwhals_column_typ return __pyx_r; } -/* "pyreadstat/_readstat_writer.pyx":379 +/* "pyreadstat/_readstat_writer.pyx":381 * return result * * cdef readstat_label_set_t *set_value_label(readstat_writer_t *writer, dict value_labels, str labelset_name, # <<<<<<<<<<<<<< @@ -8056,7 +8099,7 @@ static readstat_label_set_t *__pyx_f_10pyreadstat_16_readstat_writer_set_value_l int __pyx_clineno = 0; __Pyx_RefNannySetupContext("set_value_label", 0); - /* "pyreadstat/_readstat_writer.pyx":390 + /* "pyreadstat/_readstat_writer.pyx":392 * cdef double double_val * * curtype = narwhals_to_readstat_types[curpytype] # <<<<<<<<<<<<<< @@ -8065,18 +8108,18 @@ static readstat_label_set_t *__pyx_f_10pyreadstat_16_readstat_writer_set_value_l */ if (unlikely(__pyx_v_10pyreadstat_16_readstat_writer_narwhals_to_readstat_types == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 390, __pyx_L1_error) + __PYX_ERR(0, 392, __pyx_L1_error) } - __pyx_t_1 = __Pyx_PyLong_From___pyx_t_10pyreadstat_16_readstat_writer_pywriter_variable_type(__pyx_v_curpytype); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 390, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyLong_From___pyx_t_10pyreadstat_16_readstat_writer_pywriter_variable_type(__pyx_v_curpytype); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 392, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = __Pyx_PyDict_GetItem(__pyx_v_10pyreadstat_16_readstat_writer_narwhals_to_readstat_types, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 390, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyDict_GetItem(__pyx_v_10pyreadstat_16_readstat_writer_narwhals_to_readstat_types, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 392, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_3 = ((readstat_type_t)__Pyx_PyLong_As_readstat_type_t(__pyx_t_2)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 390, __pyx_L1_error) + __pyx_t_3 = ((readstat_type_t)__Pyx_PyLong_As_readstat_type_t(__pyx_t_2)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 392, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_v_curtype = __pyx_t_3; - /* "pyreadstat/_readstat_writer.pyx":391 + /* "pyreadstat/_readstat_writer.pyx":393 * * curtype = narwhals_to_readstat_types[curpytype] * label_set = readstat_add_label_set(writer, curtype, labelset_name.encode("utf-8")) # <<<<<<<<<<<<<< @@ -8085,15 +8128,15 @@ static readstat_label_set_t *__pyx_f_10pyreadstat_16_readstat_writer_set_value_l */ if (unlikely(__pyx_v_labelset_name == Py_None)) { PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "encode"); - __PYX_ERR(0, 391, __pyx_L1_error) + __PYX_ERR(0, 393, __pyx_L1_error) } - __pyx_t_2 = PyUnicode_AsUTF8String(__pyx_v_labelset_name); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 391, __pyx_L1_error) + __pyx_t_2 = PyUnicode_AsUTF8String(__pyx_v_labelset_name); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 393, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_4 = __Pyx_PyBytes_AsString(__pyx_t_2); if (unlikely((!__pyx_t_4) && PyErr_Occurred())) __PYX_ERR(0, 391, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyBytes_AsString(__pyx_t_2); if (unlikely((!__pyx_t_4) && PyErr_Occurred())) __PYX_ERR(0, 393, __pyx_L1_error) __pyx_v_label_set = readstat_add_label_set(__pyx_v_writer, __pyx_v_curtype, __pyx_t_4); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - /* "pyreadstat/_readstat_writer.pyx":393 + /* "pyreadstat/_readstat_writer.pyx":395 * label_set = readstat_add_label_set(writer, curtype, labelset_name.encode("utf-8")) * * for value, label in value_labels.items(): # <<<<<<<<<<<<<< @@ -8102,18 +8145,18 @@ static readstat_label_set_t *__pyx_f_10pyreadstat_16_readstat_writer_set_value_l */ if (unlikely(__pyx_v_value_labels == Py_None)) { PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "items"); - __PYX_ERR(0, 393, __pyx_L1_error) + __PYX_ERR(0, 395, __pyx_L1_error) } - __pyx_t_2 = __Pyx_PyDict_Items(__pyx_v_value_labels); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 393, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyDict_Items(__pyx_v_value_labels); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 395, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (likely(PyList_CheckExact(__pyx_t_2)) || PyTuple_CheckExact(__pyx_t_2)) { __pyx_t_1 = __pyx_t_2; __Pyx_INCREF(__pyx_t_1); __pyx_t_5 = 0; __pyx_t_6 = NULL; } else { - __pyx_t_5 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 393, __pyx_L1_error) + __pyx_t_5 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 395, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_6 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 393, __pyx_L1_error) + __pyx_t_6 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 395, __pyx_L1_error) } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; for (;;) { @@ -8122,7 +8165,7 @@ static readstat_label_set_t *__pyx_f_10pyreadstat_16_readstat_writer_set_value_l { Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_1); #if !CYTHON_ASSUME_SAFE_SIZE - if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 393, __pyx_L1_error) + if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 395, __pyx_L1_error) #endif if (__pyx_t_5 >= __pyx_temp) break; } @@ -8132,7 +8175,7 @@ static readstat_label_set_t *__pyx_f_10pyreadstat_16_readstat_writer_set_value_l { Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_1); #if !CYTHON_ASSUME_SAFE_SIZE - if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 393, __pyx_L1_error) + if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 395, __pyx_L1_error) #endif if (__pyx_t_5 >= __pyx_temp) break; } @@ -8143,13 +8186,13 @@ static readstat_label_set_t *__pyx_f_10pyreadstat_16_readstat_writer_set_value_l #endif ++__pyx_t_5; } - if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 393, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 395, __pyx_L1_error) } else { __pyx_t_2 = __pyx_t_6(__pyx_t_1); if (unlikely(!__pyx_t_2)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { - if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(0, 393, __pyx_L1_error) + if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(0, 395, __pyx_L1_error) PyErr_Clear(); } break; @@ -8162,7 +8205,7 @@ static readstat_label_set_t *__pyx_f_10pyreadstat_16_readstat_writer_set_value_l if (unlikely(size != 2)) { if (size > 2) __Pyx_RaiseTooManyValuesError(2); else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); - __PYX_ERR(0, 393, __pyx_L1_error) + __PYX_ERR(0, 395, __pyx_L1_error) } #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS if (likely(PyTuple_CheckExact(sequence))) { @@ -8172,22 +8215,22 @@ static readstat_label_set_t *__pyx_f_10pyreadstat_16_readstat_writer_set_value_l __Pyx_INCREF(__pyx_t_8); } else { __pyx_t_7 = __Pyx_PyList_GetItemRefFast(sequence, 0, __Pyx_ReferenceSharing_SharedReference); - if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 393, __pyx_L1_error) + if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 395, __pyx_L1_error) __Pyx_XGOTREF(__pyx_t_7); __pyx_t_8 = __Pyx_PyList_GetItemRefFast(sequence, 1, __Pyx_ReferenceSharing_SharedReference); - if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 393, __pyx_L1_error) + if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 395, __pyx_L1_error) __Pyx_XGOTREF(__pyx_t_8); } #else - __pyx_t_7 = __Pyx_PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 393, __pyx_L1_error) + __pyx_t_7 = __Pyx_PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 395, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); - __pyx_t_8 = __Pyx_PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 393, __pyx_L1_error) + __pyx_t_8 = __Pyx_PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 395, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); #endif __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } else { Py_ssize_t index = -1; - __pyx_t_9 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 393, __pyx_L1_error) + __pyx_t_9 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 395, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_10 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_9); @@ -8195,7 +8238,7 @@ static readstat_label_set_t *__pyx_f_10pyreadstat_16_readstat_writer_set_value_l __Pyx_GOTREF(__pyx_t_7); index = 1; __pyx_t_8 = __pyx_t_10(__pyx_t_9); if (unlikely(!__pyx_t_8)) goto __pyx_L5_unpacking_failed; __Pyx_GOTREF(__pyx_t_8); - if (__Pyx_IternextUnpackEndCheck(__pyx_t_10(__pyx_t_9), 2) < (0)) __PYX_ERR(0, 393, __pyx_L1_error) + if (__Pyx_IternextUnpackEndCheck(__pyx_t_10(__pyx_t_9), 2) < (0)) __PYX_ERR(0, 395, __pyx_L1_error) __pyx_t_10 = NULL; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; goto __pyx_L6_unpacking_done; @@ -8203,7 +8246,7 @@ static readstat_label_set_t *__pyx_f_10pyreadstat_16_readstat_writer_set_value_l __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_10 = NULL; if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); - __PYX_ERR(0, 393, __pyx_L1_error) + __PYX_ERR(0, 395, __pyx_L1_error) __pyx_L6_unpacking_done:; } __Pyx_XDECREF_SET(__pyx_v_value, __pyx_t_7); @@ -8211,28 +8254,28 @@ static readstat_label_set_t *__pyx_f_10pyreadstat_16_readstat_writer_set_value_l __Pyx_XDECREF_SET(__pyx_v_label, __pyx_t_8); __pyx_t_8 = 0; - /* "pyreadstat/_readstat_writer.pyx":395 + /* "pyreadstat/_readstat_writer.pyx":397 * for value, label in value_labels.items(): * * if type(label) != str: # <<<<<<<<<<<<<< * msg = "variable_value_labels: type of Label %s in variable %s must be string" % (str(label), variable_name) * raise PyreadstatError(msg) */ - __pyx_t_2 = PyObject_RichCompare(((PyObject *)Py_TYPE(__pyx_v_label)), ((PyObject *)(&PyUnicode_Type)), Py_NE); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 395, __pyx_L1_error) - __pyx_t_11 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely((__pyx_t_11 < 0))) __PYX_ERR(0, 395, __pyx_L1_error) + __pyx_t_2 = PyObject_RichCompare(((PyObject *)Py_TYPE(__pyx_v_label)), ((PyObject *)(&PyUnicode_Type)), Py_NE); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 397, __pyx_L1_error) + __pyx_t_11 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely((__pyx_t_11 < 0))) __PYX_ERR(0, 397, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (unlikely(__pyx_t_11)) { - /* "pyreadstat/_readstat_writer.pyx":396 + /* "pyreadstat/_readstat_writer.pyx":398 * * if type(label) != str: * msg = "variable_value_labels: type of Label %s in variable %s must be string" % (str(label), variable_name) # <<<<<<<<<<<<<< * raise PyreadstatError(msg) * */ - __pyx_t_2 = __Pyx_PyObject_Unicode(__pyx_v_label); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 396, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_Unicode(__pyx_v_label); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 398, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_8 = __Pyx_PyUnicode_Unicode(__pyx_v_variable_name); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 396, __pyx_L1_error) + __pyx_t_8 = __Pyx_PyUnicode_Unicode(__pyx_v_variable_name); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 398, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_12[0] = __pyx_mstate_global->__pyx_kp_u_variable_value_labels_type_of_La; __pyx_t_12[1] = __pyx_t_2; @@ -8240,14 +8283,14 @@ static readstat_label_set_t *__pyx_f_10pyreadstat_16_readstat_writer_set_value_l __pyx_t_12[3] = __pyx_t_8; __pyx_t_12[4] = __pyx_mstate_global->__pyx_kp_u_must_be_string; __pyx_t_7 = __Pyx_PyUnicode_Join(__pyx_t_12, 5, 37 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_2) + 13 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_8) + 15, 127 | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_2) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_8)); - if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 396, __pyx_L1_error) + if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 398, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_v_msg = ((PyObject*)__pyx_t_7); __pyx_t_7 = 0; - /* "pyreadstat/_readstat_writer.pyx":397 + /* "pyreadstat/_readstat_writer.pyx":399 * if type(label) != str: * msg = "variable_value_labels: type of Label %s in variable %s must be string" % (str(label), variable_name) * raise PyreadstatError(msg) # <<<<<<<<<<<<<< @@ -8255,7 +8298,7 @@ static readstat_label_set_t *__pyx_f_10pyreadstat_16_readstat_writer_set_value_l * if user_missing_tags and value in user_missing_tags: */ __pyx_t_8 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 397, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 399, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_13 = 1; #if CYTHON_UNPACK_METHODS @@ -8274,14 +8317,14 @@ static readstat_label_set_t *__pyx_f_10pyreadstat_16_readstat_writer_set_value_l __pyx_t_7 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_2, __pyx_callargs+__pyx_t_13, (2-__pyx_t_13) | (__pyx_t_13*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 397, __pyx_L1_error) + if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 399, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); } __Pyx_Raise(__pyx_t_7, 0, 0, 0); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __PYX_ERR(0, 397, __pyx_L1_error) + __PYX_ERR(0, 399, __pyx_L1_error) - /* "pyreadstat/_readstat_writer.pyx":395 + /* "pyreadstat/_readstat_writer.pyx":397 * for value, label in value_labels.items(): * * if type(label) != str: # <<<<<<<<<<<<<< @@ -8290,7 +8333,7 @@ static readstat_label_set_t *__pyx_f_10pyreadstat_16_readstat_writer_set_value_l */ } - /* "pyreadstat/_readstat_writer.pyx":399 + /* "pyreadstat/_readstat_writer.pyx":401 * raise PyreadstatError(msg) * * if user_missing_tags and value in user_missing_tags: # <<<<<<<<<<<<<< @@ -8301,7 +8344,7 @@ static readstat_label_set_t *__pyx_f_10pyreadstat_16_readstat_writer_set_value_l else { Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_v_user_missing_tags); - if (unlikely(((!CYTHON_ASSUME_SAFE_SIZE) && __pyx_temp < 0))) __PYX_ERR(0, 399, __pyx_L1_error) + if (unlikely(((!CYTHON_ASSUME_SAFE_SIZE) && __pyx_temp < 0))) __PYX_ERR(0, 401, __pyx_L1_error) __pyx_t_14 = (__pyx_temp != 0); } @@ -8310,12 +8353,12 @@ static readstat_label_set_t *__pyx_f_10pyreadstat_16_readstat_writer_set_value_l __pyx_t_11 = __pyx_t_14; goto __pyx_L9_bool_binop_done; } - __pyx_t_14 = (__Pyx_PySequence_ContainsTF(__pyx_v_value, __pyx_v_user_missing_tags, Py_EQ)); if (unlikely((__pyx_t_14 < 0))) __PYX_ERR(0, 399, __pyx_L1_error) + __pyx_t_14 = (__Pyx_PySequence_ContainsTF(__pyx_v_value, __pyx_v_user_missing_tags, Py_EQ)); if (unlikely((__pyx_t_14 < 0))) __PYX_ERR(0, 401, __pyx_L1_error) __pyx_t_11 = __pyx_t_14; __pyx_L9_bool_binop_done:; if (__pyx_t_11) { - /* "pyreadstat/_readstat_writer.pyx":400 + /* "pyreadstat/_readstat_writer.pyx":402 * * if user_missing_tags and value in user_missing_tags: * if curpytype == PYWRITER_CHARACTER or curpytype == PYWRITER_OBJECT or curpytype==PYWRITER_DTA_STR_REF: # <<<<<<<<<<<<<< @@ -8327,19 +8370,19 @@ static readstat_label_set_t *__pyx_f_10pyreadstat_16_readstat_writer_set_value_l case __pyx_e_10pyreadstat_16_readstat_writer_PYWRITER_OBJECT: case __pyx_e_10pyreadstat_16_readstat_writer_PYWRITER_DTA_STR_REF: - /* "pyreadstat/_readstat_writer.pyx":401 + /* "pyreadstat/_readstat_writer.pyx":403 * if user_missing_tags and value in user_missing_tags: * if curpytype == PYWRITER_CHARACTER or curpytype == PYWRITER_OBJECT or curpytype==PYWRITER_DTA_STR_REF: * msg = "missing_user_values not allowed for character variable %s" % variable_name # <<<<<<<<<<<<<< * raise PyreadstatError(msg) * */ - __pyx_t_7 = PyUnicode_Format(__pyx_mstate_global->__pyx_kp_u_missing_user_values_not_allowed, __pyx_v_variable_name); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 401, __pyx_L1_error) + __pyx_t_7 = PyUnicode_Format(__pyx_mstate_global->__pyx_kp_u_missing_user_values_not_allowed, __pyx_v_variable_name); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 403, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_v_msg = ((PyObject*)__pyx_t_7); __pyx_t_7 = 0; - /* "pyreadstat/_readstat_writer.pyx":402 + /* "pyreadstat/_readstat_writer.pyx":404 * if curpytype == PYWRITER_CHARACTER or curpytype == PYWRITER_OBJECT or curpytype==PYWRITER_DTA_STR_REF: * msg = "missing_user_values not allowed for character variable %s" % variable_name * raise PyreadstatError(msg) # <<<<<<<<<<<<<< @@ -8347,7 +8390,7 @@ static readstat_label_set_t *__pyx_f_10pyreadstat_16_readstat_writer_set_value_l * readstat_label_tagged_value(label_set, ord(value), label.encode("utf-8")) */ __pyx_t_2 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 402, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 404, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_13 = 1; #if CYTHON_UNPACK_METHODS @@ -8366,14 +8409,14 @@ static readstat_label_set_t *__pyx_f_10pyreadstat_16_readstat_writer_set_value_l __pyx_t_7 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_8, __pyx_callargs+__pyx_t_13, (2-__pyx_t_13) | (__pyx_t_13*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 402, __pyx_L1_error) + if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 404, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); } __Pyx_Raise(__pyx_t_7, 0, 0, 0); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __PYX_ERR(0, 402, __pyx_L1_error) + __PYX_ERR(0, 404, __pyx_L1_error) - /* "pyreadstat/_readstat_writer.pyx":400 + /* "pyreadstat/_readstat_writer.pyx":402 * * if user_missing_tags and value in user_missing_tags: * if curpytype == PYWRITER_CHARACTER or curpytype == PYWRITER_OBJECT or curpytype==PYWRITER_DTA_STR_REF: # <<<<<<<<<<<<<< @@ -8384,14 +8427,14 @@ static readstat_label_set_t *__pyx_f_10pyreadstat_16_readstat_writer_set_value_l default: break; } - /* "pyreadstat/_readstat_writer.pyx":404 + /* "pyreadstat/_readstat_writer.pyx":406 * raise PyreadstatError(msg) * * readstat_label_tagged_value(label_set, ord(value), label.encode("utf-8")) # <<<<<<<<<<<<<< * continue * */ - __pyx_t_15 = __Pyx_PyObject_Ord(__pyx_v_value); if (unlikely(__pyx_t_15 == ((long)(long)(Py_UCS4)-1))) __PYX_ERR(0, 404, __pyx_L1_error) + __pyx_t_15 = __Pyx_PyObject_Ord(__pyx_v_value); if (unlikely(__pyx_t_15 == ((long)(long)(Py_UCS4)-1))) __PYX_ERR(0, 406, __pyx_L1_error) __pyx_t_8 = __pyx_v_label; __Pyx_INCREF(__pyx_t_8); __pyx_t_13 = 0; @@ -8399,14 +8442,14 @@ static readstat_label_set_t *__pyx_f_10pyreadstat_16_readstat_writer_set_value_l PyObject *__pyx_callargs[2] = {__pyx_t_8, __pyx_mstate_global->__pyx_kp_u_utf_8}; __pyx_t_7 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_encode, __pyx_callargs+__pyx_t_13, (2-__pyx_t_13) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; - if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 404, __pyx_L1_error) + if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 406, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); } - __pyx_t_16 = __Pyx_PyObject_AsString(__pyx_t_7); if (unlikely((!__pyx_t_16) && PyErr_Occurred())) __PYX_ERR(0, 404, __pyx_L1_error) + __pyx_t_16 = __Pyx_PyObject_AsString(__pyx_t_7); if (unlikely((!__pyx_t_16) && PyErr_Occurred())) __PYX_ERR(0, 406, __pyx_L1_error) readstat_label_tagged_value(__pyx_v_label_set, __pyx_t_15, __pyx_t_16); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - /* "pyreadstat/_readstat_writer.pyx":405 + /* "pyreadstat/_readstat_writer.pyx":407 * * readstat_label_tagged_value(label_set, ord(value), label.encode("utf-8")) * continue # <<<<<<<<<<<<<< @@ -8415,7 +8458,7 @@ static readstat_label_set_t *__pyx_f_10pyreadstat_16_readstat_writer_set_value_l */ goto __pyx_L3_continue; - /* "pyreadstat/_readstat_writer.pyx":399 + /* "pyreadstat/_readstat_writer.pyx":401 * raise PyreadstatError(msg) * * if user_missing_tags and value in user_missing_tags: # <<<<<<<<<<<<<< @@ -8424,7 +8467,7 @@ static readstat_label_set_t *__pyx_f_10pyreadstat_16_readstat_writer_set_value_l */ } - /* "pyreadstat/_readstat_writer.pyx":408 + /* "pyreadstat/_readstat_writer.pyx":410 * * * if curpytype == PYWRITER_DOUBLE: # <<<<<<<<<<<<<< @@ -8434,38 +8477,38 @@ static readstat_label_set_t *__pyx_f_10pyreadstat_16_readstat_writer_set_value_l switch (__pyx_v_curpytype) { case __pyx_e_10pyreadstat_16_readstat_writer_PYWRITER_DOUBLE: - /* "pyreadstat/_readstat_writer.pyx":409 + /* "pyreadstat/_readstat_writer.pyx":411 * * if curpytype == PYWRITER_DOUBLE: * if type(value) != float and type(value) != int: # <<<<<<<<<<<<<< * msg = "variable_value_labels: type of Value %s in variable %s must be numeric" % (str(value), variable_name) * raise PyreadstatError(msg) */ - __pyx_t_7 = PyObject_RichCompare(((PyObject *)Py_TYPE(__pyx_v_value)), ((PyObject *)(&PyFloat_Type)), Py_NE); __Pyx_XGOTREF(__pyx_t_7); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 409, __pyx_L1_error) - __pyx_t_14 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely((__pyx_t_14 < 0))) __PYX_ERR(0, 409, __pyx_L1_error) + __pyx_t_7 = PyObject_RichCompare(((PyObject *)Py_TYPE(__pyx_v_value)), ((PyObject *)(&PyFloat_Type)), Py_NE); __Pyx_XGOTREF(__pyx_t_7); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 411, __pyx_L1_error) + __pyx_t_14 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely((__pyx_t_14 < 0))) __PYX_ERR(0, 411, __pyx_L1_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; if (__pyx_t_14) { } else { __pyx_t_11 = __pyx_t_14; goto __pyx_L12_bool_binop_done; } - __pyx_t_7 = PyObject_RichCompare(((PyObject *)Py_TYPE(__pyx_v_value)), ((PyObject *)(&PyLong_Type)), Py_NE); __Pyx_XGOTREF(__pyx_t_7); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 409, __pyx_L1_error) - __pyx_t_14 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely((__pyx_t_14 < 0))) __PYX_ERR(0, 409, __pyx_L1_error) + __pyx_t_7 = PyObject_RichCompare(((PyObject *)Py_TYPE(__pyx_v_value)), ((PyObject *)(&PyLong_Type)), Py_NE); __Pyx_XGOTREF(__pyx_t_7); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 411, __pyx_L1_error) + __pyx_t_14 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely((__pyx_t_14 < 0))) __PYX_ERR(0, 411, __pyx_L1_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_11 = __pyx_t_14; __pyx_L12_bool_binop_done:; if (unlikely(__pyx_t_11)) { - /* "pyreadstat/_readstat_writer.pyx":410 + /* "pyreadstat/_readstat_writer.pyx":412 * if curpytype == PYWRITER_DOUBLE: * if type(value) != float and type(value) != int: * msg = "variable_value_labels: type of Value %s in variable %s must be numeric" % (str(value), variable_name) # <<<<<<<<<<<<<< * raise PyreadstatError(msg) * readstat_label_double_value(label_set, value, label.encode("utf-8")) */ - __pyx_t_7 = __Pyx_PyObject_Unicode(__pyx_v_value); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 410, __pyx_L1_error) + __pyx_t_7 = __Pyx_PyObject_Unicode(__pyx_v_value); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 412, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); - __pyx_t_8 = __Pyx_PyUnicode_Unicode(__pyx_v_variable_name); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 410, __pyx_L1_error) + __pyx_t_8 = __Pyx_PyUnicode_Unicode(__pyx_v_variable_name); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 412, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_12[0] = __pyx_mstate_global->__pyx_kp_u_variable_value_labels_type_of_Va; __pyx_t_12[1] = __pyx_t_7; @@ -8473,14 +8516,14 @@ static readstat_label_set_t *__pyx_f_10pyreadstat_16_readstat_writer_set_value_l __pyx_t_12[3] = __pyx_t_8; __pyx_t_12[4] = __pyx_mstate_global->__pyx_kp_u_must_be_numeric; __pyx_t_2 = __Pyx_PyUnicode_Join(__pyx_t_12, 5, 37 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_7) + 13 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_8) + 16, 127 | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_7) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_8)); - if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 410, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 412, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_v_msg = ((PyObject*)__pyx_t_2); __pyx_t_2 = 0; - /* "pyreadstat/_readstat_writer.pyx":411 + /* "pyreadstat/_readstat_writer.pyx":413 * if type(value) != float and type(value) != int: * msg = "variable_value_labels: type of Value %s in variable %s must be numeric" % (str(value), variable_name) * raise PyreadstatError(msg) # <<<<<<<<<<<<<< @@ -8488,7 +8531,7 @@ static readstat_label_set_t *__pyx_f_10pyreadstat_16_readstat_writer_set_value_l * */ __pyx_t_8 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 411, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 413, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_13 = 1; #if CYTHON_UNPACK_METHODS @@ -8507,14 +8550,14 @@ static readstat_label_set_t *__pyx_f_10pyreadstat_16_readstat_writer_set_value_l __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_7, __pyx_callargs+__pyx_t_13, (2-__pyx_t_13) | (__pyx_t_13*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 411, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 413, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } __Pyx_Raise(__pyx_t_2, 0, 0, 0); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __PYX_ERR(0, 411, __pyx_L1_error) + __PYX_ERR(0, 413, __pyx_L1_error) - /* "pyreadstat/_readstat_writer.pyx":409 + /* "pyreadstat/_readstat_writer.pyx":411 * * if curpytype == PYWRITER_DOUBLE: * if type(value) != float and type(value) != int: # <<<<<<<<<<<<<< @@ -8523,14 +8566,14 @@ static readstat_label_set_t *__pyx_f_10pyreadstat_16_readstat_writer_set_value_l */ } - /* "pyreadstat/_readstat_writer.pyx":412 + /* "pyreadstat/_readstat_writer.pyx":414 * msg = "variable_value_labels: type of Value %s in variable %s must be numeric" % (str(value), variable_name) * raise PyreadstatError(msg) * readstat_label_double_value(label_set, value, label.encode("utf-8")) # <<<<<<<<<<<<<< * * elif curpytype == PYWRITER_INTEGER: */ - __pyx_t_17 = __Pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_17 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 412, __pyx_L1_error) + __pyx_t_17 = __Pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_17 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 414, __pyx_L1_error) __pyx_t_7 = __pyx_v_label; __Pyx_INCREF(__pyx_t_7); __pyx_t_13 = 0; @@ -8538,14 +8581,14 @@ static readstat_label_set_t *__pyx_f_10pyreadstat_16_readstat_writer_set_value_l PyObject *__pyx_callargs[2] = {__pyx_t_7, __pyx_mstate_global->__pyx_kp_u_utf_8}; __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_encode, __pyx_callargs+__pyx_t_13, (2-__pyx_t_13) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 412, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 414, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } - __pyx_t_18 = __Pyx_PyObject_AsString(__pyx_t_2); if (unlikely((!__pyx_t_18) && PyErr_Occurred())) __PYX_ERR(0, 412, __pyx_L1_error) + __pyx_t_18 = __Pyx_PyObject_AsString(__pyx_t_2); if (unlikely((!__pyx_t_18) && PyErr_Occurred())) __PYX_ERR(0, 414, __pyx_L1_error) readstat_label_double_value(__pyx_v_label_set, __pyx_t_17, __pyx_t_18); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - /* "pyreadstat/_readstat_writer.pyx":408 + /* "pyreadstat/_readstat_writer.pyx":410 * * * if curpytype == PYWRITER_DOUBLE: # <<<<<<<<<<<<<< @@ -8555,28 +8598,28 @@ static readstat_label_set_t *__pyx_f_10pyreadstat_16_readstat_writer_set_value_l break; case __pyx_e_10pyreadstat_16_readstat_writer_PYWRITER_INTEGER: - /* "pyreadstat/_readstat_writer.pyx":415 + /* "pyreadstat/_readstat_writer.pyx":417 * * elif curpytype == PYWRITER_INTEGER: * if type(value) != int: # <<<<<<<<<<<<<< * #if type(value) not in int_types: * msg = "variable_value_labels: type of Value %s in variable %s must be int" % (str(value), variable_name) */ - __pyx_t_2 = PyObject_RichCompare(((PyObject *)Py_TYPE(__pyx_v_value)), ((PyObject *)(&PyLong_Type)), Py_NE); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 415, __pyx_L1_error) - __pyx_t_11 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely((__pyx_t_11 < 0))) __PYX_ERR(0, 415, __pyx_L1_error) + __pyx_t_2 = PyObject_RichCompare(((PyObject *)Py_TYPE(__pyx_v_value)), ((PyObject *)(&PyLong_Type)), Py_NE); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 417, __pyx_L1_error) + __pyx_t_11 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely((__pyx_t_11 < 0))) __PYX_ERR(0, 417, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (unlikely(__pyx_t_11)) { - /* "pyreadstat/_readstat_writer.pyx":417 + /* "pyreadstat/_readstat_writer.pyx":419 * if type(value) != int: * #if type(value) not in int_types: * msg = "variable_value_labels: type of Value %s in variable %s must be int" % (str(value), variable_name) # <<<<<<<<<<<<<< * raise PyreadstatError(msg) * readstat_label_int32_value(label_set, value, label.encode("utf-8")) */ - __pyx_t_2 = __Pyx_PyObject_Unicode(__pyx_v_value); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 417, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_Unicode(__pyx_v_value); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 419, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_7 = __Pyx_PyUnicode_Unicode(__pyx_v_variable_name); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 417, __pyx_L1_error) + __pyx_t_7 = __Pyx_PyUnicode_Unicode(__pyx_v_variable_name); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 419, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_12[0] = __pyx_mstate_global->__pyx_kp_u_variable_value_labels_type_of_Va; __pyx_t_12[1] = __pyx_t_2; @@ -8584,14 +8627,14 @@ static readstat_label_set_t *__pyx_f_10pyreadstat_16_readstat_writer_set_value_l __pyx_t_12[3] = __pyx_t_7; __pyx_t_12[4] = __pyx_mstate_global->__pyx_kp_u_must_be_int; __pyx_t_8 = __Pyx_PyUnicode_Join(__pyx_t_12, 5, 37 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_2) + 13 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_7) + 12, 127 | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_2) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_7)); - if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 417, __pyx_L1_error) + if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 419, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_v_msg = ((PyObject*)__pyx_t_8); __pyx_t_8 = 0; - /* "pyreadstat/_readstat_writer.pyx":418 + /* "pyreadstat/_readstat_writer.pyx":420 * #if type(value) not in int_types: * msg = "variable_value_labels: type of Value %s in variable %s must be int" % (str(value), variable_name) * raise PyreadstatError(msg) # <<<<<<<<<<<<<< @@ -8599,7 +8642,7 @@ static readstat_label_set_t *__pyx_f_10pyreadstat_16_readstat_writer_set_value_l * */ __pyx_t_7 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 418, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 420, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_13 = 1; #if CYTHON_UNPACK_METHODS @@ -8618,14 +8661,14 @@ static readstat_label_set_t *__pyx_f_10pyreadstat_16_readstat_writer_set_value_l __pyx_t_8 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_2, __pyx_callargs+__pyx_t_13, (2-__pyx_t_13) | (__pyx_t_13*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 418, __pyx_L1_error) + if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 420, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); } __Pyx_Raise(__pyx_t_8, 0, 0, 0); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - __PYX_ERR(0, 418, __pyx_L1_error) + __PYX_ERR(0, 420, __pyx_L1_error) - /* "pyreadstat/_readstat_writer.pyx":415 + /* "pyreadstat/_readstat_writer.pyx":417 * * elif curpytype == PYWRITER_INTEGER: * if type(value) != int: # <<<<<<<<<<<<<< @@ -8634,14 +8677,14 @@ static readstat_label_set_t *__pyx_f_10pyreadstat_16_readstat_writer_set_value_l */ } - /* "pyreadstat/_readstat_writer.pyx":419 + /* "pyreadstat/_readstat_writer.pyx":421 * msg = "variable_value_labels: type of Value %s in variable %s must be int" % (str(value), variable_name) * raise PyreadstatError(msg) * readstat_label_int32_value(label_set, value, label.encode("utf-8")) # <<<<<<<<<<<<<< * * elif curpytype == PYWRITER_LOGICAL: */ - __pyx_t_19 = __Pyx_PyLong_As_int32_t(__pyx_v_value); if (unlikely((__pyx_t_19 == ((int32_t)-1)) && PyErr_Occurred())) __PYX_ERR(0, 419, __pyx_L1_error) + __pyx_t_19 = __Pyx_PyLong_As_int32_t(__pyx_v_value); if (unlikely((__pyx_t_19 == ((int32_t)-1)) && PyErr_Occurred())) __PYX_ERR(0, 421, __pyx_L1_error) __pyx_t_2 = __pyx_v_label; __Pyx_INCREF(__pyx_t_2); __pyx_t_13 = 0; @@ -8649,14 +8692,14 @@ static readstat_label_set_t *__pyx_f_10pyreadstat_16_readstat_writer_set_value_l PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_mstate_global->__pyx_kp_u_utf_8}; __pyx_t_8 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_encode, __pyx_callargs+__pyx_t_13, (2-__pyx_t_13) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 419, __pyx_L1_error) + if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 421, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); } - __pyx_t_20 = __Pyx_PyObject_AsString(__pyx_t_8); if (unlikely((!__pyx_t_20) && PyErr_Occurred())) __PYX_ERR(0, 419, __pyx_L1_error) + __pyx_t_20 = __Pyx_PyObject_AsString(__pyx_t_8); if (unlikely((!__pyx_t_20) && PyErr_Occurred())) __PYX_ERR(0, 421, __pyx_L1_error) readstat_label_int32_value(__pyx_v_label_set, __pyx_t_19, __pyx_t_20); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - /* "pyreadstat/_readstat_writer.pyx":414 + /* "pyreadstat/_readstat_writer.pyx":416 * readstat_label_double_value(label_set, value, label.encode("utf-8")) * * elif curpytype == PYWRITER_INTEGER: # <<<<<<<<<<<<<< @@ -8666,42 +8709,42 @@ static readstat_label_set_t *__pyx_f_10pyreadstat_16_readstat_writer_set_value_l break; case __pyx_e_10pyreadstat_16_readstat_writer_PYWRITER_LOGICAL: - /* "pyreadstat/_readstat_writer.pyx":422 + /* "pyreadstat/_readstat_writer.pyx":424 * * elif curpytype == PYWRITER_LOGICAL: * if type(value) != bool and (value != 0 and value != 1): # <<<<<<<<<<<<<< * msg = "variable_value_labels: type of Value %s in variable %s must be boolean or be 1 or 0" % (str(value), variable_name) * raise PyreadstatError(msg) */ - __pyx_t_8 = PyObject_RichCompare(((PyObject *)Py_TYPE(__pyx_v_value)), ((PyObject *)(&PyBool_Type)), Py_NE); __Pyx_XGOTREF(__pyx_t_8); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 422, __pyx_L1_error) - __pyx_t_14 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely((__pyx_t_14 < 0))) __PYX_ERR(0, 422, __pyx_L1_error) + __pyx_t_8 = PyObject_RichCompare(((PyObject *)Py_TYPE(__pyx_v_value)), ((PyObject *)(&PyBool_Type)), Py_NE); __Pyx_XGOTREF(__pyx_t_8); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 424, __pyx_L1_error) + __pyx_t_14 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely((__pyx_t_14 < 0))) __PYX_ERR(0, 424, __pyx_L1_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; if (__pyx_t_14) { } else { __pyx_t_11 = __pyx_t_14; goto __pyx_L16_bool_binop_done; } - __pyx_t_14 = (__Pyx_PyLong_BoolNeObjC(__pyx_v_value, __pyx_mstate_global->__pyx_int_0, 0, 0)); if (unlikely((__pyx_t_14 < 0))) __PYX_ERR(0, 422, __pyx_L1_error) + __pyx_t_14 = (__Pyx_PyLong_BoolNeObjC(__pyx_v_value, __pyx_mstate_global->__pyx_int_0, 0, 0)); if (unlikely((__pyx_t_14 < 0))) __PYX_ERR(0, 424, __pyx_L1_error) if (__pyx_t_14) { } else { __pyx_t_11 = __pyx_t_14; goto __pyx_L16_bool_binop_done; } - __pyx_t_14 = (__Pyx_PyLong_BoolNeObjC(__pyx_v_value, __pyx_mstate_global->__pyx_int_1, 1, 0)); if (unlikely((__pyx_t_14 < 0))) __PYX_ERR(0, 422, __pyx_L1_error) + __pyx_t_14 = (__Pyx_PyLong_BoolNeObjC(__pyx_v_value, __pyx_mstate_global->__pyx_int_1, 1, 0)); if (unlikely((__pyx_t_14 < 0))) __PYX_ERR(0, 424, __pyx_L1_error) __pyx_t_11 = __pyx_t_14; __pyx_L16_bool_binop_done:; if (unlikely(__pyx_t_11)) { - /* "pyreadstat/_readstat_writer.pyx":423 + /* "pyreadstat/_readstat_writer.pyx":425 * elif curpytype == PYWRITER_LOGICAL: * if type(value) != bool and (value != 0 and value != 1): * msg = "variable_value_labels: type of Value %s in variable %s must be boolean or be 1 or 0" % (str(value), variable_name) # <<<<<<<<<<<<<< * raise PyreadstatError(msg) * readstat_label_int32_value(label_set, int(value), label.encode("utf-8")) */ - __pyx_t_8 = __Pyx_PyObject_Unicode(__pyx_v_value); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 423, __pyx_L1_error) + __pyx_t_8 = __Pyx_PyObject_Unicode(__pyx_v_value); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 425, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); - __pyx_t_2 = __Pyx_PyUnicode_Unicode(__pyx_v_variable_name); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 423, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyUnicode_Unicode(__pyx_v_variable_name); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 425, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_12[0] = __pyx_mstate_global->__pyx_kp_u_variable_value_labels_type_of_Va; __pyx_t_12[1] = __pyx_t_8; @@ -8709,14 +8752,14 @@ static readstat_label_set_t *__pyx_f_10pyreadstat_16_readstat_writer_set_value_l __pyx_t_12[3] = __pyx_t_2; __pyx_t_12[4] = __pyx_mstate_global->__pyx_kp_u_must_be_boolean_or_be_1_or_0; __pyx_t_7 = __Pyx_PyUnicode_Join(__pyx_t_12, 5, 37 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_8) + 13 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_2) + 29, 127 | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_8) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_2)); - if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 423, __pyx_L1_error) + if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 425, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_v_msg = ((PyObject*)__pyx_t_7); __pyx_t_7 = 0; - /* "pyreadstat/_readstat_writer.pyx":424 + /* "pyreadstat/_readstat_writer.pyx":426 * if type(value) != bool and (value != 0 and value != 1): * msg = "variable_value_labels: type of Value %s in variable %s must be boolean or be 1 or 0" % (str(value), variable_name) * raise PyreadstatError(msg) # <<<<<<<<<<<<<< @@ -8724,7 +8767,7 @@ static readstat_label_set_t *__pyx_f_10pyreadstat_16_readstat_writer_set_value_l * */ __pyx_t_2 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 424, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 426, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_13 = 1; #if CYTHON_UNPACK_METHODS @@ -8743,14 +8786,14 @@ static readstat_label_set_t *__pyx_f_10pyreadstat_16_readstat_writer_set_value_l __pyx_t_7 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_8, __pyx_callargs+__pyx_t_13, (2-__pyx_t_13) | (__pyx_t_13*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 424, __pyx_L1_error) + if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 426, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); } __Pyx_Raise(__pyx_t_7, 0, 0, 0); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __PYX_ERR(0, 424, __pyx_L1_error) + __PYX_ERR(0, 426, __pyx_L1_error) - /* "pyreadstat/_readstat_writer.pyx":422 + /* "pyreadstat/_readstat_writer.pyx":424 * * elif curpytype == PYWRITER_LOGICAL: * if type(value) != bool and (value != 0 and value != 1): # <<<<<<<<<<<<<< @@ -8759,16 +8802,16 @@ static readstat_label_set_t *__pyx_f_10pyreadstat_16_readstat_writer_set_value_l */ } - /* "pyreadstat/_readstat_writer.pyx":425 + /* "pyreadstat/_readstat_writer.pyx":427 * msg = "variable_value_labels: type of Value %s in variable %s must be boolean or be 1 or 0" % (str(value), variable_name) * raise PyreadstatError(msg) * readstat_label_int32_value(label_set, int(value), label.encode("utf-8")) # <<<<<<<<<<<<<< * * elif curpytype == PYWRITER_CHARACTER or curpytype == PYWRITER_OBJECT or curpytype==PYWRITER_DTA_STR_REF: */ - __pyx_t_7 = __Pyx_PyNumber_Int(__pyx_v_value); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 425, __pyx_L1_error) + __pyx_t_7 = __Pyx_PyNumber_Int(__pyx_v_value); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 427, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); - __pyx_t_19 = __Pyx_PyLong_As_int32_t(__pyx_t_7); if (unlikely((__pyx_t_19 == ((int32_t)-1)) && PyErr_Occurred())) __PYX_ERR(0, 425, __pyx_L1_error) + __pyx_t_19 = __Pyx_PyLong_As_int32_t(__pyx_t_7); if (unlikely((__pyx_t_19 == ((int32_t)-1)) && PyErr_Occurred())) __PYX_ERR(0, 427, __pyx_L1_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_8 = __pyx_v_label; __Pyx_INCREF(__pyx_t_8); @@ -8777,14 +8820,14 @@ static readstat_label_set_t *__pyx_f_10pyreadstat_16_readstat_writer_set_value_l PyObject *__pyx_callargs[2] = {__pyx_t_8, __pyx_mstate_global->__pyx_kp_u_utf_8}; __pyx_t_7 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_encode, __pyx_callargs+__pyx_t_13, (2-__pyx_t_13) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; - if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 425, __pyx_L1_error) + if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 427, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); } - __pyx_t_20 = __Pyx_PyObject_AsString(__pyx_t_7); if (unlikely((!__pyx_t_20) && PyErr_Occurred())) __PYX_ERR(0, 425, __pyx_L1_error) + __pyx_t_20 = __Pyx_PyObject_AsString(__pyx_t_7); if (unlikely((!__pyx_t_20) && PyErr_Occurred())) __PYX_ERR(0, 427, __pyx_L1_error) readstat_label_int32_value(__pyx_v_label_set, __pyx_t_19, __pyx_t_20); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - /* "pyreadstat/_readstat_writer.pyx":421 + /* "pyreadstat/_readstat_writer.pyx":423 * readstat_label_int32_value(label_set, value, label.encode("utf-8")) * * elif curpytype == PYWRITER_LOGICAL: # <<<<<<<<<<<<<< @@ -8794,7 +8837,7 @@ static readstat_label_set_t *__pyx_f_10pyreadstat_16_readstat_writer_set_value_l break; case __pyx_e_10pyreadstat_16_readstat_writer_PYWRITER_CHARACTER: - /* "pyreadstat/_readstat_writer.pyx":427 + /* "pyreadstat/_readstat_writer.pyx":429 * readstat_label_int32_value(label_set, int(value), label.encode("utf-8")) * * elif curpytype == PYWRITER_CHARACTER or curpytype == PYWRITER_OBJECT or curpytype==PYWRITER_DTA_STR_REF: # <<<<<<<<<<<<<< @@ -8804,19 +8847,19 @@ static readstat_label_set_t *__pyx_f_10pyreadstat_16_readstat_writer_set_value_l case __pyx_e_10pyreadstat_16_readstat_writer_PYWRITER_OBJECT: case __pyx_e_10pyreadstat_16_readstat_writer_PYWRITER_DTA_STR_REF: - /* "pyreadstat/_readstat_writer.pyx":428 + /* "pyreadstat/_readstat_writer.pyx":430 * * elif curpytype == PYWRITER_CHARACTER or curpytype == PYWRITER_OBJECT or curpytype==PYWRITER_DTA_STR_REF: * value = str(value) # <<<<<<<<<<<<<< * readstat_label_string_value(label_set, value.encode("utf-8"), label.encode("utf-8")) * */ - __pyx_t_7 = __Pyx_PyObject_Unicode(__pyx_v_value); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 428, __pyx_L1_error) + __pyx_t_7 = __Pyx_PyObject_Unicode(__pyx_v_value); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 430, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF_SET(__pyx_v_value, __pyx_t_7); __pyx_t_7 = 0; - /* "pyreadstat/_readstat_writer.pyx":429 + /* "pyreadstat/_readstat_writer.pyx":431 * elif curpytype == PYWRITER_CHARACTER or curpytype == PYWRITER_OBJECT or curpytype==PYWRITER_DTA_STR_REF: * value = str(value) * readstat_label_string_value(label_set, value.encode("utf-8"), label.encode("utf-8")) # <<<<<<<<<<<<<< @@ -8830,10 +8873,10 @@ static readstat_label_set_t *__pyx_f_10pyreadstat_16_readstat_writer_set_value_l PyObject *__pyx_callargs[2] = {__pyx_t_8, __pyx_mstate_global->__pyx_kp_u_utf_8}; __pyx_t_7 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_encode, __pyx_callargs+__pyx_t_13, (2-__pyx_t_13) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; - if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 429, __pyx_L1_error) + if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 431, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); } - __pyx_t_21 = __Pyx_PyObject_AsString(__pyx_t_7); if (unlikely((!__pyx_t_21) && PyErr_Occurred())) __PYX_ERR(0, 429, __pyx_L1_error) + __pyx_t_21 = __Pyx_PyObject_AsString(__pyx_t_7); if (unlikely((!__pyx_t_21) && PyErr_Occurred())) __PYX_ERR(0, 431, __pyx_L1_error) __pyx_t_2 = __pyx_v_label; __Pyx_INCREF(__pyx_t_2); __pyx_t_13 = 0; @@ -8841,15 +8884,15 @@ static readstat_label_set_t *__pyx_f_10pyreadstat_16_readstat_writer_set_value_l PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_mstate_global->__pyx_kp_u_utf_8}; __pyx_t_8 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_encode, __pyx_callargs+__pyx_t_13, (2-__pyx_t_13) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 429, __pyx_L1_error) + if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 431, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); } - __pyx_t_22 = __Pyx_PyObject_AsString(__pyx_t_8); if (unlikely((!__pyx_t_22) && PyErr_Occurred())) __PYX_ERR(0, 429, __pyx_L1_error) + __pyx_t_22 = __Pyx_PyObject_AsString(__pyx_t_8); if (unlikely((!__pyx_t_22) && PyErr_Occurred())) __PYX_ERR(0, 431, __pyx_L1_error) readstat_label_string_value(__pyx_v_label_set, __pyx_t_21, __pyx_t_22); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - /* "pyreadstat/_readstat_writer.pyx":427 + /* "pyreadstat/_readstat_writer.pyx":429 * readstat_label_int32_value(label_set, int(value), label.encode("utf-8")) * * elif curpytype == PYWRITER_CHARACTER or curpytype == PYWRITER_OBJECT or curpytype==PYWRITER_DTA_STR_REF: # <<<<<<<<<<<<<< @@ -8859,7 +8902,7 @@ static readstat_label_set_t *__pyx_f_10pyreadstat_16_readstat_writer_set_value_l break; case __pyx_e_10pyreadstat_16_readstat_writer_PYWRITER_DATE: - /* "pyreadstat/_readstat_writer.pyx":431 + /* "pyreadstat/_readstat_writer.pyx":433 * readstat_label_string_value(label_set, value.encode("utf-8"), label.encode("utf-8")) * * elif curpytype in (PYWRITER_DATE, PYWRITER_DATETIME, PYWRITER_TIME, PYWRITER_DATETIME64, PYWRITER_DATE64, PYWRITER_TIME64): # <<<<<<<<<<<<<< @@ -8872,7 +8915,7 @@ static readstat_label_set_t *__pyx_f_10pyreadstat_16_readstat_writer_set_value_l case __pyx_e_10pyreadstat_16_readstat_writer_PYWRITER_DATE64: case __pyx_e_10pyreadstat_16_readstat_writer_PYWRITER_TIME64: - /* "pyreadstat/_readstat_writer.pyx":432 + /* "pyreadstat/_readstat_writer.pyx":434 * * elif curpytype in (PYWRITER_DATE, PYWRITER_DATETIME, PYWRITER_TIME, PYWRITER_DATETIME64, PYWRITER_DATE64, PYWRITER_TIME64): * if type(value) not in nat_types: # <<<<<<<<<<<<<< @@ -8881,21 +8924,21 @@ static readstat_label_set_t *__pyx_f_10pyreadstat_16_readstat_writer_set_value_l */ if (unlikely(__pyx_v_10pyreadstat_16_readstat_writer_nat_types == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable"); - __PYX_ERR(0, 432, __pyx_L1_error) + __PYX_ERR(0, 434, __pyx_L1_error) } - __pyx_t_11 = (__Pyx_PySet_ContainsTF(((PyObject *)Py_TYPE(__pyx_v_value)), __pyx_v_10pyreadstat_16_readstat_writer_nat_types, Py_NE)); if (unlikely((__pyx_t_11 < 0))) __PYX_ERR(0, 432, __pyx_L1_error) + __pyx_t_11 = (__Pyx_PySet_ContainsTF(((PyObject *)Py_TYPE(__pyx_v_value)), __pyx_v_10pyreadstat_16_readstat_writer_nat_types, Py_NE)); if (unlikely((__pyx_t_11 < 0))) __PYX_ERR(0, 434, __pyx_L1_error) if (unlikely(__pyx_t_11)) { - /* "pyreadstat/_readstat_writer.pyx":433 + /* "pyreadstat/_readstat_writer.pyx":435 * elif curpytype in (PYWRITER_DATE, PYWRITER_DATETIME, PYWRITER_TIME, PYWRITER_DATETIME64, PYWRITER_DATE64, PYWRITER_TIME64): * if type(value) not in nat_types: * msg = "variable_value_labels: type of Value %s in variable %s must match the type of the column in dataframe and be of type date, datetime or time" % (str(value), variable_name) # <<<<<<<<<<<<<< * raise PyreadstatError(msg) * double_val = convert_datetimelike_to_number(file_format, curpytype, value) */ - __pyx_t_8 = __Pyx_PyObject_Unicode(__pyx_v_value); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 433, __pyx_L1_error) + __pyx_t_8 = __Pyx_PyObject_Unicode(__pyx_v_value); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 435, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); - __pyx_t_7 = __Pyx_PyUnicode_Unicode(__pyx_v_variable_name); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 433, __pyx_L1_error) + __pyx_t_7 = __Pyx_PyUnicode_Unicode(__pyx_v_variable_name); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 435, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_12[0] = __pyx_mstate_global->__pyx_kp_u_variable_value_labels_type_of_Va; __pyx_t_12[1] = __pyx_t_8; @@ -8903,14 +8946,14 @@ static readstat_label_set_t *__pyx_f_10pyreadstat_16_readstat_writer_set_value_l __pyx_t_12[3] = __pyx_t_7; __pyx_t_12[4] = __pyx_mstate_global->__pyx_kp_u_must_match_the_type_of_the_colu; __pyx_t_2 = __Pyx_PyUnicode_Join(__pyx_t_12, 5, 37 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_8) + 13 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_7) + 85, 127 | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_8) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_7)); - if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 433, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 435, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_v_msg = ((PyObject*)__pyx_t_2); __pyx_t_2 = 0; - /* "pyreadstat/_readstat_writer.pyx":434 + /* "pyreadstat/_readstat_writer.pyx":436 * if type(value) not in nat_types: * msg = "variable_value_labels: type of Value %s in variable %s must match the type of the column in dataframe and be of type date, datetime or time" % (str(value), variable_name) * raise PyreadstatError(msg) # <<<<<<<<<<<<<< @@ -8918,7 +8961,7 @@ static readstat_label_set_t *__pyx_f_10pyreadstat_16_readstat_writer_set_value_l * readstat_label_double_value(label_set, double_val, label.encode("utf-8")) */ __pyx_t_7 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 434, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 436, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_13 = 1; #if CYTHON_UNPACK_METHODS @@ -8937,14 +8980,14 @@ static readstat_label_set_t *__pyx_f_10pyreadstat_16_readstat_writer_set_value_l __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_8, __pyx_callargs+__pyx_t_13, (2-__pyx_t_13) | (__pyx_t_13*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 434, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 436, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } __Pyx_Raise(__pyx_t_2, 0, 0, 0); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __PYX_ERR(0, 434, __pyx_L1_error) + __PYX_ERR(0, 436, __pyx_L1_error) - /* "pyreadstat/_readstat_writer.pyx":432 + /* "pyreadstat/_readstat_writer.pyx":434 * * elif curpytype in (PYWRITER_DATE, PYWRITER_DATETIME, PYWRITER_TIME, PYWRITER_DATETIME64, PYWRITER_DATE64, PYWRITER_TIME64): * if type(value) not in nat_types: # <<<<<<<<<<<<<< @@ -8953,17 +8996,17 @@ static readstat_label_set_t *__pyx_f_10pyreadstat_16_readstat_writer_set_value_l */ } - /* "pyreadstat/_readstat_writer.pyx":435 + /* "pyreadstat/_readstat_writer.pyx":437 * msg = "variable_value_labels: type of Value %s in variable %s must match the type of the column in dataframe and be of type date, datetime or time" % (str(value), variable_name) * raise PyreadstatError(msg) * double_val = convert_datetimelike_to_number(file_format, curpytype, value) # <<<<<<<<<<<<<< * readstat_label_double_value(label_set, double_val, label.encode("utf-8")) * */ - __pyx_t_17 = __pyx_f_10pyreadstat_16_readstat_writer_convert_datetimelike_to_number(__pyx_v_file_format, __pyx_v_curpytype, __pyx_v_value); if (unlikely(__pyx_t_17 == ((double)-1) && PyErr_Occurred())) __PYX_ERR(0, 435, __pyx_L1_error) + __pyx_t_17 = __pyx_f_10pyreadstat_16_readstat_writer_convert_datetimelike_to_number(__pyx_v_file_format, __pyx_v_curpytype, __pyx_v_value); if (unlikely(__pyx_t_17 == ((double)-1) && PyErr_Occurred())) __PYX_ERR(0, 437, __pyx_L1_error) __pyx_v_double_val = __pyx_t_17; - /* "pyreadstat/_readstat_writer.pyx":436 + /* "pyreadstat/_readstat_writer.pyx":438 * raise PyreadstatError(msg) * double_val = convert_datetimelike_to_number(file_format, curpytype, value) * readstat_label_double_value(label_set, double_val, label.encode("utf-8")) # <<<<<<<<<<<<<< @@ -8977,14 +9020,14 @@ static readstat_label_set_t *__pyx_f_10pyreadstat_16_readstat_writer_set_value_l PyObject *__pyx_callargs[2] = {__pyx_t_8, __pyx_mstate_global->__pyx_kp_u_utf_8}; __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_encode, __pyx_callargs+__pyx_t_13, (2-__pyx_t_13) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 436, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 438, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } - __pyx_t_18 = __Pyx_PyObject_AsString(__pyx_t_2); if (unlikely((!__pyx_t_18) && PyErr_Occurred())) __PYX_ERR(0, 436, __pyx_L1_error) + __pyx_t_18 = __Pyx_PyObject_AsString(__pyx_t_2); if (unlikely((!__pyx_t_18) && PyErr_Occurred())) __PYX_ERR(0, 438, __pyx_L1_error) readstat_label_double_value(__pyx_v_label_set, __pyx_v_double_val, __pyx_t_18); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - /* "pyreadstat/_readstat_writer.pyx":431 + /* "pyreadstat/_readstat_writer.pyx":433 * readstat_label_string_value(label_set, value.encode("utf-8"), label.encode("utf-8")) * * elif curpytype in (PYWRITER_DATE, PYWRITER_DATETIME, PYWRITER_TIME, PYWRITER_DATETIME64, PYWRITER_DATE64, PYWRITER_TIME64): # <<<<<<<<<<<<<< @@ -8995,7 +9038,7 @@ static readstat_label_set_t *__pyx_f_10pyreadstat_16_readstat_writer_set_value_l default: break; } - /* "pyreadstat/_readstat_writer.pyx":393 + /* "pyreadstat/_readstat_writer.pyx":395 * label_set = readstat_add_label_set(writer, curtype, labelset_name.encode("utf-8")) * * for value, label in value_labels.items(): # <<<<<<<<<<<<<< @@ -9006,7 +9049,7 @@ static readstat_label_set_t *__pyx_f_10pyreadstat_16_readstat_writer_set_value_l } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "pyreadstat/_readstat_writer.pyx":438 + /* "pyreadstat/_readstat_writer.pyx":440 * readstat_label_double_value(label_set, double_val, label.encode("utf-8")) * * return label_set # <<<<<<<<<<<<<< @@ -9016,7 +9059,7 @@ static readstat_label_set_t *__pyx_f_10pyreadstat_16_readstat_writer_set_value_l __pyx_r = __pyx_v_label_set; goto __pyx_L0; - /* "pyreadstat/_readstat_writer.pyx":379 + /* "pyreadstat/_readstat_writer.pyx":381 * return result * * cdef readstat_label_set_t *set_value_label(readstat_writer_t *writer, dict value_labels, str labelset_name, # <<<<<<<<<<<<<< @@ -9041,7 +9084,7 @@ static readstat_label_set_t *__pyx_f_10pyreadstat_16_readstat_writer_set_value_l return __pyx_r; } -/* "pyreadstat/_readstat_writer.pyx":440 +/* "pyreadstat/_readstat_writer.pyx":442 * return label_set * * cdef void add_missing_ranges(list cur_ranges, readstat_variable_t *variable, pywriter_variable_type vartype, str variablename) except *: # <<<<<<<<<<<<<< @@ -9076,7 +9119,7 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_add_missing_ranges(PyObject int __pyx_clineno = 0; __Pyx_RefNannySetupContext("add_missing_ranges", 0); - /* "pyreadstat/_readstat_writer.pyx":446 + /* "pyreadstat/_readstat_writer.pyx":448 * """ * * cdef int range_values = 0 # <<<<<<<<<<<<<< @@ -9085,7 +9128,7 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_add_missing_ranges(PyObject */ __pyx_v_range_values = 0; - /* "pyreadstat/_readstat_writer.pyx":447 + /* "pyreadstat/_readstat_writer.pyx":449 * * cdef int range_values = 0 * cdef int discrete_values = 0 # <<<<<<<<<<<<<< @@ -9094,7 +9137,7 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_add_missing_ranges(PyObject */ __pyx_v_discrete_values = 0; - /* "pyreadstat/_readstat_writer.pyx":448 + /* "pyreadstat/_readstat_writer.pyx":450 * cdef int range_values = 0 * cdef int discrete_values = 0 * cdef int discrete_strings = 0 # <<<<<<<<<<<<<< @@ -9103,7 +9146,7 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_add_missing_ranges(PyObject */ __pyx_v_discrete_strings = 0; - /* "pyreadstat/_readstat_writer.pyx":450 + /* "pyreadstat/_readstat_writer.pyx":452 * cdef int discrete_strings = 0 * * for cur_range in cur_ranges: # <<<<<<<<<<<<<< @@ -9112,7 +9155,7 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_add_missing_ranges(PyObject */ if (unlikely(__pyx_v_cur_ranges == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable"); - __PYX_ERR(0, 450, __pyx_L1_error) + __PYX_ERR(0, 452, __pyx_L1_error) } __pyx_t_1 = __pyx_v_cur_ranges; __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = 0; @@ -9120,18 +9163,18 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_add_missing_ranges(PyObject { Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_1); #if !CYTHON_ASSUME_SAFE_SIZE - if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 450, __pyx_L1_error) + if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 452, __pyx_L1_error) #endif if (__pyx_t_2 >= __pyx_temp) break; } __pyx_t_3 = __Pyx_PyList_GetItemRefFast(__pyx_t_1, __pyx_t_2, __Pyx_ReferenceSharing_OwnStrongReference); ++__pyx_t_2; - if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 450, __pyx_L1_error) + if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 452, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_XDECREF_SET(__pyx_v_cur_range, __pyx_t_3); __pyx_t_3 = 0; - /* "pyreadstat/_readstat_writer.pyx":451 + /* "pyreadstat/_readstat_writer.pyx":453 * * for cur_range in cur_ranges: * if isinstance(cur_range, dict): # <<<<<<<<<<<<<< @@ -9141,7 +9184,7 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_add_missing_ranges(PyObject __pyx_t_4 = PyDict_Check(__pyx_v_cur_range); if (__pyx_t_4) { - /* "pyreadstat/_readstat_writer.pyx":452 + /* "pyreadstat/_readstat_writer.pyx":454 * for cur_range in cur_ranges: * if isinstance(cur_range, dict): * hi = cur_range.get("hi") # <<<<<<<<<<<<<< @@ -9155,13 +9198,13 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_add_missing_ranges(PyObject PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_mstate_global->__pyx_n_u_hi}; __pyx_t_3 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_get, __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; - if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 452, __pyx_L1_error) + if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 454, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); } __Pyx_XDECREF_SET(__pyx_v_hi, __pyx_t_3); __pyx_t_3 = 0; - /* "pyreadstat/_readstat_writer.pyx":453 + /* "pyreadstat/_readstat_writer.pyx":455 * if isinstance(cur_range, dict): * hi = cur_range.get("hi") * lo = cur_range.get("lo") # <<<<<<<<<<<<<< @@ -9175,13 +9218,13 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_add_missing_ranges(PyObject PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_mstate_global->__pyx_n_u_lo}; __pyx_t_3 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_get, __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; - if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 453, __pyx_L1_error) + if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 455, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); } __Pyx_XDECREF_SET(__pyx_v_lo, __pyx_t_3); __pyx_t_3 = 0; - /* "pyreadstat/_readstat_writer.pyx":454 + /* "pyreadstat/_readstat_writer.pyx":456 * hi = cur_range.get("hi") * lo = cur_range.get("lo") * if hi is None or lo is None: # <<<<<<<<<<<<<< @@ -9199,7 +9242,7 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_add_missing_ranges(PyObject __pyx_L7_bool_binop_done:; if (unlikely(__pyx_t_4)) { - /* "pyreadstat/_readstat_writer.pyx":455 + /* "pyreadstat/_readstat_writer.pyx":457 * lo = cur_range.get("lo") * if hi is None or lo is None: * msg = "dictionaries in missing_ranges must have the keys hi and lo" # <<<<<<<<<<<<<< @@ -9209,7 +9252,7 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_add_missing_ranges(PyObject __Pyx_INCREF(__pyx_mstate_global->__pyx_kp_u_dictionaries_in_missing_ranges_m); __pyx_v_msg = __pyx_mstate_global->__pyx_kp_u_dictionaries_in_missing_ranges_m; - /* "pyreadstat/_readstat_writer.pyx":456 + /* "pyreadstat/_readstat_writer.pyx":458 * if hi is None or lo is None: * msg = "dictionaries in missing_ranges must have the keys hi and lo" * raise PyreadstatError(msg) # <<<<<<<<<<<<<< @@ -9217,7 +9260,7 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_add_missing_ranges(PyObject * if vartype not in pywriter_numeric_types: */ __pyx_t_5 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 456, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 458, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_6 = 1; #if CYTHON_UNPACK_METHODS @@ -9236,14 +9279,14 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_add_missing_ranges(PyObject __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_8, __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 456, __pyx_L1_error) + if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 458, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); } __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __PYX_ERR(0, 456, __pyx_L1_error) + __PYX_ERR(0, 458, __pyx_L1_error) - /* "pyreadstat/_readstat_writer.pyx":454 + /* "pyreadstat/_readstat_writer.pyx":456 * hi = cur_range.get("hi") * lo = cur_range.get("lo") * if hi is None or lo is None: # <<<<<<<<<<<<<< @@ -9252,7 +9295,7 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_add_missing_ranges(PyObject */ } - /* "pyreadstat/_readstat_writer.pyx":457 + /* "pyreadstat/_readstat_writer.pyx":459 * msg = "dictionaries in missing_ranges must have the keys hi and lo" * raise PyreadstatError(msg) * if type(hi) in (int, float) and type(lo) in (int, float): # <<<<<<<<<<<<<< @@ -9261,16 +9304,16 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_add_missing_ranges(PyObject */ __Pyx_INCREF(((PyObject *)Py_TYPE(__pyx_v_hi))); __pyx_t_3 = ((PyObject *)Py_TYPE(__pyx_v_hi)); - __pyx_t_8 = PyObject_RichCompare(((PyObject *)__pyx_t_3), ((PyObject *)(&PyLong_Type)), Py_EQ); __Pyx_XGOTREF(__pyx_t_8); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 457, __pyx_L1_error) - __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely((__pyx_t_9 < 0))) __PYX_ERR(0, 457, __pyx_L1_error) + __pyx_t_8 = PyObject_RichCompare(((PyObject *)__pyx_t_3), ((PyObject *)(&PyLong_Type)), Py_EQ); __Pyx_XGOTREF(__pyx_t_8); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 459, __pyx_L1_error) + __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely((__pyx_t_9 < 0))) __PYX_ERR(0, 459, __pyx_L1_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; if (!__pyx_t_9) { } else { __pyx_t_7 = __pyx_t_9; goto __pyx_L12_bool_binop_done; } - __pyx_t_8 = PyObject_RichCompare(((PyObject *)__pyx_t_3), ((PyObject *)(&PyFloat_Type)), Py_EQ); __Pyx_XGOTREF(__pyx_t_8); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 457, __pyx_L1_error) - __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely((__pyx_t_9 < 0))) __PYX_ERR(0, 457, __pyx_L1_error) + __pyx_t_8 = PyObject_RichCompare(((PyObject *)__pyx_t_3), ((PyObject *)(&PyFloat_Type)), Py_EQ); __Pyx_XGOTREF(__pyx_t_8); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 459, __pyx_L1_error) + __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely((__pyx_t_9 < 0))) __PYX_ERR(0, 459, __pyx_L1_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_t_7 = __pyx_t_9; __pyx_L12_bool_binop_done:; @@ -9283,16 +9326,16 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_add_missing_ranges(PyObject } __Pyx_INCREF(((PyObject *)Py_TYPE(__pyx_v_lo))); __pyx_t_3 = ((PyObject *)Py_TYPE(__pyx_v_lo)); - __pyx_t_8 = PyObject_RichCompare(((PyObject *)__pyx_t_3), ((PyObject *)(&PyLong_Type)), Py_EQ); __Pyx_XGOTREF(__pyx_t_8); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 457, __pyx_L1_error) - __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely((__pyx_t_7 < 0))) __PYX_ERR(0, 457, __pyx_L1_error) + __pyx_t_8 = PyObject_RichCompare(((PyObject *)__pyx_t_3), ((PyObject *)(&PyLong_Type)), Py_EQ); __Pyx_XGOTREF(__pyx_t_8); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 459, __pyx_L1_error) + __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely((__pyx_t_7 < 0))) __PYX_ERR(0, 459, __pyx_L1_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; if (!__pyx_t_7) { } else { __pyx_t_9 = __pyx_t_7; goto __pyx_L14_bool_binop_done; } - __pyx_t_8 = PyObject_RichCompare(((PyObject *)__pyx_t_3), ((PyObject *)(&PyFloat_Type)), Py_EQ); __Pyx_XGOTREF(__pyx_t_8); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 457, __pyx_L1_error) - __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely((__pyx_t_7 < 0))) __PYX_ERR(0, 457, __pyx_L1_error) + __pyx_t_8 = PyObject_RichCompare(((PyObject *)__pyx_t_3), ((PyObject *)(&PyFloat_Type)), Py_EQ); __Pyx_XGOTREF(__pyx_t_8); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 459, __pyx_L1_error) + __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely((__pyx_t_7 < 0))) __PYX_ERR(0, 459, __pyx_L1_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_t_9 = __pyx_t_7; __pyx_L14_bool_binop_done:; @@ -9302,36 +9345,36 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_add_missing_ranges(PyObject __pyx_L10_bool_binop_done:; if (__pyx_t_4) { - /* "pyreadstat/_readstat_writer.pyx":458 + /* "pyreadstat/_readstat_writer.pyx":460 * raise PyreadstatError(msg) * if type(hi) in (int, float) and type(lo) in (int, float): * if vartype not in pywriter_numeric_types: # <<<<<<<<<<<<<< * msg = "numeric missing_ranges value given for non numeric variable %s" %variablename * raise PyreadstatError(msg) */ - __pyx_t_3 = __Pyx_PyLong_From___pyx_t_10pyreadstat_16_readstat_writer_pywriter_variable_type(__pyx_v_vartype); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 458, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyLong_From___pyx_t_10pyreadstat_16_readstat_writer_pywriter_variable_type(__pyx_v_vartype); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 460, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (unlikely(__pyx_v_10pyreadstat_16_readstat_writer_pywriter_numeric_types == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable"); - __PYX_ERR(0, 458, __pyx_L1_error) + __PYX_ERR(0, 460, __pyx_L1_error) } - __pyx_t_4 = (__Pyx_PySet_ContainsTF(__pyx_t_3, __pyx_v_10pyreadstat_16_readstat_writer_pywriter_numeric_types, Py_NE)); if (unlikely((__pyx_t_4 < 0))) __PYX_ERR(0, 458, __pyx_L1_error) + __pyx_t_4 = (__Pyx_PySet_ContainsTF(__pyx_t_3, __pyx_v_10pyreadstat_16_readstat_writer_pywriter_numeric_types, Py_NE)); if (unlikely((__pyx_t_4 < 0))) __PYX_ERR(0, 460, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(__pyx_t_4)) { - /* "pyreadstat/_readstat_writer.pyx":459 + /* "pyreadstat/_readstat_writer.pyx":461 * if type(hi) in (int, float) and type(lo) in (int, float): * if vartype not in pywriter_numeric_types: * msg = "numeric missing_ranges value given for non numeric variable %s" %variablename # <<<<<<<<<<<<<< * raise PyreadstatError(msg) * if hi == lo: */ - __pyx_t_3 = PyUnicode_Format(__pyx_mstate_global->__pyx_kp_u_numeric_missing_ranges_value_giv, __pyx_v_variablename); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 459, __pyx_L1_error) + __pyx_t_3 = PyUnicode_Format(__pyx_mstate_global->__pyx_kp_u_numeric_missing_ranges_value_giv, __pyx_v_variablename); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 461, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_v_msg = ((PyObject*)__pyx_t_3); __pyx_t_3 = 0; - /* "pyreadstat/_readstat_writer.pyx":460 + /* "pyreadstat/_readstat_writer.pyx":462 * if vartype not in pywriter_numeric_types: * msg = "numeric missing_ranges value given for non numeric variable %s" %variablename * raise PyreadstatError(msg) # <<<<<<<<<<<<<< @@ -9339,7 +9382,7 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_add_missing_ranges(PyObject * check_exit_status(readstat_variable_add_missing_double_value(variable, hi)) */ __pyx_t_8 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 460, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 462, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_6 = 1; #if CYTHON_UNPACK_METHODS @@ -9358,14 +9401,14 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_add_missing_ranges(PyObject __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_5, __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 460, __pyx_L1_error) + if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 462, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); } __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __PYX_ERR(0, 460, __pyx_L1_error) + __PYX_ERR(0, 462, __pyx_L1_error) - /* "pyreadstat/_readstat_writer.pyx":458 + /* "pyreadstat/_readstat_writer.pyx":460 * raise PyreadstatError(msg) * if type(hi) in (int, float) and type(lo) in (int, float): * if vartype not in pywriter_numeric_types: # <<<<<<<<<<<<<< @@ -9374,29 +9417,29 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_add_missing_ranges(PyObject */ } - /* "pyreadstat/_readstat_writer.pyx":461 + /* "pyreadstat/_readstat_writer.pyx":463 * msg = "numeric missing_ranges value given for non numeric variable %s" %variablename * raise PyreadstatError(msg) * if hi == lo: # <<<<<<<<<<<<<< * check_exit_status(readstat_variable_add_missing_double_value(variable, hi)) * discrete_values += 1 */ - __pyx_t_3 = PyObject_RichCompare(__pyx_v_hi, __pyx_v_lo, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 461, __pyx_L1_error) - __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely((__pyx_t_4 < 0))) __PYX_ERR(0, 461, __pyx_L1_error) + __pyx_t_3 = PyObject_RichCompare(__pyx_v_hi, __pyx_v_lo, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 463, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely((__pyx_t_4 < 0))) __PYX_ERR(0, 463, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (__pyx_t_4) { - /* "pyreadstat/_readstat_writer.pyx":462 + /* "pyreadstat/_readstat_writer.pyx":464 * raise PyreadstatError(msg) * if hi == lo: * check_exit_status(readstat_variable_add_missing_double_value(variable, hi)) # <<<<<<<<<<<<<< * discrete_values += 1 * else: */ - __pyx_t_10 = __Pyx_PyFloat_AsDouble(__pyx_v_hi); if (unlikely((__pyx_t_10 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 462, __pyx_L1_error) - __pyx_f_10pyreadstat_16_readstat_parser_check_exit_status(readstat_variable_add_missing_double_value(__pyx_v_variable, __pyx_t_10)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 462, __pyx_L1_error) + __pyx_t_10 = __Pyx_PyFloat_AsDouble(__pyx_v_hi); if (unlikely((__pyx_t_10 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 464, __pyx_L1_error) + __pyx_f_10pyreadstat_16_readstat_parser_check_exit_status(readstat_variable_add_missing_double_value(__pyx_v_variable, __pyx_t_10)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 464, __pyx_L1_error) - /* "pyreadstat/_readstat_writer.pyx":463 + /* "pyreadstat/_readstat_writer.pyx":465 * if hi == lo: * check_exit_status(readstat_variable_add_missing_double_value(variable, hi)) * discrete_values += 1 # <<<<<<<<<<<<<< @@ -9405,7 +9448,7 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_add_missing_ranges(PyObject */ __pyx_v_discrete_values = (__pyx_v_discrete_values + 1); - /* "pyreadstat/_readstat_writer.pyx":461 + /* "pyreadstat/_readstat_writer.pyx":463 * msg = "numeric missing_ranges value given for non numeric variable %s" %variablename * raise PyreadstatError(msg) * if hi == lo: # <<<<<<<<<<<<<< @@ -9415,7 +9458,7 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_add_missing_ranges(PyObject goto __pyx_L17; } - /* "pyreadstat/_readstat_writer.pyx":465 + /* "pyreadstat/_readstat_writer.pyx":467 * discrete_values += 1 * else: * check_exit_status(readstat_variable_add_missing_double_range(variable, lo, hi)) # <<<<<<<<<<<<<< @@ -9423,11 +9466,11 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_add_missing_ranges(PyObject * elif type(hi) == str and type(lo) == str: */ /*else*/ { - __pyx_t_10 = __Pyx_PyFloat_AsDouble(__pyx_v_lo); if (unlikely((__pyx_t_10 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 465, __pyx_L1_error) - __pyx_t_11 = __Pyx_PyFloat_AsDouble(__pyx_v_hi); if (unlikely((__pyx_t_11 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 465, __pyx_L1_error) - __pyx_f_10pyreadstat_16_readstat_parser_check_exit_status(readstat_variable_add_missing_double_range(__pyx_v_variable, __pyx_t_10, __pyx_t_11)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 465, __pyx_L1_error) + __pyx_t_10 = __Pyx_PyFloat_AsDouble(__pyx_v_lo); if (unlikely((__pyx_t_10 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 467, __pyx_L1_error) + __pyx_t_11 = __Pyx_PyFloat_AsDouble(__pyx_v_hi); if (unlikely((__pyx_t_11 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 467, __pyx_L1_error) + __pyx_f_10pyreadstat_16_readstat_parser_check_exit_status(readstat_variable_add_missing_double_range(__pyx_v_variable, __pyx_t_10, __pyx_t_11)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 467, __pyx_L1_error) - /* "pyreadstat/_readstat_writer.pyx":466 + /* "pyreadstat/_readstat_writer.pyx":468 * else: * check_exit_status(readstat_variable_add_missing_double_range(variable, lo, hi)) * range_values += 1 # <<<<<<<<<<<<<< @@ -9438,7 +9481,7 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_add_missing_ranges(PyObject } __pyx_L17:; - /* "pyreadstat/_readstat_writer.pyx":457 + /* "pyreadstat/_readstat_writer.pyx":459 * msg = "dictionaries in missing_ranges must have the keys hi and lo" * raise PyreadstatError(msg) * if type(hi) in (int, float) and type(lo) in (int, float): # <<<<<<<<<<<<<< @@ -9448,29 +9491,29 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_add_missing_ranges(PyObject goto __pyx_L9; } - /* "pyreadstat/_readstat_writer.pyx":467 + /* "pyreadstat/_readstat_writer.pyx":469 * check_exit_status(readstat_variable_add_missing_double_range(variable, lo, hi)) * range_values += 1 * elif type(hi) == str and type(lo) == str: # <<<<<<<<<<<<<< * if vartype != PYWRITER_CHARACTER and vartype != PYWRITER_OBJECT and vartype !=PYWRITER_DTA_STR_REF: * msg = "character missing_ranges value given for non character variable %s" %variablename */ - __pyx_t_3 = PyObject_RichCompare(((PyObject *)Py_TYPE(__pyx_v_hi)), ((PyObject *)(&PyUnicode_Type)), Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 467, __pyx_L1_error) - __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely((__pyx_t_7 < 0))) __PYX_ERR(0, 467, __pyx_L1_error) + __pyx_t_3 = PyObject_RichCompare(((PyObject *)Py_TYPE(__pyx_v_hi)), ((PyObject *)(&PyUnicode_Type)), Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 469, __pyx_L1_error) + __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely((__pyx_t_7 < 0))) __PYX_ERR(0, 469, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (__pyx_t_7) { } else { __pyx_t_4 = __pyx_t_7; goto __pyx_L18_bool_binop_done; } - __pyx_t_3 = PyObject_RichCompare(((PyObject *)Py_TYPE(__pyx_v_lo)), ((PyObject *)(&PyUnicode_Type)), Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 467, __pyx_L1_error) - __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely((__pyx_t_7 < 0))) __PYX_ERR(0, 467, __pyx_L1_error) + __pyx_t_3 = PyObject_RichCompare(((PyObject *)Py_TYPE(__pyx_v_lo)), ((PyObject *)(&PyUnicode_Type)), Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 469, __pyx_L1_error) + __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely((__pyx_t_7 < 0))) __PYX_ERR(0, 469, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_4 = __pyx_t_7; __pyx_L18_bool_binop_done:; if (likely(__pyx_t_4)) { - /* "pyreadstat/_readstat_writer.pyx":468 + /* "pyreadstat/_readstat_writer.pyx":470 * range_values += 1 * elif type(hi) == str and type(lo) == str: * if vartype != PYWRITER_CHARACTER and vartype != PYWRITER_OBJECT and vartype !=PYWRITER_DTA_STR_REF: # <<<<<<<<<<<<<< @@ -9489,19 +9532,19 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_add_missing_ranges(PyObject } if (unlikely(__pyx_t_4)) { - /* "pyreadstat/_readstat_writer.pyx":469 + /* "pyreadstat/_readstat_writer.pyx":471 * elif type(hi) == str and type(lo) == str: * if vartype != PYWRITER_CHARACTER and vartype != PYWRITER_OBJECT and vartype !=PYWRITER_DTA_STR_REF: * msg = "character missing_ranges value given for non character variable %s" %variablename # <<<<<<<<<<<<<< * raise PyreadstatError(msg) * if hi == lo: */ - __pyx_t_3 = PyUnicode_Format(__pyx_mstate_global->__pyx_kp_u_character_missing_ranges_value_g, __pyx_v_variablename); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 469, __pyx_L1_error) + __pyx_t_3 = PyUnicode_Format(__pyx_mstate_global->__pyx_kp_u_character_missing_ranges_value_g, __pyx_v_variablename); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 471, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_v_msg = ((PyObject*)__pyx_t_3); __pyx_t_3 = 0; - /* "pyreadstat/_readstat_writer.pyx":470 + /* "pyreadstat/_readstat_writer.pyx":472 * if vartype != PYWRITER_CHARACTER and vartype != PYWRITER_OBJECT and vartype !=PYWRITER_DTA_STR_REF: * msg = "character missing_ranges value given for non character variable %s" %variablename * raise PyreadstatError(msg) # <<<<<<<<<<<<<< @@ -9509,7 +9552,7 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_add_missing_ranges(PyObject * if len(hi) > 8: */ __pyx_t_5 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 470, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 472, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_6 = 1; #if CYTHON_UNPACK_METHODS @@ -9528,14 +9571,14 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_add_missing_ranges(PyObject __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_8, __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 470, __pyx_L1_error) + if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 472, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); } __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __PYX_ERR(0, 470, __pyx_L1_error) + __PYX_ERR(0, 472, __pyx_L1_error) - /* "pyreadstat/_readstat_writer.pyx":468 + /* "pyreadstat/_readstat_writer.pyx":470 * range_values += 1 * elif type(hi) == str and type(lo) == str: * if vartype != PYWRITER_CHARACTER and vartype != PYWRITER_OBJECT and vartype !=PYWRITER_DTA_STR_REF: # <<<<<<<<<<<<<< @@ -9544,30 +9587,30 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_add_missing_ranges(PyObject */ } - /* "pyreadstat/_readstat_writer.pyx":471 + /* "pyreadstat/_readstat_writer.pyx":473 * msg = "character missing_ranges value given for non character variable %s" %variablename * raise PyreadstatError(msg) * if hi == lo: # <<<<<<<<<<<<<< * if len(hi) > 8: * msg = "missing_ranges: string values length must not be larger than 8" */ - __pyx_t_3 = PyObject_RichCompare(__pyx_v_hi, __pyx_v_lo, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 471, __pyx_L1_error) - __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely((__pyx_t_4 < 0))) __PYX_ERR(0, 471, __pyx_L1_error) + __pyx_t_3 = PyObject_RichCompare(__pyx_v_hi, __pyx_v_lo, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 473, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely((__pyx_t_4 < 0))) __PYX_ERR(0, 473, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (likely(__pyx_t_4)) { - /* "pyreadstat/_readstat_writer.pyx":472 + /* "pyreadstat/_readstat_writer.pyx":474 * raise PyreadstatError(msg) * if hi == lo: * if len(hi) > 8: # <<<<<<<<<<<<<< * msg = "missing_ranges: string values length must not be larger than 8" * raise PyreadstatError(msg) */ - __pyx_t_12 = PyObject_Length(__pyx_v_hi); if (unlikely(__pyx_t_12 == ((Py_ssize_t)-1))) __PYX_ERR(0, 472, __pyx_L1_error) + __pyx_t_12 = PyObject_Length(__pyx_v_hi); if (unlikely(__pyx_t_12 == ((Py_ssize_t)-1))) __PYX_ERR(0, 474, __pyx_L1_error) __pyx_t_4 = (__pyx_t_12 > 8); if (unlikely(__pyx_t_4)) { - /* "pyreadstat/_readstat_writer.pyx":473 + /* "pyreadstat/_readstat_writer.pyx":475 * if hi == lo: * if len(hi) > 8: * msg = "missing_ranges: string values length must not be larger than 8" # <<<<<<<<<<<<<< @@ -9577,7 +9620,7 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_add_missing_ranges(PyObject __Pyx_INCREF(__pyx_mstate_global->__pyx_kp_u_missing_ranges_string_values_len); __pyx_v_msg = __pyx_mstate_global->__pyx_kp_u_missing_ranges_string_values_len; - /* "pyreadstat/_readstat_writer.pyx":474 + /* "pyreadstat/_readstat_writer.pyx":476 * if len(hi) > 8: * msg = "missing_ranges: string values length must not be larger than 8" * raise PyreadstatError(msg) # <<<<<<<<<<<<<< @@ -9585,7 +9628,7 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_add_missing_ranges(PyObject * discrete_strings += 1 */ __pyx_t_8 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 474, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 476, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_6 = 1; #if CYTHON_UNPACK_METHODS @@ -9604,14 +9647,14 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_add_missing_ranges(PyObject __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_5, __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 474, __pyx_L1_error) + if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 476, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); } __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __PYX_ERR(0, 474, __pyx_L1_error) + __PYX_ERR(0, 476, __pyx_L1_error) - /* "pyreadstat/_readstat_writer.pyx":472 + /* "pyreadstat/_readstat_writer.pyx":474 * raise PyreadstatError(msg) * if hi == lo: * if len(hi) > 8: # <<<<<<<<<<<<<< @@ -9620,17 +9663,17 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_add_missing_ranges(PyObject */ } - /* "pyreadstat/_readstat_writer.pyx":475 + /* "pyreadstat/_readstat_writer.pyx":477 * msg = "missing_ranges: string values length must not be larger than 8" * raise PyreadstatError(msg) * check_exit_status(readstat_variable_add_missing_string_value(variable, hi))#.encode("utf-8"))) # <<<<<<<<<<<<<< * discrete_strings += 1 * else: */ - __pyx_t_13 = __Pyx_PyObject_AsString(__pyx_v_hi); if (unlikely((!__pyx_t_13) && PyErr_Occurred())) __PYX_ERR(0, 475, __pyx_L1_error) - __pyx_f_10pyreadstat_16_readstat_parser_check_exit_status(readstat_variable_add_missing_string_value(__pyx_v_variable, __pyx_t_13)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 475, __pyx_L1_error) + __pyx_t_13 = __Pyx_PyObject_AsString(__pyx_v_hi); if (unlikely((!__pyx_t_13) && PyErr_Occurred())) __PYX_ERR(0, 477, __pyx_L1_error) + __pyx_f_10pyreadstat_16_readstat_parser_check_exit_status(readstat_variable_add_missing_string_value(__pyx_v_variable, __pyx_t_13)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 477, __pyx_L1_error) - /* "pyreadstat/_readstat_writer.pyx":476 + /* "pyreadstat/_readstat_writer.pyx":478 * raise PyreadstatError(msg) * check_exit_status(readstat_variable_add_missing_string_value(variable, hi))#.encode("utf-8"))) * discrete_strings += 1 # <<<<<<<<<<<<<< @@ -9639,7 +9682,7 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_add_missing_ranges(PyObject */ __pyx_v_discrete_strings = (__pyx_v_discrete_strings + 1); - /* "pyreadstat/_readstat_writer.pyx":471 + /* "pyreadstat/_readstat_writer.pyx":473 * msg = "character missing_ranges value given for non character variable %s" %variablename * raise PyreadstatError(msg) * if hi == lo: # <<<<<<<<<<<<<< @@ -9649,7 +9692,7 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_add_missing_ranges(PyObject goto __pyx_L21; } - /* "pyreadstat/_readstat_writer.pyx":479 + /* "pyreadstat/_readstat_writer.pyx":481 * else: * #check_exit_status(readstat_variable_add_missing_string_range(variable, lo, hi)) * msg = "missing_ranges: hi and lo values must be both the same for string type" # <<<<<<<<<<<<<< @@ -9660,7 +9703,7 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_add_missing_ranges(PyObject __Pyx_INCREF(__pyx_mstate_global->__pyx_kp_u_missing_ranges_hi_and_lo_values); __pyx_v_msg = __pyx_mstate_global->__pyx_kp_u_missing_ranges_hi_and_lo_values; - /* "pyreadstat/_readstat_writer.pyx":480 + /* "pyreadstat/_readstat_writer.pyx":482 * #check_exit_status(readstat_variable_add_missing_string_range(variable, lo, hi)) * msg = "missing_ranges: hi and lo values must be both the same for string type" * raise PyreadstatError(msg) # <<<<<<<<<<<<<< @@ -9668,7 +9711,7 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_add_missing_ranges(PyObject * msg = "missing_ranges: hi and lo values must be both either of numeric or string type" */ __pyx_t_5 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 480, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 482, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_6 = 1; #if CYTHON_UNPACK_METHODS @@ -9687,16 +9730,16 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_add_missing_ranges(PyObject __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_8, __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 480, __pyx_L1_error) + if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 482, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); } __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __PYX_ERR(0, 480, __pyx_L1_error) + __PYX_ERR(0, 482, __pyx_L1_error) } __pyx_L21:; - /* "pyreadstat/_readstat_writer.pyx":467 + /* "pyreadstat/_readstat_writer.pyx":469 * check_exit_status(readstat_variable_add_missing_double_range(variable, lo, hi)) * range_values += 1 * elif type(hi) == str and type(lo) == str: # <<<<<<<<<<<<<< @@ -9706,7 +9749,7 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_add_missing_ranges(PyObject goto __pyx_L9; } - /* "pyreadstat/_readstat_writer.pyx":482 + /* "pyreadstat/_readstat_writer.pyx":484 * raise PyreadstatError(msg) * else: * msg = "missing_ranges: hi and lo values must be both either of numeric or string type" # <<<<<<<<<<<<<< @@ -9717,7 +9760,7 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_add_missing_ranges(PyObject __Pyx_INCREF(__pyx_mstate_global->__pyx_kp_u_missing_ranges_hi_and_lo_values_2); __pyx_v_msg = __pyx_mstate_global->__pyx_kp_u_missing_ranges_hi_and_lo_values_2; - /* "pyreadstat/_readstat_writer.pyx":483 + /* "pyreadstat/_readstat_writer.pyx":485 * else: * msg = "missing_ranges: hi and lo values must be both either of numeric or string type" * raise PyreadstatError(msg) # <<<<<<<<<<<<<< @@ -9725,7 +9768,7 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_add_missing_ranges(PyObject * if type(cur_range) in (int, float): */ __pyx_t_8 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 483, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 485, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_6 = 1; #if CYTHON_UNPACK_METHODS @@ -9744,16 +9787,16 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_add_missing_ranges(PyObject __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_5, __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 483, __pyx_L1_error) + if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 485, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); } __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __PYX_ERR(0, 483, __pyx_L1_error) + __PYX_ERR(0, 485, __pyx_L1_error) } __pyx_L9:; - /* "pyreadstat/_readstat_writer.pyx":451 + /* "pyreadstat/_readstat_writer.pyx":453 * * for cur_range in cur_ranges: * if isinstance(cur_range, dict): # <<<<<<<<<<<<<< @@ -9763,7 +9806,7 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_add_missing_ranges(PyObject goto __pyx_L5; } - /* "pyreadstat/_readstat_writer.pyx":485 + /* "pyreadstat/_readstat_writer.pyx":487 * raise PyreadstatError(msg) * else: * if type(cur_range) in (int, float): # <<<<<<<<<<<<<< @@ -9773,16 +9816,16 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_add_missing_ranges(PyObject /*else*/ { __Pyx_INCREF(((PyObject *)Py_TYPE(__pyx_v_cur_range))); __pyx_t_3 = ((PyObject *)Py_TYPE(__pyx_v_cur_range)); - __pyx_t_5 = PyObject_RichCompare(((PyObject *)__pyx_t_3), ((PyObject *)(&PyLong_Type)), Py_EQ); __Pyx_XGOTREF(__pyx_t_5); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 485, __pyx_L1_error) - __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely((__pyx_t_7 < 0))) __PYX_ERR(0, 485, __pyx_L1_error) + __pyx_t_5 = PyObject_RichCompare(((PyObject *)__pyx_t_3), ((PyObject *)(&PyLong_Type)), Py_EQ); __Pyx_XGOTREF(__pyx_t_5); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 487, __pyx_L1_error) + __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely((__pyx_t_7 < 0))) __PYX_ERR(0, 487, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (!__pyx_t_7) { } else { __pyx_t_4 = __pyx_t_7; goto __pyx_L24_bool_binop_done; } - __pyx_t_5 = PyObject_RichCompare(((PyObject *)__pyx_t_3), ((PyObject *)(&PyFloat_Type)), Py_EQ); __Pyx_XGOTREF(__pyx_t_5); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 485, __pyx_L1_error) - __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely((__pyx_t_7 < 0))) __PYX_ERR(0, 485, __pyx_L1_error) + __pyx_t_5 = PyObject_RichCompare(((PyObject *)__pyx_t_3), ((PyObject *)(&PyFloat_Type)), Py_EQ); __Pyx_XGOTREF(__pyx_t_5); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 487, __pyx_L1_error) + __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely((__pyx_t_7 < 0))) __PYX_ERR(0, 487, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_4 = __pyx_t_7; __pyx_L24_bool_binop_done:; @@ -9790,36 +9833,36 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_add_missing_ranges(PyObject __pyx_t_7 = __pyx_t_4; if (__pyx_t_7) { - /* "pyreadstat/_readstat_writer.pyx":486 + /* "pyreadstat/_readstat_writer.pyx":488 * else: * if type(cur_range) in (int, float): * if vartype not in pywriter_numeric_types: # <<<<<<<<<<<<<< * msg = "numeric missing_ranges value given for non numeric variable %s" %variablename * raise PyreadstatError(msg) */ - __pyx_t_3 = __Pyx_PyLong_From___pyx_t_10pyreadstat_16_readstat_writer_pywriter_variable_type(__pyx_v_vartype); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 486, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyLong_From___pyx_t_10pyreadstat_16_readstat_writer_pywriter_variable_type(__pyx_v_vartype); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 488, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (unlikely(__pyx_v_10pyreadstat_16_readstat_writer_pywriter_numeric_types == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable"); - __PYX_ERR(0, 486, __pyx_L1_error) + __PYX_ERR(0, 488, __pyx_L1_error) } - __pyx_t_7 = (__Pyx_PySet_ContainsTF(__pyx_t_3, __pyx_v_10pyreadstat_16_readstat_writer_pywriter_numeric_types, Py_NE)); if (unlikely((__pyx_t_7 < 0))) __PYX_ERR(0, 486, __pyx_L1_error) + __pyx_t_7 = (__Pyx_PySet_ContainsTF(__pyx_t_3, __pyx_v_10pyreadstat_16_readstat_writer_pywriter_numeric_types, Py_NE)); if (unlikely((__pyx_t_7 < 0))) __PYX_ERR(0, 488, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(__pyx_t_7)) { - /* "pyreadstat/_readstat_writer.pyx":487 + /* "pyreadstat/_readstat_writer.pyx":489 * if type(cur_range) in (int, float): * if vartype not in pywriter_numeric_types: * msg = "numeric missing_ranges value given for non numeric variable %s" %variablename # <<<<<<<<<<<<<< * raise PyreadstatError(msg) * check_exit_status(readstat_variable_add_missing_double_value(variable, cur_range)) */ - __pyx_t_3 = PyUnicode_Format(__pyx_mstate_global->__pyx_kp_u_numeric_missing_ranges_value_giv, __pyx_v_variablename); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 487, __pyx_L1_error) + __pyx_t_3 = PyUnicode_Format(__pyx_mstate_global->__pyx_kp_u_numeric_missing_ranges_value_giv, __pyx_v_variablename); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 489, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_v_msg = ((PyObject*)__pyx_t_3); __pyx_t_3 = 0; - /* "pyreadstat/_readstat_writer.pyx":488 + /* "pyreadstat/_readstat_writer.pyx":490 * if vartype not in pywriter_numeric_types: * msg = "numeric missing_ranges value given for non numeric variable %s" %variablename * raise PyreadstatError(msg) # <<<<<<<<<<<<<< @@ -9827,7 +9870,7 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_add_missing_ranges(PyObject * discrete_values += 1 */ __pyx_t_5 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 488, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 490, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_6 = 1; #if CYTHON_UNPACK_METHODS @@ -9846,14 +9889,14 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_add_missing_ranges(PyObject __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_8, __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 488, __pyx_L1_error) + if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 490, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); } __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __PYX_ERR(0, 488, __pyx_L1_error) + __PYX_ERR(0, 490, __pyx_L1_error) - /* "pyreadstat/_readstat_writer.pyx":486 + /* "pyreadstat/_readstat_writer.pyx":488 * else: * if type(cur_range) in (int, float): * if vartype not in pywriter_numeric_types: # <<<<<<<<<<<<<< @@ -9862,17 +9905,17 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_add_missing_ranges(PyObject */ } - /* "pyreadstat/_readstat_writer.pyx":489 + /* "pyreadstat/_readstat_writer.pyx":491 * msg = "numeric missing_ranges value given for non numeric variable %s" %variablename * raise PyreadstatError(msg) * check_exit_status(readstat_variable_add_missing_double_value(variable, cur_range)) # <<<<<<<<<<<<<< * discrete_values += 1 * elif type(cur_range) == str: */ - __pyx_t_11 = __Pyx_PyFloat_AsDouble(__pyx_v_cur_range); if (unlikely((__pyx_t_11 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 489, __pyx_L1_error) - __pyx_f_10pyreadstat_16_readstat_parser_check_exit_status(readstat_variable_add_missing_double_value(__pyx_v_variable, __pyx_t_11)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 489, __pyx_L1_error) + __pyx_t_11 = __Pyx_PyFloat_AsDouble(__pyx_v_cur_range); if (unlikely((__pyx_t_11 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 491, __pyx_L1_error) + __pyx_f_10pyreadstat_16_readstat_parser_check_exit_status(readstat_variable_add_missing_double_value(__pyx_v_variable, __pyx_t_11)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 491, __pyx_L1_error) - /* "pyreadstat/_readstat_writer.pyx":490 + /* "pyreadstat/_readstat_writer.pyx":492 * raise PyreadstatError(msg) * check_exit_status(readstat_variable_add_missing_double_value(variable, cur_range)) * discrete_values += 1 # <<<<<<<<<<<<<< @@ -9881,7 +9924,7 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_add_missing_ranges(PyObject */ __pyx_v_discrete_values = (__pyx_v_discrete_values + 1); - /* "pyreadstat/_readstat_writer.pyx":485 + /* "pyreadstat/_readstat_writer.pyx":487 * raise PyreadstatError(msg) * else: * if type(cur_range) in (int, float): # <<<<<<<<<<<<<< @@ -9891,19 +9934,19 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_add_missing_ranges(PyObject goto __pyx_L23; } - /* "pyreadstat/_readstat_writer.pyx":491 + /* "pyreadstat/_readstat_writer.pyx":493 * check_exit_status(readstat_variable_add_missing_double_value(variable, cur_range)) * discrete_values += 1 * elif type(cur_range) == str: # <<<<<<<<<<<<<< * if vartype != PYWRITER_CHARACTER and vartype != PYWRITER_OBJECT or vartype==PYWRITER_DTA_STR_REF: * msg = "character missing_ranges value given for non character variable %s" %variablename */ - __pyx_t_3 = PyObject_RichCompare(((PyObject *)Py_TYPE(__pyx_v_cur_range)), ((PyObject *)(&PyUnicode_Type)), Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 491, __pyx_L1_error) - __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely((__pyx_t_7 < 0))) __PYX_ERR(0, 491, __pyx_L1_error) + __pyx_t_3 = PyObject_RichCompare(((PyObject *)Py_TYPE(__pyx_v_cur_range)), ((PyObject *)(&PyUnicode_Type)), Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 493, __pyx_L1_error) + __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely((__pyx_t_7 < 0))) __PYX_ERR(0, 493, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (likely(__pyx_t_7)) { - /* "pyreadstat/_readstat_writer.pyx":492 + /* "pyreadstat/_readstat_writer.pyx":494 * discrete_values += 1 * elif type(cur_range) == str: * if vartype != PYWRITER_CHARACTER and vartype != PYWRITER_OBJECT or vartype==PYWRITER_DTA_STR_REF: # <<<<<<<<<<<<<< @@ -9929,19 +9972,19 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_add_missing_ranges(PyObject __pyx_L28_bool_binop_done:; if (unlikely(__pyx_t_7)) { - /* "pyreadstat/_readstat_writer.pyx":493 + /* "pyreadstat/_readstat_writer.pyx":495 * elif type(cur_range) == str: * if vartype != PYWRITER_CHARACTER and vartype != PYWRITER_OBJECT or vartype==PYWRITER_DTA_STR_REF: * msg = "character missing_ranges value given for non character variable %s" %variablename # <<<<<<<<<<<<<< * raise PyreadstatError(msg) * if len(cur_range) > 8: */ - __pyx_t_3 = PyUnicode_Format(__pyx_mstate_global->__pyx_kp_u_character_missing_ranges_value_g, __pyx_v_variablename); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 493, __pyx_L1_error) + __pyx_t_3 = PyUnicode_Format(__pyx_mstate_global->__pyx_kp_u_character_missing_ranges_value_g, __pyx_v_variablename); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 495, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_v_msg = ((PyObject*)__pyx_t_3); __pyx_t_3 = 0; - /* "pyreadstat/_readstat_writer.pyx":494 + /* "pyreadstat/_readstat_writer.pyx":496 * if vartype != PYWRITER_CHARACTER and vartype != PYWRITER_OBJECT or vartype==PYWRITER_DTA_STR_REF: * msg = "character missing_ranges value given for non character variable %s" %variablename * raise PyreadstatError(msg) # <<<<<<<<<<<<<< @@ -9949,7 +9992,7 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_add_missing_ranges(PyObject * msg = "missing_ranges: string values length must not be larger than 8" */ __pyx_t_8 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 494, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 496, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_6 = 1; #if CYTHON_UNPACK_METHODS @@ -9968,14 +10011,14 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_add_missing_ranges(PyObject __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_5, __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 494, __pyx_L1_error) + if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 496, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); } __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __PYX_ERR(0, 494, __pyx_L1_error) + __PYX_ERR(0, 496, __pyx_L1_error) - /* "pyreadstat/_readstat_writer.pyx":492 + /* "pyreadstat/_readstat_writer.pyx":494 * discrete_values += 1 * elif type(cur_range) == str: * if vartype != PYWRITER_CHARACTER and vartype != PYWRITER_OBJECT or vartype==PYWRITER_DTA_STR_REF: # <<<<<<<<<<<<<< @@ -9984,18 +10027,18 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_add_missing_ranges(PyObject */ } - /* "pyreadstat/_readstat_writer.pyx":495 + /* "pyreadstat/_readstat_writer.pyx":497 * msg = "character missing_ranges value given for non character variable %s" %variablename * raise PyreadstatError(msg) * if len(cur_range) > 8: # <<<<<<<<<<<<<< * msg = "missing_ranges: string values length must not be larger than 8" * raise PyreadstatError(msg) */ - __pyx_t_12 = PyObject_Length(__pyx_v_cur_range); if (unlikely(__pyx_t_12 == ((Py_ssize_t)-1))) __PYX_ERR(0, 495, __pyx_L1_error) + __pyx_t_12 = PyObject_Length(__pyx_v_cur_range); if (unlikely(__pyx_t_12 == ((Py_ssize_t)-1))) __PYX_ERR(0, 497, __pyx_L1_error) __pyx_t_7 = (__pyx_t_12 > 8); if (unlikely(__pyx_t_7)) { - /* "pyreadstat/_readstat_writer.pyx":496 + /* "pyreadstat/_readstat_writer.pyx":498 * raise PyreadstatError(msg) * if len(cur_range) > 8: * msg = "missing_ranges: string values length must not be larger than 8" # <<<<<<<<<<<<<< @@ -10005,7 +10048,7 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_add_missing_ranges(PyObject __Pyx_INCREF(__pyx_mstate_global->__pyx_kp_u_missing_ranges_string_values_len); __pyx_v_msg = __pyx_mstate_global->__pyx_kp_u_missing_ranges_string_values_len; - /* "pyreadstat/_readstat_writer.pyx":497 + /* "pyreadstat/_readstat_writer.pyx":499 * if len(cur_range) > 8: * msg = "missing_ranges: string values length must not be larger than 8" * raise PyreadstatError(msg) # <<<<<<<<<<<<<< @@ -10013,7 +10056,7 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_add_missing_ranges(PyObject * discrete_strings += 1 */ __pyx_t_5 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 497, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 499, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_6 = 1; #if CYTHON_UNPACK_METHODS @@ -10032,14 +10075,14 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_add_missing_ranges(PyObject __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_8, __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 497, __pyx_L1_error) + if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 499, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); } __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __PYX_ERR(0, 497, __pyx_L1_error) + __PYX_ERR(0, 499, __pyx_L1_error) - /* "pyreadstat/_readstat_writer.pyx":495 + /* "pyreadstat/_readstat_writer.pyx":497 * msg = "character missing_ranges value given for non character variable %s" %variablename * raise PyreadstatError(msg) * if len(cur_range) > 8: # <<<<<<<<<<<<<< @@ -10048,17 +10091,17 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_add_missing_ranges(PyObject */ } - /* "pyreadstat/_readstat_writer.pyx":498 + /* "pyreadstat/_readstat_writer.pyx":500 * msg = "missing_ranges: string values length must not be larger than 8" * raise PyreadstatError(msg) * check_exit_status(readstat_variable_add_missing_string_value(variable, cur_range))#.encode("utf-8"))) # <<<<<<<<<<<<<< * discrete_strings += 1 * else: */ - __pyx_t_13 = __Pyx_PyObject_AsString(__pyx_v_cur_range); if (unlikely((!__pyx_t_13) && PyErr_Occurred())) __PYX_ERR(0, 498, __pyx_L1_error) - __pyx_f_10pyreadstat_16_readstat_parser_check_exit_status(readstat_variable_add_missing_string_value(__pyx_v_variable, __pyx_t_13)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 498, __pyx_L1_error) + __pyx_t_13 = __Pyx_PyObject_AsString(__pyx_v_cur_range); if (unlikely((!__pyx_t_13) && PyErr_Occurred())) __PYX_ERR(0, 500, __pyx_L1_error) + __pyx_f_10pyreadstat_16_readstat_parser_check_exit_status(readstat_variable_add_missing_string_value(__pyx_v_variable, __pyx_t_13)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 500, __pyx_L1_error) - /* "pyreadstat/_readstat_writer.pyx":499 + /* "pyreadstat/_readstat_writer.pyx":501 * raise PyreadstatError(msg) * check_exit_status(readstat_variable_add_missing_string_value(variable, cur_range))#.encode("utf-8"))) * discrete_strings += 1 # <<<<<<<<<<<<<< @@ -10067,7 +10110,7 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_add_missing_ranges(PyObject */ __pyx_v_discrete_strings = (__pyx_v_discrete_strings + 1); - /* "pyreadstat/_readstat_writer.pyx":491 + /* "pyreadstat/_readstat_writer.pyx":493 * check_exit_status(readstat_variable_add_missing_double_value(variable, cur_range)) * discrete_values += 1 * elif type(cur_range) == str: # <<<<<<<<<<<<<< @@ -10077,7 +10120,7 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_add_missing_ranges(PyObject goto __pyx_L23; } - /* "pyreadstat/_readstat_writer.pyx":501 + /* "pyreadstat/_readstat_writer.pyx":503 * discrete_strings += 1 * else: * msg = "missing_ranges: values must be both either of numeric or string type" # <<<<<<<<<<<<<< @@ -10088,7 +10131,7 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_add_missing_ranges(PyObject __Pyx_INCREF(__pyx_mstate_global->__pyx_kp_u_missing_ranges_values_must_be_bo); __pyx_v_msg = __pyx_mstate_global->__pyx_kp_u_missing_ranges_values_must_be_bo; - /* "pyreadstat/_readstat_writer.pyx":502 + /* "pyreadstat/_readstat_writer.pyx":504 * else: * msg = "missing_ranges: values must be both either of numeric or string type" * raise PyreadstatError(msg) # <<<<<<<<<<<<<< @@ -10096,7 +10139,7 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_add_missing_ranges(PyObject * if discrete_strings > 3: */ __pyx_t_8 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 502, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 504, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_6 = 1; #if CYTHON_UNPACK_METHODS @@ -10115,18 +10158,18 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_add_missing_ranges(PyObject __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_5, __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 502, __pyx_L1_error) + if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 504, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); } __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __PYX_ERR(0, 502, __pyx_L1_error) + __PYX_ERR(0, 504, __pyx_L1_error) } __pyx_L23:; } __pyx_L5:; - /* "pyreadstat/_readstat_writer.pyx":504 + /* "pyreadstat/_readstat_writer.pyx":506 * raise PyreadstatError(msg) * * if discrete_strings > 3: # <<<<<<<<<<<<<< @@ -10136,7 +10179,7 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_add_missing_ranges(PyObject __pyx_t_7 = (__pyx_v_discrete_strings > 3); if (unlikely(__pyx_t_7)) { - /* "pyreadstat/_readstat_writer.pyx":505 + /* "pyreadstat/_readstat_writer.pyx":507 * * if discrete_strings > 3: * msg = "missing_ranges: max 3 string values per variable allowed" # <<<<<<<<<<<<<< @@ -10146,7 +10189,7 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_add_missing_ranges(PyObject __Pyx_INCREF(__pyx_mstate_global->__pyx_kp_u_missing_ranges_max_3_string_valu); __pyx_v_msg = __pyx_mstate_global->__pyx_kp_u_missing_ranges_max_3_string_valu; - /* "pyreadstat/_readstat_writer.pyx":506 + /* "pyreadstat/_readstat_writer.pyx":508 * if discrete_strings > 3: * msg = "missing_ranges: max 3 string values per variable allowed" * raise PyreadstatError(msg) # <<<<<<<<<<<<<< @@ -10154,7 +10197,7 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_add_missing_ranges(PyObject * if range_values > 1: */ __pyx_t_5 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 506, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 508, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_6 = 1; #if CYTHON_UNPACK_METHODS @@ -10173,14 +10216,14 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_add_missing_ranges(PyObject __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_8, __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 506, __pyx_L1_error) + if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 508, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); } __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __PYX_ERR(0, 506, __pyx_L1_error) + __PYX_ERR(0, 508, __pyx_L1_error) - /* "pyreadstat/_readstat_writer.pyx":504 + /* "pyreadstat/_readstat_writer.pyx":506 * raise PyreadstatError(msg) * * if discrete_strings > 3: # <<<<<<<<<<<<<< @@ -10189,7 +10232,7 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_add_missing_ranges(PyObject */ } - /* "pyreadstat/_readstat_writer.pyx":507 + /* "pyreadstat/_readstat_writer.pyx":509 * msg = "missing_ranges: max 3 string values per variable allowed" * raise PyreadstatError(msg) * if range_values: # <<<<<<<<<<<<<< @@ -10199,7 +10242,7 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_add_missing_ranges(PyObject __pyx_t_7 = (__pyx_v_range_values != 0); if (__pyx_t_7) { - /* "pyreadstat/_readstat_writer.pyx":508 + /* "pyreadstat/_readstat_writer.pyx":510 * raise PyreadstatError(msg) * if range_values: * if range_values > 1: # <<<<<<<<<<<<<< @@ -10209,7 +10252,7 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_add_missing_ranges(PyObject __pyx_t_7 = (__pyx_v_range_values > 1); if (unlikely(__pyx_t_7)) { - /* "pyreadstat/_readstat_writer.pyx":509 + /* "pyreadstat/_readstat_writer.pyx":511 * if range_values: * if range_values > 1: * msg = "missing_ranges: max 1 range value per variable allowed" # <<<<<<<<<<<<<< @@ -10219,7 +10262,7 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_add_missing_ranges(PyObject __Pyx_INCREF(__pyx_mstate_global->__pyx_kp_u_missing_ranges_max_1_range_value); __pyx_v_msg = __pyx_mstate_global->__pyx_kp_u_missing_ranges_max_1_range_value; - /* "pyreadstat/_readstat_writer.pyx":510 + /* "pyreadstat/_readstat_writer.pyx":512 * if range_values > 1: * msg = "missing_ranges: max 1 range value per variable allowed" * raise PyreadstatError(msg) # <<<<<<<<<<<<<< @@ -10227,7 +10270,7 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_add_missing_ranges(PyObject * msg = "missing_ranges: max 1 discrete numeric value if combined with 1 range value per variable allowed" */ __pyx_t_8 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 510, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 512, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_6 = 1; #if CYTHON_UNPACK_METHODS @@ -10246,14 +10289,14 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_add_missing_ranges(PyObject __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_5, __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 510, __pyx_L1_error) + if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 512, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); } __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __PYX_ERR(0, 510, __pyx_L1_error) + __PYX_ERR(0, 512, __pyx_L1_error) - /* "pyreadstat/_readstat_writer.pyx":508 + /* "pyreadstat/_readstat_writer.pyx":510 * raise PyreadstatError(msg) * if range_values: * if range_values > 1: # <<<<<<<<<<<<<< @@ -10262,7 +10305,7 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_add_missing_ranges(PyObject */ } - /* "pyreadstat/_readstat_writer.pyx":511 + /* "pyreadstat/_readstat_writer.pyx":513 * msg = "missing_ranges: max 1 range value per variable allowed" * raise PyreadstatError(msg) * if discrete_values > 1: # <<<<<<<<<<<<<< @@ -10272,7 +10315,7 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_add_missing_ranges(PyObject __pyx_t_7 = (__pyx_v_discrete_values > 1); if (unlikely(__pyx_t_7)) { - /* "pyreadstat/_readstat_writer.pyx":512 + /* "pyreadstat/_readstat_writer.pyx":514 * raise PyreadstatError(msg) * if discrete_values > 1: * msg = "missing_ranges: max 1 discrete numeric value if combined with 1 range value per variable allowed" # <<<<<<<<<<<<<< @@ -10282,7 +10325,7 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_add_missing_ranges(PyObject __Pyx_INCREF(__pyx_mstate_global->__pyx_kp_u_missing_ranges_max_1_discrete_nu); __pyx_v_msg = __pyx_mstate_global->__pyx_kp_u_missing_ranges_max_1_discrete_nu; - /* "pyreadstat/_readstat_writer.pyx":513 + /* "pyreadstat/_readstat_writer.pyx":515 * if discrete_values > 1: * msg = "missing_ranges: max 1 discrete numeric value if combined with 1 range value per variable allowed" * raise PyreadstatError(msg) # <<<<<<<<<<<<<< @@ -10290,7 +10333,7 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_add_missing_ranges(PyObject * msg = "missing_ranges: max 3 discrete numeric values per variable allowed" */ __pyx_t_5 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 513, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 515, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_6 = 1; #if CYTHON_UNPACK_METHODS @@ -10309,14 +10352,14 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_add_missing_ranges(PyObject __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_8, __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 513, __pyx_L1_error) + if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 515, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); } __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __PYX_ERR(0, 513, __pyx_L1_error) + __PYX_ERR(0, 515, __pyx_L1_error) - /* "pyreadstat/_readstat_writer.pyx":511 + /* "pyreadstat/_readstat_writer.pyx":513 * msg = "missing_ranges: max 1 range value per variable allowed" * raise PyreadstatError(msg) * if discrete_values > 1: # <<<<<<<<<<<<<< @@ -10325,7 +10368,7 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_add_missing_ranges(PyObject */ } - /* "pyreadstat/_readstat_writer.pyx":507 + /* "pyreadstat/_readstat_writer.pyx":509 * msg = "missing_ranges: max 3 string values per variable allowed" * raise PyreadstatError(msg) * if range_values: # <<<<<<<<<<<<<< @@ -10334,7 +10377,7 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_add_missing_ranges(PyObject */ } - /* "pyreadstat/_readstat_writer.pyx":514 + /* "pyreadstat/_readstat_writer.pyx":516 * msg = "missing_ranges: max 1 discrete numeric value if combined with 1 range value per variable allowed" * raise PyreadstatError(msg) * if discrete_values >3: # <<<<<<<<<<<<<< @@ -10344,7 +10387,7 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_add_missing_ranges(PyObject __pyx_t_7 = (__pyx_v_discrete_values > 3); if (unlikely(__pyx_t_7)) { - /* "pyreadstat/_readstat_writer.pyx":515 + /* "pyreadstat/_readstat_writer.pyx":517 * raise PyreadstatError(msg) * if discrete_values >3: * msg = "missing_ranges: max 3 discrete numeric values per variable allowed" # <<<<<<<<<<<<<< @@ -10354,7 +10397,7 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_add_missing_ranges(PyObject __Pyx_INCREF(__pyx_mstate_global->__pyx_kp_u_missing_ranges_max_3_discrete_nu); __pyx_v_msg = __pyx_mstate_global->__pyx_kp_u_missing_ranges_max_3_discrete_nu; - /* "pyreadstat/_readstat_writer.pyx":516 + /* "pyreadstat/_readstat_writer.pyx":518 * if discrete_values >3: * msg = "missing_ranges: max 3 discrete numeric values per variable allowed" * raise PyreadstatError(msg) # <<<<<<<<<<<<<< @@ -10362,7 +10405,7 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_add_missing_ranges(PyObject * cdef void set_variable_alignment(readstat_variable_t *variable, str alignment_str, str var_name) except *: */ __pyx_t_8 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 516, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 518, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_6 = 1; #if CYTHON_UNPACK_METHODS @@ -10381,14 +10424,14 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_add_missing_ranges(PyObject __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_5, __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 516, __pyx_L1_error) + if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 518, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); } __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __PYX_ERR(0, 516, __pyx_L1_error) + __PYX_ERR(0, 518, __pyx_L1_error) - /* "pyreadstat/_readstat_writer.pyx":514 + /* "pyreadstat/_readstat_writer.pyx":516 * msg = "missing_ranges: max 1 discrete numeric value if combined with 1 range value per variable allowed" * raise PyreadstatError(msg) * if discrete_values >3: # <<<<<<<<<<<<<< @@ -10397,7 +10440,7 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_add_missing_ranges(PyObject */ } - /* "pyreadstat/_readstat_writer.pyx":450 + /* "pyreadstat/_readstat_writer.pyx":452 * cdef int discrete_strings = 0 * * for cur_range in cur_ranges: # <<<<<<<<<<<<<< @@ -10407,7 +10450,7 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_add_missing_ranges(PyObject } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "pyreadstat/_readstat_writer.pyx":440 + /* "pyreadstat/_readstat_writer.pyx":442 * return label_set * * cdef void add_missing_ranges(list cur_ranges, readstat_variable_t *variable, pywriter_variable_type vartype, str variablename) except *: # <<<<<<<<<<<<<< @@ -10431,7 +10474,7 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_add_missing_ranges(PyObject __Pyx_RefNannyFinishContext(); } -/* "pyreadstat/_readstat_writer.pyx":518 +/* "pyreadstat/_readstat_writer.pyx":520 * raise PyreadstatError(msg) * * cdef void set_variable_alignment(readstat_variable_t *variable, str alignment_str, str var_name) except *: # <<<<<<<<<<<<<< @@ -10454,17 +10497,17 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_set_variable_alignment(reads int __pyx_clineno = 0; __Pyx_RefNannySetupContext("set_variable_alignment", 0); - /* "pyreadstat/_readstat_writer.pyx":525 + /* "pyreadstat/_readstat_writer.pyx":527 * cdef readstat_alignment_t alignment * * if alignment_str == "right": # <<<<<<<<<<<<<< * alignment = READSTAT_ALIGNMENT_RIGHT * elif alignment_str == "left": */ - __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_alignment_str, __pyx_mstate_global->__pyx_n_u_right, Py_EQ)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 525, __pyx_L1_error) + __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_alignment_str, __pyx_mstate_global->__pyx_n_u_right, Py_EQ)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 527, __pyx_L1_error) if (__pyx_t_1) { - /* "pyreadstat/_readstat_writer.pyx":526 + /* "pyreadstat/_readstat_writer.pyx":528 * * if alignment_str == "right": * alignment = READSTAT_ALIGNMENT_RIGHT # <<<<<<<<<<<<<< @@ -10473,7 +10516,7 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_set_variable_alignment(reads */ __pyx_v_alignment = READSTAT_ALIGNMENT_RIGHT; - /* "pyreadstat/_readstat_writer.pyx":525 + /* "pyreadstat/_readstat_writer.pyx":527 * cdef readstat_alignment_t alignment * * if alignment_str == "right": # <<<<<<<<<<<<<< @@ -10483,17 +10526,17 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_set_variable_alignment(reads goto __pyx_L3; } - /* "pyreadstat/_readstat_writer.pyx":527 + /* "pyreadstat/_readstat_writer.pyx":529 * if alignment_str == "right": * alignment = READSTAT_ALIGNMENT_RIGHT * elif alignment_str == "left": # <<<<<<<<<<<<<< * alignment = READSTAT_ALIGNMENT_LEFT * elif alignment_str == "center": */ - __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_alignment_str, __pyx_mstate_global->__pyx_n_u_left, Py_EQ)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 527, __pyx_L1_error) + __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_alignment_str, __pyx_mstate_global->__pyx_n_u_left, Py_EQ)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 529, __pyx_L1_error) if (__pyx_t_1) { - /* "pyreadstat/_readstat_writer.pyx":528 + /* "pyreadstat/_readstat_writer.pyx":530 * alignment = READSTAT_ALIGNMENT_RIGHT * elif alignment_str == "left": * alignment = READSTAT_ALIGNMENT_LEFT # <<<<<<<<<<<<<< @@ -10502,7 +10545,7 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_set_variable_alignment(reads */ __pyx_v_alignment = READSTAT_ALIGNMENT_LEFT; - /* "pyreadstat/_readstat_writer.pyx":527 + /* "pyreadstat/_readstat_writer.pyx":529 * if alignment_str == "right": * alignment = READSTAT_ALIGNMENT_RIGHT * elif alignment_str == "left": # <<<<<<<<<<<<<< @@ -10512,17 +10555,17 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_set_variable_alignment(reads goto __pyx_L3; } - /* "pyreadstat/_readstat_writer.pyx":529 + /* "pyreadstat/_readstat_writer.pyx":531 * elif alignment_str == "left": * alignment = READSTAT_ALIGNMENT_LEFT * elif alignment_str == "center": # <<<<<<<<<<<<<< * alignment = READSTAT_ALIGNMENT_CENTER * elif alignment_str == "unknown": */ - __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_alignment_str, __pyx_mstate_global->__pyx_n_u_center, Py_EQ)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 529, __pyx_L1_error) + __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_alignment_str, __pyx_mstate_global->__pyx_n_u_center, Py_EQ)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 531, __pyx_L1_error) if (__pyx_t_1) { - /* "pyreadstat/_readstat_writer.pyx":530 + /* "pyreadstat/_readstat_writer.pyx":532 * alignment = READSTAT_ALIGNMENT_LEFT * elif alignment_str == "center": * alignment = READSTAT_ALIGNMENT_CENTER # <<<<<<<<<<<<<< @@ -10531,7 +10574,7 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_set_variable_alignment(reads */ __pyx_v_alignment = READSTAT_ALIGNMENT_CENTER; - /* "pyreadstat/_readstat_writer.pyx":529 + /* "pyreadstat/_readstat_writer.pyx":531 * elif alignment_str == "left": * alignment = READSTAT_ALIGNMENT_LEFT * elif alignment_str == "center": # <<<<<<<<<<<<<< @@ -10541,17 +10584,17 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_set_variable_alignment(reads goto __pyx_L3; } - /* "pyreadstat/_readstat_writer.pyx":531 + /* "pyreadstat/_readstat_writer.pyx":533 * elif alignment_str == "center": * alignment = READSTAT_ALIGNMENT_CENTER * elif alignment_str == "unknown": # <<<<<<<<<<<<<< * alignment = READSTAT_ALIGNMENT_UNKNOWN * else: */ - __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_alignment_str, __pyx_mstate_global->__pyx_n_u_unknown, Py_EQ)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 531, __pyx_L1_error) + __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_alignment_str, __pyx_mstate_global->__pyx_n_u_unknown, Py_EQ)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 533, __pyx_L1_error) if (likely(__pyx_t_1)) { - /* "pyreadstat/_readstat_writer.pyx":532 + /* "pyreadstat/_readstat_writer.pyx":534 * alignment = READSTAT_ALIGNMENT_CENTER * elif alignment_str == "unknown": * alignment = READSTAT_ALIGNMENT_UNKNOWN # <<<<<<<<<<<<<< @@ -10560,7 +10603,7 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_set_variable_alignment(reads */ __pyx_v_alignment = READSTAT_ALIGNMENT_UNKNOWN; - /* "pyreadstat/_readstat_writer.pyx":531 + /* "pyreadstat/_readstat_writer.pyx":533 * elif alignment_str == "center": * alignment = READSTAT_ALIGNMENT_CENTER * elif alignment_str == "unknown": # <<<<<<<<<<<<<< @@ -10570,7 +10613,7 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_set_variable_alignment(reads goto __pyx_L3; } - /* "pyreadstat/_readstat_writer.pyx":534 + /* "pyreadstat/_readstat_writer.pyx":536 * alignment = READSTAT_ALIGNMENT_UNKNOWN * else: * msg = "alignment for variable %s must be either right, center, left or unknown got %s instead" % (var_name, alignment_str) # <<<<<<<<<<<<<< @@ -10578,9 +10621,9 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_set_variable_alignment(reads * */ /*else*/ { - __pyx_t_2 = __Pyx_PyUnicode_Unicode(__pyx_v_var_name); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 534, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyUnicode_Unicode(__pyx_v_var_name); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 536, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_3 = __Pyx_PyUnicode_Unicode(__pyx_v_alignment_str); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 534, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyUnicode_Unicode(__pyx_v_alignment_str); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 536, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4[0] = __pyx_mstate_global->__pyx_kp_u_alignment_for_variable; __pyx_t_4[1] = __pyx_t_2; @@ -10588,14 +10631,14 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_set_variable_alignment(reads __pyx_t_4[3] = __pyx_t_3; __pyx_t_4[4] = __pyx_mstate_global->__pyx_kp_u_instead; __pyx_t_5 = __Pyx_PyUnicode_Join(__pyx_t_4, 5, 23 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_2) + 51 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_3) + 8, 127 | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_2) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_3)); - if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 534, __pyx_L1_error) + if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 536, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_v_msg = ((PyObject*)__pyx_t_5); __pyx_t_5 = 0; - /* "pyreadstat/_readstat_writer.pyx":535 + /* "pyreadstat/_readstat_writer.pyx":537 * else: * msg = "alignment for variable %s must be either right, center, left or unknown got %s instead" % (var_name, alignment_str) * raise PyreadstatError(msg) # <<<<<<<<<<<<<< @@ -10603,7 +10646,7 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_set_variable_alignment(reads * readstat_variable_set_alignment(variable, alignment) */ __pyx_t_3 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 535, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 537, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_6 = 1; #if CYTHON_UNPACK_METHODS @@ -10622,16 +10665,16 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_set_variable_alignment(reads __pyx_t_5 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_2, __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 535, __pyx_L1_error) + if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 537, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); } __Pyx_Raise(__pyx_t_5, 0, 0, 0); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __PYX_ERR(0, 535, __pyx_L1_error) + __PYX_ERR(0, 537, __pyx_L1_error) } __pyx_L3:; - /* "pyreadstat/_readstat_writer.pyx":537 + /* "pyreadstat/_readstat_writer.pyx":539 * raise PyreadstatError(msg) * * readstat_variable_set_alignment(variable, alignment) # <<<<<<<<<<<<<< @@ -10640,7 +10683,7 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_set_variable_alignment(reads */ readstat_variable_set_alignment(__pyx_v_variable, __pyx_v_alignment); - /* "pyreadstat/_readstat_writer.pyx":518 + /* "pyreadstat/_readstat_writer.pyx":520 * raise PyreadstatError(msg) * * cdef void set_variable_alignment(readstat_variable_t *variable, str alignment_str, str var_name) except *: # <<<<<<<<<<<<<< @@ -10660,7 +10703,7 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_set_variable_alignment(reads __Pyx_RefNannyFinishContext(); } -/* "pyreadstat/_readstat_writer.pyx":539 +/* "pyreadstat/_readstat_writer.pyx":541 * readstat_variable_set_alignment(variable, alignment) * * cdef void set_variable_display_width(readstat_variable_t *variable, int display_width, str var_name) except *: # <<<<<<<<<<<<<< @@ -10670,7 +10713,7 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_set_variable_alignment(reads static void __pyx_f_10pyreadstat_16_readstat_writer_set_variable_display_width(readstat_variable_t *__pyx_v_variable, int __pyx_v_display_width, CYTHON_UNUSED PyObject *__pyx_v_var_name) { - /* "pyreadstat/_readstat_writer.pyx":544 + /* "pyreadstat/_readstat_writer.pyx":546 * """ * * readstat_variable_set_display_width(variable, display_width) # <<<<<<<<<<<<<< @@ -10679,7 +10722,7 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_set_variable_display_width(r */ readstat_variable_set_display_width(__pyx_v_variable, __pyx_v_display_width); - /* "pyreadstat/_readstat_writer.pyx":539 + /* "pyreadstat/_readstat_writer.pyx":541 * readstat_variable_set_alignment(variable, alignment) * * cdef void set_variable_display_width(readstat_variable_t *variable, int display_width, str var_name) except *: # <<<<<<<<<<<<<< @@ -10690,7 +10733,7 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_set_variable_display_width(r /* function exit code */ } -/* "pyreadstat/_readstat_writer.pyx":546 +/* "pyreadstat/_readstat_writer.pyx":548 * readstat_variable_set_display_width(variable, display_width) * * cdef void set_variable_measure(readstat_variable_t *variable, str measure_str, str var_name) except *: # <<<<<<<<<<<<<< @@ -10713,17 +10756,17 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_set_variable_measure(readsta int __pyx_clineno = 0; __Pyx_RefNannySetupContext("set_variable_measure", 0); - /* "pyreadstat/_readstat_writer.pyx":553 + /* "pyreadstat/_readstat_writer.pyx":555 * cdef readstat_measure_t measure * * if measure_str == "nominal": # <<<<<<<<<<<<<< * measure = READSTAT_MEASURE_NOMINAL * elif measure_str == "ordinal": */ - __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_measure_str, __pyx_mstate_global->__pyx_n_u_nominal, Py_EQ)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 553, __pyx_L1_error) + __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_measure_str, __pyx_mstate_global->__pyx_n_u_nominal, Py_EQ)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 555, __pyx_L1_error) if (__pyx_t_1) { - /* "pyreadstat/_readstat_writer.pyx":554 + /* "pyreadstat/_readstat_writer.pyx":556 * * if measure_str == "nominal": * measure = READSTAT_MEASURE_NOMINAL # <<<<<<<<<<<<<< @@ -10732,7 +10775,7 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_set_variable_measure(readsta */ __pyx_v_measure = READSTAT_MEASURE_NOMINAL; - /* "pyreadstat/_readstat_writer.pyx":553 + /* "pyreadstat/_readstat_writer.pyx":555 * cdef readstat_measure_t measure * * if measure_str == "nominal": # <<<<<<<<<<<<<< @@ -10742,17 +10785,17 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_set_variable_measure(readsta goto __pyx_L3; } - /* "pyreadstat/_readstat_writer.pyx":555 + /* "pyreadstat/_readstat_writer.pyx":557 * if measure_str == "nominal": * measure = READSTAT_MEASURE_NOMINAL * elif measure_str == "ordinal": # <<<<<<<<<<<<<< * measure = READSTAT_MEASURE_ORDINAL * elif measure_str == "scale": */ - __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_measure_str, __pyx_mstate_global->__pyx_n_u_ordinal, Py_EQ)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 555, __pyx_L1_error) + __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_measure_str, __pyx_mstate_global->__pyx_n_u_ordinal, Py_EQ)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 557, __pyx_L1_error) if (__pyx_t_1) { - /* "pyreadstat/_readstat_writer.pyx":556 + /* "pyreadstat/_readstat_writer.pyx":558 * measure = READSTAT_MEASURE_NOMINAL * elif measure_str == "ordinal": * measure = READSTAT_MEASURE_ORDINAL # <<<<<<<<<<<<<< @@ -10761,7 +10804,7 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_set_variable_measure(readsta */ __pyx_v_measure = READSTAT_MEASURE_ORDINAL; - /* "pyreadstat/_readstat_writer.pyx":555 + /* "pyreadstat/_readstat_writer.pyx":557 * if measure_str == "nominal": * measure = READSTAT_MEASURE_NOMINAL * elif measure_str == "ordinal": # <<<<<<<<<<<<<< @@ -10771,17 +10814,17 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_set_variable_measure(readsta goto __pyx_L3; } - /* "pyreadstat/_readstat_writer.pyx":557 + /* "pyreadstat/_readstat_writer.pyx":559 * elif measure_str == "ordinal": * measure = READSTAT_MEASURE_ORDINAL * elif measure_str == "scale": # <<<<<<<<<<<<<< * measure = READSTAT_MEASURE_SCALE * elif measure_str == "unknown": */ - __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_measure_str, __pyx_mstate_global->__pyx_n_u_scale, Py_EQ)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 557, __pyx_L1_error) + __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_measure_str, __pyx_mstate_global->__pyx_n_u_scale, Py_EQ)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 559, __pyx_L1_error) if (__pyx_t_1) { - /* "pyreadstat/_readstat_writer.pyx":558 + /* "pyreadstat/_readstat_writer.pyx":560 * measure = READSTAT_MEASURE_ORDINAL * elif measure_str == "scale": * measure = READSTAT_MEASURE_SCALE # <<<<<<<<<<<<<< @@ -10790,7 +10833,7 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_set_variable_measure(readsta */ __pyx_v_measure = READSTAT_MEASURE_SCALE; - /* "pyreadstat/_readstat_writer.pyx":557 + /* "pyreadstat/_readstat_writer.pyx":559 * elif measure_str == "ordinal": * measure = READSTAT_MEASURE_ORDINAL * elif measure_str == "scale": # <<<<<<<<<<<<<< @@ -10800,17 +10843,17 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_set_variable_measure(readsta goto __pyx_L3; } - /* "pyreadstat/_readstat_writer.pyx":559 + /* "pyreadstat/_readstat_writer.pyx":561 * elif measure_str == "scale": * measure = READSTAT_MEASURE_SCALE * elif measure_str == "unknown": # <<<<<<<<<<<<<< * measure = READSTAT_MEASURE_UNKNOWN * else: */ - __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_measure_str, __pyx_mstate_global->__pyx_n_u_unknown, Py_EQ)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 559, __pyx_L1_error) + __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_measure_str, __pyx_mstate_global->__pyx_n_u_unknown, Py_EQ)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 561, __pyx_L1_error) if (likely(__pyx_t_1)) { - /* "pyreadstat/_readstat_writer.pyx":560 + /* "pyreadstat/_readstat_writer.pyx":562 * measure = READSTAT_MEASURE_SCALE * elif measure_str == "unknown": * measure = READSTAT_MEASURE_UNKNOWN # <<<<<<<<<<<<<< @@ -10819,7 +10862,7 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_set_variable_measure(readsta */ __pyx_v_measure = READSTAT_MEASURE_UNKNOWN; - /* "pyreadstat/_readstat_writer.pyx":559 + /* "pyreadstat/_readstat_writer.pyx":561 * elif measure_str == "scale": * measure = READSTAT_MEASURE_SCALE * elif measure_str == "unknown": # <<<<<<<<<<<<<< @@ -10829,7 +10872,7 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_set_variable_measure(readsta goto __pyx_L3; } - /* "pyreadstat/_readstat_writer.pyx":562 + /* "pyreadstat/_readstat_writer.pyx":564 * measure = READSTAT_MEASURE_UNKNOWN * else: * msg = "measure for variable %s must be either nominal, ordinal, scale or unknown got %s instead" % (var_name, measure_str) # <<<<<<<<<<<<<< @@ -10837,9 +10880,9 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_set_variable_measure(readsta * */ /*else*/ { - __pyx_t_2 = __Pyx_PyUnicode_Unicode(__pyx_v_var_name); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 562, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyUnicode_Unicode(__pyx_v_var_name); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 564, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_3 = __Pyx_PyUnicode_Unicode(__pyx_v_measure_str); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 562, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyUnicode_Unicode(__pyx_v_measure_str); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 564, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4[0] = __pyx_mstate_global->__pyx_kp_u_measure_for_variable; __pyx_t_4[1] = __pyx_t_2; @@ -10847,14 +10890,14 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_set_variable_measure(readsta __pyx_t_4[3] = __pyx_t_3; __pyx_t_4[4] = __pyx_mstate_global->__pyx_kp_u_instead; __pyx_t_5 = __Pyx_PyUnicode_Join(__pyx_t_4, 5, 21 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_2) + 55 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_3) + 8, 127 | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_2) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_3)); - if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 562, __pyx_L1_error) + if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 564, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_v_msg = ((PyObject*)__pyx_t_5); __pyx_t_5 = 0; - /* "pyreadstat/_readstat_writer.pyx":563 + /* "pyreadstat/_readstat_writer.pyx":565 * else: * msg = "measure for variable %s must be either nominal, ordinal, scale or unknown got %s instead" % (var_name, measure_str) * raise PyreadstatError(msg) # <<<<<<<<<<<<<< @@ -10862,7 +10905,7 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_set_variable_measure(readsta * readstat_variable_set_measure(variable, measure); */ __pyx_t_3 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 563, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 565, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_6 = 1; #if CYTHON_UNPACK_METHODS @@ -10881,16 +10924,16 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_set_variable_measure(readsta __pyx_t_5 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_2, __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 563, __pyx_L1_error) + if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 565, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); } __Pyx_Raise(__pyx_t_5, 0, 0, 0); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __PYX_ERR(0, 563, __pyx_L1_error) + __PYX_ERR(0, 565, __pyx_L1_error) } __pyx_L3:; - /* "pyreadstat/_readstat_writer.pyx":565 + /* "pyreadstat/_readstat_writer.pyx":567 * raise PyreadstatError(msg) * * readstat_variable_set_measure(variable, measure); # <<<<<<<<<<<<<< @@ -10899,7 +10942,7 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_set_variable_measure(readsta */ readstat_variable_set_measure(__pyx_v_variable, __pyx_v_measure); - /* "pyreadstat/_readstat_writer.pyx":546 + /* "pyreadstat/_readstat_writer.pyx":548 * readstat_variable_set_display_width(variable, display_width) * * cdef void set_variable_measure(readstat_variable_t *variable, str measure_str, str var_name) except *: # <<<<<<<<<<<<<< @@ -10919,7 +10962,7 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_set_variable_measure(readsta __Pyx_RefNannyFinishContext(); } -/* "pyreadstat/_readstat_writer.pyx":568 +/* "pyreadstat/_readstat_writer.pyx":570 * * * cdef ssize_t write_bytes(const void *data, size_t _len, void *ctx) noexcept: # <<<<<<<<<<<<<< @@ -10939,7 +10982,7 @@ static Py_ssize_t __pyx_f_10pyreadstat_16_readstat_writer_write_bytes(void const int __pyx_clineno = 0; __Pyx_RefNannySetupContext("write_bytes", 0); - /* "pyreadstat/_readstat_writer.pyx":573 + /* "pyreadstat/_readstat_writer.pyx":575 * """ * cdef int fd * fd = (ctx)[0] # <<<<<<<<<<<<<< @@ -10948,23 +10991,23 @@ static Py_ssize_t __pyx_f_10pyreadstat_16_readstat_writer_write_bytes(void const */ __pyx_v_fd = (((int *)__pyx_v_ctx)[0]); - /* "pyreadstat/_readstat_writer.pyx":574 + /* "pyreadstat/_readstat_writer.pyx":576 * cdef int fd * fd = (ctx)[0] * if os.name=='nt': # <<<<<<<<<<<<<< * return _write(fd, data, _len) * else: */ - __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_os); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 574, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_os); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 576, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_name); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 574, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_name); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 576, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_nt, Py_EQ)); if (unlikely((__pyx_t_3 < 0))) __PYX_ERR(0, 574, __pyx_L1_error) + __pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_nt, Py_EQ)); if (unlikely((__pyx_t_3 < 0))) __PYX_ERR(0, 576, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (__pyx_t_3) { - /* "pyreadstat/_readstat_writer.pyx":575 + /* "pyreadstat/_readstat_writer.pyx":577 * fd = (ctx)[0] * if os.name=='nt': * return _write(fd, data, _len) # <<<<<<<<<<<<<< @@ -10974,7 +11017,7 @@ static Py_ssize_t __pyx_f_10pyreadstat_16_readstat_writer_write_bytes(void const __pyx_r = _write(__pyx_v_fd, __pyx_v_data, __pyx_v__len); goto __pyx_L0; - /* "pyreadstat/_readstat_writer.pyx":574 + /* "pyreadstat/_readstat_writer.pyx":576 * cdef int fd * fd = (ctx)[0] * if os.name=='nt': # <<<<<<<<<<<<<< @@ -10983,7 +11026,7 @@ static Py_ssize_t __pyx_f_10pyreadstat_16_readstat_writer_write_bytes(void const */ } - /* "pyreadstat/_readstat_writer.pyx":577 + /* "pyreadstat/_readstat_writer.pyx":579 * return _write(fd, data, _len) * else: * return write(fd, data, _len) # <<<<<<<<<<<<<< @@ -10995,7 +11038,7 @@ static Py_ssize_t __pyx_f_10pyreadstat_16_readstat_writer_write_bytes(void const goto __pyx_L0; } - /* "pyreadstat/_readstat_writer.pyx":568 + /* "pyreadstat/_readstat_writer.pyx":570 * * * cdef ssize_t write_bytes(const void *data, size_t _len, void *ctx) noexcept: # <<<<<<<<<<<<<< @@ -11014,7 +11057,7 @@ static Py_ssize_t __pyx_f_10pyreadstat_16_readstat_writer_write_bytes(void const return __pyx_r; } -/* "pyreadstat/_readstat_writer.pyx":579 +/* "pyreadstat/_readstat_writer.pyx":581 * return write(fd, data, _len) * * cdef int open_file(bytes filename_bytes): # <<<<<<<<<<<<<< @@ -11044,23 +11087,23 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_open_file(PyObject *__pyx_v_f int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_file", 0); - /* "pyreadstat/_readstat_writer.pyx":587 + /* "pyreadstat/_readstat_writer.pyx":589 * cdef char *path * * if os.name == "nt": # <<<<<<<<<<<<<< * filename_str = os.fsdecode(filename_bytes) * u16_path = PyUnicode_AsWideCharString(filename_str, &length) */ - __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_os); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 587, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_os); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 589, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_name); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 587, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_name); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 589, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_nt, Py_EQ)); if (unlikely((__pyx_t_3 < 0))) __PYX_ERR(0, 587, __pyx_L1_error) + __pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_nt, Py_EQ)); if (unlikely((__pyx_t_3 < 0))) __PYX_ERR(0, 589, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (__pyx_t_3) { - /* "pyreadstat/_readstat_writer.pyx":588 + /* "pyreadstat/_readstat_writer.pyx":590 * * if os.name == "nt": * filename_str = os.fsdecode(filename_bytes) # <<<<<<<<<<<<<< @@ -11068,9 +11111,9 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_open_file(PyObject *__pyx_v_f * flags = _O_WRONLY | _O_CREAT | _O_BINARY | _O_TRUNC */ __pyx_t_1 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_os); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 588, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_os); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 590, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_fsdecode); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 588, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_fsdecode); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 590, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_6 = 1; @@ -11090,23 +11133,23 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_open_file(PyObject *__pyx_v_f __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_5, __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 588, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 590, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } __pyx_v_filename_str = __pyx_t_2; __pyx_t_2 = 0; - /* "pyreadstat/_readstat_writer.pyx":589 + /* "pyreadstat/_readstat_writer.pyx":591 * if os.name == "nt": * filename_str = os.fsdecode(filename_bytes) * u16_path = PyUnicode_AsWideCharString(filename_str, &length) # <<<<<<<<<<<<<< * flags = _O_WRONLY | _O_CREAT | _O_BINARY | _O_TRUNC * fd = _wsopen(u16_path, flags, _SH_DENYRW, _S_IREAD | _S_IWRITE) */ - __pyx_t_7 = PyUnicode_AsWideCharString(__pyx_v_filename_str, (&__pyx_v_length)); if (unlikely(__pyx_t_7 == ((void *)NULL))) __PYX_ERR(0, 589, __pyx_L1_error) + __pyx_t_7 = PyUnicode_AsWideCharString(__pyx_v_filename_str, (&__pyx_v_length)); if (unlikely(__pyx_t_7 == ((void *)NULL))) __PYX_ERR(0, 591, __pyx_L1_error) __pyx_v_u16_path = __pyx_t_7; - /* "pyreadstat/_readstat_writer.pyx":590 + /* "pyreadstat/_readstat_writer.pyx":592 * filename_str = os.fsdecode(filename_bytes) * u16_path = PyUnicode_AsWideCharString(filename_str, &length) * flags = _O_WRONLY | _O_CREAT | _O_BINARY | _O_TRUNC # <<<<<<<<<<<<<< @@ -11115,7 +11158,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_open_file(PyObject *__pyx_v_f */ __pyx_v_flags = (((_O_WRONLY | _O_CREAT) | _O_BINARY) | _O_TRUNC); - /* "pyreadstat/_readstat_writer.pyx":591 + /* "pyreadstat/_readstat_writer.pyx":593 * u16_path = PyUnicode_AsWideCharString(filename_str, &length) * flags = _O_WRONLY | _O_CREAT | _O_BINARY | _O_TRUNC * fd = _wsopen(u16_path, flags, _SH_DENYRW, _S_IREAD | _S_IWRITE) # <<<<<<<<<<<<<< @@ -11124,7 +11167,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_open_file(PyObject *__pyx_v_f */ __pyx_v_fd = _wsopen(__pyx_v_u16_path, __pyx_v_flags, _SH_DENYRW, (_S_IREAD | _S_IWRITE)); - /* "pyreadstat/_readstat_writer.pyx":587 + /* "pyreadstat/_readstat_writer.pyx":589 * cdef char *path * * if os.name == "nt": # <<<<<<<<<<<<<< @@ -11134,7 +11177,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_open_file(PyObject *__pyx_v_f goto __pyx_L3; } - /* "pyreadstat/_readstat_writer.pyx":593 + /* "pyreadstat/_readstat_writer.pyx":595 * fd = _wsopen(u16_path, flags, _SH_DENYRW, _S_IREAD | _S_IWRITE) * else: * path = filename_bytes # <<<<<<<<<<<<<< @@ -11144,12 +11187,12 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_open_file(PyObject *__pyx_v_f /*else*/ { if (unlikely(__pyx_v_filename_bytes == Py_None)) { PyErr_SetString(PyExc_TypeError, "expected bytes, NoneType found"); - __PYX_ERR(0, 593, __pyx_L1_error) + __PYX_ERR(0, 595, __pyx_L1_error) } - __pyx_t_8 = __Pyx_PyBytes_AsWritableString(__pyx_v_filename_bytes); if (unlikely((!__pyx_t_8) && PyErr_Occurred())) __PYX_ERR(0, 593, __pyx_L1_error) + __pyx_t_8 = __Pyx_PyBytes_AsWritableString(__pyx_v_filename_bytes); if (unlikely((!__pyx_t_8) && PyErr_Occurred())) __PYX_ERR(0, 595, __pyx_L1_error) __pyx_v_path = ((char *)__pyx_t_8); - /* "pyreadstat/_readstat_writer.pyx":594 + /* "pyreadstat/_readstat_writer.pyx":596 * else: * path = filename_bytes * flags = O_WRONLY | O_CREAT | O_TRUNC # <<<<<<<<<<<<<< @@ -11158,7 +11201,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_open_file(PyObject *__pyx_v_f */ __pyx_v_flags = ((O_WRONLY | O_CREAT) | O_TRUNC); - /* "pyreadstat/_readstat_writer.pyx":595 + /* "pyreadstat/_readstat_writer.pyx":597 * path = filename_bytes * flags = O_WRONLY | O_CREAT | O_TRUNC * fd = open(path, flags, 0644) # <<<<<<<<<<<<<< @@ -11169,7 +11212,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_open_file(PyObject *__pyx_v_f } __pyx_L3:; - /* "pyreadstat/_readstat_writer.pyx":597 + /* "pyreadstat/_readstat_writer.pyx":599 * fd = open(path, flags, 0644) * * return fd # <<<<<<<<<<<<<< @@ -11179,7 +11222,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_open_file(PyObject *__pyx_v_f __pyx_r = __pyx_v_fd; goto __pyx_L0; - /* "pyreadstat/_readstat_writer.pyx":579 + /* "pyreadstat/_readstat_writer.pyx":581 * return write(fd, data, _len) * * cdef int open_file(bytes filename_bytes): # <<<<<<<<<<<<<< @@ -11201,7 +11244,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_open_file(PyObject *__pyx_v_f return __pyx_r; } -/* "pyreadstat/_readstat_writer.pyx":599 +/* "pyreadstat/_readstat_writer.pyx":601 * return fd * * cdef int close_file(int fd): # <<<<<<<<<<<<<< @@ -11220,7 +11263,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_close_file(int __pyx_v_fd) { int __pyx_clineno = 0; __Pyx_RefNannySetupContext("close_file", 0); - /* "pyreadstat/_readstat_writer.pyx":600 + /* "pyreadstat/_readstat_writer.pyx":602 * * cdef int close_file(int fd): * if fd == -1: # <<<<<<<<<<<<<< @@ -11230,7 +11273,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_close_file(int __pyx_v_fd) { __pyx_t_1 = (__pyx_v_fd == -1L); if (__pyx_t_1) { - /* "pyreadstat/_readstat_writer.pyx":601 + /* "pyreadstat/_readstat_writer.pyx":603 * cdef int close_file(int fd): * if fd == -1: * return -1 # <<<<<<<<<<<<<< @@ -11240,7 +11283,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_close_file(int __pyx_v_fd) { __pyx_r = -1; goto __pyx_L0; - /* "pyreadstat/_readstat_writer.pyx":600 + /* "pyreadstat/_readstat_writer.pyx":602 * * cdef int close_file(int fd): * if fd == -1: # <<<<<<<<<<<<<< @@ -11249,23 +11292,23 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_close_file(int __pyx_v_fd) { */ } - /* "pyreadstat/_readstat_writer.pyx":602 + /* "pyreadstat/_readstat_writer.pyx":604 * if fd == -1: * return -1 * if os.name == "nt": # <<<<<<<<<<<<<< * return _close(fd) * else: */ - __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_os); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 602, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_os); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 604, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_name); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 602, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_name); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 604, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_nt, Py_EQ)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 602, __pyx_L1_error) + __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_nt, Py_EQ)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 604, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (__pyx_t_1) { - /* "pyreadstat/_readstat_writer.pyx":603 + /* "pyreadstat/_readstat_writer.pyx":605 * return -1 * if os.name == "nt": * return _close(fd) # <<<<<<<<<<<<<< @@ -11275,7 +11318,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_close_file(int __pyx_v_fd) { __pyx_r = _close(__pyx_v_fd); goto __pyx_L0; - /* "pyreadstat/_readstat_writer.pyx":602 + /* "pyreadstat/_readstat_writer.pyx":604 * if fd == -1: * return -1 * if os.name == "nt": # <<<<<<<<<<<<<< @@ -11284,7 +11327,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_close_file(int __pyx_v_fd) { */ } - /* "pyreadstat/_readstat_writer.pyx":605 + /* "pyreadstat/_readstat_writer.pyx":607 * return _close(fd) * else: * return close(fd) # <<<<<<<<<<<<<< @@ -11296,7 +11339,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_close_file(int __pyx_v_fd) { goto __pyx_L0; } - /* "pyreadstat/_readstat_writer.pyx":599 + /* "pyreadstat/_readstat_writer.pyx":601 * return fd * * cdef int close_file(int fd): # <<<<<<<<<<<<<< @@ -11315,7 +11358,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_close_file(int __pyx_v_fd) { return __pyx_r; } -/* "pyreadstat/_readstat_writer.pyx":607 +/* "pyreadstat/_readstat_writer.pyx":609 * return close(fd) * * cdef void initial_checks(bint is_pandas, bint is_polars, dict variable_value_labels, dict missing_user_values, # <<<<<<<<<<<<<< @@ -11361,7 +11404,7 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_initial_checks(int __pyx_v_i int __pyx_clineno = 0; __Pyx_RefNannySetupContext("initial_checks", 0); - /* "pyreadstat/_readstat_writer.pyx":613 + /* "pyreadstat/_readstat_writer.pyx":615 * """ * * if not is_pandas and not is_polars: # <<<<<<<<<<<<<< @@ -11379,7 +11422,7 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_initial_checks(int __pyx_v_i __pyx_L4_bool_binop_done:; if (unlikely(__pyx_t_1)) { - /* "pyreadstat/_readstat_writer.pyx":614 + /* "pyreadstat/_readstat_writer.pyx":616 * * if not is_pandas and not is_polars: * msg = "dataframe must be pandas or polars dataframe" # <<<<<<<<<<<<<< @@ -11389,7 +11432,7 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_initial_checks(int __pyx_v_i __Pyx_INCREF(__pyx_mstate_global->__pyx_kp_u_dataframe_must_be_pandas_or_pola); __pyx_v_msg = __pyx_mstate_global->__pyx_kp_u_dataframe_must_be_pandas_or_pola; - /* "pyreadstat/_readstat_writer.pyx":615 + /* "pyreadstat/_readstat_writer.pyx":617 * if not is_pandas and not is_polars: * msg = "dataframe must be pandas or polars dataframe" * raise PyreadstatError(msg) # <<<<<<<<<<<<<< @@ -11397,7 +11440,7 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_initial_checks(int __pyx_v_i * if variable_value_labels: */ __pyx_t_4 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 615, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 617, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_6 = 1; #if CYTHON_UNPACK_METHODS @@ -11416,14 +11459,14 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_initial_checks(int __pyx_v_i __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_5, __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 615, __pyx_L1_error) + if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 617, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); } __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __PYX_ERR(0, 615, __pyx_L1_error) + __PYX_ERR(0, 617, __pyx_L1_error) - /* "pyreadstat/_readstat_writer.pyx":613 + /* "pyreadstat/_readstat_writer.pyx":615 * """ * * if not is_pandas and not is_polars: # <<<<<<<<<<<<<< @@ -11432,17 +11475,17 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_initial_checks(int __pyx_v_i */ } - /* "pyreadstat/_readstat_writer.pyx":617 + /* "pyreadstat/_readstat_writer.pyx":619 * raise PyreadstatError(msg) * * if variable_value_labels: # <<<<<<<<<<<<<< * for k,v in variable_value_labels.items(): * if type(v) != dict: */ - __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_variable_value_labels); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 617, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_variable_value_labels); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 619, __pyx_L1_error) if (__pyx_t_1) { - /* "pyreadstat/_readstat_writer.pyx":618 + /* "pyreadstat/_readstat_writer.pyx":620 * * if variable_value_labels: * for k,v in variable_value_labels.items(): # <<<<<<<<<<<<<< @@ -11451,18 +11494,18 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_initial_checks(int __pyx_v_i */ if (unlikely(__pyx_v_variable_value_labels == Py_None)) { PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "items"); - __PYX_ERR(0, 618, __pyx_L1_error) + __PYX_ERR(0, 620, __pyx_L1_error) } - __pyx_t_3 = __Pyx_PyDict_Items(__pyx_v_variable_value_labels); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 618, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyDict_Items(__pyx_v_variable_value_labels); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 620, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (likely(PyList_CheckExact(__pyx_t_3)) || PyTuple_CheckExact(__pyx_t_3)) { __pyx_t_5 = __pyx_t_3; __Pyx_INCREF(__pyx_t_5); __pyx_t_7 = 0; __pyx_t_8 = NULL; } else { - __pyx_t_7 = -1; __pyx_t_5 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 618, __pyx_L1_error) + __pyx_t_7 = -1; __pyx_t_5 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 620, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); - __pyx_t_8 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_5); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 618, __pyx_L1_error) + __pyx_t_8 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_5); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 620, __pyx_L1_error) } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; for (;;) { @@ -11471,7 +11514,7 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_initial_checks(int __pyx_v_i { Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_5); #if !CYTHON_ASSUME_SAFE_SIZE - if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 618, __pyx_L1_error) + if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 620, __pyx_L1_error) #endif if (__pyx_t_7 >= __pyx_temp) break; } @@ -11481,7 +11524,7 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_initial_checks(int __pyx_v_i { Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_5); #if !CYTHON_ASSUME_SAFE_SIZE - if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 618, __pyx_L1_error) + if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 620, __pyx_L1_error) #endif if (__pyx_t_7 >= __pyx_temp) break; } @@ -11492,13 +11535,13 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_initial_checks(int __pyx_v_i #endif ++__pyx_t_7; } - if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 618, __pyx_L1_error) + if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 620, __pyx_L1_error) } else { __pyx_t_3 = __pyx_t_8(__pyx_t_5); if (unlikely(!__pyx_t_3)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { - if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(0, 618, __pyx_L1_error) + if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(0, 620, __pyx_L1_error) PyErr_Clear(); } break; @@ -11511,7 +11554,7 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_initial_checks(int __pyx_v_i if (unlikely(size != 2)) { if (size > 2) __Pyx_RaiseTooManyValuesError(2); else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); - __PYX_ERR(0, 618, __pyx_L1_error) + __PYX_ERR(0, 620, __pyx_L1_error) } #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS if (likely(PyTuple_CheckExact(sequence))) { @@ -11521,22 +11564,22 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_initial_checks(int __pyx_v_i __Pyx_INCREF(__pyx_t_9); } else { __pyx_t_4 = __Pyx_PyList_GetItemRefFast(sequence, 0, __Pyx_ReferenceSharing_SharedReference); - if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 618, __pyx_L1_error) + if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 620, __pyx_L1_error) __Pyx_XGOTREF(__pyx_t_4); __pyx_t_9 = __Pyx_PyList_GetItemRefFast(sequence, 1, __Pyx_ReferenceSharing_SharedReference); - if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 618, __pyx_L1_error) + if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 620, __pyx_L1_error) __Pyx_XGOTREF(__pyx_t_9); } #else - __pyx_t_4 = __Pyx_PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 618, __pyx_L1_error) + __pyx_t_4 = __Pyx_PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 620, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_9 = __Pyx_PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 618, __pyx_L1_error) + __pyx_t_9 = __Pyx_PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 620, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); #endif __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } else { Py_ssize_t index = -1; - __pyx_t_10 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 618, __pyx_L1_error) + __pyx_t_10 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 620, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_11 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_10); @@ -11544,7 +11587,7 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_initial_checks(int __pyx_v_i __Pyx_GOTREF(__pyx_t_4); index = 1; __pyx_t_9 = __pyx_t_11(__pyx_t_10); if (unlikely(!__pyx_t_9)) goto __pyx_L9_unpacking_failed; __Pyx_GOTREF(__pyx_t_9); - if (__Pyx_IternextUnpackEndCheck(__pyx_t_11(__pyx_t_10), 2) < (0)) __PYX_ERR(0, 618, __pyx_L1_error) + if (__Pyx_IternextUnpackEndCheck(__pyx_t_11(__pyx_t_10), 2) < (0)) __PYX_ERR(0, 620, __pyx_L1_error) __pyx_t_11 = NULL; __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; goto __pyx_L10_unpacking_done; @@ -11552,7 +11595,7 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_initial_checks(int __pyx_v_i __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_t_11 = NULL; if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); - __PYX_ERR(0, 618, __pyx_L1_error) + __PYX_ERR(0, 620, __pyx_L1_error) __pyx_L10_unpacking_done:; } __Pyx_XDECREF_SET(__pyx_v_k, __pyx_t_4); @@ -11560,42 +11603,42 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_initial_checks(int __pyx_v_i __Pyx_XDECREF_SET(__pyx_v_v, __pyx_t_9); __pyx_t_9 = 0; - /* "pyreadstat/_readstat_writer.pyx":619 + /* "pyreadstat/_readstat_writer.pyx":621 * if variable_value_labels: * for k,v in variable_value_labels.items(): * if type(v) != dict: # <<<<<<<<<<<<<< * msg = "variable_value_labels: value for key %s must be dict, got %s" % (k, str(type(v))) * raise PyreadstatError(msg) */ - __pyx_t_3 = PyObject_RichCompare(((PyObject *)Py_TYPE(__pyx_v_v)), ((PyObject *)(&PyDict_Type)), Py_NE); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 619, __pyx_L1_error) - __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 619, __pyx_L1_error) + __pyx_t_3 = PyObject_RichCompare(((PyObject *)Py_TYPE(__pyx_v_v)), ((PyObject *)(&PyDict_Type)), Py_NE); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 621, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 621, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(__pyx_t_1)) { - /* "pyreadstat/_readstat_writer.pyx":620 + /* "pyreadstat/_readstat_writer.pyx":622 * for k,v in variable_value_labels.items(): * if type(v) != dict: * msg = "variable_value_labels: value for key %s must be dict, got %s" % (k, str(type(v))) # <<<<<<<<<<<<<< * raise PyreadstatError(msg) * */ - __pyx_t_3 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Str(__pyx_v_k), __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 620, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Str(__pyx_v_k), __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 622, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_9 = __Pyx_PyObject_Unicode(((PyObject *)Py_TYPE(__pyx_v_v))); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 620, __pyx_L1_error) + __pyx_t_9 = __Pyx_PyObject_Unicode(((PyObject *)Py_TYPE(__pyx_v_v))); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 622, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_12[0] = __pyx_mstate_global->__pyx_kp_u_variable_value_labels_value_for; __pyx_t_12[1] = __pyx_t_3; __pyx_t_12[2] = __pyx_mstate_global->__pyx_kp_u_must_be_dict_got; __pyx_t_12[3] = __pyx_t_9; __pyx_t_4 = __Pyx_PyUnicode_Join(__pyx_t_12, 4, 37 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_3) + 19 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_9), 127 | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_3) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_9)); - if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 620, __pyx_L1_error) + if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 622, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_v_msg = ((PyObject*)__pyx_t_4); __pyx_t_4 = 0; - /* "pyreadstat/_readstat_writer.pyx":621 + /* "pyreadstat/_readstat_writer.pyx":623 * if type(v) != dict: * msg = "variable_value_labels: value for key %s must be dict, got %s" % (k, str(type(v))) * raise PyreadstatError(msg) # <<<<<<<<<<<<<< @@ -11603,7 +11646,7 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_initial_checks(int __pyx_v_i * cdef list valid_user_missing */ __pyx_t_9 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 621, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 623, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_6 = 1; #if CYTHON_UNPACK_METHODS @@ -11622,14 +11665,14 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_initial_checks(int __pyx_v_i __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_3, __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 621, __pyx_L1_error) + if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 623, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); } __Pyx_Raise(__pyx_t_4, 0, 0, 0); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __PYX_ERR(0, 621, __pyx_L1_error) + __PYX_ERR(0, 623, __pyx_L1_error) - /* "pyreadstat/_readstat_writer.pyx":619 + /* "pyreadstat/_readstat_writer.pyx":621 * if variable_value_labels: * for k,v in variable_value_labels.items(): * if type(v) != dict: # <<<<<<<<<<<<<< @@ -11638,7 +11681,7 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_initial_checks(int __pyx_v_i */ } - /* "pyreadstat/_readstat_writer.pyx":618 + /* "pyreadstat/_readstat_writer.pyx":620 * * if variable_value_labels: * for k,v in variable_value_labels.items(): # <<<<<<<<<<<<<< @@ -11648,7 +11691,7 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_initial_checks(int __pyx_v_i } __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - /* "pyreadstat/_readstat_writer.pyx":617 + /* "pyreadstat/_readstat_writer.pyx":619 * raise PyreadstatError(msg) * * if variable_value_labels: # <<<<<<<<<<<<<< @@ -11657,17 +11700,17 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_initial_checks(int __pyx_v_i */ } - /* "pyreadstat/_readstat_writer.pyx":624 + /* "pyreadstat/_readstat_writer.pyx":626 * * cdef list valid_user_missing * if missing_user_values: # <<<<<<<<<<<<<< * if file_format == FILE_FORMAT_DTA: * valid_user_missing = valid_user_missing_stata */ - __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_missing_user_values); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 624, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_missing_user_values); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 626, __pyx_L1_error) if (__pyx_t_1) { - /* "pyreadstat/_readstat_writer.pyx":625 + /* "pyreadstat/_readstat_writer.pyx":627 * cdef list valid_user_missing * if missing_user_values: * if file_format == FILE_FORMAT_DTA: # <<<<<<<<<<<<<< @@ -11677,7 +11720,7 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_initial_checks(int __pyx_v_i switch (__pyx_v_file_format) { case __pyx_e_10pyreadstat_16_readstat_writer_FILE_FORMAT_DTA: - /* "pyreadstat/_readstat_writer.pyx":626 + /* "pyreadstat/_readstat_writer.pyx":628 * if missing_user_values: * if file_format == FILE_FORMAT_DTA: * valid_user_missing = valid_user_missing_stata # <<<<<<<<<<<<<< @@ -11686,11 +11729,11 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_initial_checks(int __pyx_v_i */ __pyx_t_5 = __pyx_v_10pyreadstat_16_readstat_writer_valid_user_missing_stata; __Pyx_INCREF(__pyx_t_5); - if (!(likely(PyList_CheckExact(__pyx_t_5))||((__pyx_t_5) == Py_None) || __Pyx_RaiseUnexpectedTypeError("list", __pyx_t_5))) __PYX_ERR(0, 626, __pyx_L1_error) + if (!(likely(PyList_CheckExact(__pyx_t_5))||((__pyx_t_5) == Py_None) || __Pyx_RaiseUnexpectedTypeError("list", __pyx_t_5))) __PYX_ERR(0, 628, __pyx_L1_error) __pyx_v_valid_user_missing = ((PyObject*)__pyx_t_5); __pyx_t_5 = 0; - /* "pyreadstat/_readstat_writer.pyx":625 + /* "pyreadstat/_readstat_writer.pyx":627 * cdef list valid_user_missing * if missing_user_values: * if file_format == FILE_FORMAT_DTA: # <<<<<<<<<<<<<< @@ -11700,7 +11743,7 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_initial_checks(int __pyx_v_i break; case __pyx_e_10pyreadstat_16_readstat_writer_FILE_FORMAT_SAS7BDAT: - /* "pyreadstat/_readstat_writer.pyx":627 + /* "pyreadstat/_readstat_writer.pyx":629 * if file_format == FILE_FORMAT_DTA: * valid_user_missing = valid_user_missing_stata * elif file_format == FILE_FORMAT_SAS7BDAT or file_format == FILE_FORMAT_SAS7BCAT: # <<<<<<<<<<<<<< @@ -11709,7 +11752,7 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_initial_checks(int __pyx_v_i */ case __pyx_e_10pyreadstat_16_readstat_writer_FILE_FORMAT_SAS7BCAT: - /* "pyreadstat/_readstat_writer.pyx":628 + /* "pyreadstat/_readstat_writer.pyx":630 * valid_user_missing = valid_user_missing_stata * elif file_format == FILE_FORMAT_SAS7BDAT or file_format == FILE_FORMAT_SAS7BCAT: * valid_user_missing = valid_user_missing_sas # <<<<<<<<<<<<<< @@ -11718,11 +11761,11 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_initial_checks(int __pyx_v_i */ __pyx_t_5 = __pyx_v_10pyreadstat_16_readstat_writer_valid_user_missing_sas; __Pyx_INCREF(__pyx_t_5); - if (!(likely(PyList_CheckExact(__pyx_t_5))||((__pyx_t_5) == Py_None) || __Pyx_RaiseUnexpectedTypeError("list", __pyx_t_5))) __PYX_ERR(0, 628, __pyx_L1_error) + if (!(likely(PyList_CheckExact(__pyx_t_5))||((__pyx_t_5) == Py_None) || __Pyx_RaiseUnexpectedTypeError("list", __pyx_t_5))) __PYX_ERR(0, 630, __pyx_L1_error) __pyx_v_valid_user_missing = ((PyObject*)__pyx_t_5); __pyx_t_5 = 0; - /* "pyreadstat/_readstat_writer.pyx":627 + /* "pyreadstat/_readstat_writer.pyx":629 * if file_format == FILE_FORMAT_DTA: * valid_user_missing = valid_user_missing_stata * elif file_format == FILE_FORMAT_SAS7BDAT or file_format == FILE_FORMAT_SAS7BCAT: # <<<<<<<<<<<<<< @@ -11733,7 +11776,7 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_initial_checks(int __pyx_v_i default: break; } - /* "pyreadstat/_readstat_writer.pyx":630 + /* "pyreadstat/_readstat_writer.pyx":632 * valid_user_missing = valid_user_missing_sas * * for key, missing_values in missing_user_values.items(): # <<<<<<<<<<<<<< @@ -11742,18 +11785,18 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_initial_checks(int __pyx_v_i */ if (unlikely(__pyx_v_missing_user_values == Py_None)) { PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "items"); - __PYX_ERR(0, 630, __pyx_L1_error) + __PYX_ERR(0, 632, __pyx_L1_error) } - __pyx_t_5 = __Pyx_PyDict_Items(__pyx_v_missing_user_values); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 630, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyDict_Items(__pyx_v_missing_user_values); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 632, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (likely(PyList_CheckExact(__pyx_t_5)) || PyTuple_CheckExact(__pyx_t_5)) { __pyx_t_4 = __pyx_t_5; __Pyx_INCREF(__pyx_t_4); __pyx_t_7 = 0; __pyx_t_8 = NULL; } else { - __pyx_t_7 = -1; __pyx_t_4 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 630, __pyx_L1_error) + __pyx_t_7 = -1; __pyx_t_4 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 632, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_8 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_4); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 630, __pyx_L1_error) + __pyx_t_8 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_4); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 632, __pyx_L1_error) } __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; for (;;) { @@ -11762,7 +11805,7 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_initial_checks(int __pyx_v_i { Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_4); #if !CYTHON_ASSUME_SAFE_SIZE - if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 630, __pyx_L1_error) + if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 632, __pyx_L1_error) #endif if (__pyx_t_7 >= __pyx_temp) break; } @@ -11772,7 +11815,7 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_initial_checks(int __pyx_v_i { Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_4); #if !CYTHON_ASSUME_SAFE_SIZE - if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 630, __pyx_L1_error) + if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 632, __pyx_L1_error) #endif if (__pyx_t_7 >= __pyx_temp) break; } @@ -11783,13 +11826,13 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_initial_checks(int __pyx_v_i #endif ++__pyx_t_7; } - if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 630, __pyx_L1_error) + if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 632, __pyx_L1_error) } else { __pyx_t_5 = __pyx_t_8(__pyx_t_4); if (unlikely(!__pyx_t_5)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { - if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(0, 630, __pyx_L1_error) + if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(0, 632, __pyx_L1_error) PyErr_Clear(); } break; @@ -11802,7 +11845,7 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_initial_checks(int __pyx_v_i if (unlikely(size != 2)) { if (size > 2) __Pyx_RaiseTooManyValuesError(2); else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); - __PYX_ERR(0, 630, __pyx_L1_error) + __PYX_ERR(0, 632, __pyx_L1_error) } #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS if (likely(PyTuple_CheckExact(sequence))) { @@ -11812,22 +11855,22 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_initial_checks(int __pyx_v_i __Pyx_INCREF(__pyx_t_9); } else { __pyx_t_3 = __Pyx_PyList_GetItemRefFast(sequence, 0, __Pyx_ReferenceSharing_SharedReference); - if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 630, __pyx_L1_error) + if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 632, __pyx_L1_error) __Pyx_XGOTREF(__pyx_t_3); __pyx_t_9 = __Pyx_PyList_GetItemRefFast(sequence, 1, __Pyx_ReferenceSharing_SharedReference); - if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 630, __pyx_L1_error) + if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 632, __pyx_L1_error) __Pyx_XGOTREF(__pyx_t_9); } #else - __pyx_t_3 = __Pyx_PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 630, __pyx_L1_error) + __pyx_t_3 = __Pyx_PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 632, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_9 = __Pyx_PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 630, __pyx_L1_error) + __pyx_t_9 = __Pyx_PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 632, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); #endif __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } else { Py_ssize_t index = -1; - __pyx_t_10 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 630, __pyx_L1_error) + __pyx_t_10 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 632, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_11 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_10); @@ -11835,7 +11878,7 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_initial_checks(int __pyx_v_i __Pyx_GOTREF(__pyx_t_3); index = 1; __pyx_t_9 = __pyx_t_11(__pyx_t_10); if (unlikely(!__pyx_t_9)) goto __pyx_L16_unpacking_failed; __Pyx_GOTREF(__pyx_t_9); - if (__Pyx_IternextUnpackEndCheck(__pyx_t_11(__pyx_t_10), 2) < (0)) __PYX_ERR(0, 630, __pyx_L1_error) + if (__Pyx_IternextUnpackEndCheck(__pyx_t_11(__pyx_t_10), 2) < (0)) __PYX_ERR(0, 632, __pyx_L1_error) __pyx_t_11 = NULL; __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; goto __pyx_L17_unpacking_done; @@ -11843,7 +11886,7 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_initial_checks(int __pyx_v_i __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_t_11 = NULL; if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); - __PYX_ERR(0, 630, __pyx_L1_error) + __PYX_ERR(0, 632, __pyx_L1_error) __pyx_L17_unpacking_done:; } __Pyx_XDECREF_SET(__pyx_v_key, __pyx_t_3); @@ -11851,7 +11894,7 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_initial_checks(int __pyx_v_i __Pyx_XDECREF_SET(__pyx_v_missing_values, __pyx_t_9); __pyx_t_9 = 0; - /* "pyreadstat/_readstat_writer.pyx":631 + /* "pyreadstat/_readstat_writer.pyx":633 * * for key, missing_values in missing_user_values.items(): * if not isinstance(missing_values, list): # <<<<<<<<<<<<<< @@ -11862,7 +11905,7 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_initial_checks(int __pyx_v_i __pyx_t_2 = (!__pyx_t_1); if (unlikely(__pyx_t_2)) { - /* "pyreadstat/_readstat_writer.pyx":632 + /* "pyreadstat/_readstat_writer.pyx":634 * for key, missing_values in missing_user_values.items(): * if not isinstance(missing_values, list): * msg = "missing_user_values: values in dictionary must be list" # <<<<<<<<<<<<<< @@ -11872,7 +11915,7 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_initial_checks(int __pyx_v_i __Pyx_INCREF(__pyx_mstate_global->__pyx_kp_u_missing_user_values_values_in_di); __pyx_v_msg = __pyx_mstate_global->__pyx_kp_u_missing_user_values_values_in_di; - /* "pyreadstat/_readstat_writer.pyx":633 + /* "pyreadstat/_readstat_writer.pyx":635 * if not isinstance(missing_values, list): * msg = "missing_user_values: values in dictionary must be list" * raise PyreadstatError(msg) # <<<<<<<<<<<<<< @@ -11880,7 +11923,7 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_initial_checks(int __pyx_v_i * if val not in valid_user_missing: */ __pyx_t_9 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 633, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 635, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_6 = 1; #if CYTHON_UNPACK_METHODS @@ -11899,14 +11942,14 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_initial_checks(int __pyx_v_i __pyx_t_5 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_3, __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 633, __pyx_L1_error) + if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 635, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); } __Pyx_Raise(__pyx_t_5, 0, 0, 0); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __PYX_ERR(0, 633, __pyx_L1_error) + __PYX_ERR(0, 635, __pyx_L1_error) - /* "pyreadstat/_readstat_writer.pyx":631 + /* "pyreadstat/_readstat_writer.pyx":633 * * for key, missing_values in missing_user_values.items(): * if not isinstance(missing_values, list): # <<<<<<<<<<<<<< @@ -11915,7 +11958,7 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_initial_checks(int __pyx_v_i */ } - /* "pyreadstat/_readstat_writer.pyx":634 + /* "pyreadstat/_readstat_writer.pyx":636 * msg = "missing_user_values: values in dictionary must be list" * raise PyreadstatError(msg) * for val in missing_values: # <<<<<<<<<<<<<< @@ -11927,9 +11970,9 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_initial_checks(int __pyx_v_i __pyx_t_13 = 0; __pyx_t_14 = NULL; } else { - __pyx_t_13 = -1; __pyx_t_5 = PyObject_GetIter(__pyx_v_missing_values); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 634, __pyx_L1_error) + __pyx_t_13 = -1; __pyx_t_5 = PyObject_GetIter(__pyx_v_missing_values); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 636, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); - __pyx_t_14 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_5); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 634, __pyx_L1_error) + __pyx_t_14 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_5); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 636, __pyx_L1_error) } for (;;) { if (likely(!__pyx_t_14)) { @@ -11937,7 +11980,7 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_initial_checks(int __pyx_v_i { Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_5); #if !CYTHON_ASSUME_SAFE_SIZE - if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 634, __pyx_L1_error) + if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 636, __pyx_L1_error) #endif if (__pyx_t_13 >= __pyx_temp) break; } @@ -11947,7 +11990,7 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_initial_checks(int __pyx_v_i { Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_5); #if !CYTHON_ASSUME_SAFE_SIZE - if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 634, __pyx_L1_error) + if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 636, __pyx_L1_error) #endif if (__pyx_t_13 >= __pyx_temp) break; } @@ -11958,13 +12001,13 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_initial_checks(int __pyx_v_i #endif ++__pyx_t_13; } - if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 634, __pyx_L1_error) + if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 636, __pyx_L1_error) } else { __pyx_t_3 = __pyx_t_14(__pyx_t_5); if (unlikely(!__pyx_t_3)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { - if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(0, 634, __pyx_L1_error) + if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(0, 636, __pyx_L1_error) PyErr_Clear(); } break; @@ -11974,33 +12017,33 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_initial_checks(int __pyx_v_i __Pyx_XDECREF_SET(__pyx_v_val, __pyx_t_3); __pyx_t_3 = 0; - /* "pyreadstat/_readstat_writer.pyx":635 + /* "pyreadstat/_readstat_writer.pyx":637 * raise PyreadstatError(msg) * for val in missing_values: * if val not in valid_user_missing: # <<<<<<<<<<<<<< * msg = "missing_user_values supports values a to z for Stata and A to Z and _ for SAS, got %s instead" % str(val) * raise PyreadstatError(msg) */ - if (unlikely(!__pyx_v_valid_user_missing)) { __Pyx_RaiseUnboundLocalError("valid_user_missing"); __PYX_ERR(0, 635, __pyx_L1_error) } - __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_v_val, __pyx_v_valid_user_missing, Py_NE)); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 635, __pyx_L1_error) + if (unlikely(!__pyx_v_valid_user_missing)) { __Pyx_RaiseUnboundLocalError("valid_user_missing"); __PYX_ERR(0, 637, __pyx_L1_error) } + __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_v_val, __pyx_v_valid_user_missing, Py_NE)); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 637, __pyx_L1_error) if (unlikely(__pyx_t_2)) { - /* "pyreadstat/_readstat_writer.pyx":636 + /* "pyreadstat/_readstat_writer.pyx":638 * for val in missing_values: * if val not in valid_user_missing: * msg = "missing_user_values supports values a to z for Stata and A to Z and _ for SAS, got %s instead" % str(val) # <<<<<<<<<<<<<< * raise PyreadstatError(msg) * */ - __pyx_t_3 = __Pyx_PyObject_Unicode(__pyx_v_val); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 636, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_Unicode(__pyx_v_val); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 638, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_9 = PyUnicode_Format(__pyx_mstate_global->__pyx_kp_u_missing_user_values_supports_val, __pyx_t_3); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 636, __pyx_L1_error) + __pyx_t_9 = PyUnicode_Format(__pyx_mstate_global->__pyx_kp_u_missing_user_values_supports_val, __pyx_t_3); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 638, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_v_msg = ((PyObject*)__pyx_t_9); __pyx_t_9 = 0; - /* "pyreadstat/_readstat_writer.pyx":637 + /* "pyreadstat/_readstat_writer.pyx":639 * if val not in valid_user_missing: * msg = "missing_user_values supports values a to z for Stata and A to Z and _ for SAS, got %s instead" % str(val) * raise PyreadstatError(msg) # <<<<<<<<<<<<<< @@ -12008,7 +12051,7 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_initial_checks(int __pyx_v_i * if len(col_names) != len(set(col_names)): */ __pyx_t_3 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 637, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 639, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __pyx_t_6 = 1; #if CYTHON_UNPACK_METHODS @@ -12027,14 +12070,14 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_initial_checks(int __pyx_v_i __pyx_t_9 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_10, __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 637, __pyx_L1_error) + if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 639, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); } __Pyx_Raise(__pyx_t_9, 0, 0, 0); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __PYX_ERR(0, 637, __pyx_L1_error) + __PYX_ERR(0, 639, __pyx_L1_error) - /* "pyreadstat/_readstat_writer.pyx":635 + /* "pyreadstat/_readstat_writer.pyx":637 * raise PyreadstatError(msg) * for val in missing_values: * if val not in valid_user_missing: # <<<<<<<<<<<<<< @@ -12043,7 +12086,7 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_initial_checks(int __pyx_v_i */ } - /* "pyreadstat/_readstat_writer.pyx":634 + /* "pyreadstat/_readstat_writer.pyx":636 * msg = "missing_user_values: values in dictionary must be list" * raise PyreadstatError(msg) * for val in missing_values: # <<<<<<<<<<<<<< @@ -12053,7 +12096,7 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_initial_checks(int __pyx_v_i } __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - /* "pyreadstat/_readstat_writer.pyx":630 + /* "pyreadstat/_readstat_writer.pyx":632 * valid_user_missing = valid_user_missing_sas * * for key, missing_values in missing_user_values.items(): # <<<<<<<<<<<<<< @@ -12063,7 +12106,7 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_initial_checks(int __pyx_v_i } __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - /* "pyreadstat/_readstat_writer.pyx":624 + /* "pyreadstat/_readstat_writer.pyx":626 * * cdef list valid_user_missing * if missing_user_values: # <<<<<<<<<<<<<< @@ -12072,7 +12115,7 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_initial_checks(int __pyx_v_i */ } - /* "pyreadstat/_readstat_writer.pyx":639 + /* "pyreadstat/_readstat_writer.pyx":641 * raise PyreadstatError(msg) * * if len(col_names) != len(set(col_names)): # <<<<<<<<<<<<<< @@ -12081,17 +12124,17 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_initial_checks(int __pyx_v_i */ if (unlikely(__pyx_v_col_names == Py_None)) { PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()"); - __PYX_ERR(0, 639, __pyx_L1_error) + __PYX_ERR(0, 641, __pyx_L1_error) } - __pyx_t_7 = __Pyx_PyList_GET_SIZE(__pyx_v_col_names); if (unlikely(__pyx_t_7 == ((Py_ssize_t)-1))) __PYX_ERR(0, 639, __pyx_L1_error) - __pyx_t_4 = PySet_New(__pyx_v_col_names); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 639, __pyx_L1_error) + __pyx_t_7 = __Pyx_PyList_GET_SIZE(__pyx_v_col_names); if (unlikely(__pyx_t_7 == ((Py_ssize_t)-1))) __PYX_ERR(0, 641, __pyx_L1_error) + __pyx_t_4 = PySet_New(__pyx_v_col_names); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 641, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_13 = __Pyx_PySet_GET_SIZE(__pyx_t_4); if (unlikely(__pyx_t_13 == ((Py_ssize_t)-1))) __PYX_ERR(0, 639, __pyx_L1_error) + __pyx_t_13 = __Pyx_PySet_GET_SIZE(__pyx_t_4); if (unlikely(__pyx_t_13 == ((Py_ssize_t)-1))) __PYX_ERR(0, 641, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_2 = (__pyx_t_7 != __pyx_t_13); if (unlikely(__pyx_t_2)) { - /* "pyreadstat/_readstat_writer.pyx":640 + /* "pyreadstat/_readstat_writer.pyx":642 * * if len(col_names) != len(set(col_names)): * msg = "Non unique column names detected in the dataframe!" # <<<<<<<<<<<<<< @@ -12101,7 +12144,7 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_initial_checks(int __pyx_v_i __Pyx_INCREF(__pyx_mstate_global->__pyx_kp_u_Non_unique_column_names_detected); __pyx_v_msg = __pyx_mstate_global->__pyx_kp_u_Non_unique_column_names_detected; - /* "pyreadstat/_readstat_writer.pyx":641 + /* "pyreadstat/_readstat_writer.pyx":643 * if len(col_names) != len(set(col_names)): * msg = "Non unique column names detected in the dataframe!" * raise PyreadstatError(msg) # <<<<<<<<<<<<<< @@ -12109,7 +12152,7 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_initial_checks(int __pyx_v_i * for variable_name in col_names: */ __pyx_t_5 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 641, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 643, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_6 = 1; #if CYTHON_UNPACK_METHODS @@ -12128,14 +12171,14 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_initial_checks(int __pyx_v_i __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_9, __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 641, __pyx_L1_error) + if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 643, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); } __Pyx_Raise(__pyx_t_4, 0, 0, 0); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __PYX_ERR(0, 641, __pyx_L1_error) + __PYX_ERR(0, 643, __pyx_L1_error) - /* "pyreadstat/_readstat_writer.pyx":639 + /* "pyreadstat/_readstat_writer.pyx":641 * raise PyreadstatError(msg) * * if len(col_names) != len(set(col_names)): # <<<<<<<<<<<<<< @@ -12144,7 +12187,7 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_initial_checks(int __pyx_v_i */ } - /* "pyreadstat/_readstat_writer.pyx":643 + /* "pyreadstat/_readstat_writer.pyx":645 * raise PyreadstatError(msg) * * for variable_name in col_names: # <<<<<<<<<<<<<< @@ -12153,7 +12196,7 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_initial_checks(int __pyx_v_i */ if (unlikely(__pyx_v_col_names == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable"); - __PYX_ERR(0, 643, __pyx_L1_error) + __PYX_ERR(0, 645, __pyx_L1_error) } __pyx_t_4 = __pyx_v_col_names; __Pyx_INCREF(__pyx_t_4); __pyx_t_13 = 0; @@ -12161,30 +12204,30 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_initial_checks(int __pyx_v_i { Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_4); #if !CYTHON_ASSUME_SAFE_SIZE - if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 643, __pyx_L1_error) + if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 645, __pyx_L1_error) #endif if (__pyx_t_13 >= __pyx_temp) break; } __pyx_t_9 = __Pyx_PyList_GetItemRefFast(__pyx_t_4, __pyx_t_13, __Pyx_ReferenceSharing_OwnStrongReference); ++__pyx_t_13; - if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 643, __pyx_L1_error) + if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 645, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_XDECREF_SET(__pyx_v_variable_name, __pyx_t_9); __pyx_t_9 = 0; - /* "pyreadstat/_readstat_writer.pyx":644 + /* "pyreadstat/_readstat_writer.pyx":646 * * for variable_name in col_names: * if type(variable_name) != str: # <<<<<<<<<<<<<< * raise PyreadstatError("variable name '%s' is of type %s and it must be str (not starting with numbers!)" % (variable_name, str(type(variable_name)))) * if len(variable_name) == 0: */ - __pyx_t_9 = PyObject_RichCompare(((PyObject *)Py_TYPE(__pyx_v_variable_name)), ((PyObject *)(&PyUnicode_Type)), Py_NE); __Pyx_XGOTREF(__pyx_t_9); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 644, __pyx_L1_error) - __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_9); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 644, __pyx_L1_error) + __pyx_t_9 = PyObject_RichCompare(((PyObject *)Py_TYPE(__pyx_v_variable_name)), ((PyObject *)(&PyUnicode_Type)), Py_NE); __Pyx_XGOTREF(__pyx_t_9); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 646, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_9); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 646, __pyx_L1_error) __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; if (unlikely(__pyx_t_2)) { - /* "pyreadstat/_readstat_writer.pyx":645 + /* "pyreadstat/_readstat_writer.pyx":647 * for variable_name in col_names: * if type(variable_name) != str: * raise PyreadstatError("variable name '%s' is of type %s and it must be str (not starting with numbers!)" % (variable_name, str(type(variable_name)))) # <<<<<<<<<<<<<< @@ -12192,11 +12235,11 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_initial_checks(int __pyx_v_i * raise PyreadstatError("variable names must be non-empty strings, not starting with numbers") */ __pyx_t_5 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 645, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 647, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); - __pyx_t_3 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Str(__pyx_v_variable_name), __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 645, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Str(__pyx_v_variable_name), __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 647, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_15 = __Pyx_PyObject_Unicode(((PyObject *)Py_TYPE(__pyx_v_variable_name))); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 645, __pyx_L1_error) + __pyx_t_15 = __Pyx_PyObject_Unicode(((PyObject *)Py_TYPE(__pyx_v_variable_name))); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 647, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __pyx_t_16[0] = __pyx_mstate_global->__pyx_kp_u_variable_name; __pyx_t_16[1] = __pyx_t_3; @@ -12204,7 +12247,7 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_initial_checks(int __pyx_v_i __pyx_t_16[3] = __pyx_t_15; __pyx_t_16[4] = __pyx_mstate_global->__pyx_kp_u_and_it_must_be_str_not_starting; __pyx_t_17 = __Pyx_PyUnicode_Join(__pyx_t_16, 5, 15 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_3) + 13 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_15) + 48, 127 | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_3) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_15)); - if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 645, __pyx_L1_error) + if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 647, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_17); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; @@ -12226,14 +12269,14 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_initial_checks(int __pyx_v_i __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0; __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 645, __pyx_L1_error) + if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 647, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); } __Pyx_Raise(__pyx_t_9, 0, 0, 0); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __PYX_ERR(0, 645, __pyx_L1_error) + __PYX_ERR(0, 647, __pyx_L1_error) - /* "pyreadstat/_readstat_writer.pyx":644 + /* "pyreadstat/_readstat_writer.pyx":646 * * for variable_name in col_names: * if type(variable_name) != str: # <<<<<<<<<<<<<< @@ -12242,18 +12285,18 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_initial_checks(int __pyx_v_i */ } - /* "pyreadstat/_readstat_writer.pyx":646 + /* "pyreadstat/_readstat_writer.pyx":648 * if type(variable_name) != str: * raise PyreadstatError("variable name '%s' is of type %s and it must be str (not starting with numbers!)" % (variable_name, str(type(variable_name)))) * if len(variable_name) == 0: # <<<<<<<<<<<<<< * raise PyreadstatError("variable names must be non-empty strings, not starting with numbers") * if not (variable_name[0].isalpha() or variable_name[0] == "_"): */ - __pyx_t_7 = PyObject_Length(__pyx_v_variable_name); if (unlikely(__pyx_t_7 == ((Py_ssize_t)-1))) __PYX_ERR(0, 646, __pyx_L1_error) + __pyx_t_7 = PyObject_Length(__pyx_v_variable_name); if (unlikely(__pyx_t_7 == ((Py_ssize_t)-1))) __PYX_ERR(0, 648, __pyx_L1_error) __pyx_t_2 = (__pyx_t_7 == 0); if (unlikely(__pyx_t_2)) { - /* "pyreadstat/_readstat_writer.pyx":647 + /* "pyreadstat/_readstat_writer.pyx":649 * raise PyreadstatError("variable name '%s' is of type %s and it must be str (not starting with numbers!)" % (variable_name, str(type(variable_name)))) * if len(variable_name) == 0: * raise PyreadstatError("variable names must be non-empty strings, not starting with numbers") # <<<<<<<<<<<<<< @@ -12261,7 +12304,7 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_initial_checks(int __pyx_v_i * raise PyreadstatError("variable name '%s' starts with an illegal (neither alphabetic nor an underscore) character: '%s' (ordinal %s)" % (variable_name, variable_name[0], ord(variable_name[0]))) */ __pyx_t_10 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_17, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 647, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_17, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 649, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_17); __pyx_t_6 = 1; #if CYTHON_UNPACK_METHODS @@ -12280,14 +12323,14 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_initial_checks(int __pyx_v_i __pyx_t_9 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_17, __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0; - if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 647, __pyx_L1_error) + if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 649, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); } __Pyx_Raise(__pyx_t_9, 0, 0, 0); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __PYX_ERR(0, 647, __pyx_L1_error) + __PYX_ERR(0, 649, __pyx_L1_error) - /* "pyreadstat/_readstat_writer.pyx":646 + /* "pyreadstat/_readstat_writer.pyx":648 * if type(variable_name) != str: * raise PyreadstatError("variable name '%s' is of type %s and it must be str (not starting with numbers!)" % (variable_name, str(type(variable_name)))) * if len(variable_name) == 0: # <<<<<<<<<<<<<< @@ -12296,14 +12339,14 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_initial_checks(int __pyx_v_i */ } - /* "pyreadstat/_readstat_writer.pyx":648 + /* "pyreadstat/_readstat_writer.pyx":650 * if len(variable_name) == 0: * raise PyreadstatError("variable names must be non-empty strings, not starting with numbers") * if not (variable_name[0].isalpha() or variable_name[0] == "_"): # <<<<<<<<<<<<<< * raise PyreadstatError("variable name '%s' starts with an illegal (neither alphabetic nor an underscore) character: '%s' (ordinal %s)" % (variable_name, variable_name[0], ord(variable_name[0]))) * if " " in variable_name: */ - __pyx_t_10 = __Pyx_GetItemInt(__pyx_v_variable_name, 0, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_OwnStrongReference); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 648, __pyx_L1_error) + __pyx_t_10 = __Pyx_GetItemInt(__pyx_v_variable_name, 0, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_OwnStrongReference); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 650, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __pyx_t_17 = __pyx_t_10; __Pyx_INCREF(__pyx_t_17); @@ -12313,26 +12356,26 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_initial_checks(int __pyx_v_i __pyx_t_9 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_isalpha, __pyx_callargs+__pyx_t_6, (1-__pyx_t_6) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_17); __pyx_t_17 = 0; __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 648, __pyx_L1_error) + if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 650, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); } - __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_9); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 648, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_9); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 650, __pyx_L1_error) __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; if (!__pyx_t_1) { } else { __pyx_t_2 = __pyx_t_1; goto __pyx_L30_bool_binop_done; } - __pyx_t_9 = __Pyx_GetItemInt(__pyx_v_variable_name, 0, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_OwnStrongReference); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 648, __pyx_L1_error) + __pyx_t_9 = __Pyx_GetItemInt(__pyx_v_variable_name, 0, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_OwnStrongReference); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 650, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); - __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_, Py_EQ)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 648, __pyx_L1_error) + __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_, Py_EQ)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 650, __pyx_L1_error) __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_2 = __pyx_t_1; __pyx_L30_bool_binop_done:; __pyx_t_1 = (!__pyx_t_2); if (unlikely(__pyx_t_1)) { - /* "pyreadstat/_readstat_writer.pyx":649 + /* "pyreadstat/_readstat_writer.pyx":651 * raise PyreadstatError("variable names must be non-empty strings, not starting with numbers") * if not (variable_name[0].isalpha() or variable_name[0] == "_"): * raise PyreadstatError("variable name '%s' starts with an illegal (neither alphabetic nor an underscore) character: '%s' (ordinal %s)" % (variable_name, variable_name[0], ord(variable_name[0]))) # <<<<<<<<<<<<<< @@ -12340,20 +12383,20 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_initial_checks(int __pyx_v_i * raise PyreadstatError("variable name '%s' contains a space, which is not allowed" % variable_name) */ __pyx_t_10 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_17, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 649, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_17, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 651, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_17); - __pyx_t_5 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Str(__pyx_v_variable_name), __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 649, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Str(__pyx_v_variable_name), __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 651, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); - __pyx_t_15 = __Pyx_GetItemInt(__pyx_v_variable_name, 0, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_OwnStrongReference); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 649, __pyx_L1_error) + __pyx_t_15 = __Pyx_GetItemInt(__pyx_v_variable_name, 0, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_OwnStrongReference); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 651, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); - __pyx_t_3 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Str(__pyx_t_15), __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 649, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Str(__pyx_t_15), __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 651, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; - __pyx_t_15 = __Pyx_GetItemInt(__pyx_v_variable_name, 0, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_OwnStrongReference); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 649, __pyx_L1_error) + __pyx_t_15 = __Pyx_GetItemInt(__pyx_v_variable_name, 0, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_OwnStrongReference); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 651, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); - __pyx_t_18 = __Pyx_PyObject_Ord(__pyx_t_15); if (unlikely(__pyx_t_18 == ((long)(long)(Py_UCS4)-1))) __PYX_ERR(0, 649, __pyx_L1_error) + __pyx_t_18 = __Pyx_PyObject_Ord(__pyx_t_15); if (unlikely(__pyx_t_18 == ((long)(long)(Py_UCS4)-1))) __PYX_ERR(0, 651, __pyx_L1_error) __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; - __pyx_t_15 = __Pyx_PyUnicode_From_long(__pyx_t_18, 0, ' ', 'd'); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 649, __pyx_L1_error) + __pyx_t_15 = __Pyx_PyUnicode_From_long(__pyx_t_18, 0, ' ', 'd'); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 651, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __pyx_t_19[0] = __pyx_mstate_global->__pyx_kp_u_variable_name; __pyx_t_19[1] = __pyx_t_5; @@ -12363,7 +12406,7 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_initial_checks(int __pyx_v_i __pyx_t_19[5] = __pyx_t_15; __pyx_t_19[6] = __pyx_mstate_global->__pyx_kp_u__2; __pyx_t_20 = __Pyx_PyUnicode_Join(__pyx_t_19, 7, 15 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_5) + 76 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_3) + 11 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_15) + 1, 127 | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_5) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_3)); - if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 649, __pyx_L1_error) + if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 651, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_20); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; @@ -12386,14 +12429,14 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_initial_checks(int __pyx_v_i __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0; __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0; - if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 649, __pyx_L1_error) + if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 651, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); } __Pyx_Raise(__pyx_t_9, 0, 0, 0); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __PYX_ERR(0, 649, __pyx_L1_error) + __PYX_ERR(0, 651, __pyx_L1_error) - /* "pyreadstat/_readstat_writer.pyx":648 + /* "pyreadstat/_readstat_writer.pyx":650 * if len(variable_name) == 0: * raise PyreadstatError("variable names must be non-empty strings, not starting with numbers") * if not (variable_name[0].isalpha() or variable_name[0] == "_"): # <<<<<<<<<<<<<< @@ -12402,17 +12445,17 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_initial_checks(int __pyx_v_i */ } - /* "pyreadstat/_readstat_writer.pyx":650 + /* "pyreadstat/_readstat_writer.pyx":652 * if not (variable_name[0].isalpha() or variable_name[0] == "_"): * raise PyreadstatError("variable name '%s' starts with an illegal (neither alphabetic nor an underscore) character: '%s' (ordinal %s)" % (variable_name, variable_name[0], ord(variable_name[0]))) * if " " in variable_name: # <<<<<<<<<<<<<< * raise PyreadstatError("variable name '%s' contains a space, which is not allowed" % variable_name) * */ - __pyx_t_1 = (__Pyx_PySequence_ContainsTF(__pyx_mstate_global->__pyx_kp_u__3, __pyx_v_variable_name, Py_EQ)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 650, __pyx_L1_error) + __pyx_t_1 = (__Pyx_PySequence_ContainsTF(__pyx_mstate_global->__pyx_kp_u__3, __pyx_v_variable_name, Py_EQ)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 652, __pyx_L1_error) if (unlikely(__pyx_t_1)) { - /* "pyreadstat/_readstat_writer.pyx":651 + /* "pyreadstat/_readstat_writer.pyx":653 * raise PyreadstatError("variable name '%s' starts with an illegal (neither alphabetic nor an underscore) character: '%s' (ordinal %s)" % (variable_name, variable_name[0], ord(variable_name[0]))) * if " " in variable_name: * raise PyreadstatError("variable name '%s' contains a space, which is not allowed" % variable_name) # <<<<<<<<<<<<<< @@ -12420,9 +12463,9 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_initial_checks(int __pyx_v_i * dirname = os.path.dirname(filename_bytes) */ __pyx_t_17 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_20, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 651, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_20, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 653, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_20); - __pyx_t_10 = __Pyx_PyUnicode_FormatSafe(__pyx_mstate_global->__pyx_kp_u_variable_name_s_contains_a_space, __pyx_v_variable_name); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 651, __pyx_L1_error) + __pyx_t_10 = __Pyx_PyUnicode_FormatSafe(__pyx_mstate_global->__pyx_kp_u_variable_name_s_contains_a_space, __pyx_v_variable_name); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 653, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __pyx_t_6 = 1; #if CYTHON_UNPACK_METHODS @@ -12442,14 +12485,14 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_initial_checks(int __pyx_v_i __Pyx_XDECREF(__pyx_t_17); __pyx_t_17 = 0; __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0; - if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 651, __pyx_L1_error) + if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 653, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); } __Pyx_Raise(__pyx_t_9, 0, 0, 0); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __PYX_ERR(0, 651, __pyx_L1_error) + __PYX_ERR(0, 653, __pyx_L1_error) - /* "pyreadstat/_readstat_writer.pyx":650 + /* "pyreadstat/_readstat_writer.pyx":652 * if not (variable_name[0].isalpha() or variable_name[0] == "_"): * raise PyreadstatError("variable name '%s' starts with an illegal (neither alphabetic nor an underscore) character: '%s' (ordinal %s)" % (variable_name, variable_name[0], ord(variable_name[0]))) * if " " in variable_name: # <<<<<<<<<<<<<< @@ -12458,7 +12501,7 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_initial_checks(int __pyx_v_i */ } - /* "pyreadstat/_readstat_writer.pyx":643 + /* "pyreadstat/_readstat_writer.pyx":645 * raise PyreadstatError(msg) * * for variable_name in col_names: # <<<<<<<<<<<<<< @@ -12468,16 +12511,16 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_initial_checks(int __pyx_v_i } __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - /* "pyreadstat/_readstat_writer.pyx":653 + /* "pyreadstat/_readstat_writer.pyx":655 * raise PyreadstatError("variable name '%s' contains a space, which is not allowed" % variable_name) * * dirname = os.path.dirname(filename_bytes) # <<<<<<<<<<<<<< * if dirname and not os.path.isdir(dirname): * raise PyreadstatError(f"the destination folder {dirname} does not exist!") */ - __Pyx_GetModuleGlobalName(__pyx_t_20, __pyx_mstate_global->__pyx_n_u_os); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 653, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_20, __pyx_mstate_global->__pyx_n_u_os); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 655, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_20); - __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_20, __pyx_mstate_global->__pyx_n_u_path); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 653, __pyx_L1_error) + __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_20, __pyx_mstate_global->__pyx_n_u_path); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 655, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0; __pyx_t_9 = __pyx_t_10; @@ -12488,28 +12531,28 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_initial_checks(int __pyx_v_i __pyx_t_4 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_dirname, __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 653, __pyx_L1_error) + if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 655, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); } __pyx_v_dirname = __pyx_t_4; __pyx_t_4 = 0; - /* "pyreadstat/_readstat_writer.pyx":654 + /* "pyreadstat/_readstat_writer.pyx":656 * * dirname = os.path.dirname(filename_bytes) * if dirname and not os.path.isdir(dirname): # <<<<<<<<<<<<<< * raise PyreadstatError(f"the destination folder {dirname} does not exist!") * */ - __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_dirname); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 654, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_dirname); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 656, __pyx_L1_error) if (__pyx_t_2) { } else { __pyx_t_1 = __pyx_t_2; goto __pyx_L35_bool_binop_done; } - __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_os); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 654, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_os); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 656, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); - __pyx_t_20 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_path); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 654, __pyx_L1_error) + __pyx_t_20 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_path); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 656, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_20); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_10 = __pyx_t_20; @@ -12520,17 +12563,17 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_initial_checks(int __pyx_v_i __pyx_t_4 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_isdir, __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 654, __pyx_L1_error) + if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 656, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); } - __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 654, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 656, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_21 = (!__pyx_t_2); __pyx_t_1 = __pyx_t_21; __pyx_L35_bool_binop_done:; if (unlikely(__pyx_t_1)) { - /* "pyreadstat/_readstat_writer.pyx":655 + /* "pyreadstat/_readstat_writer.pyx":657 * dirname = os.path.dirname(filename_bytes) * if dirname and not os.path.isdir(dirname): * raise PyreadstatError(f"the destination folder {dirname} does not exist!") # <<<<<<<<<<<<<< @@ -12538,15 +12581,15 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_initial_checks(int __pyx_v_i * cdef bytes filepath_to_bytes(object filename_path): */ __pyx_t_20 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 655, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 657, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); - __pyx_t_9 = __Pyx_PyObject_FormatSimple(__pyx_v_dirname, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 655, __pyx_L1_error) + __pyx_t_9 = __Pyx_PyObject_FormatSimple(__pyx_v_dirname, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 657, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_22[0] = __pyx_mstate_global->__pyx_kp_u_the_destination_folder; __pyx_t_22[1] = __pyx_t_9; __pyx_t_22[2] = __pyx_mstate_global->__pyx_kp_u_does_not_exist; __pyx_t_17 = __Pyx_PyUnicode_Join(__pyx_t_22, 3, 23 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_9) + 16, 127 | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_9)); - if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 655, __pyx_L1_error) + if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 657, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_17); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_6 = 1; @@ -12567,14 +12610,14 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_initial_checks(int __pyx_v_i __Pyx_XDECREF(__pyx_t_20); __pyx_t_20 = 0; __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0; __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 655, __pyx_L1_error) + if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 657, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); } __Pyx_Raise(__pyx_t_4, 0, 0, 0); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __PYX_ERR(0, 655, __pyx_L1_error) + __PYX_ERR(0, 657, __pyx_L1_error) - /* "pyreadstat/_readstat_writer.pyx":654 + /* "pyreadstat/_readstat_writer.pyx":656 * * dirname = os.path.dirname(filename_bytes) * if dirname and not os.path.isdir(dirname): # <<<<<<<<<<<<<< @@ -12583,7 +12626,7 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_initial_checks(int __pyx_v_i */ } - /* "pyreadstat/_readstat_writer.pyx":607 + /* "pyreadstat/_readstat_writer.pyx":609 * return close(fd) * * cdef void initial_checks(bint is_pandas, bint is_polars, dict variable_value_labels, dict missing_user_values, # <<<<<<<<<<<<<< @@ -12616,7 +12659,7 @@ static void __pyx_f_10pyreadstat_16_readstat_writer_initial_checks(int __pyx_v_i __Pyx_RefNannyFinishContext(); } -/* "pyreadstat/_readstat_writer.pyx":657 +/* "pyreadstat/_readstat_writer.pyx":659 * raise PyreadstatError(f"the destination folder {dirname} does not exist!") * * cdef bytes filepath_to_bytes(object filename_path): # <<<<<<<<<<<<<< @@ -12649,20 +12692,20 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_filepath_to_bytes(PyObj int __pyx_clineno = 0; __Pyx_RefNannySetupContext("filepath_to_bytes", 0); - /* "pyreadstat/_readstat_writer.pyx":661 + /* "pyreadstat/_readstat_writer.pyx":663 * transforms an object with the path to the filename to bytes * """ * if hasattr(os, 'fsencode'): # <<<<<<<<<<<<<< * try: * filename_bytes = os.fsencode(filename_path) */ - __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_os); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 661, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_os); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 663, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = __Pyx_HasAttr(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_fsencode); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(0, 661, __pyx_L1_error) + __pyx_t_2 = __Pyx_HasAttr(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_fsencode); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(0, 663, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_2) { - /* "pyreadstat/_readstat_writer.pyx":662 + /* "pyreadstat/_readstat_writer.pyx":664 * """ * if hasattr(os, 'fsencode'): * try: # <<<<<<<<<<<<<< @@ -12678,7 +12721,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_filepath_to_bytes(PyObj __Pyx_XGOTREF(__pyx_t_5); /*try:*/ { - /* "pyreadstat/_readstat_writer.pyx":663 + /* "pyreadstat/_readstat_writer.pyx":665 * if hasattr(os, 'fsencode'): * try: * filename_bytes = os.fsencode(filename_path) # <<<<<<<<<<<<<< @@ -12686,9 +12729,9 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_filepath_to_bytes(PyObj * warnings.warn("file path could not be encoded with %s which is set as your system encoding, trying to encode it as utf-8. Please set your system encoding correctly." % sys.getfilesystemencoding()) */ __pyx_t_6 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_mstate_global->__pyx_n_u_os); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 663, __pyx_L4_error) + __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_mstate_global->__pyx_n_u_os); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 665, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_7); - __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_mstate_global->__pyx_n_u_fsencode); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 663, __pyx_L4_error) + __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_mstate_global->__pyx_n_u_fsencode); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 665, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_9 = 1; @@ -12708,13 +12751,13 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_filepath_to_bytes(PyObj __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_8, __pyx_callargs+__pyx_t_9, (2-__pyx_t_9) | (__pyx_t_9*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 663, __pyx_L4_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 665, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_1); } __pyx_v_filename_bytes = __pyx_t_1; __pyx_t_1 = 0; - /* "pyreadstat/_readstat_writer.pyx":662 + /* "pyreadstat/_readstat_writer.pyx":664 * """ * if hasattr(os, 'fsencode'): * try: # <<<<<<<<<<<<<< @@ -12732,7 +12775,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_filepath_to_bytes(PyObj __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; - /* "pyreadstat/_readstat_writer.pyx":664 + /* "pyreadstat/_readstat_writer.pyx":666 * try: * filename_bytes = os.fsencode(filename_path) * except UnicodeError: # <<<<<<<<<<<<<< @@ -12742,12 +12785,12 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_filepath_to_bytes(PyObj __pyx_t_10 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(((PyTypeObject*)PyExc_UnicodeError)))); if (__pyx_t_10) { __Pyx_AddTraceback("pyreadstat._readstat_writer.filepath_to_bytes", __pyx_clineno, __pyx_lineno, __pyx_filename); - if (__Pyx_GetException(&__pyx_t_1, &__pyx_t_8, &__pyx_t_6) < 0) __PYX_ERR(0, 664, __pyx_L6_except_error) + if (__Pyx_GetException(&__pyx_t_1, &__pyx_t_8, &__pyx_t_6) < 0) __PYX_ERR(0, 666, __pyx_L6_except_error) __Pyx_XGOTREF(__pyx_t_1); __Pyx_XGOTREF(__pyx_t_8); __Pyx_XGOTREF(__pyx_t_6); - /* "pyreadstat/_readstat_writer.pyx":665 + /* "pyreadstat/_readstat_writer.pyx":667 * filename_bytes = os.fsencode(filename_path) * except UnicodeError: * warnings.warn("file path could not be encoded with %s which is set as your system encoding, trying to encode it as utf-8. Please set your system encoding correctly." % sys.getfilesystemencoding()) # <<<<<<<<<<<<<< @@ -12755,15 +12798,15 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_filepath_to_bytes(PyObj * else: */ __pyx_t_11 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_12, __pyx_mstate_global->__pyx_n_u_warnings); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 665, __pyx_L6_except_error) + __Pyx_GetModuleGlobalName(__pyx_t_12, __pyx_mstate_global->__pyx_n_u_warnings); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 667, __pyx_L6_except_error) __Pyx_GOTREF(__pyx_t_12); - __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_t_12, __pyx_mstate_global->__pyx_n_u_warn); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 665, __pyx_L6_except_error) + __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_t_12, __pyx_mstate_global->__pyx_n_u_warn); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 667, __pyx_L6_except_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __pyx_t_14 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_15, __pyx_mstate_global->__pyx_n_u_sys); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 665, __pyx_L6_except_error) + __Pyx_GetModuleGlobalName(__pyx_t_15, __pyx_mstate_global->__pyx_n_u_sys); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 667, __pyx_L6_except_error) __Pyx_GOTREF(__pyx_t_15); - __pyx_t_16 = __Pyx_PyObject_GetAttrStr(__pyx_t_15, __pyx_mstate_global->__pyx_n_u_getfilesystemencoding); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 665, __pyx_L6_except_error) + __pyx_t_16 = __Pyx_PyObject_GetAttrStr(__pyx_t_15, __pyx_mstate_global->__pyx_n_u_getfilesystemencoding); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 667, __pyx_L6_except_error) __Pyx_GOTREF(__pyx_t_16); __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; __pyx_t_9 = 1; @@ -12783,10 +12826,10 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_filepath_to_bytes(PyObj __pyx_t_12 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_16, __pyx_callargs+__pyx_t_9, (1-__pyx_t_9) | (__pyx_t_9*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0; __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; - if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 665, __pyx_L6_except_error) + if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 667, __pyx_L6_except_error) __Pyx_GOTREF(__pyx_t_12); } - __pyx_t_16 = __Pyx_PyUnicode_FormatSafe(__pyx_mstate_global->__pyx_kp_u_file_path_could_not_be_encoded_w, __pyx_t_12); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 665, __pyx_L6_except_error) + __pyx_t_16 = __Pyx_PyUnicode_FormatSafe(__pyx_mstate_global->__pyx_kp_u_file_path_could_not_be_encoded_w, __pyx_t_12); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 667, __pyx_L6_except_error) __Pyx_GOTREF(__pyx_t_16); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __pyx_t_9 = 1; @@ -12807,12 +12850,12 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_filepath_to_bytes(PyObj __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0; __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; - if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 665, __pyx_L6_except_error) + if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 667, __pyx_L6_except_error) __Pyx_GOTREF(__pyx_t_7); } __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - /* "pyreadstat/_readstat_writer.pyx":666 + /* "pyreadstat/_readstat_writer.pyx":668 * except UnicodeError: * warnings.warn("file path could not be encoded with %s which is set as your system encoding, trying to encode it as utf-8. Please set your system encoding correctly." % sys.getfilesystemencoding()) * filename_bytes = os.fsdecode(filename_path).encode("utf-8", "surrogateescape") # <<<<<<<<<<<<<< @@ -12820,9 +12863,9 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_filepath_to_bytes(PyObj * if type(filename_path) == str: */ __pyx_t_13 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_16, __pyx_mstate_global->__pyx_n_u_os); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 666, __pyx_L6_except_error) + __Pyx_GetModuleGlobalName(__pyx_t_16, __pyx_mstate_global->__pyx_n_u_os); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 668, __pyx_L6_except_error) __Pyx_GOTREF(__pyx_t_16); - __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_16, __pyx_mstate_global->__pyx_n_u_fsdecode); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 666, __pyx_L6_except_error) + __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_16, __pyx_mstate_global->__pyx_n_u_fsdecode); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 668, __pyx_L6_except_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; __pyx_t_9 = 1; @@ -12842,13 +12885,13 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_filepath_to_bytes(PyObj __pyx_t_7 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_11, __pyx_callargs+__pyx_t_9, (2-__pyx_t_9) | (__pyx_t_9*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0; __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 666, __pyx_L6_except_error) + if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 668, __pyx_L6_except_error) __Pyx_GOTREF(__pyx_t_7); } - __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_mstate_global->__pyx_n_u_encode); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 666, __pyx_L6_except_error) + __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_mstate_global->__pyx_n_u_encode); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 668, __pyx_L6_except_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_11, __pyx_mstate_global->__pyx_tuple[0], NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 666, __pyx_L6_except_error) + __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_11, __pyx_mstate_global->__pyx_tuple[0], NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 668, __pyx_L6_except_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __Pyx_XDECREF_SET(__pyx_v_filename_bytes, __pyx_t_7); @@ -12860,7 +12903,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_filepath_to_bytes(PyObj } goto __pyx_L6_except_error; - /* "pyreadstat/_readstat_writer.pyx":662 + /* "pyreadstat/_readstat_writer.pyx":664 * """ * if hasattr(os, 'fsencode'): * try: # <<<<<<<<<<<<<< @@ -12881,7 +12924,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_filepath_to_bytes(PyObj __pyx_L9_try_end:; } - /* "pyreadstat/_readstat_writer.pyx":661 + /* "pyreadstat/_readstat_writer.pyx":663 * transforms an object with the path to the filename to bytes * """ * if hasattr(os, 'fsencode'): # <<<<<<<<<<<<<< @@ -12891,7 +12934,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_filepath_to_bytes(PyObj goto __pyx_L3; } - /* "pyreadstat/_readstat_writer.pyx":668 + /* "pyreadstat/_readstat_writer.pyx":670 * filename_bytes = os.fsdecode(filename_path).encode("utf-8", "surrogateescape") * else: * if type(filename_path) == str: # <<<<<<<<<<<<<< @@ -12899,12 +12942,12 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_filepath_to_bytes(PyObj * elif type(filename_path) == bytes: */ /*else*/ { - __pyx_t_6 = PyObject_RichCompare(((PyObject *)Py_TYPE(__pyx_v_filename_path)), ((PyObject *)(&PyUnicode_Type)), Py_EQ); __Pyx_XGOTREF(__pyx_t_6); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 668, __pyx_L1_error) - __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 668, __pyx_L1_error) + __pyx_t_6 = PyObject_RichCompare(((PyObject *)Py_TYPE(__pyx_v_filename_path)), ((PyObject *)(&PyUnicode_Type)), Py_EQ); __Pyx_XGOTREF(__pyx_t_6); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 670, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 670, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (__pyx_t_2) { - /* "pyreadstat/_readstat_writer.pyx":669 + /* "pyreadstat/_readstat_writer.pyx":671 * else: * if type(filename_path) == str: * filename_bytes = filename_path.encode('utf-8') # <<<<<<<<<<<<<< @@ -12918,13 +12961,13 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_filepath_to_bytes(PyObj PyObject *__pyx_callargs[2] = {__pyx_t_8, __pyx_mstate_global->__pyx_kp_u_utf_8}; __pyx_t_6 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_encode, __pyx_callargs+__pyx_t_9, (2-__pyx_t_9) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; - if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 669, __pyx_L1_error) + if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 671, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); } __pyx_v_filename_bytes = __pyx_t_6; __pyx_t_6 = 0; - /* "pyreadstat/_readstat_writer.pyx":668 + /* "pyreadstat/_readstat_writer.pyx":670 * filename_bytes = os.fsdecode(filename_path).encode("utf-8", "surrogateescape") * else: * if type(filename_path) == str: # <<<<<<<<<<<<<< @@ -12934,19 +12977,19 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_filepath_to_bytes(PyObj goto __pyx_L12; } - /* "pyreadstat/_readstat_writer.pyx":670 + /* "pyreadstat/_readstat_writer.pyx":672 * if type(filename_path) == str: * filename_bytes = filename_path.encode('utf-8') * elif type(filename_path) == bytes: # <<<<<<<<<<<<<< * filename_bytes = filename_path * else: */ - __pyx_t_6 = PyObject_RichCompare(((PyObject *)Py_TYPE(__pyx_v_filename_path)), ((PyObject *)(&PyBytes_Type)), Py_EQ); __Pyx_XGOTREF(__pyx_t_6); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 670, __pyx_L1_error) - __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 670, __pyx_L1_error) + __pyx_t_6 = PyObject_RichCompare(((PyObject *)Py_TYPE(__pyx_v_filename_path)), ((PyObject *)(&PyBytes_Type)), Py_EQ); __Pyx_XGOTREF(__pyx_t_6); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 672, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 672, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (likely(__pyx_t_2)) { - /* "pyreadstat/_readstat_writer.pyx":671 + /* "pyreadstat/_readstat_writer.pyx":673 * filename_bytes = filename_path.encode('utf-8') * elif type(filename_path) == bytes: * filename_bytes = filename_path # <<<<<<<<<<<<<< @@ -12956,7 +12999,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_filepath_to_bytes(PyObj __Pyx_INCREF(__pyx_v_filename_path); __pyx_v_filename_bytes = __pyx_v_filename_path; - /* "pyreadstat/_readstat_writer.pyx":670 + /* "pyreadstat/_readstat_writer.pyx":672 * if type(filename_path) == str: * filename_bytes = filename_path.encode('utf-8') * elif type(filename_path) == bytes: # <<<<<<<<<<<<<< @@ -12966,7 +13009,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_filepath_to_bytes(PyObj goto __pyx_L12; } - /* "pyreadstat/_readstat_writer.pyx":673 + /* "pyreadstat/_readstat_writer.pyx":675 * filename_bytes = filename_path * else: * raise PyreadstatError("path must be either str or bytes") # <<<<<<<<<<<<<< @@ -12975,7 +13018,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_filepath_to_bytes(PyObj */ /*else*/ { __pyx_t_8 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 673, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 675, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_9 = 1; #if CYTHON_UNPACK_METHODS @@ -12994,18 +13037,18 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_filepath_to_bytes(PyObj __pyx_t_6 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_1, __pyx_callargs+__pyx_t_9, (2-__pyx_t_9) | (__pyx_t_9*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 673, __pyx_L1_error) + if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 675, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); } __Pyx_Raise(__pyx_t_6, 0, 0, 0); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __PYX_ERR(0, 673, __pyx_L1_error) + __PYX_ERR(0, 675, __pyx_L1_error) } __pyx_L12:; } __pyx_L3:; - /* "pyreadstat/_readstat_writer.pyx":674 + /* "pyreadstat/_readstat_writer.pyx":676 * else: * raise PyreadstatError("path must be either str or bytes") * return filename_bytes # <<<<<<<<<<<<<< @@ -13015,12 +13058,12 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_filepath_to_bytes(PyObj __Pyx_XDECREF(__pyx_r); __pyx_t_6 = __pyx_v_filename_bytes; __Pyx_INCREF(__pyx_t_6); - if (!(likely(PyBytes_CheckExact(__pyx_t_6))||((__pyx_t_6) == Py_None) || __Pyx_RaiseUnexpectedTypeError("bytes", __pyx_t_6))) __PYX_ERR(0, 674, __pyx_L1_error) + if (!(likely(PyBytes_CheckExact(__pyx_t_6))||((__pyx_t_6) == Py_None) || __Pyx_RaiseUnexpectedTypeError("bytes", __pyx_t_6))) __PYX_ERR(0, 676, __pyx_L1_error) __pyx_r = ((PyObject*)__pyx_t_6); __pyx_t_6 = 0; goto __pyx_L0; - /* "pyreadstat/_readstat_writer.pyx":657 + /* "pyreadstat/_readstat_writer.pyx":659 * raise PyreadstatError(f"the destination folder {dirname} does not exist!") * * cdef bytes filepath_to_bytes(object filename_path): # <<<<<<<<<<<<<< @@ -13049,7 +13092,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_filepath_to_bytes(PyObj return __pyx_r; } -/* "pyreadstat/_readstat_writer.pyx":677 +/* "pyreadstat/_readstat_writer.pyx":679 * * * cdef int run_write(df, object filename_path, dst_file_format file_format, str file_label, object column_labels, # <<<<<<<<<<<<<< @@ -13167,7 +13210,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d __Pyx_INCREF(__pyx_v_column_labels); __Pyx_INCREF(__pyx_v_note); - /* "pyreadstat/_readstat_writer.pyx":688 + /* "pyreadstat/_readstat_writer.pyx":690 * * cdef object natnamespace * cdef object pd = None # <<<<<<<<<<<<<< @@ -13177,28 +13220,28 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d __Pyx_INCREF(Py_None); __pyx_v_pd = Py_None; - /* "pyreadstat/_readstat_writer.pyx":693 + /* "pyreadstat/_readstat_writer.pyx":695 * cdef list col_names * * filename_bytes = filepath_to_bytes(filename_path) # <<<<<<<<<<<<<< * filename_bytes = os.path.expanduser(filename_bytes) * */ - __pyx_t_1 = __pyx_f_10pyreadstat_16_readstat_writer_filepath_to_bytes(__pyx_v_filename_path); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 693, __pyx_L1_error) + __pyx_t_1 = __pyx_f_10pyreadstat_16_readstat_writer_filepath_to_bytes(__pyx_v_filename_path); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 695, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_filename_bytes = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - /* "pyreadstat/_readstat_writer.pyx":694 + /* "pyreadstat/_readstat_writer.pyx":696 * * filename_bytes = filepath_to_bytes(filename_path) * filename_bytes = os.path.expanduser(filename_bytes) # <<<<<<<<<<<<<< * * df = nw.from_native(df, eager_only=True) */ - __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_os); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 694, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_os); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 696, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_path); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 694, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_path); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 696, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_2 = __pyx_t_4; @@ -13209,14 +13252,14 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_expanduser, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 694, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 696, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } - if (!(likely(PyBytes_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("bytes", __pyx_t_1))) __PYX_ERR(0, 694, __pyx_L1_error) + if (!(likely(PyBytes_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("bytes", __pyx_t_1))) __PYX_ERR(0, 696, __pyx_L1_error) __Pyx_DECREF_SET(__pyx_v_filename_bytes, ((PyObject*)__pyx_t_1)); __pyx_t_1 = 0; - /* "pyreadstat/_readstat_writer.pyx":696 + /* "pyreadstat/_readstat_writer.pyx":698 * filename_bytes = os.path.expanduser(filename_bytes) * * df = nw.from_native(df, eager_only=True) # <<<<<<<<<<<<<< @@ -13224,9 +13267,9 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d * is_pandas = df.implementation.is_pandas() */ __pyx_t_4 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_nw); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 696, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_nw); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 698, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_from_native); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 696, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_from_native); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 698, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_5 = 1; @@ -13243,20 +13286,20 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d #endif { PyObject *__pyx_callargs[2 + ((CYTHON_VECTORCALL) ? 1 : 0)] = {__pyx_t_4, __pyx_v_df}; - __pyx_t_2 = __Pyx_MakeVectorcallBuilderKwds(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 696, __pyx_L1_error) + __pyx_t_2 = __Pyx_MakeVectorcallBuilderKwds(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 698, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - if (__Pyx_VectorcallBuilder_AddArg(__pyx_mstate_global->__pyx_n_u_eager_only, Py_True, __pyx_t_2, __pyx_callargs+2, 0) < (0)) __PYX_ERR(0, 696, __pyx_L1_error) + if (__Pyx_VectorcallBuilder_AddArg(__pyx_mstate_global->__pyx_n_u_eager_only, Py_True, __pyx_t_2, __pyx_callargs+2, 0) < (0)) __PYX_ERR(0, 698, __pyx_L1_error) __pyx_t_1 = __Pyx_Object_Vectorcall_CallFromBuilder((PyObject*)__pyx_t_3, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET), __pyx_t_2); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 696, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 698, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } __Pyx_DECREF_SET(__pyx_v_df, __pyx_t_1); __pyx_t_1 = 0; - /* "pyreadstat/_readstat_writer.pyx":697 + /* "pyreadstat/_readstat_writer.pyx":699 * * df = nw.from_native(df, eager_only=True) * natnamespace = nw.get_native_namespace(df) # <<<<<<<<<<<<<< @@ -13264,9 +13307,9 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d * is_polars = df.implementation.is_polars() */ __pyx_t_3 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_nw); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 697, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_nw); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 699, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_get_native_namespace); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 697, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_get_native_namespace); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 699, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_5 = 1; @@ -13286,20 +13329,20 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 697, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 699, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } __pyx_v_natnamespace = __pyx_t_1; __pyx_t_1 = 0; - /* "pyreadstat/_readstat_writer.pyx":698 + /* "pyreadstat/_readstat_writer.pyx":700 * df = nw.from_native(df, eager_only=True) * natnamespace = nw.get_native_namespace(df) * is_pandas = df.implementation.is_pandas() # <<<<<<<<<<<<<< * is_polars = df.implementation.is_polars() * col_names = df.columns */ - __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_df, __pyx_mstate_global->__pyx_n_u_implementation); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 698, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_df, __pyx_mstate_global->__pyx_n_u_implementation); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 700, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = __pyx_t_3; __Pyx_INCREF(__pyx_t_4); @@ -13309,21 +13352,21 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_is_pandas, __pyx_callargs+__pyx_t_5, (1-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 698, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 700, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } - __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_6 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 698, __pyx_L1_error) + __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_6 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 700, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_v_is_pandas = __pyx_t_6; - /* "pyreadstat/_readstat_writer.pyx":699 + /* "pyreadstat/_readstat_writer.pyx":701 * natnamespace = nw.get_native_namespace(df) * is_pandas = df.implementation.is_pandas() * is_polars = df.implementation.is_polars() # <<<<<<<<<<<<<< * col_names = df.columns * if is_pandas: */ - __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_df, __pyx_mstate_global->__pyx_n_u_implementation); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 699, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_df, __pyx_mstate_global->__pyx_n_u_implementation); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 701, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_3 = __pyx_t_4; __Pyx_INCREF(__pyx_t_3); @@ -13333,27 +13376,27 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_is_polars, __pyx_callargs+__pyx_t_5, (1-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 699, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 701, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } - __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_6 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 699, __pyx_L1_error) + __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_6 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 701, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_v_is_polars = __pyx_t_6; - /* "pyreadstat/_readstat_writer.pyx":700 + /* "pyreadstat/_readstat_writer.pyx":702 * is_pandas = df.implementation.is_pandas() * is_polars = df.implementation.is_polars() * col_names = df.columns # <<<<<<<<<<<<<< * if is_pandas: * pd = natnamespace */ - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_df, __pyx_mstate_global->__pyx_n_u_columns); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 700, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_df, __pyx_mstate_global->__pyx_n_u_columns); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 702, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - if (!(likely(PyList_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("list", __pyx_t_1))) __PYX_ERR(0, 700, __pyx_L1_error) + if (!(likely(PyList_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("list", __pyx_t_1))) __PYX_ERR(0, 702, __pyx_L1_error) __pyx_v_col_names = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - /* "pyreadstat/_readstat_writer.pyx":701 + /* "pyreadstat/_readstat_writer.pyx":703 * is_polars = df.implementation.is_polars() * col_names = df.columns * if is_pandas: # <<<<<<<<<<<<<< @@ -13362,7 +13405,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d */ if (__pyx_v_is_pandas) { - /* "pyreadstat/_readstat_writer.pyx":702 + /* "pyreadstat/_readstat_writer.pyx":704 * col_names = df.columns * if is_pandas: * pd = natnamespace # <<<<<<<<<<<<<< @@ -13372,7 +13415,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d __Pyx_INCREF(__pyx_v_natnamespace); __Pyx_DECREF_SET(__pyx_v_pd, __pyx_v_natnamespace); - /* "pyreadstat/_readstat_writer.pyx":701 + /* "pyreadstat/_readstat_writer.pyx":703 * is_polars = df.implementation.is_polars() * col_names = df.columns * if is_pandas: # <<<<<<<<<<<<<< @@ -13381,16 +13424,16 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d */ } - /* "pyreadstat/_readstat_writer.pyx":704 + /* "pyreadstat/_readstat_writer.pyx":706 * pd = natnamespace * * initial_checks(is_pandas, is_polars, variable_value_labels, missing_user_values, file_format, # <<<<<<<<<<<<<< * col_names, filename_bytes) * */ - __pyx_f_10pyreadstat_16_readstat_writer_initial_checks(__pyx_v_is_pandas, __pyx_v_is_polars, __pyx_v_variable_value_labels, __pyx_v_missing_user_values, __pyx_v_file_format, __pyx_v_col_names, __pyx_v_filename_bytes); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 704, __pyx_L1_error) + __pyx_f_10pyreadstat_16_readstat_writer_initial_checks(__pyx_v_is_pandas, __pyx_v_is_polars, __pyx_v_variable_value_labels, __pyx_v_missing_user_values, __pyx_v_file_format, __pyx_v_col_names, __pyx_v_filename_bytes); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 706, __pyx_L1_error) - /* "pyreadstat/_readstat_writer.pyx":715 + /* "pyreadstat/_readstat_writer.pyx":717 * cdef bytes file_label_bytes * cdef char *file_labl * cdef int dta_str_max_len = 0 # <<<<<<<<<<<<<< @@ -13399,7 +13442,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d */ __pyx_v_dta_str_max_len = 0; - /* "pyreadstat/_readstat_writer.pyx":718 + /* "pyreadstat/_readstat_writer.pyx":720 * * * if file_format == FILE_FORMAT_POR: # <<<<<<<<<<<<<< @@ -13409,18 +13452,18 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d __pyx_t_6 = (__pyx_v_file_format == __pyx_e_10pyreadstat_16_readstat_writer_FILE_FORMAT_POR); if (__pyx_t_6) { - /* "pyreadstat/_readstat_writer.pyx":719 + /* "pyreadstat/_readstat_writer.pyx":721 * * if file_format == FILE_FORMAT_POR: * col_names = [x.upper() for x in col_names] # <<<<<<<<<<<<<< * * if file_format == FILE_FORMAT_DTA: */ - __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 719, __pyx_L1_error) + __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 721, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (unlikely(__pyx_v_col_names == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable"); - __PYX_ERR(0, 719, __pyx_L1_error) + __PYX_ERR(0, 721, __pyx_L1_error) } __pyx_t_4 = __pyx_v_col_names; __Pyx_INCREF(__pyx_t_4); __pyx_t_7 = 0; @@ -13428,13 +13471,13 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d { Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_4); #if !CYTHON_ASSUME_SAFE_SIZE - if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 719, __pyx_L1_error) + if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 721, __pyx_L1_error) #endif if (__pyx_t_7 >= __pyx_temp) break; } __pyx_t_3 = __Pyx_PyList_GetItemRefFast(__pyx_t_4, __pyx_t_7, __Pyx_ReferenceSharing_OwnStrongReference); ++__pyx_t_7; - if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 719, __pyx_L1_error) + if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 721, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_3); __pyx_t_3 = 0; @@ -13445,17 +13488,17 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL}; __pyx_t_3 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_upper, __pyx_callargs+__pyx_t_5, (1-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 719, __pyx_L1_error) + if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 721, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); } - if (unlikely(__Pyx_ListComp_Append(__pyx_t_1, (PyObject*)__pyx_t_3))) __PYX_ERR(0, 719, __pyx_L1_error) + if (unlikely(__Pyx_ListComp_Append(__pyx_t_1, (PyObject*)__pyx_t_3))) __PYX_ERR(0, 721, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF_SET(__pyx_v_col_names, ((PyObject*)__pyx_t_1)); __pyx_t_1 = 0; - /* "pyreadstat/_readstat_writer.pyx":718 + /* "pyreadstat/_readstat_writer.pyx":720 * * * if file_format == FILE_FORMAT_POR: # <<<<<<<<<<<<<< @@ -13464,7 +13507,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d */ } - /* "pyreadstat/_readstat_writer.pyx":721 + /* "pyreadstat/_readstat_writer.pyx":723 * col_names = [x.upper() for x in col_names] * * if file_format == FILE_FORMAT_DTA: # <<<<<<<<<<<<<< @@ -13474,7 +13517,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d __pyx_t_6 = (__pyx_v_file_format == __pyx_e_10pyreadstat_16_readstat_writer_FILE_FORMAT_DTA); if (__pyx_t_6) { - /* "pyreadstat/_readstat_writer.pyx":722 + /* "pyreadstat/_readstat_writer.pyx":724 * * if file_format == FILE_FORMAT_DTA: * if file_format_version >= 117: # <<<<<<<<<<<<<< @@ -13484,7 +13527,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d __pyx_t_6 = (__pyx_v_file_format_version >= 0x75); if (__pyx_t_6) { - /* "pyreadstat/_readstat_writer.pyx":723 + /* "pyreadstat/_readstat_writer.pyx":725 * if file_format == FILE_FORMAT_DTA: * if file_format_version >= 117: * dta_str_max_len = dta_117_max_width # <<<<<<<<<<<<<< @@ -13493,7 +13536,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d */ __pyx_v_dta_str_max_len = __pyx_v_10pyreadstat_16_readstat_writer_dta_117_max_width; - /* "pyreadstat/_readstat_writer.pyx":722 + /* "pyreadstat/_readstat_writer.pyx":724 * * if file_format == FILE_FORMAT_DTA: * if file_format_version >= 117: # <<<<<<<<<<<<<< @@ -13503,7 +13546,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d goto __pyx_L9; } - /* "pyreadstat/_readstat_writer.pyx":724 + /* "pyreadstat/_readstat_writer.pyx":726 * if file_format_version >= 117: * dta_str_max_len = dta_117_max_width * elif file_format_version >= 111: # <<<<<<<<<<<<<< @@ -13513,7 +13556,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d __pyx_t_6 = (__pyx_v_file_format_version >= 0x6F); if (__pyx_t_6) { - /* "pyreadstat/_readstat_writer.pyx":725 + /* "pyreadstat/_readstat_writer.pyx":727 * dta_str_max_len = dta_117_max_width * elif file_format_version >= 111: * dta_str_max_len = dta_111_max_width # <<<<<<<<<<<<<< @@ -13522,7 +13565,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d */ __pyx_v_dta_str_max_len = __pyx_v_10pyreadstat_16_readstat_writer_dta_111_max_width; - /* "pyreadstat/_readstat_writer.pyx":724 + /* "pyreadstat/_readstat_writer.pyx":726 * if file_format_version >= 117: * dta_str_max_len = dta_117_max_width * elif file_format_version >= 111: # <<<<<<<<<<<<<< @@ -13532,7 +13575,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d goto __pyx_L9; } - /* "pyreadstat/_readstat_writer.pyx":727 + /* "pyreadstat/_readstat_writer.pyx":729 * dta_str_max_len = dta_111_max_width * else: * dta_str_max_len = dta_old_max_width # <<<<<<<<<<<<<< @@ -13544,7 +13587,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d } __pyx_L9:; - /* "pyreadstat/_readstat_writer.pyx":721 + /* "pyreadstat/_readstat_writer.pyx":723 * col_names = [x.upper() for x in col_names] * * if file_format == FILE_FORMAT_DTA: # <<<<<<<<<<<<<< @@ -13553,29 +13596,29 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d */ } - /* "pyreadstat/_readstat_writer.pyx":729 + /* "pyreadstat/_readstat_writer.pyx":731 * dta_str_max_len = dta_old_max_width * * cdef list col_types = get_narwhals_column_types(df, missing_user_values, variable_value_labels, dta_str_max_len) # <<<<<<<<<<<<<< * cdef int row_count = len(df) * cdef int col_count = len(col_names) */ - __pyx_t_1 = __pyx_f_10pyreadstat_16_readstat_writer_get_narwhals_column_types(__pyx_v_df, __pyx_v_missing_user_values, __pyx_v_variable_value_labels, __pyx_v_dta_str_max_len); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 729, __pyx_L1_error) + __pyx_t_1 = __pyx_f_10pyreadstat_16_readstat_writer_get_narwhals_column_types(__pyx_v_df, __pyx_v_missing_user_values, __pyx_v_variable_value_labels, __pyx_v_dta_str_max_len); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 731, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_col_types = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - /* "pyreadstat/_readstat_writer.pyx":730 + /* "pyreadstat/_readstat_writer.pyx":732 * * cdef list col_types = get_narwhals_column_types(df, missing_user_values, variable_value_labels, dta_str_max_len) * cdef int row_count = len(df) # <<<<<<<<<<<<<< * cdef int col_count = len(col_names) * cdef dict col_names_to_types = {k:v[0] for k,v in zip(col_names, col_types)} */ - __pyx_t_7 = PyObject_Length(__pyx_v_df); if (unlikely(__pyx_t_7 == ((Py_ssize_t)-1))) __PYX_ERR(0, 730, __pyx_L1_error) + __pyx_t_7 = PyObject_Length(__pyx_v_df); if (unlikely(__pyx_t_7 == ((Py_ssize_t)-1))) __PYX_ERR(0, 732, __pyx_L1_error) __pyx_v_row_count = __pyx_t_7; - /* "pyreadstat/_readstat_writer.pyx":731 + /* "pyreadstat/_readstat_writer.pyx":733 * cdef list col_types = get_narwhals_column_types(df, missing_user_values, variable_value_labels, dta_str_max_len) * cdef int row_count = len(df) * cdef int col_count = len(col_names) # <<<<<<<<<<<<<< @@ -13584,12 +13627,12 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d */ if (unlikely(__pyx_v_col_names == Py_None)) { PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()"); - __PYX_ERR(0, 731, __pyx_L1_error) + __PYX_ERR(0, 733, __pyx_L1_error) } - __pyx_t_7 = __Pyx_PyList_GET_SIZE(__pyx_v_col_names); if (unlikely(__pyx_t_7 == ((Py_ssize_t)-1))) __PYX_ERR(0, 731, __pyx_L1_error) + __pyx_t_7 = __Pyx_PyList_GET_SIZE(__pyx_v_col_names); if (unlikely(__pyx_t_7 == ((Py_ssize_t)-1))) __PYX_ERR(0, 733, __pyx_L1_error) __pyx_v_col_count = __pyx_t_7; - /* "pyreadstat/_readstat_writer.pyx":732 + /* "pyreadstat/_readstat_writer.pyx":734 * cdef int row_count = len(df) * cdef int col_count = len(col_names) * cdef dict col_names_to_types = {k:v[0] for k,v in zip(col_names, col_types)} # <<<<<<<<<<<<<< @@ -13597,7 +13640,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d * cdef readstat_variable_t *variable */ { /* enter inner scope */ - __pyx_t_1 = PyDict_New(); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 732, __pyx_L12_error) + __pyx_t_1 = PyDict_New(); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 734, __pyx_L12_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = NULL; __pyx_t_5 = 1; @@ -13605,7 +13648,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d PyObject *__pyx_callargs[3] = {__pyx_t_3, __pyx_v_col_names, __pyx_v_col_types}; __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_zip, __pyx_callargs+__pyx_t_5, (3-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 732, __pyx_L12_error) + if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 734, __pyx_L12_error) __Pyx_GOTREF(__pyx_t_4); } if (likely(PyList_CheckExact(__pyx_t_4)) || PyTuple_CheckExact(__pyx_t_4)) { @@ -13613,9 +13656,9 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d __pyx_t_7 = 0; __pyx_t_8 = NULL; } else { - __pyx_t_7 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 732, __pyx_L12_error) + __pyx_t_7 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 734, __pyx_L12_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_8 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_3); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 732, __pyx_L12_error) + __pyx_t_8 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_3); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 734, __pyx_L12_error) } __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; for (;;) { @@ -13624,7 +13667,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d { Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_3); #if !CYTHON_ASSUME_SAFE_SIZE - if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 732, __pyx_L12_error) + if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 734, __pyx_L12_error) #endif if (__pyx_t_7 >= __pyx_temp) break; } @@ -13634,7 +13677,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d { Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_3); #if !CYTHON_ASSUME_SAFE_SIZE - if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 732, __pyx_L12_error) + if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 734, __pyx_L12_error) #endif if (__pyx_t_7 >= __pyx_temp) break; } @@ -13645,13 +13688,13 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d #endif ++__pyx_t_7; } - if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 732, __pyx_L12_error) + if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 734, __pyx_L12_error) } else { __pyx_t_4 = __pyx_t_8(__pyx_t_3); if (unlikely(!__pyx_t_4)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { - if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(0, 732, __pyx_L12_error) + if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(0, 734, __pyx_L12_error) PyErr_Clear(); } break; @@ -13664,7 +13707,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d if (unlikely(size != 2)) { if (size > 2) __Pyx_RaiseTooManyValuesError(2); else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); - __PYX_ERR(0, 732, __pyx_L12_error) + __PYX_ERR(0, 734, __pyx_L12_error) } #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS if (likely(PyTuple_CheckExact(sequence))) { @@ -13674,22 +13717,22 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d __Pyx_INCREF(__pyx_t_9); } else { __pyx_t_2 = __Pyx_PyList_GetItemRefFast(sequence, 0, __Pyx_ReferenceSharing_SharedReference); - if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 732, __pyx_L12_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 734, __pyx_L12_error) __Pyx_XGOTREF(__pyx_t_2); __pyx_t_9 = __Pyx_PyList_GetItemRefFast(sequence, 1, __Pyx_ReferenceSharing_SharedReference); - if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 732, __pyx_L12_error) + if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 734, __pyx_L12_error) __Pyx_XGOTREF(__pyx_t_9); } #else - __pyx_t_2 = __Pyx_PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 732, __pyx_L12_error) + __pyx_t_2 = __Pyx_PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 734, __pyx_L12_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_9 = __Pyx_PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 732, __pyx_L12_error) + __pyx_t_9 = __Pyx_PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 734, __pyx_L12_error) __Pyx_GOTREF(__pyx_t_9); #endif __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; } else { Py_ssize_t index = -1; - __pyx_t_10 = PyObject_GetIter(__pyx_t_4); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 732, __pyx_L12_error) + __pyx_t_10 = PyObject_GetIter(__pyx_t_4); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 734, __pyx_L12_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_11 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_10); @@ -13697,7 +13740,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d __Pyx_GOTREF(__pyx_t_2); index = 1; __pyx_t_9 = __pyx_t_11(__pyx_t_10); if (unlikely(!__pyx_t_9)) goto __pyx_L15_unpacking_failed; __Pyx_GOTREF(__pyx_t_9); - if (__Pyx_IternextUnpackEndCheck(__pyx_t_11(__pyx_t_10), 2) < (0)) __PYX_ERR(0, 732, __pyx_L12_error) + if (__Pyx_IternextUnpackEndCheck(__pyx_t_11(__pyx_t_10), 2) < (0)) __PYX_ERR(0, 734, __pyx_L12_error) __pyx_t_11 = NULL; __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; goto __pyx_L16_unpacking_done; @@ -13705,16 +13748,16 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_t_11 = NULL; if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); - __PYX_ERR(0, 732, __pyx_L12_error) + __PYX_ERR(0, 734, __pyx_L12_error) __pyx_L16_unpacking_done:; } __Pyx_XDECREF_SET(__pyx_7genexpr__pyx_v_k, __pyx_t_2); __pyx_t_2 = 0; __Pyx_XDECREF_SET(__pyx_7genexpr__pyx_v_v, __pyx_t_9); __pyx_t_9 = 0; - __pyx_t_4 = __Pyx_GetItemInt(__pyx_7genexpr__pyx_v_v, 0, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_SharedReference); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 732, __pyx_L12_error) + __pyx_t_4 = __Pyx_GetItemInt(__pyx_7genexpr__pyx_v_v, 0, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_SharedReference); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 734, __pyx_L12_error) __Pyx_GOTREF(__pyx_t_4); - if (unlikely(PyDict_SetItem(__pyx_t_1, (PyObject*)__pyx_7genexpr__pyx_v_k, (PyObject*)__pyx_t_4))) __PYX_ERR(0, 732, __pyx_L12_error) + if (unlikely(PyDict_SetItem(__pyx_t_1, (PyObject*)__pyx_7genexpr__pyx_v_k, (PyObject*)__pyx_t_4))) __PYX_ERR(0, 734, __pyx_L12_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; @@ -13730,7 +13773,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d __pyx_v_col_names_to_types = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - /* "pyreadstat/_readstat_writer.pyx":741 + /* "pyreadstat/_readstat_writer.pyx":743 * cdef int col_indx * cdef bytes cur_col_label * cdef int col_label_count = 0 # <<<<<<<<<<<<<< @@ -13739,7 +13782,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d */ __pyx_v_col_label_count = 0; - /* "pyreadstat/_readstat_writer.pyx":750 + /* "pyreadstat/_readstat_writer.pyx":752 * cdef object values * cdef dict value_labels * cdef int lblset_cnt = 0 # <<<<<<<<<<<<<< @@ -13748,29 +13791,29 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d */ __pyx_v_lblset_cnt = 0; - /* "pyreadstat/_readstat_writer.pyx":758 + /* "pyreadstat/_readstat_writer.pyx":760 * cdef float mulfac, conv2secs * cdef readstat_string_ref_t* strref * cdef dict strref_map = dict() # <<<<<<<<<<<<<< * cdef int strref_cnt * cdef object strref_indx */ - __pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 758, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 760, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_strref_map = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - /* "pyreadstat/_readstat_writer.pyx":763 + /* "pyreadstat/_readstat_writer.pyx":765 * * * cdef int fd = open_file(filename_bytes) # <<<<<<<<<<<<<< * if fd == -1: * raise PyreadstatError( */ - __pyx_t_12 = __pyx_f_10pyreadstat_16_readstat_writer_open_file(__pyx_v_filename_bytes); if (unlikely(__pyx_t_12 == ((int)-1) && PyErr_Occurred())) __PYX_ERR(0, 763, __pyx_L1_error) + __pyx_t_12 = __pyx_f_10pyreadstat_16_readstat_writer_open_file(__pyx_v_filename_bytes); if (unlikely(__pyx_t_12 == ((int)-1) && PyErr_Occurred())) __PYX_ERR(0, 765, __pyx_L1_error) __pyx_v_fd = __pyx_t_12; - /* "pyreadstat/_readstat_writer.pyx":764 + /* "pyreadstat/_readstat_writer.pyx":766 * * cdef int fd = open_file(filename_bytes) * if fd == -1: # <<<<<<<<<<<<<< @@ -13780,7 +13823,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d __pyx_t_6 = (__pyx_v_fd == -1L); if (unlikely(__pyx_t_6)) { - /* "pyreadstat/_readstat_writer.pyx":765 + /* "pyreadstat/_readstat_writer.pyx":767 * cdef int fd = open_file(filename_bytes) * if fd == -1: * raise PyreadstatError( # <<<<<<<<<<<<<< @@ -13788,42 +13831,42 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d * "The file may be locked by another process or you may not have write permission." */ __pyx_t_3 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 765, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 767, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - /* "pyreadstat/_readstat_writer.pyx":768 + /* "pyreadstat/_readstat_writer.pyx":770 * "Could not open file '%s' for writing: %s (errno %d). " * "The file may be locked by another process or you may not have write permission." * % (os.fsdecode(filename_bytes), os.strerror(errno), errno)) # <<<<<<<<<<<<<< * writer = readstat_writer_init() * */ - __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_os); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 768, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_os); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 770, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_fsdecode); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 768, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_fsdecode); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 770, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_9 = __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v_filename_bytes); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 768, __pyx_L1_error) + __pyx_t_9 = __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v_filename_bytes); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 770, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Str(__pyx_t_9), __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 768, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Str(__pyx_t_9), __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 770, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_os); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 768, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_os); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 770, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); - __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_strerror); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 768, __pyx_L1_error) + __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_strerror); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 770, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_9 = __Pyx_PyLong_From_int(errno); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 768, __pyx_L1_error) + __pyx_t_9 = __Pyx_PyLong_From_int(errno); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 770, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); - __pyx_t_13 = __Pyx_PyObject_CallOneArg(__pyx_t_10, __pyx_t_9); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 768, __pyx_L1_error) + __pyx_t_13 = __Pyx_PyObject_CallOneArg(__pyx_t_10, __pyx_t_9); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 770, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_9 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Str(__pyx_t_13), __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 768, __pyx_L1_error) + __pyx_t_9 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Str(__pyx_t_13), __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 770, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; - __pyx_t_13 = __Pyx_PyUnicode_From_int(errno, 0, ' ', 'd'); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 768, __pyx_L1_error) + __pyx_t_13 = __Pyx_PyUnicode_From_int(errno, 0, ' ', 'd'); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 770, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __pyx_t_14[0] = __pyx_mstate_global->__pyx_kp_u_Could_not_open_file; __pyx_t_14[1] = __pyx_t_2; @@ -13833,7 +13876,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d __pyx_t_14[5] = __pyx_t_13; __pyx_t_14[6] = __pyx_mstate_global->__pyx_kp_u_The_file_may_be_locked_by_anoth; - /* "pyreadstat/_readstat_writer.pyx":766 + /* "pyreadstat/_readstat_writer.pyx":768 * if fd == -1: * raise PyreadstatError( * "Could not open file '%s' for writing: %s (errno %d). " # <<<<<<<<<<<<<< @@ -13841,7 +13884,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d * % (os.fsdecode(filename_bytes), os.strerror(errno), errno)) */ __pyx_t_10 = __Pyx_PyUnicode_Join(__pyx_t_14, 7, 21 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_2) + 15 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_9) + 8 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_13) + 82, 127 | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_2) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_9)); - if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 766, __pyx_L1_error) + if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 768, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; @@ -13864,14 +13907,14 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 765, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 767, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __PYX_ERR(0, 765, __pyx_L1_error) + __PYX_ERR(0, 767, __pyx_L1_error) - /* "pyreadstat/_readstat_writer.pyx":764 + /* "pyreadstat/_readstat_writer.pyx":766 * * cdef int fd = open_file(filename_bytes) * if fd == -1: # <<<<<<<<<<<<<< @@ -13880,7 +13923,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d */ } - /* "pyreadstat/_readstat_writer.pyx":769 + /* "pyreadstat/_readstat_writer.pyx":771 * "The file may be locked by another process or you may not have write permission." * % (os.fsdecode(filename_bytes), os.strerror(errno), errno)) * writer = readstat_writer_init() # <<<<<<<<<<<<<< @@ -13889,7 +13932,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d */ __pyx_v_writer = readstat_writer_init(); - /* "pyreadstat/_readstat_writer.pyx":771 + /* "pyreadstat/_readstat_writer.pyx":773 * writer = readstat_writer_init() * * try: # <<<<<<<<<<<<<< @@ -13906,16 +13949,16 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d __Pyx_XGOTREF(__pyx_t_17); /*try:*/ { - /* "pyreadstat/_readstat_writer.pyx":773 + /* "pyreadstat/_readstat_writer.pyx":775 * try: * * check_exit_status(readstat_set_data_writer(writer, write_bytes)) # <<<<<<<<<<<<<< * * if file_label: */ - __pyx_f_10pyreadstat_16_readstat_parser_check_exit_status(readstat_set_data_writer(__pyx_v_writer, __pyx_f_10pyreadstat_16_readstat_writer_write_bytes)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 773, __pyx_L23_error) + __pyx_f_10pyreadstat_16_readstat_parser_check_exit_status(readstat_set_data_writer(__pyx_v_writer, __pyx_f_10pyreadstat_16_readstat_writer_write_bytes)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 775, __pyx_L23_error) - /* "pyreadstat/_readstat_writer.pyx":775 + /* "pyreadstat/_readstat_writer.pyx":777 * check_exit_status(readstat_set_data_writer(writer, write_bytes)) * * if file_label: # <<<<<<<<<<<<<< @@ -13926,13 +13969,13 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d else { Py_ssize_t __pyx_temp = __Pyx_PyUnicode_IS_TRUE(__pyx_v_file_label); - if (unlikely(((!CYTHON_ASSUME_SAFE_SIZE) && __pyx_temp < 0))) __PYX_ERR(0, 775, __pyx_L23_error) + if (unlikely(((!CYTHON_ASSUME_SAFE_SIZE) && __pyx_temp < 0))) __PYX_ERR(0, 777, __pyx_L23_error) __pyx_t_6 = (__pyx_temp != 0); } if (__pyx_t_6) { - /* "pyreadstat/_readstat_writer.pyx":776 + /* "pyreadstat/_readstat_writer.pyx":778 * * if file_label: * file_label_bytes = file_label.encode("utf-8") # <<<<<<<<<<<<<< @@ -13941,33 +13984,33 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d */ if (unlikely(__pyx_v_file_label == Py_None)) { PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "encode"); - __PYX_ERR(0, 776, __pyx_L23_error) + __PYX_ERR(0, 778, __pyx_L23_error) } - __pyx_t_1 = PyUnicode_AsUTF8String(__pyx_v_file_label); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 776, __pyx_L23_error) + __pyx_t_1 = PyUnicode_AsUTF8String(__pyx_v_file_label); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 778, __pyx_L23_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_file_label_bytes = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - /* "pyreadstat/_readstat_writer.pyx":777 + /* "pyreadstat/_readstat_writer.pyx":779 * if file_label: * file_label_bytes = file_label.encode("utf-8") * file_labl = file_label_bytes # <<<<<<<<<<<<<< * check_exit_status(readstat_writer_set_file_label(writer, file_labl)) * */ - __pyx_t_18 = __Pyx_PyBytes_AsWritableString(__pyx_v_file_label_bytes); if (unlikely((!__pyx_t_18) && PyErr_Occurred())) __PYX_ERR(0, 777, __pyx_L23_error) + __pyx_t_18 = __Pyx_PyBytes_AsWritableString(__pyx_v_file_label_bytes); if (unlikely((!__pyx_t_18) && PyErr_Occurred())) __PYX_ERR(0, 779, __pyx_L23_error) __pyx_v_file_labl = ((char *)__pyx_t_18); - /* "pyreadstat/_readstat_writer.pyx":778 + /* "pyreadstat/_readstat_writer.pyx":780 * file_label_bytes = file_label.encode("utf-8") * file_labl = file_label_bytes * check_exit_status(readstat_writer_set_file_label(writer, file_labl)) # <<<<<<<<<<<<<< * * if note: */ - __pyx_f_10pyreadstat_16_readstat_parser_check_exit_status(readstat_writer_set_file_label(__pyx_v_writer, __pyx_v_file_labl)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 778, __pyx_L23_error) + __pyx_f_10pyreadstat_16_readstat_parser_check_exit_status(readstat_writer_set_file_label(__pyx_v_writer, __pyx_v_file_labl)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 780, __pyx_L23_error) - /* "pyreadstat/_readstat_writer.pyx":775 + /* "pyreadstat/_readstat_writer.pyx":777 * check_exit_status(readstat_set_data_writer(writer, write_bytes)) * * if file_label: # <<<<<<<<<<<<<< @@ -13976,44 +14019,44 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d */ } - /* "pyreadstat/_readstat_writer.pyx":780 + /* "pyreadstat/_readstat_writer.pyx":782 * check_exit_status(readstat_writer_set_file_label(writer, file_labl)) * * if note: # <<<<<<<<<<<<<< * if type(note) == str: * note = [note] */ - __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_v_note); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(0, 780, __pyx_L23_error) + __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_v_note); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(0, 782, __pyx_L23_error) if (__pyx_t_6) { - /* "pyreadstat/_readstat_writer.pyx":781 + /* "pyreadstat/_readstat_writer.pyx":783 * * if note: * if type(note) == str: # <<<<<<<<<<<<<< * note = [note] * if type(note) == list: */ - __pyx_t_1 = PyObject_RichCompare(((PyObject *)Py_TYPE(__pyx_v_note)), ((PyObject *)(&PyUnicode_Type)), Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 781, __pyx_L23_error) - __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(0, 781, __pyx_L23_error) + __pyx_t_1 = PyObject_RichCompare(((PyObject *)Py_TYPE(__pyx_v_note)), ((PyObject *)(&PyUnicode_Type)), Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 783, __pyx_L23_error) + __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(0, 783, __pyx_L23_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_6) { - /* "pyreadstat/_readstat_writer.pyx":782 + /* "pyreadstat/_readstat_writer.pyx":784 * if note: * if type(note) == str: * note = [note] # <<<<<<<<<<<<<< * if type(note) == list: * for line in note: */ - __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 782, __pyx_L23_error) + __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 784, __pyx_L23_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_note); __Pyx_GIVEREF(__pyx_v_note); - if (__Pyx_PyList_SET_ITEM(__pyx_t_1, 0, __pyx_v_note) != (0)) __PYX_ERR(0, 782, __pyx_L23_error); + if (__Pyx_PyList_SET_ITEM(__pyx_t_1, 0, __pyx_v_note) != (0)) __PYX_ERR(0, 784, __pyx_L23_error); __Pyx_DECREF_SET(__pyx_v_note, __pyx_t_1); __pyx_t_1 = 0; - /* "pyreadstat/_readstat_writer.pyx":781 + /* "pyreadstat/_readstat_writer.pyx":783 * * if note: * if type(note) == str: # <<<<<<<<<<<<<< @@ -14022,19 +14065,19 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d */ } - /* "pyreadstat/_readstat_writer.pyx":783 + /* "pyreadstat/_readstat_writer.pyx":785 * if type(note) == str: * note = [note] * if type(note) == list: # <<<<<<<<<<<<<< * for line in note: * readstat_add_note(writer, line.encode("utf-8")) */ - __pyx_t_1 = PyObject_RichCompare(((PyObject *)Py_TYPE(__pyx_v_note)), ((PyObject *)(&PyList_Type)), Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 783, __pyx_L23_error) - __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(0, 783, __pyx_L23_error) + __pyx_t_1 = PyObject_RichCompare(((PyObject *)Py_TYPE(__pyx_v_note)), ((PyObject *)(&PyList_Type)), Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 785, __pyx_L23_error) + __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(0, 785, __pyx_L23_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (likely(__pyx_t_6)) { - /* "pyreadstat/_readstat_writer.pyx":784 + /* "pyreadstat/_readstat_writer.pyx":786 * note = [note] * if type(note) == list: * for line in note: # <<<<<<<<<<<<<< @@ -14046,9 +14089,9 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d __pyx_t_7 = 0; __pyx_t_8 = NULL; } else { - __pyx_t_7 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_v_note); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 784, __pyx_L23_error) + __pyx_t_7 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_v_note); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 786, __pyx_L23_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_8 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 784, __pyx_L23_error) + __pyx_t_8 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 786, __pyx_L23_error) } for (;;) { if (likely(!__pyx_t_8)) { @@ -14056,7 +14099,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d { Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_1); #if !CYTHON_ASSUME_SAFE_SIZE - if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 784, __pyx_L23_error) + if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 786, __pyx_L23_error) #endif if (__pyx_t_7 >= __pyx_temp) break; } @@ -14066,7 +14109,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d { Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_1); #if !CYTHON_ASSUME_SAFE_SIZE - if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 784, __pyx_L23_error) + if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 786, __pyx_L23_error) #endif if (__pyx_t_7 >= __pyx_temp) break; } @@ -14077,13 +14120,13 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d #endif ++__pyx_t_7; } - if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 784, __pyx_L23_error) + if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 786, __pyx_L23_error) } else { __pyx_t_4 = __pyx_t_8(__pyx_t_1); if (unlikely(!__pyx_t_4)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { - if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(0, 784, __pyx_L23_error) + if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(0, 786, __pyx_L23_error) PyErr_Clear(); } break; @@ -14093,7 +14136,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d __Pyx_XDECREF_SET(__pyx_v_line, __pyx_t_4); __pyx_t_4 = 0; - /* "pyreadstat/_readstat_writer.pyx":785 + /* "pyreadstat/_readstat_writer.pyx":787 * if type(note) == list: * for line in note: * readstat_add_note(writer, line.encode("utf-8")) # <<<<<<<<<<<<<< @@ -14107,14 +14150,14 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d PyObject *__pyx_callargs[2] = {__pyx_t_10, __pyx_mstate_global->__pyx_kp_u_utf_8}; __pyx_t_4 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_encode, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 785, __pyx_L23_error) + if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 787, __pyx_L23_error) __Pyx_GOTREF(__pyx_t_4); } - __pyx_t_19 = __Pyx_PyObject_AsString(__pyx_t_4); if (unlikely((!__pyx_t_19) && PyErr_Occurred())) __PYX_ERR(0, 785, __pyx_L23_error) + __pyx_t_19 = __Pyx_PyObject_AsString(__pyx_t_4); if (unlikely((!__pyx_t_19) && PyErr_Occurred())) __PYX_ERR(0, 787, __pyx_L23_error) readstat_add_note(__pyx_v_writer, __pyx_t_19); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - /* "pyreadstat/_readstat_writer.pyx":784 + /* "pyreadstat/_readstat_writer.pyx":786 * note = [note] * if type(note) == list: * for line in note: # <<<<<<<<<<<<<< @@ -14124,7 +14167,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "pyreadstat/_readstat_writer.pyx":783 + /* "pyreadstat/_readstat_writer.pyx":785 * if type(note) == str: * note = [note] * if type(note) == list: # <<<<<<<<<<<<<< @@ -14134,7 +14177,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d goto __pyx_L32; } - /* "pyreadstat/_readstat_writer.pyx":787 + /* "pyreadstat/_readstat_writer.pyx":789 * readstat_add_note(writer, line.encode("utf-8")) * else: * raise PyreadstatError(f"note should be either str or list, got {type(note)}") # <<<<<<<<<<<<<< @@ -14143,11 +14186,11 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d */ /*else*/ { __pyx_t_4 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 787, __pyx_L23_error) + __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 789, __pyx_L23_error) __Pyx_GOTREF(__pyx_t_10); - __pyx_t_3 = __Pyx_PyObject_FormatSimple(((PyObject *)Py_TYPE(__pyx_v_note)), __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 787, __pyx_L23_error) + __pyx_t_3 = __Pyx_PyObject_FormatSimple(((PyObject *)Py_TYPE(__pyx_v_note)), __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 789, __pyx_L23_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_13 = __Pyx_PyUnicode_Concat(__pyx_mstate_global->__pyx_kp_u_note_should_be_either_str_or_lis, __pyx_t_3); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 787, __pyx_L23_error) + __pyx_t_13 = __Pyx_PyUnicode_Concat(__pyx_mstate_global->__pyx_kp_u_note_should_be_either_str_or_lis, __pyx_t_3); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 789, __pyx_L23_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_5 = 1; @@ -14168,16 +14211,16 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 787, __pyx_L23_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 789, __pyx_L23_error) __Pyx_GOTREF(__pyx_t_1); } __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __PYX_ERR(0, 787, __pyx_L23_error) + __PYX_ERR(0, 789, __pyx_L23_error) } __pyx_L32:; - /* "pyreadstat/_readstat_writer.pyx":780 + /* "pyreadstat/_readstat_writer.pyx":782 * check_exit_status(readstat_writer_set_file_label(writer, file_labl)) * * if note: # <<<<<<<<<<<<<< @@ -14186,7 +14229,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d */ } - /* "pyreadstat/_readstat_writer.pyx":789 + /* "pyreadstat/_readstat_writer.pyx":791 * raise PyreadstatError(f"note should be either str or list, got {type(note)}") * * if file_format_version > -1: # <<<<<<<<<<<<<< @@ -14196,16 +14239,16 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d __pyx_t_6 = (__pyx_v_file_format_version > -1L); if (__pyx_t_6) { - /* "pyreadstat/_readstat_writer.pyx":790 + /* "pyreadstat/_readstat_writer.pyx":792 * * if file_format_version > -1: * check_exit_status(readstat_writer_set_file_format_version(writer, file_format_version)) # <<<<<<<<<<<<<< * * if row_compression: */ - __pyx_f_10pyreadstat_16_readstat_parser_check_exit_status(readstat_writer_set_file_format_version(__pyx_v_writer, __pyx_v_file_format_version)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 790, __pyx_L23_error) + __pyx_f_10pyreadstat_16_readstat_parser_check_exit_status(readstat_writer_set_file_format_version(__pyx_v_writer, __pyx_v_file_format_version)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 792, __pyx_L23_error) - /* "pyreadstat/_readstat_writer.pyx":789 + /* "pyreadstat/_readstat_writer.pyx":791 * raise PyreadstatError(f"note should be either str or list, got {type(note)}") * * if file_format_version > -1: # <<<<<<<<<<<<<< @@ -14214,7 +14257,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d */ } - /* "pyreadstat/_readstat_writer.pyx":792 + /* "pyreadstat/_readstat_writer.pyx":794 * check_exit_status(readstat_writer_set_file_format_version(writer, file_format_version)) * * if row_compression: # <<<<<<<<<<<<<< @@ -14223,16 +14266,16 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d */ if (__pyx_v_row_compression) { - /* "pyreadstat/_readstat_writer.pyx":793 + /* "pyreadstat/_readstat_writer.pyx":795 * * if row_compression: * check_exit_status(readstat_writer_set_compression(writer, READSTAT_COMPRESS_ROWS)) # <<<<<<<<<<<<<< * * # table name is used only for xpt files */ - __pyx_f_10pyreadstat_16_readstat_parser_check_exit_status(readstat_writer_set_compression(__pyx_v_writer, READSTAT_COMPRESS_ROWS)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 793, __pyx_L23_error) + __pyx_f_10pyreadstat_16_readstat_parser_check_exit_status(readstat_writer_set_compression(__pyx_v_writer, READSTAT_COMPRESS_ROWS)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 795, __pyx_L23_error) - /* "pyreadstat/_readstat_writer.pyx":792 + /* "pyreadstat/_readstat_writer.pyx":794 * check_exit_status(readstat_writer_set_file_format_version(writer, file_format_version)) * * if row_compression: # <<<<<<<<<<<<<< @@ -14241,7 +14284,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d */ } - /* "pyreadstat/_readstat_writer.pyx":796 + /* "pyreadstat/_readstat_writer.pyx":798 * * # table name is used only for xpt files * if table_name: # <<<<<<<<<<<<<< @@ -14252,13 +14295,13 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d else { Py_ssize_t __pyx_temp = __Pyx_PyUnicode_IS_TRUE(__pyx_v_table_name); - if (unlikely(((!CYTHON_ASSUME_SAFE_SIZE) && __pyx_temp < 0))) __PYX_ERR(0, 796, __pyx_L23_error) + if (unlikely(((!CYTHON_ASSUME_SAFE_SIZE) && __pyx_temp < 0))) __PYX_ERR(0, 798, __pyx_L23_error) __pyx_t_6 = (__pyx_temp != 0); } if (__pyx_t_6) { - /* "pyreadstat/_readstat_writer.pyx":797 + /* "pyreadstat/_readstat_writer.pyx":799 * # table name is used only for xpt files * if table_name: * table_name_bytes = table_name.encode("utf-8") # <<<<<<<<<<<<<< @@ -14267,33 +14310,33 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d */ if (unlikely(__pyx_v_table_name == Py_None)) { PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "encode"); - __PYX_ERR(0, 797, __pyx_L23_error) + __PYX_ERR(0, 799, __pyx_L23_error) } - __pyx_t_1 = PyUnicode_AsUTF8String(__pyx_v_table_name); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 797, __pyx_L23_error) + __pyx_t_1 = PyUnicode_AsUTF8String(__pyx_v_table_name); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 799, __pyx_L23_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_table_name_bytes = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - /* "pyreadstat/_readstat_writer.pyx":798 + /* "pyreadstat/_readstat_writer.pyx":800 * if table_name: * table_name_bytes = table_name.encode("utf-8") * tab_name = table_name_bytes # <<<<<<<<<<<<<< * check_exit_status(readstat_writer_set_table_name(writer, tab_name)) * */ - __pyx_t_18 = __Pyx_PyBytes_AsWritableString(__pyx_v_table_name_bytes); if (unlikely((!__pyx_t_18) && PyErr_Occurred())) __PYX_ERR(0, 798, __pyx_L23_error) + __pyx_t_18 = __Pyx_PyBytes_AsWritableString(__pyx_v_table_name_bytes); if (unlikely((!__pyx_t_18) && PyErr_Occurred())) __PYX_ERR(0, 800, __pyx_L23_error) __pyx_v_tab_name = ((char *)__pyx_t_18); - /* "pyreadstat/_readstat_writer.pyx":799 + /* "pyreadstat/_readstat_writer.pyx":801 * table_name_bytes = table_name.encode("utf-8") * tab_name = table_name_bytes * check_exit_status(readstat_writer_set_table_name(writer, tab_name)) # <<<<<<<<<<<<<< * * # add variables */ - __pyx_f_10pyreadstat_16_readstat_parser_check_exit_status(readstat_writer_set_table_name(__pyx_v_writer, __pyx_v_tab_name)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 799, __pyx_L23_error) + __pyx_f_10pyreadstat_16_readstat_parser_check_exit_status(readstat_writer_set_table_name(__pyx_v_writer, __pyx_v_tab_name)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 801, __pyx_L23_error) - /* "pyreadstat/_readstat_writer.pyx":796 + /* "pyreadstat/_readstat_writer.pyx":798 * * # table name is used only for xpt files * if table_name: # <<<<<<<<<<<<<< @@ -14302,39 +14345,39 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d */ } - /* "pyreadstat/_readstat_writer.pyx":802 + /* "pyreadstat/_readstat_writer.pyx":804 * * # add variables * if column_labels: # <<<<<<<<<<<<<< * if type(column_labels) != list and type(column_labels) != dict: * raise PyreadstatError("column_labels must be either list or dict!") */ - __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_v_column_labels); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(0, 802, __pyx_L23_error) + __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_v_column_labels); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(0, 804, __pyx_L23_error) if (__pyx_t_6) { - /* "pyreadstat/_readstat_writer.pyx":803 + /* "pyreadstat/_readstat_writer.pyx":805 * # add variables * if column_labels: * if type(column_labels) != list and type(column_labels) != dict: # <<<<<<<<<<<<<< * raise PyreadstatError("column_labels must be either list or dict!") * if type(column_labels) == dict: */ - __pyx_t_1 = PyObject_RichCompare(((PyObject *)Py_TYPE(__pyx_v_column_labels)), ((PyObject *)(&PyList_Type)), Py_NE); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 803, __pyx_L23_error) - __pyx_t_20 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_20 < 0))) __PYX_ERR(0, 803, __pyx_L23_error) + __pyx_t_1 = PyObject_RichCompare(((PyObject *)Py_TYPE(__pyx_v_column_labels)), ((PyObject *)(&PyList_Type)), Py_NE); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 805, __pyx_L23_error) + __pyx_t_20 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_20 < 0))) __PYX_ERR(0, 805, __pyx_L23_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_20) { } else { __pyx_t_6 = __pyx_t_20; goto __pyx_L41_bool_binop_done; } - __pyx_t_1 = PyObject_RichCompare(((PyObject *)Py_TYPE(__pyx_v_column_labels)), ((PyObject *)(&PyDict_Type)), Py_NE); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 803, __pyx_L23_error) - __pyx_t_20 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_20 < 0))) __PYX_ERR(0, 803, __pyx_L23_error) + __pyx_t_1 = PyObject_RichCompare(((PyObject *)Py_TYPE(__pyx_v_column_labels)), ((PyObject *)(&PyDict_Type)), Py_NE); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 805, __pyx_L23_error) + __pyx_t_20 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_20 < 0))) __PYX_ERR(0, 805, __pyx_L23_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_6 = __pyx_t_20; __pyx_L41_bool_binop_done:; if (unlikely(__pyx_t_6)) { - /* "pyreadstat/_readstat_writer.pyx":804 + /* "pyreadstat/_readstat_writer.pyx":806 * if column_labels: * if type(column_labels) != list and type(column_labels) != dict: * raise PyreadstatError("column_labels must be either list or dict!") # <<<<<<<<<<<<<< @@ -14342,7 +14385,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d * col_label_temp = list() */ __pyx_t_10 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_13, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 804, __pyx_L23_error) + __Pyx_GetModuleGlobalName(__pyx_t_13, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 806, __pyx_L23_error) __Pyx_GOTREF(__pyx_t_13); __pyx_t_5 = 1; #if CYTHON_UNPACK_METHODS @@ -14361,14 +14404,14 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_13, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 804, __pyx_L23_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 806, __pyx_L23_error) __Pyx_GOTREF(__pyx_t_1); } __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __PYX_ERR(0, 804, __pyx_L23_error) + __PYX_ERR(0, 806, __pyx_L23_error) - /* "pyreadstat/_readstat_writer.pyx":803 + /* "pyreadstat/_readstat_writer.pyx":805 * # add variables * if column_labels: * if type(column_labels) != list and type(column_labels) != dict: # <<<<<<<<<<<<<< @@ -14377,31 +14420,31 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d */ } - /* "pyreadstat/_readstat_writer.pyx":805 + /* "pyreadstat/_readstat_writer.pyx":807 * if type(column_labels) != list and type(column_labels) != dict: * raise PyreadstatError("column_labels must be either list or dict!") * if type(column_labels) == dict: # <<<<<<<<<<<<<< * col_label_temp = list() * for col_indx in range(col_count): */ - __pyx_t_1 = PyObject_RichCompare(((PyObject *)Py_TYPE(__pyx_v_column_labels)), ((PyObject *)(&PyDict_Type)), Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 805, __pyx_L23_error) - __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(0, 805, __pyx_L23_error) + __pyx_t_1 = PyObject_RichCompare(((PyObject *)Py_TYPE(__pyx_v_column_labels)), ((PyObject *)(&PyDict_Type)), Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 807, __pyx_L23_error) + __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(0, 807, __pyx_L23_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_6) { - /* "pyreadstat/_readstat_writer.pyx":806 + /* "pyreadstat/_readstat_writer.pyx":808 * raise PyreadstatError("column_labels must be either list or dict!") * if type(column_labels) == dict: * col_label_temp = list() # <<<<<<<<<<<<<< * for col_indx in range(col_count): * variable_name = col_names[col_indx] */ - __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 806, __pyx_L23_error) + __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 808, __pyx_L23_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_col_label_temp = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - /* "pyreadstat/_readstat_writer.pyx":807 + /* "pyreadstat/_readstat_writer.pyx":809 * if type(column_labels) == dict: * col_label_temp = list() * for col_indx in range(col_count): # <<<<<<<<<<<<<< @@ -14413,7 +14456,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d for (__pyx_t_22 = 0; __pyx_t_22 < __pyx_t_21; __pyx_t_22+=1) { __pyx_v_col_indx = __pyx_t_22; - /* "pyreadstat/_readstat_writer.pyx":808 + /* "pyreadstat/_readstat_writer.pyx":810 * col_label_temp = list() * for col_indx in range(col_count): * variable_name = col_names[col_indx] # <<<<<<<<<<<<<< @@ -14422,14 +14465,14 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d */ if (unlikely(__pyx_v_col_names == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 808, __pyx_L23_error) + __PYX_ERR(0, 810, __pyx_L23_error) } - __pyx_t_1 = __Pyx_GetItemInt_List(__pyx_v_col_names, __pyx_v_col_indx, int, 1, __Pyx_PyLong_From_int, 1, 1, 1, 1, __Pyx_ReferenceSharing_OwnStrongReference); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 808, __pyx_L23_error) + __pyx_t_1 = __Pyx_GetItemInt_List(__pyx_v_col_names, __pyx_v_col_indx, int, 1, __Pyx_PyLong_From_int, 1, 1, 1, 1, __Pyx_ReferenceSharing_OwnStrongReference); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 810, __pyx_L23_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_XDECREF_SET(__pyx_v_variable_name, __pyx_t_1); __pyx_t_1 = 0; - /* "pyreadstat/_readstat_writer.pyx":809 + /* "pyreadstat/_readstat_writer.pyx":811 * for col_indx in range(col_count): * variable_name = col_names[col_indx] * if variable_name in column_labels.keys(): # <<<<<<<<<<<<<< @@ -14443,26 +14486,26 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d PyObject *__pyx_callargs[2] = {__pyx_t_13, NULL}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_keys, __pyx_callargs+__pyx_t_5, (1-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 809, __pyx_L23_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 811, __pyx_L23_error) __Pyx_GOTREF(__pyx_t_1); } - __pyx_t_6 = (__Pyx_PySequence_ContainsTF(__pyx_v_variable_name, __pyx_t_1, Py_EQ)); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(0, 809, __pyx_L23_error) + __pyx_t_6 = (__Pyx_PySequence_ContainsTF(__pyx_v_variable_name, __pyx_t_1, Py_EQ)); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(0, 811, __pyx_L23_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_6) { - /* "pyreadstat/_readstat_writer.pyx":810 + /* "pyreadstat/_readstat_writer.pyx":812 * variable_name = col_names[col_indx] * if variable_name in column_labels.keys(): * col_label_temp.append(column_labels[variable_name]) # <<<<<<<<<<<<<< * else: * col_label_temp.append(None) */ - __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_v_column_labels, __pyx_v_variable_name); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 810, __pyx_L23_error) + __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_v_column_labels, __pyx_v_variable_name); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 812, __pyx_L23_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_23 = __Pyx_PyList_Append(__pyx_v_col_label_temp, __pyx_t_1); if (unlikely(__pyx_t_23 == ((int)-1))) __PYX_ERR(0, 810, __pyx_L23_error) + __pyx_t_23 = __Pyx_PyList_Append(__pyx_v_col_label_temp, __pyx_t_1); if (unlikely(__pyx_t_23 == ((int)-1))) __PYX_ERR(0, 812, __pyx_L23_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "pyreadstat/_readstat_writer.pyx":809 + /* "pyreadstat/_readstat_writer.pyx":811 * for col_indx in range(col_count): * variable_name = col_names[col_indx] * if variable_name in column_labels.keys(): # <<<<<<<<<<<<<< @@ -14472,7 +14515,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d goto __pyx_L46; } - /* "pyreadstat/_readstat_writer.pyx":812 + /* "pyreadstat/_readstat_writer.pyx":814 * col_label_temp.append(column_labels[variable_name]) * else: * col_label_temp.append(None) # <<<<<<<<<<<<<< @@ -14480,12 +14523,12 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d * */ /*else*/ { - __pyx_t_23 = __Pyx_PyList_Append(__pyx_v_col_label_temp, Py_None); if (unlikely(__pyx_t_23 == ((int)-1))) __PYX_ERR(0, 812, __pyx_L23_error) + __pyx_t_23 = __Pyx_PyList_Append(__pyx_v_col_label_temp, Py_None); if (unlikely(__pyx_t_23 == ((int)-1))) __PYX_ERR(0, 814, __pyx_L23_error) } __pyx_L46:; } - /* "pyreadstat/_readstat_writer.pyx":813 + /* "pyreadstat/_readstat_writer.pyx":815 * else: * col_label_temp.append(None) * column_labels = col_label_temp # <<<<<<<<<<<<<< @@ -14495,7 +14538,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d __Pyx_INCREF(__pyx_v_col_label_temp); __Pyx_DECREF_SET(__pyx_v_column_labels, __pyx_v_col_label_temp); - /* "pyreadstat/_readstat_writer.pyx":805 + /* "pyreadstat/_readstat_writer.pyx":807 * if type(column_labels) != list and type(column_labels) != dict: * raise PyreadstatError("column_labels must be either list or dict!") * if type(column_labels) == dict: # <<<<<<<<<<<<<< @@ -14504,17 +14547,17 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d */ } - /* "pyreadstat/_readstat_writer.pyx":815 + /* "pyreadstat/_readstat_writer.pyx":817 * column_labels = col_label_temp * * col_label_count = len(column_labels) # <<<<<<<<<<<<<< * if col_label_count != col_count: * raise PyreadstatError("length of column labels must be the same as number of columns") */ - __pyx_t_7 = PyObject_Length(__pyx_v_column_labels); if (unlikely(__pyx_t_7 == ((Py_ssize_t)-1))) __PYX_ERR(0, 815, __pyx_L23_error) + __pyx_t_7 = PyObject_Length(__pyx_v_column_labels); if (unlikely(__pyx_t_7 == ((Py_ssize_t)-1))) __PYX_ERR(0, 817, __pyx_L23_error) __pyx_v_col_label_count = __pyx_t_7; - /* "pyreadstat/_readstat_writer.pyx":816 + /* "pyreadstat/_readstat_writer.pyx":818 * * col_label_count = len(column_labels) * if col_label_count != col_count: # <<<<<<<<<<<<<< @@ -14524,7 +14567,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d __pyx_t_6 = (__pyx_v_col_label_count != __pyx_v_col_count); if (unlikely(__pyx_t_6)) { - /* "pyreadstat/_readstat_writer.pyx":817 + /* "pyreadstat/_readstat_writer.pyx":819 * col_label_count = len(column_labels) * if col_label_count != col_count: * raise PyreadstatError("length of column labels must be the same as number of columns") # <<<<<<<<<<<<<< @@ -14532,7 +14575,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d * strref_cnt = 0 */ __pyx_t_13 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 817, __pyx_L23_error) + __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 819, __pyx_L23_error) __Pyx_GOTREF(__pyx_t_10); __pyx_t_5 = 1; #if CYTHON_UNPACK_METHODS @@ -14551,14 +14594,14 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_10, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0; __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 817, __pyx_L23_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 819, __pyx_L23_error) __Pyx_GOTREF(__pyx_t_1); } __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __PYX_ERR(0, 817, __pyx_L23_error) + __PYX_ERR(0, 819, __pyx_L23_error) - /* "pyreadstat/_readstat_writer.pyx":816 + /* "pyreadstat/_readstat_writer.pyx":818 * * col_label_count = len(column_labels) * if col_label_count != col_count: # <<<<<<<<<<<<<< @@ -14567,7 +14610,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d */ } - /* "pyreadstat/_readstat_writer.pyx":802 + /* "pyreadstat/_readstat_writer.pyx":804 * * # add variables * if column_labels: # <<<<<<<<<<<<<< @@ -14576,7 +14619,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d */ } - /* "pyreadstat/_readstat_writer.pyx":819 + /* "pyreadstat/_readstat_writer.pyx":821 * raise PyreadstatError("length of column labels must be the same as number of columns") * * strref_cnt = 0 # <<<<<<<<<<<<<< @@ -14585,7 +14628,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d */ __pyx_v_strref_cnt = 0; - /* "pyreadstat/_readstat_writer.pyx":820 + /* "pyreadstat/_readstat_writer.pyx":822 * * strref_cnt = 0 * for col_indx in range(col_count): # <<<<<<<<<<<<<< @@ -14597,7 +14640,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d for (__pyx_t_22 = 0; __pyx_t_22 < __pyx_t_21; __pyx_t_22+=1) { __pyx_v_col_indx = __pyx_t_22; - /* "pyreadstat/_readstat_writer.pyx":821 + /* "pyreadstat/_readstat_writer.pyx":823 * strref_cnt = 0 * for col_indx in range(col_count): * curtype, max_length, _,_ = col_types[col_indx] # <<<<<<<<<<<<<< @@ -14606,9 +14649,9 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d */ if (unlikely(__pyx_v_col_types == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 821, __pyx_L23_error) + __PYX_ERR(0, 823, __pyx_L23_error) } - __pyx_t_1 = __Pyx_GetItemInt_List(__pyx_v_col_types, __pyx_v_col_indx, int, 1, __Pyx_PyLong_From_int, 1, 1, 1, 1, __Pyx_ReferenceSharing_OwnStrongReference); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 821, __pyx_L23_error) + __pyx_t_1 = __Pyx_GetItemInt_List(__pyx_v_col_types, __pyx_v_col_indx, int, 1, __Pyx_PyLong_From_int, 1, 1, 1, 1, __Pyx_ReferenceSharing_OwnStrongReference); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 823, __pyx_L23_error) __Pyx_GOTREF(__pyx_t_1); if ((likely(PyTuple_CheckExact(__pyx_t_1))) || (PyList_CheckExact(__pyx_t_1))) { PyObject* sequence = __pyx_t_1; @@ -14616,7 +14659,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d if (unlikely(size != 4)) { if (size > 4) __Pyx_RaiseTooManyValuesError(4); else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); - __PYX_ERR(0, 821, __pyx_L23_error) + __PYX_ERR(0, 823, __pyx_L23_error) } #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS if (likely(PyTuple_CheckExact(sequence))) { @@ -14630,16 +14673,16 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d __Pyx_INCREF(__pyx_t_3); } else { __pyx_t_10 = __Pyx_PyList_GetItemRefFast(sequence, 0, __Pyx_ReferenceSharing_SharedReference); - if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 821, __pyx_L23_error) + if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 823, __pyx_L23_error) __Pyx_XGOTREF(__pyx_t_10); __pyx_t_13 = __Pyx_PyList_GetItemRefFast(sequence, 1, __Pyx_ReferenceSharing_SharedReference); - if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 821, __pyx_L23_error) + if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 823, __pyx_L23_error) __Pyx_XGOTREF(__pyx_t_13); __pyx_t_4 = __Pyx_PyList_GetItemRefFast(sequence, 2, __Pyx_ReferenceSharing_SharedReference); - if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 821, __pyx_L23_error) + if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 823, __pyx_L23_error) __Pyx_XGOTREF(__pyx_t_4); __pyx_t_3 = __Pyx_PyList_GetItemRefFast(sequence, 3, __Pyx_ReferenceSharing_SharedReference); - if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 821, __pyx_L23_error) + if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 823, __pyx_L23_error) __Pyx_XGOTREF(__pyx_t_3); } #else @@ -14647,7 +14690,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d Py_ssize_t i; PyObject** temps[4] = {&__pyx_t_10,&__pyx_t_13,&__pyx_t_4,&__pyx_t_3}; for (i=0; i < 4; i++) { - PyObject* item = __Pyx_PySequence_ITEM(sequence, i); if (unlikely(!item)) __PYX_ERR(0, 821, __pyx_L23_error) + PyObject* item = __Pyx_PySequence_ITEM(sequence, i); if (unlikely(!item)) __PYX_ERR(0, 823, __pyx_L23_error) __Pyx_GOTREF(item); *(temps[i]) = item; } @@ -14657,7 +14700,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d } else { Py_ssize_t index = -1; PyObject** temps[4] = {&__pyx_t_10,&__pyx_t_13,&__pyx_t_4,&__pyx_t_3}; - __pyx_t_9 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 821, __pyx_L23_error) + __pyx_t_9 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 823, __pyx_L23_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_11 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_9); @@ -14666,7 +14709,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d __Pyx_GOTREF(item); *(temps[index]) = item; } - if (__Pyx_IternextUnpackEndCheck(__pyx_t_11(__pyx_t_9), 4) < (0)) __PYX_ERR(0, 821, __pyx_L23_error) + if (__Pyx_IternextUnpackEndCheck(__pyx_t_11(__pyx_t_9), 4) < (0)) __PYX_ERR(0, 823, __pyx_L23_error) __pyx_t_11 = NULL; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; goto __pyx_L51_unpacking_done; @@ -14674,12 +14717,12 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_11 = NULL; if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); - __PYX_ERR(0, 821, __pyx_L23_error) + __PYX_ERR(0, 823, __pyx_L23_error) __pyx_L51_unpacking_done:; } - __pyx_t_24 = ((__pyx_t_10pyreadstat_16_readstat_writer_pywriter_variable_type)__Pyx_PyLong_As___pyx_t_10pyreadstat_16_readstat_writer_pywriter_variable_type(__pyx_t_10)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 821, __pyx_L23_error) + __pyx_t_24 = ((__pyx_t_10pyreadstat_16_readstat_writer_pywriter_variable_type)__Pyx_PyLong_As___pyx_t_10pyreadstat_16_readstat_writer_pywriter_variable_type(__pyx_t_10)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 823, __pyx_L23_error) __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - __pyx_t_25 = __Pyx_PyLong_As_int(__pyx_t_13); if (unlikely((__pyx_t_25 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 821, __pyx_L23_error) + __pyx_t_25 = __Pyx_PyLong_As_int(__pyx_t_13); if (unlikely((__pyx_t_25 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 823, __pyx_L23_error) __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; __pyx_v_curtype = __pyx_t_24; __pyx_v_max_length = __pyx_t_25; @@ -14688,7 +14731,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d __Pyx_DECREF_SET(__pyx_v__, __pyx_t_3); __pyx_t_3 = 0; - /* "pyreadstat/_readstat_writer.pyx":822 + /* "pyreadstat/_readstat_writer.pyx":824 * for col_indx in range(col_count): * curtype, max_length, _,_ = col_types[col_indx] * variable_name = col_names[col_indx] # <<<<<<<<<<<<<< @@ -14697,14 +14740,14 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d */ if (unlikely(__pyx_v_col_names == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 822, __pyx_L23_error) + __PYX_ERR(0, 824, __pyx_L23_error) } - __pyx_t_1 = __Pyx_GetItemInt_List(__pyx_v_col_names, __pyx_v_col_indx, int, 1, __Pyx_PyLong_From_int, 1, 1, 1, 1, __Pyx_ReferenceSharing_OwnStrongReference); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 822, __pyx_L23_error) + __pyx_t_1 = __Pyx_GetItemInt_List(__pyx_v_col_names, __pyx_v_col_indx, int, 1, __Pyx_PyLong_From_int, 1, 1, 1, 1, __Pyx_ReferenceSharing_OwnStrongReference); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 824, __pyx_L23_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_XDECREF_SET(__pyx_v_variable_name, __pyx_t_1); __pyx_t_1 = 0; - /* "pyreadstat/_readstat_writer.pyx":824 + /* "pyreadstat/_readstat_writer.pyx":826 * variable_name = col_names[col_indx] * # add variable * variable = readstat_add_variable(writer, variable_name.encode("utf-8"), narwhals_to_readstat_types[curtype], max_length) # <<<<<<<<<<<<<< @@ -14718,35 +14761,35 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_mstate_global->__pyx_kp_u_utf_8}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_encode, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 824, __pyx_L23_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 826, __pyx_L23_error) __Pyx_GOTREF(__pyx_t_1); } - __pyx_t_26 = __Pyx_PyObject_AsString(__pyx_t_1); if (unlikely((!__pyx_t_26) && PyErr_Occurred())) __PYX_ERR(0, 824, __pyx_L23_error) + __pyx_t_26 = __Pyx_PyObject_AsString(__pyx_t_1); if (unlikely((!__pyx_t_26) && PyErr_Occurred())) __PYX_ERR(0, 826, __pyx_L23_error) if (unlikely(__pyx_v_10pyreadstat_16_readstat_writer_narwhals_to_readstat_types == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 824, __pyx_L23_error) + __PYX_ERR(0, 826, __pyx_L23_error) } - __pyx_t_3 = __Pyx_PyLong_From___pyx_t_10pyreadstat_16_readstat_writer_pywriter_variable_type(__pyx_v_curtype); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 824, __pyx_L23_error) + __pyx_t_3 = __Pyx_PyLong_From___pyx_t_10pyreadstat_16_readstat_writer_pywriter_variable_type(__pyx_v_curtype); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 826, __pyx_L23_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = __Pyx_PyDict_GetItem(__pyx_v_10pyreadstat_16_readstat_writer_narwhals_to_readstat_types, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 824, __pyx_L23_error) + __pyx_t_4 = __Pyx_PyDict_GetItem(__pyx_v_10pyreadstat_16_readstat_writer_narwhals_to_readstat_types, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 826, __pyx_L23_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_27 = ((readstat_type_t)__Pyx_PyLong_As_readstat_type_t(__pyx_t_4)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 824, __pyx_L23_error) + __pyx_t_27 = ((readstat_type_t)__Pyx_PyLong_As_readstat_type_t(__pyx_t_4)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 826, __pyx_L23_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_v_variable = readstat_add_variable(__pyx_v_writer, __pyx_t_26, __pyx_t_27, __pyx_v_max_length); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "pyreadstat/_readstat_writer.pyx":826 + /* "pyreadstat/_readstat_writer.pyx":828 * variable = readstat_add_variable(writer, variable_name.encode("utf-8"), narwhals_to_readstat_types[curtype], max_length) * # add format * if variable_format: # <<<<<<<<<<<<<< * tempformat = variable_format.get(variable_name) * if tempformat: */ - __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_v_variable_format); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(0, 826, __pyx_L23_error) + __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_v_variable_format); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(0, 828, __pyx_L23_error) if (__pyx_t_6) { - /* "pyreadstat/_readstat_writer.pyx":827 + /* "pyreadstat/_readstat_writer.pyx":829 * # add format * if variable_format: * tempformat = variable_format.get(variable_name) # <<<<<<<<<<<<<< @@ -14755,15 +14798,15 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d */ if (unlikely(__pyx_v_variable_format == Py_None)) { PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "get"); - __PYX_ERR(0, 827, __pyx_L23_error) + __PYX_ERR(0, 829, __pyx_L23_error) } - __pyx_t_1 = __Pyx_PyDict_GetItemDefault(__pyx_v_variable_format, __pyx_v_variable_name, Py_None); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 827, __pyx_L23_error) + __pyx_t_1 = __Pyx_PyDict_GetItemDefault(__pyx_v_variable_format, __pyx_v_variable_name, Py_None); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 829, __pyx_L23_error) __Pyx_GOTREF(__pyx_t_1); - if (!(likely(PyUnicode_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("str", __pyx_t_1))) __PYX_ERR(0, 827, __pyx_L23_error) + if (!(likely(PyUnicode_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("str", __pyx_t_1))) __PYX_ERR(0, 829, __pyx_L23_error) __Pyx_XDECREF_SET(__pyx_v_tempformat, ((PyObject*)__pyx_t_1)); __pyx_t_1 = 0; - /* "pyreadstat/_readstat_writer.pyx":828 + /* "pyreadstat/_readstat_writer.pyx":830 * if variable_format: * tempformat = variable_format.get(variable_name) * if tempformat: # <<<<<<<<<<<<<< @@ -14774,13 +14817,13 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d else { Py_ssize_t __pyx_temp = __Pyx_PyUnicode_IS_TRUE(__pyx_v_tempformat); - if (unlikely(((!CYTHON_ASSUME_SAFE_SIZE) && __pyx_temp < 0))) __PYX_ERR(0, 828, __pyx_L23_error) + if (unlikely(((!CYTHON_ASSUME_SAFE_SIZE) && __pyx_temp < 0))) __PYX_ERR(0, 830, __pyx_L23_error) __pyx_t_6 = (__pyx_temp != 0); } if (__pyx_t_6) { - /* "pyreadstat/_readstat_writer.pyx":829 + /* "pyreadstat/_readstat_writer.pyx":831 * tempformat = variable_format.get(variable_name) * if tempformat: * readstat_variable_set_format(variable, tempformat.encode("utf-8")) # <<<<<<<<<<<<<< @@ -14789,15 +14832,15 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d */ if (unlikely(__pyx_v_tempformat == Py_None)) { PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "encode"); - __PYX_ERR(0, 829, __pyx_L23_error) + __PYX_ERR(0, 831, __pyx_L23_error) } - __pyx_t_1 = PyUnicode_AsUTF8String(__pyx_v_tempformat); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 829, __pyx_L23_error) + __pyx_t_1 = PyUnicode_AsUTF8String(__pyx_v_tempformat); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 831, __pyx_L23_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_28 = __Pyx_PyBytes_AsString(__pyx_t_1); if (unlikely((!__pyx_t_28) && PyErr_Occurred())) __PYX_ERR(0, 829, __pyx_L23_error) + __pyx_t_28 = __Pyx_PyBytes_AsString(__pyx_t_1); if (unlikely((!__pyx_t_28) && PyErr_Occurred())) __PYX_ERR(0, 831, __pyx_L23_error) readstat_variable_set_format(__pyx_v_variable, __pyx_t_28); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "pyreadstat/_readstat_writer.pyx":828 + /* "pyreadstat/_readstat_writer.pyx":830 * if variable_format: * tempformat = variable_format.get(variable_name) * if tempformat: # <<<<<<<<<<<<<< @@ -14806,7 +14849,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d */ } - /* "pyreadstat/_readstat_writer.pyx":826 + /* "pyreadstat/_readstat_writer.pyx":828 * variable = readstat_add_variable(writer, variable_name.encode("utf-8"), narwhals_to_readstat_types[curtype], max_length) * # add format * if variable_format: # <<<<<<<<<<<<<< @@ -14815,20 +14858,20 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d */ } - /* "pyreadstat/_readstat_writer.pyx":830 + /* "pyreadstat/_readstat_writer.pyx":832 * if tempformat: * readstat_variable_set_format(variable, tempformat.encode("utf-8")) * if curtype in pyrwriter_datetimelike_types and (variable_format is None or variable_name not in variable_format.keys()): # <<<<<<<<<<<<<< * curformat = get_datetimelike_format_for_readstat(file_format, curtype) * readstat_variable_set_format(variable, curformat) */ - __pyx_t_1 = __Pyx_PyLong_From___pyx_t_10pyreadstat_16_readstat_writer_pywriter_variable_type(__pyx_v_curtype); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 830, __pyx_L23_error) + __pyx_t_1 = __Pyx_PyLong_From___pyx_t_10pyreadstat_16_readstat_writer_pywriter_variable_type(__pyx_v_curtype); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 832, __pyx_L23_error) __Pyx_GOTREF(__pyx_t_1); if (unlikely(__pyx_v_10pyreadstat_16_readstat_writer_pyrwriter_datetimelike_types == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable"); - __PYX_ERR(0, 830, __pyx_L23_error) + __PYX_ERR(0, 832, __pyx_L23_error) } - __pyx_t_20 = (__Pyx_PySet_ContainsTF(__pyx_t_1, __pyx_v_10pyreadstat_16_readstat_writer_pyrwriter_datetimelike_types, Py_EQ)); if (unlikely((__pyx_t_20 < 0))) __PYX_ERR(0, 830, __pyx_L23_error) + __pyx_t_20 = (__Pyx_PySet_ContainsTF(__pyx_t_1, __pyx_v_10pyreadstat_16_readstat_writer_pyrwriter_datetimelike_types, Py_EQ)); if (unlikely((__pyx_t_20 < 0))) __PYX_ERR(0, 832, __pyx_L23_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_20) { } else { @@ -14843,27 +14886,27 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d } if (unlikely(__pyx_v_variable_format == Py_None)) { PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "keys"); - __PYX_ERR(0, 830, __pyx_L23_error) + __PYX_ERR(0, 832, __pyx_L23_error) } - __pyx_t_1 = __Pyx_PyDict_Keys(__pyx_v_variable_format); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 830, __pyx_L23_error) + __pyx_t_1 = __Pyx_PyDict_Keys(__pyx_v_variable_format); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 832, __pyx_L23_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_20 = (__Pyx_PySequence_ContainsTF(__pyx_v_variable_name, __pyx_t_1, Py_NE)); if (unlikely((__pyx_t_20 < 0))) __PYX_ERR(0, 830, __pyx_L23_error) + __pyx_t_20 = (__Pyx_PySequence_ContainsTF(__pyx_v_variable_name, __pyx_t_1, Py_NE)); if (unlikely((__pyx_t_20 < 0))) __PYX_ERR(0, 832, __pyx_L23_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_6 = __pyx_t_20; __pyx_L55_bool_binop_done:; if (__pyx_t_6) { - /* "pyreadstat/_readstat_writer.pyx":831 + /* "pyreadstat/_readstat_writer.pyx":833 * readstat_variable_set_format(variable, tempformat.encode("utf-8")) * if curtype in pyrwriter_datetimelike_types and (variable_format is None or variable_name not in variable_format.keys()): * curformat = get_datetimelike_format_for_readstat(file_format, curtype) # <<<<<<<<<<<<<< * readstat_variable_set_format(variable, curformat) * # prepare string_ref */ - __pyx_t_18 = __pyx_f_10pyreadstat_16_readstat_writer_get_datetimelike_format_for_readstat(__pyx_v_file_format, __pyx_v_curtype); if (unlikely(__pyx_t_18 == ((void *)NULL) && PyErr_Occurred())) __PYX_ERR(0, 831, __pyx_L23_error) + __pyx_t_18 = __pyx_f_10pyreadstat_16_readstat_writer_get_datetimelike_format_for_readstat(__pyx_v_file_format, __pyx_v_curtype); if (unlikely(__pyx_t_18 == ((void *)NULL) && PyErr_Occurred())) __PYX_ERR(0, 833, __pyx_L23_error) __pyx_v_curformat = __pyx_t_18; - /* "pyreadstat/_readstat_writer.pyx":832 + /* "pyreadstat/_readstat_writer.pyx":834 * if curtype in pyrwriter_datetimelike_types and (variable_format is None or variable_name not in variable_format.keys()): * curformat = get_datetimelike_format_for_readstat(file_format, curtype) * readstat_variable_set_format(variable, curformat) # <<<<<<<<<<<<<< @@ -14872,7 +14915,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d */ readstat_variable_set_format(__pyx_v_variable, __pyx_v_curformat); - /* "pyreadstat/_readstat_writer.pyx":830 + /* "pyreadstat/_readstat_writer.pyx":832 * if tempformat: * readstat_variable_set_format(variable, tempformat.encode("utf-8")) * if curtype in pyrwriter_datetimelike_types and (variable_format is None or variable_name not in variable_format.keys()): # <<<<<<<<<<<<<< @@ -14881,7 +14924,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d */ } - /* "pyreadstat/_readstat_writer.pyx":835 + /* "pyreadstat/_readstat_writer.pyx":837 * # prepare string_ref * # for STRING_REF we have to add to a dict here before start writing * if curtype == PYWRITER_DTA_STR_REF: # <<<<<<<<<<<<<< @@ -14891,23 +14934,23 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d __pyx_t_6 = (__pyx_v_curtype == __pyx_e_10pyreadstat_16_readstat_writer_PYWRITER_DTA_STR_REF); if (__pyx_t_6) { - /* "pyreadstat/_readstat_writer.pyx":836 + /* "pyreadstat/_readstat_writer.pyx":838 * # for STRING_REF we have to add to a dict here before start writing * if curtype == PYWRITER_DTA_STR_REF: * for curval in df[variable_name]: # <<<<<<<<<<<<<< * if curval not in strref_map: * curvalstr = str(curval) */ - __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_v_df, __pyx_v_variable_name); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 836, __pyx_L23_error) + __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_v_df, __pyx_v_variable_name); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 838, __pyx_L23_error) __Pyx_GOTREF(__pyx_t_1); if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) { __pyx_t_4 = __pyx_t_1; __Pyx_INCREF(__pyx_t_4); __pyx_t_7 = 0; __pyx_t_8 = NULL; } else { - __pyx_t_7 = -1; __pyx_t_4 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 836, __pyx_L23_error) + __pyx_t_7 = -1; __pyx_t_4 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 838, __pyx_L23_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_8 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_4); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 836, __pyx_L23_error) + __pyx_t_8 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_4); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 838, __pyx_L23_error) } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; for (;;) { @@ -14916,7 +14959,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d { Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_4); #if !CYTHON_ASSUME_SAFE_SIZE - if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 836, __pyx_L23_error) + if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 838, __pyx_L23_error) #endif if (__pyx_t_7 >= __pyx_temp) break; } @@ -14926,7 +14969,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d { Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_4); #if !CYTHON_ASSUME_SAFE_SIZE - if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 836, __pyx_L23_error) + if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 838, __pyx_L23_error) #endif if (__pyx_t_7 >= __pyx_temp) break; } @@ -14937,13 +14980,13 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d #endif ++__pyx_t_7; } - if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 836, __pyx_L23_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 838, __pyx_L23_error) } else { __pyx_t_1 = __pyx_t_8(__pyx_t_4); if (unlikely(!__pyx_t_1)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { - if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(0, 836, __pyx_L23_error) + if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(0, 838, __pyx_L23_error) PyErr_Clear(); } break; @@ -14953,54 +14996,54 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d __Pyx_XDECREF_SET(__pyx_v_curval, __pyx_t_1); __pyx_t_1 = 0; - /* "pyreadstat/_readstat_writer.pyx":837 + /* "pyreadstat/_readstat_writer.pyx":839 * if curtype == PYWRITER_DTA_STR_REF: * for curval in df[variable_name]: * if curval not in strref_map: # <<<<<<<<<<<<<< * curvalstr = str(curval) * strref = readstat_add_string_ref(writer, curvalstr.encode("utf-8")) */ - __pyx_t_6 = (__Pyx_PyDict_ContainsTF(__pyx_v_curval, __pyx_v_strref_map, Py_NE)); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(0, 837, __pyx_L23_error) + __pyx_t_6 = (__Pyx_PyDict_ContainsTF(__pyx_v_curval, __pyx_v_strref_map, Py_NE)); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(0, 839, __pyx_L23_error) if (__pyx_t_6) { - /* "pyreadstat/_readstat_writer.pyx":838 + /* "pyreadstat/_readstat_writer.pyx":840 * for curval in df[variable_name]: * if curval not in strref_map: * curvalstr = str(curval) # <<<<<<<<<<<<<< * strref = readstat_add_string_ref(writer, curvalstr.encode("utf-8")) * strref_map[curvalstr] = strref_cnt */ - __pyx_t_1 = __Pyx_PyObject_Unicode(__pyx_v_curval); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 838, __pyx_L23_error) + __pyx_t_1 = __Pyx_PyObject_Unicode(__pyx_v_curval); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 840, __pyx_L23_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_XDECREF_SET(__pyx_v_curvalstr, ((PyObject*)__pyx_t_1)); __pyx_t_1 = 0; - /* "pyreadstat/_readstat_writer.pyx":839 + /* "pyreadstat/_readstat_writer.pyx":841 * if curval not in strref_map: * curvalstr = str(curval) * strref = readstat_add_string_ref(writer, curvalstr.encode("utf-8")) # <<<<<<<<<<<<<< * strref_map[curvalstr] = strref_cnt * strref_cnt += 1 */ - __pyx_t_1 = PyUnicode_AsUTF8String(__pyx_v_curvalstr); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 839, __pyx_L23_error) + __pyx_t_1 = PyUnicode_AsUTF8String(__pyx_v_curvalstr); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 841, __pyx_L23_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_29 = __Pyx_PyBytes_AsString(__pyx_t_1); if (unlikely((!__pyx_t_29) && PyErr_Occurred())) __PYX_ERR(0, 839, __pyx_L23_error) + __pyx_t_29 = __Pyx_PyBytes_AsString(__pyx_t_1); if (unlikely((!__pyx_t_29) && PyErr_Occurred())) __PYX_ERR(0, 841, __pyx_L23_error) __pyx_v_strref = readstat_add_string_ref(__pyx_v_writer, __pyx_t_29); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "pyreadstat/_readstat_writer.pyx":840 + /* "pyreadstat/_readstat_writer.pyx":842 * curvalstr = str(curval) * strref = readstat_add_string_ref(writer, curvalstr.encode("utf-8")) * strref_map[curvalstr] = strref_cnt # <<<<<<<<<<<<<< * strref_cnt += 1 * # labels */ - __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_strref_cnt); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 840, __pyx_L23_error) + __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_strref_cnt); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 842, __pyx_L23_error) __Pyx_GOTREF(__pyx_t_1); - if (unlikely((PyDict_SetItem(__pyx_v_strref_map, __pyx_v_curvalstr, __pyx_t_1) < 0))) __PYX_ERR(0, 840, __pyx_L23_error) + if (unlikely((PyDict_SetItem(__pyx_v_strref_map, __pyx_v_curvalstr, __pyx_t_1) < 0))) __PYX_ERR(0, 842, __pyx_L23_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "pyreadstat/_readstat_writer.pyx":841 + /* "pyreadstat/_readstat_writer.pyx":843 * strref = readstat_add_string_ref(writer, curvalstr.encode("utf-8")) * strref_map[curvalstr] = strref_cnt * strref_cnt += 1 # <<<<<<<<<<<<<< @@ -15009,7 +15052,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d */ __pyx_v_strref_cnt = (__pyx_v_strref_cnt + 1); - /* "pyreadstat/_readstat_writer.pyx":837 + /* "pyreadstat/_readstat_writer.pyx":839 * if curtype == PYWRITER_DTA_STR_REF: * for curval in df[variable_name]: * if curval not in strref_map: # <<<<<<<<<<<<<< @@ -15018,7 +15061,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d */ } - /* "pyreadstat/_readstat_writer.pyx":836 + /* "pyreadstat/_readstat_writer.pyx":838 * # for STRING_REF we have to add to a dict here before start writing * if curtype == PYWRITER_DTA_STR_REF: * for curval in df[variable_name]: # <<<<<<<<<<<<<< @@ -15028,7 +15071,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d } __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - /* "pyreadstat/_readstat_writer.pyx":835 + /* "pyreadstat/_readstat_writer.pyx":837 * # prepare string_ref * # for STRING_REF we have to add to a dict here before start writing * if curtype == PYWRITER_DTA_STR_REF: # <<<<<<<<<<<<<< @@ -15037,7 +15080,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d */ } - /* "pyreadstat/_readstat_writer.pyx":843 + /* "pyreadstat/_readstat_writer.pyx":845 * strref_cnt += 1 * # labels * if col_label_count: # <<<<<<<<<<<<<< @@ -15047,35 +15090,35 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d __pyx_t_6 = (__pyx_v_col_label_count != 0); if (__pyx_t_6) { - /* "pyreadstat/_readstat_writer.pyx":844 + /* "pyreadstat/_readstat_writer.pyx":846 * # labels * if col_label_count: * if column_labels[col_indx] is not None: # <<<<<<<<<<<<<< * if type(column_labels[col_indx]) != str: * raise PyreadstatError("Column labels must be strings") */ - __pyx_t_4 = __Pyx_GetItemInt(__pyx_v_column_labels, __pyx_v_col_indx, int, 1, __Pyx_PyLong_From_int, 0, 1, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 844, __pyx_L23_error) + __pyx_t_4 = __Pyx_GetItemInt(__pyx_v_column_labels, __pyx_v_col_indx, int, 1, __Pyx_PyLong_From_int, 0, 1, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 846, __pyx_L23_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_6 = (__pyx_t_4 != Py_None); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (__pyx_t_6) { - /* "pyreadstat/_readstat_writer.pyx":845 + /* "pyreadstat/_readstat_writer.pyx":847 * if col_label_count: * if column_labels[col_indx] is not None: * if type(column_labels[col_indx]) != str: # <<<<<<<<<<<<<< * raise PyreadstatError("Column labels must be strings") * cur_col_label = column_labels[col_indx].encode("utf-8") */ - __pyx_t_4 = __Pyx_GetItemInt(__pyx_v_column_labels, __pyx_v_col_indx, int, 1, __Pyx_PyLong_From_int, 0, 1, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 845, __pyx_L23_error) + __pyx_t_4 = __Pyx_GetItemInt(__pyx_v_column_labels, __pyx_v_col_indx, int, 1, __Pyx_PyLong_From_int, 0, 1, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 847, __pyx_L23_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_1 = PyObject_RichCompare(((PyObject *)Py_TYPE(__pyx_t_4)), ((PyObject *)(&PyUnicode_Type)), Py_NE); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 845, __pyx_L23_error) + __pyx_t_1 = PyObject_RichCompare(((PyObject *)Py_TYPE(__pyx_t_4)), ((PyObject *)(&PyUnicode_Type)), Py_NE); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 847, __pyx_L23_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(0, 845, __pyx_L23_error) + __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(0, 847, __pyx_L23_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (unlikely(__pyx_t_6)) { - /* "pyreadstat/_readstat_writer.pyx":846 + /* "pyreadstat/_readstat_writer.pyx":848 * if column_labels[col_indx] is not None: * if type(column_labels[col_indx]) != str: * raise PyreadstatError("Column labels must be strings") # <<<<<<<<<<<<<< @@ -15083,7 +15126,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d * readstat_variable_set_label(variable, cur_col_label) */ __pyx_t_4 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 846, __pyx_L23_error) + __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 848, __pyx_L23_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_5 = 1; #if CYTHON_UNPACK_METHODS @@ -15102,14 +15145,14 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_3, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 846, __pyx_L23_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 848, __pyx_L23_error) __Pyx_GOTREF(__pyx_t_1); } __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __PYX_ERR(0, 846, __pyx_L23_error) + __PYX_ERR(0, 848, __pyx_L23_error) - /* "pyreadstat/_readstat_writer.pyx":845 + /* "pyreadstat/_readstat_writer.pyx":847 * if col_label_count: * if column_labels[col_indx] is not None: * if type(column_labels[col_indx]) != str: # <<<<<<<<<<<<<< @@ -15118,14 +15161,14 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d */ } - /* "pyreadstat/_readstat_writer.pyx":847 + /* "pyreadstat/_readstat_writer.pyx":849 * if type(column_labels[col_indx]) != str: * raise PyreadstatError("Column labels must be strings") * cur_col_label = column_labels[col_indx].encode("utf-8") # <<<<<<<<<<<<<< * readstat_variable_set_label(variable, cur_col_label) * if variable_value_labels: */ - __pyx_t_4 = __Pyx_GetItemInt(__pyx_v_column_labels, __pyx_v_col_indx, int, 1, __Pyx_PyLong_From_int, 0, 1, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 847, __pyx_L23_error) + __pyx_t_4 = __Pyx_GetItemInt(__pyx_v_column_labels, __pyx_v_col_indx, int, 1, __Pyx_PyLong_From_int, 0, 1, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 849, __pyx_L23_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_3 = __pyx_t_4; __Pyx_INCREF(__pyx_t_3); @@ -15135,14 +15178,14 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_encode, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 847, __pyx_L23_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 849, __pyx_L23_error) __Pyx_GOTREF(__pyx_t_1); } - if (!(likely(PyBytes_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("bytes", __pyx_t_1))) __PYX_ERR(0, 847, __pyx_L23_error) + if (!(likely(PyBytes_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("bytes", __pyx_t_1))) __PYX_ERR(0, 849, __pyx_L23_error) __Pyx_XDECREF_SET(__pyx_v_cur_col_label, ((PyObject*)__pyx_t_1)); __pyx_t_1 = 0; - /* "pyreadstat/_readstat_writer.pyx":848 + /* "pyreadstat/_readstat_writer.pyx":850 * raise PyreadstatError("Column labels must be strings") * cur_col_label = column_labels[col_indx].encode("utf-8") * readstat_variable_set_label(variable, cur_col_label) # <<<<<<<<<<<<<< @@ -15151,12 +15194,12 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d */ if (unlikely(__pyx_v_cur_col_label == Py_None)) { PyErr_SetString(PyExc_TypeError, "expected bytes, NoneType found"); - __PYX_ERR(0, 848, __pyx_L23_error) + __PYX_ERR(0, 850, __pyx_L23_error) } - __pyx_t_30 = __Pyx_PyBytes_AsString(__pyx_v_cur_col_label); if (unlikely((!__pyx_t_30) && PyErr_Occurred())) __PYX_ERR(0, 848, __pyx_L23_error) + __pyx_t_30 = __Pyx_PyBytes_AsString(__pyx_v_cur_col_label); if (unlikely((!__pyx_t_30) && PyErr_Occurred())) __PYX_ERR(0, 850, __pyx_L23_error) readstat_variable_set_label(__pyx_v_variable, __pyx_t_30); - /* "pyreadstat/_readstat_writer.pyx":844 + /* "pyreadstat/_readstat_writer.pyx":846 * # labels * if col_label_count: * if column_labels[col_indx] is not None: # <<<<<<<<<<<<<< @@ -15165,7 +15208,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d */ } - /* "pyreadstat/_readstat_writer.pyx":843 + /* "pyreadstat/_readstat_writer.pyx":845 * strref_cnt += 1 * # labels * if col_label_count: # <<<<<<<<<<<<<< @@ -15174,17 +15217,17 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d */ } - /* "pyreadstat/_readstat_writer.pyx":849 + /* "pyreadstat/_readstat_writer.pyx":851 * cur_col_label = column_labels[col_indx].encode("utf-8") * readstat_variable_set_label(variable, cur_col_label) * if variable_value_labels: # <<<<<<<<<<<<<< * value_labels = variable_value_labels.get(variable_name) * if value_labels: */ - __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_v_variable_value_labels); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(0, 849, __pyx_L23_error) + __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_v_variable_value_labels); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(0, 851, __pyx_L23_error) if (__pyx_t_6) { - /* "pyreadstat/_readstat_writer.pyx":850 + /* "pyreadstat/_readstat_writer.pyx":852 * readstat_variable_set_label(variable, cur_col_label) * if variable_value_labels: * value_labels = variable_value_labels.get(variable_name) # <<<<<<<<<<<<<< @@ -15193,43 +15236,43 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d */ if (unlikely(__pyx_v_variable_value_labels == Py_None)) { PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "get"); - __PYX_ERR(0, 850, __pyx_L23_error) + __PYX_ERR(0, 852, __pyx_L23_error) } - __pyx_t_1 = __Pyx_PyDict_GetItemDefault(__pyx_v_variable_value_labels, __pyx_v_variable_name, Py_None); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 850, __pyx_L23_error) + __pyx_t_1 = __Pyx_PyDict_GetItemDefault(__pyx_v_variable_value_labels, __pyx_v_variable_name, Py_None); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 852, __pyx_L23_error) __Pyx_GOTREF(__pyx_t_1); - if (!(likely(PyDict_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("dict", __pyx_t_1))) __PYX_ERR(0, 850, __pyx_L23_error) + if (!(likely(PyDict_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("dict", __pyx_t_1))) __PYX_ERR(0, 852, __pyx_L23_error) __Pyx_XDECREF_SET(__pyx_v_value_labels, ((PyObject*)__pyx_t_1)); __pyx_t_1 = 0; - /* "pyreadstat/_readstat_writer.pyx":851 + /* "pyreadstat/_readstat_writer.pyx":853 * if variable_value_labels: * value_labels = variable_value_labels.get(variable_name) * if value_labels: # <<<<<<<<<<<<<< * labelset_name = variable_name + str(lblset_cnt) * lblset_cnt += 1 */ - __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_v_value_labels); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(0, 851, __pyx_L23_error) + __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_v_value_labels); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(0, 853, __pyx_L23_error) if (__pyx_t_6) { - /* "pyreadstat/_readstat_writer.pyx":852 + /* "pyreadstat/_readstat_writer.pyx":854 * value_labels = variable_value_labels.get(variable_name) * if value_labels: * labelset_name = variable_name + str(lblset_cnt) # <<<<<<<<<<<<<< * lblset_cnt += 1 * curuser_missing = None */ - __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_lblset_cnt); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 852, __pyx_L23_error) + __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_lblset_cnt); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 854, __pyx_L23_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_4 = __Pyx_PyObject_Unicode(__pyx_t_1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 852, __pyx_L23_error) + __pyx_t_4 = __Pyx_PyObject_Unicode(__pyx_t_1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 854, __pyx_L23_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyNumber_Add(__pyx_v_variable_name, __pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 852, __pyx_L23_error) + __pyx_t_1 = PyNumber_Add(__pyx_v_variable_name, __pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 854, __pyx_L23_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_XDECREF_SET(__pyx_v_labelset_name, __pyx_t_1); __pyx_t_1 = 0; - /* "pyreadstat/_readstat_writer.pyx":853 + /* "pyreadstat/_readstat_writer.pyx":855 * if value_labels: * labelset_name = variable_name + str(lblset_cnt) * lblset_cnt += 1 # <<<<<<<<<<<<<< @@ -15238,7 +15281,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d */ __pyx_v_lblset_cnt = (__pyx_v_lblset_cnt + 1); - /* "pyreadstat/_readstat_writer.pyx":854 + /* "pyreadstat/_readstat_writer.pyx":856 * labelset_name = variable_name + str(lblset_cnt) * lblset_cnt += 1 * curuser_missing = None # <<<<<<<<<<<<<< @@ -15248,17 +15291,17 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d __Pyx_INCREF(Py_None); __Pyx_XDECREF_SET(__pyx_v_curuser_missing, Py_None); - /* "pyreadstat/_readstat_writer.pyx":855 + /* "pyreadstat/_readstat_writer.pyx":857 * lblset_cnt += 1 * curuser_missing = None * if missing_user_values: # <<<<<<<<<<<<<< * curuser_missing = missing_user_values.get(variable_name) * label_set = set_value_label(writer, value_labels, labelset_name, */ - __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_v_missing_user_values); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(0, 855, __pyx_L23_error) + __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_v_missing_user_values); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(0, 857, __pyx_L23_error) if (__pyx_t_6) { - /* "pyreadstat/_readstat_writer.pyx":856 + /* "pyreadstat/_readstat_writer.pyx":858 * curuser_missing = None * if missing_user_values: * curuser_missing = missing_user_values.get(variable_name) # <<<<<<<<<<<<<< @@ -15267,14 +15310,14 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d */ if (unlikely(__pyx_v_missing_user_values == Py_None)) { PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "get"); - __PYX_ERR(0, 856, __pyx_L23_error) + __PYX_ERR(0, 858, __pyx_L23_error) } - __pyx_t_1 = __Pyx_PyDict_GetItemDefault(__pyx_v_missing_user_values, __pyx_v_variable_name, Py_None); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 856, __pyx_L23_error) + __pyx_t_1 = __Pyx_PyDict_GetItemDefault(__pyx_v_missing_user_values, __pyx_v_variable_name, Py_None); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 858, __pyx_L23_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_curuser_missing, __pyx_t_1); __pyx_t_1 = 0; - /* "pyreadstat/_readstat_writer.pyx":855 + /* "pyreadstat/_readstat_writer.pyx":857 * lblset_cnt += 1 * curuser_missing = None * if missing_user_values: # <<<<<<<<<<<<<< @@ -15283,7 +15326,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d */ } - /* "pyreadstat/_readstat_writer.pyx":857 + /* "pyreadstat/_readstat_writer.pyx":859 * if missing_user_values: * curuser_missing = missing_user_values.get(variable_name) * label_set = set_value_label(writer, value_labels, labelset_name, # <<<<<<<<<<<<<< @@ -15292,40 +15335,40 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d */ __pyx_t_1 = __pyx_v_labelset_name; __Pyx_INCREF(__pyx_t_1); - if (!(likely(PyUnicode_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("str", __pyx_t_1))) __PYX_ERR(0, 857, __pyx_L23_error) + if (!(likely(PyUnicode_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("str", __pyx_t_1))) __PYX_ERR(0, 859, __pyx_L23_error) - /* "pyreadstat/_readstat_writer.pyx":858 + /* "pyreadstat/_readstat_writer.pyx":860 * curuser_missing = missing_user_values.get(variable_name) * label_set = set_value_label(writer, value_labels, labelset_name, * col_names_to_types[variable_name], file_format, variable_name, curuser_missing) # <<<<<<<<<<<<<< * readstat_variable_set_label_set(variable, label_set) * # missing ranges */ - __pyx_t_4 = __Pyx_PyDict_GetItem(__pyx_v_col_names_to_types, __pyx_v_variable_name); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 858, __pyx_L23_error) + __pyx_t_4 = __Pyx_PyDict_GetItem(__pyx_v_col_names_to_types, __pyx_v_variable_name); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 860, __pyx_L23_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_24 = ((__pyx_t_10pyreadstat_16_readstat_writer_pywriter_variable_type)__Pyx_PyLong_As___pyx_t_10pyreadstat_16_readstat_writer_pywriter_variable_type(__pyx_t_4)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 858, __pyx_L23_error) + __pyx_t_24 = ((__pyx_t_10pyreadstat_16_readstat_writer_pywriter_variable_type)__Pyx_PyLong_As___pyx_t_10pyreadstat_16_readstat_writer_pywriter_variable_type(__pyx_t_4)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 860, __pyx_L23_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = __pyx_v_variable_name; __Pyx_INCREF(__pyx_t_4); - if (!(likely(PyUnicode_CheckExact(__pyx_t_4))||((__pyx_t_4) == Py_None) || __Pyx_RaiseUnexpectedTypeError("str", __pyx_t_4))) __PYX_ERR(0, 858, __pyx_L23_error) + if (!(likely(PyUnicode_CheckExact(__pyx_t_4))||((__pyx_t_4) == Py_None) || __Pyx_RaiseUnexpectedTypeError("str", __pyx_t_4))) __PYX_ERR(0, 860, __pyx_L23_error) __pyx_t_3 = __pyx_v_curuser_missing; __Pyx_INCREF(__pyx_t_3); - if (!(likely(PyList_CheckExact(__pyx_t_3))||((__pyx_t_3) == Py_None) || __Pyx_RaiseUnexpectedTypeError("list", __pyx_t_3))) __PYX_ERR(0, 858, __pyx_L23_error) + if (!(likely(PyList_CheckExact(__pyx_t_3))||((__pyx_t_3) == Py_None) || __Pyx_RaiseUnexpectedTypeError("list", __pyx_t_3))) __PYX_ERR(0, 860, __pyx_L23_error) - /* "pyreadstat/_readstat_writer.pyx":857 + /* "pyreadstat/_readstat_writer.pyx":859 * if missing_user_values: * curuser_missing = missing_user_values.get(variable_name) * label_set = set_value_label(writer, value_labels, labelset_name, # <<<<<<<<<<<<<< * col_names_to_types[variable_name], file_format, variable_name, curuser_missing) * readstat_variable_set_label_set(variable, label_set) */ - __pyx_t_31 = __pyx_f_10pyreadstat_16_readstat_writer_set_value_label(__pyx_v_writer, __pyx_v_value_labels, ((PyObject*)__pyx_t_1), __pyx_t_24, __pyx_v_file_format, ((PyObject*)__pyx_t_4), ((PyObject*)__pyx_t_3)); if (unlikely(__pyx_t_31 == ((void *)NULL) && PyErr_Occurred())) __PYX_ERR(0, 857, __pyx_L23_error) + __pyx_t_31 = __pyx_f_10pyreadstat_16_readstat_writer_set_value_label(__pyx_v_writer, __pyx_v_value_labels, ((PyObject*)__pyx_t_1), __pyx_t_24, __pyx_v_file_format, ((PyObject*)__pyx_t_4), ((PyObject*)__pyx_t_3)); if (unlikely(__pyx_t_31 == ((void *)NULL) && PyErr_Occurred())) __PYX_ERR(0, 859, __pyx_L23_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_v_label_set = __pyx_t_31; - /* "pyreadstat/_readstat_writer.pyx":859 + /* "pyreadstat/_readstat_writer.pyx":861 * label_set = set_value_label(writer, value_labels, labelset_name, * col_names_to_types[variable_name], file_format, variable_name, curuser_missing) * readstat_variable_set_label_set(variable, label_set) # <<<<<<<<<<<<<< @@ -15334,7 +15377,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d */ readstat_variable_set_label_set(__pyx_v_variable, __pyx_v_label_set); - /* "pyreadstat/_readstat_writer.pyx":851 + /* "pyreadstat/_readstat_writer.pyx":853 * if variable_value_labels: * value_labels = variable_value_labels.get(variable_name) * if value_labels: # <<<<<<<<<<<<<< @@ -15343,7 +15386,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d */ } - /* "pyreadstat/_readstat_writer.pyx":849 + /* "pyreadstat/_readstat_writer.pyx":851 * cur_col_label = column_labels[col_indx].encode("utf-8") * readstat_variable_set_label(variable, cur_col_label) * if variable_value_labels: # <<<<<<<<<<<<<< @@ -15352,17 +15395,17 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d */ } - /* "pyreadstat/_readstat_writer.pyx":861 + /* "pyreadstat/_readstat_writer.pyx":863 * readstat_variable_set_label_set(variable, label_set) * # missing ranges * if missing_ranges: # <<<<<<<<<<<<<< * cur_ranges = missing_ranges.get(variable_name) * if cur_ranges: */ - __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_v_missing_ranges); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(0, 861, __pyx_L23_error) + __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_v_missing_ranges); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(0, 863, __pyx_L23_error) if (__pyx_t_6) { - /* "pyreadstat/_readstat_writer.pyx":862 + /* "pyreadstat/_readstat_writer.pyx":864 * # missing ranges * if missing_ranges: * cur_ranges = missing_ranges.get(variable_name) # <<<<<<<<<<<<<< @@ -15371,24 +15414,24 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d */ if (unlikely(__pyx_v_missing_ranges == Py_None)) { PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "get"); - __PYX_ERR(0, 862, __pyx_L23_error) + __PYX_ERR(0, 864, __pyx_L23_error) } - __pyx_t_3 = __Pyx_PyDict_GetItemDefault(__pyx_v_missing_ranges, __pyx_v_variable_name, Py_None); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 862, __pyx_L23_error) + __pyx_t_3 = __Pyx_PyDict_GetItemDefault(__pyx_v_missing_ranges, __pyx_v_variable_name, Py_None); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 864, __pyx_L23_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_XDECREF_SET(__pyx_v_cur_ranges, __pyx_t_3); __pyx_t_3 = 0; - /* "pyreadstat/_readstat_writer.pyx":863 + /* "pyreadstat/_readstat_writer.pyx":865 * if missing_ranges: * cur_ranges = missing_ranges.get(variable_name) * if cur_ranges: # <<<<<<<<<<<<<< * if not isinstance(cur_ranges, list): * msg = "missing_ranges: values in dictionary must be list" */ - __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_v_cur_ranges); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(0, 863, __pyx_L23_error) + __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_v_cur_ranges); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(0, 865, __pyx_L23_error) if (__pyx_t_6) { - /* "pyreadstat/_readstat_writer.pyx":864 + /* "pyreadstat/_readstat_writer.pyx":866 * cur_ranges = missing_ranges.get(variable_name) * if cur_ranges: * if not isinstance(cur_ranges, list): # <<<<<<<<<<<<<< @@ -15399,7 +15442,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d __pyx_t_20 = (!__pyx_t_6); if (unlikely(__pyx_t_20)) { - /* "pyreadstat/_readstat_writer.pyx":865 + /* "pyreadstat/_readstat_writer.pyx":867 * if cur_ranges: * if not isinstance(cur_ranges, list): * msg = "missing_ranges: values in dictionary must be list" # <<<<<<<<<<<<<< @@ -15409,7 +15452,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d __Pyx_INCREF(__pyx_mstate_global->__pyx_kp_u_missing_ranges_values_in_diction); __pyx_v_msg = __pyx_mstate_global->__pyx_kp_u_missing_ranges_values_in_diction; - /* "pyreadstat/_readstat_writer.pyx":866 + /* "pyreadstat/_readstat_writer.pyx":868 * if not isinstance(cur_ranges, list): * msg = "missing_ranges: values in dictionary must be list" * raise PyreadstatError(msg) # <<<<<<<<<<<<<< @@ -15417,7 +15460,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d * if variable_alignment: */ __pyx_t_4 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 866, __pyx_L23_error) + __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 868, __pyx_L23_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_5 = 1; #if CYTHON_UNPACK_METHODS @@ -15436,14 +15479,14 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_1, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 866, __pyx_L23_error) + if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 868, __pyx_L23_error) __Pyx_GOTREF(__pyx_t_3); } __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __PYX_ERR(0, 866, __pyx_L23_error) + __PYX_ERR(0, 868, __pyx_L23_error) - /* "pyreadstat/_readstat_writer.pyx":864 + /* "pyreadstat/_readstat_writer.pyx":866 * cur_ranges = missing_ranges.get(variable_name) * if cur_ranges: * if not isinstance(cur_ranges, list): # <<<<<<<<<<<<<< @@ -15452,7 +15495,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d */ } - /* "pyreadstat/_readstat_writer.pyx":867 + /* "pyreadstat/_readstat_writer.pyx":869 * msg = "missing_ranges: values in dictionary must be list" * raise PyreadstatError(msg) * add_missing_ranges(cur_ranges, variable, curtype, variable_name) # <<<<<<<<<<<<<< @@ -15461,15 +15504,15 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d */ __pyx_t_3 = __pyx_v_cur_ranges; __Pyx_INCREF(__pyx_t_3); - if (!(likely(PyList_CheckExact(__pyx_t_3))||((__pyx_t_3) == Py_None) || __Pyx_RaiseUnexpectedTypeError("list", __pyx_t_3))) __PYX_ERR(0, 867, __pyx_L23_error) + if (!(likely(PyList_CheckExact(__pyx_t_3))||((__pyx_t_3) == Py_None) || __Pyx_RaiseUnexpectedTypeError("list", __pyx_t_3))) __PYX_ERR(0, 869, __pyx_L23_error) __pyx_t_1 = __pyx_v_variable_name; __Pyx_INCREF(__pyx_t_1); - if (!(likely(PyUnicode_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("str", __pyx_t_1))) __PYX_ERR(0, 867, __pyx_L23_error) - __pyx_f_10pyreadstat_16_readstat_writer_add_missing_ranges(((PyObject*)__pyx_t_3), __pyx_v_variable, __pyx_v_curtype, ((PyObject*)__pyx_t_1)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 867, __pyx_L23_error) + if (!(likely(PyUnicode_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("str", __pyx_t_1))) __PYX_ERR(0, 869, __pyx_L23_error) + __pyx_f_10pyreadstat_16_readstat_writer_add_missing_ranges(((PyObject*)__pyx_t_3), __pyx_v_variable, __pyx_v_curtype, ((PyObject*)__pyx_t_1)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 869, __pyx_L23_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "pyreadstat/_readstat_writer.pyx":863 + /* "pyreadstat/_readstat_writer.pyx":865 * if missing_ranges: * cur_ranges = missing_ranges.get(variable_name) * if cur_ranges: # <<<<<<<<<<<<<< @@ -15478,7 +15521,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d */ } - /* "pyreadstat/_readstat_writer.pyx":861 + /* "pyreadstat/_readstat_writer.pyx":863 * readstat_variable_set_label_set(variable, label_set) * # missing ranges * if missing_ranges: # <<<<<<<<<<<<<< @@ -15487,17 +15530,17 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d */ } - /* "pyreadstat/_readstat_writer.pyx":868 + /* "pyreadstat/_readstat_writer.pyx":870 * raise PyreadstatError(msg) * add_missing_ranges(cur_ranges, variable, curtype, variable_name) * if variable_alignment: # <<<<<<<<<<<<<< * # At the moment this is ineffective for sav and dta (the function runs but in * # the resulting file all alignments are still unknown) */ - __pyx_t_20 = __Pyx_PyObject_IsTrue(__pyx_v_variable_alignment); if (unlikely((__pyx_t_20 < 0))) __PYX_ERR(0, 868, __pyx_L23_error) + __pyx_t_20 = __Pyx_PyObject_IsTrue(__pyx_v_variable_alignment); if (unlikely((__pyx_t_20 < 0))) __PYX_ERR(0, 870, __pyx_L23_error) if (__pyx_t_20) { - /* "pyreadstat/_readstat_writer.pyx":871 + /* "pyreadstat/_readstat_writer.pyx":873 * # At the moment this is ineffective for sav and dta (the function runs but in * # the resulting file all alignments are still unknown) * cur_alignment = variable_alignment.get(variable_name) # <<<<<<<<<<<<<< @@ -15506,24 +15549,24 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d */ if (unlikely(__pyx_v_variable_alignment == Py_None)) { PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "get"); - __PYX_ERR(0, 871, __pyx_L23_error) + __PYX_ERR(0, 873, __pyx_L23_error) } - __pyx_t_1 = __Pyx_PyDict_GetItemDefault(__pyx_v_variable_alignment, __pyx_v_variable_name, Py_None); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 871, __pyx_L23_error) + __pyx_t_1 = __Pyx_PyDict_GetItemDefault(__pyx_v_variable_alignment, __pyx_v_variable_name, Py_None); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 873, __pyx_L23_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_XDECREF_SET(__pyx_v_cur_alignment, __pyx_t_1); __pyx_t_1 = 0; - /* "pyreadstat/_readstat_writer.pyx":872 + /* "pyreadstat/_readstat_writer.pyx":874 * # the resulting file all alignments are still unknown) * cur_alignment = variable_alignment.get(variable_name) * if cur_alignment: # <<<<<<<<<<<<<< * set_variable_alignment(variable, cur_alignment, variable_name) * if variable_display_width: */ - __pyx_t_20 = __Pyx_PyObject_IsTrue(__pyx_v_cur_alignment); if (unlikely((__pyx_t_20 < 0))) __PYX_ERR(0, 872, __pyx_L23_error) + __pyx_t_20 = __Pyx_PyObject_IsTrue(__pyx_v_cur_alignment); if (unlikely((__pyx_t_20 < 0))) __PYX_ERR(0, 874, __pyx_L23_error) if (__pyx_t_20) { - /* "pyreadstat/_readstat_writer.pyx":873 + /* "pyreadstat/_readstat_writer.pyx":875 * cur_alignment = variable_alignment.get(variable_name) * if cur_alignment: * set_variable_alignment(variable, cur_alignment, variable_name) # <<<<<<<<<<<<<< @@ -15532,15 +15575,15 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d */ __pyx_t_1 = __pyx_v_cur_alignment; __Pyx_INCREF(__pyx_t_1); - if (!(likely(PyUnicode_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("str", __pyx_t_1))) __PYX_ERR(0, 873, __pyx_L23_error) + if (!(likely(PyUnicode_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("str", __pyx_t_1))) __PYX_ERR(0, 875, __pyx_L23_error) __pyx_t_3 = __pyx_v_variable_name; __Pyx_INCREF(__pyx_t_3); - if (!(likely(PyUnicode_CheckExact(__pyx_t_3))||((__pyx_t_3) == Py_None) || __Pyx_RaiseUnexpectedTypeError("str", __pyx_t_3))) __PYX_ERR(0, 873, __pyx_L23_error) - __pyx_f_10pyreadstat_16_readstat_writer_set_variable_alignment(__pyx_v_variable, ((PyObject*)__pyx_t_1), ((PyObject*)__pyx_t_3)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 873, __pyx_L23_error) + if (!(likely(PyUnicode_CheckExact(__pyx_t_3))||((__pyx_t_3) == Py_None) || __Pyx_RaiseUnexpectedTypeError("str", __pyx_t_3))) __PYX_ERR(0, 875, __pyx_L23_error) + __pyx_f_10pyreadstat_16_readstat_writer_set_variable_alignment(__pyx_v_variable, ((PyObject*)__pyx_t_1), ((PyObject*)__pyx_t_3)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 875, __pyx_L23_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - /* "pyreadstat/_readstat_writer.pyx":872 + /* "pyreadstat/_readstat_writer.pyx":874 * # the resulting file all alignments are still unknown) * cur_alignment = variable_alignment.get(variable_name) * if cur_alignment: # <<<<<<<<<<<<<< @@ -15549,7 +15592,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d */ } - /* "pyreadstat/_readstat_writer.pyx":868 + /* "pyreadstat/_readstat_writer.pyx":870 * raise PyreadstatError(msg) * add_missing_ranges(cur_ranges, variable, curtype, variable_name) * if variable_alignment: # <<<<<<<<<<<<<< @@ -15558,17 +15601,17 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d */ } - /* "pyreadstat/_readstat_writer.pyx":874 + /* "pyreadstat/_readstat_writer.pyx":876 * if cur_alignment: * set_variable_alignment(variable, cur_alignment, variable_name) * if variable_display_width: # <<<<<<<<<<<<<< * cur_display_width = variable_display_width.get(variable_name) * if cur_display_width: */ - __pyx_t_20 = __Pyx_PyObject_IsTrue(__pyx_v_variable_display_width); if (unlikely((__pyx_t_20 < 0))) __PYX_ERR(0, 874, __pyx_L23_error) + __pyx_t_20 = __Pyx_PyObject_IsTrue(__pyx_v_variable_display_width); if (unlikely((__pyx_t_20 < 0))) __PYX_ERR(0, 876, __pyx_L23_error) if (__pyx_t_20) { - /* "pyreadstat/_readstat_writer.pyx":875 + /* "pyreadstat/_readstat_writer.pyx":877 * set_variable_alignment(variable, cur_alignment, variable_name) * if variable_display_width: * cur_display_width = variable_display_width.get(variable_name) # <<<<<<<<<<<<<< @@ -15577,38 +15620,38 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d */ if (unlikely(__pyx_v_variable_display_width == Py_None)) { PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "get"); - __PYX_ERR(0, 875, __pyx_L23_error) + __PYX_ERR(0, 877, __pyx_L23_error) } - __pyx_t_3 = __Pyx_PyDict_GetItemDefault(__pyx_v_variable_display_width, __pyx_v_variable_name, Py_None); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 875, __pyx_L23_error) + __pyx_t_3 = __Pyx_PyDict_GetItemDefault(__pyx_v_variable_display_width, __pyx_v_variable_name, Py_None); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 877, __pyx_L23_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_XDECREF_SET(__pyx_v_cur_display_width, __pyx_t_3); __pyx_t_3 = 0; - /* "pyreadstat/_readstat_writer.pyx":876 + /* "pyreadstat/_readstat_writer.pyx":878 * if variable_display_width: * cur_display_width = variable_display_width.get(variable_name) * if cur_display_width: # <<<<<<<<<<<<<< * set_variable_display_width(variable, cur_display_width, variable_name) * if variable_measure: */ - __pyx_t_20 = __Pyx_PyObject_IsTrue(__pyx_v_cur_display_width); if (unlikely((__pyx_t_20 < 0))) __PYX_ERR(0, 876, __pyx_L23_error) + __pyx_t_20 = __Pyx_PyObject_IsTrue(__pyx_v_cur_display_width); if (unlikely((__pyx_t_20 < 0))) __PYX_ERR(0, 878, __pyx_L23_error) if (__pyx_t_20) { - /* "pyreadstat/_readstat_writer.pyx":877 + /* "pyreadstat/_readstat_writer.pyx":879 * cur_display_width = variable_display_width.get(variable_name) * if cur_display_width: * set_variable_display_width(variable, cur_display_width, variable_name) # <<<<<<<<<<<<<< * if variable_measure: * cur_measure = variable_measure.get(variable_name) */ - __pyx_t_25 = __Pyx_PyLong_As_int(__pyx_v_cur_display_width); if (unlikely((__pyx_t_25 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 877, __pyx_L23_error) + __pyx_t_25 = __Pyx_PyLong_As_int(__pyx_v_cur_display_width); if (unlikely((__pyx_t_25 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 879, __pyx_L23_error) __pyx_t_3 = __pyx_v_variable_name; __Pyx_INCREF(__pyx_t_3); - if (!(likely(PyUnicode_CheckExact(__pyx_t_3))||((__pyx_t_3) == Py_None) || __Pyx_RaiseUnexpectedTypeError("str", __pyx_t_3))) __PYX_ERR(0, 877, __pyx_L23_error) - __pyx_f_10pyreadstat_16_readstat_writer_set_variable_display_width(__pyx_v_variable, __pyx_t_25, ((PyObject*)__pyx_t_3)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 877, __pyx_L23_error) + if (!(likely(PyUnicode_CheckExact(__pyx_t_3))||((__pyx_t_3) == Py_None) || __Pyx_RaiseUnexpectedTypeError("str", __pyx_t_3))) __PYX_ERR(0, 879, __pyx_L23_error) + __pyx_f_10pyreadstat_16_readstat_writer_set_variable_display_width(__pyx_v_variable, __pyx_t_25, ((PyObject*)__pyx_t_3)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 879, __pyx_L23_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - /* "pyreadstat/_readstat_writer.pyx":876 + /* "pyreadstat/_readstat_writer.pyx":878 * if variable_display_width: * cur_display_width = variable_display_width.get(variable_name) * if cur_display_width: # <<<<<<<<<<<<<< @@ -15617,7 +15660,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d */ } - /* "pyreadstat/_readstat_writer.pyx":874 + /* "pyreadstat/_readstat_writer.pyx":876 * if cur_alignment: * set_variable_alignment(variable, cur_alignment, variable_name) * if variable_display_width: # <<<<<<<<<<<<<< @@ -15626,17 +15669,17 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d */ } - /* "pyreadstat/_readstat_writer.pyx":878 + /* "pyreadstat/_readstat_writer.pyx":880 * if cur_display_width: * set_variable_display_width(variable, cur_display_width, variable_name) * if variable_measure: # <<<<<<<<<<<<<< * cur_measure = variable_measure.get(variable_name) * if cur_measure: */ - __pyx_t_20 = __Pyx_PyObject_IsTrue(__pyx_v_variable_measure); if (unlikely((__pyx_t_20 < 0))) __PYX_ERR(0, 878, __pyx_L23_error) + __pyx_t_20 = __Pyx_PyObject_IsTrue(__pyx_v_variable_measure); if (unlikely((__pyx_t_20 < 0))) __PYX_ERR(0, 880, __pyx_L23_error) if (__pyx_t_20) { - /* "pyreadstat/_readstat_writer.pyx":879 + /* "pyreadstat/_readstat_writer.pyx":881 * set_variable_display_width(variable, cur_display_width, variable_name) * if variable_measure: * cur_measure = variable_measure.get(variable_name) # <<<<<<<<<<<<<< @@ -15645,24 +15688,24 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d */ if (unlikely(__pyx_v_variable_measure == Py_None)) { PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "get"); - __PYX_ERR(0, 879, __pyx_L23_error) + __PYX_ERR(0, 881, __pyx_L23_error) } - __pyx_t_3 = __Pyx_PyDict_GetItemDefault(__pyx_v_variable_measure, __pyx_v_variable_name, Py_None); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 879, __pyx_L23_error) + __pyx_t_3 = __Pyx_PyDict_GetItemDefault(__pyx_v_variable_measure, __pyx_v_variable_name, Py_None); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 881, __pyx_L23_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_XDECREF_SET(__pyx_v_cur_measure, __pyx_t_3); __pyx_t_3 = 0; - /* "pyreadstat/_readstat_writer.pyx":880 + /* "pyreadstat/_readstat_writer.pyx":882 * if variable_measure: * cur_measure = variable_measure.get(variable_name) * if cur_measure: # <<<<<<<<<<<<<< * set_variable_measure(variable, cur_measure, variable_name) * */ - __pyx_t_20 = __Pyx_PyObject_IsTrue(__pyx_v_cur_measure); if (unlikely((__pyx_t_20 < 0))) __PYX_ERR(0, 880, __pyx_L23_error) + __pyx_t_20 = __Pyx_PyObject_IsTrue(__pyx_v_cur_measure); if (unlikely((__pyx_t_20 < 0))) __PYX_ERR(0, 882, __pyx_L23_error) if (__pyx_t_20) { - /* "pyreadstat/_readstat_writer.pyx":881 + /* "pyreadstat/_readstat_writer.pyx":883 * cur_measure = variable_measure.get(variable_name) * if cur_measure: * set_variable_measure(variable, cur_measure, variable_name) # <<<<<<<<<<<<<< @@ -15671,15 +15714,15 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d */ __pyx_t_3 = __pyx_v_cur_measure; __Pyx_INCREF(__pyx_t_3); - if (!(likely(PyUnicode_CheckExact(__pyx_t_3))||((__pyx_t_3) == Py_None) || __Pyx_RaiseUnexpectedTypeError("str", __pyx_t_3))) __PYX_ERR(0, 881, __pyx_L23_error) + if (!(likely(PyUnicode_CheckExact(__pyx_t_3))||((__pyx_t_3) == Py_None) || __Pyx_RaiseUnexpectedTypeError("str", __pyx_t_3))) __PYX_ERR(0, 883, __pyx_L23_error) __pyx_t_1 = __pyx_v_variable_name; __Pyx_INCREF(__pyx_t_1); - if (!(likely(PyUnicode_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("str", __pyx_t_1))) __PYX_ERR(0, 881, __pyx_L23_error) - __pyx_f_10pyreadstat_16_readstat_writer_set_variable_measure(__pyx_v_variable, ((PyObject*)__pyx_t_3), ((PyObject*)__pyx_t_1)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 881, __pyx_L23_error) + if (!(likely(PyUnicode_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("str", __pyx_t_1))) __PYX_ERR(0, 883, __pyx_L23_error) + __pyx_f_10pyreadstat_16_readstat_writer_set_variable_measure(__pyx_v_variable, ((PyObject*)__pyx_t_3), ((PyObject*)__pyx_t_1)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 883, __pyx_L23_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "pyreadstat/_readstat_writer.pyx":880 + /* "pyreadstat/_readstat_writer.pyx":882 * if variable_measure: * cur_measure = variable_measure.get(variable_name) * if cur_measure: # <<<<<<<<<<<<<< @@ -15688,7 +15731,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d */ } - /* "pyreadstat/_readstat_writer.pyx":878 + /* "pyreadstat/_readstat_writer.pyx":880 * if cur_display_width: * set_variable_display_width(variable, cur_display_width, variable_name) * if variable_measure: # <<<<<<<<<<<<<< @@ -15698,7 +15741,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d } } - /* "pyreadstat/_readstat_writer.pyx":884 + /* "pyreadstat/_readstat_writer.pyx":886 * * # start writing * if file_format == FILE_FORMAT_SAS7BCAT: # <<<<<<<<<<<<<< @@ -15708,16 +15751,16 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d switch (__pyx_v_file_format) { case __pyx_e_10pyreadstat_16_readstat_writer_FILE_FORMAT_SAS7BCAT: - /* "pyreadstat/_readstat_writer.pyx":885 + /* "pyreadstat/_readstat_writer.pyx":887 * # start writing * if file_format == FILE_FORMAT_SAS7BCAT: * check_exit_status(readstat_begin_writing_sas7bcat(writer, &fd)) # <<<<<<<<<<<<<< * elif file_format == FILE_FORMAT_DTA: * check_exit_status(readstat_begin_writing_dta(writer, &fd, row_count)) */ - __pyx_f_10pyreadstat_16_readstat_parser_check_exit_status(readstat_begin_writing_sas7bcat(__pyx_v_writer, (&__pyx_v_fd))); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 885, __pyx_L23_error) + __pyx_f_10pyreadstat_16_readstat_parser_check_exit_status(readstat_begin_writing_sas7bcat(__pyx_v_writer, (&__pyx_v_fd))); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 887, __pyx_L23_error) - /* "pyreadstat/_readstat_writer.pyx":884 + /* "pyreadstat/_readstat_writer.pyx":886 * * # start writing * if file_format == FILE_FORMAT_SAS7BCAT: # <<<<<<<<<<<<<< @@ -15727,16 +15770,16 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d break; case __pyx_e_10pyreadstat_16_readstat_writer_FILE_FORMAT_DTA: - /* "pyreadstat/_readstat_writer.pyx":887 + /* "pyreadstat/_readstat_writer.pyx":889 * check_exit_status(readstat_begin_writing_sas7bcat(writer, &fd)) * elif file_format == FILE_FORMAT_DTA: * check_exit_status(readstat_begin_writing_dta(writer, &fd, row_count)) # <<<<<<<<<<<<<< * elif file_format == FILE_FORMAT_SAV: * check_exit_status(readstat_begin_writing_sav(writer, &fd, row_count)) */ - __pyx_f_10pyreadstat_16_readstat_parser_check_exit_status(readstat_begin_writing_dta(__pyx_v_writer, (&__pyx_v_fd), __pyx_v_row_count)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 887, __pyx_L23_error) + __pyx_f_10pyreadstat_16_readstat_parser_check_exit_status(readstat_begin_writing_dta(__pyx_v_writer, (&__pyx_v_fd), __pyx_v_row_count)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 889, __pyx_L23_error) - /* "pyreadstat/_readstat_writer.pyx":886 + /* "pyreadstat/_readstat_writer.pyx":888 * if file_format == FILE_FORMAT_SAS7BCAT: * check_exit_status(readstat_begin_writing_sas7bcat(writer, &fd)) * elif file_format == FILE_FORMAT_DTA: # <<<<<<<<<<<<<< @@ -15746,16 +15789,16 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d break; case __pyx_e_10pyreadstat_16_readstat_writer_FILE_FORMAT_SAV: - /* "pyreadstat/_readstat_writer.pyx":889 + /* "pyreadstat/_readstat_writer.pyx":891 * check_exit_status(readstat_begin_writing_dta(writer, &fd, row_count)) * elif file_format == FILE_FORMAT_SAV: * check_exit_status(readstat_begin_writing_sav(writer, &fd, row_count)) # <<<<<<<<<<<<<< * elif file_format == FILE_FORMAT_POR: * check_exit_status(readstat_begin_writing_por(writer, &fd, row_count)) */ - __pyx_f_10pyreadstat_16_readstat_parser_check_exit_status(readstat_begin_writing_sav(__pyx_v_writer, (&__pyx_v_fd), __pyx_v_row_count)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 889, __pyx_L23_error) + __pyx_f_10pyreadstat_16_readstat_parser_check_exit_status(readstat_begin_writing_sav(__pyx_v_writer, (&__pyx_v_fd), __pyx_v_row_count)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 891, __pyx_L23_error) - /* "pyreadstat/_readstat_writer.pyx":888 + /* "pyreadstat/_readstat_writer.pyx":890 * elif file_format == FILE_FORMAT_DTA: * check_exit_status(readstat_begin_writing_dta(writer, &fd, row_count)) * elif file_format == FILE_FORMAT_SAV: # <<<<<<<<<<<<<< @@ -15765,16 +15808,16 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d break; case __pyx_e_10pyreadstat_16_readstat_writer_FILE_FORMAT_POR: - /* "pyreadstat/_readstat_writer.pyx":891 + /* "pyreadstat/_readstat_writer.pyx":893 * check_exit_status(readstat_begin_writing_sav(writer, &fd, row_count)) * elif file_format == FILE_FORMAT_POR: * check_exit_status(readstat_begin_writing_por(writer, &fd, row_count)) # <<<<<<<<<<<<<< * elif file_format == FILE_FORMAT_SAS7BDAT: * check_exit_status(readstat_begin_writing_sas7bdat(writer, &fd, row_count)) */ - __pyx_f_10pyreadstat_16_readstat_parser_check_exit_status(readstat_begin_writing_por(__pyx_v_writer, (&__pyx_v_fd), __pyx_v_row_count)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 891, __pyx_L23_error) + __pyx_f_10pyreadstat_16_readstat_parser_check_exit_status(readstat_begin_writing_por(__pyx_v_writer, (&__pyx_v_fd), __pyx_v_row_count)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 893, __pyx_L23_error) - /* "pyreadstat/_readstat_writer.pyx":890 + /* "pyreadstat/_readstat_writer.pyx":892 * elif file_format == FILE_FORMAT_SAV: * check_exit_status(readstat_begin_writing_sav(writer, &fd, row_count)) * elif file_format == FILE_FORMAT_POR: # <<<<<<<<<<<<<< @@ -15784,16 +15827,16 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d break; case __pyx_e_10pyreadstat_16_readstat_writer_FILE_FORMAT_SAS7BDAT: - /* "pyreadstat/_readstat_writer.pyx":893 + /* "pyreadstat/_readstat_writer.pyx":895 * check_exit_status(readstat_begin_writing_por(writer, &fd, row_count)) * elif file_format == FILE_FORMAT_SAS7BDAT: * check_exit_status(readstat_begin_writing_sas7bdat(writer, &fd, row_count)) # <<<<<<<<<<<<<< * elif file_format == FILE_FORMAT_XPORT: * check_exit_status(readstat_begin_writing_xport(writer, &fd, row_count)) */ - __pyx_f_10pyreadstat_16_readstat_parser_check_exit_status(readstat_begin_writing_sas7bdat(__pyx_v_writer, (&__pyx_v_fd), __pyx_v_row_count)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 893, __pyx_L23_error) + __pyx_f_10pyreadstat_16_readstat_parser_check_exit_status(readstat_begin_writing_sas7bdat(__pyx_v_writer, (&__pyx_v_fd), __pyx_v_row_count)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 895, __pyx_L23_error) - /* "pyreadstat/_readstat_writer.pyx":892 + /* "pyreadstat/_readstat_writer.pyx":894 * elif file_format == FILE_FORMAT_POR: * check_exit_status(readstat_begin_writing_por(writer, &fd, row_count)) * elif file_format == FILE_FORMAT_SAS7BDAT: # <<<<<<<<<<<<<< @@ -15803,16 +15846,16 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d break; case __pyx_e_10pyreadstat_16_readstat_writer_FILE_FORMAT_XPORT: - /* "pyreadstat/_readstat_writer.pyx":895 + /* "pyreadstat/_readstat_writer.pyx":897 * check_exit_status(readstat_begin_writing_sas7bdat(writer, &fd, row_count)) * elif file_format == FILE_FORMAT_XPORT: * check_exit_status(readstat_begin_writing_xport(writer, &fd, row_count)) # <<<<<<<<<<<<<< * else: * raise PyreadstatError("unknown file format") */ - __pyx_f_10pyreadstat_16_readstat_parser_check_exit_status(readstat_begin_writing_xport(__pyx_v_writer, (&__pyx_v_fd), __pyx_v_row_count)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 895, __pyx_L23_error) + __pyx_f_10pyreadstat_16_readstat_parser_check_exit_status(readstat_begin_writing_xport(__pyx_v_writer, (&__pyx_v_fd), __pyx_v_row_count)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 897, __pyx_L23_error) - /* "pyreadstat/_readstat_writer.pyx":894 + /* "pyreadstat/_readstat_writer.pyx":896 * elif file_format == FILE_FORMAT_SAS7BDAT: * check_exit_status(readstat_begin_writing_sas7bdat(writer, &fd, row_count)) * elif file_format == FILE_FORMAT_XPORT: # <<<<<<<<<<<<<< @@ -15822,7 +15865,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d break; default: - /* "pyreadstat/_readstat_writer.pyx":897 + /* "pyreadstat/_readstat_writer.pyx":899 * check_exit_status(readstat_begin_writing_xport(writer, &fd, row_count)) * else: * raise PyreadstatError("unknown file format") # <<<<<<<<<<<<<< @@ -15830,7 +15873,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d * # validation */ __pyx_t_3 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 897, __pyx_L23_error) + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 899, __pyx_L23_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = 1; #if CYTHON_UNPACK_METHODS @@ -15849,25 +15892,25 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 897, __pyx_L23_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 899, __pyx_L23_error) __Pyx_GOTREF(__pyx_t_1); } __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __PYX_ERR(0, 897, __pyx_L23_error) + __PYX_ERR(0, 899, __pyx_L23_error) break; } - /* "pyreadstat/_readstat_writer.pyx":900 + /* "pyreadstat/_readstat_writer.pyx":902 * * # validation * check_exit_status(readstat_validate_metadata(writer)) # <<<<<<<<<<<<<< * for col_indx in range(col_count): * tempvar = readstat_get_variable(writer, col_indx) */ - __pyx_f_10pyreadstat_16_readstat_parser_check_exit_status(readstat_validate_metadata(__pyx_v_writer)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 900, __pyx_L23_error) + __pyx_f_10pyreadstat_16_readstat_parser_check_exit_status(readstat_validate_metadata(__pyx_v_writer)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 902, __pyx_L23_error) - /* "pyreadstat/_readstat_writer.pyx":901 + /* "pyreadstat/_readstat_writer.pyx":903 * # validation * check_exit_status(readstat_validate_metadata(writer)) * for col_indx in range(col_count): # <<<<<<<<<<<<<< @@ -15879,7 +15922,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d for (__pyx_t_22 = 0; __pyx_t_22 < __pyx_t_21; __pyx_t_22+=1) { __pyx_v_col_indx = __pyx_t_22; - /* "pyreadstat/_readstat_writer.pyx":902 + /* "pyreadstat/_readstat_writer.pyx":904 * check_exit_status(readstat_validate_metadata(writer)) * for col_indx in range(col_count): * tempvar = readstat_get_variable(writer, col_indx) # <<<<<<<<<<<<<< @@ -15888,28 +15931,28 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d */ __pyx_v_tempvar = readstat_get_variable(__pyx_v_writer, __pyx_v_col_indx); - /* "pyreadstat/_readstat_writer.pyx":903 + /* "pyreadstat/_readstat_writer.pyx":905 * for col_indx in range(col_count): * tempvar = readstat_get_variable(writer, col_indx) * check_exit_status(readstat_validate_variable(writer, tempvar)) # <<<<<<<<<<<<<< * * # vectorized transform of datetime64ns columns */ - __pyx_f_10pyreadstat_16_readstat_parser_check_exit_status(readstat_validate_variable(__pyx_v_writer, __pyx_v_tempvar)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 903, __pyx_L23_error) + __pyx_f_10pyreadstat_16_readstat_parser_check_exit_status(readstat_validate_variable(__pyx_v_writer, __pyx_v_tempvar)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 905, __pyx_L23_error) } - /* "pyreadstat/_readstat_writer.pyx":906 + /* "pyreadstat/_readstat_writer.pyx":908 * * # vectorized transform of datetime64ns columns * pywriter_types = [x[0] for x in col_types] # <<<<<<<<<<<<<< * pywriter_timeunits = [x[3] for x in col_types] * hasdatetime64 = PYWRITER_DATETIME64 in pywriter_types */ - __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 906, __pyx_L23_error) + __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 908, __pyx_L23_error) __Pyx_GOTREF(__pyx_t_1); if (unlikely(__pyx_v_col_types == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable"); - __PYX_ERR(0, 906, __pyx_L23_error) + __PYX_ERR(0, 908, __pyx_L23_error) } __pyx_t_4 = __pyx_v_col_types; __Pyx_INCREF(__pyx_t_4); __pyx_t_7 = 0; @@ -15917,37 +15960,37 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d { Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_4); #if !CYTHON_ASSUME_SAFE_SIZE - if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 906, __pyx_L23_error) + if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 908, __pyx_L23_error) #endif if (__pyx_t_7 >= __pyx_temp) break; } __pyx_t_3 = __Pyx_PyList_GetItemRefFast(__pyx_t_4, __pyx_t_7, __Pyx_ReferenceSharing_OwnStrongReference); ++__pyx_t_7; - if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 906, __pyx_L23_error) + if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 908, __pyx_L23_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_GetItemInt(__pyx_v_x, 0, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_OwnStrongReference); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 906, __pyx_L23_error) + __pyx_t_3 = __Pyx_GetItemInt(__pyx_v_x, 0, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_OwnStrongReference); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 908, __pyx_L23_error) __Pyx_GOTREF(__pyx_t_3); - if (unlikely(__Pyx_ListComp_Append(__pyx_t_1, (PyObject*)__pyx_t_3))) __PYX_ERR(0, 906, __pyx_L23_error) + if (unlikely(__Pyx_ListComp_Append(__pyx_t_1, (PyObject*)__pyx_t_3))) __PYX_ERR(0, 908, __pyx_L23_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_v_pywriter_types = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - /* "pyreadstat/_readstat_writer.pyx":907 + /* "pyreadstat/_readstat_writer.pyx":909 * # vectorized transform of datetime64ns columns * pywriter_types = [x[0] for x in col_types] * pywriter_timeunits = [x[3] for x in col_types] # <<<<<<<<<<<<<< * hasdatetime64 = PYWRITER_DATETIME64 in pywriter_types * hasdate64 = PYWRITER_DATE64 in pywriter_types */ - __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 907, __pyx_L23_error) + __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 909, __pyx_L23_error) __Pyx_GOTREF(__pyx_t_1); if (unlikely(__pyx_v_col_types == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable"); - __PYX_ERR(0, 907, __pyx_L23_error) + __PYX_ERR(0, 909, __pyx_L23_error) } __pyx_t_4 = __pyx_v_col_types; __Pyx_INCREF(__pyx_t_4); __pyx_t_7 = 0; @@ -15955,71 +15998,71 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d { Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_4); #if !CYTHON_ASSUME_SAFE_SIZE - if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 907, __pyx_L23_error) + if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 909, __pyx_L23_error) #endif if (__pyx_t_7 >= __pyx_temp) break; } __pyx_t_3 = __Pyx_PyList_GetItemRefFast(__pyx_t_4, __pyx_t_7, __Pyx_ReferenceSharing_OwnStrongReference); ++__pyx_t_7; - if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 907, __pyx_L23_error) + if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 909, __pyx_L23_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_GetItemInt(__pyx_v_x, 3, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_OwnStrongReference); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 907, __pyx_L23_error) + __pyx_t_3 = __Pyx_GetItemInt(__pyx_v_x, 3, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_OwnStrongReference); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 909, __pyx_L23_error) __Pyx_GOTREF(__pyx_t_3); - if (unlikely(__Pyx_ListComp_Append(__pyx_t_1, (PyObject*)__pyx_t_3))) __PYX_ERR(0, 907, __pyx_L23_error) + if (unlikely(__Pyx_ListComp_Append(__pyx_t_1, (PyObject*)__pyx_t_3))) __PYX_ERR(0, 909, __pyx_L23_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_v_pywriter_timeunits = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - /* "pyreadstat/_readstat_writer.pyx":908 + /* "pyreadstat/_readstat_writer.pyx":910 * pywriter_types = [x[0] for x in col_types] * pywriter_timeunits = [x[3] for x in col_types] * hasdatetime64 = PYWRITER_DATETIME64 in pywriter_types # <<<<<<<<<<<<<< * hasdate64 = PYWRITER_DATE64 in pywriter_types * hastime64 = PYWRITER_TIME64 in pywriter_types */ - __pyx_t_1 = __Pyx_PyLong_From___pyx_t_10pyreadstat_16_readstat_writer_pywriter_variable_type(__pyx_e_10pyreadstat_16_readstat_writer_PYWRITER_DATETIME64); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 908, __pyx_L23_error) + __pyx_t_1 = __Pyx_PyLong_From___pyx_t_10pyreadstat_16_readstat_writer_pywriter_variable_type(__pyx_e_10pyreadstat_16_readstat_writer_PYWRITER_DATETIME64); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 910, __pyx_L23_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_20 = (__Pyx_PySequence_ContainsTF(__pyx_t_1, __pyx_v_pywriter_types, Py_EQ)); if (unlikely((__pyx_t_20 < 0))) __PYX_ERR(0, 908, __pyx_L23_error) + __pyx_t_20 = (__Pyx_PySequence_ContainsTF(__pyx_t_1, __pyx_v_pywriter_types, Py_EQ)); if (unlikely((__pyx_t_20 < 0))) __PYX_ERR(0, 910, __pyx_L23_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_v_hasdatetime64 = __pyx_t_20; - /* "pyreadstat/_readstat_writer.pyx":909 + /* "pyreadstat/_readstat_writer.pyx":911 * pywriter_timeunits = [x[3] for x in col_types] * hasdatetime64 = PYWRITER_DATETIME64 in pywriter_types * hasdate64 = PYWRITER_DATE64 in pywriter_types # <<<<<<<<<<<<<< * hastime64 = PYWRITER_TIME64 in pywriter_types * if hasdatetime64 or hasdate64 or hastime64: */ - __pyx_t_1 = __Pyx_PyLong_From___pyx_t_10pyreadstat_16_readstat_writer_pywriter_variable_type(__pyx_e_10pyreadstat_16_readstat_writer_PYWRITER_DATE64); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 909, __pyx_L23_error) + __pyx_t_1 = __Pyx_PyLong_From___pyx_t_10pyreadstat_16_readstat_writer_pywriter_variable_type(__pyx_e_10pyreadstat_16_readstat_writer_PYWRITER_DATE64); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 911, __pyx_L23_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_20 = (__Pyx_PySequence_ContainsTF(__pyx_t_1, __pyx_v_pywriter_types, Py_EQ)); if (unlikely((__pyx_t_20 < 0))) __PYX_ERR(0, 909, __pyx_L23_error) + __pyx_t_20 = (__Pyx_PySequence_ContainsTF(__pyx_t_1, __pyx_v_pywriter_types, Py_EQ)); if (unlikely((__pyx_t_20 < 0))) __PYX_ERR(0, 911, __pyx_L23_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = __Pyx_PyBool_FromLong(__pyx_t_20); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 909, __pyx_L23_error) + __pyx_t_1 = __Pyx_PyBool_FromLong(__pyx_t_20); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 911, __pyx_L23_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_hasdate64 = __pyx_t_1; __pyx_t_1 = 0; - /* "pyreadstat/_readstat_writer.pyx":910 + /* "pyreadstat/_readstat_writer.pyx":912 * hasdatetime64 = PYWRITER_DATETIME64 in pywriter_types * hasdate64 = PYWRITER_DATE64 in pywriter_types * hastime64 = PYWRITER_TIME64 in pywriter_types # <<<<<<<<<<<<<< * if hasdatetime64 or hasdate64 or hastime64: * df2 = df.clone() */ - __pyx_t_1 = __Pyx_PyLong_From___pyx_t_10pyreadstat_16_readstat_writer_pywriter_variable_type(__pyx_e_10pyreadstat_16_readstat_writer_PYWRITER_TIME64); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 910, __pyx_L23_error) + __pyx_t_1 = __Pyx_PyLong_From___pyx_t_10pyreadstat_16_readstat_writer_pywriter_variable_type(__pyx_e_10pyreadstat_16_readstat_writer_PYWRITER_TIME64); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 912, __pyx_L23_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_20 = (__Pyx_PySequence_ContainsTF(__pyx_t_1, __pyx_v_pywriter_types, Py_EQ)); if (unlikely((__pyx_t_20 < 0))) __PYX_ERR(0, 910, __pyx_L23_error) + __pyx_t_20 = (__Pyx_PySequence_ContainsTF(__pyx_t_1, __pyx_v_pywriter_types, Py_EQ)); if (unlikely((__pyx_t_20 < 0))) __PYX_ERR(0, 912, __pyx_L23_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = __Pyx_PyBool_FromLong(__pyx_t_20); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 910, __pyx_L23_error) + __pyx_t_1 = __Pyx_PyBool_FromLong(__pyx_t_20); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 912, __pyx_L23_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_hastime64 = __pyx_t_1; __pyx_t_1 = 0; - /* "pyreadstat/_readstat_writer.pyx":911 + /* "pyreadstat/_readstat_writer.pyx":913 * hasdate64 = PYWRITER_DATE64 in pywriter_types * hastime64 = PYWRITER_TIME64 in pywriter_types * if hasdatetime64 or hasdate64 or hastime64: # <<<<<<<<<<<<<< @@ -16031,18 +16074,18 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d __pyx_t_20 = __pyx_v_hasdatetime64; goto __pyx_L87_bool_binop_done; } - __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_v_hasdate64); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(0, 911, __pyx_L23_error) + __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_v_hasdate64); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(0, 913, __pyx_L23_error) if (!__pyx_t_6) { } else { __pyx_t_20 = __pyx_t_6; goto __pyx_L87_bool_binop_done; } - __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_v_hastime64); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(0, 911, __pyx_L23_error) + __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_v_hastime64); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(0, 913, __pyx_L23_error) __pyx_t_20 = __pyx_t_6; __pyx_L87_bool_binop_done:; if (__pyx_t_20) { - /* "pyreadstat/_readstat_writer.pyx":912 + /* "pyreadstat/_readstat_writer.pyx":914 * hastime64 = PYWRITER_TIME64 in pywriter_types * if hasdatetime64 or hasdate64 or hastime64: * df2 = df.clone() # <<<<<<<<<<<<<< @@ -16056,13 +16099,13 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d PyObject *__pyx_callargs[2] = {__pyx_t_4, NULL}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_clone, __pyx_callargs+__pyx_t_5, (1-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 912, __pyx_L23_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 914, __pyx_L23_error) __Pyx_GOTREF(__pyx_t_1); } __pyx_v_df2 = __pyx_t_1; __pyx_t_1 = 0; - /* "pyreadstat/_readstat_writer.pyx":913 + /* "pyreadstat/_readstat_writer.pyx":915 * if hasdatetime64 or hasdate64 or hastime64: * df2 = df.clone() * if hasdatetime64: # <<<<<<<<<<<<<< @@ -16071,19 +16114,19 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d */ if (__pyx_v_hasdatetime64) { - /* "pyreadstat/_readstat_writer.pyx":914 + /* "pyreadstat/_readstat_writer.pyx":916 * df2 = df.clone() * if hasdatetime64: * df2 = vectorized_convert_datetime_to_number(df2, file_format, pywriter_types, pywriter_timeunits, col_count) # <<<<<<<<<<<<<< * if hasdate64: * df2 = vectorized_convert_date_to_number(df2, file_format, pywriter_types, col_count) */ - __pyx_t_1 = __pyx_f_10pyreadstat_16_readstat_writer_vectorized_convert_datetime_to_number(__pyx_v_df2, __pyx_v_file_format, __pyx_v_pywriter_types, __pyx_v_pywriter_timeunits, __pyx_v_col_count); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 914, __pyx_L23_error) + __pyx_t_1 = __pyx_f_10pyreadstat_16_readstat_writer_vectorized_convert_datetime_to_number(__pyx_v_df2, __pyx_v_file_format, __pyx_v_pywriter_types, __pyx_v_pywriter_timeunits, __pyx_v_col_count); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 916, __pyx_L23_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_df2, __pyx_t_1); __pyx_t_1 = 0; - /* "pyreadstat/_readstat_writer.pyx":913 + /* "pyreadstat/_readstat_writer.pyx":915 * if hasdatetime64 or hasdate64 or hastime64: * df2 = df.clone() * if hasdatetime64: # <<<<<<<<<<<<<< @@ -16092,29 +16135,29 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d */ } - /* "pyreadstat/_readstat_writer.pyx":915 + /* "pyreadstat/_readstat_writer.pyx":917 * if hasdatetime64: * df2 = vectorized_convert_datetime_to_number(df2, file_format, pywriter_types, pywriter_timeunits, col_count) * if hasdate64: # <<<<<<<<<<<<<< * df2 = vectorized_convert_date_to_number(df2, file_format, pywriter_types, col_count) * if hastime64: */ - __pyx_t_20 = __Pyx_PyObject_IsTrue(__pyx_v_hasdate64); if (unlikely((__pyx_t_20 < 0))) __PYX_ERR(0, 915, __pyx_L23_error) + __pyx_t_20 = __Pyx_PyObject_IsTrue(__pyx_v_hasdate64); if (unlikely((__pyx_t_20 < 0))) __PYX_ERR(0, 917, __pyx_L23_error) if (__pyx_t_20) { - /* "pyreadstat/_readstat_writer.pyx":916 + /* "pyreadstat/_readstat_writer.pyx":918 * df2 = vectorized_convert_datetime_to_number(df2, file_format, pywriter_types, pywriter_timeunits, col_count) * if hasdate64: * df2 = vectorized_convert_date_to_number(df2, file_format, pywriter_types, col_count) # <<<<<<<<<<<<<< * if hastime64: * df2 = vectorized_convert_time_to_number(df2, file_format, pywriter_types, col_count) */ - __pyx_t_1 = __pyx_f_10pyreadstat_16_readstat_writer_vectorized_convert_date_to_number(__pyx_v_df2, __pyx_v_file_format, __pyx_v_pywriter_types, __pyx_v_col_count); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 916, __pyx_L23_error) + __pyx_t_1 = __pyx_f_10pyreadstat_16_readstat_writer_vectorized_convert_date_to_number(__pyx_v_df2, __pyx_v_file_format, __pyx_v_pywriter_types, __pyx_v_col_count); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 918, __pyx_L23_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_df2, __pyx_t_1); __pyx_t_1 = 0; - /* "pyreadstat/_readstat_writer.pyx":915 + /* "pyreadstat/_readstat_writer.pyx":917 * if hasdatetime64: * df2 = vectorized_convert_datetime_to_number(df2, file_format, pywriter_types, pywriter_timeunits, col_count) * if hasdate64: # <<<<<<<<<<<<<< @@ -16123,29 +16166,29 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d */ } - /* "pyreadstat/_readstat_writer.pyx":917 + /* "pyreadstat/_readstat_writer.pyx":919 * if hasdate64: * df2 = vectorized_convert_date_to_number(df2, file_format, pywriter_types, col_count) * if hastime64: # <<<<<<<<<<<<<< * df2 = vectorized_convert_time_to_number(df2, file_format, pywriter_types, col_count) * else: */ - __pyx_t_20 = __Pyx_PyObject_IsTrue(__pyx_v_hastime64); if (unlikely((__pyx_t_20 < 0))) __PYX_ERR(0, 917, __pyx_L23_error) + __pyx_t_20 = __Pyx_PyObject_IsTrue(__pyx_v_hastime64); if (unlikely((__pyx_t_20 < 0))) __PYX_ERR(0, 919, __pyx_L23_error) if (__pyx_t_20) { - /* "pyreadstat/_readstat_writer.pyx":918 + /* "pyreadstat/_readstat_writer.pyx":920 * df2 = vectorized_convert_date_to_number(df2, file_format, pywriter_types, col_count) * if hastime64: * df2 = vectorized_convert_time_to_number(df2, file_format, pywriter_types, col_count) # <<<<<<<<<<<<<< * else: * df2 = df */ - __pyx_t_1 = __pyx_f_10pyreadstat_16_readstat_writer_vectorized_convert_time_to_number(__pyx_v_df2, __pyx_v_file_format, __pyx_v_pywriter_types, __pyx_v_col_count); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 918, __pyx_L23_error) + __pyx_t_1 = __pyx_f_10pyreadstat_16_readstat_writer_vectorized_convert_time_to_number(__pyx_v_df2, __pyx_v_file_format, __pyx_v_pywriter_types, __pyx_v_col_count); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 920, __pyx_L23_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_df2, __pyx_t_1); __pyx_t_1 = 0; - /* "pyreadstat/_readstat_writer.pyx":917 + /* "pyreadstat/_readstat_writer.pyx":919 * if hasdate64: * df2 = vectorized_convert_date_to_number(df2, file_format, pywriter_types, col_count) * if hastime64: # <<<<<<<<<<<<<< @@ -16154,7 +16197,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d */ } - /* "pyreadstat/_readstat_writer.pyx":911 + /* "pyreadstat/_readstat_writer.pyx":913 * hasdate64 = PYWRITER_DATE64 in pywriter_types * hastime64 = PYWRITER_TIME64 in pywriter_types * if hasdatetime64 or hasdate64 or hastime64: # <<<<<<<<<<<<<< @@ -16164,7 +16207,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d goto __pyx_L86; } - /* "pyreadstat/_readstat_writer.pyx":920 + /* "pyreadstat/_readstat_writer.pyx":922 * df2 = vectorized_convert_time_to_number(df2, file_format, pywriter_types, col_count) * else: * df2 = df # <<<<<<<<<<<<<< @@ -16177,7 +16220,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d } __pyx_L86:; - /* "pyreadstat/_readstat_writer.pyx":924 + /* "pyreadstat/_readstat_writer.pyx":926 * * # inserting * rowcnt = 0 # <<<<<<<<<<<<<< @@ -16187,7 +16230,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d __Pyx_INCREF(__pyx_mstate_global->__pyx_int_0); __pyx_v_rowcnt = __pyx_mstate_global->__pyx_int_0; - /* "pyreadstat/_readstat_writer.pyx":926 + /* "pyreadstat/_readstat_writer.pyx":928 * rowcnt = 0 * * for row in df2.iter_rows(): # <<<<<<<<<<<<<< @@ -16201,7 +16244,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d PyObject *__pyx_callargs[2] = {__pyx_t_4, NULL}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_iter_rows, __pyx_callargs+__pyx_t_5, (1-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 926, __pyx_L23_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 928, __pyx_L23_error) __Pyx_GOTREF(__pyx_t_1); } if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) { @@ -16209,9 +16252,9 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d __pyx_t_7 = 0; __pyx_t_8 = NULL; } else { - __pyx_t_7 = -1; __pyx_t_4 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 926, __pyx_L23_error) + __pyx_t_7 = -1; __pyx_t_4 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 928, __pyx_L23_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_8 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_4); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 926, __pyx_L23_error) + __pyx_t_8 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_4); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 928, __pyx_L23_error) } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; for (;;) { @@ -16220,7 +16263,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d { Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_4); #if !CYTHON_ASSUME_SAFE_SIZE - if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 926, __pyx_L23_error) + if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 928, __pyx_L23_error) #endif if (__pyx_t_7 >= __pyx_temp) break; } @@ -16230,7 +16273,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d { Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_4); #if !CYTHON_ASSUME_SAFE_SIZE - if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 926, __pyx_L23_error) + if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 928, __pyx_L23_error) #endif if (__pyx_t_7 >= __pyx_temp) break; } @@ -16241,13 +16284,13 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d #endif ++__pyx_t_7; } - if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 926, __pyx_L23_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 928, __pyx_L23_error) } else { __pyx_t_1 = __pyx_t_8(__pyx_t_4); if (unlikely(!__pyx_t_1)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { - if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(0, 926, __pyx_L23_error) + if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(0, 928, __pyx_L23_error) PyErr_Clear(); } break; @@ -16257,16 +16300,16 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d __Pyx_XDECREF_SET(__pyx_v_row, __pyx_t_1); __pyx_t_1 = 0; - /* "pyreadstat/_readstat_writer.pyx":927 + /* "pyreadstat/_readstat_writer.pyx":929 * * for row in df2.iter_rows(): * check_exit_status(readstat_begin_row(writer)) # <<<<<<<<<<<<<< * * for col_indx in range(col_count): */ - __pyx_f_10pyreadstat_16_readstat_parser_check_exit_status(readstat_begin_row(__pyx_v_writer)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 927, __pyx_L23_error) + __pyx_f_10pyreadstat_16_readstat_parser_check_exit_status(readstat_begin_row(__pyx_v_writer)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 929, __pyx_L23_error) - /* "pyreadstat/_readstat_writer.pyx":929 + /* "pyreadstat/_readstat_writer.pyx":931 * check_exit_status(readstat_begin_row(writer)) * * for col_indx in range(col_count): # <<<<<<<<<<<<<< @@ -16278,7 +16321,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d for (__pyx_t_22 = 0; __pyx_t_22 < __pyx_t_21; __pyx_t_22+=1) { __pyx_v_col_indx = __pyx_t_22; - /* "pyreadstat/_readstat_writer.pyx":931 + /* "pyreadstat/_readstat_writer.pyx":933 * for col_indx in range(col_count): * * tempvar = readstat_get_variable(writer, col_indx) # <<<<<<<<<<<<<< @@ -16287,32 +16330,32 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d */ __pyx_v_tempvar = readstat_get_variable(__pyx_v_writer, __pyx_v_col_indx); - /* "pyreadstat/_readstat_writer.pyx":932 + /* "pyreadstat/_readstat_writer.pyx":934 * * tempvar = readstat_get_variable(writer, col_indx) * curval = row[col_indx] # <<<<<<<<<<<<<< * curtype = pywriter_types[col_indx] * is_missing = col_types[col_indx][2] */ - __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_row, __pyx_v_col_indx, int, 1, __Pyx_PyLong_From_int, 0, 1, 1, 1, __Pyx_ReferenceSharing_OwnStrongReference); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 932, __pyx_L23_error) + __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_row, __pyx_v_col_indx, int, 1, __Pyx_PyLong_From_int, 0, 1, 1, 1, __Pyx_ReferenceSharing_OwnStrongReference); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 934, __pyx_L23_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_XDECREF_SET(__pyx_v_curval, __pyx_t_1); __pyx_t_1 = 0; - /* "pyreadstat/_readstat_writer.pyx":933 + /* "pyreadstat/_readstat_writer.pyx":935 * tempvar = readstat_get_variable(writer, col_indx) * curval = row[col_indx] * curtype = pywriter_types[col_indx] # <<<<<<<<<<<<<< * is_missing = col_types[col_indx][2] * curuser_missing = None */ - __pyx_t_1 = __Pyx_GetItemInt_List(__pyx_v_pywriter_types, __pyx_v_col_indx, int, 1, __Pyx_PyLong_From_int, 1, 1, 1, 1, __Pyx_ReferenceSharing_OwnStrongReference); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 933, __pyx_L23_error) + __pyx_t_1 = __Pyx_GetItemInt_List(__pyx_v_pywriter_types, __pyx_v_col_indx, int, 1, __Pyx_PyLong_From_int, 1, 1, 1, 1, __Pyx_ReferenceSharing_OwnStrongReference); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 935, __pyx_L23_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_24 = ((__pyx_t_10pyreadstat_16_readstat_writer_pywriter_variable_type)__Pyx_PyLong_As___pyx_t_10pyreadstat_16_readstat_writer_pywriter_variable_type(__pyx_t_1)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 933, __pyx_L23_error) + __pyx_t_24 = ((__pyx_t_10pyreadstat_16_readstat_writer_pywriter_variable_type)__Pyx_PyLong_As___pyx_t_10pyreadstat_16_readstat_writer_pywriter_variable_type(__pyx_t_1)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 935, __pyx_L23_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_v_curtype = __pyx_t_24; - /* "pyreadstat/_readstat_writer.pyx":934 + /* "pyreadstat/_readstat_writer.pyx":936 * curval = row[col_indx] * curtype = pywriter_types[col_indx] * is_missing = col_types[col_indx][2] # <<<<<<<<<<<<<< @@ -16321,17 +16364,17 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d */ if (unlikely(__pyx_v_col_types == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 934, __pyx_L23_error) + __PYX_ERR(0, 936, __pyx_L23_error) } - __pyx_t_1 = __Pyx_GetItemInt_List(__pyx_v_col_types, __pyx_v_col_indx, int, 1, __Pyx_PyLong_From_int, 1, 1, 1, 1, __Pyx_ReferenceSharing_OwnStrongReference); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 934, __pyx_L23_error) + __pyx_t_1 = __Pyx_GetItemInt_List(__pyx_v_col_types, __pyx_v_col_indx, int, 1, __Pyx_PyLong_From_int, 1, 1, 1, 1, __Pyx_ReferenceSharing_OwnStrongReference); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 936, __pyx_L23_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_3 = __Pyx_GetItemInt(__pyx_t_1, 2, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_OwnStrongReference); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 934, __pyx_L23_error) + __pyx_t_3 = __Pyx_GetItemInt(__pyx_t_1, 2, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_OwnStrongReference); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 936, __pyx_L23_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_XDECREF_SET(__pyx_v_is_missing, __pyx_t_3); __pyx_t_3 = 0; - /* "pyreadstat/_readstat_writer.pyx":935 + /* "pyreadstat/_readstat_writer.pyx":937 * curtype = pywriter_types[col_indx] * is_missing = col_types[col_indx][2] * curuser_missing = None # <<<<<<<<<<<<<< @@ -16341,17 +16384,17 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d __Pyx_INCREF(Py_None); __Pyx_XDECREF_SET(__pyx_v_curuser_missing, Py_None); - /* "pyreadstat/_readstat_writer.pyx":936 + /* "pyreadstat/_readstat_writer.pyx":938 * is_missing = col_types[col_indx][2] * curuser_missing = None * if missing_user_values: # <<<<<<<<<<<<<< * curuser_missing = missing_user_values.get(col_names[col_indx]) * */ - __pyx_t_20 = __Pyx_PyObject_IsTrue(__pyx_v_missing_user_values); if (unlikely((__pyx_t_20 < 0))) __PYX_ERR(0, 936, __pyx_L23_error) + __pyx_t_20 = __Pyx_PyObject_IsTrue(__pyx_v_missing_user_values); if (unlikely((__pyx_t_20 < 0))) __PYX_ERR(0, 938, __pyx_L23_error) if (__pyx_t_20) { - /* "pyreadstat/_readstat_writer.pyx":937 + /* "pyreadstat/_readstat_writer.pyx":939 * curuser_missing = None * if missing_user_values: * curuser_missing = missing_user_values.get(col_names[col_indx]) # <<<<<<<<<<<<<< @@ -16360,21 +16403,21 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d */ if (unlikely(__pyx_v_missing_user_values == Py_None)) { PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "get"); - __PYX_ERR(0, 937, __pyx_L23_error) + __PYX_ERR(0, 939, __pyx_L23_error) } if (unlikely(__pyx_v_col_names == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 937, __pyx_L23_error) + __PYX_ERR(0, 939, __pyx_L23_error) } - __pyx_t_3 = __Pyx_GetItemInt_List(__pyx_v_col_names, __pyx_v_col_indx, int, 1, __Pyx_PyLong_From_int, 1, 1, 1, 1, __Pyx_ReferenceSharing_OwnStrongReference); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 937, __pyx_L23_error) + __pyx_t_3 = __Pyx_GetItemInt_List(__pyx_v_col_names, __pyx_v_col_indx, int, 1, __Pyx_PyLong_From_int, 1, 1, 1, 1, __Pyx_ReferenceSharing_OwnStrongReference); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 939, __pyx_L23_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_1 = __Pyx_PyDict_GetItemDefault(__pyx_v_missing_user_values, __pyx_t_3, Py_None); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 937, __pyx_L23_error) + __pyx_t_1 = __Pyx_PyDict_GetItemDefault(__pyx_v_missing_user_values, __pyx_t_3, Py_None); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 939, __pyx_L23_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF_SET(__pyx_v_curuser_missing, __pyx_t_1); __pyx_t_1 = 0; - /* "pyreadstat/_readstat_writer.pyx":936 + /* "pyreadstat/_readstat_writer.pyx":938 * is_missing = col_types[col_indx][2] * curuser_missing = None * if missing_user_values: # <<<<<<<<<<<<<< @@ -16383,17 +16426,17 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d */ } - /* "pyreadstat/_readstat_writer.pyx":939 + /* "pyreadstat/_readstat_writer.pyx":941 * curuser_missing = missing_user_values.get(col_names[col_indx]) * * if is_missing: # <<<<<<<<<<<<<< * # For pandas we need isna because values can be Nan, NA, NAT, None * if is_pandas: */ - __pyx_t_20 = __Pyx_PyObject_IsTrue(__pyx_v_is_missing); if (unlikely((__pyx_t_20 < 0))) __PYX_ERR(0, 939, __pyx_L23_error) + __pyx_t_20 = __Pyx_PyObject_IsTrue(__pyx_v_is_missing); if (unlikely((__pyx_t_20 < 0))) __PYX_ERR(0, 941, __pyx_L23_error) if (__pyx_t_20) { - /* "pyreadstat/_readstat_writer.pyx":941 + /* "pyreadstat/_readstat_writer.pyx":943 * if is_missing: * # For pandas we need isna because values can be Nan, NA, NAT, None * if is_pandas: # <<<<<<<<<<<<<< @@ -16402,7 +16445,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d */ if (__pyx_v_is_pandas) { - /* "pyreadstat/_readstat_writer.pyx":942 + /* "pyreadstat/_readstat_writer.pyx":944 * # For pandas we need isna because values can be Nan, NA, NAT, None * if is_pandas: * check_if_missing = pd.isna(curval) # <<<<<<<<<<<<<< @@ -16416,13 +16459,13 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_v_curval}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_isna, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 942, __pyx_L23_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 944, __pyx_L23_error) __Pyx_GOTREF(__pyx_t_1); } __Pyx_XDECREF_SET(__pyx_v_check_if_missing, __pyx_t_1); __pyx_t_1 = 0; - /* "pyreadstat/_readstat_writer.pyx":941 + /* "pyreadstat/_readstat_writer.pyx":943 * if is_missing: * # For pandas we need isna because values can be Nan, NA, NAT, None * if is_pandas: # <<<<<<<<<<<<<< @@ -16432,7 +16475,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d goto __pyx_L99; } - /* "pyreadstat/_readstat_writer.pyx":945 + /* "pyreadstat/_readstat_writer.pyx":947 * # for other libraries the value would be None * else: * check_if_missing = curval is None # <<<<<<<<<<<<<< @@ -16441,33 +16484,33 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d */ /*else*/ { __pyx_t_20 = (__pyx_v_curval == Py_None); - __pyx_t_1 = __Pyx_PyBool_FromLong(__pyx_t_20); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 945, __pyx_L23_error) + __pyx_t_1 = __Pyx_PyBool_FromLong(__pyx_t_20); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 947, __pyx_L23_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_XDECREF_SET(__pyx_v_check_if_missing, __pyx_t_1); __pyx_t_1 = 0; } __pyx_L99:; - /* "pyreadstat/_readstat_writer.pyx":946 + /* "pyreadstat/_readstat_writer.pyx":948 * else: * check_if_missing = curval is None * if check_if_missing: # <<<<<<<<<<<<<< * check_exit_status(readstat_insert_missing_value(writer, tempvar)) * continue */ - __pyx_t_20 = __Pyx_PyObject_IsTrue(__pyx_v_check_if_missing); if (unlikely((__pyx_t_20 < 0))) __PYX_ERR(0, 946, __pyx_L23_error) + __pyx_t_20 = __Pyx_PyObject_IsTrue(__pyx_v_check_if_missing); if (unlikely((__pyx_t_20 < 0))) __PYX_ERR(0, 948, __pyx_L23_error) if (__pyx_t_20) { - /* "pyreadstat/_readstat_writer.pyx":947 + /* "pyreadstat/_readstat_writer.pyx":949 * check_if_missing = curval is None * if check_if_missing: * check_exit_status(readstat_insert_missing_value(writer, tempvar)) # <<<<<<<<<<<<<< * continue * */ - __pyx_f_10pyreadstat_16_readstat_parser_check_exit_status(readstat_insert_missing_value(__pyx_v_writer, __pyx_v_tempvar)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 947, __pyx_L23_error) + __pyx_f_10pyreadstat_16_readstat_parser_check_exit_status(readstat_insert_missing_value(__pyx_v_writer, __pyx_v_tempvar)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 949, __pyx_L23_error) - /* "pyreadstat/_readstat_writer.pyx":948 + /* "pyreadstat/_readstat_writer.pyx":950 * if check_if_missing: * check_exit_status(readstat_insert_missing_value(writer, tempvar)) * continue # <<<<<<<<<<<<<< @@ -16476,7 +16519,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d */ goto __pyx_L95_continue; - /* "pyreadstat/_readstat_writer.pyx":946 + /* "pyreadstat/_readstat_writer.pyx":948 * else: * check_if_missing = curval is None * if check_if_missing: # <<<<<<<<<<<<<< @@ -16485,7 +16528,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d */ } - /* "pyreadstat/_readstat_writer.pyx":939 + /* "pyreadstat/_readstat_writer.pyx":941 * curuser_missing = missing_user_values.get(col_names[col_indx]) * * if is_missing: # <<<<<<<<<<<<<< @@ -16494,52 +16537,52 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d */ } - /* "pyreadstat/_readstat_writer.pyx":950 + /* "pyreadstat/_readstat_writer.pyx":952 * continue * * if curuser_missing and curtype in pywriter_numeric_types: # <<<<<<<<<<<<<< * if curval in curuser_missing: * check_exit_status(readstat_insert_tagged_missing_value(writer, tempvar, ord(curval))) */ - __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_v_curuser_missing); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(0, 950, __pyx_L23_error) + __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_v_curuser_missing); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(0, 952, __pyx_L23_error) if (__pyx_t_6) { } else { __pyx_t_20 = __pyx_t_6; goto __pyx_L102_bool_binop_done; } - __pyx_t_1 = __Pyx_PyLong_From___pyx_t_10pyreadstat_16_readstat_writer_pywriter_variable_type(__pyx_v_curtype); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 950, __pyx_L23_error) + __pyx_t_1 = __Pyx_PyLong_From___pyx_t_10pyreadstat_16_readstat_writer_pywriter_variable_type(__pyx_v_curtype); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 952, __pyx_L23_error) __Pyx_GOTREF(__pyx_t_1); if (unlikely(__pyx_v_10pyreadstat_16_readstat_writer_pywriter_numeric_types == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable"); - __PYX_ERR(0, 950, __pyx_L23_error) + __PYX_ERR(0, 952, __pyx_L23_error) } - __pyx_t_6 = (__Pyx_PySet_ContainsTF(__pyx_t_1, __pyx_v_10pyreadstat_16_readstat_writer_pywriter_numeric_types, Py_EQ)); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(0, 950, __pyx_L23_error) + __pyx_t_6 = (__Pyx_PySet_ContainsTF(__pyx_t_1, __pyx_v_10pyreadstat_16_readstat_writer_pywriter_numeric_types, Py_EQ)); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(0, 952, __pyx_L23_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_20 = __pyx_t_6; __pyx_L102_bool_binop_done:; if (__pyx_t_20) { - /* "pyreadstat/_readstat_writer.pyx":951 + /* "pyreadstat/_readstat_writer.pyx":953 * * if curuser_missing and curtype in pywriter_numeric_types: * if curval in curuser_missing: # <<<<<<<<<<<<<< * check_exit_status(readstat_insert_tagged_missing_value(writer, tempvar, ord(curval))) * continue */ - __pyx_t_20 = (__Pyx_PySequence_ContainsTF(__pyx_v_curval, __pyx_v_curuser_missing, Py_EQ)); if (unlikely((__pyx_t_20 < 0))) __PYX_ERR(0, 951, __pyx_L23_error) + __pyx_t_20 = (__Pyx_PySequence_ContainsTF(__pyx_v_curval, __pyx_v_curuser_missing, Py_EQ)); if (unlikely((__pyx_t_20 < 0))) __PYX_ERR(0, 953, __pyx_L23_error) if (__pyx_t_20) { - /* "pyreadstat/_readstat_writer.pyx":952 + /* "pyreadstat/_readstat_writer.pyx":954 * if curuser_missing and curtype in pywriter_numeric_types: * if curval in curuser_missing: * check_exit_status(readstat_insert_tagged_missing_value(writer, tempvar, ord(curval))) # <<<<<<<<<<<<<< * continue * */ - __pyx_t_32 = __Pyx_PyObject_Ord(__pyx_v_curval); if (unlikely(__pyx_t_32 == ((long)(long)(Py_UCS4)-1))) __PYX_ERR(0, 952, __pyx_L23_error) - __pyx_f_10pyreadstat_16_readstat_parser_check_exit_status(readstat_insert_tagged_missing_value(__pyx_v_writer, __pyx_v_tempvar, __pyx_t_32)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 952, __pyx_L23_error) + __pyx_t_32 = __Pyx_PyObject_Ord(__pyx_v_curval); if (unlikely(__pyx_t_32 == ((long)(long)(Py_UCS4)-1))) __PYX_ERR(0, 954, __pyx_L23_error) + __pyx_f_10pyreadstat_16_readstat_parser_check_exit_status(readstat_insert_tagged_missing_value(__pyx_v_writer, __pyx_v_tempvar, __pyx_t_32)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 954, __pyx_L23_error) - /* "pyreadstat/_readstat_writer.pyx":953 + /* "pyreadstat/_readstat_writer.pyx":955 * if curval in curuser_missing: * check_exit_status(readstat_insert_tagged_missing_value(writer, tempvar, ord(curval))) * continue # <<<<<<<<<<<<<< @@ -16548,7 +16591,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d */ goto __pyx_L95_continue; - /* "pyreadstat/_readstat_writer.pyx":951 + /* "pyreadstat/_readstat_writer.pyx":953 * * if curuser_missing and curtype in pywriter_numeric_types: * if curval in curuser_missing: # <<<<<<<<<<<<<< @@ -16557,7 +16600,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d */ } - /* "pyreadstat/_readstat_writer.pyx":950 + /* "pyreadstat/_readstat_writer.pyx":952 * continue * * if curuser_missing and curtype in pywriter_numeric_types: # <<<<<<<<<<<<<< @@ -16566,7 +16609,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d */ } - /* "pyreadstat/_readstat_writer.pyx":955 + /* "pyreadstat/_readstat_writer.pyx":957 * continue * * if curtype == PYWRITER_DOUBLE: # <<<<<<<<<<<<<< @@ -16576,17 +16619,17 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d __pyx_t_20 = (__pyx_v_curtype == __pyx_e_10pyreadstat_16_readstat_writer_PYWRITER_DOUBLE); if (__pyx_t_20) { - /* "pyreadstat/_readstat_writer.pyx":956 + /* "pyreadstat/_readstat_writer.pyx":958 * * if curtype == PYWRITER_DOUBLE: * check_exit_status(readstat_insert_double_value(writer, tempvar, curval)) # <<<<<<<<<<<<<< * elif curtype == PYWRITER_INTEGER: * check_exit_status(readstat_insert_int32_value(writer, tempvar, curval)) */ - __pyx_t_33 = __Pyx_PyFloat_AsDouble(__pyx_v_curval); if (unlikely((__pyx_t_33 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 956, __pyx_L23_error) - __pyx_f_10pyreadstat_16_readstat_parser_check_exit_status(readstat_insert_double_value(__pyx_v_writer, __pyx_v_tempvar, ((double)__pyx_t_33))); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 956, __pyx_L23_error) + __pyx_t_33 = __Pyx_PyFloat_AsDouble(__pyx_v_curval); if (unlikely((__pyx_t_33 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 958, __pyx_L23_error) + __pyx_f_10pyreadstat_16_readstat_parser_check_exit_status(readstat_insert_double_value(__pyx_v_writer, __pyx_v_tempvar, ((double)__pyx_t_33))); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 958, __pyx_L23_error) - /* "pyreadstat/_readstat_writer.pyx":955 + /* "pyreadstat/_readstat_writer.pyx":957 * continue * * if curtype == PYWRITER_DOUBLE: # <<<<<<<<<<<<<< @@ -16596,7 +16639,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d goto __pyx_L105; } - /* "pyreadstat/_readstat_writer.pyx":957 + /* "pyreadstat/_readstat_writer.pyx":959 * if curtype == PYWRITER_DOUBLE: * check_exit_status(readstat_insert_double_value(writer, tempvar, curval)) * elif curtype == PYWRITER_INTEGER: # <<<<<<<<<<<<<< @@ -16606,17 +16649,17 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d __pyx_t_20 = (__pyx_v_curtype == __pyx_e_10pyreadstat_16_readstat_writer_PYWRITER_INTEGER); if (__pyx_t_20) { - /* "pyreadstat/_readstat_writer.pyx":958 + /* "pyreadstat/_readstat_writer.pyx":960 * check_exit_status(readstat_insert_double_value(writer, tempvar, curval)) * elif curtype == PYWRITER_INTEGER: * check_exit_status(readstat_insert_int32_value(writer, tempvar, curval)) # <<<<<<<<<<<<<< * elif curtype == PYWRITER_LOGICAL: * check_exit_status(readstat_insert_int32_value(writer, tempvar, curval)) */ - __pyx_t_34 = __Pyx_PyLong_As_int32_t(__pyx_v_curval); if (unlikely((__pyx_t_34 == ((int32_t)-1)) && PyErr_Occurred())) __PYX_ERR(0, 958, __pyx_L23_error) - __pyx_f_10pyreadstat_16_readstat_parser_check_exit_status(readstat_insert_int32_value(__pyx_v_writer, __pyx_v_tempvar, __pyx_t_34)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 958, __pyx_L23_error) + __pyx_t_34 = __Pyx_PyLong_As_int32_t(__pyx_v_curval); if (unlikely((__pyx_t_34 == ((int32_t)-1)) && PyErr_Occurred())) __PYX_ERR(0, 960, __pyx_L23_error) + __pyx_f_10pyreadstat_16_readstat_parser_check_exit_status(readstat_insert_int32_value(__pyx_v_writer, __pyx_v_tempvar, __pyx_t_34)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 960, __pyx_L23_error) - /* "pyreadstat/_readstat_writer.pyx":957 + /* "pyreadstat/_readstat_writer.pyx":959 * if curtype == PYWRITER_DOUBLE: * check_exit_status(readstat_insert_double_value(writer, tempvar, curval)) * elif curtype == PYWRITER_INTEGER: # <<<<<<<<<<<<<< @@ -16626,7 +16669,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d goto __pyx_L105; } - /* "pyreadstat/_readstat_writer.pyx":959 + /* "pyreadstat/_readstat_writer.pyx":961 * elif curtype == PYWRITER_INTEGER: * check_exit_status(readstat_insert_int32_value(writer, tempvar, curval)) * elif curtype == PYWRITER_LOGICAL: # <<<<<<<<<<<<<< @@ -16636,17 +16679,17 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d __pyx_t_20 = (__pyx_v_curtype == __pyx_e_10pyreadstat_16_readstat_writer_PYWRITER_LOGICAL); if (__pyx_t_20) { - /* "pyreadstat/_readstat_writer.pyx":960 + /* "pyreadstat/_readstat_writer.pyx":962 * check_exit_status(readstat_insert_int32_value(writer, tempvar, curval)) * elif curtype == PYWRITER_LOGICAL: * check_exit_status(readstat_insert_int32_value(writer, tempvar, curval)) # <<<<<<<<<<<<<< * elif curtype == PYWRITER_CHARACTER: * check_exit_status(readstat_insert_string_value(writer, tempvar, curval.encode("utf-8"))) */ - __pyx_t_25 = __Pyx_PyLong_As_int(__pyx_v_curval); if (unlikely((__pyx_t_25 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 960, __pyx_L23_error) - __pyx_f_10pyreadstat_16_readstat_parser_check_exit_status(readstat_insert_int32_value(__pyx_v_writer, __pyx_v_tempvar, ((int)__pyx_t_25))); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 960, __pyx_L23_error) + __pyx_t_25 = __Pyx_PyLong_As_int(__pyx_v_curval); if (unlikely((__pyx_t_25 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 962, __pyx_L23_error) + __pyx_f_10pyreadstat_16_readstat_parser_check_exit_status(readstat_insert_int32_value(__pyx_v_writer, __pyx_v_tempvar, ((int)__pyx_t_25))); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 962, __pyx_L23_error) - /* "pyreadstat/_readstat_writer.pyx":959 + /* "pyreadstat/_readstat_writer.pyx":961 * elif curtype == PYWRITER_INTEGER: * check_exit_status(readstat_insert_int32_value(writer, tempvar, curval)) * elif curtype == PYWRITER_LOGICAL: # <<<<<<<<<<<<<< @@ -16656,7 +16699,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d goto __pyx_L105; } - /* "pyreadstat/_readstat_writer.pyx":961 + /* "pyreadstat/_readstat_writer.pyx":963 * elif curtype == PYWRITER_LOGICAL: * check_exit_status(readstat_insert_int32_value(writer, tempvar, curval)) * elif curtype == PYWRITER_CHARACTER: # <<<<<<<<<<<<<< @@ -16666,7 +16709,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d __pyx_t_20 = (__pyx_v_curtype == __pyx_e_10pyreadstat_16_readstat_writer_PYWRITER_CHARACTER); if (__pyx_t_20) { - /* "pyreadstat/_readstat_writer.pyx":962 + /* "pyreadstat/_readstat_writer.pyx":964 * check_exit_status(readstat_insert_int32_value(writer, tempvar, curval)) * elif curtype == PYWRITER_CHARACTER: * check_exit_status(readstat_insert_string_value(writer, tempvar, curval.encode("utf-8"))) # <<<<<<<<<<<<<< @@ -16680,14 +16723,14 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_mstate_global->__pyx_kp_u_utf_8}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_encode, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 962, __pyx_L23_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 964, __pyx_L23_error) __Pyx_GOTREF(__pyx_t_1); } - __pyx_t_35 = __Pyx_PyObject_AsString(__pyx_t_1); if (unlikely((!__pyx_t_35) && PyErr_Occurred())) __PYX_ERR(0, 962, __pyx_L23_error) - __pyx_f_10pyreadstat_16_readstat_parser_check_exit_status(readstat_insert_string_value(__pyx_v_writer, __pyx_v_tempvar, __pyx_t_35)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 962, __pyx_L23_error) + __pyx_t_35 = __Pyx_PyObject_AsString(__pyx_t_1); if (unlikely((!__pyx_t_35) && PyErr_Occurred())) __PYX_ERR(0, 964, __pyx_L23_error) + __pyx_f_10pyreadstat_16_readstat_parser_check_exit_status(readstat_insert_string_value(__pyx_v_writer, __pyx_v_tempvar, __pyx_t_35)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 964, __pyx_L23_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "pyreadstat/_readstat_writer.pyx":961 + /* "pyreadstat/_readstat_writer.pyx":963 * elif curtype == PYWRITER_LOGICAL: * check_exit_status(readstat_insert_int32_value(writer, tempvar, curval)) * elif curtype == PYWRITER_CHARACTER: # <<<<<<<<<<<<<< @@ -16697,7 +16740,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d goto __pyx_L105; } - /* "pyreadstat/_readstat_writer.pyx":963 + /* "pyreadstat/_readstat_writer.pyx":965 * elif curtype == PYWRITER_CHARACTER: * check_exit_status(readstat_insert_string_value(writer, tempvar, curval.encode("utf-8"))) * elif curtype == PYWRITER_OBJECT: # <<<<<<<<<<<<<< @@ -16707,32 +16750,32 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d __pyx_t_20 = (__pyx_v_curtype == __pyx_e_10pyreadstat_16_readstat_writer_PYWRITER_OBJECT); if (__pyx_t_20) { - /* "pyreadstat/_readstat_writer.pyx":964 + /* "pyreadstat/_readstat_writer.pyx":966 * check_exit_status(readstat_insert_string_value(writer, tempvar, curval.encode("utf-8"))) * elif curtype == PYWRITER_OBJECT: * curvalstr = str(curval) # <<<<<<<<<<<<<< * check_exit_status(readstat_insert_string_value(writer, tempvar, curvalstr.encode("utf-8"))) * elif curtype == PYWRITER_DTA_STR_REF: */ - __pyx_t_1 = __Pyx_PyObject_Unicode(__pyx_v_curval); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 964, __pyx_L23_error) + __pyx_t_1 = __Pyx_PyObject_Unicode(__pyx_v_curval); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 966, __pyx_L23_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_XDECREF_SET(__pyx_v_curvalstr, ((PyObject*)__pyx_t_1)); __pyx_t_1 = 0; - /* "pyreadstat/_readstat_writer.pyx":965 + /* "pyreadstat/_readstat_writer.pyx":967 * elif curtype == PYWRITER_OBJECT: * curvalstr = str(curval) * check_exit_status(readstat_insert_string_value(writer, tempvar, curvalstr.encode("utf-8"))) # <<<<<<<<<<<<<< * elif curtype == PYWRITER_DTA_STR_REF: * curvalstr = str(curval) */ - __pyx_t_1 = PyUnicode_AsUTF8String(__pyx_v_curvalstr); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 965, __pyx_L23_error) + __pyx_t_1 = PyUnicode_AsUTF8String(__pyx_v_curvalstr); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 967, __pyx_L23_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_35 = __Pyx_PyBytes_AsString(__pyx_t_1); if (unlikely((!__pyx_t_35) && PyErr_Occurred())) __PYX_ERR(0, 965, __pyx_L23_error) - __pyx_f_10pyreadstat_16_readstat_parser_check_exit_status(readstat_insert_string_value(__pyx_v_writer, __pyx_v_tempvar, __pyx_t_35)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 965, __pyx_L23_error) + __pyx_t_35 = __Pyx_PyBytes_AsString(__pyx_t_1); if (unlikely((!__pyx_t_35) && PyErr_Occurred())) __PYX_ERR(0, 967, __pyx_L23_error) + __pyx_f_10pyreadstat_16_readstat_parser_check_exit_status(readstat_insert_string_value(__pyx_v_writer, __pyx_v_tempvar, __pyx_t_35)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 967, __pyx_L23_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "pyreadstat/_readstat_writer.pyx":963 + /* "pyreadstat/_readstat_writer.pyx":965 * elif curtype == PYWRITER_CHARACTER: * check_exit_status(readstat_insert_string_value(writer, tempvar, curval.encode("utf-8"))) * elif curtype == PYWRITER_OBJECT: # <<<<<<<<<<<<<< @@ -16742,7 +16785,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d goto __pyx_L105; } - /* "pyreadstat/_readstat_writer.pyx":966 + /* "pyreadstat/_readstat_writer.pyx":968 * curvalstr = str(curval) * check_exit_status(readstat_insert_string_value(writer, tempvar, curvalstr.encode("utf-8"))) * elif curtype == PYWRITER_DTA_STR_REF: # <<<<<<<<<<<<<< @@ -16752,50 +16795,50 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d __pyx_t_20 = (__pyx_v_curtype == __pyx_e_10pyreadstat_16_readstat_writer_PYWRITER_DTA_STR_REF); if (__pyx_t_20) { - /* "pyreadstat/_readstat_writer.pyx":967 + /* "pyreadstat/_readstat_writer.pyx":969 * check_exit_status(readstat_insert_string_value(writer, tempvar, curvalstr.encode("utf-8"))) * elif curtype == PYWRITER_DTA_STR_REF: * curvalstr = str(curval) # <<<<<<<<<<<<<< * strref_indx = strref_map[curvalstr] * strref = readstat_get_string_ref(writer, strref_indx) */ - __pyx_t_1 = __Pyx_PyObject_Unicode(__pyx_v_curval); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 967, __pyx_L23_error) + __pyx_t_1 = __Pyx_PyObject_Unicode(__pyx_v_curval); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 969, __pyx_L23_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_XDECREF_SET(__pyx_v_curvalstr, ((PyObject*)__pyx_t_1)); __pyx_t_1 = 0; - /* "pyreadstat/_readstat_writer.pyx":968 + /* "pyreadstat/_readstat_writer.pyx":970 * elif curtype == PYWRITER_DTA_STR_REF: * curvalstr = str(curval) * strref_indx = strref_map[curvalstr] # <<<<<<<<<<<<<< * strref = readstat_get_string_ref(writer, strref_indx) * check_exit_status(readstat_insert_string_ref(writer, tempvar, strref)) */ - __pyx_t_1 = __Pyx_PyDict_GetItem(__pyx_v_strref_map, __pyx_v_curvalstr); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 968, __pyx_L23_error) + __pyx_t_1 = __Pyx_PyDict_GetItem(__pyx_v_strref_map, __pyx_v_curvalstr); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 970, __pyx_L23_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_XDECREF_SET(__pyx_v_strref_indx, __pyx_t_1); __pyx_t_1 = 0; - /* "pyreadstat/_readstat_writer.pyx":969 + /* "pyreadstat/_readstat_writer.pyx":971 * curvalstr = str(curval) * strref_indx = strref_map[curvalstr] * strref = readstat_get_string_ref(writer, strref_indx) # <<<<<<<<<<<<<< * check_exit_status(readstat_insert_string_ref(writer, tempvar, strref)) * elif curtype == PYWRITER_DATETIME64 or curtype == PYWRITER_DATE64 or curtype == PYWRITER_TIME64: */ - __pyx_t_25 = __Pyx_PyLong_As_int(__pyx_v_strref_indx); if (unlikely((__pyx_t_25 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 969, __pyx_L23_error) + __pyx_t_25 = __Pyx_PyLong_As_int(__pyx_v_strref_indx); if (unlikely((__pyx_t_25 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 971, __pyx_L23_error) __pyx_v_strref = readstat_get_string_ref(__pyx_v_writer, __pyx_t_25); - /* "pyreadstat/_readstat_writer.pyx":970 + /* "pyreadstat/_readstat_writer.pyx":972 * strref_indx = strref_map[curvalstr] * strref = readstat_get_string_ref(writer, strref_indx) * check_exit_status(readstat_insert_string_ref(writer, tempvar, strref)) # <<<<<<<<<<<<<< * elif curtype == PYWRITER_DATETIME64 or curtype == PYWRITER_DATE64 or curtype == PYWRITER_TIME64: * check_exit_status(readstat_insert_double_value(writer, tempvar, curval)) */ - __pyx_f_10pyreadstat_16_readstat_parser_check_exit_status(readstat_insert_string_ref(__pyx_v_writer, __pyx_v_tempvar, __pyx_v_strref)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 970, __pyx_L23_error) + __pyx_f_10pyreadstat_16_readstat_parser_check_exit_status(readstat_insert_string_ref(__pyx_v_writer, __pyx_v_tempvar, __pyx_v_strref)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 972, __pyx_L23_error) - /* "pyreadstat/_readstat_writer.pyx":966 + /* "pyreadstat/_readstat_writer.pyx":968 * curvalstr = str(curval) * check_exit_status(readstat_insert_string_value(writer, tempvar, curvalstr.encode("utf-8"))) * elif curtype == PYWRITER_DTA_STR_REF: # <<<<<<<<<<<<<< @@ -16805,7 +16848,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d goto __pyx_L105; } - /* "pyreadstat/_readstat_writer.pyx":971 + /* "pyreadstat/_readstat_writer.pyx":973 * strref = readstat_get_string_ref(writer, strref_indx) * check_exit_status(readstat_insert_string_ref(writer, tempvar, strref)) * elif curtype == PYWRITER_DATETIME64 or curtype == PYWRITER_DATE64 or curtype == PYWRITER_TIME64: # <<<<<<<<<<<<<< @@ -16824,17 +16867,17 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d } if (__pyx_t_20) { - /* "pyreadstat/_readstat_writer.pyx":972 + /* "pyreadstat/_readstat_writer.pyx":974 * check_exit_status(readstat_insert_string_ref(writer, tempvar, strref)) * elif curtype == PYWRITER_DATETIME64 or curtype == PYWRITER_DATE64 or curtype == PYWRITER_TIME64: * check_exit_status(readstat_insert_double_value(writer, tempvar, curval)) # <<<<<<<<<<<<<< * elif curtype in pyrwriter_datetimelike_types: * dtimelikeval = convert_datetimelike_to_number(file_format, curtype, curval) */ - __pyx_t_33 = __Pyx_PyFloat_AsDouble(__pyx_v_curval); if (unlikely((__pyx_t_33 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 972, __pyx_L23_error) - __pyx_f_10pyreadstat_16_readstat_parser_check_exit_status(readstat_insert_double_value(__pyx_v_writer, __pyx_v_tempvar, ((double)__pyx_t_33))); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 972, __pyx_L23_error) + __pyx_t_33 = __Pyx_PyFloat_AsDouble(__pyx_v_curval); if (unlikely((__pyx_t_33 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 974, __pyx_L23_error) + __pyx_f_10pyreadstat_16_readstat_parser_check_exit_status(readstat_insert_double_value(__pyx_v_writer, __pyx_v_tempvar, ((double)__pyx_t_33))); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 974, __pyx_L23_error) - /* "pyreadstat/_readstat_writer.pyx":971 + /* "pyreadstat/_readstat_writer.pyx":973 * strref = readstat_get_string_ref(writer, strref_indx) * check_exit_status(readstat_insert_string_ref(writer, tempvar, strref)) * elif curtype == PYWRITER_DATETIME64 or curtype == PYWRITER_DATE64 or curtype == PYWRITER_TIME64: # <<<<<<<<<<<<<< @@ -16844,43 +16887,43 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d goto __pyx_L105; } - /* "pyreadstat/_readstat_writer.pyx":973 + /* "pyreadstat/_readstat_writer.pyx":975 * elif curtype == PYWRITER_DATETIME64 or curtype == PYWRITER_DATE64 or curtype == PYWRITER_TIME64: * check_exit_status(readstat_insert_double_value(writer, tempvar, curval)) * elif curtype in pyrwriter_datetimelike_types: # <<<<<<<<<<<<<< * dtimelikeval = convert_datetimelike_to_number(file_format, curtype, curval) * check_exit_status(readstat_insert_double_value(writer, tempvar, dtimelikeval)) */ - __pyx_t_1 = __Pyx_PyLong_From___pyx_t_10pyreadstat_16_readstat_writer_pywriter_variable_type(__pyx_v_curtype); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 973, __pyx_L23_error) + __pyx_t_1 = __Pyx_PyLong_From___pyx_t_10pyreadstat_16_readstat_writer_pywriter_variable_type(__pyx_v_curtype); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 975, __pyx_L23_error) __Pyx_GOTREF(__pyx_t_1); if (unlikely(__pyx_v_10pyreadstat_16_readstat_writer_pyrwriter_datetimelike_types == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable"); - __PYX_ERR(0, 973, __pyx_L23_error) + __PYX_ERR(0, 975, __pyx_L23_error) } - __pyx_t_20 = (__Pyx_PySet_ContainsTF(__pyx_t_1, __pyx_v_10pyreadstat_16_readstat_writer_pyrwriter_datetimelike_types, Py_EQ)); if (unlikely((__pyx_t_20 < 0))) __PYX_ERR(0, 973, __pyx_L23_error) + __pyx_t_20 = (__Pyx_PySet_ContainsTF(__pyx_t_1, __pyx_v_10pyreadstat_16_readstat_writer_pyrwriter_datetimelike_types, Py_EQ)); if (unlikely((__pyx_t_20 < 0))) __PYX_ERR(0, 975, __pyx_L23_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (likely(__pyx_t_20)) { - /* "pyreadstat/_readstat_writer.pyx":974 + /* "pyreadstat/_readstat_writer.pyx":976 * check_exit_status(readstat_insert_double_value(writer, tempvar, curval)) * elif curtype in pyrwriter_datetimelike_types: * dtimelikeval = convert_datetimelike_to_number(file_format, curtype, curval) # <<<<<<<<<<<<<< * check_exit_status(readstat_insert_double_value(writer, tempvar, dtimelikeval)) * else: */ - __pyx_t_33 = __pyx_f_10pyreadstat_16_readstat_writer_convert_datetimelike_to_number(__pyx_v_file_format, __pyx_v_curtype, __pyx_v_curval); if (unlikely(__pyx_t_33 == ((double)-1) && PyErr_Occurred())) __PYX_ERR(0, 974, __pyx_L23_error) + __pyx_t_33 = __pyx_f_10pyreadstat_16_readstat_writer_convert_datetimelike_to_number(__pyx_v_file_format, __pyx_v_curtype, __pyx_v_curval); if (unlikely(__pyx_t_33 == ((double)-1) && PyErr_Occurred())) __PYX_ERR(0, 976, __pyx_L23_error) __pyx_v_dtimelikeval = __pyx_t_33; - /* "pyreadstat/_readstat_writer.pyx":975 + /* "pyreadstat/_readstat_writer.pyx":977 * elif curtype in pyrwriter_datetimelike_types: * dtimelikeval = convert_datetimelike_to_number(file_format, curtype, curval) * check_exit_status(readstat_insert_double_value(writer, tempvar, dtimelikeval)) # <<<<<<<<<<<<<< * else: * raise PyreadstatError("Unknown data format to insert") */ - __pyx_f_10pyreadstat_16_readstat_parser_check_exit_status(readstat_insert_double_value(__pyx_v_writer, __pyx_v_tempvar, __pyx_v_dtimelikeval)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 975, __pyx_L23_error) + __pyx_f_10pyreadstat_16_readstat_parser_check_exit_status(readstat_insert_double_value(__pyx_v_writer, __pyx_v_tempvar, __pyx_v_dtimelikeval)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 977, __pyx_L23_error) - /* "pyreadstat/_readstat_writer.pyx":973 + /* "pyreadstat/_readstat_writer.pyx":975 * elif curtype == PYWRITER_DATETIME64 or curtype == PYWRITER_DATE64 or curtype == PYWRITER_TIME64: * check_exit_status(readstat_insert_double_value(writer, tempvar, curval)) * elif curtype in pyrwriter_datetimelike_types: # <<<<<<<<<<<<<< @@ -16890,7 +16933,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d goto __pyx_L105; } - /* "pyreadstat/_readstat_writer.pyx":977 + /* "pyreadstat/_readstat_writer.pyx":979 * check_exit_status(readstat_insert_double_value(writer, tempvar, dtimelikeval)) * else: * raise PyreadstatError("Unknown data format to insert") # <<<<<<<<<<<<<< @@ -16899,7 +16942,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d */ /*else*/ { __pyx_t_3 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_13, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 977, __pyx_L23_error) + __Pyx_GetModuleGlobalName(__pyx_t_13, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 979, __pyx_L23_error) __Pyx_GOTREF(__pyx_t_13); __pyx_t_5 = 1; #if CYTHON_UNPACK_METHODS @@ -16918,39 +16961,39 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_13, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 977, __pyx_L23_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 979, __pyx_L23_error) __Pyx_GOTREF(__pyx_t_1); } __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __PYX_ERR(0, 977, __pyx_L23_error) + __PYX_ERR(0, 979, __pyx_L23_error) } __pyx_L105:; __pyx_L95_continue:; } - /* "pyreadstat/_readstat_writer.pyx":979 + /* "pyreadstat/_readstat_writer.pyx":981 * raise PyreadstatError("Unknown data format to insert") * * check_exit_status(readstat_end_row(writer)) # <<<<<<<<<<<<<< * rowcnt += 1 * */ - __pyx_f_10pyreadstat_16_readstat_parser_check_exit_status(readstat_end_row(__pyx_v_writer)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 979, __pyx_L23_error) + __pyx_f_10pyreadstat_16_readstat_parser_check_exit_status(readstat_end_row(__pyx_v_writer)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 981, __pyx_L23_error) - /* "pyreadstat/_readstat_writer.pyx":980 + /* "pyreadstat/_readstat_writer.pyx":982 * * check_exit_status(readstat_end_row(writer)) * rowcnt += 1 # <<<<<<<<<<<<<< * * check_exit_status(readstat_end_writing(writer)) */ - __pyx_t_1 = __Pyx_PyLong_AddObjC(__pyx_v_rowcnt, __pyx_mstate_global->__pyx_int_1, 1, 1, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 980, __pyx_L23_error) + __pyx_t_1 = __Pyx_PyLong_AddObjC(__pyx_v_rowcnt, __pyx_mstate_global->__pyx_int_1, 1, 1, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 982, __pyx_L23_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_rowcnt, __pyx_t_1); __pyx_t_1 = 0; - /* "pyreadstat/_readstat_writer.pyx":926 + /* "pyreadstat/_readstat_writer.pyx":928 * rowcnt = 0 * * for row in df2.iter_rows(): # <<<<<<<<<<<<<< @@ -16960,16 +17003,16 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d } __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - /* "pyreadstat/_readstat_writer.pyx":982 + /* "pyreadstat/_readstat_writer.pyx":984 * rowcnt += 1 * * check_exit_status(readstat_end_writing(writer)) # <<<<<<<<<<<<<< * * except: */ - __pyx_f_10pyreadstat_16_readstat_parser_check_exit_status(readstat_end_writing(__pyx_v_writer)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 982, __pyx_L23_error) + __pyx_f_10pyreadstat_16_readstat_parser_check_exit_status(readstat_end_writing(__pyx_v_writer)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 984, __pyx_L23_error) - /* "pyreadstat/_readstat_writer.pyx":771 + /* "pyreadstat/_readstat_writer.pyx":773 * writer = readstat_writer_init() * * try: # <<<<<<<<<<<<<< @@ -16990,7 +17033,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - /* "pyreadstat/_readstat_writer.pyx":984 + /* "pyreadstat/_readstat_writer.pyx":986 * check_exit_status(readstat_end_writing(writer)) * * except: # <<<<<<<<<<<<<< @@ -16999,12 +17042,12 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d */ /*except:*/ { __Pyx_AddTraceback("pyreadstat._readstat_writer.run_write", __pyx_clineno, __pyx_lineno, __pyx_filename); - if (__Pyx_GetException(&__pyx_t_4, &__pyx_t_1, &__pyx_t_13) < 0) __PYX_ERR(0, 984, __pyx_L25_except_error) + if (__Pyx_GetException(&__pyx_t_4, &__pyx_t_1, &__pyx_t_13) < 0) __PYX_ERR(0, 986, __pyx_L25_except_error) __Pyx_XGOTREF(__pyx_t_4); __Pyx_XGOTREF(__pyx_t_1); __Pyx_XGOTREF(__pyx_t_13); - /* "pyreadstat/_readstat_writer.pyx":985 + /* "pyreadstat/_readstat_writer.pyx":987 * * except: * raise # <<<<<<<<<<<<<< @@ -17016,10 +17059,10 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d __Pyx_XGIVEREF(__pyx_t_13); __Pyx_ErrRestoreWithState(__pyx_t_4, __pyx_t_1, __pyx_t_13); __pyx_t_4 = 0; __pyx_t_1 = 0; __pyx_t_13 = 0; - __PYX_ERR(0, 985, __pyx_L25_except_error) + __PYX_ERR(0, 987, __pyx_L25_except_error) } - /* "pyreadstat/_readstat_writer.pyx":771 + /* "pyreadstat/_readstat_writer.pyx":773 * writer = readstat_writer_init() * * try: # <<<<<<<<<<<<<< @@ -17036,7 +17079,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d } } - /* "pyreadstat/_readstat_writer.pyx":987 + /* "pyreadstat/_readstat_writer.pyx":989 * raise * finally: * readstat_writer_free(writer) # <<<<<<<<<<<<<< @@ -17047,14 +17090,14 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d /*normal exit:*/{ readstat_writer_free(__pyx_v_writer); - /* "pyreadstat/_readstat_writer.pyx":988 + /* "pyreadstat/_readstat_writer.pyx":990 * finally: * readstat_writer_free(writer) * close_file(fd) # <<<<<<<<<<<<<< * * return 0 */ - __pyx_t_12 = __pyx_f_10pyreadstat_16_readstat_writer_close_file(__pyx_v_fd); if (unlikely(__pyx_t_12 == ((int)-1) && PyErr_Occurred())) __PYX_ERR(0, 988, __pyx_L1_error) + __pyx_t_12 = __pyx_f_10pyreadstat_16_readstat_writer_close_file(__pyx_v_fd); if (unlikely(__pyx_t_12 == ((int)-1) && PyErr_Occurred())) __PYX_ERR(0, 990, __pyx_L1_error) goto __pyx_L22; } __pyx_L21_error:; @@ -17080,7 +17123,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d __pyx_t_12 = __pyx_lineno; __pyx_t_21 = __pyx_clineno; __pyx_t_36 = __pyx_filename; { - /* "pyreadstat/_readstat_writer.pyx":987 + /* "pyreadstat/_readstat_writer.pyx":989 * raise * finally: * readstat_writer_free(writer) # <<<<<<<<<<<<<< @@ -17089,14 +17132,14 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d */ readstat_writer_free(__pyx_v_writer); - /* "pyreadstat/_readstat_writer.pyx":988 + /* "pyreadstat/_readstat_writer.pyx":990 * finally: * readstat_writer_free(writer) * close_file(fd) # <<<<<<<<<<<<<< * * return 0 */ - __pyx_t_22 = __pyx_f_10pyreadstat_16_readstat_writer_close_file(__pyx_v_fd); if (unlikely(__pyx_t_22 == ((int)-1) && PyErr_Occurred())) __PYX_ERR(0, 988, __pyx_L110_error) + __pyx_t_22 = __pyx_f_10pyreadstat_16_readstat_writer_close_file(__pyx_v_fd); if (unlikely(__pyx_t_22 == ((int)-1) && PyErr_Occurred())) __PYX_ERR(0, 990, __pyx_L110_error) } __Pyx_XGIVEREF(__pyx_t_37); __Pyx_XGIVEREF(__pyx_t_38); @@ -17123,7 +17166,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d __pyx_L22:; } - /* "pyreadstat/_readstat_writer.pyx":990 + /* "pyreadstat/_readstat_writer.pyx":992 * close_file(fd) * * return 0 # <<<<<<<<<<<<<< @@ -17133,7 +17176,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d __pyx_r = 0; goto __pyx_L0; - /* "pyreadstat/_readstat_writer.pyx":677 + /* "pyreadstat/_readstat_writer.pyx":679 * * * cdef int run_write(df, object filename_path, dst_file_format file_format, str file_label, object column_labels, # <<<<<<<<<<<<<< @@ -17198,7 +17241,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d return __pyx_r; } -/* "pyreadstat/_readstat_writer.pyx":992 +/* "pyreadstat/_readstat_writer.pyx":994 * return 0 * * def writer_entry_point(df, dst_path, str writer_format=None, str file_label="", # <<<<<<<<<<<<<< @@ -17261,86 +17304,86 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_df,&__pyx_mstate_global->__pyx_n_u_dst_path,&__pyx_mstate_global->__pyx_n_u_writer_format,&__pyx_mstate_global->__pyx_n_u_file_label,&__pyx_mstate_global->__pyx_n_u_version,&__pyx_mstate_global->__pyx_n_u_table_name,&__pyx_mstate_global->__pyx_n_u_column_labels,&__pyx_mstate_global->__pyx_n_u_compress,&__pyx_mstate_global->__pyx_n_u_row_compress,&__pyx_mstate_global->__pyx_n_u_note,&__pyx_mstate_global->__pyx_n_u_variable_value_labels,&__pyx_mstate_global->__pyx_n_u_missing_ranges,&__pyx_mstate_global->__pyx_n_u_variable_display_width,&__pyx_mstate_global->__pyx_n_u_variable_measure,&__pyx_mstate_global->__pyx_n_u_missing_user_values,&__pyx_mstate_global->__pyx_n_u_variable_format,&__pyx_mstate_global->__pyx_n_u_variable_alignment,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(0, 992, __pyx_L3_error) + if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(0, 994, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 17: values[16] = __Pyx_ArgRef_FASTCALL(__pyx_args, 16); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[16])) __PYX_ERR(0, 992, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[16])) __PYX_ERR(0, 994, __pyx_L3_error) CYTHON_FALLTHROUGH; case 16: values[15] = __Pyx_ArgRef_FASTCALL(__pyx_args, 15); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[15])) __PYX_ERR(0, 992, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[15])) __PYX_ERR(0, 994, __pyx_L3_error) CYTHON_FALLTHROUGH; case 15: values[14] = __Pyx_ArgRef_FASTCALL(__pyx_args, 14); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[14])) __PYX_ERR(0, 992, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[14])) __PYX_ERR(0, 994, __pyx_L3_error) CYTHON_FALLTHROUGH; case 14: values[13] = __Pyx_ArgRef_FASTCALL(__pyx_args, 13); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[13])) __PYX_ERR(0, 992, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[13])) __PYX_ERR(0, 994, __pyx_L3_error) CYTHON_FALLTHROUGH; case 13: values[12] = __Pyx_ArgRef_FASTCALL(__pyx_args, 12); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[12])) __PYX_ERR(0, 992, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[12])) __PYX_ERR(0, 994, __pyx_L3_error) CYTHON_FALLTHROUGH; case 12: values[11] = __Pyx_ArgRef_FASTCALL(__pyx_args, 11); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[11])) __PYX_ERR(0, 992, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[11])) __PYX_ERR(0, 994, __pyx_L3_error) CYTHON_FALLTHROUGH; case 11: values[10] = __Pyx_ArgRef_FASTCALL(__pyx_args, 10); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[10])) __PYX_ERR(0, 992, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[10])) __PYX_ERR(0, 994, __pyx_L3_error) CYTHON_FALLTHROUGH; case 10: values[9] = __Pyx_ArgRef_FASTCALL(__pyx_args, 9); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[9])) __PYX_ERR(0, 992, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[9])) __PYX_ERR(0, 994, __pyx_L3_error) CYTHON_FALLTHROUGH; case 9: values[8] = __Pyx_ArgRef_FASTCALL(__pyx_args, 8); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[8])) __PYX_ERR(0, 992, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[8])) __PYX_ERR(0, 994, __pyx_L3_error) CYTHON_FALLTHROUGH; case 8: values[7] = __Pyx_ArgRef_FASTCALL(__pyx_args, 7); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(0, 992, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(0, 994, __pyx_L3_error) CYTHON_FALLTHROUGH; case 7: values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(0, 992, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(0, 994, __pyx_L3_error) CYTHON_FALLTHROUGH; case 6: values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(0, 992, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(0, 994, __pyx_L3_error) CYTHON_FALLTHROUGH; case 5: values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(0, 992, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(0, 994, __pyx_L3_error) CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(0, 992, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(0, 994, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 992, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 994, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 992, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 994, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 992, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 994, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "writer_entry_point", 0) < (0)) __PYX_ERR(0, 992, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "writer_entry_point", 0) < (0)) __PYX_ERR(0, 994, __pyx_L3_error) if (!values[2]) values[2] = __Pyx_NewRef(((PyObject*)Py_None)); if (!values[3]) values[3] = __Pyx_NewRef(((PyObject*)((PyObject*)__pyx_mstate_global->__pyx_kp_u__4))); - /* "pyreadstat/_readstat_writer.pyx":994 + /* "pyreadstat/_readstat_writer.pyx":996 * def writer_entry_point(df, dst_path, str writer_format=None, str file_label="", * int version=0, * str table_name=None, # <<<<<<<<<<<<<< @@ -17349,7 +17392,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds */ if (!values[5]) values[5] = __Pyx_NewRef(((PyObject*)Py_None)); - /* "pyreadstat/_readstat_writer.pyx":995 + /* "pyreadstat/_readstat_writer.pyx":997 * int version=0, * str table_name=None, * object column_labels=None, compress=False, row_compress=False, object note=None, # <<<<<<<<<<<<<< @@ -17361,7 +17404,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds if (!values[8]) values[8] = __Pyx_NewRef(((PyObject *)((PyObject*)Py_False))); if (!values[9]) values[9] = __Pyx_NewRef(((PyObject *)Py_None)); - /* "pyreadstat/_readstat_writer.pyx":996 + /* "pyreadstat/_readstat_writer.pyx":998 * str table_name=None, * object column_labels=None, compress=False, row_compress=False, object note=None, * dict variable_value_labels=None, dict missing_ranges=None, dict variable_display_width=None, # <<<<<<<<<<<<<< @@ -17372,7 +17415,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds if (!values[11]) values[11] = __Pyx_NewRef(((PyObject*)Py_None)); if (!values[12]) values[12] = __Pyx_NewRef(((PyObject*)Py_None)); - /* "pyreadstat/_readstat_writer.pyx":997 + /* "pyreadstat/_readstat_writer.pyx":999 * object column_labels=None, compress=False, row_compress=False, object note=None, * dict variable_value_labels=None, dict missing_ranges=None, dict variable_display_width=None, * dict variable_measure=None, # <<<<<<<<<<<<<< @@ -17381,7 +17424,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds */ if (!values[13]) values[13] = __Pyx_NewRef(((PyObject*)Py_None)); - /* "pyreadstat/_readstat_writer.pyx":998 + /* "pyreadstat/_readstat_writer.pyx":1000 * dict variable_value_labels=None, dict missing_ranges=None, dict variable_display_width=None, * dict variable_measure=None, * dict missing_user_values=None, # <<<<<<<<<<<<<< @@ -17390,7 +17433,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds */ if (!values[14]) values[14] = __Pyx_NewRef(((PyObject*)Py_None)); - /* "pyreadstat/_readstat_writer.pyx":999 + /* "pyreadstat/_readstat_writer.pyx":1001 * dict variable_measure=None, * dict missing_user_values=None, * dict variable_format=None, # <<<<<<<<<<<<<< @@ -17399,7 +17442,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds */ if (!values[15]) values[15] = __Pyx_NewRef(((PyObject*)Py_None)); - /* "pyreadstat/_readstat_writer.pyx":1000 + /* "pyreadstat/_readstat_writer.pyx":1002 * dict missing_user_values=None, * dict variable_format=None, * dict variable_alignment = None, # <<<<<<<<<<<<<< @@ -17408,80 +17451,80 @@ PyObject *__pyx_args, PyObject *__pyx_kwds */ if (!values[16]) values[16] = __Pyx_NewRef(((PyObject*)Py_None)); for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("writer_entry_point", 0, 2, 17, i); __PYX_ERR(0, 992, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("writer_entry_point", 0, 2, 17, i); __PYX_ERR(0, 994, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 17: values[16] = __Pyx_ArgRef_FASTCALL(__pyx_args, 16); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[16])) __PYX_ERR(0, 992, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[16])) __PYX_ERR(0, 994, __pyx_L3_error) CYTHON_FALLTHROUGH; case 16: values[15] = __Pyx_ArgRef_FASTCALL(__pyx_args, 15); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[15])) __PYX_ERR(0, 992, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[15])) __PYX_ERR(0, 994, __pyx_L3_error) CYTHON_FALLTHROUGH; case 15: values[14] = __Pyx_ArgRef_FASTCALL(__pyx_args, 14); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[14])) __PYX_ERR(0, 992, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[14])) __PYX_ERR(0, 994, __pyx_L3_error) CYTHON_FALLTHROUGH; case 14: values[13] = __Pyx_ArgRef_FASTCALL(__pyx_args, 13); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[13])) __PYX_ERR(0, 992, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[13])) __PYX_ERR(0, 994, __pyx_L3_error) CYTHON_FALLTHROUGH; case 13: values[12] = __Pyx_ArgRef_FASTCALL(__pyx_args, 12); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[12])) __PYX_ERR(0, 992, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[12])) __PYX_ERR(0, 994, __pyx_L3_error) CYTHON_FALLTHROUGH; case 12: values[11] = __Pyx_ArgRef_FASTCALL(__pyx_args, 11); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[11])) __PYX_ERR(0, 992, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[11])) __PYX_ERR(0, 994, __pyx_L3_error) CYTHON_FALLTHROUGH; case 11: values[10] = __Pyx_ArgRef_FASTCALL(__pyx_args, 10); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[10])) __PYX_ERR(0, 992, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[10])) __PYX_ERR(0, 994, __pyx_L3_error) CYTHON_FALLTHROUGH; case 10: values[9] = __Pyx_ArgRef_FASTCALL(__pyx_args, 9); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[9])) __PYX_ERR(0, 992, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[9])) __PYX_ERR(0, 994, __pyx_L3_error) CYTHON_FALLTHROUGH; case 9: values[8] = __Pyx_ArgRef_FASTCALL(__pyx_args, 8); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[8])) __PYX_ERR(0, 992, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[8])) __PYX_ERR(0, 994, __pyx_L3_error) CYTHON_FALLTHROUGH; case 8: values[7] = __Pyx_ArgRef_FASTCALL(__pyx_args, 7); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(0, 992, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(0, 994, __pyx_L3_error) CYTHON_FALLTHROUGH; case 7: values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(0, 992, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(0, 994, __pyx_L3_error) CYTHON_FALLTHROUGH; case 6: values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(0, 992, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(0, 994, __pyx_L3_error) CYTHON_FALLTHROUGH; case 5: values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(0, 992, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(0, 994, __pyx_L3_error) CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(0, 992, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(0, 994, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 992, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 994, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 992, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 994, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 992, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 994, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } - /* "pyreadstat/_readstat_writer.pyx":992 + /* "pyreadstat/_readstat_writer.pyx":994 * return 0 * * def writer_entry_point(df, dst_path, str writer_format=None, str file_label="", # <<<<<<<<<<<<<< @@ -17491,7 +17534,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds if (!values[2]) values[2] = __Pyx_NewRef(((PyObject*)Py_None)); if (!values[3]) values[3] = __Pyx_NewRef(((PyObject*)((PyObject*)__pyx_mstate_global->__pyx_kp_u__4))); - /* "pyreadstat/_readstat_writer.pyx":994 + /* "pyreadstat/_readstat_writer.pyx":996 * def writer_entry_point(df, dst_path, str writer_format=None, str file_label="", * int version=0, * str table_name=None, # <<<<<<<<<<<<<< @@ -17500,7 +17543,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds */ if (!values[5]) values[5] = __Pyx_NewRef(((PyObject*)Py_None)); - /* "pyreadstat/_readstat_writer.pyx":995 + /* "pyreadstat/_readstat_writer.pyx":997 * int version=0, * str table_name=None, * object column_labels=None, compress=False, row_compress=False, object note=None, # <<<<<<<<<<<<<< @@ -17512,7 +17555,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds if (!values[8]) values[8] = __Pyx_NewRef(((PyObject *)((PyObject*)Py_False))); if (!values[9]) values[9] = __Pyx_NewRef(((PyObject *)Py_None)); - /* "pyreadstat/_readstat_writer.pyx":996 + /* "pyreadstat/_readstat_writer.pyx":998 * str table_name=None, * object column_labels=None, compress=False, row_compress=False, object note=None, * dict variable_value_labels=None, dict missing_ranges=None, dict variable_display_width=None, # <<<<<<<<<<<<<< @@ -17523,7 +17566,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds if (!values[11]) values[11] = __Pyx_NewRef(((PyObject*)Py_None)); if (!values[12]) values[12] = __Pyx_NewRef(((PyObject*)Py_None)); - /* "pyreadstat/_readstat_writer.pyx":997 + /* "pyreadstat/_readstat_writer.pyx":999 * object column_labels=None, compress=False, row_compress=False, object note=None, * dict variable_value_labels=None, dict missing_ranges=None, dict variable_display_width=None, * dict variable_measure=None, # <<<<<<<<<<<<<< @@ -17532,7 +17575,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds */ if (!values[13]) values[13] = __Pyx_NewRef(((PyObject*)Py_None)); - /* "pyreadstat/_readstat_writer.pyx":998 + /* "pyreadstat/_readstat_writer.pyx":1000 * dict variable_value_labels=None, dict missing_ranges=None, dict variable_display_width=None, * dict variable_measure=None, * dict missing_user_values=None, # <<<<<<<<<<<<<< @@ -17541,7 +17584,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds */ if (!values[14]) values[14] = __Pyx_NewRef(((PyObject*)Py_None)); - /* "pyreadstat/_readstat_writer.pyx":999 + /* "pyreadstat/_readstat_writer.pyx":1001 * dict variable_measure=None, * dict missing_user_values=None, * dict variable_format=None, # <<<<<<<<<<<<<< @@ -17550,7 +17593,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds */ if (!values[15]) values[15] = __Pyx_NewRef(((PyObject*)Py_None)); - /* "pyreadstat/_readstat_writer.pyx":1000 + /* "pyreadstat/_readstat_writer.pyx":1002 * dict missing_user_values=None, * dict variable_format=None, * dict variable_alignment = None, # <<<<<<<<<<<<<< @@ -17564,7 +17607,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __pyx_v_writer_format = ((PyObject*)values[2]); __pyx_v_file_label = ((PyObject*)values[3]); if (values[4]) { - __pyx_v_version = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_version == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 993, __pyx_L3_error) + __pyx_v_version = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_version == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 995, __pyx_L3_error) } else { __pyx_v_version = ((int)((int)0)); } @@ -17583,7 +17626,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("writer_entry_point", 0, 2, 17, __pyx_nargs); __PYX_ERR(0, 992, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("writer_entry_point", 0, 2, 17, __pyx_nargs); __PYX_ERR(0, 994, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -17594,19 +17637,19 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_writer_format), (&PyUnicode_Type), 1, "writer_format", 1))) __PYX_ERR(0, 992, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_file_label), (&PyUnicode_Type), 1, "file_label", 1))) __PYX_ERR(0, 992, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_table_name), (&PyUnicode_Type), 1, "table_name", 1))) __PYX_ERR(0, 994, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_variable_value_labels), (&PyDict_Type), 1, "variable_value_labels", 1))) __PYX_ERR(0, 996, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_missing_ranges), (&PyDict_Type), 1, "missing_ranges", 1))) __PYX_ERR(0, 996, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_variable_display_width), (&PyDict_Type), 1, "variable_display_width", 1))) __PYX_ERR(0, 996, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_variable_measure), (&PyDict_Type), 1, "variable_measure", 1))) __PYX_ERR(0, 997, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_missing_user_values), (&PyDict_Type), 1, "missing_user_values", 1))) __PYX_ERR(0, 998, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_variable_format), (&PyDict_Type), 1, "variable_format", 1))) __PYX_ERR(0, 999, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_variable_alignment), (&PyDict_Type), 1, "variable_alignment", 1))) __PYX_ERR(0, 1000, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_writer_format), (&PyUnicode_Type), 1, "writer_format", 1))) __PYX_ERR(0, 994, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_file_label), (&PyUnicode_Type), 1, "file_label", 1))) __PYX_ERR(0, 994, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_table_name), (&PyUnicode_Type), 1, "table_name", 1))) __PYX_ERR(0, 996, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_variable_value_labels), (&PyDict_Type), 1, "variable_value_labels", 1))) __PYX_ERR(0, 998, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_missing_ranges), (&PyDict_Type), 1, "missing_ranges", 1))) __PYX_ERR(0, 998, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_variable_display_width), (&PyDict_Type), 1, "variable_display_width", 1))) __PYX_ERR(0, 998, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_variable_measure), (&PyDict_Type), 1, "variable_measure", 1))) __PYX_ERR(0, 999, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_missing_user_values), (&PyDict_Type), 1, "missing_user_values", 1))) __PYX_ERR(0, 1000, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_variable_format), (&PyDict_Type), 1, "variable_format", 1))) __PYX_ERR(0, 1001, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_variable_alignment), (&PyDict_Type), 1, "variable_alignment", 1))) __PYX_ERR(0, 1002, __pyx_L1_error) __pyx_r = __pyx_pf_10pyreadstat_16_readstat_writer_writer_entry_point(__pyx_self, __pyx_v_df, __pyx_v_dst_path, __pyx_v_writer_format, __pyx_v_file_label, __pyx_v_version, __pyx_v_table_name, __pyx_v_column_labels, __pyx_v_compress, __pyx_v_row_compress, __pyx_v_note, __pyx_v_variable_value_labels, __pyx_v_missing_ranges, __pyx_v_variable_display_width, __pyx_v_variable_measure, __pyx_v_missing_user_values, __pyx_v_variable_format, __pyx_v_variable_alignment); - /* "pyreadstat/_readstat_writer.pyx":992 + /* "pyreadstat/_readstat_writer.pyx":994 * return 0 * * def writer_entry_point(df, dst_path, str writer_format=None, str file_label="", # <<<<<<<<<<<<<< @@ -17650,7 +17693,7 @@ static PyObject *__pyx_pf_10pyreadstat_16_readstat_writer_writer_entry_point(CYT __Pyx_RefNannySetupContext("writer_entry_point", 0); __Pyx_INCREF(__pyx_v_note); - /* "pyreadstat/_readstat_writer.pyx":1004 + /* "pyreadstat/_readstat_writer.pyx":1006 * * * cdef int file_format_version = 0 # <<<<<<<<<<<<<< @@ -17659,7 +17702,7 @@ static PyObject *__pyx_pf_10pyreadstat_16_readstat_writer_writer_entry_point(CYT */ __pyx_v_file_format_version = 0; - /* "pyreadstat/_readstat_writer.pyx":1005 + /* "pyreadstat/_readstat_writer.pyx":1007 * * cdef int file_format_version = 0 * cdef bint row_compression = 0 # <<<<<<<<<<<<<< @@ -17668,17 +17711,17 @@ static PyObject *__pyx_pf_10pyreadstat_16_readstat_writer_writer_entry_point(CYT */ __pyx_v_row_compression = 0; - /* "pyreadstat/_readstat_writer.pyx":1009 + /* "pyreadstat/_readstat_writer.pyx":1011 * cdef dst_file_format writer_file_format * * if writer_format == "sav": # <<<<<<<<<<<<<< * writer_file_format = FILE_FORMAT_SAV * file_format_version = 2 */ - __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_writer_format, __pyx_mstate_global->__pyx_n_u_sav, Py_EQ)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 1009, __pyx_L1_error) + __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_writer_format, __pyx_mstate_global->__pyx_n_u_sav, Py_EQ)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 1011, __pyx_L1_error) if (__pyx_t_1) { - /* "pyreadstat/_readstat_writer.pyx":1010 + /* "pyreadstat/_readstat_writer.pyx":1012 * * if writer_format == "sav": * writer_file_format = FILE_FORMAT_SAV # <<<<<<<<<<<<<< @@ -17687,7 +17730,7 @@ static PyObject *__pyx_pf_10pyreadstat_16_readstat_writer_writer_entry_point(CYT */ __pyx_v_writer_file_format = __pyx_e_10pyreadstat_16_readstat_writer_FILE_FORMAT_SAV; - /* "pyreadstat/_readstat_writer.pyx":1011 + /* "pyreadstat/_readstat_writer.pyx":1013 * if writer_format == "sav": * writer_file_format = FILE_FORMAT_SAV * file_format_version = 2 # <<<<<<<<<<<<<< @@ -17696,25 +17739,25 @@ static PyObject *__pyx_pf_10pyreadstat_16_readstat_writer_writer_entry_point(CYT */ __pyx_v_file_format_version = 2; - /* "pyreadstat/_readstat_writer.pyx":1012 + /* "pyreadstat/_readstat_writer.pyx":1014 * writer_file_format = FILE_FORMAT_SAV * file_format_version = 2 * if compress and row_compress: # <<<<<<<<<<<<<< * raise PyreadstatError("compress and row_compress cannot be both True") * if compress: */ - __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_compress); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 1012, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_compress); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 1014, __pyx_L1_error) if (__pyx_t_2) { } else { __pyx_t_1 = __pyx_t_2; goto __pyx_L5_bool_binop_done; } - __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_row_compress); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 1012, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_row_compress); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 1014, __pyx_L1_error) __pyx_t_1 = __pyx_t_2; __pyx_L5_bool_binop_done:; if (unlikely(__pyx_t_1)) { - /* "pyreadstat/_readstat_writer.pyx":1013 + /* "pyreadstat/_readstat_writer.pyx":1015 * file_format_version = 2 * if compress and row_compress: * raise PyreadstatError("compress and row_compress cannot be both True") # <<<<<<<<<<<<<< @@ -17722,7 +17765,7 @@ static PyObject *__pyx_pf_10pyreadstat_16_readstat_writer_writer_entry_point(CYT * file_format_version = 3 */ __pyx_t_4 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1013, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1015, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_6 = 1; #if CYTHON_UNPACK_METHODS @@ -17741,14 +17784,14 @@ static PyObject *__pyx_pf_10pyreadstat_16_readstat_writer_writer_entry_point(CYT __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_5, __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1013, __pyx_L1_error) + if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1015, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); } __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __PYX_ERR(0, 1013, __pyx_L1_error) + __PYX_ERR(0, 1015, __pyx_L1_error) - /* "pyreadstat/_readstat_writer.pyx":1012 + /* "pyreadstat/_readstat_writer.pyx":1014 * writer_file_format = FILE_FORMAT_SAV * file_format_version = 2 * if compress and row_compress: # <<<<<<<<<<<<<< @@ -17757,17 +17800,17 @@ static PyObject *__pyx_pf_10pyreadstat_16_readstat_writer_writer_entry_point(CYT */ } - /* "pyreadstat/_readstat_writer.pyx":1014 + /* "pyreadstat/_readstat_writer.pyx":1016 * if compress and row_compress: * raise PyreadstatError("compress and row_compress cannot be both True") * if compress: # <<<<<<<<<<<<<< * file_format_version = 3 * if row_compress: */ - __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_compress); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 1014, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_compress); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 1016, __pyx_L1_error) if (__pyx_t_1) { - /* "pyreadstat/_readstat_writer.pyx":1015 + /* "pyreadstat/_readstat_writer.pyx":1017 * raise PyreadstatError("compress and row_compress cannot be both True") * if compress: * file_format_version = 3 # <<<<<<<<<<<<<< @@ -17776,7 +17819,7 @@ static PyObject *__pyx_pf_10pyreadstat_16_readstat_writer_writer_entry_point(CYT */ __pyx_v_file_format_version = 3; - /* "pyreadstat/_readstat_writer.pyx":1014 + /* "pyreadstat/_readstat_writer.pyx":1016 * if compress and row_compress: * raise PyreadstatError("compress and row_compress cannot be both True") * if compress: # <<<<<<<<<<<<<< @@ -17785,17 +17828,17 @@ static PyObject *__pyx_pf_10pyreadstat_16_readstat_writer_writer_entry_point(CYT */ } - /* "pyreadstat/_readstat_writer.pyx":1016 + /* "pyreadstat/_readstat_writer.pyx":1018 * if compress: * file_format_version = 3 * if row_compress: # <<<<<<<<<<<<<< * row_compression = 1 * elif writer_format == "dta": */ - __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_row_compress); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 1016, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_row_compress); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 1018, __pyx_L1_error) if (__pyx_t_1) { - /* "pyreadstat/_readstat_writer.pyx":1017 + /* "pyreadstat/_readstat_writer.pyx":1019 * file_format_version = 3 * if row_compress: * row_compression = 1 # <<<<<<<<<<<<<< @@ -17804,7 +17847,7 @@ static PyObject *__pyx_pf_10pyreadstat_16_readstat_writer_writer_entry_point(CYT */ __pyx_v_row_compression = 1; - /* "pyreadstat/_readstat_writer.pyx":1016 + /* "pyreadstat/_readstat_writer.pyx":1018 * if compress: * file_format_version = 3 * if row_compress: # <<<<<<<<<<<<<< @@ -17813,7 +17856,7 @@ static PyObject *__pyx_pf_10pyreadstat_16_readstat_writer_writer_entry_point(CYT */ } - /* "pyreadstat/_readstat_writer.pyx":1009 + /* "pyreadstat/_readstat_writer.pyx":1011 * cdef dst_file_format writer_file_format * * if writer_format == "sav": # <<<<<<<<<<<<<< @@ -17823,17 +17866,17 @@ static PyObject *__pyx_pf_10pyreadstat_16_readstat_writer_writer_entry_point(CYT goto __pyx_L3; } - /* "pyreadstat/_readstat_writer.pyx":1018 + /* "pyreadstat/_readstat_writer.pyx":1020 * if row_compress: * row_compression = 1 * elif writer_format == "dta": # <<<<<<<<<<<<<< * writer_file_format = FILE_FORMAT_DTA * if version == 15: */ - __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_writer_format, __pyx_mstate_global->__pyx_n_u_dta, Py_EQ)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 1018, __pyx_L1_error) + __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_writer_format, __pyx_mstate_global->__pyx_n_u_dta, Py_EQ)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 1020, __pyx_L1_error) if (__pyx_t_1) { - /* "pyreadstat/_readstat_writer.pyx":1019 + /* "pyreadstat/_readstat_writer.pyx":1021 * row_compression = 1 * elif writer_format == "dta": * writer_file_format = FILE_FORMAT_DTA # <<<<<<<<<<<<<< @@ -17842,7 +17885,7 @@ static PyObject *__pyx_pf_10pyreadstat_16_readstat_writer_writer_entry_point(CYT */ __pyx_v_writer_file_format = __pyx_e_10pyreadstat_16_readstat_writer_FILE_FORMAT_DTA; - /* "pyreadstat/_readstat_writer.pyx":1020 + /* "pyreadstat/_readstat_writer.pyx":1022 * elif writer_format == "dta": * writer_file_format = FILE_FORMAT_DTA * if version == 15: # <<<<<<<<<<<<<< @@ -17852,7 +17895,7 @@ static PyObject *__pyx_pf_10pyreadstat_16_readstat_writer_writer_entry_point(CYT switch (__pyx_v_version) { case 15: - /* "pyreadstat/_readstat_writer.pyx":1021 + /* "pyreadstat/_readstat_writer.pyx":1023 * writer_file_format = FILE_FORMAT_DTA * if version == 15: * file_format_version = 119 # <<<<<<<<<<<<<< @@ -17861,7 +17904,7 @@ static PyObject *__pyx_pf_10pyreadstat_16_readstat_writer_writer_entry_point(CYT */ __pyx_v_file_format_version = 0x77; - /* "pyreadstat/_readstat_writer.pyx":1020 + /* "pyreadstat/_readstat_writer.pyx":1022 * elif writer_format == "dta": * writer_file_format = FILE_FORMAT_DTA * if version == 15: # <<<<<<<<<<<<<< @@ -17871,7 +17914,7 @@ static PyObject *__pyx_pf_10pyreadstat_16_readstat_writer_writer_entry_point(CYT break; case 14: - /* "pyreadstat/_readstat_writer.pyx":1023 + /* "pyreadstat/_readstat_writer.pyx":1025 * file_format_version = 119 * elif version == 14: * file_format_version = 118 # <<<<<<<<<<<<<< @@ -17880,7 +17923,7 @@ static PyObject *__pyx_pf_10pyreadstat_16_readstat_writer_writer_entry_point(CYT */ __pyx_v_file_format_version = 0x76; - /* "pyreadstat/_readstat_writer.pyx":1022 + /* "pyreadstat/_readstat_writer.pyx":1024 * if version == 15: * file_format_version = 119 * elif version == 14: # <<<<<<<<<<<<<< @@ -17890,7 +17933,7 @@ static PyObject *__pyx_pf_10pyreadstat_16_readstat_writer_writer_entry_point(CYT break; case 13: - /* "pyreadstat/_readstat_writer.pyx":1025 + /* "pyreadstat/_readstat_writer.pyx":1027 * file_format_version = 118 * elif version == 13: * file_format_version = 117 # <<<<<<<<<<<<<< @@ -17899,7 +17942,7 @@ static PyObject *__pyx_pf_10pyreadstat_16_readstat_writer_writer_entry_point(CYT */ __pyx_v_file_format_version = 0x75; - /* "pyreadstat/_readstat_writer.pyx":1024 + /* "pyreadstat/_readstat_writer.pyx":1026 * elif version == 14: * file_format_version = 118 * elif version == 13: # <<<<<<<<<<<<<< @@ -17909,7 +17952,7 @@ static PyObject *__pyx_pf_10pyreadstat_16_readstat_writer_writer_entry_point(CYT break; case 12: - /* "pyreadstat/_readstat_writer.pyx":1027 + /* "pyreadstat/_readstat_writer.pyx":1029 * file_format_version = 117 * elif version == 12: * file_format_version = 115 # <<<<<<<<<<<<<< @@ -17918,7 +17961,7 @@ static PyObject *__pyx_pf_10pyreadstat_16_readstat_writer_writer_entry_point(CYT */ __pyx_v_file_format_version = 0x73; - /* "pyreadstat/_readstat_writer.pyx":1026 + /* "pyreadstat/_readstat_writer.pyx":1028 * elif version == 13: * file_format_version = 117 * elif version == 12: # <<<<<<<<<<<<<< @@ -17928,7 +17971,7 @@ static PyObject *__pyx_pf_10pyreadstat_16_readstat_writer_writer_entry_point(CYT break; case 10: - /* "pyreadstat/_readstat_writer.pyx":1028 + /* "pyreadstat/_readstat_writer.pyx":1030 * elif version == 12: * file_format_version = 115 * elif version in {10, 11}: # <<<<<<<<<<<<<< @@ -17937,7 +17980,7 @@ static PyObject *__pyx_pf_10pyreadstat_16_readstat_writer_writer_entry_point(CYT */ case 11: - /* "pyreadstat/_readstat_writer.pyx":1029 + /* "pyreadstat/_readstat_writer.pyx":1031 * file_format_version = 115 * elif version in {10, 11}: * file_format_version = 114 # <<<<<<<<<<<<<< @@ -17946,7 +17989,7 @@ static PyObject *__pyx_pf_10pyreadstat_16_readstat_writer_writer_entry_point(CYT */ __pyx_v_file_format_version = 0x72; - /* "pyreadstat/_readstat_writer.pyx":1028 + /* "pyreadstat/_readstat_writer.pyx":1030 * elif version == 12: * file_format_version = 115 * elif version in {10, 11}: # <<<<<<<<<<<<<< @@ -17956,7 +17999,7 @@ static PyObject *__pyx_pf_10pyreadstat_16_readstat_writer_writer_entry_point(CYT break; case 8: - /* "pyreadstat/_readstat_writer.pyx":1030 + /* "pyreadstat/_readstat_writer.pyx":1032 * elif version in {10, 11}: * file_format_version = 114 * elif version in {8, 9}: # <<<<<<<<<<<<<< @@ -17965,7 +18008,7 @@ static PyObject *__pyx_pf_10pyreadstat_16_readstat_writer_writer_entry_point(CYT */ case 9: - /* "pyreadstat/_readstat_writer.pyx":1031 + /* "pyreadstat/_readstat_writer.pyx":1033 * file_format_version = 114 * elif version in {8, 9}: * file_format_version = 113 # <<<<<<<<<<<<<< @@ -17974,7 +18017,7 @@ static PyObject *__pyx_pf_10pyreadstat_16_readstat_writer_writer_entry_point(CYT */ __pyx_v_file_format_version = 0x71; - /* "pyreadstat/_readstat_writer.pyx":1030 + /* "pyreadstat/_readstat_writer.pyx":1032 * elif version in {10, 11}: * file_format_version = 114 * elif version in {8, 9}: # <<<<<<<<<<<<<< @@ -17984,7 +18027,7 @@ static PyObject *__pyx_pf_10pyreadstat_16_readstat_writer_writer_entry_point(CYT break; default: - /* "pyreadstat/_readstat_writer.pyx":1033 + /* "pyreadstat/_readstat_writer.pyx":1035 * file_format_version = 113 * else: * raise PyreadstatError("Version not supported") # <<<<<<<<<<<<<< @@ -17992,7 +18035,7 @@ static PyObject *__pyx_pf_10pyreadstat_16_readstat_writer_writer_entry_point(CYT * elif writer_format == "xport": */ __pyx_t_5 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1033, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1035, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_6 = 1; #if CYTHON_UNPACK_METHODS @@ -18011,16 +18054,16 @@ static PyObject *__pyx_pf_10pyreadstat_16_readstat_writer_writer_entry_point(CYT __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1033, __pyx_L1_error) + if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1035, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); } __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __PYX_ERR(0, 1033, __pyx_L1_error) + __PYX_ERR(0, 1035, __pyx_L1_error) break; } - /* "pyreadstat/_readstat_writer.pyx":1034 + /* "pyreadstat/_readstat_writer.pyx":1036 * else: * raise PyreadstatError("Version not supported") * note = "" # <<<<<<<<<<<<<< @@ -18030,7 +18073,7 @@ static PyObject *__pyx_pf_10pyreadstat_16_readstat_writer_writer_entry_point(CYT __Pyx_INCREF(__pyx_mstate_global->__pyx_kp_u__4); __Pyx_DECREF_SET(__pyx_v_note, __pyx_mstate_global->__pyx_kp_u__4); - /* "pyreadstat/_readstat_writer.pyx":1018 + /* "pyreadstat/_readstat_writer.pyx":1020 * if row_compress: * row_compression = 1 * elif writer_format == "dta": # <<<<<<<<<<<<<< @@ -18040,17 +18083,17 @@ static PyObject *__pyx_pf_10pyreadstat_16_readstat_writer_writer_entry_point(CYT goto __pyx_L3; } - /* "pyreadstat/_readstat_writer.pyx":1035 + /* "pyreadstat/_readstat_writer.pyx":1037 * raise PyreadstatError("Version not supported") * note = "" * elif writer_format == "xport": # <<<<<<<<<<<<<< * writer_file_format = FILE_FORMAT_XPORT * file_format_version = version */ - __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_writer_format, __pyx_mstate_global->__pyx_n_u_xport, Py_EQ)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 1035, __pyx_L1_error) + __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_writer_format, __pyx_mstate_global->__pyx_n_u_xport, Py_EQ)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 1037, __pyx_L1_error) if (__pyx_t_1) { - /* "pyreadstat/_readstat_writer.pyx":1036 + /* "pyreadstat/_readstat_writer.pyx":1038 * note = "" * elif writer_format == "xport": * writer_file_format = FILE_FORMAT_XPORT # <<<<<<<<<<<<<< @@ -18059,7 +18102,7 @@ static PyObject *__pyx_pf_10pyreadstat_16_readstat_writer_writer_entry_point(CYT */ __pyx_v_writer_file_format = __pyx_e_10pyreadstat_16_readstat_writer_FILE_FORMAT_XPORT; - /* "pyreadstat/_readstat_writer.pyx":1037 + /* "pyreadstat/_readstat_writer.pyx":1039 * elif writer_format == "xport": * writer_file_format = FILE_FORMAT_XPORT * file_format_version = version # <<<<<<<<<<<<<< @@ -18068,7 +18111,7 @@ static PyObject *__pyx_pf_10pyreadstat_16_readstat_writer_writer_entry_point(CYT */ __pyx_v_file_format_version = __pyx_v_version; - /* "pyreadstat/_readstat_writer.pyx":1035 + /* "pyreadstat/_readstat_writer.pyx":1037 * raise PyreadstatError("Version not supported") * note = "" * elif writer_format == "xport": # <<<<<<<<<<<<<< @@ -18078,17 +18121,17 @@ static PyObject *__pyx_pf_10pyreadstat_16_readstat_writer_writer_entry_point(CYT goto __pyx_L3; } - /* "pyreadstat/_readstat_writer.pyx":1038 + /* "pyreadstat/_readstat_writer.pyx":1040 * writer_file_format = FILE_FORMAT_XPORT * file_format_version = version * elif writer_format == "por": # <<<<<<<<<<<<<< * writer_file_format = FILE_FORMAT_POR * else: */ - __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_writer_format, __pyx_mstate_global->__pyx_n_u_por, Py_EQ)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 1038, __pyx_L1_error) + __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_writer_format, __pyx_mstate_global->__pyx_n_u_por, Py_EQ)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 1040, __pyx_L1_error) if (likely(__pyx_t_1)) { - /* "pyreadstat/_readstat_writer.pyx":1039 + /* "pyreadstat/_readstat_writer.pyx":1041 * file_format_version = version * elif writer_format == "por": * writer_file_format = FILE_FORMAT_POR # <<<<<<<<<<<<<< @@ -18097,7 +18140,7 @@ static PyObject *__pyx_pf_10pyreadstat_16_readstat_writer_writer_entry_point(CYT */ __pyx_v_writer_file_format = __pyx_e_10pyreadstat_16_readstat_writer_FILE_FORMAT_POR; - /* "pyreadstat/_readstat_writer.pyx":1038 + /* "pyreadstat/_readstat_writer.pyx":1040 * writer_file_format = FILE_FORMAT_XPORT * file_format_version = version * elif writer_format == "por": # <<<<<<<<<<<<<< @@ -18107,7 +18150,7 @@ static PyObject *__pyx_pf_10pyreadstat_16_readstat_writer_writer_entry_point(CYT goto __pyx_L3; } - /* "pyreadstat/_readstat_writer.pyx":1041 + /* "pyreadstat/_readstat_writer.pyx":1043 * writer_file_format = FILE_FORMAT_POR * else: * raise PyreadstatError("wrong writer format") # <<<<<<<<<<<<<< @@ -18116,7 +18159,7 @@ static PyObject *__pyx_pf_10pyreadstat_16_readstat_writer_writer_entry_point(CYT */ /*else*/ { __pyx_t_4 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1041, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1043, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_6 = 1; #if CYTHON_UNPACK_METHODS @@ -18135,25 +18178,25 @@ static PyObject *__pyx_pf_10pyreadstat_16_readstat_writer_writer_entry_point(CYT __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_5, __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1041, __pyx_L1_error) + if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1043, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); } __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __PYX_ERR(0, 1041, __pyx_L1_error) + __PYX_ERR(0, 1043, __pyx_L1_error) } __pyx_L3:; - /* "pyreadstat/_readstat_writer.pyx":1043 + /* "pyreadstat/_readstat_writer.pyx":1045 * raise PyreadstatError("wrong writer format") * * run_write(df, dst_path, writer_file_format, file_label, column_labels, # <<<<<<<<<<<<<< * file_format_version, note, table_name, variable_value_labels, missing_ranges, missing_user_values, * variable_alignment, variable_display_width, variable_measure, variable_format, row_compression) */ - __pyx_t_7 = __pyx_f_10pyreadstat_16_readstat_writer_run_write(__pyx_v_df, __pyx_v_dst_path, __pyx_v_writer_file_format, __pyx_v_file_label, __pyx_v_column_labels, __pyx_v_file_format_version, __pyx_v_note, __pyx_v_table_name, __pyx_v_variable_value_labels, __pyx_v_missing_ranges, __pyx_v_missing_user_values, __pyx_v_variable_alignment, __pyx_v_variable_display_width, __pyx_v_variable_measure, __pyx_v_variable_format, __pyx_v_row_compression); if (unlikely(__pyx_t_7 == ((int)-1) && PyErr_Occurred())) __PYX_ERR(0, 1043, __pyx_L1_error) + __pyx_t_7 = __pyx_f_10pyreadstat_16_readstat_writer_run_write(__pyx_v_df, __pyx_v_dst_path, __pyx_v_writer_file_format, __pyx_v_file_label, __pyx_v_column_labels, __pyx_v_file_format_version, __pyx_v_note, __pyx_v_table_name, __pyx_v_variable_value_labels, __pyx_v_missing_ranges, __pyx_v_missing_user_values, __pyx_v_variable_alignment, __pyx_v_variable_display_width, __pyx_v_variable_measure, __pyx_v_variable_format, __pyx_v_row_compression); if (unlikely(__pyx_t_7 == ((int)-1) && PyErr_Occurred())) __PYX_ERR(0, 1045, __pyx_L1_error) - /* "pyreadstat/_readstat_writer.pyx":992 + /* "pyreadstat/_readstat_writer.pyx":994 * return 0 * * def writer_entry_point(df, dst_path, str writer_format=None, str file_label="", # <<<<<<<<<<<<<< @@ -19399,34 +19442,34 @@ __Pyx_RefNannySetupContext("PyInit__readstat_writer", 0); */ __pyx_v_10pyreadstat_16_readstat_writer_dta_117_max_width = 0x7FD; - /* "pyreadstat/_readstat_writer.pyx":993 + /* "pyreadstat/_readstat_writer.pyx":995 * * def writer_entry_point(df, dst_path, str writer_format=None, str file_label="", * int version=0, # <<<<<<<<<<<<<< * str table_name=None, * object column_labels=None, compress=False, row_compress=False, object note=None, */ - __pyx_t_8 = __Pyx_PyLong_From_int(((int)0)); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 993, __pyx_L1_error) + __pyx_t_8 = __Pyx_PyLong_From_int(((int)0)); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 995, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); - /* "pyreadstat/_readstat_writer.pyx":992 + /* "pyreadstat/_readstat_writer.pyx":994 * return 0 * * def writer_entry_point(df, dst_path, str writer_format=None, str file_label="", # <<<<<<<<<<<<<< * int version=0, * str table_name=None, */ - __pyx_t_9 = PyTuple_Pack(15, Py_None, ((PyObject*)__pyx_mstate_global->__pyx_kp_u__4), __pyx_t_8, Py_None, Py_None, ((PyObject*)Py_False), ((PyObject*)Py_False), Py_None, Py_None, Py_None, Py_None, Py_None, Py_None, Py_None, Py_None); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 992, __pyx_L1_error) + __pyx_t_9 = PyTuple_Pack(15, Py_None, ((PyObject*)__pyx_mstate_global->__pyx_kp_u__4), __pyx_t_8, Py_None, Py_None, ((PyObject*)Py_False), ((PyObject*)Py_False), Py_None, Py_None, Py_None, Py_None, Py_None, Py_None, Py_None, Py_None); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 994, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - __pyx_t_8 = __Pyx_CyFunction_New(&__pyx_mdef_10pyreadstat_16_readstat_writer_1writer_entry_point, 0, __pyx_mstate_global->__pyx_n_u_writer_entry_point, NULL, __pyx_mstate_global->__pyx_n_u_pyreadstat__readstat_writer, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[0])); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 992, __pyx_L1_error) + __pyx_t_8 = __Pyx_CyFunction_New(&__pyx_mdef_10pyreadstat_16_readstat_writer_1writer_entry_point, 0, __pyx_mstate_global->__pyx_n_u_writer_entry_point, NULL, __pyx_mstate_global->__pyx_n_u_pyreadstat__readstat_writer, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[0])); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 994, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_8); #endif __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_8, __pyx_t_9); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_writer_entry_point, __pyx_t_8) < (0)) __PYX_ERR(0, 992, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_writer_entry_point, __pyx_t_8) < (0)) __PYX_ERR(0, 994, __pyx_L1_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; /* "pyreadstat/_readstat_writer.pyx":1 @@ -19484,7 +19527,7 @@ __Pyx_RefNannySetupContext("PyInit__readstat_writer", 0); static int __Pyx_InitCachedBuiltins(__pyx_mstatetype *__pyx_mstate) { CYTHON_UNUSED_VAR(__pyx_mstate); - __pyx_builtin_zip = __Pyx_GetBuiltinName(__pyx_mstate->__pyx_n_u_zip); if (!__pyx_builtin_zip) __PYX_ERR(0, 732, __pyx_L1_error) + __pyx_builtin_zip = __Pyx_GetBuiltinName(__pyx_mstate->__pyx_n_u_zip); if (!__pyx_builtin_zip) __PYX_ERR(0, 734, __pyx_L1_error) /* Cached unbound methods */ __pyx_mstate->__pyx_umethod_PyDict_Type_get.type = (PyObject*)&PyDict_Type; @@ -19508,14 +19551,14 @@ static int __Pyx_InitCachedConstants(__pyx_mstatetype *__pyx_mstate) { CYTHON_UNUSED_VAR(__pyx_mstate); __Pyx_RefNannySetupContext("__Pyx_InitCachedConstants", 0); - /* "pyreadstat/_readstat_writer.pyx":666 + /* "pyreadstat/_readstat_writer.pyx":668 * except UnicodeError: * warnings.warn("file path could not be encoded with %s which is set as your system encoding, trying to encode it as utf-8. Please set your system encoding correctly." % sys.getfilesystemencoding()) * filename_bytes = os.fsdecode(filename_path).encode("utf-8", "surrogateescape") # <<<<<<<<<<<<<< * else: * if type(filename_path) == str: */ - __pyx_mstate_global->__pyx_tuple[0] = PyTuple_Pack(2, __pyx_mstate_global->__pyx_kp_u_utf_8, __pyx_mstate_global->__pyx_n_u_surrogateescape); if (unlikely(!__pyx_mstate_global->__pyx_tuple[0])) __PYX_ERR(0, 666, __pyx_L1_error) + __pyx_mstate_global->__pyx_tuple[0] = PyTuple_Pack(2, __pyx_mstate_global->__pyx_kp_u_utf_8, __pyx_mstate_global->__pyx_n_u_surrogateescape); if (unlikely(!__pyx_mstate_global->__pyx_tuple[0])) __PYX_ERR(0, 668, __pyx_L1_error) __Pyx_GOTREF(__pyx_mstate_global->__pyx_tuple[0]); __Pyx_GIVEREF(__pyx_mstate_global->__pyx_tuple[0]); @@ -19640,15 +19683,15 @@ const char* const bytes = "Column labels must be stringsCould not open file 'Non } { PyObject **numbertab = __pyx_mstate->__pyx_number_tab + 3; - int8_t const cint_constants_1[] = {0,1,65,97}; + int8_t const cint_constants_1[] = {0,1,9,65,97}; int16_t const cint_constants_2[] = {1970}; - for (int i = 0; i < 5; i++) { - numbertab[i] = PyLong_FromLong((i < 4 ? cint_constants_1[i - 0] : cint_constants_2[i - 4])); + for (int i = 0; i < 6; i++) { + numbertab[i] = PyLong_FromLong((i < 5 ? cint_constants_1[i - 0] : cint_constants_2[i - 5])); if (unlikely(!numbertab[i])) __PYX_ERR(0, 1, __pyx_L1_error) } } { - PyObject **numbertab = __pyx_mstate->__pyx_number_tab + 8; + PyObject **numbertab = __pyx_mstate->__pyx_number_tab + 9; const char* c_constant = "-8000000000000"; for (int i = 0; i < 1; i++) { char *end_pos; @@ -19660,7 +19703,7 @@ const char* const bytes = "Column labels must be stringsCould not open file 'Non #if CYTHON_IMMORTAL_CONSTANTS { PyObject **table = __pyx_mstate->__pyx_number_tab; - for (Py_ssize_t i=0; i<9; ++i) { + for (Py_ssize_t i=0; i<10; ++i) { #if CYTHON_COMPILING_IN_CPYTHON_FREETHREADING #if PY_VERSION_HEX < 0x030E0000 if (_Py_IsOwnedByCurrentThread(table[i]) && Py_REFCNT(table[i]) == 1) @@ -19704,7 +19747,7 @@ static int __Pyx_CreateCodeObjects(__pyx_mstatetype *__pyx_mstate) { PyObject* tuple_dedup_map = PyDict_New(); if (unlikely(!tuple_dedup_map)) return -1; { - const __Pyx_PyCode_New_function_description descr = {17, 0, 0, 20, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 992}; + const __Pyx_PyCode_New_function_description descr = {17, 0, 0, 20, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 994}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_df, __pyx_mstate->__pyx_n_u_dst_path, __pyx_mstate->__pyx_n_u_writer_format, __pyx_mstate->__pyx_n_u_file_label, __pyx_mstate->__pyx_n_u_version, __pyx_mstate->__pyx_n_u_table_name, __pyx_mstate->__pyx_n_u_column_labels, __pyx_mstate->__pyx_n_u_compress, __pyx_mstate->__pyx_n_u_row_compress, __pyx_mstate->__pyx_n_u_note, __pyx_mstate->__pyx_n_u_variable_value_labels, __pyx_mstate->__pyx_n_u_missing_ranges, __pyx_mstate->__pyx_n_u_variable_display_width, __pyx_mstate->__pyx_n_u_variable_measure, __pyx_mstate->__pyx_n_u_missing_user_values, __pyx_mstate->__pyx_n_u_variable_format, __pyx_mstate->__pyx_n_u_variable_alignment, __pyx_mstate->__pyx_n_u_file_format_version, __pyx_mstate->__pyx_n_u_row_compression, __pyx_mstate->__pyx_n_u_writer_file_format}; __pyx_mstate_global->__pyx_codeobj_tab[0] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_pyreadstat__readstat_writer_pyx, __pyx_mstate->__pyx_n_u_writer_entry_point, __pyx_mstate->__pyx_kp_b_iso88591_Q_22BBVVW_11K1_1_S_Q_a_9D_1_1_a, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[0])) goto bad; } @@ -25395,6 +25438,325 @@ static CYTHON_INLINE PyObject* __Pyx_PyLong_From_int(int value) { } } +/* CIntFromPy */ +static CYTHON_INLINE PY_LONG_LONG __Pyx_PyLong_As_PY_LONG_LONG(PyObject *x) { +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wconversion" +#endif + const PY_LONG_LONG neg_one = (PY_LONG_LONG) -1, const_zero = (PY_LONG_LONG) 0; +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic pop +#endif + const int is_unsigned = neg_one > const_zero; + if (unlikely(!PyLong_Check(x))) { + PY_LONG_LONG val; + PyObject *tmp = __Pyx_PyNumber_Long(x); + if (!tmp) return (PY_LONG_LONG) -1; + val = __Pyx_PyLong_As_PY_LONG_LONG(tmp); + Py_DECREF(tmp); + return val; + } + if (is_unsigned) { +#if CYTHON_USE_PYLONG_INTERNALS + if (unlikely(__Pyx_PyLong_IsNeg(x))) { + goto raise_neg_overflow; + } else if (__Pyx_PyLong_IsCompact(x)) { + __PYX_VERIFY_RETURN_INT(PY_LONG_LONG, __Pyx_compact_upylong, __Pyx_PyLong_CompactValueUnsigned(x)) + } else { + const digit* digits = __Pyx_PyLong_Digits(x); + assert(__Pyx_PyLong_DigitCount(x) > 1); + switch (__Pyx_PyLong_DigitCount(x)) { + case 2: + if ((8 * sizeof(PY_LONG_LONG) > 1 * PyLong_SHIFT)) { + if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) { + __PYX_VERIFY_RETURN_INT(PY_LONG_LONG, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if ((8 * sizeof(PY_LONG_LONG) >= 2 * PyLong_SHIFT)) { + return (PY_LONG_LONG) (((((PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (PY_LONG_LONG)digits[0])); + } + } + break; + case 3: + if ((8 * sizeof(PY_LONG_LONG) > 2 * PyLong_SHIFT)) { + if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) { + __PYX_VERIFY_RETURN_INT(PY_LONG_LONG, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if ((8 * sizeof(PY_LONG_LONG) >= 3 * PyLong_SHIFT)) { + return (PY_LONG_LONG) (((((((PY_LONG_LONG)digits[2]) << PyLong_SHIFT) | (PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (PY_LONG_LONG)digits[0])); + } + } + break; + case 4: + if ((8 * sizeof(PY_LONG_LONG) > 3 * PyLong_SHIFT)) { + if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) { + __PYX_VERIFY_RETURN_INT(PY_LONG_LONG, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if ((8 * sizeof(PY_LONG_LONG) >= 4 * PyLong_SHIFT)) { + return (PY_LONG_LONG) (((((((((PY_LONG_LONG)digits[3]) << PyLong_SHIFT) | (PY_LONG_LONG)digits[2]) << PyLong_SHIFT) | (PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (PY_LONG_LONG)digits[0])); + } + } + break; + } + } +#endif +#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030C00A7 + if (unlikely(Py_SIZE(x) < 0)) { + goto raise_neg_overflow; + } +#else + { + int result = PyObject_RichCompareBool(x, Py_False, Py_LT); + if (unlikely(result < 0)) + return (PY_LONG_LONG) -1; + if (unlikely(result == 1)) + goto raise_neg_overflow; + } +#endif + if ((sizeof(PY_LONG_LONG) <= sizeof(unsigned long))) { + __PYX_VERIFY_RETURN_INT_EXC(PY_LONG_LONG, unsigned long, PyLong_AsUnsignedLong(x)) + } else if ((sizeof(PY_LONG_LONG) <= sizeof(unsigned PY_LONG_LONG))) { + __PYX_VERIFY_RETURN_INT_EXC(PY_LONG_LONG, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x)) + } + } else { +#if CYTHON_USE_PYLONG_INTERNALS + if (__Pyx_PyLong_IsCompact(x)) { + __PYX_VERIFY_RETURN_INT(PY_LONG_LONG, __Pyx_compact_pylong, __Pyx_PyLong_CompactValue(x)) + } else { + const digit* digits = __Pyx_PyLong_Digits(x); + assert(__Pyx_PyLong_DigitCount(x) > 1); + switch (__Pyx_PyLong_SignedDigitCount(x)) { + case -2: + if ((8 * sizeof(PY_LONG_LONG) - 1 > 1 * PyLong_SHIFT)) { + if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) { + __PYX_VERIFY_RETURN_INT(PY_LONG_LONG, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if ((8 * sizeof(PY_LONG_LONG) - 1 > 2 * PyLong_SHIFT)) { + return (PY_LONG_LONG) (((PY_LONG_LONG)-1)*(((((PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (PY_LONG_LONG)digits[0]))); + } + } + break; + case 2: + if ((8 * sizeof(PY_LONG_LONG) > 1 * PyLong_SHIFT)) { + if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) { + __PYX_VERIFY_RETURN_INT(PY_LONG_LONG, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if ((8 * sizeof(PY_LONG_LONG) - 1 > 2 * PyLong_SHIFT)) { + return (PY_LONG_LONG) ((((((PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (PY_LONG_LONG)digits[0]))); + } + } + break; + case -3: + if ((8 * sizeof(PY_LONG_LONG) - 1 > 2 * PyLong_SHIFT)) { + if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) { + __PYX_VERIFY_RETURN_INT(PY_LONG_LONG, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if ((8 * sizeof(PY_LONG_LONG) - 1 > 3 * PyLong_SHIFT)) { + return (PY_LONG_LONG) (((PY_LONG_LONG)-1)*(((((((PY_LONG_LONG)digits[2]) << PyLong_SHIFT) | (PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (PY_LONG_LONG)digits[0]))); + } + } + break; + case 3: + if ((8 * sizeof(PY_LONG_LONG) > 2 * PyLong_SHIFT)) { + if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) { + __PYX_VERIFY_RETURN_INT(PY_LONG_LONG, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if ((8 * sizeof(PY_LONG_LONG) - 1 > 3 * PyLong_SHIFT)) { + return (PY_LONG_LONG) ((((((((PY_LONG_LONG)digits[2]) << PyLong_SHIFT) | (PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (PY_LONG_LONG)digits[0]))); + } + } + break; + case -4: + if ((8 * sizeof(PY_LONG_LONG) - 1 > 3 * PyLong_SHIFT)) { + if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) { + __PYX_VERIFY_RETURN_INT(PY_LONG_LONG, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if ((8 * sizeof(PY_LONG_LONG) - 1 > 4 * PyLong_SHIFT)) { + return (PY_LONG_LONG) (((PY_LONG_LONG)-1)*(((((((((PY_LONG_LONG)digits[3]) << PyLong_SHIFT) | (PY_LONG_LONG)digits[2]) << PyLong_SHIFT) | (PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (PY_LONG_LONG)digits[0]))); + } + } + break; + case 4: + if ((8 * sizeof(PY_LONG_LONG) > 3 * PyLong_SHIFT)) { + if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) { + __PYX_VERIFY_RETURN_INT(PY_LONG_LONG, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if ((8 * sizeof(PY_LONG_LONG) - 1 > 4 * PyLong_SHIFT)) { + return (PY_LONG_LONG) ((((((((((PY_LONG_LONG)digits[3]) << PyLong_SHIFT) | (PY_LONG_LONG)digits[2]) << PyLong_SHIFT) | (PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (PY_LONG_LONG)digits[0]))); + } + } + break; + } + } +#endif + if ((sizeof(PY_LONG_LONG) <= sizeof(long))) { + __PYX_VERIFY_RETURN_INT_EXC(PY_LONG_LONG, long, PyLong_AsLong(x)) + } else if ((sizeof(PY_LONG_LONG) <= sizeof(PY_LONG_LONG))) { + __PYX_VERIFY_RETURN_INT_EXC(PY_LONG_LONG, PY_LONG_LONG, PyLong_AsLongLong(x)) + } + } + { + PY_LONG_LONG val; + int ret = -1; +#if PY_VERSION_HEX >= 0x030d00A6 && !CYTHON_COMPILING_IN_LIMITED_API + Py_ssize_t bytes_copied = PyLong_AsNativeBytes( + x, &val, sizeof(val), Py_ASNATIVEBYTES_NATIVE_ENDIAN | (is_unsigned ? Py_ASNATIVEBYTES_UNSIGNED_BUFFER | Py_ASNATIVEBYTES_REJECT_NEGATIVE : 0)); + if (unlikely(bytes_copied == -1)) { + } else if (unlikely(bytes_copied > (Py_ssize_t) sizeof(val))) { + goto raise_overflow; + } else { + ret = 0; + } +#elif PY_VERSION_HEX < 0x030d0000 && !(CYTHON_COMPILING_IN_PYPY || CYTHON_COMPILING_IN_LIMITED_API) || defined(_PyLong_AsByteArray) + int one = 1; int is_little = (int)*(unsigned char *)&one; + unsigned char *bytes = (unsigned char *)&val; + ret = _PyLong_AsByteArray((PyLongObject *)x, + bytes, sizeof(val), + is_little, !is_unsigned); +#else + PyObject *v; + PyObject *stepval = NULL, *mask = NULL, *shift = NULL; + int bits, remaining_bits, is_negative = 0; + int chunk_size = (sizeof(long) < 8) ? 30 : 62; + if (likely(PyLong_CheckExact(x))) { + v = __Pyx_NewRef(x); + } else { + v = PyNumber_Long(x); + if (unlikely(!v)) return (PY_LONG_LONG) -1; + assert(PyLong_CheckExact(v)); + } + { + int result = PyObject_RichCompareBool(v, Py_False, Py_LT); + if (unlikely(result < 0)) { + Py_DECREF(v); + return (PY_LONG_LONG) -1; + } + is_negative = result == 1; + } + if (is_unsigned && unlikely(is_negative)) { + Py_DECREF(v); + goto raise_neg_overflow; + } else if (is_negative) { + stepval = PyNumber_Invert(v); + Py_DECREF(v); + if (unlikely(!stepval)) + return (PY_LONG_LONG) -1; + } else { + stepval = v; + } + v = NULL; + val = (PY_LONG_LONG) 0; + mask = PyLong_FromLong((1L << chunk_size) - 1); if (unlikely(!mask)) goto done; + shift = PyLong_FromLong(chunk_size); if (unlikely(!shift)) goto done; + for (bits = 0; bits < (int) sizeof(PY_LONG_LONG) * 8 - chunk_size; bits += chunk_size) { + PyObject *tmp, *digit; + long idigit; + digit = PyNumber_And(stepval, mask); + if (unlikely(!digit)) goto done; + idigit = PyLong_AsLong(digit); + Py_DECREF(digit); + if (unlikely(idigit < 0)) goto done; + val |= ((PY_LONG_LONG) idigit) << bits; + tmp = PyNumber_Rshift(stepval, shift); + if (unlikely(!tmp)) goto done; + Py_DECREF(stepval); stepval = tmp; + } + Py_DECREF(shift); shift = NULL; + Py_DECREF(mask); mask = NULL; + { + long idigit = PyLong_AsLong(stepval); + if (unlikely(idigit < 0)) goto done; + remaining_bits = ((int) sizeof(PY_LONG_LONG) * 8) - bits - (is_unsigned ? 0 : 1); + if (unlikely(idigit >= (1L << remaining_bits))) + goto raise_overflow; + val |= ((PY_LONG_LONG) idigit) << bits; + } + if (!is_unsigned) { + if (unlikely(val & (((PY_LONG_LONG) 1) << (sizeof(PY_LONG_LONG) * 8 - 1)))) + goto raise_overflow; + if (is_negative) + val = ~val; + } + ret = 0; + done: + Py_XDECREF(shift); + Py_XDECREF(mask); + Py_XDECREF(stepval); +#endif + if (unlikely(ret)) + return (PY_LONG_LONG) -1; + return val; + } +raise_overflow: + PyErr_SetString(PyExc_OverflowError, + "value too large to convert to PY_LONG_LONG"); + return (PY_LONG_LONG) -1; +raise_neg_overflow: + PyErr_SetString(PyExc_OverflowError, + "can't convert negative value to PY_LONG_LONG"); + return (PY_LONG_LONG) -1; +} + +/* CIntToPy */ +static CYTHON_INLINE PyObject* __Pyx_PyLong_From_PY_LONG_LONG(PY_LONG_LONG value) { +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wconversion" +#endif + const PY_LONG_LONG neg_one = (PY_LONG_LONG) -1, const_zero = (PY_LONG_LONG) 0; +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic pop +#endif + const int is_unsigned = neg_one > const_zero; + if (is_unsigned) { + if (sizeof(PY_LONG_LONG) < sizeof(long)) { + return PyLong_FromLong((long) value); + } else if (sizeof(PY_LONG_LONG) <= sizeof(unsigned long)) { + return PyLong_FromUnsignedLong((unsigned long) value); +#if !CYTHON_COMPILING_IN_PYPY + } else if (sizeof(PY_LONG_LONG) <= sizeof(unsigned PY_LONG_LONG)) { + return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); +#endif + } + } else { + if (sizeof(PY_LONG_LONG) <= sizeof(long)) { + return PyLong_FromLong((long) value); + } else if (sizeof(PY_LONG_LONG) <= sizeof(PY_LONG_LONG)) { + return PyLong_FromLongLong((PY_LONG_LONG) value); + } + } + { + unsigned char *bytes = (unsigned char *)&value; +#if !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX >= 0x030d00A4 + if (is_unsigned) { + return PyLong_FromUnsignedNativeBytes(bytes, sizeof(value), -1); + } else { + return PyLong_FromNativeBytes(bytes, sizeof(value), -1); + } +#elif !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030d0000 + int one = 1; int little = (int)*(unsigned char *)&one; + return _PyLong_FromByteArray(bytes, sizeof(PY_LONG_LONG), + little, !is_unsigned); +#else + int one = 1; int little = (int)*(unsigned char *)&one; + PyObject *from_bytes, *result = NULL, *kwds = NULL; + PyObject *py_bytes = NULL, *order_str = NULL; + from_bytes = PyObject_GetAttrString((PyObject*)&PyLong_Type, "from_bytes"); + if (!from_bytes) return NULL; + py_bytes = PyBytes_FromStringAndSize((char*)bytes, sizeof(PY_LONG_LONG)); + if (!py_bytes) goto limited_bad; + order_str = PyUnicode_FromString(little ? "little" : "big"); + if (!order_str) goto limited_bad; + { + PyObject *args[3+(CYTHON_VECTORCALL ? 1 : 0)] = { NULL, py_bytes, order_str }; + if (!is_unsigned) { + kwds = __Pyx_MakeVectorcallBuilderKwds(1); + if (!kwds) goto limited_bad; + if (__Pyx_VectorcallBuilder_AddArgStr("signed", __Pyx_NewRef(Py_True), kwds, args+3, 0) < 0) goto limited_bad; + } + result = __Pyx_Object_Vectorcall_CallFromBuilder(from_bytes, args+1, 2 | __Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET, kwds); + } + limited_bad: + Py_XDECREF(kwds); + Py_XDECREF(order_str); + Py_XDECREF(py_bytes); + Py_XDECREF(from_bytes); + return result; +#endif + } +} + /* CIntFromPy */ static CYTHON_INLINE readstat_type_t __Pyx_PyLong_As_readstat_type_t(PyObject *x) { #ifdef __Pyx_HAS_GCC_DIAGNOSTIC diff --git a/pyreadstat/pyreadstat.py b/pyreadstat/pyreadstat.py index e777c30..bfb7548 100644 --- a/pyreadstat/pyreadstat.py +++ b/pyreadstat/pyreadstat.py @@ -1039,8 +1039,15 @@ def read_file_in_chunks( if "num_processes" in kwargs: _ = kwargs.pop("num_processes") + + output_format = None + if "output_format" in kwargs: + output_format = kwargs["output_format"] - _, meta = read_function(file_path, metadataonly=True) + if output_format: + _, meta = read_function(file_path, metadataonly=True, output_format=output_format) + else: + _, meta = read_function(file_path, metadataonly=True) numrows = meta.number_rows if numrows: if not limit: From 9e0437695b26ed36c0207b0a41118bddac423905 Mon Sep 17 00:00:00 2001 From: Otto Fajardo Date: Mon, 10 Aug 2026 17:01:27 +0200 Subject: [PATCH 7/9] [skip ci] updated changelog and documentation --- change_log.md | 2 +- docs/_build/doctrees/environment.pickle | Bin 27174 -> 26713 bytes docs/_build/doctrees/index.doctree | Bin 857730 -> 830278 bytes docs/_build/html/.buildinfo | 2 +- docs/_build/html/.buildinfo.bak | 2 +- docs/_build/html/_static/base-stemmer.js | 476 ++++++++ docs/_build/html/_static/css/theme.css | 2 +- docs/_build/html/_static/doctools.js | 11 +- .../html/_static/documentation_options.js | 2 +- docs/_build/html/_static/english-stemmer.js | 1066 +++++++++++++++++ docs/_build/html/_static/language_data.js | 193 +-- docs/_build/html/_static/searchtools.js | 172 ++- docs/_build/html/_static/sphinx_highlight.js | 67 +- docs/_build/html/genindex.html | 10 +- docs/_build/html/index.html | 12 +- docs/_build/html/py-modindex.html | 10 +- docs/_build/html/search.html | 10 +- docs/_build/html/searchindex.js | 2 +- 18 files changed, 1733 insertions(+), 306 deletions(-) create mode 100644 docs/_build/html/_static/base-stemmer.js create mode 100644 docs/_build/html/_static/english-stemmer.js diff --git a/change_log.md b/change_log.md index b67de43..178682a 100644 --- a/change_log.md +++ b/change_log.md @@ -1,5 +1,5 @@ # 1.3.6 (github, pypi and conda 2026.xx.xx) -* Fixing #328 +* Fixing #328, #336, #342, #344 # 1.3.5 (github, pypi and conda 2026.05.19) * Readstat sources updated to commit 3add3a5eaac6df24d938beffb9148792e362d9ef diff --git a/docs/_build/doctrees/environment.pickle b/docs/_build/doctrees/environment.pickle index 564b1ea6b7ab3aa614ab51176a876b9f02b6ca2c..bec156c8a630fed8368b9746b21100ca852a2c76 100644 GIT binary patch literal 26713 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 Qgt#nJUbr2yPOhuW5bRjo=uH?cfSZ)6 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

%dN4&16c{P zcGP}YG*$PT`D$jzBpTEbhybc}KO;ZMtR&aSTwSaexy>G!$rtPFHn3@(-pkiIl&$L)D|NqyktgT|Tg!vW7u2%bJAYm{v$Yfl99Rx+ z>wqyZ2^*y^TC%dWc*>v3V88;y6p#ftUx+1R@X9EIL!)(Aq0yMCuUowuitBJ=TB870 z$5v|-tJ`pt1!^(|pk}7wPl9?HppJP^zUn>4zYpZOxHg{Cn#Yo``4vI)_?ik$cAH-t zF8YmeMgtIGb)hj?24eF8?_d<=8-@0T^IAuNO-{mkix`}p4rJ<6Xd$~>OX@oz8sCvA z6ekL0_#f4`7-G-|wTk|-Y z!0-i2M5h5`qmkjEC+pl&U!5{v(xe8XmFOLBk<#I@#DMbJ6rRyK1N&2cNDhmW)JLUm3Om>aChZl;8qHS z!f~vfLWMVSF1CqtuELDg91%f>iATh#jNl?mRqk2U!5 z>NtG-9ezCeY4~^?KOVjxJ|4r5Klv_vJcJ+l*&zEOe!MUQAK$=_zIE_17e7uo13uQ^ z2OeEx*Df+eu}NREwMZUaOy7&(bOnzAzy^2;f@n~W8>d3p&MYkS!3q&R|eaATIak(HRNc<{BUVzYBW* ATL1t6 diff --git a/docs/_build/html/.buildinfo b/docs/_build/html/.buildinfo index f8edd7e..780104b 100644 --- a/docs/_build/html/.buildinfo +++ b/docs/_build/html/.buildinfo @@ -1,4 +1,4 @@ # Sphinx build info version 1 # This file records the configuration used when building these files. When it is not found, a full rebuild will be done. -config: 52108008ddbffab0993edd96bc05016e +config: a3345b10b8e0a88133af8c5b09c01146 tags: 645f666f9bcd5a90fca523b33c5a78b7 diff --git a/docs/_build/html/.buildinfo.bak b/docs/_build/html/.buildinfo.bak index 21da5c2..f8edd7e 100644 --- a/docs/_build/html/.buildinfo.bak +++ b/docs/_build/html/.buildinfo.bak @@ -1,4 +1,4 @@ # Sphinx build info version 1 # This file records the configuration used when building these files. When it is not found, a full rebuild will be done. -config: a00fbade8350e617c6a624dde88d788b +config: 52108008ddbffab0993edd96bc05016e tags: 645f666f9bcd5a90fca523b33c5a78b7 diff --git a/docs/_build/html/_static/base-stemmer.js b/docs/_build/html/_static/base-stemmer.js new file mode 100644 index 0000000..e6fa0c4 --- /dev/null +++ b/docs/_build/html/_static/base-stemmer.js @@ -0,0 +1,476 @@ +// @ts-check + +/**@constructor*/ +BaseStemmer = function() { + /** @protected */ + this.current = ''; + this.cursor = 0; + this.limit = 0; + this.limit_backward = 0; + this.bra = 0; + this.ket = 0; + + /** + * @param {string} value + */ + this.setCurrent = function(value) { + this.current = value; + this.cursor = 0; + this.limit = this.current.length; + this.limit_backward = 0; + this.bra = this.cursor; + this.ket = this.limit; + }; + + /** + * @return {string} + */ + this.getCurrent = function() { + return this.current; + }; + + /** + * @param {BaseStemmer} other + */ + this.copy_from = function(other) { + /** @protected */ + this.current = other.current; + this.cursor = other.cursor; + this.limit = other.limit; + this.limit_backward = other.limit_backward; + this.bra = other.bra; + this.ket = other.ket; + }; + + /** + * @param {number[]} s + * @param {number} min + * @param {number} max + * @return {boolean} + */ + this.in_grouping = function(s, min, max) { + /** @protected */ + if (this.cursor >= this.limit) return false; + var ch = this.current.charCodeAt(this.cursor); + if (ch > max || ch < min) return false; + ch -= min; + if ((s[ch >>> 3] & (0x1 << (ch & 0x7))) == 0) return false; + this.cursor++; + return true; + }; + + /** + * @param {number[]} s + * @param {number} min + * @param {number} max + * @return {boolean} + */ + this.go_in_grouping = function(s, min, max) { + /** @protected */ + while (this.cursor < this.limit) { + var ch = this.current.charCodeAt(this.cursor); + if (ch > max || ch < min) + return true; + ch -= min; + if ((s[ch >>> 3] & (0x1 << (ch & 0x7))) == 0) + return true; + this.cursor++; + } + return false; + }; + + /** + * @param {number[]} s + * @param {number} min + * @param {number} max + * @return {boolean} + */ + this.in_grouping_b = function(s, min, max) { + /** @protected */ + if (this.cursor <= this.limit_backward) return false; + var ch = this.current.charCodeAt(this.cursor - 1); + if (ch > max || ch < min) return false; + ch -= min; + if ((s[ch >>> 3] & (0x1 << (ch & 0x7))) == 0) return false; + this.cursor--; + return true; + }; + + /** + * @param {number[]} s + * @param {number} min + * @param {number} max + * @return {boolean} + */ + this.go_in_grouping_b = function(s, min, max) { + /** @protected */ + while (this.cursor > this.limit_backward) { + var ch = this.current.charCodeAt(this.cursor - 1); + if (ch > max || ch < min) return true; + ch -= min; + if ((s[ch >>> 3] & (0x1 << (ch & 0x7))) == 0) return true; + this.cursor--; + } + return false; + }; + + /** + * @param {number[]} s + * @param {number} min + * @param {number} max + * @return {boolean} + */ + this.out_grouping = function(s, min, max) { + /** @protected */ + if (this.cursor >= this.limit) return false; + var ch = this.current.charCodeAt(this.cursor); + if (ch > max || ch < min) { + this.cursor++; + return true; + } + ch -= min; + if ((s[ch >>> 3] & (0X1 << (ch & 0x7))) == 0) { + this.cursor++; + return true; + } + return false; + }; + + /** + * @param {number[]} s + * @param {number} min + * @param {number} max + * @return {boolean} + */ + this.go_out_grouping = function(s, min, max) { + /** @protected */ + while (this.cursor < this.limit) { + var ch = this.current.charCodeAt(this.cursor); + if (ch <= max && ch >= min) { + ch -= min; + if ((s[ch >>> 3] & (0X1 << (ch & 0x7))) != 0) { + return true; + } + } + this.cursor++; + } + return false; + }; + + /** + * @param {number[]} s + * @param {number} min + * @param {number} max + * @return {boolean} + */ + this.out_grouping_b = function(s, min, max) { + /** @protected */ + if (this.cursor <= this.limit_backward) return false; + var ch = this.current.charCodeAt(this.cursor - 1); + if (ch > max || ch < min) { + this.cursor--; + return true; + } + ch -= min; + if ((s[ch >>> 3] & (0x1 << (ch & 0x7))) == 0) { + this.cursor--; + return true; + } + return false; + }; + + /** + * @param {number[]} s + * @param {number} min + * @param {number} max + * @return {boolean} + */ + this.go_out_grouping_b = function(s, min, max) { + /** @protected */ + while (this.cursor > this.limit_backward) { + var ch = this.current.charCodeAt(this.cursor - 1); + if (ch <= max && ch >= min) { + ch -= min; + if ((s[ch >>> 3] & (0x1 << (ch & 0x7))) != 0) { + return true; + } + } + this.cursor--; + } + return false; + }; + + /** + * @param {string} s + * @return {boolean} + */ + this.eq_s = function(s) + { + /** @protected */ + if (this.limit - this.cursor < s.length) return false; + if (this.current.slice(this.cursor, this.cursor + s.length) != s) + { + return false; + } + this.cursor += s.length; + return true; + }; + + /** + * @param {string} s + * @return {boolean} + */ + this.eq_s_b = function(s) + { + /** @protected */ + if (this.cursor - this.limit_backward < s.length) return false; + if (this.current.slice(this.cursor - s.length, this.cursor) != s) + { + return false; + } + this.cursor -= s.length; + return true; + }; + + /** + * @param {Among[]} v + * @return {number} + */ + this.find_among = function(v) + { + /** @protected */ + var i = 0; + var j = v.length; + + var c = this.cursor; + var l = this.limit; + + var common_i = 0; + var common_j = 0; + + var first_key_inspected = false; + + while (true) + { + var k = i + ((j - i) >>> 1); + var diff = 0; + var common = common_i < common_j ? common_i : common_j; // smaller + // w[0]: string, w[1]: substring_i, w[2]: result, w[3]: function (optional) + var w = v[k]; + var i2; + for (i2 = common; i2 < w[0].length; i2++) + { + if (c + common == l) + { + diff = -1; + break; + } + diff = this.current.charCodeAt(c + common) - w[0].charCodeAt(i2); + if (diff != 0) break; + common++; + } + if (diff < 0) + { + j = k; + common_j = common; + } + else + { + i = k; + common_i = common; + } + if (j - i <= 1) + { + if (i > 0) break; // v->s has been inspected + if (j == i) break; // only one item in v + + // - but now we need to go round once more to get + // v->s inspected. This looks messy, but is actually + // the optimal approach. + + if (first_key_inspected) break; + first_key_inspected = true; + } + } + do { + var w = v[i]; + if (common_i >= w[0].length) + { + this.cursor = c + w[0].length; + if (w.length < 4) return w[2]; + var res = w[3](this); + this.cursor = c + w[0].length; + if (res) return w[2]; + } + i = w[1]; + } while (i >= 0); + return 0; + }; + + // find_among_b is for backwards processing. Same comments apply + /** + * @param {Among[]} v + * @return {number} + */ + this.find_among_b = function(v) + { + /** @protected */ + var i = 0; + var j = v.length + + var c = this.cursor; + var lb = this.limit_backward; + + var common_i = 0; + var common_j = 0; + + var first_key_inspected = false; + + while (true) + { + var k = i + ((j - i) >> 1); + var diff = 0; + var common = common_i < common_j ? common_i : common_j; + var w = v[k]; + var i2; + for (i2 = w[0].length - 1 - common; i2 >= 0; i2--) + { + if (c - common == lb) + { + diff = -1; + break; + } + diff = this.current.charCodeAt(c - 1 - common) - w[0].charCodeAt(i2); + if (diff != 0) break; + common++; + } + if (diff < 0) + { + j = k; + common_j = common; + } + else + { + i = k; + common_i = common; + } + if (j - i <= 1) + { + if (i > 0) break; + if (j == i) break; + if (first_key_inspected) break; + first_key_inspected = true; + } + } + do { + var w = v[i]; + if (common_i >= w[0].length) + { + this.cursor = c - w[0].length; + if (w.length < 4) return w[2]; + var res = w[3](this); + this.cursor = c - w[0].length; + if (res) return w[2]; + } + i = w[1]; + } while (i >= 0); + return 0; + }; + + /* to replace chars between c_bra and c_ket in this.current by the + * chars in s. + */ + /** + * @param {number} c_bra + * @param {number} c_ket + * @param {string} s + * @return {number} + */ + this.replace_s = function(c_bra, c_ket, s) + { + /** @protected */ + var adjustment = s.length - (c_ket - c_bra); + this.current = this.current.slice(0, c_bra) + s + this.current.slice(c_ket); + this.limit += adjustment; + if (this.cursor >= c_ket) this.cursor += adjustment; + else if (this.cursor > c_bra) this.cursor = c_bra; + return adjustment; + }; + + /** + * @return {boolean} + */ + this.slice_check = function() + { + /** @protected */ + if (this.bra < 0 || + this.bra > this.ket || + this.ket > this.limit || + this.limit > this.current.length) + { + return false; + } + return true; + }; + + /** + * @param {number} c_bra + * @return {boolean} + */ + this.slice_from = function(s) + { + /** @protected */ + var result = false; + if (this.slice_check()) + { + this.replace_s(this.bra, this.ket, s); + result = true; + } + return result; + }; + + /** + * @return {boolean} + */ + this.slice_del = function() + { + /** @protected */ + return this.slice_from(""); + }; + + /** + * @param {number} c_bra + * @param {number} c_ket + * @param {string} s + */ + this.insert = function(c_bra, c_ket, s) + { + /** @protected */ + var adjustment = this.replace_s(c_bra, c_ket, s); + if (c_bra <= this.bra) this.bra += adjustment; + if (c_bra <= this.ket) this.ket += adjustment; + }; + + /** + * @return {string} + */ + this.slice_to = function() + { + /** @protected */ + var result = ''; + if (this.slice_check()) + { + result = this.current.slice(this.bra, this.ket); + } + return result; + }; + + /** + * @return {string} + */ + this.assign_to = function() + { + /** @protected */ + return this.current.slice(0, this.limit); + }; +}; diff --git a/docs/_build/html/_static/css/theme.css b/docs/_build/html/_static/css/theme.css index 0f14f10..a88467c 100644 --- a/docs/_build/html/_static/css/theme.css +++ b/docs/_build/html/_static/css/theme.css @@ -1,4 +1,4 @@ html{box-sizing:border-box}*,:after,:before{box-sizing:inherit}article,aside,details,figcaption,figure,footer,header,hgroup,nav,section{display:block}audio,canvas,video{display:inline-block;*display:inline;*zoom:1}[hidden],audio:not([controls]){display:none}*{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html{font-size:100%;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}body{margin:0}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:700}blockquote{margin:0}dfn{font-style:italic}ins{background:#ff9;text-decoration:none}ins,mark{color:#000}mark{background:#ff0;font-style:italic;font-weight:700}.rst-content code,.rst-content tt,code,kbd,pre,samp{font-family:monospace,serif;_font-family:courier new,monospace;font-size:1em}pre{white-space:pre}q{quotes:none}q:after,q:before{content:"";content:none}small{font-size:85%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}dl,ol,ul{margin:0;padding:0;list-style:none;list-style-image:none}li{list-style:none}dd{margin:0}img{border:0;-ms-interpolation-mode:bicubic;vertical-align:middle;max-width:100%}svg:not(:root){overflow:hidden}figure,form{margin:0}label{cursor:pointer}button,input,select,textarea{font-size:100%;margin:0;vertical-align:baseline;*vertical-align:middle}button,input{line-height:normal}button,input[type=button],input[type=reset],input[type=submit]{cursor:pointer;-webkit-appearance:button;*overflow:visible}button[disabled],input[disabled]{cursor:default}input[type=search]{-webkit-appearance:textfield;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box}textarea{resize:vertical}table{border-collapse:collapse;border-spacing:0}td{vertical-align:top}.chromeframe{margin:.2em 0;background:#ccc;color:#000;padding:.2em 0}.ir{display:block;border:0;text-indent:-999em;overflow:hidden;background-color:transparent;background-repeat:no-repeat;text-align:left;direction:ltr;*line-height:0}.ir br{display:none}.hidden{display:none!important;visibility:hidden}.visuallyhidden{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.visuallyhidden.focusable:active,.visuallyhidden.focusable:focus{clip:auto;height:auto;margin:0;overflow:visible;position:static;width:auto}.invisible{visibility:hidden}.relative{position:relative}big,small{font-size:100%}@media print{body,html,section{background:none!important}*{box-shadow:none!important;text-shadow:none!important;filter:none!important;-ms-filter:none!important}a,a:visited{text-decoration:underline}.ir a:after,a[href^="#"]:after,a[href^="javascript:"]:after{content:""}blockquote,pre{page-break-inside:avoid}thead{display:table-header-group}img,tr{page-break-inside:avoid}img{max-width:100%!important}@page{margin:.5cm}.rst-content .toctree-wrapper>p.caption,h2,h3,p{orphans:3;widows:3}.rst-content .toctree-wrapper>p.caption,h2,h3{page-break-after:avoid}}.btn,.fa:before,.icon:before,.rst-content .admonition,.rst-content .admonition-title:before,.rst-content .admonition-todo,.rst-content .attention,.rst-content .caution,.rst-content .code-block-caption .headerlink:before,.rst-content .danger,.rst-content .eqno .headerlink:before,.rst-content .error,.rst-content .hint,.rst-content .important,.rst-content .note,.rst-content .seealso,.rst-content .tip,.rst-content .warning,.rst-content code.download span:first-child:before,.rst-content dl dt .headerlink:before,.rst-content h1 .headerlink:before,.rst-content h2 .headerlink:before,.rst-content h3 .headerlink:before,.rst-content h4 .headerlink:before,.rst-content h5 .headerlink:before,.rst-content h6 .headerlink:before,.rst-content p.caption .headerlink:before,.rst-content p .headerlink:before,.rst-content table>caption .headerlink:before,.rst-content tt.download span:first-child:before,.wy-alert,.wy-dropdown .caret:before,.wy-inline-validate.wy-inline-validate-danger .wy-input-context:before,.wy-inline-validate.wy-inline-validate-info .wy-input-context:before,.wy-inline-validate.wy-inline-validate-success .wy-input-context:before,.wy-inline-validate.wy-inline-validate-warning .wy-input-context:before,.wy-menu-vertical li.current>a button.toctree-expand:before,.wy-menu-vertical li.on a button.toctree-expand:before,.wy-menu-vertical li button.toctree-expand:before,input[type=color],input[type=date],input[type=datetime-local],input[type=datetime],input[type=email],input[type=month],input[type=number],input[type=password],input[type=search],input[type=tel],input[type=text],input[type=time],input[type=url],input[type=week],select,textarea{-webkit-font-smoothing:antialiased}.clearfix{*zoom:1}.clearfix:after,.clearfix:before{display:table;content:""}.clearfix:after{clear:both}/*! * Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) - */@font-face{font-family:FontAwesome;src:url(fonts/fontawesome-webfont.eot?674f50d287a8c48dc19ba404d20fe713);src:url(fonts/fontawesome-webfont.eot?674f50d287a8c48dc19ba404d20fe713?#iefix&v=4.7.0) format("embedded-opentype"),url(fonts/fontawesome-webfont.woff2?af7ae505a9eed503f8b8e6982036873e) format("woff2"),url(fonts/fontawesome-webfont.woff?fee66e712a8a08eef5805a46892932ad) format("woff"),url(fonts/fontawesome-webfont.ttf?b06871f281fee6b241d60582ae9369b9) format("truetype"),url(fonts/fontawesome-webfont.svg?912ec66d7572ff821749319396470bde#fontawesomeregular) format("svg");font-weight:400;font-style:normal}.fa,.icon,.rst-content .admonition-title,.rst-content .code-block-caption .headerlink,.rst-content .eqno .headerlink,.rst-content code.download span:first-child,.rst-content dl dt .headerlink,.rst-content h1 .headerlink,.rst-content h2 .headerlink,.rst-content h3 .headerlink,.rst-content h4 .headerlink,.rst-content h5 .headerlink,.rst-content h6 .headerlink,.rst-content p.caption .headerlink,.rst-content p .headerlink,.rst-content table>caption .headerlink,.rst-content tt.download span:first-child,.wy-menu-vertical li.current>a button.toctree-expand,.wy-menu-vertical li.on a button.toctree-expand,.wy-menu-vertical li button.toctree-expand{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fa-lg{font-size:1.33333em;line-height:.75em;vertical-align:-15%}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-fw{width:1.28571em;text-align:center}.fa-ul{padding-left:0;margin-left:2.14286em;list-style-type:none}.fa-ul>li{position:relative}.fa-li{position:absolute;left:-2.14286em;width:2.14286em;top:.14286em;text-align:center}.fa-li.fa-lg{left:-1.85714em}.fa-border{padding:.2em .25em .15em;border:.08em solid #eee;border-radius:.1em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa-pull-left.icon,.fa.fa-pull-left,.rst-content .code-block-caption .fa-pull-left.headerlink,.rst-content .eqno .fa-pull-left.headerlink,.rst-content .fa-pull-left.admonition-title,.rst-content code.download span.fa-pull-left:first-child,.rst-content dl dt .fa-pull-left.headerlink,.rst-content h1 .fa-pull-left.headerlink,.rst-content h2 .fa-pull-left.headerlink,.rst-content h3 .fa-pull-left.headerlink,.rst-content h4 .fa-pull-left.headerlink,.rst-content h5 .fa-pull-left.headerlink,.rst-content h6 .fa-pull-left.headerlink,.rst-content p .fa-pull-left.headerlink,.rst-content table>caption .fa-pull-left.headerlink,.rst-content tt.download span.fa-pull-left:first-child,.wy-menu-vertical li.current>a button.fa-pull-left.toctree-expand,.wy-menu-vertical li.on a button.fa-pull-left.toctree-expand,.wy-menu-vertical li button.fa-pull-left.toctree-expand{margin-right:.3em}.fa-pull-right.icon,.fa.fa-pull-right,.rst-content .code-block-caption .fa-pull-right.headerlink,.rst-content .eqno .fa-pull-right.headerlink,.rst-content .fa-pull-right.admonition-title,.rst-content code.download span.fa-pull-right:first-child,.rst-content dl dt .fa-pull-right.headerlink,.rst-content h1 .fa-pull-right.headerlink,.rst-content h2 .fa-pull-right.headerlink,.rst-content h3 .fa-pull-right.headerlink,.rst-content h4 .fa-pull-right.headerlink,.rst-content h5 .fa-pull-right.headerlink,.rst-content h6 .fa-pull-right.headerlink,.rst-content p .fa-pull-right.headerlink,.rst-content table>caption .fa-pull-right.headerlink,.rst-content tt.download span.fa-pull-right:first-child,.wy-menu-vertical li.current>a button.fa-pull-right.toctree-expand,.wy-menu-vertical li.on a button.fa-pull-right.toctree-expand,.wy-menu-vertical li button.fa-pull-right.toctree-expand{margin-left:.3em}.pull-right{float:right}.pull-left{float:left}.fa.pull-left,.pull-left.icon,.rst-content .code-block-caption .pull-left.headerlink,.rst-content .eqno .pull-left.headerlink,.rst-content .pull-left.admonition-title,.rst-content code.download span.pull-left:first-child,.rst-content dl dt .pull-left.headerlink,.rst-content h1 .pull-left.headerlink,.rst-content h2 .pull-left.headerlink,.rst-content h3 .pull-left.headerlink,.rst-content h4 .pull-left.headerlink,.rst-content h5 .pull-left.headerlink,.rst-content h6 .pull-left.headerlink,.rst-content p .pull-left.headerlink,.rst-content table>caption .pull-left.headerlink,.rst-content tt.download span.pull-left:first-child,.wy-menu-vertical li.current>a button.pull-left.toctree-expand,.wy-menu-vertical li.on a button.pull-left.toctree-expand,.wy-menu-vertical li button.pull-left.toctree-expand{margin-right:.3em}.fa.pull-right,.pull-right.icon,.rst-content .code-block-caption .pull-right.headerlink,.rst-content .eqno .pull-right.headerlink,.rst-content .pull-right.admonition-title,.rst-content code.download span.pull-right:first-child,.rst-content dl dt .pull-right.headerlink,.rst-content h1 .pull-right.headerlink,.rst-content h2 .pull-right.headerlink,.rst-content h3 .pull-right.headerlink,.rst-content h4 .pull-right.headerlink,.rst-content h5 .pull-right.headerlink,.rst-content h6 .pull-right.headerlink,.rst-content p .pull-right.headerlink,.rst-content table>caption .pull-right.headerlink,.rst-content tt.download span.pull-right:first-child,.wy-menu-vertical li.current>a button.pull-right.toctree-expand,.wy-menu-vertical li.on a button.pull-right.toctree-expand,.wy-menu-vertical li button.pull-right.toctree-expand{margin-left:.3em}.fa-spin{-webkit-animation:fa-spin 2s linear infinite;animation:fa-spin 2s linear infinite}.fa-pulse{-webkit-animation:fa-spin 1s steps(8) infinite;animation:fa-spin 1s steps(8) infinite}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.fa-rotate-90{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";-webkit-transform:rotate(270deg);-ms-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";-webkit-transform:scaleX(-1);-ms-transform:scaleX(-1);transform:scaleX(-1)}.fa-flip-vertical{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";-webkit-transform:scaleY(-1);-ms-transform:scaleY(-1);transform:scaleY(-1)}:root .fa-flip-horizontal,:root .fa-flip-vertical,:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270{filter:none}.fa-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:middle}.fa-stack-1x,.fa-stack-2x{position:absolute;left:0;width:100%;text-align:center}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-glass:before{content:""}.fa-music:before{content:""}.fa-search:before,.icon-search:before{content:""}.fa-envelope-o:before{content:""}.fa-heart:before{content:""}.fa-star:before{content:""}.fa-star-o:before{content:""}.fa-user:before{content:""}.fa-film:before{content:""}.fa-th-large:before{content:""}.fa-th:before{content:""}.fa-th-list:before{content:""}.fa-check:before{content:""}.fa-close:before,.fa-remove:before,.fa-times:before{content:""}.fa-search-plus:before{content:""}.fa-search-minus:before{content:""}.fa-power-off:before{content:""}.fa-signal:before{content:""}.fa-cog:before,.fa-gear:before{content:""}.fa-trash-o:before{content:""}.fa-home:before,.icon-home:before{content:""}.fa-file-o:before{content:""}.fa-clock-o:before{content:""}.fa-road:before{content:""}.fa-download:before,.rst-content code.download span:first-child:before,.rst-content tt.download span:first-child:before{content:""}.fa-arrow-circle-o-down:before{content:""}.fa-arrow-circle-o-up:before{content:""}.fa-inbox:before{content:""}.fa-play-circle-o:before{content:""}.fa-repeat:before,.fa-rotate-right:before{content:""}.fa-refresh:before{content:""}.fa-list-alt:before{content:""}.fa-lock:before{content:""}.fa-flag:before{content:""}.fa-headphones:before{content:""}.fa-volume-off:before{content:""}.fa-volume-down:before{content:""}.fa-volume-up:before{content:""}.fa-qrcode:before{content:""}.fa-barcode:before{content:""}.fa-tag:before{content:""}.fa-tags:before{content:""}.fa-book:before,.icon-book:before{content:""}.fa-bookmark:before{content:""}.fa-print:before{content:""}.fa-camera:before{content:""}.fa-font:before{content:""}.fa-bold:before{content:""}.fa-italic:before{content:""}.fa-text-height:before{content:""}.fa-text-width:before{content:""}.fa-align-left:before{content:""}.fa-align-center:before{content:""}.fa-align-right:before{content:""}.fa-align-justify:before{content:""}.fa-list:before{content:""}.fa-dedent:before,.fa-outdent:before{content:""}.fa-indent:before{content:""}.fa-video-camera:before{content:""}.fa-image:before,.fa-photo:before,.fa-picture-o:before{content:""}.fa-pencil:before{content:""}.fa-map-marker:before{content:""}.fa-adjust:before{content:""}.fa-tint:before{content:""}.fa-edit:before,.fa-pencil-square-o:before{content:""}.fa-share-square-o:before{content:""}.fa-check-square-o:before{content:""}.fa-arrows:before{content:""}.fa-step-backward:before{content:""}.fa-fast-backward:before{content:""}.fa-backward:before{content:""}.fa-play:before{content:""}.fa-pause:before{content:""}.fa-stop:before{content:""}.fa-forward:before{content:""}.fa-fast-forward:before{content:""}.fa-step-forward:before{content:""}.fa-eject:before{content:""}.fa-chevron-left:before{content:""}.fa-chevron-right:before{content:""}.fa-plus-circle:before{content:""}.fa-minus-circle:before{content:""}.fa-times-circle:before,.wy-inline-validate.wy-inline-validate-danger .wy-input-context:before{content:""}.fa-check-circle:before,.wy-inline-validate.wy-inline-validate-success .wy-input-context:before{content:""}.fa-question-circle:before{content:""}.fa-info-circle:before{content:""}.fa-crosshairs:before{content:""}.fa-times-circle-o:before{content:""}.fa-check-circle-o:before{content:""}.fa-ban:before{content:""}.fa-arrow-left:before{content:""}.fa-arrow-right:before{content:""}.fa-arrow-up:before{content:""}.fa-arrow-down:before{content:""}.fa-mail-forward:before,.fa-share:before{content:""}.fa-expand:before{content:""}.fa-compress:before{content:""}.fa-plus:before{content:""}.fa-minus:before{content:""}.fa-asterisk:before{content:""}.fa-exclamation-circle:before,.rst-content .admonition-title:before,.wy-inline-validate.wy-inline-validate-info .wy-input-context:before,.wy-inline-validate.wy-inline-validate-warning .wy-input-context:before{content:""}.fa-gift:before{content:""}.fa-leaf:before{content:""}.fa-fire:before,.icon-fire:before{content:""}.fa-eye:before{content:""}.fa-eye-slash:before{content:""}.fa-exclamation-triangle:before,.fa-warning:before{content:""}.fa-plane:before{content:""}.fa-calendar:before{content:""}.fa-random:before{content:""}.fa-comment:before{content:""}.fa-magnet:before{content:""}.fa-chevron-up:before{content:""}.fa-chevron-down:before{content:""}.fa-retweet:before{content:""}.fa-shopping-cart:before{content:""}.fa-folder:before{content:""}.fa-folder-open:before{content:""}.fa-arrows-v:before{content:""}.fa-arrows-h:before{content:""}.fa-bar-chart-o:before,.fa-bar-chart:before{content:""}.fa-twitter-square:before{content:""}.fa-facebook-square:before{content:""}.fa-camera-retro:before{content:""}.fa-key:before{content:""}.fa-cogs:before,.fa-gears:before{content:""}.fa-comments:before{content:""}.fa-thumbs-o-up:before{content:""}.fa-thumbs-o-down:before{content:""}.fa-star-half:before{content:""}.fa-heart-o:before{content:""}.fa-sign-out:before{content:""}.fa-linkedin-square:before{content:""}.fa-thumb-tack:before{content:""}.fa-external-link:before{content:""}.fa-sign-in:before{content:""}.fa-trophy:before{content:""}.fa-github-square:before{content:""}.fa-upload:before{content:""}.fa-lemon-o:before{content:""}.fa-phone:before{content:""}.fa-square-o:before{content:""}.fa-bookmark-o:before{content:""}.fa-phone-square:before{content:""}.fa-twitter:before{content:""}.fa-facebook-f:before,.fa-facebook:before{content:""}.fa-github:before,.icon-github:before{content:""}.fa-unlock:before{content:""}.fa-credit-card:before{content:""}.fa-feed:before,.fa-rss:before{content:""}.fa-hdd-o:before{content:""}.fa-bullhorn:before{content:""}.fa-bell:before{content:""}.fa-certificate:before{content:""}.fa-hand-o-right:before{content:""}.fa-hand-o-left:before{content:""}.fa-hand-o-up:before{content:""}.fa-hand-o-down:before{content:""}.fa-arrow-circle-left:before,.icon-circle-arrow-left:before{content:""}.fa-arrow-circle-right:before,.icon-circle-arrow-right:before{content:""}.fa-arrow-circle-up:before{content:""}.fa-arrow-circle-down:before{content:""}.fa-globe:before{content:""}.fa-wrench:before{content:""}.fa-tasks:before{content:""}.fa-filter:before{content:""}.fa-briefcase:before{content:""}.fa-arrows-alt:before{content:""}.fa-group:before,.fa-users:before{content:""}.fa-chain:before,.fa-link:before,.icon-link:before{content:""}.fa-cloud:before{content:""}.fa-flask:before{content:""}.fa-cut:before,.fa-scissors:before{content:""}.fa-copy:before,.fa-files-o:before{content:""}.fa-paperclip:before{content:""}.fa-floppy-o:before,.fa-save:before{content:""}.fa-square:before{content:""}.fa-bars:before,.fa-navicon:before,.fa-reorder:before{content:""}.fa-list-ul:before{content:""}.fa-list-ol:before{content:""}.fa-strikethrough:before{content:""}.fa-underline:before{content:""}.fa-table:before{content:""}.fa-magic:before{content:""}.fa-truck:before{content:""}.fa-pinterest:before{content:""}.fa-pinterest-square:before{content:""}.fa-google-plus-square:before{content:""}.fa-google-plus:before{content:""}.fa-money:before{content:""}.fa-caret-down:before,.icon-caret-down:before,.wy-dropdown .caret:before{content:""}.fa-caret-up:before{content:""}.fa-caret-left:before{content:""}.fa-caret-right:before{content:""}.fa-columns:before{content:""}.fa-sort:before,.fa-unsorted:before{content:""}.fa-sort-desc:before,.fa-sort-down:before{content:""}.fa-sort-asc:before,.fa-sort-up:before{content:""}.fa-envelope:before{content:""}.fa-linkedin:before{content:""}.fa-rotate-left:before,.fa-undo:before{content:""}.fa-gavel:before,.fa-legal:before{content:""}.fa-dashboard:before,.fa-tachometer:before{content:""}.fa-comment-o:before{content:""}.fa-comments-o:before{content:""}.fa-bolt:before,.fa-flash:before{content:""}.fa-sitemap:before{content:""}.fa-umbrella:before{content:""}.fa-clipboard:before,.fa-paste:before{content:""}.fa-lightbulb-o:before{content:""}.fa-exchange:before{content:""}.fa-cloud-download:before{content:""}.fa-cloud-upload:before{content:""}.fa-user-md:before{content:""}.fa-stethoscope:before{content:""}.fa-suitcase:before{content:""}.fa-bell-o:before{content:""}.fa-coffee:before{content:""}.fa-cutlery:before{content:""}.fa-file-text-o:before{content:""}.fa-building-o:before{content:""}.fa-hospital-o:before{content:""}.fa-ambulance:before{content:""}.fa-medkit:before{content:""}.fa-fighter-jet:before{content:""}.fa-beer:before{content:""}.fa-h-square:before{content:""}.fa-plus-square:before{content:""}.fa-angle-double-left:before{content:""}.fa-angle-double-right:before{content:""}.fa-angle-double-up:before{content:""}.fa-angle-double-down:before{content:""}.fa-angle-left:before{content:""}.fa-angle-right:before{content:""}.fa-angle-up:before{content:""}.fa-angle-down:before{content:""}.fa-desktop:before{content:""}.fa-laptop:before{content:""}.fa-tablet:before{content:""}.fa-mobile-phone:before,.fa-mobile:before{content:""}.fa-circle-o:before{content:""}.fa-quote-left:before{content:""}.fa-quote-right:before{content:""}.fa-spinner:before{content:""}.fa-circle:before{content:""}.fa-mail-reply:before,.fa-reply:before{content:""}.fa-github-alt:before{content:""}.fa-folder-o:before{content:""}.fa-folder-open-o:before{content:""}.fa-smile-o:before{content:""}.fa-frown-o:before{content:""}.fa-meh-o:before{content:""}.fa-gamepad:before{content:""}.fa-keyboard-o:before{content:""}.fa-flag-o:before{content:""}.fa-flag-checkered:before{content:""}.fa-terminal:before{content:""}.fa-code:before{content:""}.fa-mail-reply-all:before,.fa-reply-all:before{content:""}.fa-star-half-empty:before,.fa-star-half-full:before,.fa-star-half-o:before{content:""}.fa-location-arrow:before{content:""}.fa-crop:before{content:""}.fa-code-fork:before{content:""}.fa-chain-broken:before,.fa-unlink:before{content:""}.fa-question:before{content:""}.fa-info:before{content:""}.fa-exclamation:before{content:""}.fa-superscript:before{content:""}.fa-subscript:before{content:""}.fa-eraser:before{content:""}.fa-puzzle-piece:before{content:""}.fa-microphone:before{content:""}.fa-microphone-slash:before{content:""}.fa-shield:before{content:""}.fa-calendar-o:before{content:""}.fa-fire-extinguisher:before{content:""}.fa-rocket:before{content:""}.fa-maxcdn:before{content:""}.fa-chevron-circle-left:before{content:""}.fa-chevron-circle-right:before{content:""}.fa-chevron-circle-up:before{content:""}.fa-chevron-circle-down:before{content:""}.fa-html5:before{content:""}.fa-css3:before{content:""}.fa-anchor:before{content:""}.fa-unlock-alt:before{content:""}.fa-bullseye:before{content:""}.fa-ellipsis-h:before{content:""}.fa-ellipsis-v:before{content:""}.fa-rss-square:before{content:""}.fa-play-circle:before{content:""}.fa-ticket:before{content:""}.fa-minus-square:before{content:""}.fa-minus-square-o:before,.wy-menu-vertical li.current>a button.toctree-expand:before,.wy-menu-vertical li.on a button.toctree-expand:before{content:""}.fa-level-up:before{content:""}.fa-level-down:before{content:""}.fa-check-square:before{content:""}.fa-pencil-square:before{content:""}.fa-external-link-square:before{content:""}.fa-share-square:before{content:""}.fa-compass:before{content:""}.fa-caret-square-o-down:before,.fa-toggle-down:before{content:""}.fa-caret-square-o-up:before,.fa-toggle-up:before{content:""}.fa-caret-square-o-right:before,.fa-toggle-right:before{content:""}.fa-eur:before,.fa-euro:before{content:""}.fa-gbp:before{content:""}.fa-dollar:before,.fa-usd:before{content:""}.fa-inr:before,.fa-rupee:before{content:""}.fa-cny:before,.fa-jpy:before,.fa-rmb:before,.fa-yen:before{content:""}.fa-rouble:before,.fa-rub:before,.fa-ruble:before{content:""}.fa-krw:before,.fa-won:before{content:""}.fa-bitcoin:before,.fa-btc:before{content:""}.fa-file:before{content:""}.fa-file-text:before{content:""}.fa-sort-alpha-asc:before{content:""}.fa-sort-alpha-desc:before{content:""}.fa-sort-amount-asc:before{content:""}.fa-sort-amount-desc:before{content:""}.fa-sort-numeric-asc:before{content:""}.fa-sort-numeric-desc:before{content:""}.fa-thumbs-up:before{content:""}.fa-thumbs-down:before{content:""}.fa-youtube-square:before{content:""}.fa-youtube:before{content:""}.fa-xing:before{content:""}.fa-xing-square:before{content:""}.fa-youtube-play:before{content:""}.fa-dropbox:before{content:""}.fa-stack-overflow:before{content:""}.fa-instagram:before{content:""}.fa-flickr:before{content:""}.fa-adn:before{content:""}.fa-bitbucket:before,.icon-bitbucket:before{content:""}.fa-bitbucket-square:before{content:""}.fa-tumblr:before{content:""}.fa-tumblr-square:before{content:""}.fa-long-arrow-down:before{content:""}.fa-long-arrow-up:before{content:""}.fa-long-arrow-left:before{content:""}.fa-long-arrow-right:before{content:""}.fa-apple:before{content:""}.fa-windows:before{content:""}.fa-android:before{content:""}.fa-linux:before{content:""}.fa-dribbble:before{content:""}.fa-skype:before{content:""}.fa-foursquare:before{content:""}.fa-trello:before{content:""}.fa-female:before{content:""}.fa-male:before{content:""}.fa-gittip:before,.fa-gratipay:before{content:""}.fa-sun-o:before{content:""}.fa-moon-o:before{content:""}.fa-archive:before{content:""}.fa-bug:before{content:""}.fa-vk:before{content:""}.fa-weibo:before{content:""}.fa-renren:before{content:""}.fa-pagelines:before{content:""}.fa-stack-exchange:before{content:""}.fa-arrow-circle-o-right:before{content:""}.fa-arrow-circle-o-left:before{content:""}.fa-caret-square-o-left:before,.fa-toggle-left:before{content:""}.fa-dot-circle-o:before{content:""}.fa-wheelchair:before{content:""}.fa-vimeo-square:before{content:""}.fa-try:before,.fa-turkish-lira:before{content:""}.fa-plus-square-o:before,.wy-menu-vertical li button.toctree-expand:before{content:""}.fa-space-shuttle:before{content:""}.fa-slack:before{content:""}.fa-envelope-square:before{content:""}.fa-wordpress:before{content:""}.fa-openid:before{content:""}.fa-bank:before,.fa-institution:before,.fa-university:before{content:""}.fa-graduation-cap:before,.fa-mortar-board:before{content:""}.fa-yahoo:before{content:""}.fa-google:before{content:""}.fa-reddit:before{content:""}.fa-reddit-square:before{content:""}.fa-stumbleupon-circle:before{content:""}.fa-stumbleupon:before{content:""}.fa-delicious:before{content:""}.fa-digg:before{content:""}.fa-pied-piper-pp:before{content:""}.fa-pied-piper-alt:before{content:""}.fa-drupal:before{content:""}.fa-joomla:before{content:""}.fa-language:before{content:""}.fa-fax:before{content:""}.fa-building:before{content:""}.fa-child:before{content:""}.fa-paw:before{content:""}.fa-spoon:before{content:""}.fa-cube:before{content:""}.fa-cubes:before{content:""}.fa-behance:before{content:""}.fa-behance-square:before{content:""}.fa-steam:before{content:""}.fa-steam-square:before{content:""}.fa-recycle:before{content:""}.fa-automobile:before,.fa-car:before{content:""}.fa-cab:before,.fa-taxi:before{content:""}.fa-tree:before{content:""}.fa-spotify:before{content:""}.fa-deviantart:before{content:""}.fa-soundcloud:before{content:""}.fa-database:before{content:""}.fa-file-pdf-o:before{content:""}.fa-file-word-o:before{content:""}.fa-file-excel-o:before{content:""}.fa-file-powerpoint-o:before{content:""}.fa-file-image-o:before,.fa-file-photo-o:before,.fa-file-picture-o:before{content:""}.fa-file-archive-o:before,.fa-file-zip-o:before{content:""}.fa-file-audio-o:before,.fa-file-sound-o:before{content:""}.fa-file-movie-o:before,.fa-file-video-o:before{content:""}.fa-file-code-o:before{content:""}.fa-vine:before{content:""}.fa-codepen:before{content:""}.fa-jsfiddle:before{content:""}.fa-life-bouy:before,.fa-life-buoy:before,.fa-life-ring:before,.fa-life-saver:before,.fa-support:before{content:""}.fa-circle-o-notch:before{content:""}.fa-ra:before,.fa-rebel:before,.fa-resistance:before{content:""}.fa-empire:before,.fa-ge:before{content:""}.fa-git-square:before{content:""}.fa-git:before{content:""}.fa-hacker-news:before,.fa-y-combinator-square:before,.fa-yc-square:before{content:""}.fa-tencent-weibo:before{content:""}.fa-qq:before{content:""}.fa-wechat:before,.fa-weixin:before{content:""}.fa-paper-plane:before,.fa-send:before{content:""}.fa-paper-plane-o:before,.fa-send-o:before{content:""}.fa-history:before{content:""}.fa-circle-thin:before{content:""}.fa-header:before{content:""}.fa-paragraph:before{content:""}.fa-sliders:before{content:""}.fa-share-alt:before{content:""}.fa-share-alt-square:before{content:""}.fa-bomb:before{content:""}.fa-futbol-o:before,.fa-soccer-ball-o:before{content:""}.fa-tty:before{content:""}.fa-binoculars:before{content:""}.fa-plug:before{content:""}.fa-slideshare:before{content:""}.fa-twitch:before{content:""}.fa-yelp:before{content:""}.fa-newspaper-o:before{content:""}.fa-wifi:before{content:""}.fa-calculator:before{content:""}.fa-paypal:before{content:""}.fa-google-wallet:before{content:""}.fa-cc-visa:before{content:""}.fa-cc-mastercard:before{content:""}.fa-cc-discover:before{content:""}.fa-cc-amex:before{content:""}.fa-cc-paypal:before{content:""}.fa-cc-stripe:before{content:""}.fa-bell-slash:before{content:""}.fa-bell-slash-o:before{content:""}.fa-trash:before{content:""}.fa-copyright:before{content:""}.fa-at:before{content:""}.fa-eyedropper:before{content:""}.fa-paint-brush:before{content:""}.fa-birthday-cake:before{content:""}.fa-area-chart:before{content:""}.fa-pie-chart:before{content:""}.fa-line-chart:before{content:""}.fa-lastfm:before{content:""}.fa-lastfm-square:before{content:""}.fa-toggle-off:before{content:""}.fa-toggle-on:before{content:""}.fa-bicycle:before{content:""}.fa-bus:before{content:""}.fa-ioxhost:before{content:""}.fa-angellist:before{content:""}.fa-cc:before{content:""}.fa-ils:before,.fa-shekel:before,.fa-sheqel:before{content:""}.fa-meanpath:before{content:""}.fa-buysellads:before{content:""}.fa-connectdevelop:before{content:""}.fa-dashcube:before{content:""}.fa-forumbee:before{content:""}.fa-leanpub:before{content:""}.fa-sellsy:before{content:""}.fa-shirtsinbulk:before{content:""}.fa-simplybuilt:before{content:""}.fa-skyatlas:before{content:""}.fa-cart-plus:before{content:""}.fa-cart-arrow-down:before{content:""}.fa-diamond:before{content:""}.fa-ship:before{content:""}.fa-user-secret:before{content:""}.fa-motorcycle:before{content:""}.fa-street-view:before{content:""}.fa-heartbeat:before{content:""}.fa-venus:before{content:""}.fa-mars:before{content:""}.fa-mercury:before{content:""}.fa-intersex:before,.fa-transgender:before{content:""}.fa-transgender-alt:before{content:""}.fa-venus-double:before{content:""}.fa-mars-double:before{content:""}.fa-venus-mars:before{content:""}.fa-mars-stroke:before{content:""}.fa-mars-stroke-v:before{content:""}.fa-mars-stroke-h:before{content:""}.fa-neuter:before{content:""}.fa-genderless:before{content:""}.fa-facebook-official:before{content:""}.fa-pinterest-p:before{content:""}.fa-whatsapp:before{content:""}.fa-server:before{content:""}.fa-user-plus:before{content:""}.fa-user-times:before{content:""}.fa-bed:before,.fa-hotel:before{content:""}.fa-viacoin:before{content:""}.fa-train:before{content:""}.fa-subway:before{content:""}.fa-medium:before{content:""}.fa-y-combinator:before,.fa-yc:before{content:""}.fa-optin-monster:before{content:""}.fa-opencart:before{content:""}.fa-expeditedssl:before{content:""}.fa-battery-4:before,.fa-battery-full:before,.fa-battery:before{content:""}.fa-battery-3:before,.fa-battery-three-quarters:before{content:""}.fa-battery-2:before,.fa-battery-half:before{content:""}.fa-battery-1:before,.fa-battery-quarter:before{content:""}.fa-battery-0:before,.fa-battery-empty:before{content:""}.fa-mouse-pointer:before{content:""}.fa-i-cursor:before{content:""}.fa-object-group:before{content:""}.fa-object-ungroup:before{content:""}.fa-sticky-note:before{content:""}.fa-sticky-note-o:before{content:""}.fa-cc-jcb:before{content:""}.fa-cc-diners-club:before{content:""}.fa-clone:before{content:""}.fa-balance-scale:before{content:""}.fa-hourglass-o:before{content:""}.fa-hourglass-1:before,.fa-hourglass-start:before{content:""}.fa-hourglass-2:before,.fa-hourglass-half:before{content:""}.fa-hourglass-3:before,.fa-hourglass-end:before{content:""}.fa-hourglass:before{content:""}.fa-hand-grab-o:before,.fa-hand-rock-o:before{content:""}.fa-hand-paper-o:before,.fa-hand-stop-o:before{content:""}.fa-hand-scissors-o:before{content:""}.fa-hand-lizard-o:before{content:""}.fa-hand-spock-o:before{content:""}.fa-hand-pointer-o:before{content:""}.fa-hand-peace-o:before{content:""}.fa-trademark:before{content:""}.fa-registered:before{content:""}.fa-creative-commons:before{content:""}.fa-gg:before{content:""}.fa-gg-circle:before{content:""}.fa-tripadvisor:before{content:""}.fa-odnoklassniki:before{content:""}.fa-odnoklassniki-square:before{content:""}.fa-get-pocket:before{content:""}.fa-wikipedia-w:before{content:""}.fa-safari:before{content:""}.fa-chrome:before{content:""}.fa-firefox:before{content:""}.fa-opera:before{content:""}.fa-internet-explorer:before{content:""}.fa-television:before,.fa-tv:before{content:""}.fa-contao:before{content:""}.fa-500px:before{content:""}.fa-amazon:before{content:""}.fa-calendar-plus-o:before{content:""}.fa-calendar-minus-o:before{content:""}.fa-calendar-times-o:before{content:""}.fa-calendar-check-o:before{content:""}.fa-industry:before{content:""}.fa-map-pin:before{content:""}.fa-map-signs:before{content:""}.fa-map-o:before{content:""}.fa-map:before{content:""}.fa-commenting:before{content:""}.fa-commenting-o:before{content:""}.fa-houzz:before{content:""}.fa-vimeo:before{content:""}.fa-black-tie:before{content:""}.fa-fonticons:before{content:""}.fa-reddit-alien:before{content:""}.fa-edge:before{content:""}.fa-credit-card-alt:before{content:""}.fa-codiepie:before{content:""}.fa-modx:before{content:""}.fa-fort-awesome:before{content:""}.fa-usb:before{content:""}.fa-product-hunt:before{content:""}.fa-mixcloud:before{content:""}.fa-scribd:before{content:""}.fa-pause-circle:before{content:""}.fa-pause-circle-o:before{content:""}.fa-stop-circle:before{content:""}.fa-stop-circle-o:before{content:""}.fa-shopping-bag:before{content:""}.fa-shopping-basket:before{content:""}.fa-hashtag:before{content:""}.fa-bluetooth:before{content:""}.fa-bluetooth-b:before{content:""}.fa-percent:before{content:""}.fa-gitlab:before,.icon-gitlab:before{content:""}.fa-wpbeginner:before{content:""}.fa-wpforms:before{content:""}.fa-envira:before{content:""}.fa-universal-access:before{content:""}.fa-wheelchair-alt:before{content:""}.fa-question-circle-o:before{content:""}.fa-blind:before{content:""}.fa-audio-description:before{content:""}.fa-volume-control-phone:before{content:""}.fa-braille:before{content:""}.fa-assistive-listening-systems:before{content:""}.fa-american-sign-language-interpreting:before,.fa-asl-interpreting:before{content:""}.fa-deaf:before,.fa-deafness:before,.fa-hard-of-hearing:before{content:""}.fa-glide:before{content:""}.fa-glide-g:before{content:""}.fa-sign-language:before,.fa-signing:before{content:""}.fa-low-vision:before{content:""}.fa-viadeo:before{content:""}.fa-viadeo-square:before{content:""}.fa-snapchat:before{content:""}.fa-snapchat-ghost:before{content:""}.fa-snapchat-square:before{content:""}.fa-pied-piper:before{content:""}.fa-first-order:before{content:""}.fa-yoast:before{content:""}.fa-themeisle:before{content:""}.fa-google-plus-circle:before,.fa-google-plus-official:before{content:""}.fa-fa:before,.fa-font-awesome:before{content:""}.fa-handshake-o:before{content:""}.fa-envelope-open:before{content:""}.fa-envelope-open-o:before{content:""}.fa-linode:before{content:""}.fa-address-book:before{content:""}.fa-address-book-o:before{content:""}.fa-address-card:before,.fa-vcard:before{content:""}.fa-address-card-o:before,.fa-vcard-o:before{content:""}.fa-user-circle:before{content:""}.fa-user-circle-o:before{content:""}.fa-user-o:before{content:""}.fa-id-badge:before{content:""}.fa-drivers-license:before,.fa-id-card:before{content:""}.fa-drivers-license-o:before,.fa-id-card-o:before{content:""}.fa-quora:before{content:""}.fa-free-code-camp:before{content:""}.fa-telegram:before{content:""}.fa-thermometer-4:before,.fa-thermometer-full:before,.fa-thermometer:before{content:""}.fa-thermometer-3:before,.fa-thermometer-three-quarters:before{content:""}.fa-thermometer-2:before,.fa-thermometer-half:before{content:""}.fa-thermometer-1:before,.fa-thermometer-quarter:before{content:""}.fa-thermometer-0:before,.fa-thermometer-empty:before{content:""}.fa-shower:before{content:""}.fa-bath:before,.fa-bathtub:before,.fa-s15:before{content:""}.fa-podcast:before{content:""}.fa-window-maximize:before{content:""}.fa-window-minimize:before{content:""}.fa-window-restore:before{content:""}.fa-times-rectangle:before,.fa-window-close:before{content:""}.fa-times-rectangle-o:before,.fa-window-close-o:before{content:""}.fa-bandcamp:before{content:""}.fa-grav:before{content:""}.fa-etsy:before{content:""}.fa-imdb:before{content:""}.fa-ravelry:before{content:""}.fa-eercast:before{content:""}.fa-microchip:before{content:""}.fa-snowflake-o:before{content:""}.fa-superpowers:before{content:""}.fa-wpexplorer:before{content:""}.fa-meetup:before{content:""}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}.fa,.icon,.rst-content .admonition-title,.rst-content .code-block-caption .headerlink,.rst-content .eqno .headerlink,.rst-content code.download span:first-child,.rst-content dl dt .headerlink,.rst-content h1 .headerlink,.rst-content h2 .headerlink,.rst-content h3 .headerlink,.rst-content h4 .headerlink,.rst-content h5 .headerlink,.rst-content h6 .headerlink,.rst-content p.caption .headerlink,.rst-content p .headerlink,.rst-content table>caption .headerlink,.rst-content tt.download span:first-child,.wy-dropdown .caret,.wy-inline-validate.wy-inline-validate-danger .wy-input-context,.wy-inline-validate.wy-inline-validate-info .wy-input-context,.wy-inline-validate.wy-inline-validate-success .wy-input-context,.wy-inline-validate.wy-inline-validate-warning .wy-input-context,.wy-menu-vertical li.current>a button.toctree-expand,.wy-menu-vertical li.on a button.toctree-expand,.wy-menu-vertical li button.toctree-expand{font-family:inherit}.fa:before,.icon:before,.rst-content .admonition-title:before,.rst-content .code-block-caption .headerlink:before,.rst-content .eqno .headerlink:before,.rst-content code.download span:first-child:before,.rst-content dl dt .headerlink:before,.rst-content h1 .headerlink:before,.rst-content h2 .headerlink:before,.rst-content h3 .headerlink:before,.rst-content h4 .headerlink:before,.rst-content h5 .headerlink:before,.rst-content h6 .headerlink:before,.rst-content p.caption .headerlink:before,.rst-content p .headerlink:before,.rst-content table>caption .headerlink:before,.rst-content tt.download span:first-child:before,.wy-dropdown .caret:before,.wy-inline-validate.wy-inline-validate-danger .wy-input-context:before,.wy-inline-validate.wy-inline-validate-info .wy-input-context:before,.wy-inline-validate.wy-inline-validate-success .wy-input-context:before,.wy-inline-validate.wy-inline-validate-warning .wy-input-context:before,.wy-menu-vertical li.current>a button.toctree-expand:before,.wy-menu-vertical li.on a button.toctree-expand:before,.wy-menu-vertical li button.toctree-expand:before{font-family:FontAwesome;display:inline-block;font-style:normal;font-weight:400;line-height:1;text-decoration:inherit}.rst-content .code-block-caption a .headerlink,.rst-content .eqno a .headerlink,.rst-content a .admonition-title,.rst-content code.download a span:first-child,.rst-content dl dt a .headerlink,.rst-content h1 a .headerlink,.rst-content h2 a .headerlink,.rst-content h3 a .headerlink,.rst-content h4 a .headerlink,.rst-content h5 a .headerlink,.rst-content h6 a .headerlink,.rst-content p.caption a .headerlink,.rst-content p a .headerlink,.rst-content table>caption a .headerlink,.rst-content tt.download a span:first-child,.wy-menu-vertical li.current>a button.toctree-expand,.wy-menu-vertical li.on a button.toctree-expand,.wy-menu-vertical li a button.toctree-expand,a .fa,a .icon,a .rst-content .admonition-title,a .rst-content .code-block-caption .headerlink,a .rst-content .eqno .headerlink,a .rst-content code.download span:first-child,a .rst-content dl dt .headerlink,a .rst-content h1 .headerlink,a .rst-content h2 .headerlink,a .rst-content h3 .headerlink,a .rst-content h4 .headerlink,a .rst-content h5 .headerlink,a .rst-content h6 .headerlink,a .rst-content p.caption .headerlink,a .rst-content p .headerlink,a .rst-content table>caption .headerlink,a .rst-content tt.download span:first-child,a .wy-menu-vertical li button.toctree-expand{display:inline-block;text-decoration:inherit}.btn .fa,.btn .icon,.btn .rst-content .admonition-title,.btn .rst-content .code-block-caption .headerlink,.btn .rst-content .eqno .headerlink,.btn .rst-content code.download span:first-child,.btn .rst-content dl dt .headerlink,.btn .rst-content h1 .headerlink,.btn .rst-content h2 .headerlink,.btn .rst-content h3 .headerlink,.btn .rst-content h4 .headerlink,.btn .rst-content h5 .headerlink,.btn .rst-content h6 .headerlink,.btn .rst-content p .headerlink,.btn .rst-content table>caption .headerlink,.btn .rst-content tt.download span:first-child,.btn .wy-menu-vertical li.current>a button.toctree-expand,.btn .wy-menu-vertical li.on a button.toctree-expand,.btn .wy-menu-vertical li button.toctree-expand,.nav .fa,.nav .icon,.nav .rst-content .admonition-title,.nav .rst-content .code-block-caption .headerlink,.nav .rst-content .eqno .headerlink,.nav .rst-content code.download span:first-child,.nav .rst-content dl dt .headerlink,.nav .rst-content h1 .headerlink,.nav .rst-content h2 .headerlink,.nav .rst-content h3 .headerlink,.nav .rst-content h4 .headerlink,.nav .rst-content h5 .headerlink,.nav .rst-content h6 .headerlink,.nav .rst-content p .headerlink,.nav .rst-content table>caption .headerlink,.nav .rst-content tt.download span:first-child,.nav .wy-menu-vertical li.current>a button.toctree-expand,.nav .wy-menu-vertical li.on a button.toctree-expand,.nav .wy-menu-vertical li button.toctree-expand,.rst-content .btn .admonition-title,.rst-content .code-block-caption .btn .headerlink,.rst-content .code-block-caption .nav .headerlink,.rst-content .eqno .btn .headerlink,.rst-content .eqno .nav .headerlink,.rst-content .nav .admonition-title,.rst-content code.download .btn span:first-child,.rst-content code.download .nav span:first-child,.rst-content dl dt .btn .headerlink,.rst-content dl dt .nav .headerlink,.rst-content h1 .btn .headerlink,.rst-content h1 .nav .headerlink,.rst-content h2 .btn .headerlink,.rst-content h2 .nav .headerlink,.rst-content h3 .btn .headerlink,.rst-content h3 .nav .headerlink,.rst-content h4 .btn .headerlink,.rst-content h4 .nav .headerlink,.rst-content h5 .btn .headerlink,.rst-content h5 .nav .headerlink,.rst-content h6 .btn .headerlink,.rst-content h6 .nav .headerlink,.rst-content p .btn .headerlink,.rst-content p .nav .headerlink,.rst-content table>caption .btn .headerlink,.rst-content table>caption .nav .headerlink,.rst-content tt.download .btn span:first-child,.rst-content tt.download .nav span:first-child,.wy-menu-vertical li .btn button.toctree-expand,.wy-menu-vertical li.current>a .btn button.toctree-expand,.wy-menu-vertical li.current>a .nav button.toctree-expand,.wy-menu-vertical li .nav button.toctree-expand,.wy-menu-vertical li.on a .btn button.toctree-expand,.wy-menu-vertical li.on a .nav button.toctree-expand{display:inline}.btn .fa-large.icon,.btn .fa.fa-large,.btn .rst-content .code-block-caption .fa-large.headerlink,.btn .rst-content .eqno .fa-large.headerlink,.btn .rst-content .fa-large.admonition-title,.btn .rst-content code.download span.fa-large:first-child,.btn .rst-content dl dt .fa-large.headerlink,.btn .rst-content h1 .fa-large.headerlink,.btn .rst-content h2 .fa-large.headerlink,.btn .rst-content h3 .fa-large.headerlink,.btn .rst-content h4 .fa-large.headerlink,.btn .rst-content h5 .fa-large.headerlink,.btn .rst-content h6 .fa-large.headerlink,.btn .rst-content p .fa-large.headerlink,.btn .rst-content table>caption .fa-large.headerlink,.btn .rst-content tt.download span.fa-large:first-child,.btn .wy-menu-vertical li button.fa-large.toctree-expand,.nav .fa-large.icon,.nav .fa.fa-large,.nav .rst-content .code-block-caption .fa-large.headerlink,.nav .rst-content .eqno .fa-large.headerlink,.nav .rst-content .fa-large.admonition-title,.nav .rst-content code.download span.fa-large:first-child,.nav .rst-content dl dt .fa-large.headerlink,.nav .rst-content h1 .fa-large.headerlink,.nav .rst-content h2 .fa-large.headerlink,.nav .rst-content h3 .fa-large.headerlink,.nav .rst-content h4 .fa-large.headerlink,.nav .rst-content h5 .fa-large.headerlink,.nav .rst-content h6 .fa-large.headerlink,.nav .rst-content p .fa-large.headerlink,.nav .rst-content table>caption .fa-large.headerlink,.nav .rst-content tt.download span.fa-large:first-child,.nav .wy-menu-vertical li button.fa-large.toctree-expand,.rst-content .btn .fa-large.admonition-title,.rst-content .code-block-caption .btn .fa-large.headerlink,.rst-content .code-block-caption .nav .fa-large.headerlink,.rst-content .eqno .btn .fa-large.headerlink,.rst-content .eqno .nav .fa-large.headerlink,.rst-content .nav .fa-large.admonition-title,.rst-content code.download .btn span.fa-large:first-child,.rst-content code.download .nav span.fa-large:first-child,.rst-content dl dt .btn .fa-large.headerlink,.rst-content dl dt .nav .fa-large.headerlink,.rst-content h1 .btn .fa-large.headerlink,.rst-content h1 .nav .fa-large.headerlink,.rst-content h2 .btn .fa-large.headerlink,.rst-content h2 .nav .fa-large.headerlink,.rst-content h3 .btn .fa-large.headerlink,.rst-content h3 .nav .fa-large.headerlink,.rst-content h4 .btn .fa-large.headerlink,.rst-content h4 .nav .fa-large.headerlink,.rst-content h5 .btn .fa-large.headerlink,.rst-content h5 .nav .fa-large.headerlink,.rst-content h6 .btn .fa-large.headerlink,.rst-content h6 .nav .fa-large.headerlink,.rst-content p .btn .fa-large.headerlink,.rst-content p .nav .fa-large.headerlink,.rst-content table>caption .btn .fa-large.headerlink,.rst-content table>caption .nav .fa-large.headerlink,.rst-content tt.download .btn span.fa-large:first-child,.rst-content tt.download .nav span.fa-large:first-child,.wy-menu-vertical li .btn button.fa-large.toctree-expand,.wy-menu-vertical li .nav button.fa-large.toctree-expand{line-height:.9em}.btn .fa-spin.icon,.btn .fa.fa-spin,.btn .rst-content .code-block-caption .fa-spin.headerlink,.btn .rst-content .eqno .fa-spin.headerlink,.btn .rst-content .fa-spin.admonition-title,.btn .rst-content code.download span.fa-spin:first-child,.btn .rst-content dl dt .fa-spin.headerlink,.btn .rst-content h1 .fa-spin.headerlink,.btn .rst-content h2 .fa-spin.headerlink,.btn .rst-content h3 .fa-spin.headerlink,.btn .rst-content h4 .fa-spin.headerlink,.btn .rst-content h5 .fa-spin.headerlink,.btn .rst-content h6 .fa-spin.headerlink,.btn .rst-content p .fa-spin.headerlink,.btn .rst-content table>caption .fa-spin.headerlink,.btn .rst-content tt.download span.fa-spin:first-child,.btn .wy-menu-vertical li button.fa-spin.toctree-expand,.nav .fa-spin.icon,.nav .fa.fa-spin,.nav .rst-content .code-block-caption .fa-spin.headerlink,.nav .rst-content .eqno .fa-spin.headerlink,.nav .rst-content .fa-spin.admonition-title,.nav .rst-content code.download span.fa-spin:first-child,.nav .rst-content dl dt .fa-spin.headerlink,.nav .rst-content h1 .fa-spin.headerlink,.nav .rst-content h2 .fa-spin.headerlink,.nav .rst-content h3 .fa-spin.headerlink,.nav .rst-content h4 .fa-spin.headerlink,.nav .rst-content h5 .fa-spin.headerlink,.nav .rst-content h6 .fa-spin.headerlink,.nav .rst-content p .fa-spin.headerlink,.nav .rst-content table>caption .fa-spin.headerlink,.nav .rst-content tt.download span.fa-spin:first-child,.nav .wy-menu-vertical li button.fa-spin.toctree-expand,.rst-content .btn .fa-spin.admonition-title,.rst-content .code-block-caption .btn .fa-spin.headerlink,.rst-content .code-block-caption .nav .fa-spin.headerlink,.rst-content .eqno .btn .fa-spin.headerlink,.rst-content .eqno .nav .fa-spin.headerlink,.rst-content .nav .fa-spin.admonition-title,.rst-content code.download .btn span.fa-spin:first-child,.rst-content code.download .nav span.fa-spin:first-child,.rst-content dl dt .btn .fa-spin.headerlink,.rst-content dl dt .nav .fa-spin.headerlink,.rst-content h1 .btn .fa-spin.headerlink,.rst-content h1 .nav .fa-spin.headerlink,.rst-content h2 .btn .fa-spin.headerlink,.rst-content h2 .nav .fa-spin.headerlink,.rst-content h3 .btn .fa-spin.headerlink,.rst-content h3 .nav .fa-spin.headerlink,.rst-content h4 .btn .fa-spin.headerlink,.rst-content h4 .nav .fa-spin.headerlink,.rst-content h5 .btn .fa-spin.headerlink,.rst-content h5 .nav .fa-spin.headerlink,.rst-content h6 .btn .fa-spin.headerlink,.rst-content h6 .nav .fa-spin.headerlink,.rst-content p .btn .fa-spin.headerlink,.rst-content p .nav .fa-spin.headerlink,.rst-content table>caption .btn .fa-spin.headerlink,.rst-content table>caption .nav .fa-spin.headerlink,.rst-content tt.download .btn span.fa-spin:first-child,.rst-content tt.download .nav span.fa-spin:first-child,.wy-menu-vertical li .btn button.fa-spin.toctree-expand,.wy-menu-vertical li .nav button.fa-spin.toctree-expand{display:inline-block}.btn.fa:before,.btn.icon:before,.rst-content .btn.admonition-title:before,.rst-content .code-block-caption .btn.headerlink:before,.rst-content .eqno .btn.headerlink:before,.rst-content code.download span.btn:first-child:before,.rst-content dl dt .btn.headerlink:before,.rst-content h1 .btn.headerlink:before,.rst-content h2 .btn.headerlink:before,.rst-content h3 .btn.headerlink:before,.rst-content h4 .btn.headerlink:before,.rst-content h5 .btn.headerlink:before,.rst-content h6 .btn.headerlink:before,.rst-content p .btn.headerlink:before,.rst-content table>caption .btn.headerlink:before,.rst-content tt.download span.btn:first-child:before,.wy-menu-vertical li button.btn.toctree-expand:before{opacity:.5;-webkit-transition:opacity .05s ease-in;-moz-transition:opacity .05s ease-in;transition:opacity .05s ease-in}.btn.fa:hover:before,.btn.icon:hover:before,.rst-content .btn.admonition-title:hover:before,.rst-content .code-block-caption .btn.headerlink:hover:before,.rst-content .eqno .btn.headerlink:hover:before,.rst-content code.download span.btn:first-child:hover:before,.rst-content dl dt .btn.headerlink:hover:before,.rst-content h1 .btn.headerlink:hover:before,.rst-content h2 .btn.headerlink:hover:before,.rst-content h3 .btn.headerlink:hover:before,.rst-content h4 .btn.headerlink:hover:before,.rst-content h5 .btn.headerlink:hover:before,.rst-content h6 .btn.headerlink:hover:before,.rst-content p .btn.headerlink:hover:before,.rst-content table>caption .btn.headerlink:hover:before,.rst-content tt.download span.btn:first-child:hover:before,.wy-menu-vertical li button.btn.toctree-expand:hover:before{opacity:1}.btn-mini .fa:before,.btn-mini .icon:before,.btn-mini .rst-content .admonition-title:before,.btn-mini .rst-content .code-block-caption .headerlink:before,.btn-mini .rst-content .eqno .headerlink:before,.btn-mini .rst-content code.download span:first-child:before,.btn-mini .rst-content dl dt .headerlink:before,.btn-mini .rst-content h1 .headerlink:before,.btn-mini .rst-content h2 .headerlink:before,.btn-mini .rst-content h3 .headerlink:before,.btn-mini .rst-content h4 .headerlink:before,.btn-mini .rst-content h5 .headerlink:before,.btn-mini .rst-content h6 .headerlink:before,.btn-mini .rst-content p .headerlink:before,.btn-mini .rst-content table>caption .headerlink:before,.btn-mini .rst-content tt.download span:first-child:before,.btn-mini .wy-menu-vertical li button.toctree-expand:before,.rst-content .btn-mini .admonition-title:before,.rst-content .code-block-caption .btn-mini .headerlink:before,.rst-content .eqno .btn-mini .headerlink:before,.rst-content code.download .btn-mini span:first-child:before,.rst-content dl dt .btn-mini .headerlink:before,.rst-content h1 .btn-mini .headerlink:before,.rst-content h2 .btn-mini .headerlink:before,.rst-content h3 .btn-mini .headerlink:before,.rst-content h4 .btn-mini .headerlink:before,.rst-content h5 .btn-mini .headerlink:before,.rst-content h6 .btn-mini .headerlink:before,.rst-content p .btn-mini .headerlink:before,.rst-content table>caption .btn-mini .headerlink:before,.rst-content tt.download .btn-mini span:first-child:before,.wy-menu-vertical li .btn-mini button.toctree-expand:before{font-size:14px;vertical-align:-15%}.rst-content .admonition,.rst-content .admonition-todo,.rst-content .attention,.rst-content .caution,.rst-content .danger,.rst-content .error,.rst-content .hint,.rst-content .important,.rst-content .note,.rst-content .seealso,.rst-content .tip,.rst-content .warning,.wy-alert{padding:12px;line-height:24px;margin-bottom:24px;background:#e7f2fa}.rst-content .admonition-title,.wy-alert-title{font-weight:700;display:block;color:#fff;background:#6ab0de;padding:6px 12px;margin:-12px -12px 12px}.rst-content .danger,.rst-content .error,.rst-content .wy-alert-danger.admonition,.rst-content .wy-alert-danger.admonition-todo,.rst-content .wy-alert-danger.attention,.rst-content .wy-alert-danger.caution,.rst-content .wy-alert-danger.hint,.rst-content .wy-alert-danger.important,.rst-content .wy-alert-danger.note,.rst-content .wy-alert-danger.seealso,.rst-content .wy-alert-danger.tip,.rst-content .wy-alert-danger.warning,.wy-alert.wy-alert-danger{background:#fdf3f2}.rst-content .danger .admonition-title,.rst-content .danger .wy-alert-title,.rst-content .error .admonition-title,.rst-content .error .wy-alert-title,.rst-content .wy-alert-danger.admonition-todo .admonition-title,.rst-content .wy-alert-danger.admonition-todo .wy-alert-title,.rst-content .wy-alert-danger.admonition .admonition-title,.rst-content .wy-alert-danger.admonition .wy-alert-title,.rst-content .wy-alert-danger.attention .admonition-title,.rst-content .wy-alert-danger.attention .wy-alert-title,.rst-content .wy-alert-danger.caution .admonition-title,.rst-content .wy-alert-danger.caution .wy-alert-title,.rst-content .wy-alert-danger.hint .admonition-title,.rst-content .wy-alert-danger.hint .wy-alert-title,.rst-content .wy-alert-danger.important .admonition-title,.rst-content .wy-alert-danger.important .wy-alert-title,.rst-content .wy-alert-danger.note .admonition-title,.rst-content .wy-alert-danger.note .wy-alert-title,.rst-content .wy-alert-danger.seealso .admonition-title,.rst-content .wy-alert-danger.seealso .wy-alert-title,.rst-content .wy-alert-danger.tip .admonition-title,.rst-content .wy-alert-danger.tip .wy-alert-title,.rst-content .wy-alert-danger.warning .admonition-title,.rst-content .wy-alert-danger.warning .wy-alert-title,.rst-content .wy-alert.wy-alert-danger .admonition-title,.wy-alert.wy-alert-danger .rst-content .admonition-title,.wy-alert.wy-alert-danger .wy-alert-title{background:#f29f97}.rst-content .admonition-todo,.rst-content .attention,.rst-content .caution,.rst-content .warning,.rst-content .wy-alert-warning.admonition,.rst-content .wy-alert-warning.danger,.rst-content .wy-alert-warning.error,.rst-content .wy-alert-warning.hint,.rst-content .wy-alert-warning.important,.rst-content .wy-alert-warning.note,.rst-content .wy-alert-warning.seealso,.rst-content .wy-alert-warning.tip,.wy-alert.wy-alert-warning{background:#ffedcc}.rst-content .admonition-todo .admonition-title,.rst-content .admonition-todo .wy-alert-title,.rst-content .attention .admonition-title,.rst-content .attention .wy-alert-title,.rst-content .caution .admonition-title,.rst-content .caution .wy-alert-title,.rst-content .warning .admonition-title,.rst-content .warning .wy-alert-title,.rst-content .wy-alert-warning.admonition .admonition-title,.rst-content .wy-alert-warning.admonition .wy-alert-title,.rst-content .wy-alert-warning.danger .admonition-title,.rst-content .wy-alert-warning.danger .wy-alert-title,.rst-content .wy-alert-warning.error .admonition-title,.rst-content .wy-alert-warning.error .wy-alert-title,.rst-content .wy-alert-warning.hint .admonition-title,.rst-content .wy-alert-warning.hint .wy-alert-title,.rst-content .wy-alert-warning.important .admonition-title,.rst-content .wy-alert-warning.important .wy-alert-title,.rst-content .wy-alert-warning.note .admonition-title,.rst-content .wy-alert-warning.note .wy-alert-title,.rst-content .wy-alert-warning.seealso .admonition-title,.rst-content .wy-alert-warning.seealso .wy-alert-title,.rst-content .wy-alert-warning.tip .admonition-title,.rst-content .wy-alert-warning.tip .wy-alert-title,.rst-content .wy-alert.wy-alert-warning .admonition-title,.wy-alert.wy-alert-warning .rst-content .admonition-title,.wy-alert.wy-alert-warning .wy-alert-title{background:#f0b37e}.rst-content .note,.rst-content .seealso,.rst-content .wy-alert-info.admonition,.rst-content .wy-alert-info.admonition-todo,.rst-content .wy-alert-info.attention,.rst-content .wy-alert-info.caution,.rst-content .wy-alert-info.danger,.rst-content .wy-alert-info.error,.rst-content .wy-alert-info.hint,.rst-content .wy-alert-info.important,.rst-content .wy-alert-info.tip,.rst-content .wy-alert-info.warning,.wy-alert.wy-alert-info{background:#e7f2fa}.rst-content .note .admonition-title,.rst-content .note .wy-alert-title,.rst-content .seealso .admonition-title,.rst-content .seealso .wy-alert-title,.rst-content .wy-alert-info.admonition-todo .admonition-title,.rst-content .wy-alert-info.admonition-todo .wy-alert-title,.rst-content .wy-alert-info.admonition .admonition-title,.rst-content .wy-alert-info.admonition .wy-alert-title,.rst-content .wy-alert-info.attention .admonition-title,.rst-content .wy-alert-info.attention .wy-alert-title,.rst-content .wy-alert-info.caution .admonition-title,.rst-content .wy-alert-info.caution .wy-alert-title,.rst-content .wy-alert-info.danger .admonition-title,.rst-content .wy-alert-info.danger .wy-alert-title,.rst-content .wy-alert-info.error .admonition-title,.rst-content .wy-alert-info.error .wy-alert-title,.rst-content .wy-alert-info.hint .admonition-title,.rst-content .wy-alert-info.hint .wy-alert-title,.rst-content .wy-alert-info.important .admonition-title,.rst-content .wy-alert-info.important .wy-alert-title,.rst-content .wy-alert-info.tip .admonition-title,.rst-content .wy-alert-info.tip .wy-alert-title,.rst-content .wy-alert-info.warning .admonition-title,.rst-content .wy-alert-info.warning .wy-alert-title,.rst-content .wy-alert.wy-alert-info .admonition-title,.wy-alert.wy-alert-info .rst-content .admonition-title,.wy-alert.wy-alert-info .wy-alert-title{background:#6ab0de}.rst-content .hint,.rst-content .important,.rst-content .tip,.rst-content .wy-alert-success.admonition,.rst-content .wy-alert-success.admonition-todo,.rst-content .wy-alert-success.attention,.rst-content .wy-alert-success.caution,.rst-content .wy-alert-success.danger,.rst-content .wy-alert-success.error,.rst-content .wy-alert-success.note,.rst-content .wy-alert-success.seealso,.rst-content .wy-alert-success.warning,.wy-alert.wy-alert-success{background:#dbfaf4}.rst-content .hint .admonition-title,.rst-content .hint .wy-alert-title,.rst-content .important .admonition-title,.rst-content .important .wy-alert-title,.rst-content .tip .admonition-title,.rst-content .tip .wy-alert-title,.rst-content .wy-alert-success.admonition-todo .admonition-title,.rst-content .wy-alert-success.admonition-todo .wy-alert-title,.rst-content .wy-alert-success.admonition .admonition-title,.rst-content .wy-alert-success.admonition .wy-alert-title,.rst-content .wy-alert-success.attention .admonition-title,.rst-content .wy-alert-success.attention .wy-alert-title,.rst-content .wy-alert-success.caution .admonition-title,.rst-content .wy-alert-success.caution .wy-alert-title,.rst-content .wy-alert-success.danger .admonition-title,.rst-content .wy-alert-success.danger .wy-alert-title,.rst-content .wy-alert-success.error .admonition-title,.rst-content .wy-alert-success.error .wy-alert-title,.rst-content .wy-alert-success.note .admonition-title,.rst-content .wy-alert-success.note .wy-alert-title,.rst-content .wy-alert-success.seealso .admonition-title,.rst-content .wy-alert-success.seealso .wy-alert-title,.rst-content .wy-alert-success.warning .admonition-title,.rst-content .wy-alert-success.warning .wy-alert-title,.rst-content .wy-alert.wy-alert-success .admonition-title,.wy-alert.wy-alert-success .rst-content .admonition-title,.wy-alert.wy-alert-success .wy-alert-title{background:#1abc9c}.rst-content .wy-alert-neutral.admonition,.rst-content .wy-alert-neutral.admonition-todo,.rst-content .wy-alert-neutral.attention,.rst-content .wy-alert-neutral.caution,.rst-content .wy-alert-neutral.danger,.rst-content .wy-alert-neutral.error,.rst-content .wy-alert-neutral.hint,.rst-content .wy-alert-neutral.important,.rst-content .wy-alert-neutral.note,.rst-content .wy-alert-neutral.seealso,.rst-content .wy-alert-neutral.tip,.rst-content .wy-alert-neutral.warning,.wy-alert.wy-alert-neutral{background:#f3f6f6}.rst-content .wy-alert-neutral.admonition-todo .admonition-title,.rst-content .wy-alert-neutral.admonition-todo .wy-alert-title,.rst-content .wy-alert-neutral.admonition .admonition-title,.rst-content .wy-alert-neutral.admonition .wy-alert-title,.rst-content .wy-alert-neutral.attention .admonition-title,.rst-content .wy-alert-neutral.attention .wy-alert-title,.rst-content .wy-alert-neutral.caution .admonition-title,.rst-content .wy-alert-neutral.caution .wy-alert-title,.rst-content .wy-alert-neutral.danger .admonition-title,.rst-content .wy-alert-neutral.danger .wy-alert-title,.rst-content .wy-alert-neutral.error .admonition-title,.rst-content .wy-alert-neutral.error .wy-alert-title,.rst-content .wy-alert-neutral.hint .admonition-title,.rst-content .wy-alert-neutral.hint .wy-alert-title,.rst-content .wy-alert-neutral.important .admonition-title,.rst-content .wy-alert-neutral.important .wy-alert-title,.rst-content .wy-alert-neutral.note .admonition-title,.rst-content .wy-alert-neutral.note .wy-alert-title,.rst-content .wy-alert-neutral.seealso .admonition-title,.rst-content .wy-alert-neutral.seealso .wy-alert-title,.rst-content .wy-alert-neutral.tip .admonition-title,.rst-content .wy-alert-neutral.tip .wy-alert-title,.rst-content .wy-alert-neutral.warning .admonition-title,.rst-content .wy-alert-neutral.warning .wy-alert-title,.rst-content .wy-alert.wy-alert-neutral .admonition-title,.wy-alert.wy-alert-neutral .rst-content .admonition-title,.wy-alert.wy-alert-neutral .wy-alert-title{color:#404040;background:#e1e4e5}.rst-content .wy-alert-neutral.admonition-todo a,.rst-content .wy-alert-neutral.admonition a,.rst-content .wy-alert-neutral.attention a,.rst-content .wy-alert-neutral.caution a,.rst-content .wy-alert-neutral.danger a,.rst-content .wy-alert-neutral.error a,.rst-content .wy-alert-neutral.hint a,.rst-content .wy-alert-neutral.important a,.rst-content .wy-alert-neutral.note a,.rst-content .wy-alert-neutral.seealso a,.rst-content .wy-alert-neutral.tip a,.rst-content .wy-alert-neutral.warning a,.wy-alert.wy-alert-neutral a{color:#2980b9}.rst-content .admonition-todo p:last-child,.rst-content .admonition p:last-child,.rst-content .attention p:last-child,.rst-content .caution p:last-child,.rst-content .danger p:last-child,.rst-content .error p:last-child,.rst-content .hint p:last-child,.rst-content .important p:last-child,.rst-content .note p:last-child,.rst-content .seealso p:last-child,.rst-content .tip p:last-child,.rst-content .warning p:last-child,.wy-alert p:last-child{margin-bottom:0}.wy-tray-container{position:fixed;bottom:0;left:0;z-index:600}.wy-tray-container li{display:block;width:300px;background:transparent;color:#fff;text-align:center;box-shadow:0 5px 5px 0 rgba(0,0,0,.1);padding:0 24px;min-width:20%;opacity:0;height:0;line-height:56px;overflow:hidden;-webkit-transition:all .3s ease-in;-moz-transition:all .3s ease-in;transition:all .3s ease-in}.wy-tray-container li.wy-tray-item-success{background:#27ae60}.wy-tray-container li.wy-tray-item-info{background:#2980b9}.wy-tray-container li.wy-tray-item-warning{background:#e67e22}.wy-tray-container li.wy-tray-item-danger{background:#e74c3c}.wy-tray-container li.on{opacity:1;height:56px}@media screen and (max-width:768px){.wy-tray-container{bottom:auto;top:0;width:100%}.wy-tray-container li{width:100%}}button{font-size:100%;margin:0;vertical-align:baseline;*vertical-align:middle;cursor:pointer;line-height:normal;-webkit-appearance:button;*overflow:visible}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}button[disabled]{cursor:default}.btn{display:inline-block;border-radius:2px;line-height:normal;white-space:nowrap;text-align:center;cursor:pointer;font-size:100%;padding:6px 12px 8px;color:#fff;border:1px solid rgba(0,0,0,.1);background-color:#27ae60;text-decoration:none;font-weight:400;font-family:Lato,proxima-nova,Helvetica Neue,Arial,sans-serif;box-shadow:inset 0 1px 2px -1px hsla(0,0%,100%,.5),inset 0 -2px 0 0 rgba(0,0,0,.1);outline-none:false;vertical-align:middle;*display:inline;zoom:1;-webkit-user-drag:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-transition:all .1s linear;-moz-transition:all .1s linear;transition:all .1s linear}.btn-hover{background:#2e8ece;color:#fff}.btn:hover{background:#2cc36b;color:#fff}.btn:focus{background:#2cc36b;outline:0}.btn:active{box-shadow:inset 0 -1px 0 0 rgba(0,0,0,.05),inset 0 2px 0 0 rgba(0,0,0,.1);padding:8px 12px 6px}.btn:visited{color:#fff}.btn-disabled,.btn-disabled:active,.btn-disabled:focus,.btn-disabled:hover,.btn:disabled{background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);filter:alpha(opacity=40);opacity:.4;cursor:not-allowed;box-shadow:none}.btn::-moz-focus-inner{padding:0;border:0}.btn-small{font-size:80%}.btn-info{background-color:#2980b9!important}.btn-info:hover{background-color:#2e8ece!important}.btn-neutral{background-color:#f3f6f6!important;color:#404040!important}.btn-neutral:hover{background-color:#e5ebeb!important;color:#404040}.btn-neutral:visited{color:#404040!important}.btn-success{background-color:#27ae60!important}.btn-success:hover{background-color:#295!important}.btn-danger{background-color:#e74c3c!important}.btn-danger:hover{background-color:#ea6153!important}.btn-warning{background-color:#e67e22!important}.btn-warning:hover{background-color:#e98b39!important}.btn-invert{background-color:#222}.btn-invert:hover{background-color:#2f2f2f!important}.btn-link{background-color:transparent!important;color:#2980b9;box-shadow:none;border-color:transparent!important}.btn-link:active,.btn-link:hover{background-color:transparent!important;color:#409ad5!important;box-shadow:none}.btn-link:visited{color:#9b59b6}.wy-btn-group .btn,.wy-control .btn{vertical-align:middle}.wy-btn-group{margin-bottom:24px;*zoom:1}.wy-btn-group:after,.wy-btn-group:before{display:table;content:""}.wy-btn-group:after{clear:both}.wy-dropdown{position:relative;display:inline-block}.wy-dropdown-active .wy-dropdown-menu{display:block}.wy-dropdown-menu{position:absolute;left:0;display:none;float:left;top:100%;min-width:100%;background:#fcfcfc;z-index:100;border:1px solid #cfd7dd;box-shadow:0 2px 2px 0 rgba(0,0,0,.1);padding:12px}.wy-dropdown-menu>dd>a{display:block;clear:both;color:#404040;white-space:nowrap;font-size:90%;padding:0 12px;cursor:pointer}.wy-dropdown-menu>dd>a:hover{background:#2980b9;color:#fff}.wy-dropdown-menu>dd.divider{border-top:1px solid #cfd7dd;margin:6px 0}.wy-dropdown-menu>dd.search{padding-bottom:12px}.wy-dropdown-menu>dd.search input[type=search]{width:100%}.wy-dropdown-menu>dd.call-to-action{background:#e3e3e3;text-transform:uppercase;font-weight:500;font-size:80%}.wy-dropdown-menu>dd.call-to-action:hover{background:#e3e3e3}.wy-dropdown-menu>dd.call-to-action .btn{color:#fff}.wy-dropdown.wy-dropdown-up .wy-dropdown-menu{bottom:100%;top:auto;left:auto;right:0}.wy-dropdown.wy-dropdown-bubble .wy-dropdown-menu{background:#fcfcfc;margin-top:2px}.wy-dropdown.wy-dropdown-bubble .wy-dropdown-menu a{padding:6px 12px}.wy-dropdown.wy-dropdown-bubble .wy-dropdown-menu a:hover{background:#2980b9;color:#fff}.wy-dropdown.wy-dropdown-left .wy-dropdown-menu{right:0;left:auto;text-align:right}.wy-dropdown-arrow:before{content:" ";border-bottom:5px solid #f5f5f5;border-left:5px solid transparent;border-right:5px solid transparent;position:absolute;display:block;top:-4px;left:50%;margin-left:-3px}.wy-dropdown-arrow.wy-dropdown-arrow-left:before{left:11px}.wy-form-stacked select{display:block}.wy-form-aligned .wy-help-inline,.wy-form-aligned input,.wy-form-aligned label,.wy-form-aligned select,.wy-form-aligned textarea{display:inline-block;*display:inline;*zoom:1;vertical-align:middle}.wy-form-aligned .wy-control-group>label{display:inline-block;vertical-align:middle;width:10em;margin:6px 12px 0 0;float:left}.wy-form-aligned .wy-control{float:left}.wy-form-aligned .wy-control label{display:block}.wy-form-aligned .wy-control select{margin-top:6px}fieldset{margin:0}fieldset,legend{border:0;padding:0}legend{width:100%;white-space:normal;margin-bottom:24px;font-size:150%;*margin-left:-7px}label,legend{display:block}label{margin:0 0 .3125em;color:#333;font-size:90%}input,select,textarea{font-size:100%;margin:0;vertical-align:baseline;*vertical-align:middle}.wy-control-group{margin-bottom:24px;max-width:1200px;margin-left:auto;margin-right:auto;*zoom:1}.wy-control-group:after,.wy-control-group:before{display:table;content:""}.wy-control-group:after{clear:both}.wy-control-group.wy-control-group-required>label:after{content:" *";color:#e74c3c}.wy-control-group .wy-form-full,.wy-control-group .wy-form-halves,.wy-control-group .wy-form-thirds{padding-bottom:12px}.wy-control-group .wy-form-full input[type=color],.wy-control-group .wy-form-full input[type=date],.wy-control-group .wy-form-full input[type=datetime-local],.wy-control-group .wy-form-full input[type=datetime],.wy-control-group .wy-form-full input[type=email],.wy-control-group .wy-form-full input[type=month],.wy-control-group .wy-form-full input[type=number],.wy-control-group .wy-form-full input[type=password],.wy-control-group .wy-form-full input[type=search],.wy-control-group .wy-form-full input[type=tel],.wy-control-group .wy-form-full input[type=text],.wy-control-group .wy-form-full input[type=time],.wy-control-group .wy-form-full input[type=url],.wy-control-group .wy-form-full input[type=week],.wy-control-group .wy-form-full select,.wy-control-group .wy-form-halves input[type=color],.wy-control-group .wy-form-halves input[type=date],.wy-control-group .wy-form-halves input[type=datetime-local],.wy-control-group .wy-form-halves input[type=datetime],.wy-control-group .wy-form-halves input[type=email],.wy-control-group .wy-form-halves input[type=month],.wy-control-group .wy-form-halves input[type=number],.wy-control-group .wy-form-halves input[type=password],.wy-control-group .wy-form-halves input[type=search],.wy-control-group .wy-form-halves input[type=tel],.wy-control-group .wy-form-halves input[type=text],.wy-control-group .wy-form-halves input[type=time],.wy-control-group .wy-form-halves input[type=url],.wy-control-group .wy-form-halves input[type=week],.wy-control-group .wy-form-halves select,.wy-control-group .wy-form-thirds input[type=color],.wy-control-group .wy-form-thirds input[type=date],.wy-control-group .wy-form-thirds input[type=datetime-local],.wy-control-group .wy-form-thirds input[type=datetime],.wy-control-group .wy-form-thirds input[type=email],.wy-control-group .wy-form-thirds input[type=month],.wy-control-group .wy-form-thirds input[type=number],.wy-control-group .wy-form-thirds input[type=password],.wy-control-group .wy-form-thirds input[type=search],.wy-control-group .wy-form-thirds input[type=tel],.wy-control-group .wy-form-thirds input[type=text],.wy-control-group .wy-form-thirds input[type=time],.wy-control-group .wy-form-thirds input[type=url],.wy-control-group .wy-form-thirds input[type=week],.wy-control-group .wy-form-thirds select{width:100%}.wy-control-group .wy-form-full{float:left;display:block;width:100%;margin-right:0}.wy-control-group .wy-form-full:last-child{margin-right:0}.wy-control-group .wy-form-halves{float:left;display:block;margin-right:2.35765%;width:48.82117%}.wy-control-group .wy-form-halves:last-child,.wy-control-group .wy-form-halves:nth-of-type(2n){margin-right:0}.wy-control-group .wy-form-halves:nth-of-type(odd){clear:left}.wy-control-group .wy-form-thirds{float:left;display:block;margin-right:2.35765%;width:31.76157%}.wy-control-group .wy-form-thirds:last-child,.wy-control-group .wy-form-thirds:nth-of-type(3n){margin-right:0}.wy-control-group .wy-form-thirds:nth-of-type(3n+1){clear:left}.wy-control-group.wy-control-group-no-input .wy-control,.wy-control-no-input{margin:6px 0 0;font-size:90%}.wy-control-no-input{display:inline-block}.wy-control-group.fluid-input input[type=color],.wy-control-group.fluid-input input[type=date],.wy-control-group.fluid-input input[type=datetime-local],.wy-control-group.fluid-input input[type=datetime],.wy-control-group.fluid-input input[type=email],.wy-control-group.fluid-input input[type=month],.wy-control-group.fluid-input input[type=number],.wy-control-group.fluid-input input[type=password],.wy-control-group.fluid-input input[type=search],.wy-control-group.fluid-input input[type=tel],.wy-control-group.fluid-input input[type=text],.wy-control-group.fluid-input input[type=time],.wy-control-group.fluid-input input[type=url],.wy-control-group.fluid-input input[type=week]{width:100%}.wy-form-message-inline{padding-left:.3em;color:#666;font-size:90%}.wy-form-message{display:block;color:#999;font-size:70%;margin-top:.3125em;font-style:italic}.wy-form-message p{font-size:inherit;font-style:italic;margin-bottom:6px}.wy-form-message p:last-child{margin-bottom:0}input{line-height:normal}input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer;font-family:Lato,proxima-nova,Helvetica Neue,Arial,sans-serif;*overflow:visible}input[type=color],input[type=date],input[type=datetime-local],input[type=datetime],input[type=email],input[type=month],input[type=number],input[type=password],input[type=search],input[type=tel],input[type=text],input[type=time],input[type=url],input[type=week]{-webkit-appearance:none;padding:6px;display:inline-block;border:1px solid #ccc;font-size:80%;font-family:Lato,proxima-nova,Helvetica Neue,Arial,sans-serif;box-shadow:inset 0 1px 3px #ddd;border-radius:0;-webkit-transition:border .3s linear;-moz-transition:border .3s linear;transition:border .3s linear}input[type=datetime-local]{padding:.34375em .625em}input[disabled]{cursor:default}input[type=checkbox],input[type=radio]{padding:0;margin-right:.3125em;*height:13px;*width:13px}input[type=checkbox],input[type=radio],input[type=search]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}input[type=color]:focus,input[type=date]:focus,input[type=datetime-local]:focus,input[type=datetime]:focus,input[type=email]:focus,input[type=month]:focus,input[type=number]:focus,input[type=password]:focus,input[type=search]:focus,input[type=tel]:focus,input[type=text]:focus,input[type=time]:focus,input[type=url]:focus,input[type=week]:focus{outline:0;outline:thin dotted\9;border-color:#333}input.no-focus:focus{border-color:#ccc!important}input[type=checkbox]:focus,input[type=file]:focus,input[type=radio]:focus{outline:thin dotted #333;outline:1px auto #129fea}input[type=color][disabled],input[type=date][disabled],input[type=datetime-local][disabled],input[type=datetime][disabled],input[type=email][disabled],input[type=month][disabled],input[type=number][disabled],input[type=password][disabled],input[type=search][disabled],input[type=tel][disabled],input[type=text][disabled],input[type=time][disabled],input[type=url][disabled],input[type=week][disabled]{cursor:not-allowed;background-color:#fafafa}input:focus:invalid,select:focus:invalid,textarea:focus:invalid{color:#e74c3c;border:1px solid #e74c3c}input:focus:invalid:focus,select:focus:invalid:focus,textarea:focus:invalid:focus{border-color:#e74c3c}input[type=checkbox]:focus:invalid:focus,input[type=file]:focus:invalid:focus,input[type=radio]:focus:invalid:focus{outline-color:#e74c3c}input.wy-input-large{padding:12px;font-size:100%}textarea{overflow:auto;vertical-align:top;width:100%;font-family:Lato,proxima-nova,Helvetica Neue,Arial,sans-serif}select,textarea{padding:.5em .625em;display:inline-block;border:1px solid #ccc;font-size:80%;box-shadow:inset 0 1px 3px #ddd;-webkit-transition:border .3s linear;-moz-transition:border .3s linear;transition:border .3s linear}select{border:1px solid #ccc;background-color:#fff}select[multiple]{height:auto}select:focus,textarea:focus{outline:0}input[readonly],select[disabled],select[readonly],textarea[disabled],textarea[readonly]{cursor:not-allowed;background-color:#fafafa}input[type=checkbox][disabled],input[type=radio][disabled]{cursor:not-allowed}.wy-checkbox,.wy-radio{margin:6px 0;color:#404040;display:block}.wy-checkbox input,.wy-radio input{vertical-align:baseline}.wy-form-message-inline{display:inline-block;*display:inline;*zoom:1;vertical-align:middle}.wy-input-prefix,.wy-input-suffix{white-space:nowrap;padding:6px}.wy-input-prefix .wy-input-context,.wy-input-suffix .wy-input-context{line-height:27px;padding:0 8px;display:inline-block;font-size:80%;background-color:#f3f6f6;border:1px solid #ccc;color:#999}.wy-input-suffix .wy-input-context{border-left:0}.wy-input-prefix .wy-input-context{border-right:0}.wy-switch{position:relative;display:block;height:24px;margin-top:12px;cursor:pointer}.wy-switch:before{left:0;top:0;width:36px;height:12px;background:#ccc}.wy-switch:after,.wy-switch:before{position:absolute;content:"";display:block;border-radius:4px;-webkit-transition:all .2s ease-in-out;-moz-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.wy-switch:after{width:18px;height:18px;background:#999;left:-3px;top:-3px}.wy-switch span{position:absolute;left:48px;display:block;font-size:12px;color:#ccc;line-height:1}.wy-switch.active:before{background:#1e8449}.wy-switch.active:after{left:24px;background:#27ae60}.wy-switch.disabled{cursor:not-allowed;opacity:.8}.wy-control-group.wy-control-group-error .wy-form-message,.wy-control-group.wy-control-group-error>label{color:#e74c3c}.wy-control-group.wy-control-group-error input[type=color],.wy-control-group.wy-control-group-error input[type=date],.wy-control-group.wy-control-group-error input[type=datetime-local],.wy-control-group.wy-control-group-error input[type=datetime],.wy-control-group.wy-control-group-error input[type=email],.wy-control-group.wy-control-group-error input[type=month],.wy-control-group.wy-control-group-error input[type=number],.wy-control-group.wy-control-group-error input[type=password],.wy-control-group.wy-control-group-error input[type=search],.wy-control-group.wy-control-group-error input[type=tel],.wy-control-group.wy-control-group-error input[type=text],.wy-control-group.wy-control-group-error input[type=time],.wy-control-group.wy-control-group-error input[type=url],.wy-control-group.wy-control-group-error input[type=week],.wy-control-group.wy-control-group-error textarea{border:1px solid #e74c3c}.wy-inline-validate{white-space:nowrap}.wy-inline-validate .wy-input-context{padding:.5em .625em;display:inline-block;font-size:80%}.wy-inline-validate.wy-inline-validate-success .wy-input-context{color:#27ae60}.wy-inline-validate.wy-inline-validate-danger .wy-input-context{color:#e74c3c}.wy-inline-validate.wy-inline-validate-warning .wy-input-context{color:#e67e22}.wy-inline-validate.wy-inline-validate-info .wy-input-context{color:#2980b9}.rotate-90{-webkit-transform:rotate(90deg);-moz-transform:rotate(90deg);-ms-transform:rotate(90deg);-o-transform:rotate(90deg);transform:rotate(90deg)}.rotate-180{-webkit-transform:rotate(180deg);-moz-transform:rotate(180deg);-ms-transform:rotate(180deg);-o-transform:rotate(180deg);transform:rotate(180deg)}.rotate-270{-webkit-transform:rotate(270deg);-moz-transform:rotate(270deg);-ms-transform:rotate(270deg);-o-transform:rotate(270deg);transform:rotate(270deg)}.mirror{-webkit-transform:scaleX(-1);-moz-transform:scaleX(-1);-ms-transform:scaleX(-1);-o-transform:scaleX(-1);transform:scaleX(-1)}.mirror.rotate-90{-webkit-transform:scaleX(-1) rotate(90deg);-moz-transform:scaleX(-1) rotate(90deg);-ms-transform:scaleX(-1) rotate(90deg);-o-transform:scaleX(-1) rotate(90deg);transform:scaleX(-1) rotate(90deg)}.mirror.rotate-180{-webkit-transform:scaleX(-1) rotate(180deg);-moz-transform:scaleX(-1) rotate(180deg);-ms-transform:scaleX(-1) rotate(180deg);-o-transform:scaleX(-1) rotate(180deg);transform:scaleX(-1) rotate(180deg)}.mirror.rotate-270{-webkit-transform:scaleX(-1) rotate(270deg);-moz-transform:scaleX(-1) rotate(270deg);-ms-transform:scaleX(-1) rotate(270deg);-o-transform:scaleX(-1) rotate(270deg);transform:scaleX(-1) rotate(270deg)}@media only screen and (max-width:480px){.wy-form button[type=submit]{margin:.7em 0 0}.wy-form input[type=color],.wy-form input[type=date],.wy-form input[type=datetime-local],.wy-form input[type=datetime],.wy-form input[type=email],.wy-form input[type=month],.wy-form input[type=number],.wy-form input[type=password],.wy-form input[type=search],.wy-form input[type=tel],.wy-form input[type=text],.wy-form input[type=time],.wy-form input[type=url],.wy-form input[type=week],.wy-form label{margin-bottom:.3em;display:block}.wy-form input[type=color],.wy-form input[type=date],.wy-form input[type=datetime-local],.wy-form input[type=datetime],.wy-form input[type=email],.wy-form input[type=month],.wy-form input[type=number],.wy-form input[type=password],.wy-form input[type=search],.wy-form input[type=tel],.wy-form input[type=time],.wy-form input[type=url],.wy-form input[type=week]{margin-bottom:0}.wy-form-aligned .wy-control-group label{margin-bottom:.3em;text-align:left;display:block;width:100%}.wy-form-aligned .wy-control{margin:1.5em 0 0}.wy-form-message,.wy-form-message-inline,.wy-form .wy-help-inline{display:block;font-size:80%;padding:6px 0}}@media screen and (max-width:768px){.tablet-hide{display:none}}@media screen and (max-width:480px){.mobile-hide{display:none}}.float-left{float:left}.float-right{float:right}.full-width{width:100%}.rst-content table.docutils,.rst-content table.field-list,.wy-table{border-collapse:collapse;border-spacing:0;empty-cells:show;margin-bottom:24px}.rst-content table.docutils caption,.rst-content table.field-list caption,.wy-table caption{color:#000;font:italic 85%/1 arial,sans-serif;padding:1em 0;text-align:center}.rst-content table.docutils td,.rst-content table.docutils th,.rst-content table.field-list td,.rst-content table.field-list th,.wy-table td,.wy-table th{font-size:90%;margin:0;overflow:visible;padding:8px 16px}.rst-content table.docutils td:first-child,.rst-content table.docutils th:first-child,.rst-content table.field-list td:first-child,.rst-content table.field-list th:first-child,.wy-table td:first-child,.wy-table th:first-child{border-left-width:0}.rst-content table.docutils thead,.rst-content table.field-list thead,.wy-table thead{color:#000;text-align:left;vertical-align:bottom;white-space:nowrap}.rst-content table.docutils thead th,.rst-content table.field-list thead th,.wy-table thead th{font-weight:700;border-bottom:2px solid #e1e4e5}.rst-content table.docutils td,.rst-content table.field-list td,.wy-table td{background-color:transparent;vertical-align:middle}.rst-content table.docutils td p,.rst-content table.field-list td p,.wy-table td p{line-height:18px}.rst-content table.docutils td p:last-child,.rst-content table.field-list td p:last-child,.wy-table td p:last-child{margin-bottom:0}.rst-content table.docutils .wy-table-cell-min,.rst-content table.field-list .wy-table-cell-min,.wy-table .wy-table-cell-min{width:1%;padding-right:0}.rst-content table.docutils .wy-table-cell-min input[type=checkbox],.rst-content table.field-list .wy-table-cell-min input[type=checkbox],.wy-table .wy-table-cell-min input[type=checkbox]{margin:0}.wy-table-secondary{color:grey;font-size:90%}.wy-table-tertiary{color:grey;font-size:80%}.rst-content table.docutils:not(.field-list) tr:nth-child(2n-1) td,.wy-table-backed,.wy-table-odd td,.wy-table-striped tr:nth-child(2n-1) td{background-color:#f3f6f6}.rst-content table.docutils,.wy-table-bordered-all{border:1px solid #e1e4e5}.rst-content table.docutils td,.wy-table-bordered-all td{border-bottom:1px solid #e1e4e5;border-left:1px solid #e1e4e5}.rst-content table.docutils tbody>tr:last-child td,.wy-table-bordered-all tbody>tr:last-child td{border-bottom-width:0}.wy-table-bordered{border:1px solid #e1e4e5}.wy-table-bordered-rows td{border-bottom:1px solid #e1e4e5}.wy-table-bordered-rows tbody>tr:last-child td{border-bottom-width:0}.wy-table-horizontal td,.wy-table-horizontal th{border-width:0 0 1px;border-bottom:1px solid #e1e4e5}.wy-table-horizontal tbody>tr:last-child td{border-bottom-width:0}.wy-table-responsive{margin-bottom:24px;max-width:100%;overflow:auto}.wy-table-responsive table{margin-bottom:0!important}.wy-table-responsive table td,.wy-table-responsive table th{white-space:nowrap}a{color:#2980b9;text-decoration:none;cursor:pointer}a:hover{color:#3091d1}a:visited{color:#9b59b6}html{height:100%}body,html{overflow-x:hidden}body{font-family:Lato,proxima-nova,Helvetica Neue,Arial,sans-serif;font-weight:400;color:#404040;min-height:100%;background:#edf0f2}.wy-text-left{text-align:left}.wy-text-center{text-align:center}.wy-text-right{text-align:right}.wy-text-large{font-size:120%}.wy-text-normal{font-size:100%}.wy-text-small,small{font-size:80%}.wy-text-strike{text-decoration:line-through}.wy-text-warning{color:#e67e22!important}a.wy-text-warning:hover{color:#eb9950!important}.wy-text-info{color:#2980b9!important}a.wy-text-info:hover{color:#409ad5!important}.wy-text-success{color:#27ae60!important}a.wy-text-success:hover{color:#36d278!important}.wy-text-danger{color:#e74c3c!important}a.wy-text-danger:hover{color:#ed7669!important}.wy-text-neutral{color:#404040!important}a.wy-text-neutral:hover{color:#595959!important}.rst-content .toctree-wrapper>p.caption,h1,h2,h3,h4,h5,h6,legend{margin-top:0;font-weight:700;font-family:Roboto Slab,ff-tisa-web-pro,Georgia,Arial,sans-serif}p{line-height:24px;font-size:16px;margin:0 0 24px}h1{font-size:175%}.rst-content .toctree-wrapper>p.caption,h2{font-size:150%}h3{font-size:125%}h4{font-size:115%}h5{font-size:110%}h6{font-size:100%}hr{display:block;height:1px;border:0;border-top:1px solid #e1e4e5;margin:24px 0;padding:0}.rst-content code,.rst-content tt,code{white-space:nowrap;max-width:100%;background:#fff;border:1px solid #e1e4e5;font-size:75%;padding:0 5px;font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,Courier,monospace;color:#e74c3c;overflow-x:auto}.rst-content tt.code-large,code.code-large{font-size:90%}.rst-content .section ul,.rst-content .toctree-wrapper ul,.rst-content section ul,.wy-plain-list-disc,article ul{list-style:disc;line-height:24px;margin-bottom:24px}.rst-content .section ul li,.rst-content .toctree-wrapper ul li,.rst-content section ul li,.wy-plain-list-disc li,article ul li{list-style:disc;margin-left:24px}.rst-content .section ul li p:last-child,.rst-content .section ul li ul,.rst-content .toctree-wrapper ul li p:last-child,.rst-content .toctree-wrapper ul li ul,.rst-content section ul li p:last-child,.rst-content section ul li ul,.wy-plain-list-disc li p:last-child,.wy-plain-list-disc li ul,article ul li p:last-child,article ul li ul{margin-bottom:0}.rst-content .section ul li li,.rst-content .toctree-wrapper ul li li,.rst-content section ul li li,.wy-plain-list-disc li li,article ul li li{list-style:circle}.rst-content .section ul li li li,.rst-content .toctree-wrapper ul li li li,.rst-content section ul li li li,.wy-plain-list-disc li li li,article ul li li li{list-style:square}.rst-content .section ul li ol li,.rst-content .toctree-wrapper ul li ol li,.rst-content section ul li ol li,.wy-plain-list-disc li ol li,article ul li ol li{list-style:decimal}.rst-content .section ol,.rst-content .section ol.arabic,.rst-content .toctree-wrapper ol,.rst-content .toctree-wrapper ol.arabic,.rst-content section ol,.rst-content section ol.arabic,.wy-plain-list-decimal,article ol{list-style:decimal;line-height:24px;margin-bottom:24px}.rst-content .section ol.arabic li,.rst-content .section ol li,.rst-content .toctree-wrapper ol.arabic li,.rst-content .toctree-wrapper ol li,.rst-content section ol.arabic li,.rst-content section ol li,.wy-plain-list-decimal li,article ol li{list-style:decimal;margin-left:24px}.rst-content .section ol.arabic li ul,.rst-content .section ol li p:last-child,.rst-content .section ol li ul,.rst-content .toctree-wrapper ol.arabic li ul,.rst-content .toctree-wrapper ol li p:last-child,.rst-content .toctree-wrapper ol li ul,.rst-content section ol.arabic li ul,.rst-content section ol li p:last-child,.rst-content section ol li ul,.wy-plain-list-decimal li p:last-child,.wy-plain-list-decimal li ul,article ol li p:last-child,article ol li ul{margin-bottom:0}.rst-content .section ol.arabic li ul li,.rst-content .section ol li ul li,.rst-content .toctree-wrapper ol.arabic li ul li,.rst-content .toctree-wrapper ol li ul li,.rst-content section ol.arabic li ul li,.rst-content section ol li ul li,.wy-plain-list-decimal li ul li,article ol li ul li{list-style:disc}.wy-breadcrumbs{*zoom:1}.wy-breadcrumbs:after,.wy-breadcrumbs:before{display:table;content:""}.wy-breadcrumbs:after{clear:both}.wy-breadcrumbs>li{display:inline-block;padding-top:5px}.wy-breadcrumbs>li.wy-breadcrumbs-aside{float:right}.rst-content .wy-breadcrumbs>li code,.rst-content .wy-breadcrumbs>li tt,.wy-breadcrumbs>li .rst-content tt,.wy-breadcrumbs>li code{all:inherit;color:inherit}.breadcrumb-item:before{content:"/";color:#bbb;font-size:13px;padding:0 6px 0 3px}.wy-breadcrumbs-extra{margin-bottom:0;color:#b3b3b3;font-size:80%;display:inline-block}@media screen and (max-width:480px){.wy-breadcrumbs-extra,.wy-breadcrumbs li.wy-breadcrumbs-aside{display:none}}@media print{.wy-breadcrumbs li.wy-breadcrumbs-aside{display:none}}html{font-size:16px}.wy-affix{position:fixed;top:1.618em}.wy-menu a:hover{text-decoration:none}.wy-menu-horiz{*zoom:1}.wy-menu-horiz:after,.wy-menu-horiz:before{display:table;content:""}.wy-menu-horiz:after{clear:both}.wy-menu-horiz li,.wy-menu-horiz ul{display:inline-block}.wy-menu-horiz li:hover{background:hsla(0,0%,100%,.1)}.wy-menu-horiz li.divide-left{border-left:1px solid #404040}.wy-menu-horiz li.divide-right{border-right:1px solid #404040}.wy-menu-horiz a{height:32px;display:inline-block;line-height:32px;padding:0 16px}.wy-menu-vertical{width:300px}.wy-menu-vertical header,.wy-menu-vertical p.caption{color:#55a5d9;height:32px;line-height:32px;padding:0 1.618em;margin:12px 0 0;display:block;font-weight:700;text-transform:uppercase;font-size:85%;white-space:nowrap}.wy-menu-vertical ul{margin-bottom:0}.wy-menu-vertical li.divide-top{border-top:1px solid #404040}.wy-menu-vertical li.divide-bottom{border-bottom:1px solid #404040}.wy-menu-vertical li.current{background:#e3e3e3}.wy-menu-vertical li.current a{color:grey;border-right:1px solid #c9c9c9;padding:.4045em 2.427em}.wy-menu-vertical li.current a:hover{background:#d6d6d6}.rst-content .wy-menu-vertical li tt,.wy-menu-vertical li .rst-content tt,.wy-menu-vertical li code{border:none;background:inherit;color:inherit;padding-left:0;padding-right:0}.wy-menu-vertical li button.toctree-expand{display:block;float:left;margin-left:-1.2em;line-height:18px;color:#4d4d4d;border:none;background:none;padding:0}.wy-menu-vertical li.current>a,.wy-menu-vertical li.on a{color:#404040;font-weight:700;position:relative;background:#fcfcfc;border:none;padding:.4045em 1.618em}.wy-menu-vertical li.current>a:hover,.wy-menu-vertical li.on a:hover{background:#fcfcfc}.wy-menu-vertical li.current>a:hover button.toctree-expand,.wy-menu-vertical li.on a:hover button.toctree-expand{color:grey}.wy-menu-vertical li.current>a button.toctree-expand,.wy-menu-vertical li.on a button.toctree-expand{display:block;line-height:18px;color:#333}.wy-menu-vertical li.toctree-l1.current>a{border-bottom:1px solid #c9c9c9;border-top:1px solid #c9c9c9}.wy-menu-vertical .toctree-l1.current .toctree-l2>ul,.wy-menu-vertical .toctree-l2.current .toctree-l3>ul,.wy-menu-vertical .toctree-l3.current .toctree-l4>ul,.wy-menu-vertical .toctree-l4.current .toctree-l5>ul,.wy-menu-vertical .toctree-l5.current .toctree-l6>ul,.wy-menu-vertical .toctree-l6.current .toctree-l7>ul,.wy-menu-vertical .toctree-l7.current .toctree-l8>ul,.wy-menu-vertical .toctree-l8.current .toctree-l9>ul,.wy-menu-vertical .toctree-l9.current .toctree-l10>ul,.wy-menu-vertical .toctree-l10.current .toctree-l11>ul{display:none}.wy-menu-vertical .toctree-l1.current .current.toctree-l2>ul,.wy-menu-vertical .toctree-l2.current .current.toctree-l3>ul,.wy-menu-vertical .toctree-l3.current .current.toctree-l4>ul,.wy-menu-vertical .toctree-l4.current .current.toctree-l5>ul,.wy-menu-vertical .toctree-l5.current .current.toctree-l6>ul,.wy-menu-vertical .toctree-l6.current .current.toctree-l7>ul,.wy-menu-vertical .toctree-l7.current .current.toctree-l8>ul,.wy-menu-vertical .toctree-l8.current .current.toctree-l9>ul,.wy-menu-vertical .toctree-l9.current .current.toctree-l10>ul,.wy-menu-vertical .toctree-l10.current .current.toctree-l11>ul{display:block}.wy-menu-vertical li.toctree-l3,.wy-menu-vertical li.toctree-l4{font-size:.9em}.wy-menu-vertical li.toctree-l2 a,.wy-menu-vertical li.toctree-l3 a,.wy-menu-vertical li.toctree-l4 a,.wy-menu-vertical li.toctree-l5 a,.wy-menu-vertical li.toctree-l6 a,.wy-menu-vertical li.toctree-l7 a,.wy-menu-vertical li.toctree-l8 a,.wy-menu-vertical li.toctree-l9 a,.wy-menu-vertical li.toctree-l10 a{color:#404040}.wy-menu-vertical li.toctree-l2 a:hover button.toctree-expand,.wy-menu-vertical li.toctree-l3 a:hover button.toctree-expand,.wy-menu-vertical li.toctree-l4 a:hover button.toctree-expand,.wy-menu-vertical li.toctree-l5 a:hover button.toctree-expand,.wy-menu-vertical li.toctree-l6 a:hover button.toctree-expand,.wy-menu-vertical li.toctree-l7 a:hover button.toctree-expand,.wy-menu-vertical li.toctree-l8 a:hover button.toctree-expand,.wy-menu-vertical li.toctree-l9 a:hover button.toctree-expand,.wy-menu-vertical li.toctree-l10 a:hover button.toctree-expand{color:grey}.wy-menu-vertical li.toctree-l2.current li.toctree-l3>a,.wy-menu-vertical li.toctree-l3.current li.toctree-l4>a,.wy-menu-vertical li.toctree-l4.current li.toctree-l5>a,.wy-menu-vertical li.toctree-l5.current li.toctree-l6>a,.wy-menu-vertical li.toctree-l6.current li.toctree-l7>a,.wy-menu-vertical li.toctree-l7.current li.toctree-l8>a,.wy-menu-vertical li.toctree-l8.current li.toctree-l9>a,.wy-menu-vertical li.toctree-l9.current li.toctree-l10>a,.wy-menu-vertical li.toctree-l10.current li.toctree-l11>a{display:block}.wy-menu-vertical li.toctree-l2.current>a{padding:.4045em 2.427em}.wy-menu-vertical li.toctree-l2.current li.toctree-l3>a{padding:.4045em 1.618em .4045em 4.045em}.wy-menu-vertical li.toctree-l3.current>a{padding:.4045em 4.045em}.wy-menu-vertical li.toctree-l3.current li.toctree-l4>a{padding:.4045em 1.618em .4045em 5.663em}.wy-menu-vertical li.toctree-l4.current>a{padding:.4045em 5.663em}.wy-menu-vertical li.toctree-l4.current li.toctree-l5>a{padding:.4045em 1.618em .4045em 7.281em}.wy-menu-vertical li.toctree-l5.current>a{padding:.4045em 7.281em}.wy-menu-vertical li.toctree-l5.current li.toctree-l6>a{padding:.4045em 1.618em .4045em 8.899em}.wy-menu-vertical li.toctree-l6.current>a{padding:.4045em 8.899em}.wy-menu-vertical li.toctree-l6.current li.toctree-l7>a{padding:.4045em 1.618em .4045em 10.517em}.wy-menu-vertical li.toctree-l7.current>a{padding:.4045em 10.517em}.wy-menu-vertical li.toctree-l7.current li.toctree-l8>a{padding:.4045em 1.618em .4045em 12.135em}.wy-menu-vertical li.toctree-l8.current>a{padding:.4045em 12.135em}.wy-menu-vertical li.toctree-l8.current li.toctree-l9>a{padding:.4045em 1.618em .4045em 13.753em}.wy-menu-vertical li.toctree-l9.current>a{padding:.4045em 13.753em}.wy-menu-vertical li.toctree-l9.current li.toctree-l10>a{padding:.4045em 1.618em .4045em 15.371em}.wy-menu-vertical li.toctree-l10.current>a{padding:.4045em 15.371em}.wy-menu-vertical li.toctree-l10.current li.toctree-l11>a{padding:.4045em 1.618em .4045em 16.989em}.wy-menu-vertical li.toctree-l2.current>a,.wy-menu-vertical li.toctree-l2.current li.toctree-l3>a{background:#c9c9c9}.wy-menu-vertical li.toctree-l2 button.toctree-expand{color:#a3a3a3}.wy-menu-vertical li.toctree-l3.current>a,.wy-menu-vertical li.toctree-l3.current li.toctree-l4>a{background:#bdbdbd}.wy-menu-vertical li.toctree-l3 button.toctree-expand{color:#969696}.wy-menu-vertical li.current ul{display:block}.wy-menu-vertical li ul{margin-bottom:0;display:none}.wy-menu-vertical li ul li a{margin-bottom:0;color:#d9d9d9;font-weight:400}.wy-menu-vertical a{line-height:18px;padding:.4045em 1.618em;display:block;position:relative;font-size:90%;color:#d9d9d9}.wy-menu-vertical a:hover{background-color:#4e4a4a;cursor:pointer}.wy-menu-vertical a:hover button.toctree-expand{color:#d9d9d9}.wy-menu-vertical a:active{background-color:#2980b9;cursor:pointer;color:#fff}.wy-menu-vertical a:active button.toctree-expand{color:#fff}.wy-side-nav-search{display:block;width:300px;padding:.809em;margin-bottom:.809em;z-index:200;background-color:#2980b9;text-align:center;color:#fcfcfc}.wy-side-nav-search input[type=text]{width:100%;border-radius:50px;padding:6px 12px;border-color:#2472a4}.wy-side-nav-search img{display:block;margin:auto auto .809em;height:45px;width:45px;background-color:#2980b9;padding:5px;border-radius:100%}.wy-side-nav-search .wy-dropdown>a,.wy-side-nav-search>a{color:#fcfcfc;font-size:100%;font-weight:700;display:inline-block;padding:4px 6px;margin-bottom:.809em;max-width:100%}.wy-side-nav-search .wy-dropdown>a:hover,.wy-side-nav-search .wy-dropdown>aactive,.wy-side-nav-search .wy-dropdown>afocus,.wy-side-nav-search>a:hover,.wy-side-nav-search>aactive,.wy-side-nav-search>afocus{background:hsla(0,0%,100%,.1)}.wy-side-nav-search .wy-dropdown>a img.logo,.wy-side-nav-search>a img.logo{display:block;margin:0 auto;height:auto;width:auto;border-radius:0;max-width:100%;background:transparent}.wy-side-nav-search .wy-dropdown>a.icon,.wy-side-nav-search>a.icon{display:block}.wy-side-nav-search .wy-dropdown>a.icon img.logo,.wy-side-nav-search>a.icon img.logo{margin-top:.85em}.wy-side-nav-search>div.switch-menus{position:relative;display:block;margin-top:-.4045em;margin-bottom:.809em;font-weight:400;color:hsla(0,0%,100%,.3)}.wy-side-nav-search>div.switch-menus>div.language-switch,.wy-side-nav-search>div.switch-menus>div.version-switch{display:inline-block;padding:.2em}.wy-side-nav-search>div.switch-menus>div.language-switch select,.wy-side-nav-search>div.switch-menus>div.version-switch select{display:inline-block;margin-right:-2rem;padding-right:2rem;max-width:240px;text-align-last:center;background:none;border:none;border-radius:0;box-shadow:none;font-family:Lato,proxima-nova,Helvetica Neue,Arial,sans-serif;font-size:1em;font-weight:400;color:hsla(0,0%,100%,.3);cursor:pointer;appearance:none;-webkit-appearance:none;-moz-appearance:none}.wy-side-nav-search>div.switch-menus>div.language-switch select:active,.wy-side-nav-search>div.switch-menus>div.language-switch select:focus,.wy-side-nav-search>div.switch-menus>div.language-switch select:hover,.wy-side-nav-search>div.switch-menus>div.version-switch select:active,.wy-side-nav-search>div.switch-menus>div.version-switch select:focus,.wy-side-nav-search>div.switch-menus>div.version-switch select:hover{background:hsla(0,0%,100%,.1);color:hsla(0,0%,100%,.5)}.wy-side-nav-search>div.switch-menus>div.language-switch select option,.wy-side-nav-search>div.switch-menus>div.version-switch select option{color:#000}.wy-side-nav-search>div.switch-menus>div.language-switch:has(>select):after,.wy-side-nav-search>div.switch-menus>div.version-switch:has(>select):after{display:inline-block;width:1.5em;height:100%;padding:.1em;content:"\f0d7";font-size:1em;line-height:1.2em;font-family:FontAwesome;text-align:center;pointer-events:none;box-sizing:border-box}.wy-nav .wy-menu-vertical header{color:#2980b9}.wy-nav .wy-menu-vertical a{color:#b3b3b3}.wy-nav .wy-menu-vertical a:hover{background-color:#2980b9;color:#fff}[data-menu-wrap]{-webkit-transition:all .2s ease-in;-moz-transition:all .2s ease-in;transition:all .2s ease-in;position:absolute;opacity:1;width:100%;opacity:0}[data-menu-wrap].move-center{left:0;right:auto;opacity:1}[data-menu-wrap].move-left{right:auto;left:-100%;opacity:0}[data-menu-wrap].move-right{right:-100%;left:auto;opacity:0}.wy-body-for-nav{background:#fcfcfc}.wy-grid-for-nav{position:absolute;width:100%;height:100%}.wy-nav-side{position:fixed;top:0;bottom:0;left:0;padding-bottom:2em;width:300px;overflow-x:hidden;overflow-y:hidden;min-height:100%;color:#9b9b9b;background:#343131;z-index:200}.wy-side-scroll{width:320px;position:relative;overflow-x:hidden;overflow-y:scroll;height:100%}.wy-nav-top{display:none;background:#2980b9;color:#fff;padding:.4045em .809em;position:relative;line-height:50px;text-align:center;font-size:100%;*zoom:1}.wy-nav-top:after,.wy-nav-top:before{display:table;content:""}.wy-nav-top:after{clear:both}.wy-nav-top a{color:#fff;font-weight:700}.wy-nav-top img{margin-right:12px;height:45px;width:45px;background-color:#2980b9;padding:5px;border-radius:100%}.wy-nav-top i{font-size:30px;float:left;cursor:pointer;padding-top:inherit}.wy-nav-content-wrap{margin-left:300px;background:#fcfcfc;min-height:100%}.wy-nav-content{padding:1.618em 3.236em;height:100%;max-width:800px;margin:auto}.wy-body-mask{position:fixed;width:100%;height:100%;background:rgba(0,0,0,.2);display:none;z-index:499}.wy-body-mask.on{display:block}footer{color:grey}footer p{margin-bottom:12px}.rst-content footer span.commit tt,footer span.commit .rst-content tt,footer span.commit code{padding:0;font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,Courier,monospace;font-size:1em;background:none;border:none;color:grey}.rst-footer-buttons{*zoom:1}.rst-footer-buttons:after,.rst-footer-buttons:before{width:100%;display:table;content:""}.rst-footer-buttons:after{clear:both}.rst-breadcrumbs-buttons{margin-top:12px;*zoom:1}.rst-breadcrumbs-buttons:after,.rst-breadcrumbs-buttons:before{display:table;content:""}.rst-breadcrumbs-buttons:after{clear:both}#search-results .search li{margin-bottom:24px;border-bottom:1px solid #e1e4e5;padding-bottom:24px}#search-results .search li:first-child{border-top:1px solid #e1e4e5;padding-top:24px}#search-results .search li a{font-size:120%;margin-bottom:12px;display:inline-block}#search-results .context{color:grey;font-size:90%}.genindextable li>ul{margin-left:24px}@media screen and (max-width:768px){.wy-body-for-nav{background:#fcfcfc}.wy-nav-top{display:block}.wy-nav-side{left:-300px}.wy-nav-side.shift{width:85%;left:0}.wy-menu.wy-menu-vertical,.wy-side-nav-search,.wy-side-scroll{width:auto}.wy-nav-content-wrap{margin-left:0}.wy-nav-content-wrap .wy-nav-content{padding:1.618em}.wy-nav-content-wrap.shift{position:fixed;min-width:100%;left:85%;top:0;height:100%;overflow:hidden}}@media screen and (min-width:1100px){.wy-nav-content-wrap{background:rgba(0,0,0,.05)}.wy-nav-content{margin:0;background:#fcfcfc}}@media print{.rst-versions,.wy-nav-side,footer{display:none}.wy-nav-content-wrap{margin-left:0}}.rst-versions{position:fixed;bottom:0;left:0;width:300px;color:#fcfcfc;background:#1f1d1d;font-family:Lato,proxima-nova,Helvetica Neue,Arial,sans-serif;z-index:400}.rst-versions a{color:#2980b9;text-decoration:none}.rst-versions .rst-badge-small{display:none}.rst-versions .rst-current-version{padding:12px;background-color:#272525;display:block;text-align:right;font-size:90%;cursor:pointer;color:#27ae60;*zoom:1}.rst-versions .rst-current-version:after,.rst-versions .rst-current-version:before{display:table;content:""}.rst-versions .rst-current-version:after{clear:both}.rst-content .code-block-caption .rst-versions .rst-current-version .headerlink,.rst-content .eqno .rst-versions .rst-current-version .headerlink,.rst-content .rst-versions .rst-current-version .admonition-title,.rst-content code.download .rst-versions .rst-current-version span:first-child,.rst-content dl dt .rst-versions .rst-current-version .headerlink,.rst-content h1 .rst-versions .rst-current-version .headerlink,.rst-content h2 .rst-versions .rst-current-version .headerlink,.rst-content h3 .rst-versions .rst-current-version .headerlink,.rst-content h4 .rst-versions .rst-current-version .headerlink,.rst-content h5 .rst-versions .rst-current-version .headerlink,.rst-content h6 .rst-versions .rst-current-version .headerlink,.rst-content p .rst-versions .rst-current-version .headerlink,.rst-content table>caption .rst-versions .rst-current-version .headerlink,.rst-content tt.download .rst-versions .rst-current-version span:first-child,.rst-versions .rst-current-version .fa,.rst-versions .rst-current-version .icon,.rst-versions .rst-current-version .rst-content .admonition-title,.rst-versions .rst-current-version .rst-content .code-block-caption .headerlink,.rst-versions .rst-current-version .rst-content .eqno .headerlink,.rst-versions .rst-current-version .rst-content code.download span:first-child,.rst-versions .rst-current-version .rst-content dl dt .headerlink,.rst-versions .rst-current-version .rst-content h1 .headerlink,.rst-versions .rst-current-version .rst-content h2 .headerlink,.rst-versions .rst-current-version .rst-content h3 .headerlink,.rst-versions .rst-current-version .rst-content h4 .headerlink,.rst-versions .rst-current-version .rst-content h5 .headerlink,.rst-versions .rst-current-version .rst-content h6 .headerlink,.rst-versions .rst-current-version .rst-content p .headerlink,.rst-versions .rst-current-version .rst-content table>caption .headerlink,.rst-versions .rst-current-version .rst-content tt.download span:first-child,.rst-versions .rst-current-version .wy-menu-vertical li button.toctree-expand,.wy-menu-vertical li .rst-versions .rst-current-version button.toctree-expand{color:#fcfcfc}.rst-versions .rst-current-version .fa-book,.rst-versions .rst-current-version .icon-book{float:left}.rst-versions .rst-current-version.rst-out-of-date{background-color:#e74c3c;color:#fff}.rst-versions .rst-current-version.rst-active-old-version{background-color:#f1c40f;color:#000}.rst-versions.shift-up{height:auto;max-height:100%;overflow-y:scroll}.rst-versions.shift-up .rst-other-versions{display:block}.rst-versions .rst-other-versions{font-size:90%;padding:12px;color:grey;display:none}.rst-versions .rst-other-versions hr{display:block;height:1px;border:0;margin:20px 0;padding:0;border-top:1px solid #413d3d}.rst-versions .rst-other-versions dd{display:inline-block;margin:0}.rst-versions .rst-other-versions dd a{display:inline-block;padding:6px;color:#fcfcfc}.rst-versions .rst-other-versions .rtd-current-item{font-weight:700}.rst-versions.rst-badge{width:auto;bottom:20px;right:20px;left:auto;border:none;max-width:300px;max-height:90%}.rst-versions.rst-badge .fa-book,.rst-versions.rst-badge .icon-book{float:none;line-height:30px}.rst-versions.rst-badge.shift-up .rst-current-version{text-align:right}.rst-versions.rst-badge.shift-up .rst-current-version .fa-book,.rst-versions.rst-badge.shift-up .rst-current-version .icon-book{float:left}.rst-versions.rst-badge>.rst-current-version{width:auto;height:30px;line-height:30px;padding:0 6px;display:block;text-align:center}@media screen and (max-width:768px){.rst-versions{width:85%;display:none}.rst-versions.shift{display:block}}#flyout-search-form{padding:6px}.rst-content .toctree-wrapper>p.caption,.rst-content h1,.rst-content h2,.rst-content h3,.rst-content h4,.rst-content h5,.rst-content h6{margin-bottom:24px}.rst-content img{max-width:100%;height:auto}.rst-content div.figure,.rst-content figure{margin-bottom:24px}.rst-content div.figure .caption-text,.rst-content figure .caption-text{font-style:italic}.rst-content div.figure p:last-child.caption,.rst-content figure p:last-child.caption{margin-bottom:0}.rst-content div.figure.align-center,.rst-content figure.align-center{text-align:center}.rst-content .section>a>img,.rst-content .section>img,.rst-content section>a>img,.rst-content section>img{margin-bottom:24px}.rst-content abbr[title]{text-decoration:none}.rst-content.style-external-links a.reference.external:after{font-family:FontAwesome;content:"\f08e";color:#b3b3b3;vertical-align:super;font-size:60%;margin:0 .2em}.rst-content blockquote{margin-left:24px;line-height:24px;margin-bottom:24px}.rst-content pre.literal-block{white-space:pre;margin:0;padding:12px;font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,Courier,monospace;display:block;overflow:auto}.rst-content div[class^=highlight],.rst-content pre.literal-block{border:1px solid #e1e4e5;overflow-x:auto;margin:1px 0 24px}.rst-content div[class^=highlight] div[class^=highlight],.rst-content pre.literal-block div[class^=highlight]{padding:0;border:none;margin:0}.rst-content div[class^=highlight] td.code{width:100%}.rst-content .linenodiv pre{border-right:1px solid #e6e9ea;margin:0;padding:12px;font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,Courier,monospace;user-select:none;pointer-events:none}.rst-content div[class^=highlight] pre{white-space:pre;margin:0;padding:12px;display:block;overflow:auto}.rst-content div[class^=highlight] pre .hll{display:block;margin:0 -12px;padding:0 12px}.rst-content .linenodiv pre,.rst-content div[class^=highlight] pre,.rst-content pre.literal-block{font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,Courier,monospace;font-size:12px;line-height:1.4}.rst-content div.highlight .gp,.rst-content div.highlight span.linenos{user-select:none;pointer-events:none}.rst-content div.highlight span.linenos{display:inline-block;padding-left:0;padding-right:12px;margin-right:12px;border-right:1px solid #e6e9ea}.rst-content .code-block-caption{font-style:italic;font-size:85%;line-height:1;padding:1em 0;text-align:center}@media print{.rst-content .codeblock,.rst-content div[class^=highlight],.rst-content div[class^=highlight] pre{white-space:pre-wrap}}.rst-content .admonition,.rst-content .admonition-todo,.rst-content .attention,.rst-content .caution,.rst-content .danger,.rst-content .error,.rst-content .hint,.rst-content .important,.rst-content .note,.rst-content .seealso,.rst-content .tip,.rst-content .warning{clear:both}.rst-content .admonition-todo .last,.rst-content .admonition-todo>:last-child,.rst-content .admonition .last,.rst-content .admonition>:last-child,.rst-content .attention .last,.rst-content .attention>:last-child,.rst-content .caution .last,.rst-content .caution>:last-child,.rst-content .danger .last,.rst-content .danger>:last-child,.rst-content .error .last,.rst-content .error>:last-child,.rst-content .hint .last,.rst-content .hint>:last-child,.rst-content .important .last,.rst-content .important>:last-child,.rst-content .note .last,.rst-content .note>:last-child,.rst-content .seealso .last,.rst-content .seealso>:last-child,.rst-content .tip .last,.rst-content .tip>:last-child,.rst-content .warning .last,.rst-content .warning>:last-child{margin-bottom:0}.rst-content .admonition-title:before{margin-right:4px}.rst-content .admonition table{border-color:rgba(0,0,0,.1)}.rst-content .admonition table td,.rst-content .admonition table th{background:transparent!important;border-color:rgba(0,0,0,.1)!important}.rst-content .section ol.loweralpha,.rst-content .section ol.loweralpha>li,.rst-content .toctree-wrapper ol.loweralpha,.rst-content .toctree-wrapper ol.loweralpha>li,.rst-content section ol.loweralpha,.rst-content section ol.loweralpha>li{list-style:lower-alpha}.rst-content .section ol.upperalpha,.rst-content .section ol.upperalpha>li,.rst-content .toctree-wrapper ol.upperalpha,.rst-content .toctree-wrapper ol.upperalpha>li,.rst-content section ol.upperalpha,.rst-content section ol.upperalpha>li{list-style:upper-alpha}.rst-content .section ol li>*,.rst-content .section ul li>*,.rst-content .toctree-wrapper ol li>*,.rst-content .toctree-wrapper ul li>*,.rst-content section ol li>*,.rst-content section ul li>*{margin-top:12px;margin-bottom:12px}.rst-content .section ol li>:first-child,.rst-content .section ul li>:first-child,.rst-content .toctree-wrapper ol li>:first-child,.rst-content .toctree-wrapper ul li>:first-child,.rst-content section ol li>:first-child,.rst-content section ul li>:first-child{margin-top:0}.rst-content .section ol li>p,.rst-content .section ol li>p:last-child,.rst-content .section ul li>p,.rst-content .section ul li>p:last-child,.rst-content .toctree-wrapper ol li>p,.rst-content .toctree-wrapper ol li>p:last-child,.rst-content .toctree-wrapper ul li>p,.rst-content .toctree-wrapper ul li>p:last-child,.rst-content section ol li>p,.rst-content section ol li>p:last-child,.rst-content section ul li>p,.rst-content section ul li>p:last-child{margin-bottom:12px}.rst-content .section ol li>p:only-child,.rst-content .section ol li>p:only-child:last-child,.rst-content .section ul li>p:only-child,.rst-content .section ul li>p:only-child:last-child,.rst-content .toctree-wrapper ol li>p:only-child,.rst-content .toctree-wrapper ol li>p:only-child:last-child,.rst-content .toctree-wrapper ul li>p:only-child,.rst-content .toctree-wrapper ul li>p:only-child:last-child,.rst-content section ol li>p:only-child,.rst-content section ol li>p:only-child:last-child,.rst-content section ul li>p:only-child,.rst-content section ul li>p:only-child:last-child{margin-bottom:0}.rst-content .section ol li>ol,.rst-content .section ol li>ul,.rst-content .section ul li>ol,.rst-content .section ul li>ul,.rst-content .toctree-wrapper ol li>ol,.rst-content .toctree-wrapper ol li>ul,.rst-content .toctree-wrapper ul li>ol,.rst-content .toctree-wrapper ul li>ul,.rst-content section ol li>ol,.rst-content section ol li>ul,.rst-content section ul li>ol,.rst-content section ul li>ul{margin-bottom:12px}.rst-content .section ol.simple li>*,.rst-content .section ol.simple li ol,.rst-content .section ol.simple li ul,.rst-content .section ul.simple li>*,.rst-content .section ul.simple li ol,.rst-content .section ul.simple li ul,.rst-content .toctree-wrapper ol.simple li>*,.rst-content .toctree-wrapper ol.simple li ol,.rst-content .toctree-wrapper ol.simple li ul,.rst-content .toctree-wrapper ul.simple li>*,.rst-content .toctree-wrapper ul.simple li ol,.rst-content .toctree-wrapper ul.simple li ul,.rst-content section ol.simple li>*,.rst-content section ol.simple li ol,.rst-content section ol.simple li ul,.rst-content section ul.simple li>*,.rst-content section ul.simple li ol,.rst-content section ul.simple li ul{margin-top:0;margin-bottom:0}.rst-content .line-block{margin-left:0;margin-bottom:24px;line-height:24px}.rst-content .line-block .line-block{margin-left:24px;margin-bottom:0}.rst-content .topic-title{font-weight:700;margin-bottom:12px}.rst-content .toc-backref{color:#404040}.rst-content .align-right{float:right;margin:0 0 24px 24px}.rst-content .align-left{float:left;margin:0 24px 24px 0}.rst-content .align-center{margin:auto}.rst-content .align-center:not(table){display:block}.rst-content .code-block-caption .headerlink,.rst-content .eqno .headerlink,.rst-content .toctree-wrapper>p.caption .headerlink,.rst-content dl dt .headerlink,.rst-content h1 .headerlink,.rst-content h2 .headerlink,.rst-content h3 .headerlink,.rst-content h4 .headerlink,.rst-content h5 .headerlink,.rst-content h6 .headerlink,.rst-content p.caption .headerlink,.rst-content p .headerlink,.rst-content table>caption .headerlink{opacity:0;font-size:14px;font-family:FontAwesome;margin-left:.5em}.rst-content .code-block-caption .headerlink:focus,.rst-content .code-block-caption:hover .headerlink,.rst-content .eqno .headerlink:focus,.rst-content .eqno:hover .headerlink,.rst-content .toctree-wrapper>p.caption .headerlink:focus,.rst-content .toctree-wrapper>p.caption:hover .headerlink,.rst-content dl dt .headerlink:focus,.rst-content dl dt:hover .headerlink,.rst-content h1 .headerlink:focus,.rst-content h1:hover .headerlink,.rst-content h2 .headerlink:focus,.rst-content h2:hover .headerlink,.rst-content h3 .headerlink:focus,.rst-content h3:hover .headerlink,.rst-content h4 .headerlink:focus,.rst-content h4:hover .headerlink,.rst-content h5 .headerlink:focus,.rst-content h5:hover .headerlink,.rst-content h6 .headerlink:focus,.rst-content h6:hover .headerlink,.rst-content p.caption .headerlink:focus,.rst-content p.caption:hover .headerlink,.rst-content p .headerlink:focus,.rst-content p:hover .headerlink,.rst-content table>caption .headerlink:focus,.rst-content table>caption:hover .headerlink{opacity:1}.rst-content p a{overflow-wrap:anywhere}.rst-content .wy-table td p,.rst-content .wy-table td ul,.rst-content .wy-table th p,.rst-content .wy-table th ul,.rst-content table.docutils td p,.rst-content table.docutils td ul,.rst-content table.docutils th p,.rst-content table.docutils th ul,.rst-content table.field-list td p,.rst-content table.field-list td ul,.rst-content table.field-list th p,.rst-content table.field-list th ul{font-size:inherit}.rst-content .btn:focus{outline:2px solid}.rst-content table>caption .headerlink:after{font-size:12px}.rst-content .centered{text-align:center}.rst-content .sidebar{float:right;width:40%;display:block;margin:0 0 24px 24px;padding:24px;background:#f3f6f6;border:1px solid #e1e4e5}.rst-content .sidebar dl,.rst-content .sidebar p,.rst-content .sidebar ul{font-size:90%}.rst-content .sidebar .last,.rst-content .sidebar>:last-child{margin-bottom:0}.rst-content .sidebar .sidebar-title{display:block;font-family:Roboto Slab,ff-tisa-web-pro,Georgia,Arial,sans-serif;font-weight:700;background:#e1e4e5;padding:6px 12px;margin:-24px -24px 24px;font-size:100%}.rst-content .highlighted{background:#f1c40f;box-shadow:0 0 0 2px #f1c40f;display:inline;font-weight:700}.rst-content .citation-reference,.rst-content .footnote-reference{vertical-align:baseline;position:relative;top:-.4em;line-height:0;font-size:90%}.rst-content .citation-reference>span.fn-bracket,.rst-content .footnote-reference>span.fn-bracket{display:none}.rst-content .hlist{width:100%}.rst-content dl dt span.classifier:before{content:" : "}.rst-content dl dt span.classifier-delimiter{display:none!important}html.writer-html4 .rst-content table.docutils.citation,html.writer-html4 .rst-content table.docutils.footnote{background:none;border:none}html.writer-html4 .rst-content table.docutils.citation td,html.writer-html4 .rst-content table.docutils.citation tr,html.writer-html4 .rst-content table.docutils.footnote td,html.writer-html4 .rst-content table.docutils.footnote tr{border:none;background-color:transparent!important;white-space:normal}html.writer-html4 .rst-content table.docutils.citation td.label,html.writer-html4 .rst-content table.docutils.footnote td.label{padding-left:0;padding-right:0;vertical-align:top}html.writer-html5 .rst-content dl.citation,html.writer-html5 .rst-content dl.field-list,html.writer-html5 .rst-content dl.footnote{display:grid;grid-template-columns:auto minmax(80%,95%)}html.writer-html5 .rst-content dl.citation>dt,html.writer-html5 .rst-content dl.field-list>dt,html.writer-html5 .rst-content dl.footnote>dt{display:inline-grid;grid-template-columns:max-content auto}html.writer-html5 .rst-content aside.citation,html.writer-html5 .rst-content aside.footnote,html.writer-html5 .rst-content div.citation{display:grid;grid-template-columns:auto auto minmax(.65rem,auto) minmax(40%,95%)}html.writer-html5 .rst-content aside.citation>span.label,html.writer-html5 .rst-content aside.footnote>span.label,html.writer-html5 .rst-content div.citation>span.label{grid-column-start:1;grid-column-end:2}html.writer-html5 .rst-content aside.citation>span.backrefs,html.writer-html5 .rst-content aside.footnote>span.backrefs,html.writer-html5 .rst-content div.citation>span.backrefs{grid-column-start:2;grid-column-end:3;grid-row-start:1;grid-row-end:3}html.writer-html5 .rst-content aside.citation>p,html.writer-html5 .rst-content aside.footnote>p,html.writer-html5 .rst-content div.citation>p{grid-column-start:4;grid-column-end:5}html.writer-html5 .rst-content dl.citation,html.writer-html5 .rst-content dl.field-list,html.writer-html5 .rst-content dl.footnote{margin-bottom:24px}html.writer-html5 .rst-content dl.citation>dt,html.writer-html5 .rst-content dl.field-list>dt,html.writer-html5 .rst-content dl.footnote>dt{padding-left:1rem}html.writer-html5 .rst-content dl.citation>dd,html.writer-html5 .rst-content dl.citation>dt,html.writer-html5 .rst-content dl.field-list>dd,html.writer-html5 .rst-content dl.field-list>dt,html.writer-html5 .rst-content dl.footnote>dd,html.writer-html5 .rst-content dl.footnote>dt{margin-bottom:0}html.writer-html5 .rst-content dl.citation,html.writer-html5 .rst-content dl.footnote{font-size:.9rem}html.writer-html5 .rst-content dl.citation>dt,html.writer-html5 .rst-content dl.footnote>dt{margin:0 .5rem .5rem 0;line-height:1.2rem;word-break:break-all;font-weight:400}html.writer-html5 .rst-content dl.citation>dt>span.brackets:before,html.writer-html5 .rst-content dl.footnote>dt>span.brackets:before{content:"["}html.writer-html5 .rst-content dl.citation>dt>span.brackets:after,html.writer-html5 .rst-content dl.footnote>dt>span.brackets:after{content:"]"}html.writer-html5 .rst-content dl.citation>dt>span.fn-backref,html.writer-html5 .rst-content dl.footnote>dt>span.fn-backref{text-align:left;font-style:italic;margin-left:.65rem;word-break:break-word;word-spacing:-.1rem;max-width:5rem}html.writer-html5 .rst-content dl.citation>dt>span.fn-backref>a,html.writer-html5 .rst-content dl.footnote>dt>span.fn-backref>a{word-break:keep-all}html.writer-html5 .rst-content dl.citation>dt>span.fn-backref>a:not(:first-child):before,html.writer-html5 .rst-content dl.footnote>dt>span.fn-backref>a:not(:first-child):before{content:" "}html.writer-html5 .rst-content dl.citation>dd,html.writer-html5 .rst-content dl.footnote>dd{margin:0 0 .5rem;line-height:1.2rem}html.writer-html5 .rst-content dl.citation>dd p,html.writer-html5 .rst-content dl.footnote>dd p{font-size:.9rem}html.writer-html5 .rst-content aside.citation,html.writer-html5 .rst-content aside.footnote,html.writer-html5 .rst-content div.citation{padding-left:1rem;padding-right:1rem;font-size:.9rem;line-height:1.2rem}html.writer-html5 .rst-content aside.citation p,html.writer-html5 .rst-content aside.footnote p,html.writer-html5 .rst-content div.citation p{font-size:.9rem;line-height:1.2rem;margin-bottom:12px}html.writer-html5 .rst-content aside.citation span.backrefs,html.writer-html5 .rst-content aside.footnote span.backrefs,html.writer-html5 .rst-content div.citation span.backrefs{text-align:left;font-style:italic;margin-left:.65rem;word-break:break-word;word-spacing:-.1rem;max-width:5rem}html.writer-html5 .rst-content aside.citation span.backrefs>a,html.writer-html5 .rst-content aside.footnote span.backrefs>a,html.writer-html5 .rst-content div.citation span.backrefs>a{word-break:keep-all}html.writer-html5 .rst-content aside.citation span.backrefs>a:not(:first-child):before,html.writer-html5 .rst-content aside.footnote span.backrefs>a:not(:first-child):before,html.writer-html5 .rst-content div.citation span.backrefs>a:not(:first-child):before{content:" "}html.writer-html5 .rst-content aside.citation span.label,html.writer-html5 .rst-content aside.footnote span.label,html.writer-html5 .rst-content div.citation span.label{line-height:1.2rem}html.writer-html5 .rst-content aside.citation-list,html.writer-html5 .rst-content aside.footnote-list,html.writer-html5 .rst-content div.citation-list{margin-bottom:24px}html.writer-html5 .rst-content dl.option-list kbd{font-size:.9rem}.rst-content table.docutils.footnote,html.writer-html4 .rst-content table.docutils.citation,html.writer-html5 .rst-content aside.footnote,html.writer-html5 .rst-content aside.footnote-list aside.footnote,html.writer-html5 .rst-content div.citation-list>div.citation,html.writer-html5 .rst-content dl.citation,html.writer-html5 .rst-content dl.footnote{color:grey}.rst-content table.docutils.footnote code,.rst-content table.docutils.footnote tt,html.writer-html4 .rst-content table.docutils.citation code,html.writer-html4 .rst-content table.docutils.citation tt,html.writer-html5 .rst-content aside.footnote-list aside.footnote code,html.writer-html5 .rst-content aside.footnote-list aside.footnote tt,html.writer-html5 .rst-content aside.footnote code,html.writer-html5 .rst-content aside.footnote tt,html.writer-html5 .rst-content div.citation-list>div.citation code,html.writer-html5 .rst-content div.citation-list>div.citation tt,html.writer-html5 .rst-content dl.citation code,html.writer-html5 .rst-content dl.citation tt,html.writer-html5 .rst-content dl.footnote code,html.writer-html5 .rst-content dl.footnote tt{color:#555}.rst-content .wy-table-responsive.citation,.rst-content .wy-table-responsive.footnote{margin-bottom:0}.rst-content .wy-table-responsive.citation+:not(.citation),.rst-content .wy-table-responsive.footnote+:not(.footnote){margin-top:24px}.rst-content .wy-table-responsive.citation:last-child,.rst-content .wy-table-responsive.footnote:last-child{margin-bottom:24px}.rst-content table.docutils th{border-color:#e1e4e5}html.writer-html5 .rst-content table.docutils th{border:1px solid #e1e4e5}html.writer-html5 .rst-content table.docutils td>p,html.writer-html5 .rst-content table.docutils th>p{line-height:1rem;margin-bottom:0;font-size:.9rem}.rst-content table.docutils td .last,.rst-content table.docutils td .last>:last-child{margin-bottom:0}.rst-content table.field-list,.rst-content table.field-list td{border:none}.rst-content table.field-list td p{line-height:inherit}.rst-content table.field-list td>strong{display:inline-block}.rst-content table.field-list .field-name{padding-right:10px;text-align:left;white-space:nowrap}.rst-content table.field-list .field-body{text-align:left}.rst-content code,.rst-content tt{color:#000;font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,Courier,monospace;padding:2px 5px}.rst-content code big,.rst-content code em,.rst-content tt big,.rst-content tt em{font-size:100%!important;line-height:normal}.rst-content code.literal,.rst-content tt.literal{color:#e74c3c;white-space:normal}.rst-content code.xref,.rst-content tt.xref,a .rst-content code,a .rst-content tt{font-weight:700;color:#404040;overflow-wrap:normal}.rst-content kbd,.rst-content pre,.rst-content samp{font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,Courier,monospace}.rst-content a code,.rst-content a tt{color:#2980b9}.rst-content dl{margin-bottom:24px}.rst-content dl dt{font-weight:700;margin-bottom:12px}.rst-content dl ol,.rst-content dl p,.rst-content dl table,.rst-content dl ul{margin-bottom:12px}.rst-content dl dd{margin:0 0 12px 24px;line-height:24px}.rst-content dl dd>ol:last-child,.rst-content dl dd>p:last-child,.rst-content dl dd>table:last-child,.rst-content dl dd>ul:last-child{margin-bottom:0}html.writer-html4 .rst-content dl:not(.docutils),html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple){margin-bottom:24px}html.writer-html4 .rst-content dl:not(.docutils)>dt,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple)>dt{display:table;margin:6px 0;font-size:90%;line-height:normal;background:#e7f2fa;color:#2980b9;border-top:3px solid #6ab0de;padding:6px;position:relative}html.writer-html4 .rst-content dl:not(.docutils)>dt:before,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple)>dt:before{color:#6ab0de}html.writer-html4 .rst-content dl:not(.docutils)>dt .headerlink,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple)>dt .headerlink{color:#404040;font-size:100%!important}html.writer-html4 .rst-content dl:not(.docutils) dl:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple)>dt,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) dl:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple)>dt{margin-bottom:6px;border:none;border-left:3px solid #ccc;background:#f0f0f0;color:#555}html.writer-html4 .rst-content dl:not(.docutils) dl:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple)>dt .headerlink,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) dl:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple)>dt .headerlink{color:#404040;font-size:100%!important}html.writer-html4 .rst-content dl:not(.docutils)>dt:first-child,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple)>dt:first-child{margin-top:0}html.writer-html4 .rst-content dl:not(.docutils) code.descclassname,html.writer-html4 .rst-content dl:not(.docutils) code.descname,html.writer-html4 .rst-content dl:not(.docutils) tt.descclassname,html.writer-html4 .rst-content dl:not(.docutils) tt.descname,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) code.descclassname,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) code.descname,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) tt.descclassname,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) tt.descname{background-color:transparent;border:none;padding:0;font-size:100%!important}html.writer-html4 .rst-content dl:not(.docutils) code.descname,html.writer-html4 .rst-content dl:not(.docutils) tt.descname,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) code.descname,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) tt.descname{font-weight:700}html.writer-html4 .rst-content dl:not(.docutils) .optional,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) .optional{display:inline-block;padding:0 4px;color:#000;font-weight:700}html.writer-html4 .rst-content dl:not(.docutils) .property,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) .property{display:inline-block;padding-right:8px;max-width:100%}html.writer-html4 .rst-content dl:not(.docutils) .k,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) .k{font-style:italic}html.writer-html4 .rst-content dl:not(.docutils) .descclassname,html.writer-html4 .rst-content dl:not(.docutils) .descname,html.writer-html4 .rst-content dl:not(.docutils) .sig-name,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) .descclassname,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) .descname,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) .sig-name{font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,Courier,monospace;color:#000}.rst-content .viewcode-back,.rst-content .viewcode-link{display:inline-block;color:#27ae60;font-size:80%;padding-left:24px}.rst-content .viewcode-back{display:block;float:right}.rst-content p.rubric{margin-bottom:12px;font-weight:700}.rst-content code.download,.rst-content tt.download{background:inherit;padding:inherit;font-weight:400;font-family:inherit;font-size:inherit;color:inherit;border:inherit;white-space:inherit}.rst-content code.download span:first-child,.rst-content tt.download span:first-child{-webkit-font-smoothing:subpixel-antialiased}.rst-content code.download span:first-child:before,.rst-content tt.download span:first-child:before{margin-right:4px}.rst-content .guilabel,.rst-content .menuselection{font-size:80%;font-weight:700;border-radius:4px;padding:2.4px 6px;margin:auto 2px}.rst-content .guilabel,.rst-content .menuselection{border:1px solid #7fbbe3;background:#e7f2fa}.rst-content :not(dl.option-list)>:not(dt):not(kbd):not(.kbd)>.kbd,.rst-content :not(dl.option-list)>:not(dt):not(kbd):not(.kbd)>kbd{color:inherit;font-size:80%;background-color:#fff;border:1px solid #a6a6a6;border-radius:4px;box-shadow:0 2px grey;padding:2.4px 6px;margin:auto 0}.rst-content .versionmodified{font-style:italic}@media screen and (max-width:480px){.rst-content .sidebar{width:100%}}span[id*=MathJax-Span]{color:#404040}.math{text-align:center}@font-face{font-family:Lato;src:url(fonts/lato-normal.woff2?bd03a2cc277bbbc338d464e679fe9942) format("woff2"),url(fonts/lato-normal.woff?27bd77b9162d388cb8d4c4217c7c5e2a) format("woff");font-weight:400;font-style:normal;font-display:block}@font-face{font-family:Lato;src:url(fonts/lato-bold.woff2?cccb897485813c7c256901dbca54ecf2) format("woff2"),url(fonts/lato-bold.woff?d878b6c29b10beca227e9eef4246111b) format("woff");font-weight:700;font-style:normal;font-display:block}@font-face{font-family:Lato;src:url(fonts/lato-bold-italic.woff2?0b6bb6725576b072c5d0b02ecdd1900d) format("woff2"),url(fonts/lato-bold-italic.woff?9c7e4e9eb485b4a121c760e61bc3707c) format("woff");font-weight:700;font-style:italic;font-display:block}@font-face{font-family:Lato;src:url(fonts/lato-normal-italic.woff2?4eb103b4d12be57cb1d040ed5e162e9d) format("woff2"),url(fonts/lato-normal-italic.woff?f28f2d6482446544ef1ea1ccc6dd5892) format("woff");font-weight:400;font-style:italic;font-display:block}@font-face{font-family:Roboto Slab;font-style:normal;font-weight:400;src:url(fonts/Roboto-Slab-Regular.woff2?7abf5b8d04d26a2cafea937019bca958) format("woff2"),url(fonts/Roboto-Slab-Regular.woff?c1be9284088d487c5e3ff0a10a92e58c) format("woff");font-display:block}@font-face{font-family:Roboto Slab;font-style:normal;font-weight:700;src:url(fonts/Roboto-Slab-Bold.woff2?9984f4a9bda09be08e83f2506954adbe) format("woff2"),url(fonts/Roboto-Slab-Bold.woff?bed5564a116b05148e3b3bea6fb1162a) format("woff");font-display:block} \ No newline at end of file + */@font-face{font-family:FontAwesome;src:url(fonts/fontawesome-webfont.eot?674f50d287a8c48dc19ba404d20fe713);src:url(fonts/fontawesome-webfont.eot?674f50d287a8c48dc19ba404d20fe713?#iefix&v=4.7.0) format("embedded-opentype"),url(fonts/fontawesome-webfont.woff2?af7ae505a9eed503f8b8e6982036873e) format("woff2"),url(fonts/fontawesome-webfont.woff?fee66e712a8a08eef5805a46892932ad) format("woff"),url(fonts/fontawesome-webfont.ttf?b06871f281fee6b241d60582ae9369b9) format("truetype"),url(fonts/fontawesome-webfont.svg?912ec66d7572ff821749319396470bde#fontawesomeregular) format("svg");font-weight:400;font-style:normal}.fa,.icon,.rst-content .admonition-title,.rst-content .code-block-caption .headerlink,.rst-content .eqno .headerlink,.rst-content code.download span:first-child,.rst-content dl dt .headerlink,.rst-content h1 .headerlink,.rst-content h2 .headerlink,.rst-content h3 .headerlink,.rst-content h4 .headerlink,.rst-content h5 .headerlink,.rst-content h6 .headerlink,.rst-content p.caption .headerlink,.rst-content p .headerlink,.rst-content table>caption .headerlink,.rst-content tt.download span:first-child,.wy-menu-vertical li.current>a button.toctree-expand,.wy-menu-vertical li.on a button.toctree-expand,.wy-menu-vertical li button.toctree-expand{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fa-lg{font-size:1.33333em;line-height:.75em;vertical-align:-15%}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-fw{width:1.28571em;text-align:center}.fa-ul{padding-left:0;margin-left:2.14286em;list-style-type:none}.fa-ul>li{position:relative}.fa-li{position:absolute;left:-2.14286em;width:2.14286em;top:.14286em;text-align:center}.fa-li.fa-lg{left:-1.85714em}.fa-border{padding:.2em .25em .15em;border:.08em solid #eee;border-radius:.1em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa-pull-left.icon,.fa.fa-pull-left,.rst-content .code-block-caption .fa-pull-left.headerlink,.rst-content .eqno .fa-pull-left.headerlink,.rst-content .fa-pull-left.admonition-title,.rst-content code.download span.fa-pull-left:first-child,.rst-content dl dt .fa-pull-left.headerlink,.rst-content h1 .fa-pull-left.headerlink,.rst-content h2 .fa-pull-left.headerlink,.rst-content h3 .fa-pull-left.headerlink,.rst-content h4 .fa-pull-left.headerlink,.rst-content h5 .fa-pull-left.headerlink,.rst-content h6 .fa-pull-left.headerlink,.rst-content p .fa-pull-left.headerlink,.rst-content table>caption .fa-pull-left.headerlink,.rst-content tt.download span.fa-pull-left:first-child,.wy-menu-vertical li.current>a button.fa-pull-left.toctree-expand,.wy-menu-vertical li.on a button.fa-pull-left.toctree-expand,.wy-menu-vertical li button.fa-pull-left.toctree-expand{margin-right:.3em}.fa-pull-right.icon,.fa.fa-pull-right,.rst-content .code-block-caption .fa-pull-right.headerlink,.rst-content .eqno .fa-pull-right.headerlink,.rst-content .fa-pull-right.admonition-title,.rst-content code.download span.fa-pull-right:first-child,.rst-content dl dt .fa-pull-right.headerlink,.rst-content h1 .fa-pull-right.headerlink,.rst-content h2 .fa-pull-right.headerlink,.rst-content h3 .fa-pull-right.headerlink,.rst-content h4 .fa-pull-right.headerlink,.rst-content h5 .fa-pull-right.headerlink,.rst-content h6 .fa-pull-right.headerlink,.rst-content p .fa-pull-right.headerlink,.rst-content table>caption .fa-pull-right.headerlink,.rst-content tt.download span.fa-pull-right:first-child,.wy-menu-vertical li.current>a button.fa-pull-right.toctree-expand,.wy-menu-vertical li.on a button.fa-pull-right.toctree-expand,.wy-menu-vertical li button.fa-pull-right.toctree-expand{margin-left:.3em}.pull-right{float:right}.pull-left{float:left}.fa.pull-left,.pull-left.icon,.rst-content .code-block-caption .pull-left.headerlink,.rst-content .eqno .pull-left.headerlink,.rst-content .pull-left.admonition-title,.rst-content code.download span.pull-left:first-child,.rst-content dl dt .pull-left.headerlink,.rst-content h1 .pull-left.headerlink,.rst-content h2 .pull-left.headerlink,.rst-content h3 .pull-left.headerlink,.rst-content h4 .pull-left.headerlink,.rst-content h5 .pull-left.headerlink,.rst-content h6 .pull-left.headerlink,.rst-content p .pull-left.headerlink,.rst-content table>caption .pull-left.headerlink,.rst-content tt.download span.pull-left:first-child,.wy-menu-vertical li.current>a button.pull-left.toctree-expand,.wy-menu-vertical li.on a button.pull-left.toctree-expand,.wy-menu-vertical li button.pull-left.toctree-expand{margin-right:.3em}.fa.pull-right,.pull-right.icon,.rst-content .code-block-caption .pull-right.headerlink,.rst-content .eqno .pull-right.headerlink,.rst-content .pull-right.admonition-title,.rst-content code.download span.pull-right:first-child,.rst-content dl dt .pull-right.headerlink,.rst-content h1 .pull-right.headerlink,.rst-content h2 .pull-right.headerlink,.rst-content h3 .pull-right.headerlink,.rst-content h4 .pull-right.headerlink,.rst-content h5 .pull-right.headerlink,.rst-content h6 .pull-right.headerlink,.rst-content p .pull-right.headerlink,.rst-content table>caption .pull-right.headerlink,.rst-content tt.download span.pull-right:first-child,.wy-menu-vertical li.current>a button.pull-right.toctree-expand,.wy-menu-vertical li.on a button.pull-right.toctree-expand,.wy-menu-vertical li button.pull-right.toctree-expand{margin-left:.3em}.fa-spin{-webkit-animation:fa-spin 2s linear infinite;animation:fa-spin 2s linear infinite}.fa-pulse{-webkit-animation:fa-spin 1s steps(8) infinite;animation:fa-spin 1s steps(8) infinite}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.fa-rotate-90{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";-webkit-transform:rotate(270deg);-ms-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";-webkit-transform:scaleX(-1);-ms-transform:scaleX(-1);transform:scaleX(-1)}.fa-flip-vertical{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";-webkit-transform:scaleY(-1);-ms-transform:scaleY(-1);transform:scaleY(-1)}:root .fa-flip-horizontal,:root .fa-flip-vertical,:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270{filter:none}.fa-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:middle}.fa-stack-1x,.fa-stack-2x{position:absolute;left:0;width:100%;text-align:center}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-glass:before{content:""}.fa-music:before{content:""}.fa-search:before,.icon-search:before{content:""}.fa-envelope-o:before{content:""}.fa-heart:before{content:""}.fa-star:before{content:""}.fa-star-o:before{content:""}.fa-user:before{content:""}.fa-film:before{content:""}.fa-th-large:before{content:""}.fa-th:before{content:""}.fa-th-list:before{content:""}.fa-check:before{content:""}.fa-close:before,.fa-remove:before,.fa-times:before{content:""}.fa-search-plus:before{content:""}.fa-search-minus:before{content:""}.fa-power-off:before{content:""}.fa-signal:before{content:""}.fa-cog:before,.fa-gear:before{content:""}.fa-trash-o:before{content:""}.fa-home:before,.icon-home:before{content:""}.fa-file-o:before{content:""}.fa-clock-o:before{content:""}.fa-road:before{content:""}.fa-download:before,.rst-content code.download span:first-child:before,.rst-content tt.download span:first-child:before{content:""}.fa-arrow-circle-o-down:before{content:""}.fa-arrow-circle-o-up:before{content:""}.fa-inbox:before{content:""}.fa-play-circle-o:before{content:""}.fa-repeat:before,.fa-rotate-right:before{content:""}.fa-refresh:before{content:""}.fa-list-alt:before{content:""}.fa-lock:before{content:""}.fa-flag:before{content:""}.fa-headphones:before{content:""}.fa-volume-off:before{content:""}.fa-volume-down:before{content:""}.fa-volume-up:before{content:""}.fa-qrcode:before{content:""}.fa-barcode:before{content:""}.fa-tag:before{content:""}.fa-tags:before{content:""}.fa-book:before,.icon-book:before{content:""}.fa-bookmark:before{content:""}.fa-print:before{content:""}.fa-camera:before{content:""}.fa-font:before{content:""}.fa-bold:before{content:""}.fa-italic:before{content:""}.fa-text-height:before{content:""}.fa-text-width:before{content:""}.fa-align-left:before{content:""}.fa-align-center:before{content:""}.fa-align-right:before{content:""}.fa-align-justify:before{content:""}.fa-list:before{content:""}.fa-dedent:before,.fa-outdent:before{content:""}.fa-indent:before{content:""}.fa-video-camera:before{content:""}.fa-image:before,.fa-photo:before,.fa-picture-o:before{content:""}.fa-pencil:before{content:""}.fa-map-marker:before{content:""}.fa-adjust:before{content:""}.fa-tint:before{content:""}.fa-edit:before,.fa-pencil-square-o:before{content:""}.fa-share-square-o:before{content:""}.fa-check-square-o:before{content:""}.fa-arrows:before{content:""}.fa-step-backward:before{content:""}.fa-fast-backward:before{content:""}.fa-backward:before{content:""}.fa-play:before{content:""}.fa-pause:before{content:""}.fa-stop:before{content:""}.fa-forward:before{content:""}.fa-fast-forward:before{content:""}.fa-step-forward:before{content:""}.fa-eject:before{content:""}.fa-chevron-left:before{content:""}.fa-chevron-right:before{content:""}.fa-plus-circle:before{content:""}.fa-minus-circle:before{content:""}.fa-times-circle:before,.wy-inline-validate.wy-inline-validate-danger .wy-input-context:before{content:""}.fa-check-circle:before,.wy-inline-validate.wy-inline-validate-success .wy-input-context:before{content:""}.fa-question-circle:before{content:""}.fa-info-circle:before{content:""}.fa-crosshairs:before{content:""}.fa-times-circle-o:before{content:""}.fa-check-circle-o:before{content:""}.fa-ban:before{content:""}.fa-arrow-left:before{content:""}.fa-arrow-right:before{content:""}.fa-arrow-up:before{content:""}.fa-arrow-down:before{content:""}.fa-mail-forward:before,.fa-share:before{content:""}.fa-expand:before{content:""}.fa-compress:before{content:""}.fa-plus:before{content:""}.fa-minus:before{content:""}.fa-asterisk:before{content:""}.fa-exclamation-circle:before,.rst-content .admonition-title:before,.wy-inline-validate.wy-inline-validate-info .wy-input-context:before,.wy-inline-validate.wy-inline-validate-warning .wy-input-context:before{content:""}.fa-gift:before{content:""}.fa-leaf:before{content:""}.fa-fire:before,.icon-fire:before{content:""}.fa-eye:before{content:""}.fa-eye-slash:before{content:""}.fa-exclamation-triangle:before,.fa-warning:before{content:""}.fa-plane:before{content:""}.fa-calendar:before{content:""}.fa-random:before{content:""}.fa-comment:before{content:""}.fa-magnet:before{content:""}.fa-chevron-up:before{content:""}.fa-chevron-down:before{content:""}.fa-retweet:before{content:""}.fa-shopping-cart:before{content:""}.fa-folder:before{content:""}.fa-folder-open:before{content:""}.fa-arrows-v:before{content:""}.fa-arrows-h:before{content:""}.fa-bar-chart-o:before,.fa-bar-chart:before{content:""}.fa-twitter-square:before{content:""}.fa-facebook-square:before{content:""}.fa-camera-retro:before{content:""}.fa-key:before{content:""}.fa-cogs:before,.fa-gears:before{content:""}.fa-comments:before{content:""}.fa-thumbs-o-up:before{content:""}.fa-thumbs-o-down:before{content:""}.fa-star-half:before{content:""}.fa-heart-o:before{content:""}.fa-sign-out:before{content:""}.fa-linkedin-square:before{content:""}.fa-thumb-tack:before{content:""}.fa-external-link:before{content:""}.fa-sign-in:before{content:""}.fa-trophy:before{content:""}.fa-github-square:before{content:""}.fa-upload:before{content:""}.fa-lemon-o:before{content:""}.fa-phone:before{content:""}.fa-square-o:before{content:""}.fa-bookmark-o:before{content:""}.fa-phone-square:before{content:""}.fa-twitter:before{content:""}.fa-facebook-f:before,.fa-facebook:before{content:""}.fa-github:before,.icon-github:before{content:""}.fa-unlock:before{content:""}.fa-credit-card:before{content:""}.fa-feed:before,.fa-rss:before{content:""}.fa-hdd-o:before{content:""}.fa-bullhorn:before{content:""}.fa-bell:before{content:""}.fa-certificate:before{content:""}.fa-hand-o-right:before{content:""}.fa-hand-o-left:before{content:""}.fa-hand-o-up:before{content:""}.fa-hand-o-down:before{content:""}.fa-arrow-circle-left:before,.icon-circle-arrow-left:before{content:""}.fa-arrow-circle-right:before,.icon-circle-arrow-right:before{content:""}.fa-arrow-circle-up:before{content:""}.fa-arrow-circle-down:before{content:""}.fa-globe:before{content:""}.fa-wrench:before{content:""}.fa-tasks:before{content:""}.fa-filter:before{content:""}.fa-briefcase:before{content:""}.fa-arrows-alt:before{content:""}.fa-group:before,.fa-users:before{content:""}.fa-chain:before,.fa-link:before,.icon-link:before{content:""}.fa-cloud:before{content:""}.fa-flask:before{content:""}.fa-cut:before,.fa-scissors:before{content:""}.fa-copy:before,.fa-files-o:before{content:""}.fa-paperclip:before{content:""}.fa-floppy-o:before,.fa-save:before{content:""}.fa-square:before{content:""}.fa-bars:before,.fa-navicon:before,.fa-reorder:before{content:""}.fa-list-ul:before{content:""}.fa-list-ol:before{content:""}.fa-strikethrough:before{content:""}.fa-underline:before{content:""}.fa-table:before{content:""}.fa-magic:before{content:""}.fa-truck:before{content:""}.fa-pinterest:before{content:""}.fa-pinterest-square:before{content:""}.fa-google-plus-square:before{content:""}.fa-google-plus:before{content:""}.fa-money:before{content:""}.fa-caret-down:before,.icon-caret-down:before,.wy-dropdown .caret:before{content:""}.fa-caret-up:before{content:""}.fa-caret-left:before{content:""}.fa-caret-right:before{content:""}.fa-columns:before{content:""}.fa-sort:before,.fa-unsorted:before{content:""}.fa-sort-desc:before,.fa-sort-down:before{content:""}.fa-sort-asc:before,.fa-sort-up:before{content:""}.fa-envelope:before{content:""}.fa-linkedin:before{content:""}.fa-rotate-left:before,.fa-undo:before{content:""}.fa-gavel:before,.fa-legal:before{content:""}.fa-dashboard:before,.fa-tachometer:before{content:""}.fa-comment-o:before{content:""}.fa-comments-o:before{content:""}.fa-bolt:before,.fa-flash:before{content:""}.fa-sitemap:before{content:""}.fa-umbrella:before{content:""}.fa-clipboard:before,.fa-paste:before{content:""}.fa-lightbulb-o:before{content:""}.fa-exchange:before{content:""}.fa-cloud-download:before{content:""}.fa-cloud-upload:before{content:""}.fa-user-md:before{content:""}.fa-stethoscope:before{content:""}.fa-suitcase:before{content:""}.fa-bell-o:before{content:""}.fa-coffee:before{content:""}.fa-cutlery:before{content:""}.fa-file-text-o:before{content:""}.fa-building-o:before{content:""}.fa-hospital-o:before{content:""}.fa-ambulance:before{content:""}.fa-medkit:before{content:""}.fa-fighter-jet:before{content:""}.fa-beer:before{content:""}.fa-h-square:before{content:""}.fa-plus-square:before{content:""}.fa-angle-double-left:before{content:""}.fa-angle-double-right:before{content:""}.fa-angle-double-up:before{content:""}.fa-angle-double-down:before{content:""}.fa-angle-left:before{content:""}.fa-angle-right:before{content:""}.fa-angle-up:before{content:""}.fa-angle-down:before{content:""}.fa-desktop:before{content:""}.fa-laptop:before{content:""}.fa-tablet:before{content:""}.fa-mobile-phone:before,.fa-mobile:before{content:""}.fa-circle-o:before{content:""}.fa-quote-left:before{content:""}.fa-quote-right:before{content:""}.fa-spinner:before{content:""}.fa-circle:before{content:""}.fa-mail-reply:before,.fa-reply:before{content:""}.fa-github-alt:before{content:""}.fa-folder-o:before{content:""}.fa-folder-open-o:before{content:""}.fa-smile-o:before{content:""}.fa-frown-o:before{content:""}.fa-meh-o:before{content:""}.fa-gamepad:before{content:""}.fa-keyboard-o:before{content:""}.fa-flag-o:before{content:""}.fa-flag-checkered:before{content:""}.fa-terminal:before{content:""}.fa-code:before{content:""}.fa-mail-reply-all:before,.fa-reply-all:before{content:""}.fa-star-half-empty:before,.fa-star-half-full:before,.fa-star-half-o:before{content:""}.fa-location-arrow:before{content:""}.fa-crop:before{content:""}.fa-code-fork:before{content:""}.fa-chain-broken:before,.fa-unlink:before{content:""}.fa-question:before{content:""}.fa-info:before{content:""}.fa-exclamation:before{content:""}.fa-superscript:before{content:""}.fa-subscript:before{content:""}.fa-eraser:before{content:""}.fa-puzzle-piece:before{content:""}.fa-microphone:before{content:""}.fa-microphone-slash:before{content:""}.fa-shield:before{content:""}.fa-calendar-o:before{content:""}.fa-fire-extinguisher:before{content:""}.fa-rocket:before{content:""}.fa-maxcdn:before{content:""}.fa-chevron-circle-left:before{content:""}.fa-chevron-circle-right:before{content:""}.fa-chevron-circle-up:before{content:""}.fa-chevron-circle-down:before{content:""}.fa-html5:before{content:""}.fa-css3:before{content:""}.fa-anchor:before{content:""}.fa-unlock-alt:before{content:""}.fa-bullseye:before{content:""}.fa-ellipsis-h:before{content:""}.fa-ellipsis-v:before{content:""}.fa-rss-square:before{content:""}.fa-play-circle:before{content:""}.fa-ticket:before{content:""}.fa-minus-square:before{content:""}.fa-minus-square-o:before,.wy-menu-vertical li.current>a button.toctree-expand:before,.wy-menu-vertical li.on a button.toctree-expand:before{content:""}.fa-level-up:before{content:""}.fa-level-down:before{content:""}.fa-check-square:before{content:""}.fa-pencil-square:before{content:""}.fa-external-link-square:before{content:""}.fa-share-square:before{content:""}.fa-compass:before{content:""}.fa-caret-square-o-down:before,.fa-toggle-down:before{content:""}.fa-caret-square-o-up:before,.fa-toggle-up:before{content:""}.fa-caret-square-o-right:before,.fa-toggle-right:before{content:""}.fa-eur:before,.fa-euro:before{content:""}.fa-gbp:before{content:""}.fa-dollar:before,.fa-usd:before{content:""}.fa-inr:before,.fa-rupee:before{content:""}.fa-cny:before,.fa-jpy:before,.fa-rmb:before,.fa-yen:before{content:""}.fa-rouble:before,.fa-rub:before,.fa-ruble:before{content:""}.fa-krw:before,.fa-won:before{content:""}.fa-bitcoin:before,.fa-btc:before{content:""}.fa-file:before{content:""}.fa-file-text:before{content:""}.fa-sort-alpha-asc:before{content:""}.fa-sort-alpha-desc:before{content:""}.fa-sort-amount-asc:before{content:""}.fa-sort-amount-desc:before{content:""}.fa-sort-numeric-asc:before{content:""}.fa-sort-numeric-desc:before{content:""}.fa-thumbs-up:before{content:""}.fa-thumbs-down:before{content:""}.fa-youtube-square:before{content:""}.fa-youtube:before{content:""}.fa-xing:before{content:""}.fa-xing-square:before{content:""}.fa-youtube-play:before{content:""}.fa-dropbox:before{content:""}.fa-stack-overflow:before{content:""}.fa-instagram:before{content:""}.fa-flickr:before{content:""}.fa-adn:before{content:""}.fa-bitbucket:before,.icon-bitbucket:before{content:""}.fa-bitbucket-square:before{content:""}.fa-tumblr:before{content:""}.fa-tumblr-square:before{content:""}.fa-long-arrow-down:before{content:""}.fa-long-arrow-up:before{content:""}.fa-long-arrow-left:before{content:""}.fa-long-arrow-right:before{content:""}.fa-apple:before{content:""}.fa-windows:before{content:""}.fa-android:before{content:""}.fa-linux:before{content:""}.fa-dribbble:before{content:""}.fa-skype:before{content:""}.fa-foursquare:before{content:""}.fa-trello:before{content:""}.fa-female:before{content:""}.fa-male:before{content:""}.fa-gittip:before,.fa-gratipay:before{content:""}.fa-sun-o:before{content:""}.fa-moon-o:before{content:""}.fa-archive:before{content:""}.fa-bug:before{content:""}.fa-vk:before{content:""}.fa-weibo:before{content:""}.fa-renren:before{content:""}.fa-pagelines:before{content:""}.fa-stack-exchange:before{content:""}.fa-arrow-circle-o-right:before{content:""}.fa-arrow-circle-o-left:before{content:""}.fa-caret-square-o-left:before,.fa-toggle-left:before{content:""}.fa-dot-circle-o:before{content:""}.fa-wheelchair:before{content:""}.fa-vimeo-square:before{content:""}.fa-try:before,.fa-turkish-lira:before{content:""}.fa-plus-square-o:before,.wy-menu-vertical li button.toctree-expand:before{content:""}.fa-space-shuttle:before{content:""}.fa-slack:before{content:""}.fa-envelope-square:before{content:""}.fa-wordpress:before{content:""}.fa-openid:before{content:""}.fa-bank:before,.fa-institution:before,.fa-university:before{content:""}.fa-graduation-cap:before,.fa-mortar-board:before{content:""}.fa-yahoo:before{content:""}.fa-google:before{content:""}.fa-reddit:before{content:""}.fa-reddit-square:before{content:""}.fa-stumbleupon-circle:before{content:""}.fa-stumbleupon:before{content:""}.fa-delicious:before{content:""}.fa-digg:before{content:""}.fa-pied-piper-pp:before{content:""}.fa-pied-piper-alt:before{content:""}.fa-drupal:before{content:""}.fa-joomla:before{content:""}.fa-language:before{content:""}.fa-fax:before{content:""}.fa-building:before{content:""}.fa-child:before{content:""}.fa-paw:before{content:""}.fa-spoon:before{content:""}.fa-cube:before{content:""}.fa-cubes:before{content:""}.fa-behance:before{content:""}.fa-behance-square:before{content:""}.fa-steam:before{content:""}.fa-steam-square:before{content:""}.fa-recycle:before{content:""}.fa-automobile:before,.fa-car:before{content:""}.fa-cab:before,.fa-taxi:before{content:""}.fa-tree:before{content:""}.fa-spotify:before{content:""}.fa-deviantart:before{content:""}.fa-soundcloud:before{content:""}.fa-database:before{content:""}.fa-file-pdf-o:before{content:""}.fa-file-word-o:before{content:""}.fa-file-excel-o:before{content:""}.fa-file-powerpoint-o:before{content:""}.fa-file-image-o:before,.fa-file-photo-o:before,.fa-file-picture-o:before{content:""}.fa-file-archive-o:before,.fa-file-zip-o:before{content:""}.fa-file-audio-o:before,.fa-file-sound-o:before{content:""}.fa-file-movie-o:before,.fa-file-video-o:before{content:""}.fa-file-code-o:before{content:""}.fa-vine:before{content:""}.fa-codepen:before{content:""}.fa-jsfiddle:before{content:""}.fa-life-bouy:before,.fa-life-buoy:before,.fa-life-ring:before,.fa-life-saver:before,.fa-support:before{content:""}.fa-circle-o-notch:before{content:""}.fa-ra:before,.fa-rebel:before,.fa-resistance:before{content:""}.fa-empire:before,.fa-ge:before{content:""}.fa-git-square:before{content:""}.fa-git:before{content:""}.fa-hacker-news:before,.fa-y-combinator-square:before,.fa-yc-square:before{content:""}.fa-tencent-weibo:before{content:""}.fa-qq:before{content:""}.fa-wechat:before,.fa-weixin:before{content:""}.fa-paper-plane:before,.fa-send:before{content:""}.fa-paper-plane-o:before,.fa-send-o:before{content:""}.fa-history:before{content:""}.fa-circle-thin:before{content:""}.fa-header:before{content:""}.fa-paragraph:before{content:""}.fa-sliders:before{content:""}.fa-share-alt:before{content:""}.fa-share-alt-square:before{content:""}.fa-bomb:before{content:""}.fa-futbol-o:before,.fa-soccer-ball-o:before{content:""}.fa-tty:before{content:""}.fa-binoculars:before{content:""}.fa-plug:before{content:""}.fa-slideshare:before{content:""}.fa-twitch:before{content:""}.fa-yelp:before{content:""}.fa-newspaper-o:before{content:""}.fa-wifi:before{content:""}.fa-calculator:before{content:""}.fa-paypal:before{content:""}.fa-google-wallet:before{content:""}.fa-cc-visa:before{content:""}.fa-cc-mastercard:before{content:""}.fa-cc-discover:before{content:""}.fa-cc-amex:before{content:""}.fa-cc-paypal:before{content:""}.fa-cc-stripe:before{content:""}.fa-bell-slash:before{content:""}.fa-bell-slash-o:before{content:""}.fa-trash:before{content:""}.fa-copyright:before{content:""}.fa-at:before{content:""}.fa-eyedropper:before{content:""}.fa-paint-brush:before{content:""}.fa-birthday-cake:before{content:""}.fa-area-chart:before{content:""}.fa-pie-chart:before{content:""}.fa-line-chart:before{content:""}.fa-lastfm:before{content:""}.fa-lastfm-square:before{content:""}.fa-toggle-off:before{content:""}.fa-toggle-on:before{content:""}.fa-bicycle:before{content:""}.fa-bus:before{content:""}.fa-ioxhost:before{content:""}.fa-angellist:before{content:""}.fa-cc:before{content:""}.fa-ils:before,.fa-shekel:before,.fa-sheqel:before{content:""}.fa-meanpath:before{content:""}.fa-buysellads:before{content:""}.fa-connectdevelop:before{content:""}.fa-dashcube:before{content:""}.fa-forumbee:before{content:""}.fa-leanpub:before{content:""}.fa-sellsy:before{content:""}.fa-shirtsinbulk:before{content:""}.fa-simplybuilt:before{content:""}.fa-skyatlas:before{content:""}.fa-cart-plus:before{content:""}.fa-cart-arrow-down:before{content:""}.fa-diamond:before{content:""}.fa-ship:before{content:""}.fa-user-secret:before{content:""}.fa-motorcycle:before{content:""}.fa-street-view:before{content:""}.fa-heartbeat:before{content:""}.fa-venus:before{content:""}.fa-mars:before{content:""}.fa-mercury:before{content:""}.fa-intersex:before,.fa-transgender:before{content:""}.fa-transgender-alt:before{content:""}.fa-venus-double:before{content:""}.fa-mars-double:before{content:""}.fa-venus-mars:before{content:""}.fa-mars-stroke:before{content:""}.fa-mars-stroke-v:before{content:""}.fa-mars-stroke-h:before{content:""}.fa-neuter:before{content:""}.fa-genderless:before{content:""}.fa-facebook-official:before{content:""}.fa-pinterest-p:before{content:""}.fa-whatsapp:before{content:""}.fa-server:before{content:""}.fa-user-plus:before{content:""}.fa-user-times:before{content:""}.fa-bed:before,.fa-hotel:before{content:""}.fa-viacoin:before{content:""}.fa-train:before{content:""}.fa-subway:before{content:""}.fa-medium:before{content:""}.fa-y-combinator:before,.fa-yc:before{content:""}.fa-optin-monster:before{content:""}.fa-opencart:before{content:""}.fa-expeditedssl:before{content:""}.fa-battery-4:before,.fa-battery-full:before,.fa-battery:before{content:""}.fa-battery-3:before,.fa-battery-three-quarters:before{content:""}.fa-battery-2:before,.fa-battery-half:before{content:""}.fa-battery-1:before,.fa-battery-quarter:before{content:""}.fa-battery-0:before,.fa-battery-empty:before{content:""}.fa-mouse-pointer:before{content:""}.fa-i-cursor:before{content:""}.fa-object-group:before{content:""}.fa-object-ungroup:before{content:""}.fa-sticky-note:before{content:""}.fa-sticky-note-o:before{content:""}.fa-cc-jcb:before{content:""}.fa-cc-diners-club:before{content:""}.fa-clone:before{content:""}.fa-balance-scale:before{content:""}.fa-hourglass-o:before{content:""}.fa-hourglass-1:before,.fa-hourglass-start:before{content:""}.fa-hourglass-2:before,.fa-hourglass-half:before{content:""}.fa-hourglass-3:before,.fa-hourglass-end:before{content:""}.fa-hourglass:before{content:""}.fa-hand-grab-o:before,.fa-hand-rock-o:before{content:""}.fa-hand-paper-o:before,.fa-hand-stop-o:before{content:""}.fa-hand-scissors-o:before{content:""}.fa-hand-lizard-o:before{content:""}.fa-hand-spock-o:before{content:""}.fa-hand-pointer-o:before{content:""}.fa-hand-peace-o:before{content:""}.fa-trademark:before{content:""}.fa-registered:before{content:""}.fa-creative-commons:before{content:""}.fa-gg:before{content:""}.fa-gg-circle:before{content:""}.fa-tripadvisor:before{content:""}.fa-odnoklassniki:before{content:""}.fa-odnoklassniki-square:before{content:""}.fa-get-pocket:before{content:""}.fa-wikipedia-w:before{content:""}.fa-safari:before{content:""}.fa-chrome:before{content:""}.fa-firefox:before{content:""}.fa-opera:before{content:""}.fa-internet-explorer:before{content:""}.fa-television:before,.fa-tv:before{content:""}.fa-contao:before{content:""}.fa-500px:before{content:""}.fa-amazon:before{content:""}.fa-calendar-plus-o:before{content:""}.fa-calendar-minus-o:before{content:""}.fa-calendar-times-o:before{content:""}.fa-calendar-check-o:before{content:""}.fa-industry:before{content:""}.fa-map-pin:before{content:""}.fa-map-signs:before{content:""}.fa-map-o:before{content:""}.fa-map:before{content:""}.fa-commenting:before{content:""}.fa-commenting-o:before{content:""}.fa-houzz:before{content:""}.fa-vimeo:before{content:""}.fa-black-tie:before{content:""}.fa-fonticons:before{content:""}.fa-reddit-alien:before{content:""}.fa-edge:before{content:""}.fa-credit-card-alt:before{content:""}.fa-codiepie:before{content:""}.fa-modx:before{content:""}.fa-fort-awesome:before{content:""}.fa-usb:before{content:""}.fa-product-hunt:before{content:""}.fa-mixcloud:before{content:""}.fa-scribd:before{content:""}.fa-pause-circle:before{content:""}.fa-pause-circle-o:before{content:""}.fa-stop-circle:before{content:""}.fa-stop-circle-o:before{content:""}.fa-shopping-bag:before{content:""}.fa-shopping-basket:before{content:""}.fa-hashtag:before{content:""}.fa-bluetooth:before{content:""}.fa-bluetooth-b:before{content:""}.fa-percent:before{content:""}.fa-gitlab:before,.icon-gitlab:before{content:""}.fa-wpbeginner:before{content:""}.fa-wpforms:before{content:""}.fa-envira:before{content:""}.fa-universal-access:before{content:""}.fa-wheelchair-alt:before{content:""}.fa-question-circle-o:before{content:""}.fa-blind:before{content:""}.fa-audio-description:before{content:""}.fa-volume-control-phone:before{content:""}.fa-braille:before{content:""}.fa-assistive-listening-systems:before{content:""}.fa-american-sign-language-interpreting:before,.fa-asl-interpreting:before{content:""}.fa-deaf:before,.fa-deafness:before,.fa-hard-of-hearing:before{content:""}.fa-glide:before{content:""}.fa-glide-g:before{content:""}.fa-sign-language:before,.fa-signing:before{content:""}.fa-low-vision:before{content:""}.fa-viadeo:before{content:""}.fa-viadeo-square:before{content:""}.fa-snapchat:before{content:""}.fa-snapchat-ghost:before{content:""}.fa-snapchat-square:before{content:""}.fa-pied-piper:before{content:""}.fa-first-order:before{content:""}.fa-yoast:before{content:""}.fa-themeisle:before{content:""}.fa-google-plus-circle:before,.fa-google-plus-official:before{content:""}.fa-fa:before,.fa-font-awesome:before{content:""}.fa-handshake-o:before{content:""}.fa-envelope-open:before{content:""}.fa-envelope-open-o:before{content:""}.fa-linode:before{content:""}.fa-address-book:before{content:""}.fa-address-book-o:before{content:""}.fa-address-card:before,.fa-vcard:before{content:""}.fa-address-card-o:before,.fa-vcard-o:before{content:""}.fa-user-circle:before{content:""}.fa-user-circle-o:before{content:""}.fa-user-o:before{content:""}.fa-id-badge:before{content:""}.fa-drivers-license:before,.fa-id-card:before{content:""}.fa-drivers-license-o:before,.fa-id-card-o:before{content:""}.fa-quora:before{content:""}.fa-free-code-camp:before{content:""}.fa-telegram:before{content:""}.fa-thermometer-4:before,.fa-thermometer-full:before,.fa-thermometer:before{content:""}.fa-thermometer-3:before,.fa-thermometer-three-quarters:before{content:""}.fa-thermometer-2:before,.fa-thermometer-half:before{content:""}.fa-thermometer-1:before,.fa-thermometer-quarter:before{content:""}.fa-thermometer-0:before,.fa-thermometer-empty:before{content:""}.fa-shower:before{content:""}.fa-bath:before,.fa-bathtub:before,.fa-s15:before{content:""}.fa-podcast:before{content:""}.fa-window-maximize:before{content:""}.fa-window-minimize:before{content:""}.fa-window-restore:before{content:""}.fa-times-rectangle:before,.fa-window-close:before{content:""}.fa-times-rectangle-o:before,.fa-window-close-o:before{content:""}.fa-bandcamp:before{content:""}.fa-grav:before{content:""}.fa-etsy:before{content:""}.fa-imdb:before{content:""}.fa-ravelry:before{content:""}.fa-eercast:before{content:""}.fa-microchip:before{content:""}.fa-snowflake-o:before{content:""}.fa-superpowers:before{content:""}.fa-wpexplorer:before{content:""}.fa-meetup:before{content:""}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}.fa,.icon,.rst-content .admonition-title,.rst-content .code-block-caption .headerlink,.rst-content .eqno .headerlink,.rst-content code.download span:first-child,.rst-content dl dt .headerlink,.rst-content h1 .headerlink,.rst-content h2 .headerlink,.rst-content h3 .headerlink,.rst-content h4 .headerlink,.rst-content h5 .headerlink,.rst-content h6 .headerlink,.rst-content p.caption .headerlink,.rst-content p .headerlink,.rst-content table>caption .headerlink,.rst-content tt.download span:first-child,.wy-dropdown .caret,.wy-inline-validate.wy-inline-validate-danger .wy-input-context,.wy-inline-validate.wy-inline-validate-info .wy-input-context,.wy-inline-validate.wy-inline-validate-success .wy-input-context,.wy-inline-validate.wy-inline-validate-warning .wy-input-context,.wy-menu-vertical li.current>a button.toctree-expand,.wy-menu-vertical li.on a button.toctree-expand,.wy-menu-vertical li button.toctree-expand{font-family:inherit}.fa:before,.icon:before,.rst-content .admonition-title:before,.rst-content .code-block-caption .headerlink:before,.rst-content .eqno .headerlink:before,.rst-content code.download span:first-child:before,.rst-content dl dt .headerlink:before,.rst-content h1 .headerlink:before,.rst-content h2 .headerlink:before,.rst-content h3 .headerlink:before,.rst-content h4 .headerlink:before,.rst-content h5 .headerlink:before,.rst-content h6 .headerlink:before,.rst-content p.caption .headerlink:before,.rst-content p .headerlink:before,.rst-content table>caption .headerlink:before,.rst-content tt.download span:first-child:before,.wy-dropdown .caret:before,.wy-inline-validate.wy-inline-validate-danger .wy-input-context:before,.wy-inline-validate.wy-inline-validate-info .wy-input-context:before,.wy-inline-validate.wy-inline-validate-success .wy-input-context:before,.wy-inline-validate.wy-inline-validate-warning .wy-input-context:before,.wy-menu-vertical li.current>a button.toctree-expand:before,.wy-menu-vertical li.on a button.toctree-expand:before,.wy-menu-vertical li button.toctree-expand:before{font-family:FontAwesome;display:inline-block;font-style:normal;font-weight:400;line-height:1;text-decoration:inherit}.rst-content .code-block-caption a .headerlink,.rst-content .eqno a .headerlink,.rst-content a .admonition-title,.rst-content code.download a span:first-child,.rst-content dl dt a .headerlink,.rst-content h1 a .headerlink,.rst-content h2 a .headerlink,.rst-content h3 a .headerlink,.rst-content h4 a .headerlink,.rst-content h5 a .headerlink,.rst-content h6 a .headerlink,.rst-content p.caption a .headerlink,.rst-content p a .headerlink,.rst-content table>caption a .headerlink,.rst-content tt.download a span:first-child,.wy-menu-vertical li.current>a button.toctree-expand,.wy-menu-vertical li.on a button.toctree-expand,.wy-menu-vertical li a button.toctree-expand,a .fa,a .icon,a .rst-content .admonition-title,a .rst-content .code-block-caption .headerlink,a .rst-content .eqno .headerlink,a .rst-content code.download span:first-child,a .rst-content dl dt .headerlink,a .rst-content h1 .headerlink,a .rst-content h2 .headerlink,a .rst-content h3 .headerlink,a .rst-content h4 .headerlink,a .rst-content h5 .headerlink,a .rst-content h6 .headerlink,a .rst-content p.caption .headerlink,a .rst-content p .headerlink,a .rst-content table>caption .headerlink,a .rst-content tt.download span:first-child,a .wy-menu-vertical li button.toctree-expand{display:inline-block;text-decoration:inherit}.btn .fa,.btn .icon,.btn .rst-content .admonition-title,.btn .rst-content .code-block-caption .headerlink,.btn .rst-content .eqno .headerlink,.btn .rst-content code.download span:first-child,.btn .rst-content dl dt .headerlink,.btn .rst-content h1 .headerlink,.btn .rst-content h2 .headerlink,.btn .rst-content h3 .headerlink,.btn .rst-content h4 .headerlink,.btn .rst-content h5 .headerlink,.btn .rst-content h6 .headerlink,.btn .rst-content p .headerlink,.btn .rst-content table>caption .headerlink,.btn .rst-content tt.download span:first-child,.btn .wy-menu-vertical li.current>a button.toctree-expand,.btn .wy-menu-vertical li.on a button.toctree-expand,.btn .wy-menu-vertical li button.toctree-expand,.nav .fa,.nav .icon,.nav .rst-content .admonition-title,.nav .rst-content .code-block-caption .headerlink,.nav .rst-content .eqno .headerlink,.nav .rst-content code.download span:first-child,.nav .rst-content dl dt .headerlink,.nav .rst-content h1 .headerlink,.nav .rst-content h2 .headerlink,.nav .rst-content h3 .headerlink,.nav .rst-content h4 .headerlink,.nav .rst-content h5 .headerlink,.nav .rst-content h6 .headerlink,.nav .rst-content p .headerlink,.nav .rst-content table>caption .headerlink,.nav .rst-content tt.download span:first-child,.nav .wy-menu-vertical li.current>a button.toctree-expand,.nav .wy-menu-vertical li.on a button.toctree-expand,.nav .wy-menu-vertical li button.toctree-expand,.rst-content .btn .admonition-title,.rst-content .code-block-caption .btn .headerlink,.rst-content .code-block-caption .nav .headerlink,.rst-content .eqno .btn .headerlink,.rst-content .eqno .nav .headerlink,.rst-content .nav .admonition-title,.rst-content code.download .btn span:first-child,.rst-content code.download .nav span:first-child,.rst-content dl dt .btn .headerlink,.rst-content dl dt .nav .headerlink,.rst-content h1 .btn .headerlink,.rst-content h1 .nav .headerlink,.rst-content h2 .btn .headerlink,.rst-content h2 .nav .headerlink,.rst-content h3 .btn .headerlink,.rst-content h3 .nav .headerlink,.rst-content h4 .btn .headerlink,.rst-content h4 .nav .headerlink,.rst-content h5 .btn .headerlink,.rst-content h5 .nav .headerlink,.rst-content h6 .btn .headerlink,.rst-content h6 .nav .headerlink,.rst-content p .btn .headerlink,.rst-content p .nav .headerlink,.rst-content table>caption .btn .headerlink,.rst-content table>caption .nav .headerlink,.rst-content tt.download .btn span:first-child,.rst-content tt.download .nav span:first-child,.wy-menu-vertical li .btn button.toctree-expand,.wy-menu-vertical li.current>a .btn button.toctree-expand,.wy-menu-vertical li.current>a .nav button.toctree-expand,.wy-menu-vertical li .nav button.toctree-expand,.wy-menu-vertical li.on a .btn button.toctree-expand,.wy-menu-vertical li.on a .nav button.toctree-expand{display:inline}.btn .fa-large.icon,.btn .fa.fa-large,.btn .rst-content .code-block-caption .fa-large.headerlink,.btn .rst-content .eqno .fa-large.headerlink,.btn .rst-content .fa-large.admonition-title,.btn .rst-content code.download span.fa-large:first-child,.btn .rst-content dl dt .fa-large.headerlink,.btn .rst-content h1 .fa-large.headerlink,.btn .rst-content h2 .fa-large.headerlink,.btn .rst-content h3 .fa-large.headerlink,.btn .rst-content h4 .fa-large.headerlink,.btn .rst-content h5 .fa-large.headerlink,.btn .rst-content h6 .fa-large.headerlink,.btn .rst-content p .fa-large.headerlink,.btn .rst-content table>caption .fa-large.headerlink,.btn .rst-content tt.download span.fa-large:first-child,.btn .wy-menu-vertical li button.fa-large.toctree-expand,.nav .fa-large.icon,.nav .fa.fa-large,.nav .rst-content .code-block-caption .fa-large.headerlink,.nav .rst-content .eqno .fa-large.headerlink,.nav .rst-content .fa-large.admonition-title,.nav .rst-content code.download span.fa-large:first-child,.nav .rst-content dl dt .fa-large.headerlink,.nav .rst-content h1 .fa-large.headerlink,.nav .rst-content h2 .fa-large.headerlink,.nav .rst-content h3 .fa-large.headerlink,.nav .rst-content h4 .fa-large.headerlink,.nav .rst-content h5 .fa-large.headerlink,.nav .rst-content h6 .fa-large.headerlink,.nav .rst-content p .fa-large.headerlink,.nav .rst-content table>caption .fa-large.headerlink,.nav .rst-content tt.download span.fa-large:first-child,.nav .wy-menu-vertical li button.fa-large.toctree-expand,.rst-content .btn .fa-large.admonition-title,.rst-content .code-block-caption .btn .fa-large.headerlink,.rst-content .code-block-caption .nav .fa-large.headerlink,.rst-content .eqno .btn .fa-large.headerlink,.rst-content .eqno .nav .fa-large.headerlink,.rst-content .nav .fa-large.admonition-title,.rst-content code.download .btn span.fa-large:first-child,.rst-content code.download .nav span.fa-large:first-child,.rst-content dl dt .btn .fa-large.headerlink,.rst-content dl dt .nav .fa-large.headerlink,.rst-content h1 .btn .fa-large.headerlink,.rst-content h1 .nav .fa-large.headerlink,.rst-content h2 .btn .fa-large.headerlink,.rst-content h2 .nav .fa-large.headerlink,.rst-content h3 .btn .fa-large.headerlink,.rst-content h3 .nav .fa-large.headerlink,.rst-content h4 .btn .fa-large.headerlink,.rst-content h4 .nav .fa-large.headerlink,.rst-content h5 .btn .fa-large.headerlink,.rst-content h5 .nav .fa-large.headerlink,.rst-content h6 .btn .fa-large.headerlink,.rst-content h6 .nav .fa-large.headerlink,.rst-content p .btn .fa-large.headerlink,.rst-content p .nav .fa-large.headerlink,.rst-content table>caption .btn .fa-large.headerlink,.rst-content table>caption .nav .fa-large.headerlink,.rst-content tt.download .btn span.fa-large:first-child,.rst-content tt.download .nav span.fa-large:first-child,.wy-menu-vertical li .btn button.fa-large.toctree-expand,.wy-menu-vertical li .nav button.fa-large.toctree-expand{line-height:.9em}.btn .fa-spin.icon,.btn .fa.fa-spin,.btn .rst-content .code-block-caption .fa-spin.headerlink,.btn .rst-content .eqno .fa-spin.headerlink,.btn .rst-content .fa-spin.admonition-title,.btn .rst-content code.download span.fa-spin:first-child,.btn .rst-content dl dt .fa-spin.headerlink,.btn .rst-content h1 .fa-spin.headerlink,.btn .rst-content h2 .fa-spin.headerlink,.btn .rst-content h3 .fa-spin.headerlink,.btn .rst-content h4 .fa-spin.headerlink,.btn .rst-content h5 .fa-spin.headerlink,.btn .rst-content h6 .fa-spin.headerlink,.btn .rst-content p .fa-spin.headerlink,.btn .rst-content table>caption .fa-spin.headerlink,.btn .rst-content tt.download span.fa-spin:first-child,.btn .wy-menu-vertical li button.fa-spin.toctree-expand,.nav .fa-spin.icon,.nav .fa.fa-spin,.nav .rst-content .code-block-caption .fa-spin.headerlink,.nav .rst-content .eqno .fa-spin.headerlink,.nav .rst-content .fa-spin.admonition-title,.nav .rst-content code.download span.fa-spin:first-child,.nav .rst-content dl dt .fa-spin.headerlink,.nav .rst-content h1 .fa-spin.headerlink,.nav .rst-content h2 .fa-spin.headerlink,.nav .rst-content h3 .fa-spin.headerlink,.nav .rst-content h4 .fa-spin.headerlink,.nav .rst-content h5 .fa-spin.headerlink,.nav .rst-content h6 .fa-spin.headerlink,.nav .rst-content p .fa-spin.headerlink,.nav .rst-content table>caption .fa-spin.headerlink,.nav .rst-content tt.download span.fa-spin:first-child,.nav .wy-menu-vertical li button.fa-spin.toctree-expand,.rst-content .btn .fa-spin.admonition-title,.rst-content .code-block-caption .btn .fa-spin.headerlink,.rst-content .code-block-caption .nav .fa-spin.headerlink,.rst-content .eqno .btn .fa-spin.headerlink,.rst-content .eqno .nav .fa-spin.headerlink,.rst-content .nav .fa-spin.admonition-title,.rst-content code.download .btn span.fa-spin:first-child,.rst-content code.download .nav span.fa-spin:first-child,.rst-content dl dt .btn .fa-spin.headerlink,.rst-content dl dt .nav .fa-spin.headerlink,.rst-content h1 .btn .fa-spin.headerlink,.rst-content h1 .nav .fa-spin.headerlink,.rst-content h2 .btn .fa-spin.headerlink,.rst-content h2 .nav .fa-spin.headerlink,.rst-content h3 .btn .fa-spin.headerlink,.rst-content h3 .nav .fa-spin.headerlink,.rst-content h4 .btn .fa-spin.headerlink,.rst-content h4 .nav .fa-spin.headerlink,.rst-content h5 .btn .fa-spin.headerlink,.rst-content h5 .nav .fa-spin.headerlink,.rst-content h6 .btn .fa-spin.headerlink,.rst-content h6 .nav .fa-spin.headerlink,.rst-content p .btn .fa-spin.headerlink,.rst-content p .nav .fa-spin.headerlink,.rst-content table>caption .btn .fa-spin.headerlink,.rst-content table>caption .nav .fa-spin.headerlink,.rst-content tt.download .btn span.fa-spin:first-child,.rst-content tt.download .nav span.fa-spin:first-child,.wy-menu-vertical li .btn button.fa-spin.toctree-expand,.wy-menu-vertical li .nav button.fa-spin.toctree-expand{display:inline-block}.btn.fa:before,.btn.icon:before,.rst-content .btn.admonition-title:before,.rst-content .code-block-caption .btn.headerlink:before,.rst-content .eqno .btn.headerlink:before,.rst-content code.download span.btn:first-child:before,.rst-content dl dt .btn.headerlink:before,.rst-content h1 .btn.headerlink:before,.rst-content h2 .btn.headerlink:before,.rst-content h3 .btn.headerlink:before,.rst-content h4 .btn.headerlink:before,.rst-content h5 .btn.headerlink:before,.rst-content h6 .btn.headerlink:before,.rst-content p .btn.headerlink:before,.rst-content table>caption .btn.headerlink:before,.rst-content tt.download span.btn:first-child:before,.wy-menu-vertical li button.btn.toctree-expand:before{opacity:.5;-webkit-transition:opacity .05s ease-in;-moz-transition:opacity .05s ease-in;transition:opacity .05s ease-in}.btn.fa:hover:before,.btn.icon:hover:before,.rst-content .btn.admonition-title:hover:before,.rst-content .code-block-caption .btn.headerlink:hover:before,.rst-content .eqno .btn.headerlink:hover:before,.rst-content code.download span.btn:first-child:hover:before,.rst-content dl dt .btn.headerlink:hover:before,.rst-content h1 .btn.headerlink:hover:before,.rst-content h2 .btn.headerlink:hover:before,.rst-content h3 .btn.headerlink:hover:before,.rst-content h4 .btn.headerlink:hover:before,.rst-content h5 .btn.headerlink:hover:before,.rst-content h6 .btn.headerlink:hover:before,.rst-content p .btn.headerlink:hover:before,.rst-content table>caption .btn.headerlink:hover:before,.rst-content tt.download span.btn:first-child:hover:before,.wy-menu-vertical li button.btn.toctree-expand:hover:before{opacity:1}.btn-mini .fa:before,.btn-mini .icon:before,.btn-mini .rst-content .admonition-title:before,.btn-mini .rst-content .code-block-caption .headerlink:before,.btn-mini .rst-content .eqno .headerlink:before,.btn-mini .rst-content code.download span:first-child:before,.btn-mini .rst-content dl dt .headerlink:before,.btn-mini .rst-content h1 .headerlink:before,.btn-mini .rst-content h2 .headerlink:before,.btn-mini .rst-content h3 .headerlink:before,.btn-mini .rst-content h4 .headerlink:before,.btn-mini .rst-content h5 .headerlink:before,.btn-mini .rst-content h6 .headerlink:before,.btn-mini .rst-content p .headerlink:before,.btn-mini .rst-content table>caption .headerlink:before,.btn-mini .rst-content tt.download span:first-child:before,.btn-mini .wy-menu-vertical li button.toctree-expand:before,.rst-content .btn-mini .admonition-title:before,.rst-content .code-block-caption .btn-mini .headerlink:before,.rst-content .eqno .btn-mini .headerlink:before,.rst-content code.download .btn-mini span:first-child:before,.rst-content dl dt .btn-mini .headerlink:before,.rst-content h1 .btn-mini .headerlink:before,.rst-content h2 .btn-mini .headerlink:before,.rst-content h3 .btn-mini .headerlink:before,.rst-content h4 .btn-mini .headerlink:before,.rst-content h5 .btn-mini .headerlink:before,.rst-content h6 .btn-mini .headerlink:before,.rst-content p .btn-mini .headerlink:before,.rst-content table>caption .btn-mini .headerlink:before,.rst-content tt.download .btn-mini span:first-child:before,.wy-menu-vertical li .btn-mini button.toctree-expand:before{font-size:14px;vertical-align:-15%}.rst-content .admonition,.rst-content .admonition-todo,.rst-content .attention,.rst-content .caution,.rst-content .danger,.rst-content .error,.rst-content .hint,.rst-content .important,.rst-content .note,.rst-content .seealso,.rst-content .tip,.rst-content .warning,.wy-alert{padding:12px;line-height:24px;margin-bottom:24px;background:#e7f2fa}.rst-content .admonition-title,.wy-alert-title{font-weight:700;display:block;color:#fff;background:#6ab0de;padding:6px 12px;margin:-12px -12px 12px}.rst-content .danger,.rst-content .error,.rst-content .wy-alert-danger.admonition,.rst-content .wy-alert-danger.admonition-todo,.rst-content .wy-alert-danger.attention,.rst-content .wy-alert-danger.caution,.rst-content .wy-alert-danger.hint,.rst-content .wy-alert-danger.important,.rst-content .wy-alert-danger.note,.rst-content .wy-alert-danger.seealso,.rst-content .wy-alert-danger.tip,.rst-content .wy-alert-danger.warning,.wy-alert.wy-alert-danger{background:#fdf3f2}.rst-content .danger .admonition-title,.rst-content .danger .wy-alert-title,.rst-content .error .admonition-title,.rst-content .error .wy-alert-title,.rst-content .wy-alert-danger.admonition-todo .admonition-title,.rst-content .wy-alert-danger.admonition-todo .wy-alert-title,.rst-content .wy-alert-danger.admonition .admonition-title,.rst-content .wy-alert-danger.admonition .wy-alert-title,.rst-content .wy-alert-danger.attention .admonition-title,.rst-content .wy-alert-danger.attention .wy-alert-title,.rst-content .wy-alert-danger.caution .admonition-title,.rst-content .wy-alert-danger.caution .wy-alert-title,.rst-content .wy-alert-danger.hint .admonition-title,.rst-content .wy-alert-danger.hint .wy-alert-title,.rst-content .wy-alert-danger.important .admonition-title,.rst-content .wy-alert-danger.important .wy-alert-title,.rst-content .wy-alert-danger.note .admonition-title,.rst-content .wy-alert-danger.note .wy-alert-title,.rst-content .wy-alert-danger.seealso .admonition-title,.rst-content .wy-alert-danger.seealso .wy-alert-title,.rst-content .wy-alert-danger.tip .admonition-title,.rst-content .wy-alert-danger.tip .wy-alert-title,.rst-content .wy-alert-danger.warning .admonition-title,.rst-content .wy-alert-danger.warning .wy-alert-title,.rst-content .wy-alert.wy-alert-danger .admonition-title,.wy-alert.wy-alert-danger .rst-content .admonition-title,.wy-alert.wy-alert-danger .wy-alert-title{background:#f29f97}.rst-content .admonition-todo,.rst-content .attention,.rst-content .caution,.rst-content .warning,.rst-content .wy-alert-warning.admonition,.rst-content .wy-alert-warning.danger,.rst-content .wy-alert-warning.error,.rst-content .wy-alert-warning.hint,.rst-content .wy-alert-warning.important,.rst-content .wy-alert-warning.note,.rst-content .wy-alert-warning.seealso,.rst-content .wy-alert-warning.tip,.wy-alert.wy-alert-warning{background:#ffedcc}.rst-content .admonition-todo .admonition-title,.rst-content .admonition-todo .wy-alert-title,.rst-content .attention .admonition-title,.rst-content .attention .wy-alert-title,.rst-content .caution .admonition-title,.rst-content .caution .wy-alert-title,.rst-content .warning .admonition-title,.rst-content .warning .wy-alert-title,.rst-content .wy-alert-warning.admonition .admonition-title,.rst-content .wy-alert-warning.admonition .wy-alert-title,.rst-content .wy-alert-warning.danger .admonition-title,.rst-content .wy-alert-warning.danger .wy-alert-title,.rst-content .wy-alert-warning.error .admonition-title,.rst-content .wy-alert-warning.error .wy-alert-title,.rst-content .wy-alert-warning.hint .admonition-title,.rst-content .wy-alert-warning.hint .wy-alert-title,.rst-content .wy-alert-warning.important .admonition-title,.rst-content .wy-alert-warning.important .wy-alert-title,.rst-content .wy-alert-warning.note .admonition-title,.rst-content .wy-alert-warning.note .wy-alert-title,.rst-content .wy-alert-warning.seealso .admonition-title,.rst-content .wy-alert-warning.seealso .wy-alert-title,.rst-content .wy-alert-warning.tip .admonition-title,.rst-content .wy-alert-warning.tip .wy-alert-title,.rst-content .wy-alert.wy-alert-warning .admonition-title,.wy-alert.wy-alert-warning .rst-content .admonition-title,.wy-alert.wy-alert-warning .wy-alert-title{background:#f0b37e}.rst-content .note,.rst-content .seealso,.rst-content .wy-alert-info.admonition,.rst-content .wy-alert-info.admonition-todo,.rst-content .wy-alert-info.attention,.rst-content .wy-alert-info.caution,.rst-content .wy-alert-info.danger,.rst-content .wy-alert-info.error,.rst-content .wy-alert-info.hint,.rst-content .wy-alert-info.important,.rst-content .wy-alert-info.tip,.rst-content .wy-alert-info.warning,.wy-alert.wy-alert-info{background:#e7f2fa}.rst-content .note .admonition-title,.rst-content .note .wy-alert-title,.rst-content .seealso .admonition-title,.rst-content .seealso .wy-alert-title,.rst-content .wy-alert-info.admonition-todo .admonition-title,.rst-content .wy-alert-info.admonition-todo .wy-alert-title,.rst-content .wy-alert-info.admonition .admonition-title,.rst-content .wy-alert-info.admonition .wy-alert-title,.rst-content .wy-alert-info.attention .admonition-title,.rst-content .wy-alert-info.attention .wy-alert-title,.rst-content .wy-alert-info.caution .admonition-title,.rst-content .wy-alert-info.caution .wy-alert-title,.rst-content .wy-alert-info.danger .admonition-title,.rst-content .wy-alert-info.danger .wy-alert-title,.rst-content .wy-alert-info.error .admonition-title,.rst-content .wy-alert-info.error .wy-alert-title,.rst-content .wy-alert-info.hint .admonition-title,.rst-content .wy-alert-info.hint .wy-alert-title,.rst-content .wy-alert-info.important .admonition-title,.rst-content .wy-alert-info.important .wy-alert-title,.rst-content .wy-alert-info.tip .admonition-title,.rst-content .wy-alert-info.tip .wy-alert-title,.rst-content .wy-alert-info.warning .admonition-title,.rst-content .wy-alert-info.warning .wy-alert-title,.rst-content .wy-alert.wy-alert-info .admonition-title,.wy-alert.wy-alert-info .rst-content .admonition-title,.wy-alert.wy-alert-info .wy-alert-title{background:#6ab0de}.rst-content .hint,.rst-content .important,.rst-content .tip,.rst-content .wy-alert-success.admonition,.rst-content .wy-alert-success.admonition-todo,.rst-content .wy-alert-success.attention,.rst-content .wy-alert-success.caution,.rst-content .wy-alert-success.danger,.rst-content .wy-alert-success.error,.rst-content .wy-alert-success.note,.rst-content .wy-alert-success.seealso,.rst-content .wy-alert-success.warning,.wy-alert.wy-alert-success{background:#dbfaf4}.rst-content .hint .admonition-title,.rst-content .hint .wy-alert-title,.rst-content .important .admonition-title,.rst-content .important .wy-alert-title,.rst-content .tip .admonition-title,.rst-content .tip .wy-alert-title,.rst-content .wy-alert-success.admonition-todo .admonition-title,.rst-content .wy-alert-success.admonition-todo .wy-alert-title,.rst-content .wy-alert-success.admonition .admonition-title,.rst-content .wy-alert-success.admonition .wy-alert-title,.rst-content .wy-alert-success.attention .admonition-title,.rst-content .wy-alert-success.attention .wy-alert-title,.rst-content .wy-alert-success.caution .admonition-title,.rst-content .wy-alert-success.caution .wy-alert-title,.rst-content .wy-alert-success.danger .admonition-title,.rst-content .wy-alert-success.danger .wy-alert-title,.rst-content .wy-alert-success.error .admonition-title,.rst-content .wy-alert-success.error .wy-alert-title,.rst-content .wy-alert-success.note .admonition-title,.rst-content .wy-alert-success.note .wy-alert-title,.rst-content .wy-alert-success.seealso .admonition-title,.rst-content .wy-alert-success.seealso .wy-alert-title,.rst-content .wy-alert-success.warning .admonition-title,.rst-content .wy-alert-success.warning .wy-alert-title,.rst-content .wy-alert.wy-alert-success .admonition-title,.wy-alert.wy-alert-success .rst-content .admonition-title,.wy-alert.wy-alert-success .wy-alert-title{background:#1abc9c}.rst-content .wy-alert-neutral.admonition,.rst-content .wy-alert-neutral.admonition-todo,.rst-content .wy-alert-neutral.attention,.rst-content .wy-alert-neutral.caution,.rst-content .wy-alert-neutral.danger,.rst-content .wy-alert-neutral.error,.rst-content .wy-alert-neutral.hint,.rst-content .wy-alert-neutral.important,.rst-content .wy-alert-neutral.note,.rst-content .wy-alert-neutral.seealso,.rst-content .wy-alert-neutral.tip,.rst-content .wy-alert-neutral.warning,.wy-alert.wy-alert-neutral{background:#f3f6f6}.rst-content .wy-alert-neutral.admonition-todo .admonition-title,.rst-content .wy-alert-neutral.admonition-todo .wy-alert-title,.rst-content .wy-alert-neutral.admonition .admonition-title,.rst-content .wy-alert-neutral.admonition .wy-alert-title,.rst-content .wy-alert-neutral.attention .admonition-title,.rst-content .wy-alert-neutral.attention .wy-alert-title,.rst-content .wy-alert-neutral.caution .admonition-title,.rst-content .wy-alert-neutral.caution .wy-alert-title,.rst-content .wy-alert-neutral.danger .admonition-title,.rst-content .wy-alert-neutral.danger .wy-alert-title,.rst-content .wy-alert-neutral.error .admonition-title,.rst-content .wy-alert-neutral.error .wy-alert-title,.rst-content .wy-alert-neutral.hint .admonition-title,.rst-content .wy-alert-neutral.hint .wy-alert-title,.rst-content .wy-alert-neutral.important .admonition-title,.rst-content .wy-alert-neutral.important .wy-alert-title,.rst-content .wy-alert-neutral.note .admonition-title,.rst-content .wy-alert-neutral.note .wy-alert-title,.rst-content .wy-alert-neutral.seealso .admonition-title,.rst-content .wy-alert-neutral.seealso .wy-alert-title,.rst-content .wy-alert-neutral.tip .admonition-title,.rst-content .wy-alert-neutral.tip .wy-alert-title,.rst-content .wy-alert-neutral.warning .admonition-title,.rst-content .wy-alert-neutral.warning .wy-alert-title,.rst-content .wy-alert.wy-alert-neutral .admonition-title,.wy-alert.wy-alert-neutral .rst-content .admonition-title,.wy-alert.wy-alert-neutral .wy-alert-title{color:#404040;background:#e1e4e5}.rst-content .wy-alert-neutral.admonition-todo a,.rst-content .wy-alert-neutral.admonition a,.rst-content .wy-alert-neutral.attention a,.rst-content .wy-alert-neutral.caution a,.rst-content .wy-alert-neutral.danger a,.rst-content .wy-alert-neutral.error a,.rst-content .wy-alert-neutral.hint a,.rst-content .wy-alert-neutral.important a,.rst-content .wy-alert-neutral.note a,.rst-content .wy-alert-neutral.seealso a,.rst-content .wy-alert-neutral.tip a,.rst-content .wy-alert-neutral.warning a,.wy-alert.wy-alert-neutral a{color:#2980b9}.rst-content .admonition-todo p:last-child,.rst-content .admonition p:last-child,.rst-content .attention p:last-child,.rst-content .caution p:last-child,.rst-content .danger p:last-child,.rst-content .error p:last-child,.rst-content .hint p:last-child,.rst-content .important p:last-child,.rst-content .note p:last-child,.rst-content .seealso p:last-child,.rst-content .tip p:last-child,.rst-content .warning p:last-child,.wy-alert p:last-child{margin-bottom:0}.wy-tray-container{position:fixed;bottom:0;left:0;z-index:600}.wy-tray-container li{display:block;width:300px;background:transparent;color:#fff;text-align:center;box-shadow:0 5px 5px 0 rgba(0,0,0,.1);padding:0 24px;min-width:20%;opacity:0;height:0;line-height:56px;overflow:hidden;-webkit-transition:all .3s ease-in;-moz-transition:all .3s ease-in;transition:all .3s ease-in}.wy-tray-container li.wy-tray-item-success{background:#27ae60}.wy-tray-container li.wy-tray-item-info{background:#2980b9}.wy-tray-container li.wy-tray-item-warning{background:#e67e22}.wy-tray-container li.wy-tray-item-danger{background:#e74c3c}.wy-tray-container li.on{opacity:1;height:56px}@media screen and (max-width:768px){.wy-tray-container{bottom:auto;top:0;width:100%}.wy-tray-container li{width:100%}}button{font-size:100%;margin:0;vertical-align:baseline;*vertical-align:middle;cursor:pointer;line-height:normal;-webkit-appearance:button;*overflow:visible}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}button[disabled]{cursor:default}.btn{display:inline-block;border-radius:2px;line-height:normal;white-space:nowrap;text-align:center;cursor:pointer;font-size:100%;padding:6px 12px 8px;color:#fff;border:1px solid rgba(0,0,0,.1);background-color:#27ae60;text-decoration:none;font-weight:400;font-family:Lato,proxima-nova,Helvetica Neue,Arial,sans-serif;box-shadow:inset 0 1px 2px -1px hsla(0,0%,100%,.5),inset 0 -2px 0 0 rgba(0,0,0,.1);outline-none:false;vertical-align:middle;*display:inline;zoom:1;-webkit-user-drag:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-transition:all .1s linear;-moz-transition:all .1s linear;transition:all .1s linear}.btn-hover{background:#2e8ece;color:#fff}.btn:hover{background:#2cc36b;color:#fff}.btn:focus{background:#2cc36b;outline:0}.btn:active{box-shadow:inset 0 -1px 0 0 rgba(0,0,0,.05),inset 0 2px 0 0 rgba(0,0,0,.1);padding:8px 12px 6px}.btn:visited{color:#fff}.btn-disabled,.btn-disabled:active,.btn-disabled:focus,.btn-disabled:hover,.btn:disabled{background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);filter:alpha(opacity=40);opacity:.4;cursor:not-allowed;box-shadow:none}.btn::-moz-focus-inner{padding:0;border:0}.btn-small{font-size:80%}.btn-info{background-color:#2980b9!important}.btn-info:hover{background-color:#2e8ece!important}.btn-neutral{background-color:#f3f6f6!important;color:#404040!important}.btn-neutral:hover{background-color:#e5ebeb!important;color:#404040}.btn-neutral:visited{color:#404040!important}.btn-success{background-color:#27ae60!important}.btn-success:hover{background-color:#295!important}.btn-danger{background-color:#e74c3c!important}.btn-danger:hover{background-color:#ea6153!important}.btn-warning{background-color:#e67e22!important}.btn-warning:hover{background-color:#e98b39!important}.btn-invert{background-color:#222}.btn-invert:hover{background-color:#2f2f2f!important}.btn-link{background-color:transparent!important;color:#2980b9;box-shadow:none;border-color:transparent!important}.btn-link:active,.btn-link:hover{background-color:transparent!important;color:#409ad5!important;box-shadow:none}.btn-link:visited{color:#9b59b6}.wy-btn-group .btn,.wy-control .btn{vertical-align:middle}.wy-btn-group{margin-bottom:24px;*zoom:1}.wy-btn-group:after,.wy-btn-group:before{display:table;content:""}.wy-btn-group:after{clear:both}.wy-dropdown{position:relative;display:inline-block}.wy-dropdown-active .wy-dropdown-menu{display:block}.wy-dropdown-menu{position:absolute;left:0;display:none;float:left;top:100%;min-width:100%;background:#fcfcfc;z-index:100;border:1px solid #cfd7dd;box-shadow:0 2px 2px 0 rgba(0,0,0,.1);padding:12px}.wy-dropdown-menu>dd>a{display:block;clear:both;color:#404040;white-space:nowrap;font-size:90%;padding:0 12px;cursor:pointer}.wy-dropdown-menu>dd>a:hover{background:#2980b9;color:#fff}.wy-dropdown-menu>dd.divider{border-top:1px solid #cfd7dd;margin:6px 0}.wy-dropdown-menu>dd.search{padding-bottom:12px}.wy-dropdown-menu>dd.search input[type=search]{width:100%}.wy-dropdown-menu>dd.call-to-action{background:#e3e3e3;text-transform:uppercase;font-weight:500;font-size:80%}.wy-dropdown-menu>dd.call-to-action:hover{background:#e3e3e3}.wy-dropdown-menu>dd.call-to-action .btn{color:#fff}.wy-dropdown.wy-dropdown-up .wy-dropdown-menu{bottom:100%;top:auto;left:auto;right:0}.wy-dropdown.wy-dropdown-bubble .wy-dropdown-menu{background:#fcfcfc;margin-top:2px}.wy-dropdown.wy-dropdown-bubble .wy-dropdown-menu a{padding:6px 12px}.wy-dropdown.wy-dropdown-bubble .wy-dropdown-menu a:hover{background:#2980b9;color:#fff}.wy-dropdown.wy-dropdown-left .wy-dropdown-menu{right:0;left:auto;text-align:right}.wy-dropdown-arrow:before{content:" ";border-bottom:5px solid #f5f5f5;border-left:5px solid transparent;border-right:5px solid transparent;position:absolute;display:block;top:-4px;left:50%;margin-left:-3px}.wy-dropdown-arrow.wy-dropdown-arrow-left:before{left:11px}.wy-form-stacked select{display:block}.wy-form-aligned .wy-help-inline,.wy-form-aligned input,.wy-form-aligned label,.wy-form-aligned select,.wy-form-aligned textarea{display:inline-block;*display:inline;*zoom:1;vertical-align:middle}.wy-form-aligned .wy-control-group>label{display:inline-block;vertical-align:middle;width:10em;margin:6px 12px 0 0;float:left}.wy-form-aligned .wy-control{float:left}.wy-form-aligned .wy-control label{display:block}.wy-form-aligned .wy-control select{margin-top:6px}fieldset{margin:0}fieldset,legend{border:0;padding:0}legend{width:100%;white-space:normal;margin-bottom:24px;font-size:150%;*margin-left:-7px}label,legend{display:block}label{margin:0 0 .3125em;color:#333;font-size:90%}input,select,textarea{font-size:100%;margin:0;vertical-align:baseline;*vertical-align:middle}.wy-control-group{margin-bottom:24px;max-width:1200px;margin-left:auto;margin-right:auto;*zoom:1}.wy-control-group:after,.wy-control-group:before{display:table;content:""}.wy-control-group:after{clear:both}.wy-control-group.wy-control-group-required>label:after{content:" *";color:#e74c3c}.wy-control-group .wy-form-full,.wy-control-group .wy-form-halves,.wy-control-group .wy-form-thirds{padding-bottom:12px}.wy-control-group .wy-form-full input[type=color],.wy-control-group .wy-form-full input[type=date],.wy-control-group .wy-form-full input[type=datetime-local],.wy-control-group .wy-form-full input[type=datetime],.wy-control-group .wy-form-full input[type=email],.wy-control-group .wy-form-full input[type=month],.wy-control-group .wy-form-full input[type=number],.wy-control-group .wy-form-full input[type=password],.wy-control-group .wy-form-full input[type=search],.wy-control-group .wy-form-full input[type=tel],.wy-control-group .wy-form-full input[type=text],.wy-control-group .wy-form-full input[type=time],.wy-control-group .wy-form-full input[type=url],.wy-control-group .wy-form-full input[type=week],.wy-control-group .wy-form-full select,.wy-control-group .wy-form-halves input[type=color],.wy-control-group .wy-form-halves input[type=date],.wy-control-group .wy-form-halves input[type=datetime-local],.wy-control-group .wy-form-halves input[type=datetime],.wy-control-group .wy-form-halves input[type=email],.wy-control-group .wy-form-halves input[type=month],.wy-control-group .wy-form-halves input[type=number],.wy-control-group .wy-form-halves input[type=password],.wy-control-group .wy-form-halves input[type=search],.wy-control-group .wy-form-halves input[type=tel],.wy-control-group .wy-form-halves input[type=text],.wy-control-group .wy-form-halves input[type=time],.wy-control-group .wy-form-halves input[type=url],.wy-control-group .wy-form-halves input[type=week],.wy-control-group .wy-form-halves select,.wy-control-group .wy-form-thirds input[type=color],.wy-control-group .wy-form-thirds input[type=date],.wy-control-group .wy-form-thirds input[type=datetime-local],.wy-control-group .wy-form-thirds input[type=datetime],.wy-control-group .wy-form-thirds input[type=email],.wy-control-group .wy-form-thirds input[type=month],.wy-control-group .wy-form-thirds input[type=number],.wy-control-group .wy-form-thirds input[type=password],.wy-control-group .wy-form-thirds input[type=search],.wy-control-group .wy-form-thirds input[type=tel],.wy-control-group .wy-form-thirds input[type=text],.wy-control-group .wy-form-thirds input[type=time],.wy-control-group .wy-form-thirds input[type=url],.wy-control-group .wy-form-thirds input[type=week],.wy-control-group .wy-form-thirds select{width:100%}.wy-control-group .wy-form-full{float:left;display:block;width:100%;margin-right:0}.wy-control-group .wy-form-full:last-child{margin-right:0}.wy-control-group .wy-form-halves{float:left;display:block;margin-right:2.35765%;width:48.82117%}.wy-control-group .wy-form-halves:last-child,.wy-control-group .wy-form-halves:nth-of-type(2n){margin-right:0}.wy-control-group .wy-form-halves:nth-of-type(odd){clear:left}.wy-control-group .wy-form-thirds{float:left;display:block;margin-right:2.35765%;width:31.76157%}.wy-control-group .wy-form-thirds:last-child,.wy-control-group .wy-form-thirds:nth-of-type(3n){margin-right:0}.wy-control-group .wy-form-thirds:nth-of-type(3n+1){clear:left}.wy-control-group.wy-control-group-no-input .wy-control,.wy-control-no-input{margin:6px 0 0;font-size:90%}.wy-control-no-input{display:inline-block}.wy-control-group.fluid-input input[type=color],.wy-control-group.fluid-input input[type=date],.wy-control-group.fluid-input input[type=datetime-local],.wy-control-group.fluid-input input[type=datetime],.wy-control-group.fluid-input input[type=email],.wy-control-group.fluid-input input[type=month],.wy-control-group.fluid-input input[type=number],.wy-control-group.fluid-input input[type=password],.wy-control-group.fluid-input input[type=search],.wy-control-group.fluid-input input[type=tel],.wy-control-group.fluid-input input[type=text],.wy-control-group.fluid-input input[type=time],.wy-control-group.fluid-input input[type=url],.wy-control-group.fluid-input input[type=week]{width:100%}.wy-form-message-inline{padding-left:.3em;color:#666;font-size:90%}.wy-form-message{display:block;color:#999;font-size:70%;margin-top:.3125em;font-style:italic}.wy-form-message p{font-size:inherit;font-style:italic;margin-bottom:6px}.wy-form-message p:last-child{margin-bottom:0}input{line-height:normal}input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer;font-family:Lato,proxima-nova,Helvetica Neue,Arial,sans-serif;*overflow:visible}input[type=color],input[type=date],input[type=datetime-local],input[type=datetime],input[type=email],input[type=month],input[type=number],input[type=password],input[type=search],input[type=tel],input[type=text],input[type=time],input[type=url],input[type=week]{-webkit-appearance:none;padding:6px;display:inline-block;border:1px solid #ccc;font-size:80%;font-family:Lato,proxima-nova,Helvetica Neue,Arial,sans-serif;box-shadow:inset 0 1px 3px #ddd;border-radius:0;-webkit-transition:border .3s linear;-moz-transition:border .3s linear;transition:border .3s linear}input[type=datetime-local]{padding:.34375em .625em}input[disabled]{cursor:default}input[type=checkbox],input[type=radio]{padding:0;margin-right:.3125em;*height:13px;*width:13px}input[type=checkbox],input[type=radio],input[type=search]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}input[type=color]:focus,input[type=date]:focus,input[type=datetime-local]:focus,input[type=datetime]:focus,input[type=email]:focus,input[type=month]:focus,input[type=number]:focus,input[type=password]:focus,input[type=search]:focus,input[type=tel]:focus,input[type=text]:focus,input[type=time]:focus,input[type=url]:focus,input[type=week]:focus{outline:0;outline:thin dotted\9;border-color:#333}input.no-focus:focus{border-color:#ccc!important}input[type=checkbox]:focus,input[type=file]:focus,input[type=radio]:focus{outline:thin dotted #333;outline:1px auto #129fea}input[type=color][disabled],input[type=date][disabled],input[type=datetime-local][disabled],input[type=datetime][disabled],input[type=email][disabled],input[type=month][disabled],input[type=number][disabled],input[type=password][disabled],input[type=search][disabled],input[type=tel][disabled],input[type=text][disabled],input[type=time][disabled],input[type=url][disabled],input[type=week][disabled]{cursor:not-allowed;background-color:#fafafa}input:focus:invalid,select:focus:invalid,textarea:focus:invalid{color:#e74c3c;border:1px solid #e74c3c}input:focus:invalid:focus,select:focus:invalid:focus,textarea:focus:invalid:focus{border-color:#e74c3c}input[type=checkbox]:focus:invalid:focus,input[type=file]:focus:invalid:focus,input[type=radio]:focus:invalid:focus{outline-color:#e74c3c}input.wy-input-large{padding:12px;font-size:100%}textarea{overflow:auto;vertical-align:top;width:100%;font-family:Lato,proxima-nova,Helvetica Neue,Arial,sans-serif}select,textarea{padding:.5em .625em;display:inline-block;border:1px solid #ccc;font-size:80%;box-shadow:inset 0 1px 3px #ddd;-webkit-transition:border .3s linear;-moz-transition:border .3s linear;transition:border .3s linear}select{border:1px solid #ccc;background-color:#fff}select[multiple]{height:auto}select:focus,textarea:focus{outline:0}input[readonly],select[disabled],select[readonly],textarea[disabled],textarea[readonly]{cursor:not-allowed;background-color:#fafafa}input[type=checkbox][disabled],input[type=radio][disabled]{cursor:not-allowed}.wy-checkbox,.wy-radio{margin:6px 0;color:#404040;display:block}.wy-checkbox input,.wy-radio input{vertical-align:baseline}.wy-form-message-inline{display:inline-block;*display:inline;*zoom:1;vertical-align:middle}.wy-input-prefix,.wy-input-suffix{white-space:nowrap;padding:6px}.wy-input-prefix .wy-input-context,.wy-input-suffix .wy-input-context{line-height:27px;padding:0 8px;display:inline-block;font-size:80%;background-color:#f3f6f6;border:1px solid #ccc;color:#999}.wy-input-suffix .wy-input-context{border-left:0}.wy-input-prefix .wy-input-context{border-right:0}.wy-switch{position:relative;display:block;height:24px;margin-top:12px;cursor:pointer}.wy-switch:before{left:0;top:0;width:36px;height:12px;background:#ccc}.wy-switch:after,.wy-switch:before{position:absolute;content:"";display:block;border-radius:4px;-webkit-transition:all .2s ease-in-out;-moz-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.wy-switch:after{width:18px;height:18px;background:#999;left:-3px;top:-3px}.wy-switch span{position:absolute;left:48px;display:block;font-size:12px;color:#ccc;line-height:1}.wy-switch.active:before{background:#1e8449}.wy-switch.active:after{left:24px;background:#27ae60}.wy-switch.disabled{cursor:not-allowed;opacity:.8}.wy-control-group.wy-control-group-error .wy-form-message,.wy-control-group.wy-control-group-error>label{color:#e74c3c}.wy-control-group.wy-control-group-error input[type=color],.wy-control-group.wy-control-group-error input[type=date],.wy-control-group.wy-control-group-error input[type=datetime-local],.wy-control-group.wy-control-group-error input[type=datetime],.wy-control-group.wy-control-group-error input[type=email],.wy-control-group.wy-control-group-error input[type=month],.wy-control-group.wy-control-group-error input[type=number],.wy-control-group.wy-control-group-error input[type=password],.wy-control-group.wy-control-group-error input[type=search],.wy-control-group.wy-control-group-error input[type=tel],.wy-control-group.wy-control-group-error input[type=text],.wy-control-group.wy-control-group-error input[type=time],.wy-control-group.wy-control-group-error input[type=url],.wy-control-group.wy-control-group-error input[type=week],.wy-control-group.wy-control-group-error textarea{border:1px solid #e74c3c}.wy-inline-validate{white-space:nowrap}.wy-inline-validate .wy-input-context{padding:.5em .625em;display:inline-block;font-size:80%}.wy-inline-validate.wy-inline-validate-success .wy-input-context{color:#27ae60}.wy-inline-validate.wy-inline-validate-danger .wy-input-context{color:#e74c3c}.wy-inline-validate.wy-inline-validate-warning .wy-input-context{color:#e67e22}.wy-inline-validate.wy-inline-validate-info .wy-input-context{color:#2980b9}.rotate-90{-webkit-transform:rotate(90deg);-moz-transform:rotate(90deg);-ms-transform:rotate(90deg);-o-transform:rotate(90deg);transform:rotate(90deg)}.rotate-180{-webkit-transform:rotate(180deg);-moz-transform:rotate(180deg);-ms-transform:rotate(180deg);-o-transform:rotate(180deg);transform:rotate(180deg)}.rotate-270{-webkit-transform:rotate(270deg);-moz-transform:rotate(270deg);-ms-transform:rotate(270deg);-o-transform:rotate(270deg);transform:rotate(270deg)}.mirror{-webkit-transform:scaleX(-1);-moz-transform:scaleX(-1);-ms-transform:scaleX(-1);-o-transform:scaleX(-1);transform:scaleX(-1)}.mirror.rotate-90{-webkit-transform:scaleX(-1) rotate(90deg);-moz-transform:scaleX(-1) rotate(90deg);-ms-transform:scaleX(-1) rotate(90deg);-o-transform:scaleX(-1) rotate(90deg);transform:scaleX(-1) rotate(90deg)}.mirror.rotate-180{-webkit-transform:scaleX(-1) rotate(180deg);-moz-transform:scaleX(-1) rotate(180deg);-ms-transform:scaleX(-1) rotate(180deg);-o-transform:scaleX(-1) rotate(180deg);transform:scaleX(-1) rotate(180deg)}.mirror.rotate-270{-webkit-transform:scaleX(-1) rotate(270deg);-moz-transform:scaleX(-1) rotate(270deg);-ms-transform:scaleX(-1) rotate(270deg);-o-transform:scaleX(-1) rotate(270deg);transform:scaleX(-1) rotate(270deg)}@media only screen and (max-width:480px){.wy-form button[type=submit]{margin:.7em 0 0}.wy-form input[type=color],.wy-form input[type=date],.wy-form input[type=datetime-local],.wy-form input[type=datetime],.wy-form input[type=email],.wy-form input[type=month],.wy-form input[type=number],.wy-form input[type=password],.wy-form input[type=search],.wy-form input[type=tel],.wy-form input[type=text],.wy-form input[type=time],.wy-form input[type=url],.wy-form input[type=week],.wy-form label{margin-bottom:.3em;display:block}.wy-form input[type=color],.wy-form input[type=date],.wy-form input[type=datetime-local],.wy-form input[type=datetime],.wy-form input[type=email],.wy-form input[type=month],.wy-form input[type=number],.wy-form input[type=password],.wy-form input[type=search],.wy-form input[type=tel],.wy-form input[type=time],.wy-form input[type=url],.wy-form input[type=week]{margin-bottom:0}.wy-form-aligned .wy-control-group label{margin-bottom:.3em;text-align:left;display:block;width:100%}.wy-form-aligned .wy-control{margin:1.5em 0 0}.wy-form-message,.wy-form-message-inline,.wy-form .wy-help-inline{display:block;font-size:80%;padding:6px 0}}@media screen and (max-width:768px){.tablet-hide{display:none}}@media screen and (max-width:480px){.mobile-hide{display:none}}.float-left{float:left}.float-right{float:right}.full-width{width:100%}.rst-content table.docutils,.rst-content table.field-list,.wy-table{border-collapse:collapse;border-spacing:0;empty-cells:show;margin-bottom:24px}.rst-content table.docutils caption,.rst-content table.field-list caption,.wy-table caption{color:#000;font:italic 85%/1 arial,sans-serif;padding:1em 0;text-align:center}.rst-content table.docutils td,.rst-content table.docutils th,.rst-content table.field-list td,.rst-content table.field-list th,.wy-table td,.wy-table th{font-size:90%;margin:0;overflow:visible;padding:8px 16px}.rst-content table.docutils td:first-child,.rst-content table.docutils th:first-child,.rst-content table.field-list td:first-child,.rst-content table.field-list th:first-child,.wy-table td:first-child,.wy-table th:first-child{border-left-width:0}.rst-content table.docutils thead,.rst-content table.field-list thead,.wy-table thead{color:#000;text-align:left;vertical-align:bottom;white-space:nowrap}.rst-content table.docutils thead th,.rst-content table.field-list thead th,.wy-table thead th{font-weight:700;border-bottom:2px solid #e1e4e5}.rst-content table.docutils td,.rst-content table.field-list td,.wy-table td{background-color:transparent;vertical-align:middle}.rst-content table.docutils td p,.rst-content table.field-list td p,.wy-table td p{line-height:18px}.rst-content table.docutils td p:last-child,.rst-content table.field-list td p:last-child,.wy-table td p:last-child{margin-bottom:0}.rst-content table.docutils .wy-table-cell-min,.rst-content table.field-list .wy-table-cell-min,.wy-table .wy-table-cell-min{width:1%;padding-right:0}.rst-content table.docutils .wy-table-cell-min input[type=checkbox],.rst-content table.field-list .wy-table-cell-min input[type=checkbox],.wy-table .wy-table-cell-min input[type=checkbox]{margin:0}.wy-table-secondary{color:grey;font-size:90%}.wy-table-tertiary{color:grey;font-size:80%}.rst-content table.docutils:not(.field-list) tr:nth-child(2n-1) td,.wy-table-backed,.wy-table-odd td,.wy-table-striped tr:nth-child(2n-1) td{background-color:#f3f6f6}.rst-content table.docutils,.wy-table-bordered-all{border:1px solid #e1e4e5}.rst-content table.docutils td,.wy-table-bordered-all td{border-bottom:1px solid #e1e4e5;border-left:1px solid #e1e4e5}.rst-content table.docutils tbody>tr:last-child td,.wy-table-bordered-all tbody>tr:last-child td{border-bottom-width:0}.wy-table-bordered{border:1px solid #e1e4e5}.wy-table-bordered-rows td{border-bottom:1px solid #e1e4e5}.wy-table-bordered-rows tbody>tr:last-child td{border-bottom-width:0}.wy-table-horizontal td,.wy-table-horizontal th{border-width:0 0 1px;border-bottom:1px solid #e1e4e5}.wy-table-horizontal tbody>tr:last-child td{border-bottom-width:0}.wy-table-responsive{margin-bottom:24px;max-width:100%;overflow:auto}.wy-table-responsive table{margin-bottom:0!important}.wy-table-responsive table td,.wy-table-responsive table th{white-space:nowrap}a{color:#2980b9;text-decoration:none;cursor:pointer}a:hover{color:#3091d1}a:visited{color:#9b59b6}html{height:100%}body,html{overflow-x:hidden}body{font-family:Lato,proxima-nova,Helvetica Neue,Arial,sans-serif;font-weight:400;color:#404040;min-height:100%;background:#edf0f2}.wy-text-left{text-align:left}.wy-text-center{text-align:center}.wy-text-right{text-align:right}.wy-text-large{font-size:120%}.wy-text-normal{font-size:100%}.wy-text-small,small{font-size:80%}.wy-text-strike{text-decoration:line-through}.wy-text-warning{color:#e67e22!important}a.wy-text-warning:hover{color:#eb9950!important}.wy-text-info{color:#2980b9!important}a.wy-text-info:hover{color:#409ad5!important}.wy-text-success{color:#27ae60!important}a.wy-text-success:hover{color:#36d278!important}.wy-text-danger{color:#e74c3c!important}a.wy-text-danger:hover{color:#ed7669!important}.wy-text-neutral{color:#404040!important}a.wy-text-neutral:hover{color:#595959!important}.rst-content .toctree-wrapper>p.caption,h1,h2,h3,h4,h5,h6,legend{margin-top:0;font-weight:700;font-family:Roboto Slab,ff-tisa-web-pro,Georgia,Arial,sans-serif}p{line-height:24px;font-size:16px;margin:0 0 24px}h1{font-size:175%}.rst-content .toctree-wrapper>p.caption,h2{font-size:150%}h3{font-size:125%}h4{font-size:115%}h5{font-size:110%}h6{font-size:100%}hr{display:block;height:1px;border:0;border-top:1px solid #e1e4e5;margin:24px 0;padding:0}.rst-content code,.rst-content tt,code{white-space:nowrap;max-width:100%;background:#fff;border:1px solid #e1e4e5;font-size:75%;padding:0 5px;font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,Courier,monospace;color:#e74c3c;overflow-x:auto}.rst-content tt.code-large,code.code-large{font-size:90%}.rst-content .section ul,.rst-content .toctree-wrapper ul,.rst-content section ul,.wy-plain-list-disc,article ul{list-style:disc;line-height:24px;margin-bottom:24px}.rst-content .section ul li,.rst-content .toctree-wrapper ul li,.rst-content section ul li,.wy-plain-list-disc li,article ul li{list-style:disc;margin-left:24px}.rst-content .section ul li p:last-child,.rst-content .section ul li ul,.rst-content .toctree-wrapper ul li p:last-child,.rst-content .toctree-wrapper ul li ul,.rst-content section ul li p:last-child,.rst-content section ul li ul,.wy-plain-list-disc li p:last-child,.wy-plain-list-disc li ul,article ul li p:last-child,article ul li ul{margin-bottom:0}.rst-content .section ul li li,.rst-content .toctree-wrapper ul li li,.rst-content section ul li li,.wy-plain-list-disc li li,article ul li li{list-style:circle}.rst-content .section ul li li li,.rst-content .toctree-wrapper ul li li li,.rst-content section ul li li li,.wy-plain-list-disc li li li,article ul li li li{list-style:square}.rst-content .section ul li ol li,.rst-content .toctree-wrapper ul li ol li,.rst-content section ul li ol li,.wy-plain-list-disc li ol li,article ul li ol li{list-style:decimal}.rst-content .section ol,.rst-content .section ol.arabic,.rst-content .toctree-wrapper ol,.rst-content .toctree-wrapper ol.arabic,.rst-content section ol,.rst-content section ol.arabic,.wy-plain-list-decimal,article ol{list-style:decimal;line-height:24px;margin-bottom:24px}.rst-content .section ol.arabic li,.rst-content .section ol li,.rst-content .toctree-wrapper ol.arabic li,.rst-content .toctree-wrapper ol li,.rst-content section ol.arabic li,.rst-content section ol li,.wy-plain-list-decimal li,article ol li{list-style:decimal;margin-left:24px}.rst-content .section ol.arabic li ul,.rst-content .section ol li p:last-child,.rst-content .section ol li ul,.rst-content .toctree-wrapper ol.arabic li ul,.rst-content .toctree-wrapper ol li p:last-child,.rst-content .toctree-wrapper ol li ul,.rst-content section ol.arabic li ul,.rst-content section ol li p:last-child,.rst-content section ol li ul,.wy-plain-list-decimal li p:last-child,.wy-plain-list-decimal li ul,article ol li p:last-child,article ol li ul{margin-bottom:0}.rst-content .section ol.arabic li ul li,.rst-content .section ol li ul li,.rst-content .toctree-wrapper ol.arabic li ul li,.rst-content .toctree-wrapper ol li ul li,.rst-content section ol.arabic li ul li,.rst-content section ol li ul li,.wy-plain-list-decimal li ul li,article ol li ul li{list-style:disc}.wy-breadcrumbs{*zoom:1}.wy-breadcrumbs:after,.wy-breadcrumbs:before{display:table;content:""}.wy-breadcrumbs:after{clear:both}.wy-breadcrumbs>li{display:inline-block;padding-top:5px}.wy-breadcrumbs>li.wy-breadcrumbs-aside{float:right}.rst-content .wy-breadcrumbs>li code,.rst-content .wy-breadcrumbs>li tt,.wy-breadcrumbs>li .rst-content tt,.wy-breadcrumbs>li code{all:inherit;color:inherit}.breadcrumb-item:before{content:"/";color:#bbb;font-size:13px;padding:0 6px 0 3px}.wy-breadcrumbs-extra{margin-bottom:0;color:#b3b3b3;font-size:80%;display:inline-block}@media screen and (max-width:480px){.wy-breadcrumbs-extra,.wy-breadcrumbs li.wy-breadcrumbs-aside{display:none}}@media print{.wy-breadcrumbs li.wy-breadcrumbs-aside{display:none}}html{font-size:16px}.wy-affix{position:fixed;top:1.618em}.wy-menu a:hover{text-decoration:none}.wy-menu-horiz{*zoom:1}.wy-menu-horiz:after,.wy-menu-horiz:before{display:table;content:""}.wy-menu-horiz:after{clear:both}.wy-menu-horiz li,.wy-menu-horiz ul{display:inline-block}.wy-menu-horiz li:hover{background:hsla(0,0%,100%,.1)}.wy-menu-horiz li.divide-left{border-left:1px solid #404040}.wy-menu-horiz li.divide-right{border-right:1px solid #404040}.wy-menu-horiz a{height:32px;display:inline-block;line-height:32px;padding:0 16px}.wy-menu-vertical{width:300px}.wy-menu-vertical header,.wy-menu-vertical p.caption{color:#55a5d9;height:32px;line-height:32px;padding:0 1.618em;margin:12px 0 0;display:block;font-weight:700;text-transform:uppercase;font-size:85%;white-space:nowrap}.wy-menu-vertical ul{margin-bottom:0}.wy-menu-vertical li.divide-top{border-top:1px solid #404040}.wy-menu-vertical li.divide-bottom{border-bottom:1px solid #404040}.wy-menu-vertical li.current{background:#e3e3e3}.wy-menu-vertical li.current a{color:grey;border-right:1px solid #c9c9c9;padding:.4045em 2.427em}.wy-menu-vertical li.current a:hover{background:#d6d6d6}.rst-content .wy-menu-vertical li tt,.wy-menu-vertical li .rst-content tt,.wy-menu-vertical li code{border:none;background:inherit;color:inherit;padding-left:0;padding-right:0}.wy-menu-vertical li button.toctree-expand{display:block;float:left;margin-left:-1.2em;line-height:18px;color:#4d4d4d;border:none;background:none;padding:0}.wy-menu-vertical li.current>a,.wy-menu-vertical li.on a{color:#404040;font-weight:700;position:relative;background:#fcfcfc;border:none;padding:.4045em 1.618em}.wy-menu-vertical li.current>a:hover,.wy-menu-vertical li.on a:hover{background:#fcfcfc}.wy-menu-vertical li.current>a:hover button.toctree-expand,.wy-menu-vertical li.on a:hover button.toctree-expand{color:grey}.wy-menu-vertical li.current>a button.toctree-expand,.wy-menu-vertical li.on a button.toctree-expand{display:block;line-height:18px;color:#333}.wy-menu-vertical li.toctree-l1.current>a{border-bottom:1px solid #c9c9c9;border-top:1px solid #c9c9c9}.wy-menu-vertical .toctree-l1.current .toctree-l2>ul,.wy-menu-vertical .toctree-l2.current .toctree-l3>ul,.wy-menu-vertical .toctree-l3.current .toctree-l4>ul,.wy-menu-vertical .toctree-l4.current .toctree-l5>ul,.wy-menu-vertical .toctree-l5.current .toctree-l6>ul,.wy-menu-vertical .toctree-l6.current .toctree-l7>ul,.wy-menu-vertical .toctree-l7.current .toctree-l8>ul,.wy-menu-vertical .toctree-l8.current .toctree-l9>ul,.wy-menu-vertical .toctree-l9.current .toctree-l10>ul,.wy-menu-vertical .toctree-l10.current .toctree-l11>ul{display:none}.wy-menu-vertical .toctree-l1.current .current.toctree-l2>ul,.wy-menu-vertical .toctree-l2.current .current.toctree-l3>ul,.wy-menu-vertical .toctree-l3.current .current.toctree-l4>ul,.wy-menu-vertical .toctree-l4.current .current.toctree-l5>ul,.wy-menu-vertical .toctree-l5.current .current.toctree-l6>ul,.wy-menu-vertical .toctree-l6.current .current.toctree-l7>ul,.wy-menu-vertical .toctree-l7.current .current.toctree-l8>ul,.wy-menu-vertical .toctree-l8.current .current.toctree-l9>ul,.wy-menu-vertical .toctree-l9.current .current.toctree-l10>ul,.wy-menu-vertical .toctree-l10.current .current.toctree-l11>ul{display:block}.wy-menu-vertical li.toctree-l3,.wy-menu-vertical li.toctree-l4{font-size:.9em}.wy-menu-vertical li.toctree-l2 a,.wy-menu-vertical li.toctree-l3 a,.wy-menu-vertical li.toctree-l4 a,.wy-menu-vertical li.toctree-l5 a,.wy-menu-vertical li.toctree-l6 a,.wy-menu-vertical li.toctree-l7 a,.wy-menu-vertical li.toctree-l8 a,.wy-menu-vertical li.toctree-l9 a,.wy-menu-vertical li.toctree-l10 a{color:#404040}.wy-menu-vertical li.toctree-l2 a:hover button.toctree-expand,.wy-menu-vertical li.toctree-l3 a:hover button.toctree-expand,.wy-menu-vertical li.toctree-l4 a:hover button.toctree-expand,.wy-menu-vertical li.toctree-l5 a:hover button.toctree-expand,.wy-menu-vertical li.toctree-l6 a:hover button.toctree-expand,.wy-menu-vertical li.toctree-l7 a:hover button.toctree-expand,.wy-menu-vertical li.toctree-l8 a:hover button.toctree-expand,.wy-menu-vertical li.toctree-l9 a:hover button.toctree-expand,.wy-menu-vertical li.toctree-l10 a:hover button.toctree-expand{color:grey}.wy-menu-vertical li.toctree-l2.current li.toctree-l3>a,.wy-menu-vertical li.toctree-l3.current li.toctree-l4>a,.wy-menu-vertical li.toctree-l4.current li.toctree-l5>a,.wy-menu-vertical li.toctree-l5.current li.toctree-l6>a,.wy-menu-vertical li.toctree-l6.current li.toctree-l7>a,.wy-menu-vertical li.toctree-l7.current li.toctree-l8>a,.wy-menu-vertical li.toctree-l8.current li.toctree-l9>a,.wy-menu-vertical li.toctree-l9.current li.toctree-l10>a,.wy-menu-vertical li.toctree-l10.current li.toctree-l11>a{display:block}.wy-menu-vertical li.toctree-l2.current>a{padding:.4045em 2.427em}.wy-menu-vertical li.toctree-l2.current li.toctree-l3>a{padding:.4045em 1.618em .4045em 4.045em}.wy-menu-vertical li.toctree-l3.current>a{padding:.4045em 4.045em}.wy-menu-vertical li.toctree-l3.current li.toctree-l4>a{padding:.4045em 1.618em .4045em 5.663em}.wy-menu-vertical li.toctree-l4.current>a{padding:.4045em 5.663em}.wy-menu-vertical li.toctree-l4.current li.toctree-l5>a{padding:.4045em 1.618em .4045em 7.281em}.wy-menu-vertical li.toctree-l5.current>a{padding:.4045em 7.281em}.wy-menu-vertical li.toctree-l5.current li.toctree-l6>a{padding:.4045em 1.618em .4045em 8.899em}.wy-menu-vertical li.toctree-l6.current>a{padding:.4045em 8.899em}.wy-menu-vertical li.toctree-l6.current li.toctree-l7>a{padding:.4045em 1.618em .4045em 10.517em}.wy-menu-vertical li.toctree-l7.current>a{padding:.4045em 10.517em}.wy-menu-vertical li.toctree-l7.current li.toctree-l8>a{padding:.4045em 1.618em .4045em 12.135em}.wy-menu-vertical li.toctree-l8.current>a{padding:.4045em 12.135em}.wy-menu-vertical li.toctree-l8.current li.toctree-l9>a{padding:.4045em 1.618em .4045em 13.753em}.wy-menu-vertical li.toctree-l9.current>a{padding:.4045em 13.753em}.wy-menu-vertical li.toctree-l9.current li.toctree-l10>a{padding:.4045em 1.618em .4045em 15.371em}.wy-menu-vertical li.toctree-l10.current>a{padding:.4045em 15.371em}.wy-menu-vertical li.toctree-l10.current li.toctree-l11>a{padding:.4045em 1.618em .4045em 16.989em}.wy-menu-vertical li.toctree-l2.current>a,.wy-menu-vertical li.toctree-l2.current li.toctree-l3>a{background:#c9c9c9}.wy-menu-vertical li.toctree-l2 button.toctree-expand{color:#a3a3a3}.wy-menu-vertical li.toctree-l3.current>a,.wy-menu-vertical li.toctree-l3.current li.toctree-l4>a{background:#bdbdbd}.wy-menu-vertical li.toctree-l3 button.toctree-expand{color:#969696}.wy-menu-vertical li.current ul{display:block}.wy-menu-vertical li ul{margin-bottom:0;display:none}.wy-menu-vertical li ul li a{margin-bottom:0;color:#d9d9d9;font-weight:400}.wy-menu-vertical a{line-height:18px;padding:.4045em 1.618em;display:block;position:relative;font-size:90%;color:#d9d9d9}.wy-menu-vertical a:hover{background-color:#4e4a4a;cursor:pointer}.wy-menu-vertical a:hover button.toctree-expand{color:#d9d9d9}.wy-menu-vertical a:active{background-color:#2980b9;cursor:pointer;color:#fff}.wy-menu-vertical a:active button.toctree-expand{color:#fff}.wy-side-nav-search{display:block;width:300px;padding:.809em;margin-bottom:.809em;z-index:200;background-color:#2980b9;text-align:center;color:#fcfcfc}.wy-side-nav-search input[type=text]{width:100%;border-radius:50px;padding:6px 12px;border-color:#2472a4}.wy-side-nav-search img{display:block;margin:auto auto .809em;height:45px;width:45px;background-color:#2980b9;padding:5px;border-radius:100%}.wy-side-nav-search .wy-dropdown>a,.wy-side-nav-search>a{color:#fcfcfc;font-size:100%;font-weight:700;display:inline-block;padding:4px 6px;margin-bottom:.809em;max-width:100%}.wy-side-nav-search .wy-dropdown>a:hover,.wy-side-nav-search .wy-dropdown>aactive,.wy-side-nav-search .wy-dropdown>afocus,.wy-side-nav-search>a:hover,.wy-side-nav-search>aactive,.wy-side-nav-search>afocus{background:hsla(0,0%,100%,.1)}.wy-side-nav-search .wy-dropdown>a img.logo,.wy-side-nav-search>a img.logo{display:block;margin:0 auto;height:auto;width:auto;border-radius:0;max-width:100%;background:transparent}.wy-side-nav-search .wy-dropdown>a.icon,.wy-side-nav-search>a.icon{display:block}.wy-side-nav-search .wy-dropdown>a.icon img.logo,.wy-side-nav-search>a.icon img.logo{margin-top:.85em}.wy-side-nav-search>div.switch-menus{position:relative;display:block;margin-top:-.4045em;margin-bottom:.809em;font-weight:400;color:hsla(0,0%,100%,.3)}.wy-side-nav-search>div.switch-menus>div.language-switch,.wy-side-nav-search>div.switch-menus>div.version-switch{display:inline-block;padding:.2em}.wy-side-nav-search>div.switch-menus>div.language-switch select,.wy-side-nav-search>div.switch-menus>div.version-switch select{display:inline-block;margin-right:-2rem;padding-right:2rem;max-width:240px;text-align-last:center;background:none;border:none;border-radius:0;box-shadow:none;font-family:Lato,proxima-nova,Helvetica Neue,Arial,sans-serif;font-size:1em;font-weight:400;color:hsla(0,0%,100%,.3);cursor:pointer;appearance:none;-webkit-appearance:none;-moz-appearance:none}.wy-side-nav-search>div.switch-menus>div.language-switch select:active,.wy-side-nav-search>div.switch-menus>div.language-switch select:focus,.wy-side-nav-search>div.switch-menus>div.language-switch select:hover,.wy-side-nav-search>div.switch-menus>div.version-switch select:active,.wy-side-nav-search>div.switch-menus>div.version-switch select:focus,.wy-side-nav-search>div.switch-menus>div.version-switch select:hover{background:hsla(0,0%,100%,.1);color:hsla(0,0%,100%,.5)}.wy-side-nav-search>div.switch-menus>div.language-switch select option,.wy-side-nav-search>div.switch-menus>div.version-switch select option{color:#000}.wy-side-nav-search>div.switch-menus>div.language-switch:has(>select):after,.wy-side-nav-search>div.switch-menus>div.version-switch:has(>select):after{display:inline-block;width:1.5em;height:100%;padding:.1em;content:"\f0d7";font-size:1em;line-height:1.2em;font-family:FontAwesome;text-align:center;pointer-events:none;box-sizing:border-box}.wy-nav .wy-menu-vertical header{color:#2980b9}.wy-nav .wy-menu-vertical a{color:#b3b3b3}.wy-nav .wy-menu-vertical a:hover{background-color:#2980b9;color:#fff}[data-menu-wrap]{-webkit-transition:all .2s ease-in;-moz-transition:all .2s ease-in;transition:all .2s ease-in;position:absolute;opacity:1;width:100%;opacity:0}[data-menu-wrap].move-center{left:0;right:auto;opacity:1}[data-menu-wrap].move-left{right:auto;left:-100%;opacity:0}[data-menu-wrap].move-right{right:-100%;left:auto;opacity:0}.wy-body-for-nav{background:#fcfcfc}.wy-grid-for-nav{position:absolute;width:100%;height:100%}.wy-nav-side{position:fixed;top:0;bottom:0;left:0;padding-bottom:2em;width:300px;overflow-x:hidden;overflow-y:hidden;min-height:100%;color:#9b9b9b;background:#343131;z-index:200}.wy-side-scroll{width:320px;position:relative;overflow-x:hidden;overflow-y:scroll;height:100%}.wy-nav-top{display:none;background:#2980b9;color:#fff;padding:.4045em .809em;position:relative;line-height:50px;text-align:center;font-size:100%;*zoom:1}.wy-nav-top:after,.wy-nav-top:before{display:table;content:""}.wy-nav-top:after{clear:both}.wy-nav-top a{color:#fff;font-weight:700}.wy-nav-top img{margin-right:12px;height:45px;width:45px;background-color:#2980b9;padding:5px;border-radius:100%}.wy-nav-top i{font-size:30px;float:left;cursor:pointer;padding-top:inherit}.wy-nav-content-wrap{margin-left:300px;background:#fcfcfc;min-height:100%}.wy-nav-content{padding:1.618em 3.236em;height:100%;max-width:800px;margin:auto}.wy-body-mask{position:fixed;width:100%;height:100%;background:rgba(0,0,0,.2);display:none;z-index:499}.wy-body-mask.on{display:block}footer{color:grey}footer p{margin-bottom:12px}.rst-content footer span.commit tt,footer span.commit .rst-content tt,footer span.commit code{padding:0;font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,Courier,monospace;font-size:1em;background:none;border:none;color:grey}.rst-footer-buttons{*zoom:1}.rst-footer-buttons:after,.rst-footer-buttons:before{width:100%;display:table;content:""}.rst-footer-buttons:after{clear:both}.rst-breadcrumbs-buttons{margin-top:12px;*zoom:1}.rst-breadcrumbs-buttons:after,.rst-breadcrumbs-buttons:before{display:table;content:""}.rst-breadcrumbs-buttons:after{clear:both}#search-results .search li{margin-bottom:24px;border-bottom:1px solid #e1e4e5;padding-bottom:24px}#search-results .search li:first-child{border-top:1px solid #e1e4e5;padding-top:24px}#search-results .search li a{font-size:120%;margin-bottom:12px;display:inline-block}#search-results .context{color:grey;font-size:90%}.genindextable li>ul{margin-left:24px}@media screen and (max-width:768px){.wy-body-for-nav{background:#fcfcfc}.wy-nav-top{display:block}.wy-nav-side{left:-300px}.wy-nav-side.shift{width:85%;left:0}.wy-menu.wy-menu-vertical,.wy-side-nav-search,.wy-side-scroll{width:auto}.wy-nav-content-wrap{margin-left:0}.wy-nav-content-wrap .wy-nav-content{padding:1.618em}.wy-nav-content-wrap.shift{position:fixed;min-width:100%;left:85%;top:0;height:100%;overflow:hidden}}@media screen and (min-width:1100px){.wy-nav-content-wrap{background:rgba(0,0,0,.05)}.wy-nav-content{margin:0;background:#fcfcfc}}@media print{.rst-versions,.wy-nav-side,footer{display:none}.wy-nav-content-wrap{margin-left:0}}.rst-versions{position:fixed;bottom:0;left:0;width:300px;color:#fcfcfc;background:#1f1d1d;font-family:Lato,proxima-nova,Helvetica Neue,Arial,sans-serif;z-index:400}.rst-versions a{color:#2980b9;text-decoration:none}.rst-versions .rst-badge-small{display:none}.rst-versions .rst-current-version{padding:12px;background-color:#272525;display:block;text-align:right;font-size:90%;cursor:pointer;color:#27ae60;*zoom:1}.rst-versions .rst-current-version:after,.rst-versions .rst-current-version:before{display:table;content:""}.rst-versions .rst-current-version:after{clear:both}.rst-content .code-block-caption .rst-versions .rst-current-version .headerlink,.rst-content .eqno .rst-versions .rst-current-version .headerlink,.rst-content .rst-versions .rst-current-version .admonition-title,.rst-content code.download .rst-versions .rst-current-version span:first-child,.rst-content dl dt .rst-versions .rst-current-version .headerlink,.rst-content h1 .rst-versions .rst-current-version .headerlink,.rst-content h2 .rst-versions .rst-current-version .headerlink,.rst-content h3 .rst-versions .rst-current-version .headerlink,.rst-content h4 .rst-versions .rst-current-version .headerlink,.rst-content h5 .rst-versions .rst-current-version .headerlink,.rst-content h6 .rst-versions .rst-current-version .headerlink,.rst-content p .rst-versions .rst-current-version .headerlink,.rst-content table>caption .rst-versions .rst-current-version .headerlink,.rst-content tt.download .rst-versions .rst-current-version span:first-child,.rst-versions .rst-current-version .fa,.rst-versions .rst-current-version .icon,.rst-versions .rst-current-version .rst-content .admonition-title,.rst-versions .rst-current-version .rst-content .code-block-caption .headerlink,.rst-versions .rst-current-version .rst-content .eqno .headerlink,.rst-versions .rst-current-version .rst-content code.download span:first-child,.rst-versions .rst-current-version .rst-content dl dt .headerlink,.rst-versions .rst-current-version .rst-content h1 .headerlink,.rst-versions .rst-current-version .rst-content h2 .headerlink,.rst-versions .rst-current-version .rst-content h3 .headerlink,.rst-versions .rst-current-version .rst-content h4 .headerlink,.rst-versions .rst-current-version .rst-content h5 .headerlink,.rst-versions .rst-current-version .rst-content h6 .headerlink,.rst-versions .rst-current-version .rst-content p .headerlink,.rst-versions .rst-current-version .rst-content table>caption .headerlink,.rst-versions .rst-current-version .rst-content tt.download span:first-child,.rst-versions .rst-current-version .wy-menu-vertical li button.toctree-expand,.wy-menu-vertical li .rst-versions .rst-current-version button.toctree-expand{color:#fcfcfc}.rst-versions .rst-current-version .fa-book,.rst-versions .rst-current-version .icon-book{float:left}.rst-versions .rst-current-version.rst-out-of-date{background-color:#e74c3c;color:#fff}.rst-versions .rst-current-version.rst-active-old-version{background-color:#f1c40f;color:#000}.rst-versions.shift-up{height:auto;max-height:100%;overflow-y:scroll}.rst-versions.shift-up .rst-other-versions{display:block}.rst-versions .rst-other-versions{font-size:90%;padding:12px;color:grey;display:none}.rst-versions .rst-other-versions hr{display:block;height:1px;border:0;margin:20px 0;padding:0;border-top:1px solid #413d3d}.rst-versions .rst-other-versions dd{display:inline-block;margin:0}.rst-versions .rst-other-versions dd a{display:inline-block;padding:6px;color:#fcfcfc}.rst-versions .rst-other-versions .rtd-current-item{font-weight:700}.rst-versions.rst-badge{width:auto;bottom:20px;right:20px;left:auto;border:none;max-width:300px;max-height:90%}.rst-versions.rst-badge .fa-book,.rst-versions.rst-badge .icon-book{float:none;line-height:30px}.rst-versions.rst-badge.shift-up .rst-current-version{text-align:right}.rst-versions.rst-badge.shift-up .rst-current-version .fa-book,.rst-versions.rst-badge.shift-up .rst-current-version .icon-book{float:left}.rst-versions.rst-badge>.rst-current-version{width:auto;height:30px;line-height:30px;padding:0 6px;display:block;text-align:center}@media screen and (max-width:768px){.rst-versions{width:85%;display:none}.rst-versions.shift{display:block}}#flyout-search-form{padding:6px}.rst-content .toctree-wrapper>p.caption,.rst-content h1,.rst-content h2,.rst-content h3,.rst-content h4,.rst-content h5,.rst-content h6{margin-bottom:24px}.rst-content img{max-width:100%;height:auto}.rst-content div.figure,.rst-content figure{margin-bottom:24px}.rst-content div.figure .caption-text,.rst-content figure .caption-text{font-style:italic}.rst-content div.figure p:last-child.caption,.rst-content figure p:last-child.caption{margin-bottom:0}.rst-content div.figure.align-center,.rst-content figure.align-center{text-align:center}.rst-content .section>a>img,.rst-content .section>img,.rst-content section>a>img,.rst-content section>img{margin-bottom:24px}.rst-content abbr[title]{text-decoration:none}.rst-content.style-external-links a.reference.external:after{font-family:FontAwesome;content:"\f08e";color:#b3b3b3;vertical-align:super;font-size:60%;margin:0 .2em}.rst-content blockquote{margin-left:24px;line-height:24px;margin-bottom:24px}.rst-content pre.literal-block{white-space:pre;margin:0;padding:12px;font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,Courier,monospace;display:block;overflow:auto}.rst-content div[class^=highlight],.rst-content pre.literal-block{border:1px solid #e1e4e5;overflow-x:auto;margin:1px 0 24px}.rst-content div[class^=highlight] div[class^=highlight],.rst-content pre.literal-block div[class^=highlight]{padding:0;border:none;margin:0}.rst-content div[class^=highlight] td.code{width:100%}.rst-content .linenodiv pre{border-right:1px solid #e6e9ea;margin:0;padding:12px;font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,Courier,monospace;user-select:none;pointer-events:none}.rst-content div[class^=highlight] pre{white-space:pre;margin:0;padding:12px;display:block;overflow:auto}.rst-content div[class^=highlight] pre .hll{display:block;margin:0 -12px;padding:0 12px}.rst-content .linenodiv pre,.rst-content div[class^=highlight] pre,.rst-content pre.literal-block{font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,Courier,monospace;font-size:12px;line-height:1.4}.rst-content div.highlight .gp,.rst-content div.highlight span.linenos{user-select:none;pointer-events:none}.rst-content div.highlight span.linenos{display:inline-block;padding-left:0;padding-right:12px;margin-right:12px;border-right:1px solid #e6e9ea}.rst-content .code-block-caption{font-style:italic;font-size:85%;line-height:1;padding:1em 0;text-align:center}@media print{.rst-content .codeblock,.rst-content div[class^=highlight],.rst-content div[class^=highlight] pre{white-space:pre-wrap}}.rst-content .admonition,.rst-content .admonition-todo,.rst-content .attention,.rst-content .caution,.rst-content .danger,.rst-content .error,.rst-content .hint,.rst-content .important,.rst-content .note,.rst-content .seealso,.rst-content .tip,.rst-content .warning{clear:both}.rst-content .admonition-todo .last,.rst-content .admonition-todo>:last-child,.rst-content .admonition .last,.rst-content .admonition>:last-child,.rst-content .attention .last,.rst-content .attention>:last-child,.rst-content .caution .last,.rst-content .caution>:last-child,.rst-content .danger .last,.rst-content .danger>:last-child,.rst-content .error .last,.rst-content .error>:last-child,.rst-content .hint .last,.rst-content .hint>:last-child,.rst-content .important .last,.rst-content .important>:last-child,.rst-content .note .last,.rst-content .note>:last-child,.rst-content .seealso .last,.rst-content .seealso>:last-child,.rst-content .tip .last,.rst-content .tip>:last-child,.rst-content .warning .last,.rst-content .warning>:last-child{margin-bottom:0}.rst-content .admonition-title:before{margin-right:4px}.rst-content .admonition table{border-color:rgba(0,0,0,.1)}.rst-content .admonition table td,.rst-content .admonition table th{background:transparent!important;border-color:rgba(0,0,0,.1)!important}.rst-content .section ol.loweralpha,.rst-content .section ol.loweralpha>li,.rst-content .toctree-wrapper ol.loweralpha,.rst-content .toctree-wrapper ol.loweralpha>li,.rst-content section ol.loweralpha,.rst-content section ol.loweralpha>li{list-style:lower-alpha}.rst-content .section ol.upperalpha,.rst-content .section ol.upperalpha>li,.rst-content .toctree-wrapper ol.upperalpha,.rst-content .toctree-wrapper ol.upperalpha>li,.rst-content section ol.upperalpha,.rst-content section ol.upperalpha>li{list-style:upper-alpha}.rst-content .section ol li>*,.rst-content .section ul li>*,.rst-content .toctree-wrapper ol li>*,.rst-content .toctree-wrapper ul li>*,.rst-content section ol li>*,.rst-content section ul li>*{margin-top:12px;margin-bottom:12px}.rst-content .section ol li>:first-child,.rst-content .section ul li>:first-child,.rst-content .toctree-wrapper ol li>:first-child,.rst-content .toctree-wrapper ul li>:first-child,.rst-content section ol li>:first-child,.rst-content section ul li>:first-child{margin-top:0}.rst-content .section ol li>p,.rst-content .section ol li>p:last-child,.rst-content .section ul li>p,.rst-content .section ul li>p:last-child,.rst-content .toctree-wrapper ol li>p,.rst-content .toctree-wrapper ol li>p:last-child,.rst-content .toctree-wrapper ul li>p,.rst-content .toctree-wrapper ul li>p:last-child,.rst-content section ol li>p,.rst-content section ol li>p:last-child,.rst-content section ul li>p,.rst-content section ul li>p:last-child{margin-bottom:12px}.rst-content .section ol li>p:only-child,.rst-content .section ol li>p:only-child:last-child,.rst-content .section ul li>p:only-child,.rst-content .section ul li>p:only-child:last-child,.rst-content .toctree-wrapper ol li>p:only-child,.rst-content .toctree-wrapper ol li>p:only-child:last-child,.rst-content .toctree-wrapper ul li>p:only-child,.rst-content .toctree-wrapper ul li>p:only-child:last-child,.rst-content section ol li>p:only-child,.rst-content section ol li>p:only-child:last-child,.rst-content section ul li>p:only-child,.rst-content section ul li>p:only-child:last-child{margin-bottom:0}.rst-content .section ol li>ol,.rst-content .section ol li>ul,.rst-content .section ul li>ol,.rst-content .section ul li>ul,.rst-content .toctree-wrapper ol li>ol,.rst-content .toctree-wrapper ol li>ul,.rst-content .toctree-wrapper ul li>ol,.rst-content .toctree-wrapper ul li>ul,.rst-content section ol li>ol,.rst-content section ol li>ul,.rst-content section ul li>ol,.rst-content section ul li>ul{margin-bottom:12px}.rst-content .section ol.simple li>*,.rst-content .section ol.simple li ol,.rst-content .section ol.simple li ul,.rst-content .section ul.simple li>*,.rst-content .section ul.simple li ol,.rst-content .section ul.simple li ul,.rst-content .toctree-wrapper ol.simple li>*,.rst-content .toctree-wrapper ol.simple li ol,.rst-content .toctree-wrapper ol.simple li ul,.rst-content .toctree-wrapper ul.simple li>*,.rst-content .toctree-wrapper ul.simple li ol,.rst-content .toctree-wrapper ul.simple li ul,.rst-content section ol.simple li>*,.rst-content section ol.simple li ol,.rst-content section ol.simple li ul,.rst-content section ul.simple li>*,.rst-content section ul.simple li ol,.rst-content section ul.simple li ul{margin-top:0;margin-bottom:0}.rst-content .line-block{margin-left:0;margin-bottom:24px;line-height:24px}.rst-content .line-block .line-block{margin-left:24px;margin-bottom:0}.rst-content .topic-title{font-weight:700;margin-bottom:12px}.rst-content .toc-backref{color:#404040}.rst-content .align-right{float:right;margin:0 0 24px 24px}.rst-content .align-left{float:left;margin:0 24px 24px 0}.rst-content .align-center{margin:auto}.rst-content .align-center:not(table){display:block}.rst-content .code-block-caption .headerlink,.rst-content .eqno .headerlink,.rst-content .toctree-wrapper>p.caption .headerlink,.rst-content dl dt .headerlink,.rst-content h1 .headerlink,.rst-content h2 .headerlink,.rst-content h3 .headerlink,.rst-content h4 .headerlink,.rst-content h5 .headerlink,.rst-content h6 .headerlink,.rst-content p.caption .headerlink,.rst-content p .headerlink,.rst-content table>caption .headerlink{opacity:0;font-size:14px;font-family:FontAwesome;margin-left:.5em}.rst-content .code-block-caption .headerlink:focus,.rst-content .code-block-caption:hover .headerlink,.rst-content .eqno .headerlink:focus,.rst-content .eqno:hover .headerlink,.rst-content .toctree-wrapper>p.caption .headerlink:focus,.rst-content .toctree-wrapper>p.caption:hover .headerlink,.rst-content dl dt .headerlink:focus,.rst-content dl dt:hover .headerlink,.rst-content h1 .headerlink:focus,.rst-content h1:hover .headerlink,.rst-content h2 .headerlink:focus,.rst-content h2:hover .headerlink,.rst-content h3 .headerlink:focus,.rst-content h3:hover .headerlink,.rst-content h4 .headerlink:focus,.rst-content h4:hover .headerlink,.rst-content h5 .headerlink:focus,.rst-content h5:hover .headerlink,.rst-content h6 .headerlink:focus,.rst-content h6:hover .headerlink,.rst-content p.caption .headerlink:focus,.rst-content p.caption:hover .headerlink,.rst-content p .headerlink:focus,.rst-content p:hover .headerlink,.rst-content table>caption .headerlink:focus,.rst-content table>caption:hover .headerlink{opacity:1}.rst-content p a{overflow-wrap:anywhere}.rst-content .wy-table td p,.rst-content .wy-table td ul,.rst-content .wy-table th p,.rst-content .wy-table th ul,.rst-content table.docutils td p,.rst-content table.docutils td ul,.rst-content table.docutils th p,.rst-content table.docutils th ul,.rst-content table.field-list td p,.rst-content table.field-list td ul,.rst-content table.field-list th p,.rst-content table.field-list th ul{font-size:inherit}.rst-content .btn:focus{outline:2px solid}.rst-content table>caption .headerlink:after{font-size:12px}.rst-content .centered{text-align:center}.rst-content .sidebar{float:right;width:40%;display:block;margin:0 0 24px 24px;padding:24px;background:#f3f6f6;border:1px solid #e1e4e5}.rst-content .sidebar dl,.rst-content .sidebar p,.rst-content .sidebar ul{font-size:90%}.rst-content .sidebar .last,.rst-content .sidebar>:last-child{margin-bottom:0}.rst-content .sidebar .sidebar-title{display:block;font-family:Roboto Slab,ff-tisa-web-pro,Georgia,Arial,sans-serif;font-weight:700;background:#e1e4e5;padding:6px 12px;margin:-24px -24px 24px;font-size:100%}.rst-content .highlighted{background:#f1c40f;box-shadow:0 0 0 2px #f1c40f;display:inline;font-weight:700}.rst-content .citation-reference,.rst-content .footnote-reference{vertical-align:baseline;position:relative;top:-.4em;line-height:0;font-size:90%}.rst-content .citation-reference>span.fn-bracket,.rst-content .footnote-reference>span.fn-bracket{display:none}.rst-content .hlist{width:100%}.rst-content dl dt span.classifier:before{content:" : "}.rst-content dl dt span.classifier-delimiter{display:none!important}html.writer-html4 .rst-content table.docutils.citation,html.writer-html4 .rst-content table.docutils.footnote{background:none;border:none}html.writer-html4 .rst-content table.docutils.citation td,html.writer-html4 .rst-content table.docutils.citation tr,html.writer-html4 .rst-content table.docutils.footnote td,html.writer-html4 .rst-content table.docutils.footnote tr{border:none;background-color:transparent!important;white-space:normal}html.writer-html4 .rst-content table.docutils.citation td.label,html.writer-html4 .rst-content table.docutils.footnote td.label{padding-left:0;padding-right:0;vertical-align:top}html.writer-html5 .rst-content dl.citation,html.writer-html5 .rst-content dl.field-list,html.writer-html5 .rst-content dl.footnote{display:grid;grid-template-columns:auto minmax(80%,95%)}html.writer-html5 .rst-content dl.citation>dt,html.writer-html5 .rst-content dl.field-list>dt,html.writer-html5 .rst-content dl.footnote>dt{display:inline-grid;grid-template-columns:max-content auto}html.writer-html5 .rst-content aside.citation,html.writer-html5 .rst-content aside.footnote,html.writer-html5 .rst-content div.citation{display:grid;grid-template-columns:auto auto minmax(.65rem,auto) minmax(40%,95%)}html.writer-html5 .rst-content aside.citation>span.label,html.writer-html5 .rst-content aside.footnote>span.label,html.writer-html5 .rst-content div.citation>span.label{grid-column-start:1;grid-column-end:2}html.writer-html5 .rst-content aside.citation>span.backrefs,html.writer-html5 .rst-content aside.footnote>span.backrefs,html.writer-html5 .rst-content div.citation>span.backrefs{grid-column-start:2;grid-column-end:3;grid-row-start:1;grid-row-end:3}html.writer-html5 .rst-content aside.citation>p,html.writer-html5 .rst-content aside.footnote>p,html.writer-html5 .rst-content div.citation>p{grid-column-start:4;grid-column-end:5}html.writer-html5 .rst-content dl.citation,html.writer-html5 .rst-content dl.field-list,html.writer-html5 .rst-content dl.footnote{margin-bottom:24px}html.writer-html5 .rst-content dl.citation>dt,html.writer-html5 .rst-content dl.field-list>dt,html.writer-html5 .rst-content dl.footnote>dt{padding-left:1rem}html.writer-html5 .rst-content dl.citation>dd,html.writer-html5 .rst-content dl.citation>dt,html.writer-html5 .rst-content dl.field-list>dd,html.writer-html5 .rst-content dl.field-list>dt,html.writer-html5 .rst-content dl.footnote>dd,html.writer-html5 .rst-content dl.footnote>dt{margin-bottom:0}html.writer-html5 .rst-content dl.citation,html.writer-html5 .rst-content dl.footnote{font-size:.9rem}html.writer-html5 .rst-content dl.citation>dt,html.writer-html5 .rst-content dl.footnote>dt{margin:0 .5rem .5rem 0;line-height:1.2rem;word-break:break-all;font-weight:400}html.writer-html5 .rst-content dl.citation>dt>span.brackets:before,html.writer-html5 .rst-content dl.footnote>dt>span.brackets:before{content:"["}html.writer-html5 .rst-content dl.citation>dt>span.brackets:after,html.writer-html5 .rst-content dl.footnote>dt>span.brackets:after{content:"]"}html.writer-html5 .rst-content dl.citation>dt>span.fn-backref,html.writer-html5 .rst-content dl.footnote>dt>span.fn-backref{text-align:left;font-style:italic;margin-left:.65rem;word-break:break-word;word-spacing:-.1rem;max-width:5rem}html.writer-html5 .rst-content dl.citation>dt>span.fn-backref>a,html.writer-html5 .rst-content dl.footnote>dt>span.fn-backref>a{word-break:keep-all}html.writer-html5 .rst-content dl.citation>dt>span.fn-backref>a:not(:first-child):before,html.writer-html5 .rst-content dl.footnote>dt>span.fn-backref>a:not(:first-child):before{content:" "}html.writer-html5 .rst-content dl.citation>dd,html.writer-html5 .rst-content dl.footnote>dd{margin:0 0 .5rem;line-height:1.2rem}html.writer-html5 .rst-content dl.citation>dd p,html.writer-html5 .rst-content dl.footnote>dd p{font-size:.9rem}html.writer-html5 .rst-content aside.citation,html.writer-html5 .rst-content aside.footnote,html.writer-html5 .rst-content div.citation{padding-left:1rem;padding-right:1rem;font-size:.9rem;line-height:1.2rem}html.writer-html5 .rst-content aside.citation p,html.writer-html5 .rst-content aside.footnote p,html.writer-html5 .rst-content div.citation p{font-size:.9rem;line-height:1.2rem;margin-bottom:12px}html.writer-html5 .rst-content aside.citation span.backrefs,html.writer-html5 .rst-content aside.footnote span.backrefs,html.writer-html5 .rst-content div.citation span.backrefs{text-align:left;font-style:italic;margin-left:.65rem;word-break:break-word;word-spacing:-.1rem;max-width:5rem}html.writer-html5 .rst-content aside.citation span.backrefs>a,html.writer-html5 .rst-content aside.footnote span.backrefs>a,html.writer-html5 .rst-content div.citation span.backrefs>a{word-break:keep-all}html.writer-html5 .rst-content aside.citation span.backrefs>a:not(:first-child):before,html.writer-html5 .rst-content aside.footnote span.backrefs>a:not(:first-child):before,html.writer-html5 .rst-content div.citation span.backrefs>a:not(:first-child):before{content:" "}html.writer-html5 .rst-content aside.citation span.label,html.writer-html5 .rst-content aside.footnote span.label,html.writer-html5 .rst-content div.citation span.label{line-height:1.2rem}html.writer-html5 .rst-content aside.citation-list,html.writer-html5 .rst-content aside.footnote-list,html.writer-html5 .rst-content div.citation-list{margin-bottom:24px}html.writer-html5 .rst-content dl.option-list kbd{font-size:.9rem}.rst-content table.docutils.footnote,html.writer-html4 .rst-content table.docutils.citation,html.writer-html5 .rst-content aside.footnote,html.writer-html5 .rst-content aside.footnote-list aside.footnote,html.writer-html5 .rst-content div.citation-list>div.citation,html.writer-html5 .rst-content dl.citation,html.writer-html5 .rst-content dl.footnote{color:grey}.rst-content table.docutils.footnote code,.rst-content table.docutils.footnote tt,html.writer-html4 .rst-content table.docutils.citation code,html.writer-html4 .rst-content table.docutils.citation tt,html.writer-html5 .rst-content aside.footnote-list aside.footnote code,html.writer-html5 .rst-content aside.footnote-list aside.footnote tt,html.writer-html5 .rst-content aside.footnote code,html.writer-html5 .rst-content aside.footnote tt,html.writer-html5 .rst-content div.citation-list>div.citation code,html.writer-html5 .rst-content div.citation-list>div.citation tt,html.writer-html5 .rst-content dl.citation code,html.writer-html5 .rst-content dl.citation tt,html.writer-html5 .rst-content dl.footnote code,html.writer-html5 .rst-content dl.footnote tt{color:#555}.rst-content .wy-table-responsive.citation,.rst-content .wy-table-responsive.footnote{margin-bottom:0}.rst-content .wy-table-responsive.citation+:not(.citation),.rst-content .wy-table-responsive.footnote+:not(.footnote){margin-top:24px}.rst-content .wy-table-responsive.citation:last-child,.rst-content .wy-table-responsive.footnote:last-child{margin-bottom:24px}.rst-content table.docutils th{border-color:#e1e4e5}html.writer-html5 .rst-content table.docutils th{border:1px solid #e1e4e5}html.writer-html5 .rst-content table.docutils td>p,html.writer-html5 .rst-content table.docutils th>p{line-height:1rem;margin-bottom:0;font-size:.9rem}.rst-content table.docutils td .last,.rst-content table.docutils td .last>:last-child{margin-bottom:0}.rst-content table.field-list,.rst-content table.field-list td{border:none}.rst-content table.field-list td p{line-height:inherit}.rst-content table.field-list td>strong{display:inline-block}.rst-content table.field-list .field-name{padding-right:10px;text-align:left;white-space:nowrap}.rst-content table.field-list .field-body{text-align:left}.rst-content code,.rst-content tt{color:#000;font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,Courier,monospace;padding:2px 5px}.rst-content code big,.rst-content code em,.rst-content tt big,.rst-content tt em{font-size:100%!important;line-height:normal}.rst-content code.literal,.rst-content tt.literal{color:#e74c3c;white-space:normal}.rst-content code.xref,.rst-content tt.xref,a .rst-content code,a .rst-content tt{font-weight:700;color:#404040;overflow-wrap:normal}.rst-content kbd,.rst-content pre,.rst-content samp{font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,Courier,monospace}.rst-content a code,.rst-content a tt{color:#2980b9}.rst-content dl{margin-bottom:24px}.rst-content dl dt{font-weight:700;margin-bottom:12px}.rst-content dl ol,.rst-content dl p,.rst-content dl table,.rst-content dl ul{margin-bottom:12px}.rst-content dl dd{margin:0 0 12px 24px;line-height:24px}.rst-content dl dd>ol:last-child,.rst-content dl dd>p:last-child,.rst-content dl dd>table:last-child,.rst-content dl dd>ul:last-child{margin-bottom:0}html.writer-html4 .rst-content dl:not(.docutils),html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple){margin-bottom:24px}html.writer-html4 .rst-content dl:not(.docutils)>dt,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple)>dt{display:table;margin:6px 0;font-size:90%;line-height:normal;background:#e7f2fa;color:#2980b9;border-top:3px solid #6ab0de;padding:6px;position:relative}html.writer-html4 .rst-content dl:not(.docutils)>dt:before,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple)>dt:before{color:#6ab0de}html.writer-html4 .rst-content dl:not(.docutils)>dt .headerlink,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple)>dt .headerlink{color:#404040;font-size:100%!important}html.writer-html4 .rst-content dl:not(.docutils) dl:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple)>dt,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) dl:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple)>dt{margin-bottom:6px;border:none;border-left:3px solid #ccc;background:#f0f0f0;color:#555}html.writer-html4 .rst-content dl:not(.docutils) dl:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple)>dt .headerlink,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) dl:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple)>dt .headerlink{color:#404040;font-size:100%!important}html.writer-html4 .rst-content dl:not(.docutils)>dt:first-child,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple)>dt:first-child{margin-top:0}html.writer-html4 .rst-content dl:not(.docutils) code.descclassname,html.writer-html4 .rst-content dl:not(.docutils) code.descname,html.writer-html4 .rst-content dl:not(.docutils) tt.descclassname,html.writer-html4 .rst-content dl:not(.docutils) tt.descname,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) code.descclassname,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) code.descname,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) tt.descclassname,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) tt.descname{background-color:transparent;border:none;padding:0;font-size:100%!important}html.writer-html4 .rst-content dl:not(.docutils) code.descname,html.writer-html4 .rst-content dl:not(.docutils) tt.descname,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) code.descname,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) tt.descname{font-weight:700}html.writer-html4 .rst-content dl:not(.docutils) .optional,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) .optional{display:inline-block;padding:0 4px;color:#000;font-weight:700}html.writer-html4 .rst-content dl:not(.docutils) .property,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) .property{display:inline-block;padding-right:8px;max-width:100%}html.writer-html4 .rst-content dl:not(.docutils) .k,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) .k{font-style:italic}html.writer-html4 .rst-content dl:not(.docutils) .descclassname,html.writer-html4 .rst-content dl:not(.docutils) .descname,html.writer-html4 .rst-content dl:not(.docutils) .sig-name,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) .descclassname,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) .descname,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) .sig-name{font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,Courier,monospace;color:#000}.rst-content .viewcode-back,.rst-content .viewcode-link{display:inline-block;color:#27ae60;font-size:80%;padding-left:24px}.rst-content .viewcode-back{display:block;float:right}.rst-content p.rubric{margin-bottom:12px;font-weight:700}.rst-content code.download,.rst-content tt.download{background:inherit;padding:inherit;font-weight:400;font-family:inherit;font-size:inherit;color:inherit;border:inherit;white-space:inherit}.rst-content code.download span:first-child,.rst-content tt.download span:first-child{-webkit-font-smoothing:subpixel-antialiased}.rst-content code.download span:first-child:before,.rst-content tt.download span:first-child:before{margin-right:4px}.rst-content .guilabel,.rst-content .menuselection{font-size:80%;font-weight:700;border-radius:4px;padding:2.4px 6px;margin:auto 2px}.rst-content .guilabel,.rst-content .menuselection{border:1px solid #7fbbe3;background:#e7f2fa}.rst-content :not(dl.option-list)>:not(dt):not(kbd):not(.kbd)>.kbd,.rst-content :not(dl.option-list)>:not(dt):not(kbd):not(.kbd)>kbd{color:inherit;font-size:80%;background-color:#fff;border:1px solid #a6a6a6;border-radius:4px;box-shadow:0 2px grey;padding:2.4px 6px;margin:auto 0}.rst-content .versionmodified{font-style:italic}@media screen and (max-width:480px){.rst-content .sidebar{width:100%;float:none;margin-left:0}}span[id*=MathJax-Span]{color:#404040}.math{text-align:center}@font-face{font-family:Lato;src:url(fonts/lato-normal.woff2?bd03a2cc277bbbc338d464e679fe9942) format("woff2"),url(fonts/lato-normal.woff?27bd77b9162d388cb8d4c4217c7c5e2a) format("woff");font-weight:400;font-style:normal;font-display:block}@font-face{font-family:Lato;src:url(fonts/lato-bold.woff2?cccb897485813c7c256901dbca54ecf2) format("woff2"),url(fonts/lato-bold.woff?d878b6c29b10beca227e9eef4246111b) format("woff");font-weight:700;font-style:normal;font-display:block}@font-face{font-family:Lato;src:url(fonts/lato-bold-italic.woff2?0b6bb6725576b072c5d0b02ecdd1900d) format("woff2"),url(fonts/lato-bold-italic.woff?9c7e4e9eb485b4a121c760e61bc3707c) format("woff");font-weight:700;font-style:italic;font-display:block}@font-face{font-family:Lato;src:url(fonts/lato-normal-italic.woff2?4eb103b4d12be57cb1d040ed5e162e9d) format("woff2"),url(fonts/lato-normal-italic.woff?f28f2d6482446544ef1ea1ccc6dd5892) format("woff");font-weight:400;font-style:italic;font-display:block}@font-face{font-family:Roboto Slab;font-style:normal;font-weight:400;src:url(fonts/Roboto-Slab-Regular.woff2?7abf5b8d04d26a2cafea937019bca958) format("woff2"),url(fonts/Roboto-Slab-Regular.woff?c1be9284088d487c5e3ff0a10a92e58c) format("woff");font-display:block}@font-face{font-family:Roboto Slab;font-style:normal;font-weight:700;src:url(fonts/Roboto-Slab-Bold.woff2?9984f4a9bda09be08e83f2506954adbe) format("woff2"),url(fonts/Roboto-Slab-Bold.woff?bed5564a116b05148e3b3bea6fb1162a) format("woff");font-display:block} \ No newline at end of file diff --git a/docs/_build/html/_static/doctools.js b/docs/_build/html/_static/doctools.js index 0398ebb..807cdb1 100644 --- a/docs/_build/html/_static/doctools.js +++ b/docs/_build/html/_static/doctools.js @@ -59,7 +59,7 @@ const Documentation = { Object.assign(Documentation.TRANSLATIONS, catalog.messages); Documentation.PLURAL_EXPR = new Function( "n", - `return (${catalog.plural_expr})` + `return (${catalog.plural_expr})`, ); Documentation.LOCALE = catalog.locale; }, @@ -89,7 +89,7 @@ const Documentation = { const togglerElements = document.querySelectorAll("img.toggler"); togglerElements.forEach((el) => - el.addEventListener("click", (event) => toggler(event.currentTarget)) + el.addEventListener("click", (event) => toggler(event.currentTarget)), ); togglerElements.forEach((el) => (el.style.display = "")); if (DOCUMENTATION_OPTIONS.COLLAPSE_INDEX) togglerElements.forEach(toggler); @@ -98,14 +98,15 @@ const Documentation = { initOnKeyListeners: () => { // only install a listener if it is really needed if ( - !DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS && - !DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS + !DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS + && !DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS ) return; document.addEventListener("keydown", (event) => { // bail for input elements - if (BLACKLISTED_KEY_CONTROL_ELEMENTS.has(document.activeElement.tagName)) return; + if (BLACKLISTED_KEY_CONTROL_ELEMENTS.has(document.activeElement.tagName)) + return; // bail with special keys if (event.altKey || event.ctrlKey || event.metaKey) return; diff --git a/docs/_build/html/_static/documentation_options.js b/docs/_build/html/_static/documentation_options.js index 14a4c29..f09a25b 100644 --- a/docs/_build/html/_static/documentation_options.js +++ b/docs/_build/html/_static/documentation_options.js @@ -1,5 +1,5 @@ const DOCUMENTATION_OPTIONS = { - VERSION: '1.3.4', + VERSION: '1.3.6', LANGUAGE: 'en', COLLAPSE_INDEX: false, BUILDER: 'html', diff --git a/docs/_build/html/_static/english-stemmer.js b/docs/_build/html/_static/english-stemmer.js new file mode 100644 index 0000000..056760e --- /dev/null +++ b/docs/_build/html/_static/english-stemmer.js @@ -0,0 +1,1066 @@ +// Generated from english.sbl by Snowball 3.0.1 - https://snowballstem.org/ + +/**@constructor*/ +var EnglishStemmer = function() { + var base = new BaseStemmer(); + + /** @const */ var a_0 = [ + ["arsen", -1, -1], + ["commun", -1, -1], + ["emerg", -1, -1], + ["gener", -1, -1], + ["later", -1, -1], + ["organ", -1, -1], + ["past", -1, -1], + ["univers", -1, -1] + ]; + + /** @const */ var a_1 = [ + ["'", -1, 1], + ["'s'", 0, 1], + ["'s", -1, 1] + ]; + + /** @const */ var a_2 = [ + ["ied", -1, 2], + ["s", -1, 3], + ["ies", 1, 2], + ["sses", 1, 1], + ["ss", 1, -1], + ["us", 1, -1] + ]; + + /** @const */ var a_3 = [ + ["succ", -1, 1], + ["proc", -1, 1], + ["exc", -1, 1] + ]; + + /** @const */ var a_4 = [ + ["even", -1, 2], + ["cann", -1, 2], + ["inn", -1, 2], + ["earr", -1, 2], + ["herr", -1, 2], + ["out", -1, 2], + ["y", -1, 1] + ]; + + /** @const */ var a_5 = [ + ["", -1, -1], + ["ed", 0, 2], + ["eed", 1, 1], + ["ing", 0, 3], + ["edly", 0, 2], + ["eedly", 4, 1], + ["ingly", 0, 2] + ]; + + /** @const */ var a_6 = [ + ["", -1, 3], + ["bb", 0, 2], + ["dd", 0, 2], + ["ff", 0, 2], + ["gg", 0, 2], + ["bl", 0, 1], + ["mm", 0, 2], + ["nn", 0, 2], + ["pp", 0, 2], + ["rr", 0, 2], + ["at", 0, 1], + ["tt", 0, 2], + ["iz", 0, 1] + ]; + + /** @const */ var a_7 = [ + ["anci", -1, 3], + ["enci", -1, 2], + ["ogi", -1, 14], + ["li", -1, 16], + ["bli", 3, 12], + ["abli", 4, 4], + ["alli", 3, 8], + ["fulli", 3, 9], + ["lessli", 3, 15], + ["ousli", 3, 10], + ["entli", 3, 5], + ["aliti", -1, 8], + ["biliti", -1, 12], + ["iviti", -1, 11], + ["tional", -1, 1], + ["ational", 14, 7], + ["alism", -1, 8], + ["ation", -1, 7], + ["ization", 17, 6], + ["izer", -1, 6], + ["ator", -1, 7], + ["iveness", -1, 11], + ["fulness", -1, 9], + ["ousness", -1, 10], + ["ogist", -1, 13] + ]; + + /** @const */ var a_8 = [ + ["icate", -1, 4], + ["ative", -1, 6], + ["alize", -1, 3], + ["iciti", -1, 4], + ["ical", -1, 4], + ["tional", -1, 1], + ["ational", 5, 2], + ["ful", -1, 5], + ["ness", -1, 5] + ]; + + /** @const */ var a_9 = [ + ["ic", -1, 1], + ["ance", -1, 1], + ["ence", -1, 1], + ["able", -1, 1], + ["ible", -1, 1], + ["ate", -1, 1], + ["ive", -1, 1], + ["ize", -1, 1], + ["iti", -1, 1], + ["al", -1, 1], + ["ism", -1, 1], + ["ion", -1, 2], + ["er", -1, 1], + ["ous", -1, 1], + ["ant", -1, 1], + ["ent", -1, 1], + ["ment", 15, 1], + ["ement", 16, 1] + ]; + + /** @const */ var a_10 = [ + ["e", -1, 1], + ["l", -1, 2] + ]; + + /** @const */ var a_11 = [ + ["andes", -1, -1], + ["atlas", -1, -1], + ["bias", -1, -1], + ["cosmos", -1, -1], + ["early", -1, 5], + ["gently", -1, 3], + ["howe", -1, -1], + ["idly", -1, 2], + ["news", -1, -1], + ["only", -1, 6], + ["singly", -1, 7], + ["skies", -1, 1], + ["sky", -1, -1], + ["ugly", -1, 4] + ]; + + /** @const */ var /** Array */ g_aeo = [17, 64]; + + /** @const */ var /** Array */ g_v = [17, 65, 16, 1]; + + /** @const */ var /** Array */ g_v_WXY = [1, 17, 65, 208, 1]; + + /** @const */ var /** Array */ g_valid_LI = [55, 141, 2]; + + var /** boolean */ B_Y_found = false; + var /** number */ I_p2 = 0; + var /** number */ I_p1 = 0; + + + /** @return {boolean} */ + function r_prelude() { + B_Y_found = false; + /** @const */ var /** number */ v_1 = base.cursor; + lab0: { + base.bra = base.cursor; + if (!(base.eq_s("'"))) + { + break lab0; + } + base.ket = base.cursor; + if (!base.slice_del()) + { + return false; + } + } + base.cursor = v_1; + /** @const */ var /** number */ v_2 = base.cursor; + lab1: { + base.bra = base.cursor; + if (!(base.eq_s("y"))) + { + break lab1; + } + base.ket = base.cursor; + if (!base.slice_from("Y")) + { + return false; + } + B_Y_found = true; + } + base.cursor = v_2; + /** @const */ var /** number */ v_3 = base.cursor; + lab2: { + while(true) + { + /** @const */ var /** number */ v_4 = base.cursor; + lab3: { + golab4: while(true) + { + /** @const */ var /** number */ v_5 = base.cursor; + lab5: { + if (!(base.in_grouping(g_v, 97, 121))) + { + break lab5; + } + base.bra = base.cursor; + if (!(base.eq_s("y"))) + { + break lab5; + } + base.ket = base.cursor; + base.cursor = v_5; + break golab4; + } + base.cursor = v_5; + if (base.cursor >= base.limit) + { + break lab3; + } + base.cursor++; + } + if (!base.slice_from("Y")) + { + return false; + } + B_Y_found = true; + continue; + } + base.cursor = v_4; + break; + } + } + base.cursor = v_3; + return true; + }; + + /** @return {boolean} */ + function r_mark_regions() { + I_p1 = base.limit; + I_p2 = base.limit; + /** @const */ var /** number */ v_1 = base.cursor; + lab0: { + lab1: { + /** @const */ var /** number */ v_2 = base.cursor; + lab2: { + if (base.find_among(a_0) == 0) + { + break lab2; + } + break lab1; + } + base.cursor = v_2; + if (!base.go_out_grouping(g_v, 97, 121)) + { + break lab0; + } + base.cursor++; + if (!base.go_in_grouping(g_v, 97, 121)) + { + break lab0; + } + base.cursor++; + } + I_p1 = base.cursor; + if (!base.go_out_grouping(g_v, 97, 121)) + { + break lab0; + } + base.cursor++; + if (!base.go_in_grouping(g_v, 97, 121)) + { + break lab0; + } + base.cursor++; + I_p2 = base.cursor; + } + base.cursor = v_1; + return true; + }; + + /** @return {boolean} */ + function r_shortv() { + lab0: { + /** @const */ var /** number */ v_1 = base.limit - base.cursor; + lab1: { + if (!(base.out_grouping_b(g_v_WXY, 89, 121))) + { + break lab1; + } + if (!(base.in_grouping_b(g_v, 97, 121))) + { + break lab1; + } + if (!(base.out_grouping_b(g_v, 97, 121))) + { + break lab1; + } + break lab0; + } + base.cursor = base.limit - v_1; + lab2: { + if (!(base.out_grouping_b(g_v, 97, 121))) + { + break lab2; + } + if (!(base.in_grouping_b(g_v, 97, 121))) + { + break lab2; + } + if (base.cursor > base.limit_backward) + { + break lab2; + } + break lab0; + } + base.cursor = base.limit - v_1; + if (!(base.eq_s_b("past"))) + { + return false; + } + } + return true; + }; + + /** @return {boolean} */ + function r_R1() { + return I_p1 <= base.cursor; + }; + + /** @return {boolean} */ + function r_R2() { + return I_p2 <= base.cursor; + }; + + /** @return {boolean} */ + function r_Step_1a() { + var /** number */ among_var; + /** @const */ var /** number */ v_1 = base.limit - base.cursor; + lab0: { + base.ket = base.cursor; + if (base.find_among_b(a_1) == 0) + { + base.cursor = base.limit - v_1; + break lab0; + } + base.bra = base.cursor; + if (!base.slice_del()) + { + return false; + } + } + base.ket = base.cursor; + among_var = base.find_among_b(a_2); + if (among_var == 0) + { + return false; + } + base.bra = base.cursor; + switch (among_var) { + case 1: + if (!base.slice_from("ss")) + { + return false; + } + break; + case 2: + lab1: { + /** @const */ var /** number */ v_2 = base.limit - base.cursor; + lab2: { + { + /** @const */ var /** number */ c1 = base.cursor - 2; + if (c1 < base.limit_backward) + { + break lab2; + } + base.cursor = c1; + } + if (!base.slice_from("i")) + { + return false; + } + break lab1; + } + base.cursor = base.limit - v_2; + if (!base.slice_from("ie")) + { + return false; + } + } + break; + case 3: + if (base.cursor <= base.limit_backward) + { + return false; + } + base.cursor--; + if (!base.go_out_grouping_b(g_v, 97, 121)) + { + return false; + } + base.cursor--; + if (!base.slice_del()) + { + return false; + } + break; + } + return true; + }; + + /** @return {boolean} */ + function r_Step_1b() { + var /** number */ among_var; + base.ket = base.cursor; + among_var = base.find_among_b(a_5); + base.bra = base.cursor; + lab0: { + /** @const */ var /** number */ v_1 = base.limit - base.cursor; + lab1: { + switch (among_var) { + case 1: + /** @const */ var /** number */ v_2 = base.limit - base.cursor; + lab2: { + lab3: { + /** @const */ var /** number */ v_3 = base.limit - base.cursor; + lab4: { + if (base.find_among_b(a_3) == 0) + { + break lab4; + } + if (base.cursor > base.limit_backward) + { + break lab4; + } + break lab3; + } + base.cursor = base.limit - v_3; + if (!r_R1()) + { + break lab2; + } + if (!base.slice_from("ee")) + { + return false; + } + } + } + base.cursor = base.limit - v_2; + break; + case 2: + break lab1; + case 3: + among_var = base.find_among_b(a_4); + if (among_var == 0) + { + break lab1; + } + switch (among_var) { + case 1: + /** @const */ var /** number */ v_4 = base.limit - base.cursor; + if (!(base.out_grouping_b(g_v, 97, 121))) + { + break lab1; + } + if (base.cursor > base.limit_backward) + { + break lab1; + } + base.cursor = base.limit - v_4; + base.bra = base.cursor; + if (!base.slice_from("ie")) + { + return false; + } + break; + case 2: + if (base.cursor > base.limit_backward) + { + break lab1; + } + break; + } + break; + } + break lab0; + } + base.cursor = base.limit - v_1; + /** @const */ var /** number */ v_5 = base.limit - base.cursor; + if (!base.go_out_grouping_b(g_v, 97, 121)) + { + return false; + } + base.cursor--; + base.cursor = base.limit - v_5; + if (!base.slice_del()) + { + return false; + } + base.ket = base.cursor; + base.bra = base.cursor; + /** @const */ var /** number */ v_6 = base.limit - base.cursor; + among_var = base.find_among_b(a_6); + switch (among_var) { + case 1: + if (!base.slice_from("e")) + { + return false; + } + return false; + case 2: + { + /** @const */ var /** number */ v_7 = base.limit - base.cursor; + lab5: { + if (!(base.in_grouping_b(g_aeo, 97, 111))) + { + break lab5; + } + if (base.cursor > base.limit_backward) + { + break lab5; + } + return false; + } + base.cursor = base.limit - v_7; + } + break; + case 3: + if (base.cursor != I_p1) + { + return false; + } + /** @const */ var /** number */ v_8 = base.limit - base.cursor; + if (!r_shortv()) + { + return false; + } + base.cursor = base.limit - v_8; + if (!base.slice_from("e")) + { + return false; + } + return false; + } + base.cursor = base.limit - v_6; + base.ket = base.cursor; + if (base.cursor <= base.limit_backward) + { + return false; + } + base.cursor--; + base.bra = base.cursor; + if (!base.slice_del()) + { + return false; + } + } + return true; + }; + + /** @return {boolean} */ + function r_Step_1c() { + base.ket = base.cursor; + lab0: { + /** @const */ var /** number */ v_1 = base.limit - base.cursor; + lab1: { + if (!(base.eq_s_b("y"))) + { + break lab1; + } + break lab0; + } + base.cursor = base.limit - v_1; + if (!(base.eq_s_b("Y"))) + { + return false; + } + } + base.bra = base.cursor; + if (!(base.out_grouping_b(g_v, 97, 121))) + { + return false; + } + lab2: { + if (base.cursor > base.limit_backward) + { + break lab2; + } + return false; + } + if (!base.slice_from("i")) + { + return false; + } + return true; + }; + + /** @return {boolean} */ + function r_Step_2() { + var /** number */ among_var; + base.ket = base.cursor; + among_var = base.find_among_b(a_7); + if (among_var == 0) + { + return false; + } + base.bra = base.cursor; + if (!r_R1()) + { + return false; + } + switch (among_var) { + case 1: + if (!base.slice_from("tion")) + { + return false; + } + break; + case 2: + if (!base.slice_from("ence")) + { + return false; + } + break; + case 3: + if (!base.slice_from("ance")) + { + return false; + } + break; + case 4: + if (!base.slice_from("able")) + { + return false; + } + break; + case 5: + if (!base.slice_from("ent")) + { + return false; + } + break; + case 6: + if (!base.slice_from("ize")) + { + return false; + } + break; + case 7: + if (!base.slice_from("ate")) + { + return false; + } + break; + case 8: + if (!base.slice_from("al")) + { + return false; + } + break; + case 9: + if (!base.slice_from("ful")) + { + return false; + } + break; + case 10: + if (!base.slice_from("ous")) + { + return false; + } + break; + case 11: + if (!base.slice_from("ive")) + { + return false; + } + break; + case 12: + if (!base.slice_from("ble")) + { + return false; + } + break; + case 13: + if (!base.slice_from("og")) + { + return false; + } + break; + case 14: + if (!(base.eq_s_b("l"))) + { + return false; + } + if (!base.slice_from("og")) + { + return false; + } + break; + case 15: + if (!base.slice_from("less")) + { + return false; + } + break; + case 16: + if (!(base.in_grouping_b(g_valid_LI, 99, 116))) + { + return false; + } + if (!base.slice_del()) + { + return false; + } + break; + } + return true; + }; + + /** @return {boolean} */ + function r_Step_3() { + var /** number */ among_var; + base.ket = base.cursor; + among_var = base.find_among_b(a_8); + if (among_var == 0) + { + return false; + } + base.bra = base.cursor; + if (!r_R1()) + { + return false; + } + switch (among_var) { + case 1: + if (!base.slice_from("tion")) + { + return false; + } + break; + case 2: + if (!base.slice_from("ate")) + { + return false; + } + break; + case 3: + if (!base.slice_from("al")) + { + return false; + } + break; + case 4: + if (!base.slice_from("ic")) + { + return false; + } + break; + case 5: + if (!base.slice_del()) + { + return false; + } + break; + case 6: + if (!r_R2()) + { + return false; + } + if (!base.slice_del()) + { + return false; + } + break; + } + return true; + }; + + /** @return {boolean} */ + function r_Step_4() { + var /** number */ among_var; + base.ket = base.cursor; + among_var = base.find_among_b(a_9); + if (among_var == 0) + { + return false; + } + base.bra = base.cursor; + if (!r_R2()) + { + return false; + } + switch (among_var) { + case 1: + if (!base.slice_del()) + { + return false; + } + break; + case 2: + lab0: { + /** @const */ var /** number */ v_1 = base.limit - base.cursor; + lab1: { + if (!(base.eq_s_b("s"))) + { + break lab1; + } + break lab0; + } + base.cursor = base.limit - v_1; + if (!(base.eq_s_b("t"))) + { + return false; + } + } + if (!base.slice_del()) + { + return false; + } + break; + } + return true; + }; + + /** @return {boolean} */ + function r_Step_5() { + var /** number */ among_var; + base.ket = base.cursor; + among_var = base.find_among_b(a_10); + if (among_var == 0) + { + return false; + } + base.bra = base.cursor; + switch (among_var) { + case 1: + lab0: { + lab1: { + if (!r_R2()) + { + break lab1; + } + break lab0; + } + if (!r_R1()) + { + return false; + } + { + /** @const */ var /** number */ v_1 = base.limit - base.cursor; + lab2: { + if (!r_shortv()) + { + break lab2; + } + return false; + } + base.cursor = base.limit - v_1; + } + } + if (!base.slice_del()) + { + return false; + } + break; + case 2: + if (!r_R2()) + { + return false; + } + if (!(base.eq_s_b("l"))) + { + return false; + } + if (!base.slice_del()) + { + return false; + } + break; + } + return true; + }; + + /** @return {boolean} */ + function r_exception1() { + var /** number */ among_var; + base.bra = base.cursor; + among_var = base.find_among(a_11); + if (among_var == 0) + { + return false; + } + base.ket = base.cursor; + if (base.cursor < base.limit) + { + return false; + } + switch (among_var) { + case 1: + if (!base.slice_from("sky")) + { + return false; + } + break; + case 2: + if (!base.slice_from("idl")) + { + return false; + } + break; + case 3: + if (!base.slice_from("gentl")) + { + return false; + } + break; + case 4: + if (!base.slice_from("ugli")) + { + return false; + } + break; + case 5: + if (!base.slice_from("earli")) + { + return false; + } + break; + case 6: + if (!base.slice_from("onli")) + { + return false; + } + break; + case 7: + if (!base.slice_from("singl")) + { + return false; + } + break; + } + return true; + }; + + /** @return {boolean} */ + function r_postlude() { + if (!B_Y_found) + { + return false; + } + while(true) + { + /** @const */ var /** number */ v_1 = base.cursor; + lab0: { + golab1: while(true) + { + /** @const */ var /** number */ v_2 = base.cursor; + lab2: { + base.bra = base.cursor; + if (!(base.eq_s("Y"))) + { + break lab2; + } + base.ket = base.cursor; + base.cursor = v_2; + break golab1; + } + base.cursor = v_2; + if (base.cursor >= base.limit) + { + break lab0; + } + base.cursor++; + } + if (!base.slice_from("y")) + { + return false; + } + continue; + } + base.cursor = v_1; + break; + } + return true; + }; + + this.stem = /** @return {boolean} */ function() { + lab0: { + /** @const */ var /** number */ v_1 = base.cursor; + lab1: { + if (!r_exception1()) + { + break lab1; + } + break lab0; + } + base.cursor = v_1; + lab2: { + { + /** @const */ var /** number */ v_2 = base.cursor; + lab3: { + { + /** @const */ var /** number */ c1 = base.cursor + 3; + if (c1 > base.limit) + { + break lab3; + } + base.cursor = c1; + } + break lab2; + } + base.cursor = v_2; + } + break lab0; + } + base.cursor = v_1; + r_prelude(); + r_mark_regions(); + base.limit_backward = base.cursor; base.cursor = base.limit; + /** @const */ var /** number */ v_3 = base.limit - base.cursor; + r_Step_1a(); + base.cursor = base.limit - v_3; + /** @const */ var /** number */ v_4 = base.limit - base.cursor; + r_Step_1b(); + base.cursor = base.limit - v_4; + /** @const */ var /** number */ v_5 = base.limit - base.cursor; + r_Step_1c(); + base.cursor = base.limit - v_5; + /** @const */ var /** number */ v_6 = base.limit - base.cursor; + r_Step_2(); + base.cursor = base.limit - v_6; + /** @const */ var /** number */ v_7 = base.limit - base.cursor; + r_Step_3(); + base.cursor = base.limit - v_7; + /** @const */ var /** number */ v_8 = base.limit - base.cursor; + r_Step_4(); + base.cursor = base.limit - v_8; + /** @const */ var /** number */ v_9 = base.limit - base.cursor; + r_Step_5(); + base.cursor = base.limit - v_9; + base.cursor = base.limit_backward; + /** @const */ var /** number */ v_10 = base.cursor; + r_postlude(); + base.cursor = v_10; + } + return true; + }; + + /**@return{string}*/ + this['stemWord'] = function(/**string*/word) { + base.setCurrent(word); + this.stem(); + return base.getCurrent(); + }; +}; diff --git a/docs/_build/html/_static/language_data.js b/docs/_build/html/_static/language_data.js index c7fe6c6..5776786 100644 --- a/docs/_build/html/_static/language_data.js +++ b/docs/_build/html/_static/language_data.js @@ -1,192 +1,13 @@ /* * This script contains the language-specific data used by searchtools.js, - * namely the list of stopwords, stemmer, scorer and splitter. + * namely the set of stopwords, stemmer, scorer and splitter. */ -var stopwords = ["a", "and", "are", "as", "at", "be", "but", "by", "for", "if", "in", "into", "is", "it", "near", "no", "not", "of", "on", "or", "such", "that", "the", "their", "then", "there", "these", "they", "this", "to", "was", "will", "with"]; +const stopwords = new Set(["a", "about", "above", "after", "again", "against", "all", "am", "an", "and", "any", "are", "aren't", "as", "at", "be", "because", "been", "before", "being", "below", "between", "both", "but", "by", "can't", "cannot", "could", "couldn't", "did", "didn't", "do", "does", "doesn't", "doing", "don't", "down", "during", "each", "few", "for", "from", "further", "had", "hadn't", "has", "hasn't", "have", "haven't", "having", "he", "he'd", "he'll", "he's", "her", "here", "here's", "hers", "herself", "him", "himself", "his", "how", "how's", "i", "i'd", "i'll", "i'm", "i've", "if", "in", "into", "is", "isn't", "it", "it's", "its", "itself", "let's", "me", "more", "most", "mustn't", "my", "myself", "no", "nor", "not", "of", "off", "on", "once", "only", "or", "other", "ought", "our", "ours", "ourselves", "out", "over", "own", "same", "shan't", "she", "she'd", "she'll", "she's", "should", "shouldn't", "so", "some", "such", "than", "that", "that's", "the", "their", "theirs", "them", "themselves", "then", "there", "there's", "these", "they", "they'd", "they'll", "they're", "they've", "this", "those", "through", "to", "too", "under", "until", "up", "very", "was", "wasn't", "we", "we'd", "we'll", "we're", "we've", "were", "weren't", "what", "what's", "when", "when's", "where", "where's", "which", "while", "who", "who's", "whom", "why", "why's", "with", "won't", "would", "wouldn't", "you", "you'd", "you'll", "you're", "you've", "your", "yours", "yourself", "yourselves"]); +window.stopwords = stopwords; // Export to global scope -/* Non-minified version is copied as a separate JS file, if available */ - -/** - * Porter Stemmer - */ -var Stemmer = function() { - - var step2list = { - ational: 'ate', - tional: 'tion', - enci: 'ence', - anci: 'ance', - izer: 'ize', - bli: 'ble', - alli: 'al', - entli: 'ent', - eli: 'e', - ousli: 'ous', - ization: 'ize', - ation: 'ate', - ator: 'ate', - alism: 'al', - iveness: 'ive', - fulness: 'ful', - ousness: 'ous', - aliti: 'al', - iviti: 'ive', - biliti: 'ble', - logi: 'log' - }; - - var step3list = { - icate: 'ic', - ative: '', - alize: 'al', - iciti: 'ic', - ical: 'ic', - ful: '', - ness: '' - }; - - var c = "[^aeiou]"; // consonant - var v = "[aeiouy]"; // vowel - var C = c + "[^aeiouy]*"; // consonant sequence - var V = v + "[aeiou]*"; // vowel sequence - - var mgr0 = "^(" + C + ")?" + V + C; // [C]VC... is m>0 - var meq1 = "^(" + C + ")?" + V + C + "(" + V + ")?$"; // [C]VC[V] is m=1 - var mgr1 = "^(" + C + ")?" + V + C + V + C; // [C]VCVC... is m>1 - var s_v = "^(" + C + ")?" + v; // vowel in stem - - this.stemWord = function (w) { - var stem; - var suffix; - var firstch; - var origword = w; - - if (w.length < 3) - return w; - - var re; - var re2; - var re3; - var re4; - - firstch = w.substr(0,1); - if (firstch == "y") - w = firstch.toUpperCase() + w.substr(1); - - // Step 1a - re = /^(.+?)(ss|i)es$/; - re2 = /^(.+?)([^s])s$/; - - if (re.test(w)) - w = w.replace(re,"$1$2"); - else if (re2.test(w)) - w = w.replace(re2,"$1$2"); - - // Step 1b - re = /^(.+?)eed$/; - re2 = /^(.+?)(ed|ing)$/; - if (re.test(w)) { - var fp = re.exec(w); - re = new RegExp(mgr0); - if (re.test(fp[1])) { - re = /.$/; - w = w.replace(re,""); - } - } - else if (re2.test(w)) { - var fp = re2.exec(w); - stem = fp[1]; - re2 = new RegExp(s_v); - if (re2.test(stem)) { - w = stem; - re2 = /(at|bl|iz)$/; - re3 = new RegExp("([^aeiouylsz])\\1$"); - re4 = new RegExp("^" + C + v + "[^aeiouwxy]$"); - if (re2.test(w)) - w = w + "e"; - else if (re3.test(w)) { - re = /.$/; - w = w.replace(re,""); - } - else if (re4.test(w)) - w = w + "e"; - } - } - - // Step 1c - re = /^(.+?)y$/; - if (re.test(w)) { - var fp = re.exec(w); - stem = fp[1]; - re = new RegExp(s_v); - if (re.test(stem)) - w = stem + "i"; - } - - // Step 2 - re = /^(.+?)(ational|tional|enci|anci|izer|bli|alli|entli|eli|ousli|ization|ation|ator|alism|iveness|fulness|ousness|aliti|iviti|biliti|logi)$/; - if (re.test(w)) { - var fp = re.exec(w); - stem = fp[1]; - suffix = fp[2]; - re = new RegExp(mgr0); - if (re.test(stem)) - w = stem + step2list[suffix]; - } - - // Step 3 - re = /^(.+?)(icate|ative|alize|iciti|ical|ful|ness)$/; - if (re.test(w)) { - var fp = re.exec(w); - stem = fp[1]; - suffix = fp[2]; - re = new RegExp(mgr0); - if (re.test(stem)) - w = stem + step3list[suffix]; - } - - // Step 4 - re = /^(.+?)(al|ance|ence|er|ic|able|ible|ant|ement|ment|ent|ou|ism|ate|iti|ous|ive|ize)$/; - re2 = /^(.+?)(s|t)(ion)$/; - if (re.test(w)) { - var fp = re.exec(w); - stem = fp[1]; - re = new RegExp(mgr1); - if (re.test(stem)) - w = stem; - } - else if (re2.test(w)) { - var fp = re2.exec(w); - stem = fp[1] + fp[2]; - re2 = new RegExp(mgr1); - if (re2.test(stem)) - w = stem; - } - - // Step 5 - re = /^(.+?)e$/; - if (re.test(w)) { - var fp = re.exec(w); - stem = fp[1]; - re = new RegExp(mgr1); - re2 = new RegExp(meq1); - re3 = new RegExp("^" + C + v + "[^aeiouwxy]$"); - if (re.test(stem) || (re2.test(stem) && !(re3.test(stem)))) - w = stem; - } - re = /ll$/; - re2 = new RegExp(mgr1); - if (re.test(w) && re2.test(w)) { - re = /.$/; - w = w.replace(re,""); - } - - // and turn initial Y back to y - if (firstch == "y") - w = firstch.toLowerCase() + w.substr(1); - return w; - } -} - +/* Non-minified versions are copied as separate JavaScript files, if available */ +BaseStemmer=function(){this.current="",this.cursor=0,this.limit=0,this.limit_backward=0,this.bra=0,this.ket=0,this.setCurrent=function(t){this.current=t,this.cursor=0,this.limit=this.current.length,this.limit_backward=0,this.bra=this.cursor,this.ket=this.limit},this.getCurrent=function(){return this.current},this.copy_from=function(t){this.current=t.current,this.cursor=t.cursor,this.limit=t.limit,this.limit_backward=t.limit_backward,this.bra=t.bra,this.ket=t.ket},this.in_grouping=function(t,r,i){return!(this.cursor>=this.limit||i<(i=this.current.charCodeAt(this.cursor))||i>>3]&1<<(7&i))||(this.cursor++,0))},this.go_in_grouping=function(t,r,i){for(;this.cursor>>3]&1<<(7&s)))return!0;this.cursor++}return!1},this.in_grouping_b=function(t,r,i){return!(this.cursor<=this.limit_backward||i<(i=this.current.charCodeAt(this.cursor-1))||i>>3]&1<<(7&i))||(this.cursor--,0))},this.go_in_grouping_b=function(t,r,i){for(;this.cursor>this.limit_backward;){var s=this.current.charCodeAt(this.cursor-1);if(i>>3]&1<<(7&s)))return!0;this.cursor--}return!1},this.out_grouping=function(t,r,i){return!(this.cursor>=this.limit)&&(i<(i=this.current.charCodeAt(this.cursor))||i>>3]&1<<(7&i)))&&(this.cursor++,!0)},this.go_out_grouping=function(t,r,i){for(;this.cursor>>3]&1<<(7&s)))return!0;this.cursor++}return!1},this.out_grouping_b=function(t,r,i){return!(this.cursor<=this.limit_backward)&&(i<(i=this.current.charCodeAt(this.cursor-1))||i>>3]&1<<(7&i)))&&(this.cursor--,!0)},this.go_out_grouping_b=function(t,r,i){for(;this.cursor>this.limit_backward;){var s=this.current.charCodeAt(this.cursor-1);if(s<=i&&r<=s&&0!=(t[(s-=r)>>>3]&1<<(7&s)))return!0;this.cursor--}return!1},this.eq_s=function(t){return!(this.limit-this.cursor>>1),o=0,a=e=(l=t[r])[0].length){if(this.cursor=s+l[0].length,l.length<4)return l[2];var g=l[3](this);if(this.cursor=s+l[0].length,g)return l[2]}}while(0<=(r=l[1]));return 0},this.find_among_b=function(t){for(var r=0,i=t.length,s=this.cursor,h=this.limit_backward,e=0,n=0,c=!1;;){for(var u,o=r+(i-r>>1),a=0,l=e=(u=t[r])[0].length){if(this.cursor=s-u[0].length,u.length<4)return u[2];var g=u[3](this);if(this.cursor=s-u[0].length,g)return u[2]}}while(0<=(r=u[1]));return 0},this.replace_s=function(t,r,i){var s=i.length-(r-t);return this.current=this.current.slice(0,t)+i+this.current.slice(r),this.limit+=s,this.cursor>=r?this.cursor+=s:this.cursor>t&&(this.cursor=t),s},this.slice_check=function(){return!(this.bra<0||this.bra>this.ket||this.ket>this.limit||this.limit>this.current.length)},this.slice_from=function(t){var r=!1;return this.slice_check()&&(this.replace_s(this.bra,this.ket,t),r=!0),r},this.slice_del=function(){return this.slice_from("")},this.insert=function(t,r,i){r=this.replace_s(t,r,i);t<=this.bra&&(this.bra+=r),t<=this.ket&&(this.ket+=r)},this.slice_to=function(){var t="";return t=this.slice_check()?this.current.slice(this.bra,this.ket):t},this.assign_to=function(){return this.current.slice(0,this.limit)}}; +var EnglishStemmer=function(){var a=new BaseStemmer,c=[["arsen",-1,-1],["commun",-1,-1],["emerg",-1,-1],["gener",-1,-1],["later",-1,-1],["organ",-1,-1],["past",-1,-1],["univers",-1,-1]],o=[["'",-1,1],["'s'",0,1],["'s",-1,1]],u=[["ied",-1,2],["s",-1,3],["ies",1,2],["sses",1,1],["ss",1,-1],["us",1,-1]],t=[["succ",-1,1],["proc",-1,1],["exc",-1,1]],l=[["even",-1,2],["cann",-1,2],["inn",-1,2],["earr",-1,2],["herr",-1,2],["out",-1,2],["y",-1,1]],n=[["",-1,-1],["ed",0,2],["eed",1,1],["ing",0,3],["edly",0,2],["eedly",4,1],["ingly",0,2]],f=[["",-1,3],["bb",0,2],["dd",0,2],["ff",0,2],["gg",0,2],["bl",0,1],["mm",0,2],["nn",0,2],["pp",0,2],["rr",0,2],["at",0,1],["tt",0,2],["iz",0,1]],_=[["anci",-1,3],["enci",-1,2],["ogi",-1,14],["li",-1,16],["bli",3,12],["abli",4,4],["alli",3,8],["fulli",3,9],["lessli",3,15],["ousli",3,10],["entli",3,5],["aliti",-1,8],["biliti",-1,12],["iviti",-1,11],["tional",-1,1],["ational",14,7],["alism",-1,8],["ation",-1,7],["ization",17,6],["izer",-1,6],["ator",-1,7],["iveness",-1,11],["fulness",-1,9],["ousness",-1,10],["ogist",-1,13]],m=[["icate",-1,4],["ative",-1,6],["alize",-1,3],["iciti",-1,4],["ical",-1,4],["tional",-1,1],["ational",5,2],["ful",-1,5],["ness",-1,5]],b=[["ic",-1,1],["ance",-1,1],["ence",-1,1],["able",-1,1],["ible",-1,1],["ate",-1,1],["ive",-1,1],["ize",-1,1],["iti",-1,1],["al",-1,1],["ism",-1,1],["ion",-1,2],["er",-1,1],["ous",-1,1],["ant",-1,1],["ent",-1,1],["ment",15,1],["ement",16,1]],k=[["e",-1,1],["l",-1,2]],g=[["andes",-1,-1],["atlas",-1,-1],["bias",-1,-1],["cosmos",-1,-1],["early",-1,5],["gently",-1,3],["howe",-1,-1],["idly",-1,2],["news",-1,-1],["only",-1,6],["singly",-1,7],["skies",-1,1],["sky",-1,-1],["ugly",-1,4]],d=[17,64],v=[17,65,16,1],i=[1,17,65,208,1],w=[55,141,2],p=!1,y=0,h=0;function q(){var r=a.limit-a.cursor;return!!(a.out_grouping_b(i,89,121)&&a.in_grouping_b(v,97,121)&&a.out_grouping_b(v,97,121)||(a.cursor=a.limit-r,a.out_grouping_b(v,97,121)&&a.in_grouping_b(v,97,121)&&!(a.cursor>a.limit_backward))||(a.cursor=a.limit-r,a.eq_s_b("past")))}function z(){return h<=a.cursor}function Y(){return y<=a.cursor}this.stem=function(){var r=a.cursor;if(!(()=>{var r;if(a.bra=a.cursor,0!=(r=a.find_among(g))&&(a.ket=a.cursor,!(a.cursora.limit)a.cursor=i;else{a.cursor=e,a.cursor=r,(()=>{p=!1;var r=a.cursor;if(a.bra=a.cursor,!a.eq_s("'")||(a.ket=a.cursor,a.slice_del())){a.cursor=r;r=a.cursor;if(a.bra=a.cursor,a.eq_s("y")){if(a.ket=a.cursor,!a.slice_from("Y"))return;p=!0}a.cursor=r;for(r=a.cursor;;){var i=a.cursor;r:{for(;;){var e=a.cursor;if(a.in_grouping(v,97,121)&&(a.bra=a.cursor,a.eq_s("y"))){a.ket=a.cursor,a.cursor=e;break}if(a.cursor=e,a.cursor>=a.limit)break r;a.cursor++}if(!a.slice_from("Y"))return;p=!0;continue}a.cursor=i;break}a.cursor=r}})(),h=a.limit,y=a.limit;i=a.cursor;r:{var s=a.cursor;if(0==a.find_among(c)){if(a.cursor=s,!a.go_out_grouping(v,97,121))break r;if(a.cursor++,!a.go_in_grouping(v,97,121))break r;a.cursor++}h=a.cursor,a.go_out_grouping(v,97,121)&&(a.cursor++,a.go_in_grouping(v,97,121))&&(a.cursor++,y=a.cursor)}a.cursor=i,a.limit_backward=a.cursor,a.cursor=a.limit;var e=a.limit-a.cursor,r=((()=>{var r=a.limit-a.cursor;if(a.ket=a.cursor,0==a.find_among_b(o))a.cursor=a.limit-r;else if(a.bra=a.cursor,!a.slice_del())return;if(a.ket=a.cursor,0!=(r=a.find_among_b(u)))switch(a.bra=a.cursor,r){case 1:if(a.slice_from("ss"))break;return;case 2:r:{var i=a.limit-a.cursor,e=a.cursor-2;if(!(e{a.ket=a.cursor,o=a.find_among_b(n),a.bra=a.cursor;r:{var r=a.limit-a.cursor;i:{switch(o){case 1:var i=a.limit-a.cursor;e:{var e=a.limit-a.cursor;if(0==a.find_among_b(t)||a.cursor>a.limit_backward){if(a.cursor=a.limit-e,!z())break e;if(!a.slice_from("ee"))return}}a.cursor=a.limit-i;break;case 2:break i;case 3:if(0==(o=a.find_among_b(l)))break i;switch(o){case 1:var s=a.limit-a.cursor;if(!a.out_grouping_b(v,97,121))break i;if(a.cursor>a.limit_backward)break i;if(a.cursor=a.limit-s,a.bra=a.cursor,a.slice_from("ie"))break;return;case 2:if(a.cursor>a.limit_backward)break i}}break r}a.cursor=a.limit-r;var c=a.limit-a.cursor;if(!a.go_out_grouping_b(v,97,121))return;if(a.cursor--,a.cursor=a.limit-c,!a.slice_del())return;a.ket=a.cursor,a.bra=a.cursor;var o,c=a.limit-a.cursor;switch(o=a.find_among_b(f)){case 1:return a.slice_from("e");case 2:var u=a.limit-a.cursor;if(a.in_grouping_b(d,97,111)&&!(a.cursor>a.limit_backward))return;a.cursor=a.limit-u;break;case 3:return a.cursor!=h||(u=a.limit-a.cursor,q()&&(a.cursor=a.limit-u,a.slice_from("e")))}if(a.cursor=a.limit-c,a.ket=a.cursor,a.cursor<=a.limit_backward)return;if(a.cursor--,a.bra=a.cursor,!a.slice_del())return}})(),a.cursor=a.limit-r,a.limit-a.cursor),r=(a.ket=a.cursor,e=a.limit-a.cursor,(a.eq_s_b("y")||(a.cursor=a.limit-e,a.eq_s_b("Y")))&&(a.bra=a.cursor,a.out_grouping_b(v,97,121))&&a.cursor>a.limit_backward&&a.slice_from("i"),a.cursor=a.limit-i,a.limit-a.cursor),e=((()=>{var r;if(a.ket=a.cursor,0!=(r=a.find_among_b(_))&&(a.bra=a.cursor,z()))switch(r){case 1:if(a.slice_from("tion"))break;return;case 2:if(a.slice_from("ence"))break;return;case 3:if(a.slice_from("ance"))break;return;case 4:if(a.slice_from("able"))break;return;case 5:if(a.slice_from("ent"))break;return;case 6:if(a.slice_from("ize"))break;return;case 7:if(a.slice_from("ate"))break;return;case 8:if(a.slice_from("al"))break;return;case 9:if(a.slice_from("ful"))break;return;case 10:if(a.slice_from("ous"))break;return;case 11:if(a.slice_from("ive"))break;return;case 12:if(a.slice_from("ble"))break;return;case 13:if(a.slice_from("og"))break;return;case 14:if(!a.eq_s_b("l"))return;if(a.slice_from("og"))break;return;case 15:if(a.slice_from("less"))break;return;case 16:if(!a.in_grouping_b(w,99,116))return;if(a.slice_del())break}})(),a.cursor=a.limit-r,a.limit-a.cursor),i=((()=>{var r;if(a.ket=a.cursor,0!=(r=a.find_among_b(m))&&(a.bra=a.cursor,z()))switch(r){case 1:if(a.slice_from("tion"))break;return;case 2:if(a.slice_from("ate"))break;return;case 3:if(a.slice_from("al"))break;return;case 4:if(a.slice_from("ic"))break;return;case 5:if(a.slice_del())break;return;case 6:if(!Y())return;if(a.slice_del())break}})(),a.cursor=a.limit-e,a.limit-a.cursor),r=((()=>{var r;if(a.ket=a.cursor,0!=(r=a.find_among_b(b))&&(a.bra=a.cursor,Y()))switch(r){case 1:if(a.slice_del())break;return;case 2:var i=a.limit-a.cursor;if(!a.eq_s_b("s")&&(a.cursor=a.limit-i,!a.eq_s_b("t")))return;if(a.slice_del())break}})(),a.cursor=a.limit-i,a.limit-a.cursor),e=((()=>{var r;if(a.ket=a.cursor,0!=(r=a.find_among_b(k)))switch(a.bra=a.cursor,r){case 1:if(!Y()){if(!z())return;var i=a.limit-a.cursor;if(q())return;a.cursor=a.limit-i}if(a.slice_del())break;return;case 2:if(!Y())return;if(!a.eq_s_b("l"))return;if(a.slice_del())break}})(),a.cursor=a.limit-r,a.cursor=a.limit_backward,a.cursor);(()=>{if(p)for(;;){var r=a.cursor;r:{for(;;){var i=a.cursor;if(a.bra=a.cursor,a.eq_s("Y")){a.ket=a.cursor,a.cursor=i;break}if(a.cursor=i,a.cursor>=a.limit)break r;a.cursor++}if(a.slice_from("y"))continue;return}a.cursor=r;break}})(),a.cursor=e}}return!0},this.stemWord=function(r){return a.setCurrent(r),this.stem(),a.getCurrent()}}; +window.Stemmer = EnglishStemmer; diff --git a/docs/_build/html/_static/searchtools.js b/docs/_build/html/_static/searchtools.js index 91f4be5..e29b1c7 100644 --- a/docs/_build/html/_static/searchtools.js +++ b/docs/_build/html/_static/searchtools.js @@ -41,11 +41,12 @@ if (typeof Scorer === "undefined") { } // Global search result kind enum, used by themes to style search results. +// prettier-ignore class SearchResultKind { - static get index() { return "index"; } - static get object() { return "object"; } - static get text() { return "text"; } - static get title() { return "title"; } + static get index() { return "index"; } + static get object() { return "object"; } + static get text() { return "text"; } + static get title() { return "title"; } } const _removeChildren = (element) => { @@ -58,6 +59,15 @@ const _removeChildren = (element) => { const _escapeRegExp = (string) => string.replace(/[.*+\-?^${}()|[\]\\]/g, "\\$&"); // $& means the whole matched string +const _escapeHTML = (text) => { + return text + .replaceAll("&", "&") + .replaceAll("<", "<") + .replaceAll(">", ">") + .replaceAll('"', """) + .replaceAll("'", "'"); +}; + const _displayItem = (item, searchTerms, highlightTerms) => { const docBuilder = DOCUMENTATION_OPTIONS.BUILDER; const docFileSuffix = DOCUMENTATION_OPTIONS.FILE_SUFFIX; @@ -90,25 +100,30 @@ const _displayItem = (item, searchTerms, highlightTerms) => { let linkEl = listItem.appendChild(document.createElement("a")); linkEl.href = linkUrl + anchor; linkEl.dataset.score = score; - linkEl.innerHTML = title; + linkEl.innerHTML = _escapeHTML(title); if (descr) { listItem.appendChild(document.createElement("span")).innerHTML = - " (" + descr + ")"; + ` (${_escapeHTML(descr)})`; // highlight search terms in the description - if (SPHINX_HIGHLIGHT_ENABLED) // set in sphinx_highlight.js - highlightTerms.forEach((term) => _highlightText(listItem, term, "highlighted")); - } - else if (showSearchSummary) + if (SPHINX_HIGHLIGHT_ENABLED) + // SPHINX_HIGHLIGHT_ENABLED is set in sphinx_highlight.js + highlightTerms.forEach((term) => + _highlightText(listItem, term, "highlighted"), + ); + } else if (showSearchSummary) fetch(requestUrl) .then((responseData) => responseData.text()) .then((data) => { if (data) listItem.appendChild( - Search.makeSearchSummary(data, searchTerms, anchor) + Search.makeSearchSummary(data, searchTerms, anchor), ); // highlight search terms in the summary - if (SPHINX_HIGHLIGHT_ENABLED) // set in sphinx_highlight.js - highlightTerms.forEach((term) => _highlightText(listItem, term, "highlighted")); + if (SPHINX_HIGHLIGHT_ENABLED) + // SPHINX_HIGHLIGHT_ENABLED is set in sphinx_highlight.js + highlightTerms.forEach((term) => + _highlightText(listItem, term, "highlighted"), + ); }); Search.output.appendChild(listItem); }; @@ -117,14 +132,14 @@ const _finishSearch = (resultCount) => { Search.title.innerText = _("Search Results"); if (!resultCount) Search.status.innerText = Documentation.gettext( - "Your search did not match any documents. Please make sure that all words are spelled correctly and that you've selected enough categories." + "Your search did not match any documents. Please make sure that all words are spelled correctly and that you've selected enough categories.", ); else Search.status.innerText = Documentation.ngettext( "Search finished, found one page matching the search query.", "Search finished, found ${resultCount} pages matching the search query.", resultCount, - ).replace('${resultCount}', resultCount); + ).replace("${resultCount}", resultCount); }; const _displayNextItem = ( results, @@ -138,7 +153,7 @@ const _displayNextItem = ( _displayItem(results.pop(), searchTerms, highlightTerms); setTimeout( () => _displayNextItem(results, resultCount, searchTerms, highlightTerms), - 5 + 5, ); } // search finished, update title and status message @@ -170,9 +185,10 @@ const _orderResultsByScoreThenName = (a, b) => { * This is the same as ``\W+`` in Python, preserving the surrogate pair area. */ if (typeof splitQuery === "undefined") { - var splitQuery = (query) => query + var splitQuery = (query) => + query .split(/[^\p{Letter}\p{Number}_\p{Emoji_Presentation}]+/gu) - .filter(term => term) // remove remaining empty strings + .filter((term) => term); // remove remaining empty strings } /** @@ -184,16 +200,23 @@ const Search = { _pulse_status: -1, htmlToText: (htmlString, anchor) => { - const htmlElement = new DOMParser().parseFromString(htmlString, 'text/html'); + const htmlElement = new DOMParser().parseFromString( + htmlString, + "text/html", + ); for (const removalQuery of [".headerlink", "script", "style"]) { - htmlElement.querySelectorAll(removalQuery).forEach((el) => { el.remove() }); + htmlElement.querySelectorAll(removalQuery).forEach((el) => { + el.remove(); + }); } if (anchor) { - const anchorContent = htmlElement.querySelector(`[role="main"] ${anchor}`); + const anchorContent = htmlElement.querySelector( + `[role="main"] ${anchor}`, + ); if (anchorContent) return anchorContent.textContent; console.warn( - `Anchored content block not found. Sphinx search tries to obtain it via DOM query '[role=main] ${anchor}'. Check your theme or template.` + `Anchored content block not found. Sphinx search tries to obtain it via DOM query '[role=main] ${anchor}'. Check your theme or template.`, ); } @@ -202,7 +225,7 @@ const Search = { if (docContent) return docContent.textContent; console.warn( - "Content block not found. Sphinx search tries to obtain it via DOM query '[role=main]'. Check your theme or template." + "Content block not found. Sphinx search tries to obtain it via DOM query '[role=main]'. Check your theme or template.", ); return ""; }, @@ -287,12 +310,8 @@ const Search = { const queryTermLower = queryTerm.toLowerCase(); // maybe skip this "word" - // stopwords array is from language_data.js - if ( - stopwords.indexOf(queryTermLower) !== -1 || - queryTerm.match(/^\d+$/) - ) - return; + // stopwords set is from language_data.js + if (stopwords.has(queryTermLower) || queryTerm.match(/^\d+$/)) return; // stem the word let word = stemmer.stemWord(queryTermLower); @@ -304,8 +323,12 @@ const Search = { } }); - if (SPHINX_HIGHLIGHT_ENABLED) { // set in sphinx_highlight.js - localStorage.setItem("sphinx_highlight_terms", [...highlightTerms].join(" ")) + if (SPHINX_HIGHLIGHT_ENABLED) { + // SPHINX_HIGHLIGHT_ENABLED is set in sphinx_highlight.js + localStorage.setItem( + "sphinx_highlight_terms", + [...highlightTerms].join(" "), + ); } // console.debug("SEARCH: searching for:"); @@ -318,7 +341,13 @@ const Search = { /** * execute search (requires search index to be loaded) */ - _performSearch: (query, searchTerms, excludedTerms, highlightTerms, objectTerms) => { + _performSearch: ( + query, + searchTerms, + excludedTerms, + highlightTerms, + objectTerms, + ) => { const filenames = Search._index.filenames; const docNames = Search._index.docnames; const titles = Search._index.titles; @@ -334,10 +363,15 @@ const Search = { const queryLower = query.toLowerCase().trim(); for (const [title, foundTitles] of Object.entries(allTitles)) { - if (title.toLowerCase().trim().includes(queryLower) && (queryLower.length >= title.length/2)) { + if ( + title.toLowerCase().trim().includes(queryLower) + && queryLower.length >= title.length / 2 + ) { for (const [file, id] of foundTitles) { - const score = Math.round(Scorer.title * queryLower.length / title.length); - const boost = titles[file] === title ? 1 : 0; // add a boost for document titles + const score = Math.round( + (Scorer.title * queryLower.length) / title.length, + ); + const boost = titles[file] === title ? 1 : 0; // add a boost for document titles normalResults.push([ docNames[file], titles[file] !== title ? `${titles[file]} > ${title}` : title, @@ -353,9 +387,9 @@ const Search = { // search for explicit entries in index directives for (const [entry, foundEntries] of Object.entries(indexEntries)) { - if (entry.includes(queryLower) && (queryLower.length >= entry.length/2)) { + if (entry.includes(queryLower) && queryLower.length >= entry.length / 2) { for (const [file, id, isMain] of foundEntries) { - const score = Math.round(100 * queryLower.length / entry.length); + const score = Math.round((100 * queryLower.length) / entry.length); const result = [ docNames[file], titles[file], @@ -376,11 +410,13 @@ const Search = { // lookup as object objectTerms.forEach((term) => - normalResults.push(...Search.performObjectSearch(term, objectTerms)) + normalResults.push(...Search.performObjectSearch(term, objectTerms)), ); // lookup as search terms in fulltext - normalResults.push(...Search.performTermsSearch(searchTerms, excludedTerms)); + normalResults.push( + ...Search.performTermsSearch(searchTerms, excludedTerms), + ); // let the scorer override scores with a custom scoring function if (Scorer.score) { @@ -401,7 +437,11 @@ const Search = { // note the reversing of results, so that in the case of duplicates, the highest-scoring entry is kept let seen = new Set(); results = results.reverse().reduce((acc, result) => { - let resultStr = result.slice(0, 4).concat([result[5]]).map(v => String(v)).join(','); + let resultStr = result + .slice(0, 4) + .concat([result[5]]) + .map((v) => String(v)) + .join(","); if (!seen.has(resultStr)) { acc.push(result); seen.add(resultStr); @@ -413,8 +453,20 @@ const Search = { }, query: (query) => { - const [searchQuery, searchTerms, excludedTerms, highlightTerms, objectTerms] = Search._parseQuery(query); - const results = Search._performSearch(searchQuery, searchTerms, excludedTerms, highlightTerms, objectTerms); + const [ + searchQuery, + searchTerms, + excludedTerms, + highlightTerms, + objectTerms, + ] = Search._parseQuery(query); + const results = Search._performSearch( + searchQuery, + searchTerms, + excludedTerms, + highlightTerms, + objectTerms, + ); // for debugging //Search.lastresults = results.slice(); // a copy @@ -437,7 +489,7 @@ const Search = { const results = []; const objectSearchCallback = (prefix, match) => { - const name = match[4] + const name = match[4]; const fullname = (prefix ? prefix + "." : "") + name; const fullnameLower = fullname.toLowerCase(); if (fullnameLower.indexOf(object) < 0) return; @@ -489,9 +541,7 @@ const Search = { ]); }; Object.keys(objects).forEach((prefix) => - objects[prefix].forEach((array) => - objectSearchCallback(prefix, array) - ) + objects[prefix].forEach((array) => objectSearchCallback(prefix, array)), ); return results; }, @@ -516,8 +566,14 @@ const Search = { // find documents, if any, containing the query word in their text/title term indices // use Object.hasOwnProperty to avoid mismatching against prototype properties const arr = [ - { files: terms.hasOwnProperty(word) ? terms[word] : undefined, score: Scorer.term }, - { files: titleTerms.hasOwnProperty(word) ? titleTerms[word] : undefined, score: Scorer.title }, + { + files: terms.hasOwnProperty(word) ? terms[word] : undefined, + score: Scorer.term, + }, + { + files: titleTerms.hasOwnProperty(word) ? titleTerms[word] : undefined, + score: Scorer.title, + }, ]; // add support for partial matches if (word.length > 2) { @@ -558,7 +614,8 @@ const Search = { // create the mapping files.forEach((file) => { if (!fileMap.has(file)) fileMap.set(file, [word]); - else if (fileMap.get(file).indexOf(word) === -1) fileMap.get(file).push(word); + else if (fileMap.get(file).indexOf(word) === -1) + fileMap.get(file).push(word); }); }); @@ -569,11 +626,11 @@ const Search = { // as search terms with length < 3 are discarded const filteredTermCount = [...searchTerms].filter( - (term) => term.length > 2 + (term) => term.length > 2, ).length; if ( - wordList.length !== searchTerms.size && - wordList.length !== filteredTermCount + wordList.length !== searchTerms.size + && wordList.length !== filteredTermCount ) continue; @@ -581,10 +638,10 @@ const Search = { if ( [...excludedTerms].some( (term) => - terms[term] === file || - titleTerms[term] === file || - (terms[term] || []).includes(file) || - (titleTerms[term] || []).includes(file) + terms[term] === file + || titleTerms[term] === file + || (terms[term] || []).includes(file) + || (titleTerms[term] || []).includes(file), ) ) break; @@ -626,7 +683,8 @@ const Search = { let summary = document.createElement("p"); summary.classList.add("context"); - summary.textContent = top + text.substr(startWithContext, 240).trim() + tail; + summary.textContent = + top + text.substr(startWithContext, 240).trim() + tail; return summary; }, diff --git a/docs/_build/html/_static/sphinx_highlight.js b/docs/_build/html/_static/sphinx_highlight.js index 8a96c69..a74e103 100644 --- a/docs/_build/html/_static/sphinx_highlight.js +++ b/docs/_build/html/_static/sphinx_highlight.js @@ -1,7 +1,7 @@ /* Highlighting utilities for Sphinx HTML documentation. */ "use strict"; -const SPHINX_HIGHLIGHT_ENABLED = true +const SPHINX_HIGHLIGHT_ENABLED = true; /** * highlight a given string on a node by wrapping it in @@ -13,9 +13,9 @@ const _highlight = (node, addItems, text, className) => { const parent = node.parentNode; const pos = val.toLowerCase().indexOf(text); if ( - pos >= 0 && - !parent.classList.contains(className) && - !parent.classList.contains("nohighlight") + pos >= 0 + && !parent.classList.contains(className) + && !parent.classList.contains("nohighlight") ) { let span; @@ -30,13 +30,7 @@ const _highlight = (node, addItems, text, className) => { span.appendChild(document.createTextNode(val.substr(pos, text.length))); const rest = document.createTextNode(val.substr(pos + text.length)); - parent.insertBefore( - span, - parent.insertBefore( - rest, - node.nextSibling - ) - ); + parent.insertBefore(span, parent.insertBefore(rest, node.nextSibling)); node.nodeValue = val.substr(0, pos); /* There may be more occurrences of search term in this node. So call this * function recursively on the remaining fragment. @@ -46,7 +40,7 @@ const _highlight = (node, addItems, text, className) => { if (isInSVG) { const rect = document.createElementNS( "http://www.w3.org/2000/svg", - "rect" + "rect", ); const bbox = parent.getBBox(); rect.x.baseVal.value = bbox.x; @@ -65,7 +59,7 @@ const _highlightText = (thisNode, text, className) => { let addItems = []; _highlight(thisNode, addItems, text, className); addItems.forEach((obj) => - obj.parent.insertAdjacentElement("beforebegin", obj.target) + obj.parent.insertAdjacentElement("beforebegin", obj.target), ); }; @@ -73,25 +67,31 @@ const _highlightText = (thisNode, text, className) => { * Small JavaScript module for the documentation. */ const SphinxHighlight = { - /** * highlight the search words provided in localstorage in the text */ highlightSearchWords: () => { - if (!SPHINX_HIGHLIGHT_ENABLED) return; // bail if no highlight + if (!SPHINX_HIGHLIGHT_ENABLED) return; // bail if no highlight // get and clear terms from localstorage const url = new URL(window.location); const highlight = - localStorage.getItem("sphinx_highlight_terms") - || url.searchParams.get("highlight") - || ""; - localStorage.removeItem("sphinx_highlight_terms") - url.searchParams.delete("highlight"); - window.history.replaceState({}, "", url); + localStorage.getItem("sphinx_highlight_terms") + || url.searchParams.get("highlight") + || ""; + localStorage.removeItem("sphinx_highlight_terms"); + // Update history only if '?highlight' is present; otherwise it + // clears text fragments (not set in window.location by the browser) + if (url.searchParams.has("highlight")) { + url.searchParams.delete("highlight"); + window.history.replaceState({}, "", url); + } // get individual terms from highlight string - const terms = highlight.toLowerCase().split(/\s+/).filter(x => x); + const terms = highlight + .toLowerCase() + .split(/\s+/) + .filter((x) => x); if (terms.length === 0) return; // nothing to do // There should never be more than one element matching "div.body" @@ -107,11 +107,11 @@ const SphinxHighlight = { document .createRange() .createContextualFragment( - '

" - ) + '", + ), ); }, @@ -125,7 +125,7 @@ const SphinxHighlight = { document .querySelectorAll("span.highlighted") .forEach((el) => el.classList.remove("highlighted")); - localStorage.removeItem("sphinx_highlight_terms") + localStorage.removeItem("sphinx_highlight_terms"); }, initEscapeListener: () => { @@ -134,10 +134,15 @@ const SphinxHighlight = { document.addEventListener("keydown", (event) => { // bail for input elements - if (BLACKLISTED_KEY_CONTROL_ELEMENTS.has(document.activeElement.tagName)) return; + if (BLACKLISTED_KEY_CONTROL_ELEMENTS.has(document.activeElement.tagName)) + return; // bail with special keys - if (event.shiftKey || event.altKey || event.ctrlKey || event.metaKey) return; - if (DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS && (event.key === "Escape")) { + if (event.shiftKey || event.altKey || event.ctrlKey || event.metaKey) + return; + if ( + DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS + && event.key === "Escape" + ) { SphinxHighlight.hideSearchWords(); event.preventDefault(); } diff --git a/docs/_build/html/genindex.html b/docs/_build/html/genindex.html index 8c6027c..554b99b 100644 --- a/docs/_build/html/genindex.html +++ b/docs/_build/html/genindex.html @@ -5,14 +5,14 @@ - Index — pyreadstat 1.3.4 documentation + Index — pyreadstat 1.3.6 documentation - + - - - + + + diff --git a/docs/_build/html/index.html b/docs/_build/html/index.html index fa5566b..76a5be5 100644 --- a/docs/_build/html/index.html +++ b/docs/_build/html/index.html @@ -6,14 +6,14 @@ - Welcome to pyreadstat’s documentation! — pyreadstat 1.3.4 documentation + Welcome to pyreadstat’s documentation! — pyreadstat 1.3.6 documentation - + - - - + + + @@ -151,7 +151,7 @@

Metadata Object Description

Functions Documentation

-class pyreadstat.pyreadstat.FileLike(*args, **kwargs)
+class pyreadstat.pyreadstat.FileLike(*args, **kwargs)

Protocol for file-like objects accepted by pyreadstat

diff --git a/docs/_build/html/py-modindex.html b/docs/_build/html/py-modindex.html index 3797317..273a1c3 100644 --- a/docs/_build/html/py-modindex.html +++ b/docs/_build/html/py-modindex.html @@ -5,14 +5,14 @@ - Python Module Index — pyreadstat 1.3.4 documentation + Python Module Index — pyreadstat 1.3.6 documentation - + - - - + + + diff --git a/docs/_build/html/search.html b/docs/_build/html/search.html index 23a3602..6026b99 100644 --- a/docs/_build/html/search.html +++ b/docs/_build/html/search.html @@ -5,15 +5,15 @@ - Search — pyreadstat 1.3.4 documentation + Search — pyreadstat 1.3.6 documentation - + - - - + + + diff --git a/docs/_build/html/searchindex.js b/docs/_build/html/searchindex.js index 7685121..0e14ced 100644 --- a/docs/_build/html/searchindex.js +++ b/docs/_build/html/searchindex.js @@ -1 +1 @@ -Search.setIndex({"alltitles":{"Functions Documentation":[[0,"module-pyreadstat.pyreadstat"]],"Indices and tables":[[0,"indices-and-tables"]],"Metadata Object Description":[[0,"metadata-object-description"]],"Welcome to pyreadstat\u2019s documentation!":[[0,null]]},"docnames":["index"],"envversion":{"sphinx":65,"sphinx.domains.c":3,"sphinx.domains.changeset":1,"sphinx.domains.citation":1,"sphinx.domains.cpp":9,"sphinx.domains.index":1,"sphinx.domains.javascript":3,"sphinx.domains.math":2,"sphinx.domains.python":4,"sphinx.domains.rst":2,"sphinx.domains.std":2},"filenames":["index.rst"],"indexentries":{"filelike (class in pyreadstat.pyreadstat)":[[0,"pyreadstat.pyreadstat.FileLike",false]],"module":[[0,"module-pyreadstat.pyreadstat",false]],"pyreadstat.pyreadstat":[[0,"module-pyreadstat.pyreadstat",false]],"read() (pyreadstat.pyreadstat.filelike method)":[[0,"pyreadstat.pyreadstat.FileLike.read",false]],"read_dta() (in module pyreadstat.pyreadstat)":[[0,"pyreadstat.pyreadstat.read_dta",false]],"read_file_in_chunks() (in module pyreadstat.pyreadstat)":[[0,"pyreadstat.pyreadstat.read_file_in_chunks",false]],"read_file_multiprocessing() (in module pyreadstat.pyreadstat)":[[0,"pyreadstat.pyreadstat.read_file_multiprocessing",false]],"read_por() (in module pyreadstat.pyreadstat)":[[0,"pyreadstat.pyreadstat.read_por",false]],"read_sas7bcat() (in module pyreadstat.pyreadstat)":[[0,"pyreadstat.pyreadstat.read_sas7bcat",false]],"read_sas7bdat() (in module pyreadstat.pyreadstat)":[[0,"pyreadstat.pyreadstat.read_sas7bdat",false]],"read_sav() (in module pyreadstat.pyreadstat)":[[0,"pyreadstat.pyreadstat.read_sav",false]],"read_xport() (in module pyreadstat.pyreadstat)":[[0,"pyreadstat.pyreadstat.read_xport",false]],"seek() (pyreadstat.pyreadstat.filelike method)":[[0,"pyreadstat.pyreadstat.FileLike.seek",false]],"write_dta() (in module pyreadstat.pyreadstat)":[[0,"pyreadstat.pyreadstat.write_dta",false]],"write_por() (in module pyreadstat.pyreadstat)":[[0,"pyreadstat.pyreadstat.write_por",false]],"write_sav() (in module pyreadstat.pyreadstat)":[[0,"pyreadstat.pyreadstat.write_sav",false]],"write_xport() (in module pyreadstat.pyreadstat)":[[0,"pyreadstat.pyreadstat.write_xport",false]]},"objects":{"pyreadstat":[[0,0,0,"-","pyreadstat"]],"pyreadstat.pyreadstat":[[0,1,1,"","FileLike"],[0,3,1,"","read_dta"],[0,3,1,"","read_file_in_chunks"],[0,3,1,"","read_file_multiprocessing"],[0,3,1,"","read_por"],[0,3,1,"","read_sas7bcat"],[0,3,1,"","read_sas7bdat"],[0,3,1,"","read_sav"],[0,3,1,"","read_xport"],[0,3,1,"","write_dta"],[0,3,1,"","write_por"],[0,3,1,"","write_sav"],[0,3,1,"","write_xport"]],"pyreadstat.pyreadstat.FileLike":[[0,2,1,"","read"],[0,2,1,"","seek"]]},"objnames":{"0":["py","module","Python module"],"1":["py","class","Python class"],"2":["py","method","Python method"],"3":["py","function","Python function"]},"objtypes":{"0":"py:module","1":"py:class","2":"py:method","3":"py:function"},"terms":{"0":0,"000":0,"1":0,"10":0,"100000":0,"15":0,"2":0,"3":0,"4":0,"5":0,"7":0,"8":0,"A":0,"By":0,"For":0,"IF":0,"If":0,"In":0,"It":0,"That":0,"The":0,"There":0,"Will":0,"_":0,"abl":0,"about":0,"accept":0,"accordingli":[],"account":0,"actual":0,"ad":0,"add":0,"addit":0,"after":0,"align":0,"all":0,"allow":0,"also":0,"altough":[],"alwai":0,"an":0,"ani":0,"annot":0,"anyth":0,"app":0,"appear":0,"appli":0,"applic":0,"apply_value_format":0,"appropi":0,"ar":0,"arg":0,"argument":0,"arrai":0,"assum":0,"attach":0,"attempt":0,"avoid":0,"base":0,"befor":0,"behavior":0,"being":0,"between":0,"beyond":0,"bool":0,"boolean":0,"both":0,"boundari":0,"byte":0,"can":0,"cannot":0,"canot":0,"case":0,"catalog":0,"catalog_fil":0,"categori":0,"center":0,"certain":0,"chang":0,"charact":0,"chunk":0,"chunksiz":0,"class":0,"column":0,"column_label":0,"column_nam":0,"column_names_to_label":0,"combin":0,"come":0,"compat":0,"compos":0,"compress":0,"comput":0,"consid":0,"consist":0,"contain":0,"convers":0,"convert":0,"core":0,"correct":0,"could":0,"counted_valu":0,"creation":0,"creation_tim":0,"current":0,"data":0,"data_fram":0,"datafram":0,"dataset":0,"date":0,"dates_as_pandas_datetim":0,"datetim":0,"datetime64":0,"deal":0,"debug":0,"default":0,"defect":0,"defin":0,"definit":0,"deliv":0,"describ":0,"determin":0,"df":0,"dict":0,"dictionari":0,"dictonari":0,"did":0,"difficult":0,"directli":0,"disabl":0,"disable_datetime_convers":0,"discard":0,"discret":0,"displai":0,"do":0,"done":0,"doubl":0,"dst_path":0,"dta":0,"each":0,"effect":0,"either":0,"element":0,"empti":0,"encod":0,"entri":0,"enum":0,"equal":0,"error":0,"etc":0,"even":0,"exist":0,"extra":0,"extra_date_format":0,"extra_datetime_format":0,"extra_time_format":0,"extract":0,"fals":0,"faster":0,"field":0,"file":0,"file_encod":0,"file_format_vers":0,"file_label":0,"file_path":0,"filelik":0,"filename_path":0,"first":0,"float":0,"follow":0,"form":0,"format":0,"formats_as_categori":0,"formats_as_ordered_categori":0,"found":0,"frame":0,"from":0,"full":0,"gener":0,"get":0,"given":0,"guess":0,"ha":0,"happen":0,"have":0,"help":0,"her":0,"here":0,"hi":0,"higher":0,"how":0,"i":0,"iconv":0,"ignor":0,"impact":0,"import":0,"includ":0,"independ":0,"index":0,"inform":0,"instead":0,"int":0,"int32":0,"int8":0,"integ":0,"interpret":0,"irrespect":0,"is_dichotomi":0,"iter":0,"its":0,"kei":0,"keyword":0,"kwarg":0,"label":0,"larger":0,"later":0,"left":0,"length":0,"like":0,"limit":0,"list":0,"liter":0,"lo":0,"look":0,"lower":0,"mai":0,"mani":0,"map":0,"match":0,"max":0,"maximum":0,"mean":0,"measur":0,"medatata":0,"member":0,"metadata_contain":0,"metadataonli":0,"min":0,"miss":0,"missing_rang":0,"missing_user_valu":0,"missingrang":0,"modif":0,"modification_tim":0,"modul":0,"more":0,"mr":0,"mr_set":0,"multipl":0,"multiprocess":0,"must":0,"name":0,"nan":0,"need":0,"next":0,"nomin":0,"non":0,"none":0,"note":0,"notic":0,"num_process":0,"num_row":0,"number":0,"number_column":0,"number_row":0,"numer":0,"numpi":0,"obligatori":0,"obtain":0,"offset":0,"one":0,"ones":0,"onli":0,"option":0,"order":0,"ordin":0,"origin":0,"original_variable_typ":0,"other":0,"otherwis":0,"output_format":0,"output_paramet":[],"over":0,"overcom":0,"overflow":0,"page":0,"panda":0,"pandasdatafram":0,"parallel":0,"paramet":0,"pars":0,"pass":0,"path":0,"pathlib":[],"pathlik":0,"per":0,"perform":0,"piec":0,"po":0,"polar":0,"polarsdatafram":0,"popul":0,"por":0,"preced":0,"prefer":0,"present":0,"process":0,"protocol":0,"purpos":0,"pyreadstatreadfunct":0,"python":0,"rang":0,"read":0,"read_dta":0,"read_file_in_chunk":0,"read_file_multiprocess":0,"read_funct":0,"read_por":0,"read_sas7bcat":0,"read_sas7bdat":0,"read_sav":0,"read_xport":0,"readabl":0,"readm":0,"readstat":0,"readstat_variable_typ":0,"record":0,"remain":0,"replac":0,"report":0,"repres":0,"respons":0,"result":0,"return":0,"right":0,"rise":0,"row":0,"row_compress":0,"row_limit":0,"row_offset":0,"run":0,"sa":0,"same":0,"sas7bcat":0,"sas7bdat":0,"sata":0,"sav":0,"scale":0,"search":0,"section":0,"see":0,"seek":0,"sensit":0,"set":0,"set_catalog_to_sa":0,"set_value_label":0,"sever":0,"singl":0,"situat":0,"size":0,"skip":0,"so":0,"some":0,"spawn":0,"specif":0,"specifi":0,"speed":0,"spss":0,"start":0,"stata":0,"stop":0,"storag":0,"store":0,"str":0,"strang":0,"string":0,"suppli":0,"support":0,"system":0,"table_nam":0,"take":0,"text":0,"than":0,"thei":0,"them":0,"therefor":0,"thi":0,"those":0,"time":0,"transform":0,"true":0,"tupl":0,"two":0,"type":0,"unknown":0,"unless":0,"unlimit":0,"up":0,"upper":0,"us":0,"usecol":0,"user":0,"user_miss":0,"utf":0,"valid":0,"valu":0,"value_label":0,"variabl":0,"variable_align":0,"variable_display_width":0,"variable_format":0,"variable_list":0,"variable_measur":0,"variable_storage_width":0,"variable_to_label":0,"variable_value_label":0,"variables_value_label":0,"version":0,"wa":0,"warn":0,"well":0,"were":0,"when":0,"whenc":0,"where":0,"which":0,"whole":0,"whose":0,"width":0,"without":0,"work":0,"worker":0,"write":0,"write_dta":0,"write_por":0,"write_sav":0,"write_xport":0,"written":0,"xport":0,"xpt":0,"year":0,"yield":0,"you":0,"z":0,"zsav":0},"titles":["Welcome to pyreadstat\u2019s documentation!"],"titleterms":{"":0,"descript":0,"document":0,"function":0,"indic":0,"metadata":0,"object":0,"pyreadstat":0,"tabl":0,"welcom":0}}) \ No newline at end of file +Search.setIndex({"alltitles":{"Functions Documentation":[[0,"module-pyreadstat.pyreadstat"]],"Indices and tables":[[0,"indices-and-tables"]],"Metadata Object Description":[[0,"metadata-object-description"]],"Welcome to pyreadstat\u2019s documentation!":[[0,null]]},"docnames":["index"],"envversion":{"sphinx":66,"sphinx.domains.c":3,"sphinx.domains.changeset":1,"sphinx.domains.citation":1,"sphinx.domains.cpp":9,"sphinx.domains.index":1,"sphinx.domains.javascript":3,"sphinx.domains.math":2,"sphinx.domains.python":4,"sphinx.domains.rst":2,"sphinx.domains.std":2},"filenames":["index.rst"],"indexentries":{"filelike (class in pyreadstat.pyreadstat)":[[0,"pyreadstat.pyreadstat.FileLike",false]],"module":[[0,"module-pyreadstat.pyreadstat",false]],"pyreadstat.pyreadstat":[[0,"module-pyreadstat.pyreadstat",false]],"read() (pyreadstat.pyreadstat.filelike method)":[[0,"pyreadstat.pyreadstat.FileLike.read",false]],"read_dta() (in module pyreadstat.pyreadstat)":[[0,"pyreadstat.pyreadstat.read_dta",false]],"read_file_in_chunks() (in module pyreadstat.pyreadstat)":[[0,"pyreadstat.pyreadstat.read_file_in_chunks",false]],"read_file_multiprocessing() (in module pyreadstat.pyreadstat)":[[0,"pyreadstat.pyreadstat.read_file_multiprocessing",false]],"read_por() (in module pyreadstat.pyreadstat)":[[0,"pyreadstat.pyreadstat.read_por",false]],"read_sas7bcat() (in module pyreadstat.pyreadstat)":[[0,"pyreadstat.pyreadstat.read_sas7bcat",false]],"read_sas7bdat() (in module pyreadstat.pyreadstat)":[[0,"pyreadstat.pyreadstat.read_sas7bdat",false]],"read_sav() (in module pyreadstat.pyreadstat)":[[0,"pyreadstat.pyreadstat.read_sav",false]],"read_xport() (in module pyreadstat.pyreadstat)":[[0,"pyreadstat.pyreadstat.read_xport",false]],"seek() (pyreadstat.pyreadstat.filelike method)":[[0,"pyreadstat.pyreadstat.FileLike.seek",false]],"write_dta() (in module pyreadstat.pyreadstat)":[[0,"pyreadstat.pyreadstat.write_dta",false]],"write_por() (in module pyreadstat.pyreadstat)":[[0,"pyreadstat.pyreadstat.write_por",false]],"write_sav() (in module pyreadstat.pyreadstat)":[[0,"pyreadstat.pyreadstat.write_sav",false]],"write_xport() (in module pyreadstat.pyreadstat)":[[0,"pyreadstat.pyreadstat.write_xport",false]]},"objects":{"pyreadstat":[[0,0,0,"-","pyreadstat"]],"pyreadstat.pyreadstat":[[0,1,1,"","FileLike"],[0,3,1,"","read_dta"],[0,3,1,"","read_file_in_chunks"],[0,3,1,"","read_file_multiprocessing"],[0,3,1,"","read_por"],[0,3,1,"","read_sas7bcat"],[0,3,1,"","read_sas7bdat"],[0,3,1,"","read_sav"],[0,3,1,"","read_xport"],[0,3,1,"","write_dta"],[0,3,1,"","write_por"],[0,3,1,"","write_sav"],[0,3,1,"","write_xport"]],"pyreadstat.pyreadstat.FileLike":[[0,2,1,"","read"],[0,2,1,"","seek"]]},"objnames":{"0":["py","module","Python module"],"1":["py","class","Python class"],"2":["py","method","Python method"],"3":["py","function","Python function"]},"objtypes":{"0":"py:module","1":"py:class","2":"py:method","3":"py:function"},"terms":{"A":0,"By":0,"Each":0,"For":0,"IF":0,"If":0,"In":0,"It":0,"That":0,"The":0,"There":0,"This":0,"When":0,"You":0,"_":0,"abl":0,"accept":0,"account":0,"actual":0,"add":0,"addit":0,"align":0,"allow":0,"also":0,"alway":0,"ani":0,"annot":0,"anyth":0,"app":0,"appear":0,"appli":0,"applic":0,"apply_value_format":0,"appropi":0,"arg":0,"argument":0,"array":0,"assum":0,"attach":0,"attempt":0,"avoid":0,"base":0,"befor":0,"behavior":0,"beyond":0,"bool":0,"boolean":0,"boundari":0,"byte":0,"can":0,"canot":0,"case":0,"catalog":0,"catalog_fil":0,"categori":0,"center":0,"certain":0,"chang":0,"charact":0,"chunk":0,"chunksiz":0,"class":0,"column":0,"column_label":0,"column_nam":0,"column_names_to_label":0,"combin":0,"come":0,"compat":0,"compos":0,"compress":0,"comput":0,"consid":0,"consist":0,"contain":0,"convers":0,"convert":0,"core":0,"correct":0,"counted_valu":0,"creation":0,"creation_tim":0,"current":0,"data":0,"data_fram":0,"datafram":0,"dataset":0,"date":0,"dates_as_pandas_datetim":0,"datetim":0,"datetime64":0,"deal":0,"debug":0,"default":0,"defect":0,"defin":0,"definit":0,"deliv":0,"describ":0,"determin":0,"df":0,"dict":0,"dictionari":0,"dictonari":0,"difficult":0,"direct":0,"disabl":0,"disable_datetime_convers":0,"discard":0,"discret":0,"display":0,"done":0,"doubl":0,"dst_path":0,"dta":0,"effect":0,"either":0,"element":0,"empti":0,"encod":0,"entri":0,"enum":0,"equal":0,"error":0,"etc":0,"even":0,"exist":0,"extra":0,"extra_date_format":0,"extra_datetime_format":0,"extra_time_format":0,"extract":0,"fals":0,"faster":0,"field":0,"file":0,"file_encod":0,"file_format_vers":0,"file_label":0,"file_path":0,"filelik":0,"filename_path":0,"first":0,"float":0,"follow":0,"form":0,"format":0,"formats_as_categori":0,"formats_as_ordered_categori":0,"found":0,"frame":0,"full":0,"generat":0,"get":0,"given":0,"guess":0,"happen":0,"help":0,"hi":0,"higher":0,"iconv":0,"ignor":0,"impact":0,"import":0,"includ":0,"independ":0,"index":0,"inform":0,"instead":0,"int":0,"int32":0,"int8":0,"integ":0,"interpret":0,"irrespect":0,"is_dichotomi":0,"iter":0,"key":0,"keyword":0,"kwarg":0,"label":0,"larger":0,"later":0,"left":0,"length":0,"like":0,"limit":0,"list":0,"liter":0,"lo":0,"look":0,"lower":0,"mani":0,"map":0,"match":0,"max":0,"maximum":0,"may":0,"mean":0,"measur":0,"medatata":0,"member":0,"metadata_contain":0,"metadataon":0,"min":0,"miss":0,"missing_rang":0,"missing_user_valu":0,"missingrang":0,"modif":0,"modification_tim":0,"modul":0,"mr":0,"mr_set":0,"multipl":0,"multiprocess":0,"must":0,"name":0,"nan":0,"need":0,"next":0,"nomin":0,"non":0,"none":0,"note":0,"notic":0,"num_process":0,"num_row":0,"number":0,"number_column":0,"number_row":0,"numer":0,"numpi":0,"obligatori":0,"obtain":0,"offset":0,"one":0,"onli":0,"option":0,"order":0,"ordin":0,"origin":0,"original_variable_typ":0,"otherwis":0,"output_format":0,"overcom":0,"overflow":0,"page":0,"panda":0,"pandasdatafram":0,"parallel":0,"paramet":0,"pars":0,"pass":0,"path":0,"pathlik":0,"per":0,"perform":0,"piec":0,"polar":0,"polarsdatafram":0,"popul":0,"por":0,"pos":0,"preced":0,"prefer":0,"present":0,"process":0,"protocol":0,"purpos":0,"pyreadstatreadfunct":0,"python":0,"rang":0,"read":0,"read_dta":0,"read_file_in_chunk":0,"read_file_multiprocess":0,"read_funct":0,"read_por":0,"read_sas7bcat":0,"read_sas7bdat":0,"read_sav":0,"read_xport":0,"readabl":0,"readm":0,"readstat":0,"readstat_variable_typ":0,"record":0,"remain":0,"replac":0,"report":0,"repres":0,"respons":0,"result":0,"return":0,"right":0,"rise":0,"row":0,"row_compress":0,"row_limit":0,"row_offset":0,"run":0,"sas":0,"sas7bcat":0,"sas7bdat":0,"sata":0,"sav":0,"scale":0,"search":0,"section":0,"see":0,"seek":0,"sensit":0,"set":0,"set_catalog_to_sa":0,"set_value_label":0,"sever":0,"singl":0,"situat":0,"size":0,"skip":0,"spawn":0,"specif":0,"specifi":0,"speed":0,"spss":0,"start":0,"stata":0,"stop":0,"storag":0,"store":0,"str":0,"strang":0,"string":0,"suppli":0,"support":0,"system":0,"table_nam":0,"take":0,"text":0,"therefor":0,"time":0,"transform":0,"true":0,"tupl":0,"two":0,"type":0,"unknown":0,"unless":0,"unlimit":0,"upper":0,"use":0,"usecol":0,"user":0,"user_miss":0,"utf":0,"valid":0,"valu":0,"value_label":0,"variabl":0,"variable_align":0,"variable_display_width":0,"variable_format":0,"variable_list":0,"variable_measur":0,"variable_storage_width":0,"variable_to_label":0,"variable_value_label":0,"variables_value_label":0,"version":0,"warn":0,"well":0,"whenc":0,"whole":0,"whose":0,"width":0,"will":0,"without":0,"work":0,"worker":0,"write":0,"write_dta":0,"write_por":0,"write_sav":0,"write_xport":0,"written":0,"xport":0,"xpt":0,"year":0,"yield":0,"z":0,"zsav":0},"titles":["Welcome to pyreadstat\u2019s documentation!"],"titleterms":{"descript":0,"document":0,"function":0,"indic":0,"metadata":0,"object":0,"pyreadstat":0,"s":0,"tabl":0,"welcom":0}}) \ No newline at end of file From 1ebf67fcfde16862ba3dc60315fc44e20694d8da Mon Sep 17 00:00:00 2001 From: Otto Fajardo Date: Tue, 11 Aug 2026 11:00:09 +0200 Subject: [PATCH 8/9] updated Readstat source to 634f40a80d27221848ba57e9fb633b41146bac36 --- change_log.md | 1 + src/readstat.h | 3 ++ src/readstat_variable.c | 7 +++ src/readstat_writer.c | 10 ++++ src/sas/readstat_sas.h | 12 +++-- src/sas/readstat_sas7bdat_read.c | 90 +++++++++++++++++++++++++++++--- src/sas/readstat_xport_read.c | 14 ++++- src/sas/readstat_xport_write.c | 48 +++++++++++++---- src/spss/readstat_por_read.c | 8 +-- src/stata/readstat_dta_read.c | 18 ++++--- 10 files changed, 178 insertions(+), 33 deletions(-) diff --git a/change_log.md b/change_log.md index 178682a..a53b80d 100644 --- a/change_log.md +++ b/change_log.md @@ -1,5 +1,6 @@ # 1.3.6 (github, pypi and conda 2026.xx.xx) * Fixing #328, #336, #342, #344 +* Updated Readstat sources to 634f40a80d27221848ba57e9fb633b41146bac36 # 1.3.5 (github, pypi and conda 2026.05.19) * Readstat sources updated to commit 3add3a5eaac6df24d938beffb9148792e362d9ef diff --git a/src/readstat.h b/src/readstat.h index c6ece53..1b33581 100644 --- a/src/readstat.h +++ b/src/readstat.h @@ -205,6 +205,7 @@ typedef struct readstat_variable_s { int index; char name[300]; char format[256]; + char informat[256]; char label[1024]; readstat_label_set_t *label_set; off_t offset; @@ -287,6 +288,7 @@ int readstat_variable_get_index_after_skipping(const readstat_variable_t *variab const char *readstat_variable_get_name(const readstat_variable_t *variable); const char *readstat_variable_get_label(const readstat_variable_t *variable); const char *readstat_variable_get_format(const readstat_variable_t *variable); +const char *readstat_variable_get_informat(const readstat_variable_t *variable); readstat_type_t readstat_variable_get_type(const readstat_variable_t *variable); readstat_type_class_t readstat_variable_get_type_class(const readstat_variable_t *variable); size_t readstat_variable_get_storage_width(const readstat_variable_t *variable); @@ -538,6 +540,7 @@ readstat_variable_t *readstat_add_variable(readstat_writer_t *writer, const char size_t storage_width); void readstat_variable_set_label(readstat_variable_t *variable, const char *label); void readstat_variable_set_format(readstat_variable_t *variable, const char *format); +void readstat_variable_set_informat(readstat_variable_t *variable, const char *informat); void readstat_variable_set_label_set(readstat_variable_t *variable, readstat_label_set_t *label_set); void readstat_variable_set_measure(readstat_variable_t *variable, readstat_measure_t measure); void readstat_variable_set_alignment(readstat_variable_t *variable, readstat_alignment_t alignment); diff --git a/src/readstat_variable.c b/src/readstat_variable.c index ecd71ab..37d5164 100644 --- a/src/readstat_variable.c +++ b/src/readstat_variable.c @@ -41,6 +41,13 @@ const char *readstat_variable_get_format(const readstat_variable_t *variable) { return NULL; } +const char *readstat_variable_get_informat(const readstat_variable_t *variable) { + if (variable->informat[0]) + return variable->informat; + + return NULL; +} + readstat_type_t readstat_variable_get_type(const readstat_variable_t *variable) { return variable->type; } diff --git a/src/readstat_writer.c b/src/readstat_writer.c index c1e9890..dfba46c 100644 --- a/src/readstat_writer.c +++ b/src/readstat_writer.c @@ -28,6 +28,7 @@ static int readstat_compare_string_refs(const void *elem1, const void *elem2) { readstat_string_ref_t *readstat_string_ref_init(const char *string) { size_t len = strlen(string) + 1; readstat_string_ref_t *ref = calloc(1, sizeof(readstat_string_ref_t) + len); + if (ref == NULL) return NULL; ref->first_o = -1; ref->first_v = -1; ref->len = len; @@ -140,6 +141,7 @@ static readstat_error_t readstat_begin_writing_data(readstat_writer_t *writer) { } writer->row_len = row_len; writer->row = malloc(writer->row_len); + if (writer->row == NULL) { retval = READSTAT_ERROR_MALLOC; goto cleanup; } if (writer->callbacks.begin_data) { retval = writer->callbacks.begin_data(writer); } @@ -436,6 +438,14 @@ void readstat_variable_set_format(readstat_variable_t *variable, const char *for } } +void readstat_variable_set_informat(readstat_variable_t *variable, const char *informat) { + if (informat) { + snprintf(variable->informat, sizeof(variable->informat), "%s", informat); + } else { + memset(variable->informat, '\0', sizeof(variable->informat)); + } +} + void readstat_variable_set_measure(readstat_variable_t *variable, readstat_measure_t measure) { variable->measure = measure; } diff --git a/src/sas/readstat_sas.h b/src/sas/readstat_sas.h index 5f4f286..5d58910 100644 --- a/src/sas/readstat_sas.h +++ b/src/sas/readstat_sas.h @@ -111,8 +111,9 @@ typedef enum sas_subheader_type_e { #define SAS_PAGE_TYPE_AMD 0x0400 #define SAS_PAGE_TYPE_MASK 0x0F00 -#define SAS_PAGE_TYPE_META2 0x4000 -#define SAS_PAGE_TYPE_COMP 0x9000 +#define SAS_PAGE_TYPE_DELETED_ROWS 0x0080 +#define SAS_PAGE_TYPE_META2 0x4000 +#define SAS_PAGE_TYPE_COMP 0x9000 #define SAS_SUBHEADER_POINTER_SIZE_32BIT 12 #define SAS_SUBHEADER_POINTER_SIZE_64BIT 24 @@ -120,9 +121,10 @@ typedef enum sas_subheader_type_e { #define SAS_PAGE_HEADER_SIZE_32BIT 24 #define SAS_PAGE_HEADER_SIZE_64BIT 40 -#define SAS_COMPRESSION_NONE 0x00 -#define SAS_COMPRESSION_TRUNC 0x01 -#define SAS_COMPRESSION_ROW 0x04 +#define SAS_COMPRESSION_NONE 0x00 +#define SAS_COMPRESSION_TRUNC 0x01 +#define SAS_COMPRESSION_ROW 0x04 +#define SAS_COMPRESSION_DELETED_ROW 0x05 #define SAS_COMPRESSION_SIGNATURE_RLE "SASYZCRL" #define SAS_COMPRESSION_SIGNATURE_RDC "SASYZCR2" diff --git a/src/sas/readstat_sas7bdat_read.c b/src/sas/readstat_sas7bdat_read.c index 5fc8444..8e0cb95 100644 --- a/src/sas/readstat_sas7bdat_read.c +++ b/src/sas/readstat_sas7bdat_read.c @@ -5,6 +5,7 @@ #include #include #include +#include #include "readstat_sas.h" #include "readstat_sas_rle.h" #include "../readstat_iconv.h" @@ -45,9 +46,12 @@ typedef struct sas7bdat_ctx_s { uint32_t row_length; uint32_t page_row_count; + uint32_t total_row_count; uint32_t parsed_row_count; + uint32_t parsed_deleted_row_count; uint32_t column_count; uint32_t row_limit; + uint32_t deleted_row_count; uint32_t row_offset; uint64_t header_size; @@ -232,7 +236,7 @@ static readstat_error_t sas7bdat_parse_column_size_subheader(const char *subhead static readstat_error_t sas7bdat_parse_row_size_subheader(const char *subheader, size_t len, sas7bdat_ctx_t *ctx) { readstat_error_t retval = READSTAT_OK; uint64_t total_row_count; - uint64_t row_length, page_row_count; + uint64_t row_length, deleted_row_count, page_row_count; if (len < (ctx->u64 ? 250: 190)) { retval = READSTAT_ERROR_PARSE; @@ -242,13 +246,22 @@ static readstat_error_t sas7bdat_parse_row_size_subheader(const char *subheader, if (ctx->u64) { row_length = sas_read8(&subheader[40], ctx->bswap); total_row_count = sas_read8(&subheader[48], ctx->bswap); + deleted_row_count = sas_read8(&subheader[56], ctx->bswap); page_row_count = sas_read8(&subheader[120], ctx->bswap); } else { row_length = sas_read4(&subheader[20], ctx->bswap); total_row_count = sas_read4(&subheader[24], ctx->bswap); + deleted_row_count = sas_read4(&subheader[28], ctx->bswap); page_row_count = sas_read4(&subheader[60], ctx->bswap); } + if (deleted_row_count > total_row_count) { + retval = READSTAT_ERROR_PARSE; + goto cleanup; + } + ctx->total_row_count = total_row_count; + ctx->deleted_row_count = deleted_row_count; + sas_text_ref_t file_label_ref = sas7bdat_parse_text_ref(&subheader[len-130], ctx); if (file_label_ref.length) { if ((retval = sas7bdat_copy_text_ref(ctx->file_label, sizeof(ctx->file_label), @@ -275,12 +288,13 @@ static readstat_error_t sas7bdat_parse_row_size_subheader(const char *subheader, } ctx->page_row_count = page_row_count; - uint64_t total_row_count_after_skipping = total_row_count; - if (total_row_count > ctx->row_offset) { + uint64_t live_row_count = total_row_count - deleted_row_count; + uint64_t total_row_count_after_skipping = live_row_count; + if (live_row_count > ctx->row_offset) { total_row_count_after_skipping -= ctx->row_offset; } else { total_row_count_after_skipping = 0; - ctx->row_offset = total_row_count; + ctx->row_offset = live_row_count; } if (ctx->row_limit == 0 || total_row_count_after_skipping < ctx->row_limit) ctx->row_limit = total_row_count_after_skipping; @@ -393,6 +407,14 @@ static readstat_error_t sas7bdat_parse_column_format_subheader(const char *subhe return retval; } +static readstat_error_t sas7bdat_register_deleted_row(sas7bdat_ctx_t *ctx) { + if (ctx->parsed_deleted_row_count >= ctx->deleted_row_count) { + return READSTAT_ERROR_PARSE; + } + ctx->parsed_deleted_row_count++; + return READSTAT_OK; +} + static readstat_error_t sas7bdat_handle_data_value(readstat_variable_t *variable, col_info_t *col_info, const char *col_data, sas7bdat_ctx_t *ctx) { readstat_error_t retval = READSTAT_OK; @@ -490,7 +512,15 @@ static readstat_error_t sas7bdat_parse_single_row(const char *data, sas7bdat_ctx return retval; } -static readstat_error_t sas7bdat_parse_rows(const char *data, size_t len, sas7bdat_ctx_t *ctx) { +static unsigned char sas7bdat_read_bitmap(const unsigned char *bitmap, int index) { + unsigned char current_byte = bitmap[index / CHAR_BIT]; + unsigned char mask = 1 << (CHAR_BIT - 1 - index % CHAR_BIT); + + return current_byte & mask; +} + +static readstat_error_t sas7bdat_parse_rows(const char *data, size_t len, + const unsigned char *deleted_bitmap, sas7bdat_ctx_t *ctx) { readstat_error_t retval = READSTAT_OK; int i; size_t row_offset=0; @@ -499,8 +529,13 @@ static readstat_error_t sas7bdat_parse_rows(const char *data, size_t len, sas7bd retval = READSTAT_ERROR_ROW_WIDTH_MISMATCH; goto cleanup; } - if ((retval = sas7bdat_parse_single_row(&data[row_offset], ctx)) != READSTAT_OK) + if (deleted_bitmap != NULL && sas7bdat_read_bitmap(deleted_bitmap, i)) { + if ((retval = sas7bdat_register_deleted_row(ctx)) != READSTAT_OK) { + goto cleanup; + } + } else if ((retval = sas7bdat_parse_single_row(&data[row_offset], ctx)) != READSTAT_OK) { goto cleanup; + } row_offset += ctx->row_length; } @@ -513,6 +548,7 @@ static readstat_error_t sas7bdat_parse_subheader_rdc(const char *subheader, size readstat_error_t retval = READSTAT_OK; const unsigned char *input = (const unsigned char *)subheader; char *buffer = malloc(ctx->row_length); + if (buffer == NULL) return READSTAT_ERROR_MALLOC; char *output = buffer; while (input + 2 <= (const unsigned char *)subheader + len) { int i; @@ -708,6 +744,9 @@ static readstat_variable_t *sas7bdat_init_variable(sas7bdat_ctx_t *ctx, int i, len += snprintf(variable->format + len, sizeof(variable->format) - len, ".%d", ctx->col_info[i].format_digits); } + if (len) { // TODO where is the informat saved? + readstat_variable_set_informat(variable, variable->format); + } if ((retval = sas7bdat_copy_text_ref(variable->label, sizeof(variable->label), ctx->col_info[i].label_ref, ctx)) != READSTAT_OK) { goto cleanup; @@ -931,7 +970,7 @@ static readstat_error_t sas7bdat_parse_page_pass1(const char *page, size_t page_ goto cleanup; } } - } else if (shp_info.compression == SAS_COMPRESSION_ROW) { + } else if (shp_info.compression == SAS_COMPRESSION_ROW || shp_info.compression == SAS_COMPRESSION_DELETED_ROW) { /* void */ } else { retval = READSTAT_ERROR_UNSUPPORTED_COMPRESSION; @@ -947,6 +986,25 @@ static readstat_error_t sas7bdat_parse_page_pass1(const char *page, size_t page_ return retval; } +static readstat_error_t sas7bdat_parse_deleted_row_bitmap(const char *page, const char *data, + size_t page_size, const unsigned char **deleted_row_bitmap, sas7bdat_ctx_t *ctx) { + uint64_t page_unused_bytes; + if (ctx->u64) { + page_unused_bytes = sas_read8(&page[24], ctx->bswap); + } else { + page_unused_bytes = sas_read4(&page[12], ctx->bswap); + } + uint32_t row_count = ctx->page_row_count < ctx->total_row_count ? ctx->page_row_count : ctx->total_row_count; + uint64_t deleted_row_bitmap_offset = (uint64_t)row_count * ctx->row_length + page_unused_bytes; + uint32_t required_bytes = row_count / CHAR_BIT + (row_count % CHAR_BIT == 0 ? 0 : 1); + + if ((data - page) + deleted_row_bitmap_offset + required_bytes > page_size) { + return READSTAT_ERROR_PARSE; + } + *deleted_row_bitmap = (const unsigned char *)data + deleted_row_bitmap_offset; + return READSTAT_OK; +} + static readstat_error_t sas7bdat_parse_page_pass2(const char *page, size_t page_size, sas7bdat_ctx_t *ctx) { uint16_t page_type; @@ -1007,6 +1065,10 @@ static readstat_error_t sas7bdat_parse_page_pass2(const char *page, size_t page_ if ((retval = sas7bdat_parse_subheader_compressed(page + shp_info.offset, shp_info.len, ctx)) != READSTAT_OK) { goto cleanup; } + } else if (shp_info.compression == SAS_COMPRESSION_DELETED_ROW) { + if ((retval = sas7bdat_register_deleted_row(ctx)) != READSTAT_OK) { + goto cleanup; + } } else { retval = READSTAT_ERROR_UNSUPPORTED_COMPRESSION; goto cleanup; @@ -1036,7 +1098,14 @@ static readstat_error_t sas7bdat_parse_page_pass2(const char *page, size_t page_ goto cleanup; } if (ctx->handle.value) { - retval = sas7bdat_parse_rows(data, page + page_size - data, ctx); + const unsigned char *deleted_row_bitmap = NULL; + if (page_type & SAS_PAGE_TYPE_DELETED_ROWS) { + if ((retval = sas7bdat_parse_deleted_row_bitmap(page, data, page_size, + &deleted_row_bitmap, ctx)) != READSTAT_OK) { + goto cleanup; + } + } + retval = sas7bdat_parse_rows(data, page + page_size - data, deleted_row_bitmap, ctx); } } cleanup: @@ -1211,6 +1280,11 @@ readstat_error_t readstat_parse_sas7bdat(readstat_parser_t *parser, const char * sas7bdat_ctx_t *ctx = calloc(1, sizeof(sas7bdat_ctx_t)); sas_header_info_t *hinfo = calloc(1, sizeof(sas_header_info_t)); + if (ctx == NULL || hinfo == NULL) { + retval = READSTAT_ERROR_MALLOC; + goto cleanup; + } + ctx->handle = parser->handlers; ctx->input_encoding = parser->input_encoding; ctx->output_encoding = parser->output_encoding; diff --git a/src/sas/readstat_xport_read.c b/src/sas/readstat_xport_read.c index 6bd9ddb..84e83b5 100644 --- a/src/sas/readstat_xport_read.c +++ b/src/sas/readstat_xport_read.c @@ -281,6 +281,7 @@ static readstat_error_t xport_read_obs_header_record(xport_ctx_t *ctx) { static readstat_error_t xport_construct_format(char *dst, size_t dst_len, const char *src, size_t src_len, int width, int decimals) { char *format = malloc(4 * src_len + 1); + if (format == NULL) return READSTAT_ERROR_MALLOC; readstat_error_t retval = readstat_convert(format, 4 * src_len + 1, src, src_len, NULL); if (retval != READSTAT_OK) { @@ -431,6 +432,11 @@ static readstat_error_t xport_read_labels_v9(xport_ctx_t *ctx, int label_count) format, format_len, ctx->converter); if (retval != READSTAT_OK) goto cleanup; + + retval = readstat_convert(variable->informat, sizeof(variable->informat), + informat, informat_len, ctx->converter); + if (retval != READSTAT_OK) + goto cleanup; } retval = xport_skip_rest_of_record(ctx); @@ -487,7 +493,13 @@ static readstat_error_t xport_read_variables(xport_ctx_t *ctx) { retval = xport_construct_format(variable->format, sizeof(variable->format), namestr.nform, sizeof(namestr.nform), - variable->display_width, variable->decimals); + namestr.nfl, namestr.nfd); + if (retval != READSTAT_OK) + goto cleanup; + + retval = xport_construct_format(variable->informat, sizeof(variable->informat), + namestr.niform, sizeof(namestr.niform), + namestr.nifl, namestr.nifd); if (retval != READSTAT_OK) goto cleanup; diff --git a/src/sas/readstat_xport_write.c b/src/sas/readstat_xport_write.c index 2383360..72d7f39 100644 --- a/src/sas/readstat_xport_write.c +++ b/src/sas/readstat_xport_write.c @@ -117,7 +117,7 @@ static readstat_error_t xport_write_variables(readstat_writer_t *writer) { copypad(namestr.nlabel, sizeof(namestr.nlabel), variable->label); if (variable->format[0]) { - xport_format_t format; + xport_format_t format; retval = xport_parse_format(variable->format, strlen(variable->format), &format, NULL, NULL); @@ -128,16 +128,32 @@ static readstat_error_t xport_write_variables(readstat_writer_t *writer) { namestr.nfl = format.width; namestr.nfd = format.decimals; - copypad(namestr.niform, sizeof(namestr.niform), format.name); - namestr.nifl = format.width; - namestr.nifd = format.decimals; - if (strlen(format.name) > 8) { any_has_long_format = 1; needs_long_record = 1; } - } else if (variable->display_width) { + } else { namestr.nfl = variable->display_width; + namestr.nfd = variable->decimals; + } + + if (variable->informat[0]) { + xport_format_t informat; + + retval = xport_parse_format(variable->informat, strlen(variable->informat), + &informat, NULL, NULL); + + if (retval != READSTAT_OK) + goto cleanup; + + copypad(namestr.niform, sizeof(namestr.niform), informat.name); + namestr.nifl = informat.width; + namestr.nifd = informat.decimals; + + if (strlen(informat.name) > 8) { + any_has_long_format = 1; + needs_long_record = 1; + } } namestr.nfj = (variable->alignment == READSTAT_ALIGNMENT_RIGHT); @@ -185,13 +201,14 @@ static readstat_error_t xport_write_variables(readstat_writer_t *writer) { size_t label_len = strlen(variable->label); size_t name_len = strlen(variable->name); size_t format_len = strlen(variable->format); + size_t informat_len = strlen(variable->informat); int has_long_label = 0; int has_long_format = 0; has_long_label = (label_len > 40); if (variable->format[0]) { - xport_format_t format; + xport_format_t format; retval = xport_parse_format(variable->format, strlen(variable->format), &format, NULL, NULL); @@ -203,8 +220,21 @@ static readstat_error_t xport_write_variables(readstat_writer_t *writer) { } } + if (variable->informat[0]) { + xport_format_t informat; + + retval = xport_parse_format(variable->informat, strlen(variable->informat), + &informat, NULL, NULL); + if (retval != READSTAT_OK) + goto cleanup; + + if (strlen(informat.name) > 8) { + has_long_format = 1; + } + } + if (has_long_format) { - uint16_t labeldef[5] = { i+1, name_len, label_len, format_len, format_len }; + uint16_t labeldef[5] = { i+1, name_len, label_len, format_len, informat_len }; if (machine_is_little_endian()) { labeldef[0] = byteswap2(labeldef[0]); @@ -230,7 +260,7 @@ static readstat_error_t xport_write_variables(readstat_writer_t *writer) { if (retval != READSTAT_OK) goto cleanup; - retval = readstat_write_string(writer, variable->format); + retval = readstat_write_string(writer, variable->informat); if (retval != READSTAT_OK) goto cleanup; diff --git a/src/spss/readstat_por_read.c b/src/spss/readstat_por_read.c index 9f6f892..00783c5 100644 --- a/src/spss/readstat_por_read.c +++ b/src/spss/readstat_por_read.c @@ -372,6 +372,10 @@ static readstat_error_t read_missing_value_record(por_ctx_t *ctx) { } varinfo = &ctx->varinfo[ctx->var_offset]; + if (varinfo->n_missing_values >= 3) { + retval = READSTAT_ERROR_PARSE; + goto cleanup; + } if (varinfo->type == READSTAT_TYPE_DOUBLE) { if ((retval = read_double(ctx, &varinfo->missing_double_values[varinfo->n_missing_values])) != READSTAT_OK) { goto cleanup; @@ -382,10 +386,6 @@ static readstat_error_t read_missing_value_record(por_ctx_t *ctx) { goto cleanup; } } - if (varinfo->n_missing_values > 2) { - retval = READSTAT_ERROR_PARSE; - goto cleanup; - } varinfo->n_missing_values++; cleanup: diff --git a/src/stata/readstat_dta_read.c b/src/stata/readstat_dta_read.c index ce07c33..6e0b68c 100644 --- a/src/stata/readstat_dta_read.c +++ b/src/stata/readstat_dta_read.c @@ -36,9 +36,14 @@ static readstat_error_t dta_update_progress(dta_ctx_t *ctx) { } static readstat_variable_t *dta_init_variable(dta_ctx_t *ctx, int i, int index_after_skipping, - readstat_type_t type, size_t max_len) { + readstat_type_t type, size_t max_len, readstat_error_t *out_retval) { readstat_variable_t *variable = calloc(1, sizeof(readstat_variable_t)); + if (variable == NULL) { + if (out_retval) *out_retval = READSTAT_ERROR_MALLOC; + return NULL; + } + variable->type = type; variable->index = i; variable->index_after_skipping = index_after_skipping; @@ -317,10 +322,9 @@ static readstat_error_t dta_read_tag(dta_ctx_t *ctx, const char *tag) { static int dta_compare_strls(const void *elem1, const void *elem2) { const dta_strl_t *key = (const dta_strl_t *)elem1; const dta_strl_t *target = *(const dta_strl_t **)elem2; - if (key->o == target->o) - return key->v - target->v; - - return key->o - target->o; + if (key->o != target->o) + return (key->o > target->o) - (key->o < target->o); + return (key->v > target->v) - (key->v < target->v); } static dta_strl_t dta_interpret_strl_vo_bytes(dta_ctx_t *ctx, const unsigned char *vo_bytes) { @@ -952,7 +956,9 @@ static readstat_error_t dta_handle_variables(dta_ctx_t *ctx) { max_len = 0; } - ctx->variables[i] = dta_init_variable(ctx, i, index_after_skipping, type, max_len); + ctx->variables[i] = dta_init_variable(ctx, i, index_after_skipping, type, max_len, &retval); + if (ctx->variables[i] == NULL) + goto cleanup; const char *value_labels = NULL; From 24808c075917161d71428ff5f1add4e32e1d6bad Mon Sep 17 00:00:00 2001 From: Otto Fajardo Date: Wed, 12 Aug 2026 13:14:48 +0200 Subject: [PATCH 9/9] implementing SAS informats fixes #287 (#346) * implementing xport-informat fixes #287 * updating documentation and updating metadata class, type annotations, adding tests --- change_log.md | 2 +- docs/_build/doctrees/environment.pickle | Bin 26713 -> 26829 bytes docs/_build/doctrees/index.doctree | Bin 830278 -> 834924 bytes docs/_build/html/_sources/index.rst.txt | 2 + docs/_build/html/index.html | 6 +- docs/_build/html/searchindex.js | 2 +- docs/index.rst | 2 + pyreadstat/_readstat_parser.c | 4316 ++++++++++++----------- pyreadstat/_readstat_parser.pxd | 1 + pyreadstat/_readstat_parser.pyx | 19 +- pyreadstat/_readstat_writer.c | 1783 +++++----- pyreadstat/_readstat_writer.pxd | 3 +- pyreadstat/_readstat_writer.pyx | 10 +- pyreadstat/pyclasses.py | 9 +- pyreadstat/pyreadstat.py | 13 +- pyreadstat/readstat_api.pxd | 2 + tests/test_narwhalified.py | 6 +- tests/test_typing.yml | 2 +- 18 files changed, 3240 insertions(+), 2938 deletions(-) diff --git a/change_log.md b/change_log.md index a53b80d..6aa13e0 100644 --- a/change_log.md +++ b/change_log.md @@ -1,5 +1,5 @@ # 1.3.6 (github, pypi and conda 2026.xx.xx) -* Fixing #328, #336, #342, #344 +* Fixing #328, #336, #342, #344, #287, #307 * Updated Readstat sources to 634f40a80d27221848ba57e9fb633b41146bac36 # 1.3.5 (github, pypi and conda 2026.05.19) diff --git a/docs/_build/doctrees/environment.pickle b/docs/_build/doctrees/environment.pickle index bec156c8a630fed8368b9746b21100ca852a2c76..7fafce8d03124a89241ac73582e51913a1f65033 100644 GIT binary patch literal 26829 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 literal 26713 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 WH_4~E;N{w6XhhZd9-&R6 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

te%<4 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 literal 830278 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 Object Description

-pyreadstat.pyreadstat.write_xport(df: DataFrame, dst_path: str | bytes | PathLike[str] | PathLike[bytes], file_label: str = '', column_labels: list[str] | dict[str, str] | None = None, table_name: str | None = None, file_format_version: Literal[5, 8] = 8, variable_format: dict[str, str] | None = None) None
+pyreadstat.pyreadstat.write_xport(df: DataFrame, dst_path: str | bytes | PathLike[str] | PathLike[bytes], file_label: str = '', column_labels: list[str] | dict[str, str] | None = None, table_name: str | None = None, file_format_version: Literal[5, 8] = 8, variable_format: dict[str, str] | None = None, variable_informat: dict[str, str] | None = None) None

Writes a dataframe to a SAS Xport (xpt) file. If no table_name is specified the dataset has by default the name DATASET (take it into account if reading the file from SAS.) @@ -647,6 +649,8 @@

Metadata Object Description__pyx_slice[i]); } for (int i=0; i<1; ++i) { Py_CLEAR(clear_module_state->__pyx_tuple[i]); } for (int i=0; i<3; ++i) { Py_CLEAR(clear_module_state->__pyx_codeobj_tab[i]); } - for (int i=0; i<295; ++i) { Py_CLEAR(clear_module_state->__pyx_string_tab[i]); } + for (int i=0; i<296; ++i) { Py_CLEAR(clear_module_state->__pyx_string_tab[i]); } for (int i=0; i<4; ++i) { Py_CLEAR(clear_module_state->__pyx_number_tab[i]); } /* #### Code section: module_state_clear_contents ### */ /* CommonTypesMetaclass.module_state_clear */ @@ -3492,7 +3494,7 @@ static CYTHON_SMALL_CODE int __pyx_m_traverse(PyObject *m, visitproc visit, void for (int i=0; i<1; ++i) { __Pyx_VISIT_CONST(traverse_module_state->__pyx_slice[i]); } for (int i=0; i<1; ++i) { __Pyx_VISIT_CONST(traverse_module_state->__pyx_tuple[i]); } for (int i=0; i<3; ++i) { __Pyx_VISIT_CONST(traverse_module_state->__pyx_codeobj_tab[i]); } - for (int i=0; i<295; ++i) { __Pyx_VISIT_CONST(traverse_module_state->__pyx_string_tab[i]); } + for (int i=0; i<296; ++i) { __Pyx_VISIT_CONST(traverse_module_state->__pyx_string_tab[i]); } for (int i=0; i<4; ++i) { __Pyx_VISIT_CONST(traverse_module_state->__pyx_number_tab[i]); } /* #### Code section: module_state_traverse_contents ### */ /* CommonTypesMetaclass.module_state_traverse */ @@ -5724,7 +5726,7 @@ static int __pyx_pf_10pyreadstat_16_readstat_parser_14data_container___cinit__(s * self.col_dytpes_isfloat = list() * self.col_formats = list() # <<<<<<<<<<<<<< * self.col_formats_original = list() - * self.origin = None + * self.col_informats_original = list() */ __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 102, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); @@ -5738,8 +5740,8 @@ static int __pyx_pf_10pyreadstat_16_readstat_parser_14data_container___cinit__(s * self.col_dytpes_isfloat = list() * self.col_formats = list() * self.col_formats_original = list() # <<<<<<<<<<<<<< + * self.col_informats_original = list() * self.origin = None - * self.unix_to_origin_secs = 0 */ __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 103, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); @@ -5752,6 +5754,21 @@ static int __pyx_pf_10pyreadstat_16_readstat_parser_14data_container___cinit__(s /* "pyreadstat/_readstat_parser.pyx":104 * self.col_formats = list() * self.col_formats_original = list() + * self.col_informats_original = list() # <<<<<<<<<<<<<< + * self.origin = None + * self.unix_to_origin_secs = 0 +*/ + __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 104, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_GIVEREF(__pyx_t_1); + __Pyx_GOTREF(__pyx_v_self->col_informats_original); + __Pyx_DECREF(__pyx_v_self->col_informats_original); + __pyx_v_self->col_informats_original = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + /* "pyreadstat/_readstat_parser.pyx":105 + * self.col_formats_original = list() + * self.col_informats_original = list() * self.origin = None # <<<<<<<<<<<<<< * self.unix_to_origin_secs = 0 * self.is_unkown_number_rows = 0 @@ -5762,8 +5779,8 @@ static int __pyx_pf_10pyreadstat_16_readstat_parser_14data_container___cinit__(s __Pyx_DECREF(__pyx_v_self->origin); __pyx_v_self->origin = Py_None; - /* "pyreadstat/_readstat_parser.pyx":105 - * self.col_formats_original = list() + /* "pyreadstat/_readstat_parser.pyx":106 + * self.col_informats_original = list() * self.origin = None * self.unix_to_origin_secs = 0 # <<<<<<<<<<<<<< * self.is_unkown_number_rows = 0 @@ -5771,7 +5788,7 @@ static int __pyx_pf_10pyreadstat_16_readstat_parser_14data_container___cinit__(s */ __pyx_v_self->unix_to_origin_secs = 0.0; - /* "pyreadstat/_readstat_parser.pyx":106 + /* "pyreadstat/_readstat_parser.pyx":107 * self.origin = None * self.unix_to_origin_secs = 0 * self.is_unkown_number_rows = 0 # <<<<<<<<<<<<<< @@ -5780,7 +5797,7 @@ static int __pyx_pf_10pyreadstat_16_readstat_parser_14data_container___cinit__(s */ __pyx_v_self->is_unkown_number_rows = 0; - /* "pyreadstat/_readstat_parser.pyx":107 + /* "pyreadstat/_readstat_parser.pyx":108 * self.unix_to_origin_secs = 0 * self.is_unkown_number_rows = 0 * self.file_encoding = None # <<<<<<<<<<<<<< @@ -5793,7 +5810,7 @@ static int __pyx_pf_10pyreadstat_16_readstat_parser_14data_container___cinit__(s __Pyx_DECREF(__pyx_v_self->file_encoding); __pyx_v_self->file_encoding = ((PyObject*)Py_None); - /* "pyreadstat/_readstat_parser.pyx":108 + /* "pyreadstat/_readstat_parser.pyx":109 * self.is_unkown_number_rows = 0 * self.file_encoding = None * self.file_label = None # <<<<<<<<<<<<<< @@ -5806,7 +5823,7 @@ static int __pyx_pf_10pyreadstat_16_readstat_parser_14data_container___cinit__(s __Pyx_DECREF(__pyx_v_self->file_label); __pyx_v_self->file_label = ((PyObject*)Py_None); - /* "pyreadstat/_readstat_parser.pyx":109 + /* "pyreadstat/_readstat_parser.pyx":110 * self.file_encoding = None * self.file_label = None * self.metaonly = 0 # <<<<<<<<<<<<<< @@ -5815,7 +5832,7 @@ static int __pyx_pf_10pyreadstat_16_readstat_parser_14data_container___cinit__(s */ __pyx_v_self->metaonly = 0; - /* "pyreadstat/_readstat_parser.pyx":110 + /* "pyreadstat/_readstat_parser.pyx":111 * self.file_label = None * self.metaonly = 0 * self.dates_as_pandas = 0 # <<<<<<<<<<<<<< @@ -5824,14 +5841,14 @@ static int __pyx_pf_10pyreadstat_16_readstat_parser_14data_container___cinit__(s */ __pyx_v_self->dates_as_pandas = 0; - /* "pyreadstat/_readstat_parser.pyx":111 + /* "pyreadstat/_readstat_parser.pyx":112 * self.metaonly = 0 * self.dates_as_pandas = 0 * self.label_to_var_name = dict() # <<<<<<<<<<<<<< * self.labels_raw = dict() * self.notes = list() */ - __pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 111, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 112, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); __Pyx_GOTREF(__pyx_v_self->label_to_var_name); @@ -5839,14 +5856,14 @@ static int __pyx_pf_10pyreadstat_16_readstat_parser_14data_container___cinit__(s __pyx_v_self->label_to_var_name = __pyx_t_1; __pyx_t_1 = 0; - /* "pyreadstat/_readstat_parser.pyx":112 + /* "pyreadstat/_readstat_parser.pyx":113 * self.dates_as_pandas = 0 * self.label_to_var_name = dict() * self.labels_raw = dict() # <<<<<<<<<<<<<< * self.notes = list() * self.user_encoding = None */ - __pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 112, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 113, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); __Pyx_GOTREF(__pyx_v_self->labels_raw); @@ -5854,14 +5871,14 @@ static int __pyx_pf_10pyreadstat_16_readstat_parser_14data_container___cinit__(s __pyx_v_self->labels_raw = __pyx_t_1; __pyx_t_1 = 0; - /* "pyreadstat/_readstat_parser.pyx":113 + /* "pyreadstat/_readstat_parser.pyx":114 * self.label_to_var_name = dict() * self.labels_raw = dict() * self.notes = list() # <<<<<<<<<<<<<< * self.user_encoding = None * self.table_name = None */ - __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 113, __pyx_L1_error) + __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 114, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); __Pyx_GOTREF(__pyx_v_self->notes); @@ -5869,7 +5886,7 @@ static int __pyx_pf_10pyreadstat_16_readstat_parser_14data_container___cinit__(s __pyx_v_self->notes = __pyx_t_1; __pyx_t_1 = 0; - /* "pyreadstat/_readstat_parser.pyx":114 + /* "pyreadstat/_readstat_parser.pyx":115 * self.labels_raw = dict() * self.notes = list() * self.user_encoding = None # <<<<<<<<<<<<<< @@ -5882,7 +5899,7 @@ static int __pyx_pf_10pyreadstat_16_readstat_parser_14data_container___cinit__(s __Pyx_DECREF(__pyx_v_self->user_encoding); __pyx_v_self->user_encoding = ((PyObject*)Py_None); - /* "pyreadstat/_readstat_parser.pyx":115 + /* "pyreadstat/_readstat_parser.pyx":116 * self.notes = list() * self.user_encoding = None * self.table_name = None # <<<<<<<<<<<<<< @@ -5895,7 +5912,7 @@ static int __pyx_pf_10pyreadstat_16_readstat_parser_14data_container___cinit__(s __Pyx_DECREF(__pyx_v_self->table_name); __pyx_v_self->table_name = ((PyObject*)Py_None); - /* "pyreadstat/_readstat_parser.pyx":116 + /* "pyreadstat/_readstat_parser.pyx":117 * self.user_encoding = None * self.table_name = None * self.filter_cols = 0 # <<<<<<<<<<<<<< @@ -5904,14 +5921,14 @@ static int __pyx_pf_10pyreadstat_16_readstat_parser_14data_container___cinit__(s */ __pyx_v_self->filter_cols = 0; - /* "pyreadstat/_readstat_parser.pyx":117 + /* "pyreadstat/_readstat_parser.pyx":118 * self.table_name = None * self.filter_cols = 0 * self.use_cols = list() # <<<<<<<<<<<<<< * self.usernan = 0 * self.missing_ranges = dict() */ - __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 117, __pyx_L1_error) + __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 118, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); __Pyx_GOTREF(__pyx_v_self->use_cols); @@ -5919,7 +5936,7 @@ static int __pyx_pf_10pyreadstat_16_readstat_parser_14data_container___cinit__(s __pyx_v_self->use_cols = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - /* "pyreadstat/_readstat_parser.pyx":118 + /* "pyreadstat/_readstat_parser.pyx":119 * self.filter_cols = 0 * self.use_cols = list() * self.usernan = 0 # <<<<<<<<<<<<<< @@ -5928,14 +5945,14 @@ static int __pyx_pf_10pyreadstat_16_readstat_parser_14data_container___cinit__(s */ __pyx_v_self->usernan = 0; - /* "pyreadstat/_readstat_parser.pyx":119 + /* "pyreadstat/_readstat_parser.pyx":120 * self.use_cols = list() * self.usernan = 0 * self.missing_ranges = dict() # <<<<<<<<<<<<<< * self.missing_user_values = dict() * self.variable_storage_width = dict() */ - __pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 119, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 120, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); __Pyx_GOTREF(__pyx_v_self->missing_ranges); @@ -5943,14 +5960,14 @@ static int __pyx_pf_10pyreadstat_16_readstat_parser_14data_container___cinit__(s __pyx_v_self->missing_ranges = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - /* "pyreadstat/_readstat_parser.pyx":120 + /* "pyreadstat/_readstat_parser.pyx":121 * self.usernan = 0 * self.missing_ranges = dict() * self.missing_user_values = dict() # <<<<<<<<<<<<<< * self.variable_storage_width = dict() * self.variable_display_width = dict() */ - __pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 120, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 121, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); __Pyx_GOTREF(__pyx_v_self->missing_user_values); @@ -5958,14 +5975,14 @@ static int __pyx_pf_10pyreadstat_16_readstat_parser_14data_container___cinit__(s __pyx_v_self->missing_user_values = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - /* "pyreadstat/_readstat_parser.pyx":121 + /* "pyreadstat/_readstat_parser.pyx":122 * self.missing_ranges = dict() * self.missing_user_values = dict() * self.variable_storage_width = dict() # <<<<<<<<<<<<<< * self.variable_display_width = dict() * self.variable_alignment = dict() */ - __pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 121, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 122, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); __Pyx_GOTREF(__pyx_v_self->variable_storage_width); @@ -5973,14 +5990,14 @@ static int __pyx_pf_10pyreadstat_16_readstat_parser_14data_container___cinit__(s __pyx_v_self->variable_storage_width = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - /* "pyreadstat/_readstat_parser.pyx":122 + /* "pyreadstat/_readstat_parser.pyx":123 * self.missing_user_values = dict() * self.variable_storage_width = dict() * self.variable_display_width = dict() # <<<<<<<<<<<<<< * self.variable_alignment = dict() * self.variable_measure = dict() */ - __pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 122, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 123, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); __Pyx_GOTREF(__pyx_v_self->variable_display_width); @@ -5988,14 +6005,14 @@ static int __pyx_pf_10pyreadstat_16_readstat_parser_14data_container___cinit__(s __pyx_v_self->variable_display_width = __pyx_t_1; __pyx_t_1 = 0; - /* "pyreadstat/_readstat_parser.pyx":123 + /* "pyreadstat/_readstat_parser.pyx":124 * self.variable_storage_width = dict() * self.variable_display_width = dict() * self.variable_alignment = dict() # <<<<<<<<<<<<<< * self.variable_measure = dict() * self.no_datetime_conversion = 0 */ - __pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 123, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 124, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); __Pyx_GOTREF(__pyx_v_self->variable_alignment); @@ -6003,14 +6020,14 @@ static int __pyx_pf_10pyreadstat_16_readstat_parser_14data_container___cinit__(s __pyx_v_self->variable_alignment = __pyx_t_1; __pyx_t_1 = 0; - /* "pyreadstat/_readstat_parser.pyx":124 + /* "pyreadstat/_readstat_parser.pyx":125 * self.variable_display_width = dict() * self.variable_alignment = dict() * self.variable_measure = dict() # <<<<<<<<<<<<<< * self.no_datetime_conversion = 0 * self.ctime = 0 */ - __pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 124, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 125, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); __Pyx_GOTREF(__pyx_v_self->variable_measure); @@ -6018,7 +6035,7 @@ static int __pyx_pf_10pyreadstat_16_readstat_parser_14data_container___cinit__(s __pyx_v_self->variable_measure = __pyx_t_1; __pyx_t_1 = 0; - /* "pyreadstat/_readstat_parser.pyx":125 + /* "pyreadstat/_readstat_parser.pyx":126 * self.variable_alignment = dict() * self.variable_measure = dict() * self.no_datetime_conversion = 0 # <<<<<<<<<<<<<< @@ -6027,7 +6044,7 @@ static int __pyx_pf_10pyreadstat_16_readstat_parser_14data_container___cinit__(s */ __pyx_v_self->no_datetime_conversion = 0; - /* "pyreadstat/_readstat_parser.pyx":126 + /* "pyreadstat/_readstat_parser.pyx":127 * self.variable_measure = dict() * self.no_datetime_conversion = 0 * self.ctime = 0 # <<<<<<<<<<<<<< @@ -6036,7 +6053,7 @@ static int __pyx_pf_10pyreadstat_16_readstat_parser_14data_container___cinit__(s */ __pyx_v_self->ctime = 0; - /* "pyreadstat/_readstat_parser.pyx":127 + /* "pyreadstat/_readstat_parser.pyx":128 * self.no_datetime_conversion = 0 * self.ctime = 0 * self.mtime = 0 # <<<<<<<<<<<<<< @@ -6045,14 +6062,14 @@ static int __pyx_pf_10pyreadstat_16_readstat_parser_14data_container___cinit__(s */ __pyx_v_self->mtime = 0; - /* "pyreadstat/_readstat_parser.pyx":128 + /* "pyreadstat/_readstat_parser.pyx":129 * self.ctime = 0 * self.mtime = 0 * self.mr_sets = dict() # <<<<<<<<<<<<<< * self.output_format = "" * */ - __pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 128, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 129, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); __Pyx_GOTREF(__pyx_v_self->mr_sets); @@ -6060,7 +6077,7 @@ static int __pyx_pf_10pyreadstat_16_readstat_parser_14data_container___cinit__(s __pyx_v_self->mr_sets = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - /* "pyreadstat/_readstat_parser.pyx":129 + /* "pyreadstat/_readstat_parser.pyx":130 * self.mtime = 0 * self.mr_sets = dict() * self.output_format = "" # <<<<<<<<<<<<<< @@ -6297,7 +6314,7 @@ static PyObject *__pyx_pf_10pyreadstat_16_readstat_parser_14data_container_4__se return __pyx_r; } -/* "pyreadstat/_readstat_parser.pyx":147 +/* "pyreadstat/_readstat_parser.pyx":148 * * * cdef py_datetime_format transform_variable_format(str var_format, py_file_format file_format): # <<<<<<<<<<<<<< @@ -6319,7 +6336,7 @@ static __pyx_t_10pyreadstat_16_readstat_parser_py_datetime_format __pyx_f_10pyre int __pyx_clineno = 0; __Pyx_RefNannySetupContext("transform_variable_format", 0); - /* "pyreadstat/_readstat_parser.pyx":151 + /* "pyreadstat/_readstat_parser.pyx":152 * Transforms a readstat var_format to a date, datetime or time format label * """ * if file_format == FILE_FORMAT_SAS: # <<<<<<<<<<<<<< @@ -6329,7 +6346,7 @@ static __pyx_t_10pyreadstat_16_readstat_parser_py_datetime_format __pyx_f_10pyre switch (__pyx_v_file_format) { case __pyx_e_10pyreadstat_16_readstat_parser_FILE_FORMAT_SAS: - /* "pyreadstat/_readstat_parser.pyx":152 + /* "pyreadstat/_readstat_parser.pyx":153 * """ * if file_format == FILE_FORMAT_SAS: * if var_format: # <<<<<<<<<<<<<< @@ -6340,13 +6357,13 @@ static __pyx_t_10pyreadstat_16_readstat_parser_py_datetime_format __pyx_f_10pyre else { Py_ssize_t __pyx_temp = __Pyx_PyUnicode_IS_TRUE(__pyx_v_var_format); - if (unlikely(((!CYTHON_ASSUME_SAFE_SIZE) && __pyx_temp < 0))) __PYX_ERR(0, 152, __pyx_L1_error) + if (unlikely(((!CYTHON_ASSUME_SAFE_SIZE) && __pyx_temp < 0))) __PYX_ERR(0, 153, __pyx_L1_error) __pyx_t_1 = (__pyx_temp != 0); } if (__pyx_t_1) { - /* "pyreadstat/_readstat_parser.pyx":153 + /* "pyreadstat/_readstat_parser.pyx":154 * if file_format == FILE_FORMAT_SAS: * if var_format: * format_match = format_regex.match(var_format) # <<<<<<<<<<<<<< @@ -6360,23 +6377,23 @@ static __pyx_t_10pyreadstat_16_readstat_parser_py_datetime_format __pyx_f_10pyre PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_v_var_format}; __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_match, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 153, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 154, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } __pyx_v_format_match = __pyx_t_2; __pyx_t_2 = 0; - /* "pyreadstat/_readstat_parser.pyx":154 + /* "pyreadstat/_readstat_parser.pyx":155 * if var_format: * format_match = format_regex.match(var_format) * if format_match: # <<<<<<<<<<<<<< * var_format_name = format_match.group(1) * if var_format_name in sas_all_formats: */ - __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_format_match); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 154, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_format_match); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 155, __pyx_L1_error) if (__pyx_t_1) { - /* "pyreadstat/_readstat_parser.pyx":155 + /* "pyreadstat/_readstat_parser.pyx":156 * format_match = format_regex.match(var_format) * if format_match: * var_format_name = format_match.group(1) # <<<<<<<<<<<<<< @@ -6390,33 +6407,33 @@ static __pyx_t_10pyreadstat_16_readstat_parser_py_datetime_format __pyx_f_10pyre PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_mstate_global->__pyx_int_1}; __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_group, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 155, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 156, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } __pyx_v_var_format_name = __pyx_t_2; __pyx_t_2 = 0; - /* "pyreadstat/_readstat_parser.pyx":156 + /* "pyreadstat/_readstat_parser.pyx":157 * if format_match: * var_format_name = format_match.group(1) * if var_format_name in sas_all_formats: # <<<<<<<<<<<<<< * if var_format_name in sas_date_formats: * return DATE_FORMAT_DATE */ - __pyx_t_1 = (__Pyx_PySequence_ContainsTF(__pyx_v_var_format_name, __pyx_v_10pyreadstat_16_readstat_parser_sas_all_formats, Py_EQ)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 156, __pyx_L1_error) + __pyx_t_1 = (__Pyx_PySequence_ContainsTF(__pyx_v_var_format_name, __pyx_v_10pyreadstat_16_readstat_parser_sas_all_formats, Py_EQ)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 157, __pyx_L1_error) if (__pyx_t_1) { - /* "pyreadstat/_readstat_parser.pyx":157 + /* "pyreadstat/_readstat_parser.pyx":158 * var_format_name = format_match.group(1) * if var_format_name in sas_all_formats: * if var_format_name in sas_date_formats: # <<<<<<<<<<<<<< * return DATE_FORMAT_DATE * elif var_format_name in sas_datetime_formats: */ - __pyx_t_1 = (__Pyx_PySequence_ContainsTF(__pyx_v_var_format_name, __pyx_v_10pyreadstat_16_readstat_parser_sas_date_formats, Py_EQ)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 157, __pyx_L1_error) + __pyx_t_1 = (__Pyx_PySequence_ContainsTF(__pyx_v_var_format_name, __pyx_v_10pyreadstat_16_readstat_parser_sas_date_formats, Py_EQ)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 158, __pyx_L1_error) if (__pyx_t_1) { - /* "pyreadstat/_readstat_parser.pyx":158 + /* "pyreadstat/_readstat_parser.pyx":159 * if var_format_name in sas_all_formats: * if var_format_name in sas_date_formats: * return DATE_FORMAT_DATE # <<<<<<<<<<<<<< @@ -6426,7 +6443,7 @@ static __pyx_t_10pyreadstat_16_readstat_parser_py_datetime_format __pyx_f_10pyre __pyx_r = __pyx_e_10pyreadstat_16_readstat_parser_DATE_FORMAT_DATE; goto __pyx_L0; - /* "pyreadstat/_readstat_parser.pyx":157 + /* "pyreadstat/_readstat_parser.pyx":158 * var_format_name = format_match.group(1) * if var_format_name in sas_all_formats: * if var_format_name in sas_date_formats: # <<<<<<<<<<<<<< @@ -6435,17 +6452,17 @@ static __pyx_t_10pyreadstat_16_readstat_parser_py_datetime_format __pyx_f_10pyre */ } - /* "pyreadstat/_readstat_parser.pyx":159 + /* "pyreadstat/_readstat_parser.pyx":160 * if var_format_name in sas_date_formats: * return DATE_FORMAT_DATE * elif var_format_name in sas_datetime_formats: # <<<<<<<<<<<<<< * return DATE_FORMAT_DATETIME * elif var_format_name in sas_time_formats: */ - __pyx_t_1 = (__Pyx_PySequence_ContainsTF(__pyx_v_var_format_name, __pyx_v_10pyreadstat_16_readstat_parser_sas_datetime_formats, Py_EQ)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 159, __pyx_L1_error) + __pyx_t_1 = (__Pyx_PySequence_ContainsTF(__pyx_v_var_format_name, __pyx_v_10pyreadstat_16_readstat_parser_sas_datetime_formats, Py_EQ)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 160, __pyx_L1_error) if (__pyx_t_1) { - /* "pyreadstat/_readstat_parser.pyx":160 + /* "pyreadstat/_readstat_parser.pyx":161 * return DATE_FORMAT_DATE * elif var_format_name in sas_datetime_formats: * return DATE_FORMAT_DATETIME # <<<<<<<<<<<<<< @@ -6455,7 +6472,7 @@ static __pyx_t_10pyreadstat_16_readstat_parser_py_datetime_format __pyx_f_10pyre __pyx_r = __pyx_e_10pyreadstat_16_readstat_parser_DATE_FORMAT_DATETIME; goto __pyx_L0; - /* "pyreadstat/_readstat_parser.pyx":159 + /* "pyreadstat/_readstat_parser.pyx":160 * if var_format_name in sas_date_formats: * return DATE_FORMAT_DATE * elif var_format_name in sas_datetime_formats: # <<<<<<<<<<<<<< @@ -6464,17 +6481,17 @@ static __pyx_t_10pyreadstat_16_readstat_parser_py_datetime_format __pyx_f_10pyre */ } - /* "pyreadstat/_readstat_parser.pyx":161 + /* "pyreadstat/_readstat_parser.pyx":162 * elif var_format_name in sas_datetime_formats: * return DATE_FORMAT_DATETIME * elif var_format_name in sas_time_formats: # <<<<<<<<<<<<<< * return DATE_FORMAT_TIME * return DATE_FORMAT_NOTADATE */ - __pyx_t_1 = (__Pyx_PySequence_ContainsTF(__pyx_v_var_format_name, __pyx_v_10pyreadstat_16_readstat_parser_sas_time_formats, Py_EQ)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 161, __pyx_L1_error) + __pyx_t_1 = (__Pyx_PySequence_ContainsTF(__pyx_v_var_format_name, __pyx_v_10pyreadstat_16_readstat_parser_sas_time_formats, Py_EQ)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 162, __pyx_L1_error) if (__pyx_t_1) { - /* "pyreadstat/_readstat_parser.pyx":162 + /* "pyreadstat/_readstat_parser.pyx":163 * return DATE_FORMAT_DATETIME * elif var_format_name in sas_time_formats: * return DATE_FORMAT_TIME # <<<<<<<<<<<<<< @@ -6484,7 +6501,7 @@ static __pyx_t_10pyreadstat_16_readstat_parser_py_datetime_format __pyx_f_10pyre __pyx_r = __pyx_e_10pyreadstat_16_readstat_parser_DATE_FORMAT_TIME; goto __pyx_L0; - /* "pyreadstat/_readstat_parser.pyx":161 + /* "pyreadstat/_readstat_parser.pyx":162 * elif var_format_name in sas_datetime_formats: * return DATE_FORMAT_DATETIME * elif var_format_name in sas_time_formats: # <<<<<<<<<<<<<< @@ -6493,7 +6510,7 @@ static __pyx_t_10pyreadstat_16_readstat_parser_py_datetime_format __pyx_f_10pyre */ } - /* "pyreadstat/_readstat_parser.pyx":156 + /* "pyreadstat/_readstat_parser.pyx":157 * if format_match: * var_format_name = format_match.group(1) * if var_format_name in sas_all_formats: # <<<<<<<<<<<<<< @@ -6502,7 +6519,7 @@ static __pyx_t_10pyreadstat_16_readstat_parser_py_datetime_format __pyx_f_10pyre */ } - /* "pyreadstat/_readstat_parser.pyx":154 + /* "pyreadstat/_readstat_parser.pyx":155 * if var_format: * format_match = format_regex.match(var_format) * if format_match: # <<<<<<<<<<<<<< @@ -6511,7 +6528,7 @@ static __pyx_t_10pyreadstat_16_readstat_parser_py_datetime_format __pyx_f_10pyre */ } - /* "pyreadstat/_readstat_parser.pyx":152 + /* "pyreadstat/_readstat_parser.pyx":153 * """ * if file_format == FILE_FORMAT_SAS: * if var_format: # <<<<<<<<<<<<<< @@ -6520,7 +6537,7 @@ static __pyx_t_10pyreadstat_16_readstat_parser_py_datetime_format __pyx_f_10pyre */ } - /* "pyreadstat/_readstat_parser.pyx":163 + /* "pyreadstat/_readstat_parser.pyx":164 * elif var_format_name in sas_time_formats: * return DATE_FORMAT_TIME * return DATE_FORMAT_NOTADATE # <<<<<<<<<<<<<< @@ -6530,7 +6547,7 @@ static __pyx_t_10pyreadstat_16_readstat_parser_py_datetime_format __pyx_f_10pyre __pyx_r = __pyx_e_10pyreadstat_16_readstat_parser_DATE_FORMAT_NOTADATE; goto __pyx_L0; - /* "pyreadstat/_readstat_parser.pyx":151 + /* "pyreadstat/_readstat_parser.pyx":152 * Transforms a readstat var_format to a date, datetime or time format label * """ * if file_format == FILE_FORMAT_SAS: # <<<<<<<<<<<<<< @@ -6540,7 +6557,7 @@ static __pyx_t_10pyreadstat_16_readstat_parser_py_datetime_format __pyx_f_10pyre break; case __pyx_e_10pyreadstat_16_readstat_parser_FILE_FORMAT_SPSS: - /* "pyreadstat/_readstat_parser.pyx":166 + /* "pyreadstat/_readstat_parser.pyx":167 * * elif file_format == FILE_FORMAT_SPSS: * if var_format: # <<<<<<<<<<<<<< @@ -6551,13 +6568,13 @@ static __pyx_t_10pyreadstat_16_readstat_parser_py_datetime_format __pyx_f_10pyre else { Py_ssize_t __pyx_temp = __Pyx_PyUnicode_IS_TRUE(__pyx_v_var_format); - if (unlikely(((!CYTHON_ASSUME_SAFE_SIZE) && __pyx_temp < 0))) __PYX_ERR(0, 166, __pyx_L1_error) + if (unlikely(((!CYTHON_ASSUME_SAFE_SIZE) && __pyx_temp < 0))) __PYX_ERR(0, 167, __pyx_L1_error) __pyx_t_1 = (__pyx_temp != 0); } if (__pyx_t_1) { - /* "pyreadstat/_readstat_parser.pyx":167 + /* "pyreadstat/_readstat_parser.pyx":168 * elif file_format == FILE_FORMAT_SPSS: * if var_format: * format_match = format_regex.match(var_format) # <<<<<<<<<<<<<< @@ -6571,23 +6588,23 @@ static __pyx_t_10pyreadstat_16_readstat_parser_py_datetime_format __pyx_f_10pyre PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_v_var_format}; __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_match, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 167, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 168, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } __pyx_v_format_match = __pyx_t_2; __pyx_t_2 = 0; - /* "pyreadstat/_readstat_parser.pyx":168 + /* "pyreadstat/_readstat_parser.pyx":169 * if var_format: * format_match = format_regex.match(var_format) * if format_match: # <<<<<<<<<<<<<< * var_format_name = format_match.group(1) * if var_format_name in spss_all_formats: */ - __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_format_match); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 168, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_format_match); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 169, __pyx_L1_error) if (__pyx_t_1) { - /* "pyreadstat/_readstat_parser.pyx":169 + /* "pyreadstat/_readstat_parser.pyx":170 * format_match = format_regex.match(var_format) * if format_match: * var_format_name = format_match.group(1) # <<<<<<<<<<<<<< @@ -6601,33 +6618,33 @@ static __pyx_t_10pyreadstat_16_readstat_parser_py_datetime_format __pyx_f_10pyre PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_mstate_global->__pyx_int_1}; __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_group, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 169, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 170, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } __pyx_v_var_format_name = __pyx_t_2; __pyx_t_2 = 0; - /* "pyreadstat/_readstat_parser.pyx":170 + /* "pyreadstat/_readstat_parser.pyx":171 * if format_match: * var_format_name = format_match.group(1) * if var_format_name in spss_all_formats: # <<<<<<<<<<<<<< * if var_format_name in spss_date_formats: * return DATE_FORMAT_DATE */ - __pyx_t_1 = (__Pyx_PySequence_ContainsTF(__pyx_v_var_format_name, __pyx_v_10pyreadstat_16_readstat_parser_spss_all_formats, Py_EQ)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 170, __pyx_L1_error) + __pyx_t_1 = (__Pyx_PySequence_ContainsTF(__pyx_v_var_format_name, __pyx_v_10pyreadstat_16_readstat_parser_spss_all_formats, Py_EQ)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 171, __pyx_L1_error) if (__pyx_t_1) { - /* "pyreadstat/_readstat_parser.pyx":171 + /* "pyreadstat/_readstat_parser.pyx":172 * var_format_name = format_match.group(1) * if var_format_name in spss_all_formats: * if var_format_name in spss_date_formats: # <<<<<<<<<<<<<< * return DATE_FORMAT_DATE * elif var_format_name in spss_datetime_formats: */ - __pyx_t_1 = (__Pyx_PySequence_ContainsTF(__pyx_v_var_format_name, __pyx_v_10pyreadstat_16_readstat_parser_spss_date_formats, Py_EQ)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 171, __pyx_L1_error) + __pyx_t_1 = (__Pyx_PySequence_ContainsTF(__pyx_v_var_format_name, __pyx_v_10pyreadstat_16_readstat_parser_spss_date_formats, Py_EQ)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 172, __pyx_L1_error) if (__pyx_t_1) { - /* "pyreadstat/_readstat_parser.pyx":172 + /* "pyreadstat/_readstat_parser.pyx":173 * if var_format_name in spss_all_formats: * if var_format_name in spss_date_formats: * return DATE_FORMAT_DATE # <<<<<<<<<<<<<< @@ -6637,7 +6654,7 @@ static __pyx_t_10pyreadstat_16_readstat_parser_py_datetime_format __pyx_f_10pyre __pyx_r = __pyx_e_10pyreadstat_16_readstat_parser_DATE_FORMAT_DATE; goto __pyx_L0; - /* "pyreadstat/_readstat_parser.pyx":171 + /* "pyreadstat/_readstat_parser.pyx":172 * var_format_name = format_match.group(1) * if var_format_name in spss_all_formats: * if var_format_name in spss_date_formats: # <<<<<<<<<<<<<< @@ -6646,17 +6663,17 @@ static __pyx_t_10pyreadstat_16_readstat_parser_py_datetime_format __pyx_f_10pyre */ } - /* "pyreadstat/_readstat_parser.pyx":173 + /* "pyreadstat/_readstat_parser.pyx":174 * if var_format_name in spss_date_formats: * return DATE_FORMAT_DATE * elif var_format_name in spss_datetime_formats: # <<<<<<<<<<<<<< * return DATE_FORMAT_DATETIME * elif var_format_name in spss_time_formats: */ - __pyx_t_1 = (__Pyx_PySequence_ContainsTF(__pyx_v_var_format_name, __pyx_v_10pyreadstat_16_readstat_parser_spss_datetime_formats, Py_EQ)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 173, __pyx_L1_error) + __pyx_t_1 = (__Pyx_PySequence_ContainsTF(__pyx_v_var_format_name, __pyx_v_10pyreadstat_16_readstat_parser_spss_datetime_formats, Py_EQ)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 174, __pyx_L1_error) if (__pyx_t_1) { - /* "pyreadstat/_readstat_parser.pyx":174 + /* "pyreadstat/_readstat_parser.pyx":175 * return DATE_FORMAT_DATE * elif var_format_name in spss_datetime_formats: * return DATE_FORMAT_DATETIME # <<<<<<<<<<<<<< @@ -6666,7 +6683,7 @@ static __pyx_t_10pyreadstat_16_readstat_parser_py_datetime_format __pyx_f_10pyre __pyx_r = __pyx_e_10pyreadstat_16_readstat_parser_DATE_FORMAT_DATETIME; goto __pyx_L0; - /* "pyreadstat/_readstat_parser.pyx":173 + /* "pyreadstat/_readstat_parser.pyx":174 * if var_format_name in spss_date_formats: * return DATE_FORMAT_DATE * elif var_format_name in spss_datetime_formats: # <<<<<<<<<<<<<< @@ -6675,17 +6692,17 @@ static __pyx_t_10pyreadstat_16_readstat_parser_py_datetime_format __pyx_f_10pyre */ } - /* "pyreadstat/_readstat_parser.pyx":175 + /* "pyreadstat/_readstat_parser.pyx":176 * elif var_format_name in spss_datetime_formats: * return DATE_FORMAT_DATETIME * elif var_format_name in spss_time_formats: # <<<<<<<<<<<<<< * return DATE_FORMAT_TIME * return DATE_FORMAT_NOTADATE */ - __pyx_t_1 = (__Pyx_PySequence_ContainsTF(__pyx_v_var_format_name, __pyx_v_10pyreadstat_16_readstat_parser_spss_time_formats, Py_EQ)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 175, __pyx_L1_error) + __pyx_t_1 = (__Pyx_PySequence_ContainsTF(__pyx_v_var_format_name, __pyx_v_10pyreadstat_16_readstat_parser_spss_time_formats, Py_EQ)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 176, __pyx_L1_error) if (__pyx_t_1) { - /* "pyreadstat/_readstat_parser.pyx":176 + /* "pyreadstat/_readstat_parser.pyx":177 * return DATE_FORMAT_DATETIME * elif var_format_name in spss_time_formats: * return DATE_FORMAT_TIME # <<<<<<<<<<<<<< @@ -6695,7 +6712,7 @@ static __pyx_t_10pyreadstat_16_readstat_parser_py_datetime_format __pyx_f_10pyre __pyx_r = __pyx_e_10pyreadstat_16_readstat_parser_DATE_FORMAT_TIME; goto __pyx_L0; - /* "pyreadstat/_readstat_parser.pyx":175 + /* "pyreadstat/_readstat_parser.pyx":176 * elif var_format_name in spss_datetime_formats: * return DATE_FORMAT_DATETIME * elif var_format_name in spss_time_formats: # <<<<<<<<<<<<<< @@ -6704,7 +6721,7 @@ static __pyx_t_10pyreadstat_16_readstat_parser_py_datetime_format __pyx_f_10pyre */ } - /* "pyreadstat/_readstat_parser.pyx":170 + /* "pyreadstat/_readstat_parser.pyx":171 * if format_match: * var_format_name = format_match.group(1) * if var_format_name in spss_all_formats: # <<<<<<<<<<<<<< @@ -6713,7 +6730,7 @@ static __pyx_t_10pyreadstat_16_readstat_parser_py_datetime_format __pyx_f_10pyre */ } - /* "pyreadstat/_readstat_parser.pyx":168 + /* "pyreadstat/_readstat_parser.pyx":169 * if var_format: * format_match = format_regex.match(var_format) * if format_match: # <<<<<<<<<<<<<< @@ -6722,7 +6739,7 @@ static __pyx_t_10pyreadstat_16_readstat_parser_py_datetime_format __pyx_f_10pyre */ } - /* "pyreadstat/_readstat_parser.pyx":166 + /* "pyreadstat/_readstat_parser.pyx":167 * * elif file_format == FILE_FORMAT_SPSS: * if var_format: # <<<<<<<<<<<<<< @@ -6731,7 +6748,7 @@ static __pyx_t_10pyreadstat_16_readstat_parser_py_datetime_format __pyx_f_10pyre */ } - /* "pyreadstat/_readstat_parser.pyx":177 + /* "pyreadstat/_readstat_parser.pyx":178 * elif var_format_name in spss_time_formats: * return DATE_FORMAT_TIME * return DATE_FORMAT_NOTADATE # <<<<<<<<<<<<<< @@ -6741,7 +6758,7 @@ static __pyx_t_10pyreadstat_16_readstat_parser_py_datetime_format __pyx_f_10pyre __pyx_r = __pyx_e_10pyreadstat_16_readstat_parser_DATE_FORMAT_NOTADATE; goto __pyx_L0; - /* "pyreadstat/_readstat_parser.pyx":165 + /* "pyreadstat/_readstat_parser.pyx":166 * return DATE_FORMAT_NOTADATE * * elif file_format == FILE_FORMAT_SPSS: # <<<<<<<<<<<<<< @@ -6751,27 +6768,27 @@ static __pyx_t_10pyreadstat_16_readstat_parser_py_datetime_format __pyx_f_10pyre break; case __pyx_e_10pyreadstat_16_readstat_parser_FILE_FORMAT_STATA: - /* "pyreadstat/_readstat_parser.pyx":180 + /* "pyreadstat/_readstat_parser.pyx":181 * * elif file_format == FILE_FORMAT_STATA: * if var_format in stata_all_formats: # <<<<<<<<<<<<<< * if var_format in stata_date_formats: * return DATE_FORMAT_DATE */ - __pyx_t_1 = (__Pyx_PySequence_ContainsTF(__pyx_v_var_format, __pyx_v_10pyreadstat_16_readstat_parser_stata_all_formats, Py_EQ)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 180, __pyx_L1_error) + __pyx_t_1 = (__Pyx_PySequence_ContainsTF(__pyx_v_var_format, __pyx_v_10pyreadstat_16_readstat_parser_stata_all_formats, Py_EQ)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 181, __pyx_L1_error) if (__pyx_t_1) { - /* "pyreadstat/_readstat_parser.pyx":181 + /* "pyreadstat/_readstat_parser.pyx":182 * elif file_format == FILE_FORMAT_STATA: * if var_format in stata_all_formats: * if var_format in stata_date_formats: # <<<<<<<<<<<<<< * return DATE_FORMAT_DATE * elif var_format in stata_datetime_formats: */ - __pyx_t_1 = (__Pyx_PySequence_ContainsTF(__pyx_v_var_format, __pyx_v_10pyreadstat_16_readstat_parser_stata_date_formats, Py_EQ)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 181, __pyx_L1_error) + __pyx_t_1 = (__Pyx_PySequence_ContainsTF(__pyx_v_var_format, __pyx_v_10pyreadstat_16_readstat_parser_stata_date_formats, Py_EQ)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 182, __pyx_L1_error) if (__pyx_t_1) { - /* "pyreadstat/_readstat_parser.pyx":182 + /* "pyreadstat/_readstat_parser.pyx":183 * if var_format in stata_all_formats: * if var_format in stata_date_formats: * return DATE_FORMAT_DATE # <<<<<<<<<<<<<< @@ -6781,7 +6798,7 @@ static __pyx_t_10pyreadstat_16_readstat_parser_py_datetime_format __pyx_f_10pyre __pyx_r = __pyx_e_10pyreadstat_16_readstat_parser_DATE_FORMAT_DATE; goto __pyx_L0; - /* "pyreadstat/_readstat_parser.pyx":181 + /* "pyreadstat/_readstat_parser.pyx":182 * elif file_format == FILE_FORMAT_STATA: * if var_format in stata_all_formats: * if var_format in stata_date_formats: # <<<<<<<<<<<<<< @@ -6790,17 +6807,17 @@ static __pyx_t_10pyreadstat_16_readstat_parser_py_datetime_format __pyx_f_10pyre */ } - /* "pyreadstat/_readstat_parser.pyx":183 + /* "pyreadstat/_readstat_parser.pyx":184 * if var_format in stata_date_formats: * return DATE_FORMAT_DATE * elif var_format in stata_datetime_formats: # <<<<<<<<<<<<<< * return DATE_FORMAT_DATETIME * elif var_format in stata_time_formats: */ - __pyx_t_1 = (__Pyx_PySequence_ContainsTF(__pyx_v_var_format, __pyx_v_10pyreadstat_16_readstat_parser_stata_datetime_formats, Py_EQ)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 183, __pyx_L1_error) + __pyx_t_1 = (__Pyx_PySequence_ContainsTF(__pyx_v_var_format, __pyx_v_10pyreadstat_16_readstat_parser_stata_datetime_formats, Py_EQ)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 184, __pyx_L1_error) if (__pyx_t_1) { - /* "pyreadstat/_readstat_parser.pyx":184 + /* "pyreadstat/_readstat_parser.pyx":185 * return DATE_FORMAT_DATE * elif var_format in stata_datetime_formats: * return DATE_FORMAT_DATETIME # <<<<<<<<<<<<<< @@ -6810,7 +6827,7 @@ static __pyx_t_10pyreadstat_16_readstat_parser_py_datetime_format __pyx_f_10pyre __pyx_r = __pyx_e_10pyreadstat_16_readstat_parser_DATE_FORMAT_DATETIME; goto __pyx_L0; - /* "pyreadstat/_readstat_parser.pyx":183 + /* "pyreadstat/_readstat_parser.pyx":184 * if var_format in stata_date_formats: * return DATE_FORMAT_DATE * elif var_format in stata_datetime_formats: # <<<<<<<<<<<<<< @@ -6819,17 +6836,17 @@ static __pyx_t_10pyreadstat_16_readstat_parser_py_datetime_format __pyx_f_10pyre */ } - /* "pyreadstat/_readstat_parser.pyx":185 + /* "pyreadstat/_readstat_parser.pyx":186 * elif var_format in stata_datetime_formats: * return DATE_FORMAT_DATETIME * elif var_format in stata_time_formats: # <<<<<<<<<<<<<< * return DATE_FORMAT_TIME * else: */ - __pyx_t_1 = (__Pyx_PySequence_ContainsTF(__pyx_v_var_format, __pyx_v_10pyreadstat_16_readstat_parser_stata_time_formats, Py_EQ)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 185, __pyx_L1_error) + __pyx_t_1 = (__Pyx_PySequence_ContainsTF(__pyx_v_var_format, __pyx_v_10pyreadstat_16_readstat_parser_stata_time_formats, Py_EQ)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 186, __pyx_L1_error) if (__pyx_t_1) { - /* "pyreadstat/_readstat_parser.pyx":186 + /* "pyreadstat/_readstat_parser.pyx":187 * return DATE_FORMAT_DATETIME * elif var_format in stata_time_formats: * return DATE_FORMAT_TIME # <<<<<<<<<<<<<< @@ -6839,7 +6856,7 @@ static __pyx_t_10pyreadstat_16_readstat_parser_py_datetime_format __pyx_f_10pyre __pyx_r = __pyx_e_10pyreadstat_16_readstat_parser_DATE_FORMAT_TIME; goto __pyx_L0; - /* "pyreadstat/_readstat_parser.pyx":185 + /* "pyreadstat/_readstat_parser.pyx":186 * elif var_format in stata_datetime_formats: * return DATE_FORMAT_DATETIME * elif var_format in stata_time_formats: # <<<<<<<<<<<<<< @@ -6848,7 +6865,7 @@ static __pyx_t_10pyreadstat_16_readstat_parser_py_datetime_format __pyx_f_10pyre */ } - /* "pyreadstat/_readstat_parser.pyx":180 + /* "pyreadstat/_readstat_parser.pyx":181 * * elif file_format == FILE_FORMAT_STATA: * if var_format in stata_all_formats: # <<<<<<<<<<<<<< @@ -6858,7 +6875,7 @@ static __pyx_t_10pyreadstat_16_readstat_parser_py_datetime_format __pyx_f_10pyre goto __pyx_L11; } - /* "pyreadstat/_readstat_parser.pyx":188 + /* "pyreadstat/_readstat_parser.pyx":189 * return DATE_FORMAT_TIME * else: * return DATE_FORMAT_NOTADATE # <<<<<<<<<<<<<< @@ -6871,7 +6888,7 @@ static __pyx_t_10pyreadstat_16_readstat_parser_py_datetime_format __pyx_f_10pyre } __pyx_L11:; - /* "pyreadstat/_readstat_parser.pyx":179 + /* "pyreadstat/_readstat_parser.pyx":180 * return DATE_FORMAT_NOTADATE * * elif file_format == FILE_FORMAT_STATA: # <<<<<<<<<<<<<< @@ -6882,7 +6899,7 @@ static __pyx_t_10pyreadstat_16_readstat_parser_py_datetime_format __pyx_f_10pyre default: break; } - /* "pyreadstat/_readstat_parser.pyx":147 + /* "pyreadstat/_readstat_parser.pyx":148 * * * cdef py_datetime_format transform_variable_format(str var_format, py_file_format file_format): # <<<<<<<<<<<<<< @@ -6905,7 +6922,7 @@ static __pyx_t_10pyreadstat_16_readstat_parser_py_datetime_format __pyx_f_10pyre return __pyx_r; } -/* "pyreadstat/_readstat_parser.pyx":190 +/* "pyreadstat/_readstat_parser.pyx":191 * return DATE_FORMAT_NOTADATE * * cdef object transform_datetime(py_datetime_format var_format, double tstamp, py_file_format file_format, object origin, # <<<<<<<<<<<<<< @@ -6933,7 +6950,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_transform_datetime(__py int __pyx_clineno = 0; __Pyx_RefNannySetupContext("transform_datetime", 0); - /* "pyreadstat/_readstat_parser.pyx":208 + /* "pyreadstat/_readstat_parser.pyx":209 * # for any other we return a python datetime, date or time object. * # polars also works with these objects, but it is slower * if var_format == DATE_FORMAT_DATE: # <<<<<<<<<<<<<< @@ -6943,17 +6960,17 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_transform_datetime(__py switch (__pyx_v_var_format) { case __pyx_e_10pyreadstat_16_readstat_parser_DATE_FORMAT_DATE: - /* "pyreadstat/_readstat_parser.pyx":209 + /* "pyreadstat/_readstat_parser.pyx":210 * # polars also works with these objects, but it is slower * if var_format == DATE_FORMAT_DATE: * if output_format == "polars": # <<<<<<<<<<<<<< * # we want to return days from unix * if file_format == FILE_FORMAT_SPSS: */ - __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_output_format, __pyx_mstate_global->__pyx_n_u_polars, Py_EQ)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 209, __pyx_L1_error) + __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_output_format, __pyx_mstate_global->__pyx_n_u_polars, Py_EQ)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 210, __pyx_L1_error) if (__pyx_t_1) { - /* "pyreadstat/_readstat_parser.pyx":211 + /* "pyreadstat/_readstat_parser.pyx":212 * if output_format == "polars": * # we want to return days from unix * if file_format == FILE_FORMAT_SPSS: # <<<<<<<<<<<<<< @@ -6963,7 +6980,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_transform_datetime(__py __pyx_t_1 = (__pyx_v_file_format == __pyx_e_10pyreadstat_16_readstat_parser_FILE_FORMAT_SPSS); if (__pyx_t_1) { - /* "pyreadstat/_readstat_parser.pyx":213 + /* "pyreadstat/_readstat_parser.pyx":214 * if file_format == FILE_FORMAT_SPSS: * # tstamp is in seconds * return (tstamp - unix_to_origin_secs)/86400 # <<<<<<<<<<<<<< @@ -6971,13 +6988,13 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_transform_datetime(__py * # tstamp is in days */ __Pyx_XDECREF(__pyx_r); - __pyx_t_2 = PyFloat_FromDouble(((__pyx_v_tstamp - __pyx_v_unix_to_origin_secs) / 86400.0)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 213, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(((__pyx_v_tstamp - __pyx_v_unix_to_origin_secs) / 86400.0)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 214, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_r = __pyx_t_2; __pyx_t_2 = 0; goto __pyx_L0; - /* "pyreadstat/_readstat_parser.pyx":211 + /* "pyreadstat/_readstat_parser.pyx":212 * if output_format == "polars": * # we want to return days from unix * if file_format == FILE_FORMAT_SPSS: # <<<<<<<<<<<<<< @@ -6986,7 +7003,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_transform_datetime(__py */ } - /* "pyreadstat/_readstat_parser.pyx":216 + /* "pyreadstat/_readstat_parser.pyx":217 * else: * # tstamp is in days * return tstamp - (unix_to_origin_secs/86400) # <<<<<<<<<<<<<< @@ -6995,14 +7012,14 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_transform_datetime(__py */ /*else*/ { __Pyx_XDECREF(__pyx_r); - __pyx_t_2 = PyFloat_FromDouble((__pyx_v_tstamp - (__pyx_v_unix_to_origin_secs / 86400.0))); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 216, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble((__pyx_v_tstamp - (__pyx_v_unix_to_origin_secs / 86400.0))); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 217, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_r = __pyx_t_2; __pyx_t_2 = 0; goto __pyx_L0; } - /* "pyreadstat/_readstat_parser.pyx":209 + /* "pyreadstat/_readstat_parser.pyx":210 * # polars also works with these objects, but it is slower * if var_format == DATE_FORMAT_DATE: * if output_format == "polars": # <<<<<<<<<<<<<< @@ -7011,7 +7028,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_transform_datetime(__py */ } - /* "pyreadstat/_readstat_parser.pyx":218 + /* "pyreadstat/_readstat_parser.pyx":219 * return tstamp - (unix_to_origin_secs/86400) * * if file_format == FILE_FORMAT_SPSS: # <<<<<<<<<<<<<< @@ -7021,7 +7038,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_transform_datetime(__py __pyx_t_1 = (__pyx_v_file_format == __pyx_e_10pyreadstat_16_readstat_parser_FILE_FORMAT_SPSS); if (__pyx_t_1) { - /* "pyreadstat/_readstat_parser.pyx":220 + /* "pyreadstat/_readstat_parser.pyx":221 * if file_format == FILE_FORMAT_SPSS: * # tstamp is in seconds * days = (floor(tstamp / 86400)) # <<<<<<<<<<<<<< @@ -7030,7 +7047,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_transform_datetime(__py */ __pyx_v_days = ((int)floor((__pyx_v_tstamp / 86400.0))); - /* "pyreadstat/_readstat_parser.pyx":221 + /* "pyreadstat/_readstat_parser.pyx":222 * # tstamp is in seconds * days = (floor(tstamp / 86400)) * secs = (tstamp % 86400) # <<<<<<<<<<<<<< @@ -7039,19 +7056,19 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_transform_datetime(__py */ __pyx_v_secs = ((int)__Pyx_mod_double(__pyx_v_tstamp, 86400.0, 1)); - /* "pyreadstat/_readstat_parser.pyx":222 + /* "pyreadstat/_readstat_parser.pyx":223 * days = (floor(tstamp / 86400)) * secs = (tstamp % 86400) * tdelta = timedelta_new(days, secs, 0) # <<<<<<<<<<<<<< * #tdelta = timedelta(seconds=tstamp) * else: */ - __pyx_t_2 = ((PyObject *)__pyx_f_7cpython_8datetime_timedelta_new(__pyx_v_days, __pyx_v_secs, 0)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 222, __pyx_L1_error) + __pyx_t_2 = ((PyObject *)__pyx_f_7cpython_8datetime_timedelta_new(__pyx_v_days, __pyx_v_secs, 0)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 223, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_v_tdelta = __pyx_t_2; __pyx_t_2 = 0; - /* "pyreadstat/_readstat_parser.pyx":218 + /* "pyreadstat/_readstat_parser.pyx":219 * return tstamp - (unix_to_origin_secs/86400) * * if file_format == FILE_FORMAT_SPSS: # <<<<<<<<<<<<<< @@ -7061,7 +7078,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_transform_datetime(__py goto __pyx_L5; } - /* "pyreadstat/_readstat_parser.pyx":226 + /* "pyreadstat/_readstat_parser.pyx":227 * else: * # tstamp is in days * days = tstamp # <<<<<<<<<<<<<< @@ -7071,33 +7088,33 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_transform_datetime(__py /*else*/ { __pyx_v_days = ((int)__pyx_v_tstamp); - /* "pyreadstat/_readstat_parser.pyx":227 + /* "pyreadstat/_readstat_parser.pyx":228 * # tstamp is in days * days = tstamp * tdelta = timedelta_new(days, 0, 0) # <<<<<<<<<<<<<< * #tdelta = timedelta(days=tstamp) * mydat = origin + tdelta */ - __pyx_t_2 = ((PyObject *)__pyx_f_7cpython_8datetime_timedelta_new(__pyx_v_days, 0, 0)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 227, __pyx_L1_error) + __pyx_t_2 = ((PyObject *)__pyx_f_7cpython_8datetime_timedelta_new(__pyx_v_days, 0, 0)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 228, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_v_tdelta = __pyx_t_2; __pyx_t_2 = 0; } __pyx_L5:; - /* "pyreadstat/_readstat_parser.pyx":229 + /* "pyreadstat/_readstat_parser.pyx":230 * tdelta = timedelta_new(days, 0, 0) * #tdelta = timedelta(days=tstamp) * mydat = origin + tdelta # <<<<<<<<<<<<<< * if dates_as_pandas: * return mydat */ - __pyx_t_2 = PyNumber_Add(__pyx_v_origin, __pyx_v_tdelta); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 229, __pyx_L1_error) + __pyx_t_2 = PyNumber_Add(__pyx_v_origin, __pyx_v_tdelta); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 230, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_v_mydat = __pyx_t_2; __pyx_t_2 = 0; - /* "pyreadstat/_readstat_parser.pyx":230 + /* "pyreadstat/_readstat_parser.pyx":231 * #tdelta = timedelta(days=tstamp) * mydat = origin + tdelta * if dates_as_pandas: # <<<<<<<<<<<<<< @@ -7106,7 +7123,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_transform_datetime(__py */ if (__pyx_v_dates_as_pandas) { - /* "pyreadstat/_readstat_parser.pyx":231 + /* "pyreadstat/_readstat_parser.pyx":232 * mydat = origin + tdelta * if dates_as_pandas: * return mydat # <<<<<<<<<<<<<< @@ -7118,7 +7135,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_transform_datetime(__py __pyx_r = __pyx_v_mydat; goto __pyx_L0; - /* "pyreadstat/_readstat_parser.pyx":230 + /* "pyreadstat/_readstat_parser.pyx":231 * #tdelta = timedelta(days=tstamp) * mydat = origin + tdelta * if dates_as_pandas: # <<<<<<<<<<<<<< @@ -7127,7 +7144,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_transform_datetime(__py */ } - /* "pyreadstat/_readstat_parser.pyx":233 + /* "pyreadstat/_readstat_parser.pyx":234 * return mydat * else: * return mydat.date() # <<<<<<<<<<<<<< @@ -7143,7 +7160,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_transform_datetime(__py PyObject *__pyx_callargs[2] = {__pyx_t_3, NULL}; __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_date, __pyx_callargs+__pyx_t_4, (1-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 233, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 234, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } __pyx_r = __pyx_t_2; @@ -7151,7 +7168,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_transform_datetime(__py goto __pyx_L0; } - /* "pyreadstat/_readstat_parser.pyx":208 + /* "pyreadstat/_readstat_parser.pyx":209 * # for any other we return a python datetime, date or time object. * # polars also works with these objects, but it is slower * if var_format == DATE_FORMAT_DATE: # <<<<<<<<<<<<<< @@ -7161,17 +7178,17 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_transform_datetime(__py break; case __pyx_e_10pyreadstat_16_readstat_parser_DATE_FORMAT_DATETIME: - /* "pyreadstat/_readstat_parser.pyx":235 + /* "pyreadstat/_readstat_parser.pyx":236 * return mydat.date() * elif var_format == DATE_FORMAT_DATETIME: * if output_format == "polars": # <<<<<<<<<<<<<< * # we want to return timestamp in seconds * if file_format == FILE_FORMAT_STATA: */ - __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_output_format, __pyx_mstate_global->__pyx_n_u_polars, Py_EQ)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 235, __pyx_L1_error) + __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_output_format, __pyx_mstate_global->__pyx_n_u_polars, Py_EQ)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 236, __pyx_L1_error) if (__pyx_t_1) { - /* "pyreadstat/_readstat_parser.pyx":237 + /* "pyreadstat/_readstat_parser.pyx":238 * if output_format == "polars": * # we want to return timestamp in seconds * if file_format == FILE_FORMAT_STATA: # <<<<<<<<<<<<<< @@ -7181,7 +7198,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_transform_datetime(__py __pyx_t_1 = (__pyx_v_file_format == __pyx_e_10pyreadstat_16_readstat_parser_FILE_FORMAT_STATA); if (__pyx_t_1) { - /* "pyreadstat/_readstat_parser.pyx":239 + /* "pyreadstat/_readstat_parser.pyx":240 * if file_format == FILE_FORMAT_STATA: * # tstamp is in millisecons * return (tstamp/1000) # <<<<<<<<<<<<<< @@ -7189,13 +7206,13 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_transform_datetime(__py * # tstamp in seconds */ __Pyx_XDECREF(__pyx_r); - __pyx_t_2 = PyFloat_FromDouble((__pyx_v_tstamp / 1000.0)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 239, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble((__pyx_v_tstamp / 1000.0)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 240, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_r = __pyx_t_2; __pyx_t_2 = 0; goto __pyx_L0; - /* "pyreadstat/_readstat_parser.pyx":237 + /* "pyreadstat/_readstat_parser.pyx":238 * if output_format == "polars": * # we want to return timestamp in seconds * if file_format == FILE_FORMAT_STATA: # <<<<<<<<<<<<<< @@ -7204,7 +7221,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_transform_datetime(__py */ } - /* "pyreadstat/_readstat_parser.pyx":242 + /* "pyreadstat/_readstat_parser.pyx":243 * else: * # tstamp in seconds * return tstamp # <<<<<<<<<<<<<< @@ -7213,14 +7230,14 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_transform_datetime(__py */ /*else*/ { __Pyx_XDECREF(__pyx_r); - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_tstamp); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 242, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_tstamp); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 243, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_r = __pyx_t_2; __pyx_t_2 = 0; goto __pyx_L0; } - /* "pyreadstat/_readstat_parser.pyx":235 + /* "pyreadstat/_readstat_parser.pyx":236 * return mydat.date() * elif var_format == DATE_FORMAT_DATETIME: * if output_format == "polars": # <<<<<<<<<<<<<< @@ -7229,7 +7246,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_transform_datetime(__py */ } - /* "pyreadstat/_readstat_parser.pyx":244 + /* "pyreadstat/_readstat_parser.pyx":245 * return tstamp * * if file_format == FILE_FORMAT_STATA: # <<<<<<<<<<<<<< @@ -7239,7 +7256,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_transform_datetime(__py __pyx_t_1 = (__pyx_v_file_format == __pyx_e_10pyreadstat_16_readstat_parser_FILE_FORMAT_STATA); if (__pyx_t_1) { - /* "pyreadstat/_readstat_parser.pyx":246 + /* "pyreadstat/_readstat_parser.pyx":247 * if file_format == FILE_FORMAT_STATA: * # tstamp is in millisecons * days = (floor(tstamp / 86400000)) # <<<<<<<<<<<<<< @@ -7248,7 +7265,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_transform_datetime(__py */ __pyx_v_days = ((int)floor((__pyx_v_tstamp / 86400000.0))); - /* "pyreadstat/_readstat_parser.pyx":247 + /* "pyreadstat/_readstat_parser.pyx":248 * # tstamp is in millisecons * days = (floor(tstamp / 86400000)) * msecs = tstamp % 86400000 # <<<<<<<<<<<<<< @@ -7257,7 +7274,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_transform_datetime(__py */ __pyx_v_msecs = __Pyx_mod_double(__pyx_v_tstamp, 86400000.0, 1); - /* "pyreadstat/_readstat_parser.pyx":248 + /* "pyreadstat/_readstat_parser.pyx":249 * days = (floor(tstamp / 86400000)) * msecs = tstamp % 86400000 * secs = (msecs/1000) # <<<<<<<<<<<<<< @@ -7266,7 +7283,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_transform_datetime(__py */ __pyx_v_secs = ((int)(__pyx_v_msecs / 1000.0)); - /* "pyreadstat/_readstat_parser.pyx":249 + /* "pyreadstat/_readstat_parser.pyx":250 * msecs = tstamp % 86400000 * secs = (msecs/1000) * usecs = ((msecs % 1000) * 1000 ) # <<<<<<<<<<<<<< @@ -7275,19 +7292,19 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_transform_datetime(__py */ __pyx_v_usecs = ((int)(__Pyx_mod_double(__pyx_v_msecs, 1000.0, 1) * 1000.0)); - /* "pyreadstat/_readstat_parser.pyx":250 + /* "pyreadstat/_readstat_parser.pyx":251 * secs = (msecs/1000) * usecs = ((msecs % 1000) * 1000 ) * tdelta = timedelta_new(days, secs, usecs) # <<<<<<<<<<<<<< * #tdelta = timedelta(milliseconds=tstamp) * else: */ - __pyx_t_2 = ((PyObject *)__pyx_f_7cpython_8datetime_timedelta_new(__pyx_v_days, __pyx_v_secs, __pyx_v_usecs)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 250, __pyx_L1_error) + __pyx_t_2 = ((PyObject *)__pyx_f_7cpython_8datetime_timedelta_new(__pyx_v_days, __pyx_v_secs, __pyx_v_usecs)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 251, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_v_tdelta = __pyx_t_2; __pyx_t_2 = 0; - /* "pyreadstat/_readstat_parser.pyx":244 + /* "pyreadstat/_readstat_parser.pyx":245 * return tstamp * * if file_format == FILE_FORMAT_STATA: # <<<<<<<<<<<<<< @@ -7297,7 +7314,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_transform_datetime(__py goto __pyx_L9; } - /* "pyreadstat/_readstat_parser.pyx":254 + /* "pyreadstat/_readstat_parser.pyx":255 * else: * # tstamp in seconds * days = (floor(tstamp / 86400)) # <<<<<<<<<<<<<< @@ -7307,7 +7324,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_transform_datetime(__py /*else*/ { __pyx_v_days = ((int)floor((__pyx_v_tstamp / 86400.0))); - /* "pyreadstat/_readstat_parser.pyx":255 + /* "pyreadstat/_readstat_parser.pyx":256 * # tstamp in seconds * days = (floor(tstamp / 86400)) * secs = (tstamp % 86400) # <<<<<<<<<<<<<< @@ -7316,7 +7333,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_transform_datetime(__py */ __pyx_v_secs = ((int)__Pyx_mod_double(__pyx_v_tstamp, 86400.0, 1)); - /* "pyreadstat/_readstat_parser.pyx":256 + /* "pyreadstat/_readstat_parser.pyx":257 * days = (floor(tstamp / 86400)) * secs = (tstamp % 86400) * usecs = (round(tstamp % 1 * 1e6)) # <<<<<<<<<<<<<< @@ -7324,7 +7341,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_transform_datetime(__py * #tdelta = timedelta(seconds=tstamp) */ __pyx_t_3 = NULL; - __pyx_t_5 = PyFloat_FromDouble((__Pyx_mod_double(__pyx_v_tstamp, 1.0, 1) * 1e6)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 256, __pyx_L1_error) + __pyx_t_5 = PyFloat_FromDouble((__Pyx_mod_double(__pyx_v_tstamp, 1.0, 1) * 1e6)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 257, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_4 = 1; { @@ -7332,40 +7349,40 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_transform_datetime(__py __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_round, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 256, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 257, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } - __pyx_t_6 = __Pyx_PyLong_As_int(__pyx_t_2); if (unlikely((__pyx_t_6 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 256, __pyx_L1_error) + __pyx_t_6 = __Pyx_PyLong_As_int(__pyx_t_2); if (unlikely((__pyx_t_6 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 257, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_v_usecs = ((int)__pyx_t_6); - /* "pyreadstat/_readstat_parser.pyx":257 + /* "pyreadstat/_readstat_parser.pyx":258 * secs = (tstamp % 86400) * usecs = (round(tstamp % 1 * 1e6)) * tdelta = timedelta_new(days, secs, usecs) # <<<<<<<<<<<<<< * #tdelta = timedelta(seconds=tstamp) * mydat = origin + tdelta */ - __pyx_t_2 = ((PyObject *)__pyx_f_7cpython_8datetime_timedelta_new(__pyx_v_days, __pyx_v_secs, __pyx_v_usecs)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 257, __pyx_L1_error) + __pyx_t_2 = ((PyObject *)__pyx_f_7cpython_8datetime_timedelta_new(__pyx_v_days, __pyx_v_secs, __pyx_v_usecs)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 258, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_v_tdelta = __pyx_t_2; __pyx_t_2 = 0; } __pyx_L9:; - /* "pyreadstat/_readstat_parser.pyx":259 + /* "pyreadstat/_readstat_parser.pyx":260 * tdelta = timedelta_new(days, secs, usecs) * #tdelta = timedelta(seconds=tstamp) * mydat = origin + tdelta # <<<<<<<<<<<<<< * return mydat * elif var_format == DATE_FORMAT_TIME: */ - __pyx_t_2 = PyNumber_Add(__pyx_v_origin, __pyx_v_tdelta); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 259, __pyx_L1_error) + __pyx_t_2 = PyNumber_Add(__pyx_v_origin, __pyx_v_tdelta); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 260, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_v_mydat = __pyx_t_2; __pyx_t_2 = 0; - /* "pyreadstat/_readstat_parser.pyx":260 + /* "pyreadstat/_readstat_parser.pyx":261 * #tdelta = timedelta(seconds=tstamp) * mydat = origin + tdelta * return mydat # <<<<<<<<<<<<<< @@ -7377,7 +7394,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_transform_datetime(__py __pyx_r = __pyx_v_mydat; goto __pyx_L0; - /* "pyreadstat/_readstat_parser.pyx":234 + /* "pyreadstat/_readstat_parser.pyx":235 * else: * return mydat.date() * elif var_format == DATE_FORMAT_DATETIME: # <<<<<<<<<<<<<< @@ -7387,7 +7404,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_transform_datetime(__py break; case __pyx_e_10pyreadstat_16_readstat_parser_DATE_FORMAT_TIME: - /* "pyreadstat/_readstat_parser.pyx":262 + /* "pyreadstat/_readstat_parser.pyx":263 * return mydat * elif var_format == DATE_FORMAT_TIME: * if file_format == FILE_FORMAT_STATA: # <<<<<<<<<<<<<< @@ -7397,7 +7414,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_transform_datetime(__py __pyx_t_1 = (__pyx_v_file_format == __pyx_e_10pyreadstat_16_readstat_parser_FILE_FORMAT_STATA); if (__pyx_t_1) { - /* "pyreadstat/_readstat_parser.pyx":264 + /* "pyreadstat/_readstat_parser.pyx":265 * if file_format == FILE_FORMAT_STATA: * # tstamp is in millisecons * days = (floor(tstamp / 86400000)) # <<<<<<<<<<<<<< @@ -7406,7 +7423,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_transform_datetime(__py */ __pyx_v_days = ((int)floor((__pyx_v_tstamp / 86400000.0))); - /* "pyreadstat/_readstat_parser.pyx":265 + /* "pyreadstat/_readstat_parser.pyx":266 * # tstamp is in millisecons * days = (floor(tstamp / 86400000)) * msecs = tstamp % 86400000 # <<<<<<<<<<<<<< @@ -7415,7 +7432,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_transform_datetime(__py */ __pyx_v_msecs = __Pyx_mod_double(__pyx_v_tstamp, 86400000.0, 1); - /* "pyreadstat/_readstat_parser.pyx":266 + /* "pyreadstat/_readstat_parser.pyx":267 * days = (floor(tstamp / 86400000)) * msecs = tstamp % 86400000 * secs = (msecs/1000) # <<<<<<<<<<<<<< @@ -7424,7 +7441,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_transform_datetime(__py */ __pyx_v_secs = ((int)(__pyx_v_msecs / 1000.0)); - /* "pyreadstat/_readstat_parser.pyx":267 + /* "pyreadstat/_readstat_parser.pyx":268 * msecs = tstamp % 86400000 * secs = (msecs/1000) * usecs = ((msecs % 1000) * 1000 ) # <<<<<<<<<<<<<< @@ -7433,19 +7450,19 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_transform_datetime(__py */ __pyx_v_usecs = ((int)(__Pyx_mod_double(__pyx_v_msecs, 1000.0, 1) * 1000.0)); - /* "pyreadstat/_readstat_parser.pyx":268 + /* "pyreadstat/_readstat_parser.pyx":269 * secs = (msecs/1000) * usecs = ((msecs % 1000) * 1000 ) * tdelta = timedelta_new(days, secs, usecs) # <<<<<<<<<<<<<< * #tdelta = timedelta(milliseconds=tstamp) * else: */ - __pyx_t_2 = ((PyObject *)__pyx_f_7cpython_8datetime_timedelta_new(__pyx_v_days, __pyx_v_secs, __pyx_v_usecs)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 268, __pyx_L1_error) + __pyx_t_2 = ((PyObject *)__pyx_f_7cpython_8datetime_timedelta_new(__pyx_v_days, __pyx_v_secs, __pyx_v_usecs)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 269, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_v_tdelta = __pyx_t_2; __pyx_t_2 = 0; - /* "pyreadstat/_readstat_parser.pyx":262 + /* "pyreadstat/_readstat_parser.pyx":263 * return mydat * elif var_format == DATE_FORMAT_TIME: * if file_format == FILE_FORMAT_STATA: # <<<<<<<<<<<<<< @@ -7455,7 +7472,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_transform_datetime(__py goto __pyx_L10; } - /* "pyreadstat/_readstat_parser.pyx":272 + /* "pyreadstat/_readstat_parser.pyx":273 * else: * # tstamp in seconds * days = (floor(tstamp / 86400)) # <<<<<<<<<<<<<< @@ -7465,7 +7482,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_transform_datetime(__py /*else*/ { __pyx_v_days = ((int)floor((__pyx_v_tstamp / 86400.0))); - /* "pyreadstat/_readstat_parser.pyx":273 + /* "pyreadstat/_readstat_parser.pyx":274 * # tstamp in seconds * days = (floor(tstamp / 86400)) * secs = (tstamp % 86400) # <<<<<<<<<<<<<< @@ -7474,7 +7491,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_transform_datetime(__py */ __pyx_v_secs = ((int)__Pyx_mod_double(__pyx_v_tstamp, 86400.0, 1)); - /* "pyreadstat/_readstat_parser.pyx":274 + /* "pyreadstat/_readstat_parser.pyx":275 * days = (floor(tstamp / 86400)) * secs = (tstamp % 86400) * usecs = (round(tstamp % 1 * 1e6)) # <<<<<<<<<<<<<< @@ -7482,7 +7499,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_transform_datetime(__py * #tdelta = timedelta(seconds=tstamp) */ __pyx_t_5 = NULL; - __pyx_t_3 = PyFloat_FromDouble((__Pyx_mod_double(__pyx_v_tstamp, 1.0, 1) * 1e6)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 274, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble((__Pyx_mod_double(__pyx_v_tstamp, 1.0, 1) * 1e6)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 275, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = 1; { @@ -7490,40 +7507,40 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_transform_datetime(__py __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_round, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 274, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 275, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } - __pyx_t_6 = __Pyx_PyLong_As_int(__pyx_t_2); if (unlikely((__pyx_t_6 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 274, __pyx_L1_error) + __pyx_t_6 = __Pyx_PyLong_As_int(__pyx_t_2); if (unlikely((__pyx_t_6 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 275, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_v_usecs = ((int)__pyx_t_6); - /* "pyreadstat/_readstat_parser.pyx":275 + /* "pyreadstat/_readstat_parser.pyx":276 * secs = (tstamp % 86400) * usecs = (round(tstamp % 1 * 1e6)) * tdelta = timedelta_new(days, secs, usecs) # <<<<<<<<<<<<<< * #tdelta = timedelta(seconds=tstamp) * mydat = origin + tdelta */ - __pyx_t_2 = ((PyObject *)__pyx_f_7cpython_8datetime_timedelta_new(__pyx_v_days, __pyx_v_secs, __pyx_v_usecs)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 275, __pyx_L1_error) + __pyx_t_2 = ((PyObject *)__pyx_f_7cpython_8datetime_timedelta_new(__pyx_v_days, __pyx_v_secs, __pyx_v_usecs)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 276, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_v_tdelta = __pyx_t_2; __pyx_t_2 = 0; } __pyx_L10:; - /* "pyreadstat/_readstat_parser.pyx":277 + /* "pyreadstat/_readstat_parser.pyx":278 * tdelta = timedelta_new(days, secs, usecs) * #tdelta = timedelta(seconds=tstamp) * mydat = origin + tdelta # <<<<<<<<<<<<<< * return mydat.time() * */ - __pyx_t_2 = PyNumber_Add(__pyx_v_origin, __pyx_v_tdelta); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 277, __pyx_L1_error) + __pyx_t_2 = PyNumber_Add(__pyx_v_origin, __pyx_v_tdelta); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 278, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_v_mydat = __pyx_t_2; __pyx_t_2 = 0; - /* "pyreadstat/_readstat_parser.pyx":278 + /* "pyreadstat/_readstat_parser.pyx":279 * #tdelta = timedelta(seconds=tstamp) * mydat = origin + tdelta * return mydat.time() # <<<<<<<<<<<<<< @@ -7538,14 +7555,14 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_transform_datetime(__py PyObject *__pyx_callargs[2] = {__pyx_t_3, NULL}; __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_time, __pyx_callargs+__pyx_t_4, (1-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 278, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 279, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } __pyx_r = __pyx_t_2; __pyx_t_2 = 0; goto __pyx_L0; - /* "pyreadstat/_readstat_parser.pyx":261 + /* "pyreadstat/_readstat_parser.pyx":262 * mydat = origin + tdelta * return mydat * elif var_format == DATE_FORMAT_TIME: # <<<<<<<<<<<<<< @@ -7556,7 +7573,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_transform_datetime(__py default: break; } - /* "pyreadstat/_readstat_parser.pyx":190 + /* "pyreadstat/_readstat_parser.pyx":191 * return DATE_FORMAT_NOTADATE * * cdef object transform_datetime(py_datetime_format var_format, double tstamp, py_file_format file_format, object origin, # <<<<<<<<<<<<<< @@ -7581,7 +7598,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_transform_datetime(__py return __pyx_r; } -/* "pyreadstat/_readstat_parser.pyx":281 +/* "pyreadstat/_readstat_parser.pyx":282 * * * cdef object convert_readstat_to_python_value(readstat_value_t value, int index, data_container dc): # <<<<<<<<<<<<<< @@ -7630,7 +7647,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_convert_readstat_to_pyt int __pyx_clineno = 0; __Pyx_RefNannySetupContext("convert_readstat_to_python_value", 0); - /* "pyreadstat/_readstat_parser.pyx":309 + /* "pyreadstat/_readstat_parser.pyx":310 * cdef str output_format * * var_type = dc.col_dtypes[index] # <<<<<<<<<<<<<< @@ -7639,15 +7656,15 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_convert_readstat_to_pyt */ if (unlikely(__pyx_v_dc->col_dtypes == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 309, __pyx_L1_error) + __PYX_ERR(0, 310, __pyx_L1_error) } - __pyx_t_1 = __Pyx_GetItemInt_List(__pyx_v_dc->col_dtypes, __pyx_v_index, int, 1, __Pyx_PyLong_From_int, 1, 1, 1, 1, __Pyx_ReferenceSharing_SharedReference); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 309, __pyx_L1_error) + __pyx_t_1 = __Pyx_GetItemInt_List(__pyx_v_dc->col_dtypes, __pyx_v_index, int, 1, __Pyx_PyLong_From_int, 1, 1, 1, 1, __Pyx_ReferenceSharing_SharedReference); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 310, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = ((readstat_type_t)__Pyx_PyLong_As_readstat_type_t(__pyx_t_1)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 309, __pyx_L1_error) + __pyx_t_2 = ((readstat_type_t)__Pyx_PyLong_As_readstat_type_t(__pyx_t_1)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 310, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_v_var_type = __pyx_t_2; - /* "pyreadstat/_readstat_parser.pyx":310 + /* "pyreadstat/_readstat_parser.pyx":311 * * var_type = dc.col_dtypes[index] * var_format = dc.col_formats[index] # <<<<<<<<<<<<<< @@ -7656,15 +7673,15 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_convert_readstat_to_pyt */ if (unlikely(__pyx_v_dc->col_formats == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 310, __pyx_L1_error) + __PYX_ERR(0, 311, __pyx_L1_error) } - __pyx_t_1 = __Pyx_GetItemInt_List(__pyx_v_dc->col_formats, __pyx_v_index, int, 1, __Pyx_PyLong_From_int, 1, 1, 1, 1, __Pyx_ReferenceSharing_SharedReference); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 310, __pyx_L1_error) + __pyx_t_1 = __Pyx_GetItemInt_List(__pyx_v_dc->col_formats, __pyx_v_index, int, 1, __Pyx_PyLong_From_int, 1, 1, 1, 1, __Pyx_ReferenceSharing_SharedReference); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 311, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_3 = ((__pyx_t_10pyreadstat_16_readstat_parser_py_datetime_format)__Pyx_PyLong_As___pyx_t_10pyreadstat_16_readstat_parser_py_datetime_format(__pyx_t_1)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 310, __pyx_L1_error) + __pyx_t_3 = ((__pyx_t_10pyreadstat_16_readstat_parser_py_datetime_format)__Pyx_PyLong_As___pyx_t_10pyreadstat_16_readstat_parser_py_datetime_format(__pyx_t_1)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 311, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_v_var_format = __pyx_t_3; - /* "pyreadstat/_readstat_parser.pyx":311 + /* "pyreadstat/_readstat_parser.pyx":312 * var_type = dc.col_dtypes[index] * var_format = dc.col_formats[index] * origin = dc.origin # <<<<<<<<<<<<<< @@ -7676,7 +7693,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_convert_readstat_to_pyt __pyx_v_origin = __pyx_t_1; __pyx_t_1 = 0; - /* "pyreadstat/_readstat_parser.pyx":312 + /* "pyreadstat/_readstat_parser.pyx":313 * var_format = dc.col_formats[index] * origin = dc.origin * unix_to_origin_secs = dc.unix_to_origin_secs # <<<<<<<<<<<<<< @@ -7686,7 +7703,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_convert_readstat_to_pyt __pyx_t_4 = __pyx_v_dc->unix_to_origin_secs; __pyx_v_unix_to_origin_secs = __pyx_t_4; - /* "pyreadstat/_readstat_parser.pyx":313 + /* "pyreadstat/_readstat_parser.pyx":314 * origin = dc.origin * unix_to_origin_secs = dc.unix_to_origin_secs * dates_as_pandas = dc.dates_as_pandas # <<<<<<<<<<<<<< @@ -7696,7 +7713,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_convert_readstat_to_pyt __pyx_t_5 = __pyx_v_dc->dates_as_pandas; __pyx_v_dates_as_pandas = __pyx_t_5; - /* "pyreadstat/_readstat_parser.pyx":314 + /* "pyreadstat/_readstat_parser.pyx":315 * unix_to_origin_secs = dc.unix_to_origin_secs * dates_as_pandas = dc.dates_as_pandas * file_format = dc.file_format # <<<<<<<<<<<<<< @@ -7706,7 +7723,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_convert_readstat_to_pyt __pyx_t_6 = __pyx_v_dc->file_format; __pyx_v_file_format = __pyx_t_6; - /* "pyreadstat/_readstat_parser.pyx":315 + /* "pyreadstat/_readstat_parser.pyx":316 * dates_as_pandas = dc.dates_as_pandas * file_format = dc.file_format * output_format = dc.output_format # <<<<<<<<<<<<<< @@ -7718,7 +7735,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_convert_readstat_to_pyt __pyx_v_output_format = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - /* "pyreadstat/_readstat_parser.pyx":318 + /* "pyreadstat/_readstat_parser.pyx":319 * * # transform to values cython can deal with * if var_type == READSTAT_TYPE_STRING or var_type == READSTAT_TYPE_STRING_REF: # <<<<<<<<<<<<<< @@ -7729,7 +7746,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_convert_readstat_to_pyt case READSTAT_TYPE_STRING: case READSTAT_TYPE_STRING_REF: - /* "pyreadstat/_readstat_parser.pyx":319 + /* "pyreadstat/_readstat_parser.pyx":320 * # transform to values cython can deal with * if var_type == READSTAT_TYPE_STRING or var_type == READSTAT_TYPE_STRING_REF: * c_str_value = readstat_string_value(value) # <<<<<<<<<<<<<< @@ -7738,7 +7755,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_convert_readstat_to_pyt */ __pyx_v_c_str_value = readstat_string_value(__pyx_v_value); - /* "pyreadstat/_readstat_parser.pyx":320 + /* "pyreadstat/_readstat_parser.pyx":321 * if var_type == READSTAT_TYPE_STRING or var_type == READSTAT_TYPE_STRING_REF: * c_str_value = readstat_string_value(value) * if c_str_value != NULL: # <<<<<<<<<<<<<< @@ -7748,14 +7765,14 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_convert_readstat_to_pyt __pyx_t_5 = (__pyx_v_c_str_value != NULL); if (__pyx_t_5) { - /* "pyreadstat/_readstat_parser.pyx":321 + /* "pyreadstat/_readstat_parser.pyx":322 * c_str_value = readstat_string_value(value) * if c_str_value != NULL: * py_str_value = c_str_value # <<<<<<<<<<<<<< * else: * py_str_value = '' */ - __pyx_t_1 = __Pyx_PyUnicode_FromString(__pyx_v_c_str_value); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 321, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyUnicode_FromString(__pyx_v_c_str_value); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 322, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_7 = __pyx_t_1; __Pyx_INCREF(__pyx_t_7); @@ -7763,7 +7780,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_convert_readstat_to_pyt __pyx_v_py_str_value = ((PyObject*)__pyx_t_7); __pyx_t_7 = 0; - /* "pyreadstat/_readstat_parser.pyx":320 + /* "pyreadstat/_readstat_parser.pyx":321 * if var_type == READSTAT_TYPE_STRING or var_type == READSTAT_TYPE_STRING_REF: * c_str_value = readstat_string_value(value) * if c_str_value != NULL: # <<<<<<<<<<<<<< @@ -7773,7 +7790,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_convert_readstat_to_pyt goto __pyx_L3; } - /* "pyreadstat/_readstat_parser.pyx":323 + /* "pyreadstat/_readstat_parser.pyx":324 * py_str_value = c_str_value * else: * py_str_value = '' # <<<<<<<<<<<<<< @@ -7786,7 +7803,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_convert_readstat_to_pyt } __pyx_L3:; - /* "pyreadstat/_readstat_parser.pyx":324 + /* "pyreadstat/_readstat_parser.pyx":325 * else: * py_str_value = '' * pyformat = VAR_FORMAT_STRING # <<<<<<<<<<<<<< @@ -7795,7 +7812,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_convert_readstat_to_pyt */ __pyx_v_pyformat = __pyx_e_10pyreadstat_16_readstat_parser_VAR_FORMAT_STRING; - /* "pyreadstat/_readstat_parser.pyx":318 + /* "pyreadstat/_readstat_parser.pyx":319 * * # transform to values cython can deal with * if var_type == READSTAT_TYPE_STRING or var_type == READSTAT_TYPE_STRING_REF: # <<<<<<<<<<<<<< @@ -7805,7 +7822,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_convert_readstat_to_pyt break; case READSTAT_TYPE_INT8: - /* "pyreadstat/_readstat_parser.pyx":326 + /* "pyreadstat/_readstat_parser.pyx":327 * pyformat = VAR_FORMAT_STRING * elif var_type == READSTAT_TYPE_INT8: * c_int8_value = readstat_int8_value(value) # <<<<<<<<<<<<<< @@ -7814,7 +7831,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_convert_readstat_to_pyt */ __pyx_v_c_int8_value = readstat_int8_value(__pyx_v_value); - /* "pyreadstat/_readstat_parser.pyx":327 + /* "pyreadstat/_readstat_parser.pyx":328 * elif var_type == READSTAT_TYPE_INT8: * c_int8_value = readstat_int8_value(value) * py_long_value = c_int8_value # <<<<<<<<<<<<<< @@ -7823,7 +7840,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_convert_readstat_to_pyt */ __pyx_v_py_long_value = ((long)__pyx_v_c_int8_value); - /* "pyreadstat/_readstat_parser.pyx":328 + /* "pyreadstat/_readstat_parser.pyx":329 * c_int8_value = readstat_int8_value(value) * py_long_value = c_int8_value * pyformat = VAR_FORMAT_LONG # <<<<<<<<<<<<<< @@ -7832,7 +7849,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_convert_readstat_to_pyt */ __pyx_v_pyformat = __pyx_e_10pyreadstat_16_readstat_parser_VAR_FORMAT_LONG; - /* "pyreadstat/_readstat_parser.pyx":325 + /* "pyreadstat/_readstat_parser.pyx":326 * py_str_value = '' * pyformat = VAR_FORMAT_STRING * elif var_type == READSTAT_TYPE_INT8: # <<<<<<<<<<<<<< @@ -7842,7 +7859,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_convert_readstat_to_pyt break; case READSTAT_TYPE_INT16: - /* "pyreadstat/_readstat_parser.pyx":330 + /* "pyreadstat/_readstat_parser.pyx":331 * pyformat = VAR_FORMAT_LONG * elif var_type == READSTAT_TYPE_INT16: * c_int16_value = readstat_int16_value(value) # <<<<<<<<<<<<<< @@ -7851,7 +7868,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_convert_readstat_to_pyt */ __pyx_v_c_int16_value = readstat_int16_value(__pyx_v_value); - /* "pyreadstat/_readstat_parser.pyx":331 + /* "pyreadstat/_readstat_parser.pyx":332 * elif var_type == READSTAT_TYPE_INT16: * c_int16_value = readstat_int16_value(value) * py_long_value = c_int16_value # <<<<<<<<<<<<<< @@ -7860,7 +7877,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_convert_readstat_to_pyt */ __pyx_v_py_long_value = ((long)__pyx_v_c_int16_value); - /* "pyreadstat/_readstat_parser.pyx":332 + /* "pyreadstat/_readstat_parser.pyx":333 * c_int16_value = readstat_int16_value(value) * py_long_value = c_int16_value * pyformat = VAR_FORMAT_LONG # <<<<<<<<<<<<<< @@ -7869,7 +7886,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_convert_readstat_to_pyt */ __pyx_v_pyformat = __pyx_e_10pyreadstat_16_readstat_parser_VAR_FORMAT_LONG; - /* "pyreadstat/_readstat_parser.pyx":329 + /* "pyreadstat/_readstat_parser.pyx":330 * py_long_value = c_int8_value * pyformat = VAR_FORMAT_LONG * elif var_type == READSTAT_TYPE_INT16: # <<<<<<<<<<<<<< @@ -7879,7 +7896,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_convert_readstat_to_pyt break; case READSTAT_TYPE_INT32: - /* "pyreadstat/_readstat_parser.pyx":334 + /* "pyreadstat/_readstat_parser.pyx":335 * pyformat = VAR_FORMAT_LONG * elif var_type == READSTAT_TYPE_INT32: * c_int32_value = readstat_int32_value(value) # <<<<<<<<<<<<<< @@ -7888,7 +7905,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_convert_readstat_to_pyt */ __pyx_v_c_int32_value = readstat_int32_value(__pyx_v_value); - /* "pyreadstat/_readstat_parser.pyx":335 + /* "pyreadstat/_readstat_parser.pyx":336 * elif var_type == READSTAT_TYPE_INT32: * c_int32_value = readstat_int32_value(value) * py_long_value = c_int32_value # <<<<<<<<<<<<<< @@ -7897,7 +7914,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_convert_readstat_to_pyt */ __pyx_v_py_long_value = ((long)__pyx_v_c_int32_value); - /* "pyreadstat/_readstat_parser.pyx":336 + /* "pyreadstat/_readstat_parser.pyx":337 * c_int32_value = readstat_int32_value(value) * py_long_value = c_int32_value * pyformat = VAR_FORMAT_LONG # <<<<<<<<<<<<<< @@ -7906,7 +7923,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_convert_readstat_to_pyt */ __pyx_v_pyformat = __pyx_e_10pyreadstat_16_readstat_parser_VAR_FORMAT_LONG; - /* "pyreadstat/_readstat_parser.pyx":333 + /* "pyreadstat/_readstat_parser.pyx":334 * py_long_value = c_int16_value * pyformat = VAR_FORMAT_LONG * elif var_type == READSTAT_TYPE_INT32: # <<<<<<<<<<<<<< @@ -7916,7 +7933,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_convert_readstat_to_pyt break; case READSTAT_TYPE_FLOAT: - /* "pyreadstat/_readstat_parser.pyx":338 + /* "pyreadstat/_readstat_parser.pyx":339 * pyformat = VAR_FORMAT_LONG * elif var_type == READSTAT_TYPE_FLOAT: * c_float_value = readstat_float_value(value) # <<<<<<<<<<<<<< @@ -7925,7 +7942,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_convert_readstat_to_pyt */ __pyx_v_c_float_value = readstat_float_value(__pyx_v_value); - /* "pyreadstat/_readstat_parser.pyx":339 + /* "pyreadstat/_readstat_parser.pyx":340 * elif var_type == READSTAT_TYPE_FLOAT: * c_float_value = readstat_float_value(value) * py_float_value = c_float_value # <<<<<<<<<<<<<< @@ -7934,7 +7951,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_convert_readstat_to_pyt */ __pyx_v_py_float_value = ((double)__pyx_v_c_float_value); - /* "pyreadstat/_readstat_parser.pyx":340 + /* "pyreadstat/_readstat_parser.pyx":341 * c_float_value = readstat_float_value(value) * py_float_value = c_float_value * pyformat = VAR_FORMAT_FLOAT # <<<<<<<<<<<<<< @@ -7943,7 +7960,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_convert_readstat_to_pyt */ __pyx_v_pyformat = __pyx_e_10pyreadstat_16_readstat_parser_VAR_FORMAT_FLOAT; - /* "pyreadstat/_readstat_parser.pyx":337 + /* "pyreadstat/_readstat_parser.pyx":338 * py_long_value = c_int32_value * pyformat = VAR_FORMAT_LONG * elif var_type == READSTAT_TYPE_FLOAT: # <<<<<<<<<<<<<< @@ -7953,7 +7970,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_convert_readstat_to_pyt break; case READSTAT_TYPE_DOUBLE: - /* "pyreadstat/_readstat_parser.pyx":342 + /* "pyreadstat/_readstat_parser.pyx":343 * pyformat = VAR_FORMAT_FLOAT * elif var_type == READSTAT_TYPE_DOUBLE: * c_double_value = readstat_double_value(value); # <<<<<<<<<<<<<< @@ -7962,7 +7979,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_convert_readstat_to_pyt */ __pyx_v_c_double_value = readstat_double_value(__pyx_v_value); - /* "pyreadstat/_readstat_parser.pyx":343 + /* "pyreadstat/_readstat_parser.pyx":344 * elif var_type == READSTAT_TYPE_DOUBLE: * c_double_value = readstat_double_value(value); * py_float_value = c_double_value # <<<<<<<<<<<<<< @@ -7971,7 +7988,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_convert_readstat_to_pyt */ __pyx_v_py_float_value = ((double)__pyx_v_c_double_value); - /* "pyreadstat/_readstat_parser.pyx":344 + /* "pyreadstat/_readstat_parser.pyx":345 * c_double_value = readstat_double_value(value); * py_float_value = c_double_value * pyformat = VAR_FORMAT_FLOAT # <<<<<<<<<<<<<< @@ -7980,7 +7997,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_convert_readstat_to_pyt */ __pyx_v_pyformat = __pyx_e_10pyreadstat_16_readstat_parser_VAR_FORMAT_FLOAT; - /* "pyreadstat/_readstat_parser.pyx":341 + /* "pyreadstat/_readstat_parser.pyx":342 * py_float_value = c_float_value * pyformat = VAR_FORMAT_FLOAT * elif var_type == READSTAT_TYPE_DOUBLE: # <<<<<<<<<<<<<< @@ -7990,7 +8007,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_convert_readstat_to_pyt break; default: - /* "pyreadstat/_readstat_parser.pyx":346 + /* "pyreadstat/_readstat_parser.pyx":347 * pyformat = VAR_FORMAT_FLOAT * else: * raise PyreadstatError("Unkown data type") # <<<<<<<<<<<<<< @@ -7998,7 +8015,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_convert_readstat_to_pyt * # final transformation and storage */ __pyx_t_1 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 346, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 347, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_9 = 1; #if CYTHON_UNPACK_METHODS @@ -8017,16 +8034,16 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_convert_readstat_to_pyt __pyx_t_7 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_8, __pyx_callargs+__pyx_t_9, (2-__pyx_t_9) | (__pyx_t_9*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 346, __pyx_L1_error) + if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 347, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); } __Pyx_Raise(__pyx_t_7, 0, 0, 0); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __PYX_ERR(0, 346, __pyx_L1_error) + __PYX_ERR(0, 347, __pyx_L1_error) break; } - /* "pyreadstat/_readstat_parser.pyx":350 + /* "pyreadstat/_readstat_parser.pyx":351 * # final transformation and storage * * if pyformat == VAR_FORMAT_STRING: # <<<<<<<<<<<<<< @@ -8036,7 +8053,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_convert_readstat_to_pyt switch (__pyx_v_pyformat) { case __pyx_e_10pyreadstat_16_readstat_parser_VAR_FORMAT_STRING: - /* "pyreadstat/_readstat_parser.pyx":351 + /* "pyreadstat/_readstat_parser.pyx":352 * * if pyformat == VAR_FORMAT_STRING: * if var_format == DATE_FORMAT_NOTADATE or dc.no_datetime_conversion: # <<<<<<<<<<<<<< @@ -8053,18 +8070,18 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_convert_readstat_to_pyt __pyx_L5_bool_binop_done:; if (likely(__pyx_t_5)) { - /* "pyreadstat/_readstat_parser.pyx":352 + /* "pyreadstat/_readstat_parser.pyx":353 * if pyformat == VAR_FORMAT_STRING: * if var_format == DATE_FORMAT_NOTADATE or dc.no_datetime_conversion: * result = py_str_value # <<<<<<<<<<<<<< * else: * #str_byte_val = py_str_value.encode("UTF-8") */ - if (unlikely(!__pyx_v_py_str_value)) { __Pyx_RaiseUnboundLocalError("py_str_value"); __PYX_ERR(0, 352, __pyx_L1_error) } + if (unlikely(!__pyx_v_py_str_value)) { __Pyx_RaiseUnboundLocalError("py_str_value"); __PYX_ERR(0, 353, __pyx_L1_error) } __Pyx_INCREF(__pyx_v_py_str_value); __pyx_v_result = __pyx_v_py_str_value; - /* "pyreadstat/_readstat_parser.pyx":351 + /* "pyreadstat/_readstat_parser.pyx":352 * * if pyformat == VAR_FORMAT_STRING: * if var_format == DATE_FORMAT_NOTADATE or dc.no_datetime_conversion: # <<<<<<<<<<<<<< @@ -8074,7 +8091,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_convert_readstat_to_pyt goto __pyx_L4; } - /* "pyreadstat/_readstat_parser.pyx":355 + /* "pyreadstat/_readstat_parser.pyx":356 * else: * #str_byte_val = py_str_value.encode("UTF-8") * raise PyreadstatError("STRING type with value '%s' with date type in column '%s'" % (py_str_value, dc.col_names[index])) # <<<<<<<<<<<<<< @@ -8083,18 +8100,18 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_convert_readstat_to_pyt */ /*else*/ { __pyx_t_8 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 355, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 356, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - if (unlikely(!__pyx_v_py_str_value)) { __Pyx_RaiseUnboundLocalError("py_str_value"); __PYX_ERR(0, 355, __pyx_L1_error) } - __pyx_t_11 = __Pyx_PyUnicode_Unicode(__pyx_v_py_str_value); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 355, __pyx_L1_error) + if (unlikely(!__pyx_v_py_str_value)) { __Pyx_RaiseUnboundLocalError("py_str_value"); __PYX_ERR(0, 356, __pyx_L1_error) } + __pyx_t_11 = __Pyx_PyUnicode_Unicode(__pyx_v_py_str_value); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 356, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); if (unlikely(__pyx_v_dc->col_names == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 355, __pyx_L1_error) + __PYX_ERR(0, 356, __pyx_L1_error) } - __pyx_t_12 = __Pyx_GetItemInt_List(__pyx_v_dc->col_names, __pyx_v_index, int, 1, __Pyx_PyLong_From_int, 1, 1, 1, 1, __Pyx_ReferenceSharing_SharedReference); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 355, __pyx_L1_error) + __pyx_t_12 = __Pyx_GetItemInt_List(__pyx_v_dc->col_names, __pyx_v_index, int, 1, __Pyx_PyLong_From_int, 1, 1, 1, 1, __Pyx_ReferenceSharing_SharedReference); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 356, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); - __pyx_t_13 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Str(__pyx_t_12), __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 355, __pyx_L1_error) + __pyx_t_13 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Str(__pyx_t_12), __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 356, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __pyx_t_14[0] = __pyx_mstate_global->__pyx_kp_u_STRING_type_with_value; @@ -8103,7 +8120,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_convert_readstat_to_pyt __pyx_t_14[3] = __pyx_t_13; __pyx_t_14[4] = __pyx_mstate_global->__pyx_kp_u__2; __pyx_t_12 = __Pyx_PyUnicode_Join(__pyx_t_14, 5, 24 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_11) + 28 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_13) + 1, 127 | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_11) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_13)); - if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 355, __pyx_L1_error) + if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 356, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; @@ -8125,16 +8142,16 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_convert_readstat_to_pyt __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 355, __pyx_L1_error) + if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 356, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); } __Pyx_Raise(__pyx_t_7, 0, 0, 0); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __PYX_ERR(0, 355, __pyx_L1_error) + __PYX_ERR(0, 356, __pyx_L1_error) } __pyx_L4:; - /* "pyreadstat/_readstat_parser.pyx":350 + /* "pyreadstat/_readstat_parser.pyx":351 * # final transformation and storage * * if pyformat == VAR_FORMAT_STRING: # <<<<<<<<<<<<<< @@ -8144,7 +8161,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_convert_readstat_to_pyt break; case __pyx_e_10pyreadstat_16_readstat_parser_VAR_FORMAT_LONG: - /* "pyreadstat/_readstat_parser.pyx":357 + /* "pyreadstat/_readstat_parser.pyx":358 * raise PyreadstatError("STRING type with value '%s' with date type in column '%s'" % (py_str_value, dc.col_names[index])) * elif pyformat == VAR_FORMAT_LONG: * if var_format == DATE_FORMAT_NOTADATE or dc.no_datetime_conversion: # <<<<<<<<<<<<<< @@ -8161,19 +8178,19 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_convert_readstat_to_pyt __pyx_L8_bool_binop_done:; if (__pyx_t_5) { - /* "pyreadstat/_readstat_parser.pyx":358 + /* "pyreadstat/_readstat_parser.pyx":359 * elif pyformat == VAR_FORMAT_LONG: * if var_format == DATE_FORMAT_NOTADATE or dc.no_datetime_conversion: * result = py_long_value # <<<<<<<<<<<<<< * else: * tstamp = py_long_value */ - __pyx_t_7 = __Pyx_PyLong_From_long(__pyx_v_py_long_value); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 358, __pyx_L1_error) + __pyx_t_7 = __Pyx_PyLong_From_long(__pyx_v_py_long_value); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 359, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_v_result = __pyx_t_7; __pyx_t_7 = 0; - /* "pyreadstat/_readstat_parser.pyx":357 + /* "pyreadstat/_readstat_parser.pyx":358 * raise PyreadstatError("STRING type with value '%s' with date type in column '%s'" % (py_str_value, dc.col_names[index])) * elif pyformat == VAR_FORMAT_LONG: * if var_format == DATE_FORMAT_NOTADATE or dc.no_datetime_conversion: # <<<<<<<<<<<<<< @@ -8183,7 +8200,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_convert_readstat_to_pyt goto __pyx_L7; } - /* "pyreadstat/_readstat_parser.pyx":360 + /* "pyreadstat/_readstat_parser.pyx":361 * result = py_long_value * else: * tstamp = py_long_value # <<<<<<<<<<<<<< @@ -8193,21 +8210,21 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_convert_readstat_to_pyt /*else*/ { __pyx_v_tstamp = ((double)__pyx_v_py_long_value); - /* "pyreadstat/_readstat_parser.pyx":361 + /* "pyreadstat/_readstat_parser.pyx":362 * else: * tstamp = py_long_value * result = transform_datetime(var_format, tstamp, file_format, origin, dates_as_pandas, output_format, unix_to_origin_secs) # <<<<<<<<<<<<<< * elif pyformat == VAR_FORMAT_FLOAT: * if var_format == DATE_FORMAT_NOTADATE or dc.no_datetime_conversion: */ - __pyx_t_7 = __pyx_f_10pyreadstat_16_readstat_parser_transform_datetime(__pyx_v_var_format, __pyx_v_tstamp, __pyx_v_file_format, __pyx_v_origin, __pyx_v_dates_as_pandas, __pyx_v_output_format, __pyx_v_unix_to_origin_secs); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 361, __pyx_L1_error) + __pyx_t_7 = __pyx_f_10pyreadstat_16_readstat_parser_transform_datetime(__pyx_v_var_format, __pyx_v_tstamp, __pyx_v_file_format, __pyx_v_origin, __pyx_v_dates_as_pandas, __pyx_v_output_format, __pyx_v_unix_to_origin_secs); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 362, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_v_result = __pyx_t_7; __pyx_t_7 = 0; } __pyx_L7:; - /* "pyreadstat/_readstat_parser.pyx":356 + /* "pyreadstat/_readstat_parser.pyx":357 * #str_byte_val = py_str_value.encode("UTF-8") * raise PyreadstatError("STRING type with value '%s' with date type in column '%s'" % (py_str_value, dc.col_names[index])) * elif pyformat == VAR_FORMAT_LONG: # <<<<<<<<<<<<<< @@ -8217,7 +8234,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_convert_readstat_to_pyt break; case __pyx_e_10pyreadstat_16_readstat_parser_VAR_FORMAT_FLOAT: - /* "pyreadstat/_readstat_parser.pyx":363 + /* "pyreadstat/_readstat_parser.pyx":364 * result = transform_datetime(var_format, tstamp, file_format, origin, dates_as_pandas, output_format, unix_to_origin_secs) * elif pyformat == VAR_FORMAT_FLOAT: * if var_format == DATE_FORMAT_NOTADATE or dc.no_datetime_conversion: # <<<<<<<<<<<<<< @@ -8234,19 +8251,19 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_convert_readstat_to_pyt __pyx_L11_bool_binop_done:; if (__pyx_t_5) { - /* "pyreadstat/_readstat_parser.pyx":364 + /* "pyreadstat/_readstat_parser.pyx":365 * elif pyformat == VAR_FORMAT_FLOAT: * if var_format == DATE_FORMAT_NOTADATE or dc.no_datetime_conversion: * result = py_float_value # <<<<<<<<<<<<<< * else: * #tstamp = py_float_value */ - __pyx_t_7 = PyFloat_FromDouble(__pyx_v_py_float_value); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 364, __pyx_L1_error) + __pyx_t_7 = PyFloat_FromDouble(__pyx_v_py_float_value); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 365, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_v_result = __pyx_t_7; __pyx_t_7 = 0; - /* "pyreadstat/_readstat_parser.pyx":363 + /* "pyreadstat/_readstat_parser.pyx":364 * result = transform_datetime(var_format, tstamp, file_format, origin, dates_as_pandas, output_format, unix_to_origin_secs) * elif pyformat == VAR_FORMAT_FLOAT: * if var_format == DATE_FORMAT_NOTADATE or dc.no_datetime_conversion: # <<<<<<<<<<<<<< @@ -8256,7 +8273,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_convert_readstat_to_pyt goto __pyx_L10; } - /* "pyreadstat/_readstat_parser.pyx":367 + /* "pyreadstat/_readstat_parser.pyx":368 * else: * #tstamp = py_float_value * tstamp = py_float_value # <<<<<<<<<<<<<< @@ -8266,21 +8283,21 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_convert_readstat_to_pyt /*else*/ { __pyx_v_tstamp = __pyx_v_py_float_value; - /* "pyreadstat/_readstat_parser.pyx":368 + /* "pyreadstat/_readstat_parser.pyx":369 * #tstamp = py_float_value * tstamp = py_float_value * result = transform_datetime(var_format, tstamp, file_format, origin, dates_as_pandas, output_format, unix_to_origin_secs) # <<<<<<<<<<<<<< * #elif pyformat == VAR_FORMAT_MISSING: * # pass */ - __pyx_t_7 = __pyx_f_10pyreadstat_16_readstat_parser_transform_datetime(__pyx_v_var_format, __pyx_v_tstamp, __pyx_v_file_format, __pyx_v_origin, __pyx_v_dates_as_pandas, __pyx_v_output_format, __pyx_v_unix_to_origin_secs); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 368, __pyx_L1_error) + __pyx_t_7 = __pyx_f_10pyreadstat_16_readstat_parser_transform_datetime(__pyx_v_var_format, __pyx_v_tstamp, __pyx_v_file_format, __pyx_v_origin, __pyx_v_dates_as_pandas, __pyx_v_output_format, __pyx_v_unix_to_origin_secs); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 369, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_v_result = __pyx_t_7; __pyx_t_7 = 0; } __pyx_L10:; - /* "pyreadstat/_readstat_parser.pyx":362 + /* "pyreadstat/_readstat_parser.pyx":363 * tstamp = py_long_value * result = transform_datetime(var_format, tstamp, file_format, origin, dates_as_pandas, output_format, unix_to_origin_secs) * elif pyformat == VAR_FORMAT_FLOAT: # <<<<<<<<<<<<<< @@ -8290,7 +8307,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_convert_readstat_to_pyt break; default: - /* "pyreadstat/_readstat_parser.pyx":372 + /* "pyreadstat/_readstat_parser.pyx":373 * # pass * else: * raise PyreadstatError("Failed convert C to python value") # <<<<<<<<<<<<<< @@ -8298,7 +8315,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_convert_readstat_to_pyt * return result */ __pyx_t_1 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_12, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 372, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_12, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 373, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __pyx_t_9 = 1; #if CYTHON_UNPACK_METHODS @@ -8317,16 +8334,16 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_convert_readstat_to_pyt __pyx_t_7 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_12, __pyx_callargs+__pyx_t_9, (2-__pyx_t_9) | (__pyx_t_9*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 372, __pyx_L1_error) + if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 373, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); } __Pyx_Raise(__pyx_t_7, 0, 0, 0); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __PYX_ERR(0, 372, __pyx_L1_error) + __PYX_ERR(0, 373, __pyx_L1_error) break; } - /* "pyreadstat/_readstat_parser.pyx":374 + /* "pyreadstat/_readstat_parser.pyx":375 * raise PyreadstatError("Failed convert C to python value") * * return result # <<<<<<<<<<<<<< @@ -8338,7 +8355,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_convert_readstat_to_pyt __pyx_r = __pyx_v_result; goto __pyx_L0; - /* "pyreadstat/_readstat_parser.pyx":281 + /* "pyreadstat/_readstat_parser.pyx":282 * * * cdef object convert_readstat_to_python_value(readstat_value_t value, int index, data_container dc): # <<<<<<<<<<<<<< @@ -8366,7 +8383,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_convert_readstat_to_pyt return __pyx_r; } -/* "pyreadstat/_readstat_parser.pyx":377 +/* "pyreadstat/_readstat_parser.pyx":378 * * * cdef int handle_metadata(readstat_metadata_t *metadata, void *ctx) except READSTAT_HANDLER_ABORT: # <<<<<<<<<<<<<< @@ -8408,7 +8425,7 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_metadata(readstat_meta int __pyx_clineno = 0; __Pyx_RefNannySetupContext("handle_metadata", 0); - /* "pyreadstat/_readstat_parser.pyx":386 + /* "pyreadstat/_readstat_parser.pyx":387 * * cdef int var_count, obs_count, mr_len * cdef data_container dc = ctx # <<<<<<<<<<<<<< @@ -8420,7 +8437,7 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_metadata(readstat_meta __pyx_v_dc = ((struct __pyx_obj_10pyreadstat_16_readstat_parser_data_container *)__pyx_t_1); __pyx_t_1 = 0; - /* "pyreadstat/_readstat_parser.pyx":395 + /* "pyreadstat/_readstat_parser.pyx":396 * cdef int ctime * cdef int mtime * cdef int i = 0 # <<<<<<<<<<<<<< @@ -8429,31 +8446,31 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_metadata(readstat_meta */ __pyx_v_i = 0; - /* "pyreadstat/_readstat_parser.pyx":397 + /* "pyreadstat/_readstat_parser.pyx":398 * cdef int i = 0 * cdef const mr_set_t * mr_sets_orig * cdef dict mr_sets = {} # <<<<<<<<<<<<<< * cdef str name * cdef list variable_list = [] */ - __pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 397, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 398, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_mr_sets = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - /* "pyreadstat/_readstat_parser.pyx":399 + /* "pyreadstat/_readstat_parser.pyx":400 * cdef dict mr_sets = {} * cdef str name * cdef list variable_list = [] # <<<<<<<<<<<<<< * * metaonly = dc.metaonly */ - __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 399, __pyx_L1_error) + __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 400, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_variable_list = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - /* "pyreadstat/_readstat_parser.pyx":401 + /* "pyreadstat/_readstat_parser.pyx":402 * cdef list variable_list = [] * * metaonly = dc.metaonly # <<<<<<<<<<<<<< @@ -8463,7 +8480,7 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_metadata(readstat_meta __pyx_t_2 = __pyx_v_dc->metaonly; __pyx_v_metaonly = __pyx_t_2; - /* "pyreadstat/_readstat_parser.pyx":403 + /* "pyreadstat/_readstat_parser.pyx":404 * metaonly = dc.metaonly * * var_count = readstat_get_var_count(metadata) # <<<<<<<<<<<<<< @@ -8472,7 +8489,7 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_metadata(readstat_meta */ __pyx_v_var_count = readstat_get_var_count(__pyx_v_metadata); - /* "pyreadstat/_readstat_parser.pyx":404 + /* "pyreadstat/_readstat_parser.pyx":405 * * var_count = readstat_get_var_count(metadata) * if var_count<0: # <<<<<<<<<<<<<< @@ -8482,7 +8499,7 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_metadata(readstat_meta __pyx_t_2 = (__pyx_v_var_count < 0); if (unlikely(__pyx_t_2)) { - /* "pyreadstat/_readstat_parser.pyx":405 + /* "pyreadstat/_readstat_parser.pyx":406 * var_count = readstat_get_var_count(metadata) * if var_count<0: * raise PyreadstatError("Failed to read number of variables") # <<<<<<<<<<<<<< @@ -8490,7 +8507,7 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_metadata(readstat_meta * if obs_count <0: */ __pyx_t_3 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 405, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 406, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = 1; #if CYTHON_UNPACK_METHODS @@ -8509,14 +8526,14 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_metadata(readstat_meta __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 405, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 406, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __PYX_ERR(0, 405, __pyx_L1_error) + __PYX_ERR(0, 406, __pyx_L1_error) - /* "pyreadstat/_readstat_parser.pyx":404 + /* "pyreadstat/_readstat_parser.pyx":405 * * var_count = readstat_get_var_count(metadata) * if var_count<0: # <<<<<<<<<<<<<< @@ -8525,7 +8542,7 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_metadata(readstat_meta */ } - /* "pyreadstat/_readstat_parser.pyx":406 + /* "pyreadstat/_readstat_parser.pyx":407 * if var_count<0: * raise PyreadstatError("Failed to read number of variables") * obs_count = readstat_get_row_count(metadata) # <<<<<<<<<<<<<< @@ -8534,7 +8551,7 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_metadata(readstat_meta */ __pyx_v_obs_count = readstat_get_row_count(__pyx_v_metadata); - /* "pyreadstat/_readstat_parser.pyx":407 + /* "pyreadstat/_readstat_parser.pyx":408 * raise PyreadstatError("Failed to read number of variables") * obs_count = readstat_get_row_count(metadata) * if obs_count <0: # <<<<<<<<<<<<<< @@ -8544,7 +8561,7 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_metadata(readstat_meta __pyx_t_2 = (__pyx_v_obs_count < 0); if (__pyx_t_2) { - /* "pyreadstat/_readstat_parser.pyx":409 + /* "pyreadstat/_readstat_parser.pyx":410 * if obs_count <0: * # if <0 it means the number of rows is not known, allocate 100 000 * obs_count = 100000 # <<<<<<<<<<<<<< @@ -8553,7 +8570,7 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_metadata(readstat_meta */ __pyx_v_obs_count = 0x186A0; - /* "pyreadstat/_readstat_parser.pyx":410 + /* "pyreadstat/_readstat_parser.pyx":411 * # if <0 it means the number of rows is not known, allocate 100 000 * obs_count = 100000 * dc.is_unkown_number_rows = 1 # <<<<<<<<<<<<<< @@ -8562,7 +8579,7 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_metadata(readstat_meta */ __pyx_v_dc->is_unkown_number_rows = 1; - /* "pyreadstat/_readstat_parser.pyx":407 + /* "pyreadstat/_readstat_parser.pyx":408 * raise PyreadstatError("Failed to read number of variables") * obs_count = readstat_get_row_count(metadata) * if obs_count <0: # <<<<<<<<<<<<<< @@ -8571,7 +8588,7 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_metadata(readstat_meta */ } - /* "pyreadstat/_readstat_parser.pyx":412 + /* "pyreadstat/_readstat_parser.pyx":413 * dc.is_unkown_number_rows = 1 * * dc.n_obs = obs_count # <<<<<<<<<<<<<< @@ -8580,7 +8597,7 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_metadata(readstat_meta */ __pyx_v_dc->n_obs = __pyx_v_obs_count; - /* "pyreadstat/_readstat_parser.pyx":413 + /* "pyreadstat/_readstat_parser.pyx":414 * * dc.n_obs = obs_count * dc.n_vars = var_count # <<<<<<<<<<<<<< @@ -8589,7 +8606,7 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_metadata(readstat_meta */ __pyx_v_dc->n_vars = __pyx_v_var_count; - /* "pyreadstat/_readstat_parser.pyx":415 + /* "pyreadstat/_readstat_parser.pyx":416 * dc.n_vars = var_count * * mr_len = readstat_get_multiple_response_sets_length(metadata); # <<<<<<<<<<<<<< @@ -8598,7 +8615,7 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_metadata(readstat_meta */ __pyx_v_mr_len = ((int)readstat_get_multiple_response_sets_length(__pyx_v_metadata)); - /* "pyreadstat/_readstat_parser.pyx":416 + /* "pyreadstat/_readstat_parser.pyx":417 * * mr_len = readstat_get_multiple_response_sets_length(metadata); * mr_sets_orig = readstat_get_multiple_response_sets(metadata); # <<<<<<<<<<<<<< @@ -8607,7 +8624,7 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_metadata(readstat_meta */ __pyx_v_mr_sets_orig = readstat_get_multiple_response_sets(__pyx_v_metadata); - /* "pyreadstat/_readstat_parser.pyx":417 + /* "pyreadstat/_readstat_parser.pyx":418 * mr_len = readstat_get_multiple_response_sets_length(metadata); * mr_sets_orig = readstat_get_multiple_response_sets(metadata); * if mr_sets_orig != NULL: # <<<<<<<<<<<<<< @@ -8617,7 +8634,7 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_metadata(readstat_meta __pyx_t_2 = (__pyx_v_mr_sets_orig != NULL); if (__pyx_t_2) { - /* "pyreadstat/_readstat_parser.pyx":418 + /* "pyreadstat/_readstat_parser.pyx":419 * mr_sets_orig = readstat_get_multiple_response_sets(metadata); * if mr_sets_orig != NULL: * i = 0 # <<<<<<<<<<<<<< @@ -8626,7 +8643,7 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_metadata(readstat_meta */ __pyx_v_i = 0; - /* "pyreadstat/_readstat_parser.pyx":419 + /* "pyreadstat/_readstat_parser.pyx":420 * if mr_sets_orig != NULL: * i = 0 * while i < mr_len: # <<<<<<<<<<<<<< @@ -8637,14 +8654,14 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_metadata(readstat_meta __pyx_t_2 = (__pyx_v_i < __pyx_v_mr_len); if (!__pyx_t_2) break; - /* "pyreadstat/_readstat_parser.pyx":420 + /* "pyreadstat/_readstat_parser.pyx":421 * i = 0 * while i < mr_len: * name = mr_sets_orig[i].name # <<<<<<<<<<<<<< * variable_list = [] * for j in range(mr_sets_orig[i].num_subvars): */ - __pyx_t_1 = __Pyx_PyUnicode_FromString((__pyx_v_mr_sets_orig[__pyx_v_i]).name); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 420, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyUnicode_FromString((__pyx_v_mr_sets_orig[__pyx_v_i]).name); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 421, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_4 = __pyx_t_1; __Pyx_INCREF(__pyx_t_4); @@ -8652,19 +8669,19 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_metadata(readstat_meta __Pyx_XDECREF_SET(__pyx_v_name, ((PyObject*)__pyx_t_4)); __pyx_t_4 = 0; - /* "pyreadstat/_readstat_parser.pyx":421 + /* "pyreadstat/_readstat_parser.pyx":422 * while i < mr_len: * name = mr_sets_orig[i].name * variable_list = [] # <<<<<<<<<<<<<< * for j in range(mr_sets_orig[i].num_subvars): * variable_list.append(mr_sets_orig[i].subvariables[j]) */ - __pyx_t_4 = PyList_New(0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 421, __pyx_L1_error) + __pyx_t_4 = PyList_New(0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 422, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF_SET(__pyx_v_variable_list, ((PyObject*)__pyx_t_4)); __pyx_t_4 = 0; - /* "pyreadstat/_readstat_parser.pyx":422 + /* "pyreadstat/_readstat_parser.pyx":423 * name = mr_sets_orig[i].name * variable_list = [] * for j in range(mr_sets_orig[i].num_subvars): # <<<<<<<<<<<<<< @@ -8676,46 +8693,46 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_metadata(readstat_meta for (__pyx_t_8 = 0; __pyx_t_8 < __pyx_t_7; __pyx_t_8+=1) { __pyx_v_j = __pyx_t_8; - /* "pyreadstat/_readstat_parser.pyx":423 + /* "pyreadstat/_readstat_parser.pyx":424 * variable_list = [] * for j in range(mr_sets_orig[i].num_subvars): * variable_list.append(mr_sets_orig[i].subvariables[j]) # <<<<<<<<<<<<<< * mr_sets[name] = { * 'type': chr(mr_sets_orig[i].type), */ - __pyx_t_4 = __Pyx_PyUnicode_FromString(((__pyx_v_mr_sets_orig[__pyx_v_i]).subvariables[__pyx_v_j])); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 423, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyUnicode_FromString(((__pyx_v_mr_sets_orig[__pyx_v_i]).subvariables[__pyx_v_j])); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 424, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_9 = __Pyx_PyList_Append(__pyx_v_variable_list, __pyx_t_4); if (unlikely(__pyx_t_9 == ((int)-1))) __PYX_ERR(0, 423, __pyx_L1_error) + __pyx_t_9 = __Pyx_PyList_Append(__pyx_v_variable_list, __pyx_t_4); if (unlikely(__pyx_t_9 == ((int)-1))) __PYX_ERR(0, 424, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; } - /* "pyreadstat/_readstat_parser.pyx":425 + /* "pyreadstat/_readstat_parser.pyx":426 * variable_list.append(mr_sets_orig[i].subvariables[j]) * mr_sets[name] = { * 'type': chr(mr_sets_orig[i].type), # <<<<<<<<<<<<<< * 'is_dichotomy': bool(mr_sets_orig[i].is_dichotomy), * 'counted_value': mr_sets_orig[i].counted_value if mr_sets_orig[i].counted_value != -1 else None, */ - __pyx_t_4 = __Pyx_PyDict_NewPresized(5); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 425, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyDict_NewPresized(5); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 426, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_1 = PyUnicode_FromOrdinal((__pyx_v_mr_sets_orig[__pyx_v_i]).type); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 425, __pyx_L1_error) + __pyx_t_1 = PyUnicode_FromOrdinal((__pyx_v_mr_sets_orig[__pyx_v_i]).type); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 426, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - if (PyDict_SetItem(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_type, __pyx_t_1) < (0)) __PYX_ERR(0, 425, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_type, __pyx_t_1) < (0)) __PYX_ERR(0, 426, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "pyreadstat/_readstat_parser.pyx":426 + /* "pyreadstat/_readstat_parser.pyx":427 * mr_sets[name] = { * 'type': chr(mr_sets_orig[i].type), * 'is_dichotomy': bool(mr_sets_orig[i].is_dichotomy), # <<<<<<<<<<<<<< * 'counted_value': mr_sets_orig[i].counted_value if mr_sets_orig[i].counted_value != -1 else None, * 'label': mr_sets_orig[i].label, */ - __pyx_t_1 = __Pyx_PyBool_FromLong((!(!((__pyx_v_mr_sets_orig[__pyx_v_i]).is_dichotomy != 0)))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 426, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyBool_FromLong((!(!((__pyx_v_mr_sets_orig[__pyx_v_i]).is_dichotomy != 0)))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 427, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - if (PyDict_SetItem(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_is_dichotomy, __pyx_t_1) < (0)) __PYX_ERR(0, 425, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_is_dichotomy, __pyx_t_1) < (0)) __PYX_ERR(0, 426, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "pyreadstat/_readstat_parser.pyx":427 + /* "pyreadstat/_readstat_parser.pyx":428 * 'type': chr(mr_sets_orig[i].type), * 'is_dichotomy': bool(mr_sets_orig[i].is_dichotomy), * 'counted_value': mr_sets_orig[i].counted_value if mr_sets_orig[i].counted_value != -1 else None, # <<<<<<<<<<<<<< @@ -8724,7 +8741,7 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_metadata(readstat_meta */ __pyx_t_2 = ((__pyx_v_mr_sets_orig[__pyx_v_i]).counted_value != -1L); if (__pyx_t_2) { - __pyx_t_3 = __Pyx_PyLong_From_int((__pyx_v_mr_sets_orig[__pyx_v_i]).counted_value); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 427, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyLong_From_int((__pyx_v_mr_sets_orig[__pyx_v_i]).counted_value); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 428, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_1 = __pyx_t_3; __pyx_t_3 = 0; @@ -8732,41 +8749,41 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_metadata(readstat_meta __Pyx_INCREF(Py_None); __pyx_t_1 = Py_None; } - if (PyDict_SetItem(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_counted_value, __pyx_t_1) < (0)) __PYX_ERR(0, 425, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_counted_value, __pyx_t_1) < (0)) __PYX_ERR(0, 426, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "pyreadstat/_readstat_parser.pyx":428 + /* "pyreadstat/_readstat_parser.pyx":429 * 'is_dichotomy': bool(mr_sets_orig[i].is_dichotomy), * 'counted_value': mr_sets_orig[i].counted_value if mr_sets_orig[i].counted_value != -1 else None, * 'label': mr_sets_orig[i].label, # <<<<<<<<<<<<<< * 'variable_list': variable_list * } */ - __pyx_t_1 = __Pyx_PyUnicode_FromString((__pyx_v_mr_sets_orig[__pyx_v_i]).label); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 428, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyUnicode_FromString((__pyx_v_mr_sets_orig[__pyx_v_i]).label); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 429, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - if (PyDict_SetItem(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_label, __pyx_t_1) < (0)) __PYX_ERR(0, 425, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_label, __pyx_t_1) < (0)) __PYX_ERR(0, 426, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "pyreadstat/_readstat_parser.pyx":429 + /* "pyreadstat/_readstat_parser.pyx":430 * 'counted_value': mr_sets_orig[i].counted_value if mr_sets_orig[i].counted_value != -1 else None, * 'label': mr_sets_orig[i].label, * 'variable_list': variable_list # <<<<<<<<<<<<<< * } * i += 1 */ - if (PyDict_SetItem(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_variable_list, __pyx_v_variable_list) < (0)) __PYX_ERR(0, 425, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_variable_list, __pyx_v_variable_list) < (0)) __PYX_ERR(0, 426, __pyx_L1_error) - /* "pyreadstat/_readstat_parser.pyx":424 + /* "pyreadstat/_readstat_parser.pyx":425 * for j in range(mr_sets_orig[i].num_subvars): * variable_list.append(mr_sets_orig[i].subvariables[j]) * mr_sets[name] = { # <<<<<<<<<<<<<< * 'type': chr(mr_sets_orig[i].type), * 'is_dichotomy': bool(mr_sets_orig[i].is_dichotomy), */ - if (unlikely((PyDict_SetItem(__pyx_v_mr_sets, __pyx_v_name, __pyx_t_4) < 0))) __PYX_ERR(0, 424, __pyx_L1_error) + if (unlikely((PyDict_SetItem(__pyx_v_mr_sets, __pyx_v_name, __pyx_t_4) < 0))) __PYX_ERR(0, 425, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - /* "pyreadstat/_readstat_parser.pyx":431 + /* "pyreadstat/_readstat_parser.pyx":432 * 'variable_list': variable_list * } * i += 1 # <<<<<<<<<<<<<< @@ -8776,7 +8793,7 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_metadata(readstat_meta __pyx_v_i = (__pyx_v_i + 1); } - /* "pyreadstat/_readstat_parser.pyx":432 + /* "pyreadstat/_readstat_parser.pyx":433 * } * i += 1 * dc.mr_sets = mr_sets # <<<<<<<<<<<<<< @@ -8789,7 +8806,7 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_metadata(readstat_meta __Pyx_DECREF(__pyx_v_dc->mr_sets); __pyx_v_dc->mr_sets = __pyx_v_mr_sets; - /* "pyreadstat/_readstat_parser.pyx":417 + /* "pyreadstat/_readstat_parser.pyx":418 * mr_len = readstat_get_multiple_response_sets_length(metadata); * mr_sets_orig = readstat_get_multiple_response_sets(metadata); * if mr_sets_orig != NULL: # <<<<<<<<<<<<<< @@ -8798,22 +8815,22 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_metadata(readstat_meta */ } - /* "pyreadstat/_readstat_parser.pyx":434 + /* "pyreadstat/_readstat_parser.pyx":435 * dc.mr_sets = mr_sets * * dc.col_data_len = [obs_count] * var_count # <<<<<<<<<<<<<< * dc.col_numpy_dtypes = [None] * var_count * dc.col_dytpes_isfloat = [0] * var_count */ - __pyx_t_4 = __Pyx_PyLong_From_int(__pyx_v_obs_count); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 434, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyLong_From_int(__pyx_v_obs_count); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 435, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_1 = PyList_New(1 * ((__pyx_v_var_count<0) ? 0:__pyx_v_var_count)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 434, __pyx_L1_error) + __pyx_t_1 = PyList_New(1 * ((__pyx_v_var_count<0) ? 0:__pyx_v_var_count)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 435, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); { Py_ssize_t __pyx_temp; for (__pyx_temp=0; __pyx_temp < __pyx_v_var_count; __pyx_temp++) { __Pyx_INCREF(__pyx_t_4); __Pyx_GIVEREF(__pyx_t_4); - if (__Pyx_PyList_SET_ITEM(__pyx_t_1, __pyx_temp, __pyx_t_4) != (0)) __PYX_ERR(0, 434, __pyx_L1_error); + if (__Pyx_PyList_SET_ITEM(__pyx_t_1, __pyx_temp, __pyx_t_4) != (0)) __PYX_ERR(0, 435, __pyx_L1_error); } } __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; @@ -8823,20 +8840,20 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_metadata(readstat_meta __pyx_v_dc->col_data_len = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - /* "pyreadstat/_readstat_parser.pyx":435 + /* "pyreadstat/_readstat_parser.pyx":436 * * dc.col_data_len = [obs_count] * var_count * dc.col_numpy_dtypes = [None] * var_count # <<<<<<<<<<<<<< * dc.col_dytpes_isfloat = [0] * var_count * dc.col_dtypes_isobject = [0] * var_count */ - __pyx_t_1 = PyList_New(1 * ((__pyx_v_var_count<0) ? 0:__pyx_v_var_count)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 435, __pyx_L1_error) + __pyx_t_1 = PyList_New(1 * ((__pyx_v_var_count<0) ? 0:__pyx_v_var_count)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 436, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); { Py_ssize_t __pyx_temp; for (__pyx_temp=0; __pyx_temp < __pyx_v_var_count; __pyx_temp++) { __Pyx_INCREF(Py_None); __Pyx_GIVEREF(Py_None); - if (__Pyx_PyList_SET_ITEM(__pyx_t_1, __pyx_temp, Py_None) != (0)) __PYX_ERR(0, 435, __pyx_L1_error); + if (__Pyx_PyList_SET_ITEM(__pyx_t_1, __pyx_temp, Py_None) != (0)) __PYX_ERR(0, 436, __pyx_L1_error); } } __Pyx_GIVEREF(__pyx_t_1); @@ -8845,20 +8862,20 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_metadata(readstat_meta __pyx_v_dc->col_numpy_dtypes = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - /* "pyreadstat/_readstat_parser.pyx":436 + /* "pyreadstat/_readstat_parser.pyx":437 * dc.col_data_len = [obs_count] * var_count * dc.col_numpy_dtypes = [None] * var_count * dc.col_dytpes_isfloat = [0] * var_count # <<<<<<<<<<<<<< * dc.col_dtypes_isobject = [0] * var_count * */ - __pyx_t_1 = PyList_New(1 * ((__pyx_v_var_count<0) ? 0:__pyx_v_var_count)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 436, __pyx_L1_error) + __pyx_t_1 = PyList_New(1 * ((__pyx_v_var_count<0) ? 0:__pyx_v_var_count)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 437, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); { Py_ssize_t __pyx_temp; for (__pyx_temp=0; __pyx_temp < __pyx_v_var_count; __pyx_temp++) { __Pyx_INCREF(__pyx_mstate_global->__pyx_int_0); __Pyx_GIVEREF(__pyx_mstate_global->__pyx_int_0); - if (__Pyx_PyList_SET_ITEM(__pyx_t_1, __pyx_temp, __pyx_mstate_global->__pyx_int_0) != (0)) __PYX_ERR(0, 436, __pyx_L1_error); + if (__Pyx_PyList_SET_ITEM(__pyx_t_1, __pyx_temp, __pyx_mstate_global->__pyx_int_0) != (0)) __PYX_ERR(0, 437, __pyx_L1_error); } } __Pyx_GIVEREF(__pyx_t_1); @@ -8867,20 +8884,20 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_metadata(readstat_meta __pyx_v_dc->col_dytpes_isfloat = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - /* "pyreadstat/_readstat_parser.pyx":437 + /* "pyreadstat/_readstat_parser.pyx":438 * dc.col_numpy_dtypes = [None] * var_count * dc.col_dytpes_isfloat = [0] * var_count * dc.col_dtypes_isobject = [0] * var_count # <<<<<<<<<<<<<< * * # read other metadata */ - __pyx_t_1 = PyList_New(1 * ((__pyx_v_var_count<0) ? 0:__pyx_v_var_count)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 437, __pyx_L1_error) + __pyx_t_1 = PyList_New(1 * ((__pyx_v_var_count<0) ? 0:__pyx_v_var_count)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 438, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); { Py_ssize_t __pyx_temp; for (__pyx_temp=0; __pyx_temp < __pyx_v_var_count; __pyx_temp++) { __Pyx_INCREF(__pyx_mstate_global->__pyx_int_0); __Pyx_GIVEREF(__pyx_mstate_global->__pyx_int_0); - if (__Pyx_PyList_SET_ITEM(__pyx_t_1, __pyx_temp, __pyx_mstate_global->__pyx_int_0) != (0)) __PYX_ERR(0, 437, __pyx_L1_error); + if (__Pyx_PyList_SET_ITEM(__pyx_t_1, __pyx_temp, __pyx_mstate_global->__pyx_int_0) != (0)) __PYX_ERR(0, 438, __pyx_L1_error); } } __Pyx_GIVEREF(__pyx_t_1); @@ -8889,7 +8906,7 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_metadata(readstat_meta __pyx_v_dc->col_dtypes_isobject = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - /* "pyreadstat/_readstat_parser.pyx":440 + /* "pyreadstat/_readstat_parser.pyx":441 * * # read other metadata * flabel_orig = readstat_get_file_label(metadata); # <<<<<<<<<<<<<< @@ -8898,7 +8915,7 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_metadata(readstat_meta */ __pyx_v_flabel_orig = readstat_get_file_label(__pyx_v_metadata); - /* "pyreadstat/_readstat_parser.pyx":441 + /* "pyreadstat/_readstat_parser.pyx":442 * # read other metadata * flabel_orig = readstat_get_file_label(metadata); * fencoding_orig = readstat_get_file_encoding(metadata) # <<<<<<<<<<<<<< @@ -8907,7 +8924,7 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_metadata(readstat_meta */ __pyx_v_fencoding_orig = readstat_get_file_encoding(__pyx_v_metadata); - /* "pyreadstat/_readstat_parser.pyx":442 + /* "pyreadstat/_readstat_parser.pyx":443 * flabel_orig = readstat_get_file_label(metadata); * fencoding_orig = readstat_get_file_encoding(metadata) * if flabel_orig != NULL and flabel_orig[0]: # <<<<<<<<<<<<<< @@ -8925,14 +8942,14 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_metadata(readstat_meta __pyx_L11_bool_binop_done:; if (__pyx_t_2) { - /* "pyreadstat/_readstat_parser.pyx":443 + /* "pyreadstat/_readstat_parser.pyx":444 * fencoding_orig = readstat_get_file_encoding(metadata) * if flabel_orig != NULL and flabel_orig[0]: * flabel = flabel_orig # <<<<<<<<<<<<<< * else: * flabel = None */ - __pyx_t_1 = __Pyx_PyUnicode_FromString(__pyx_v_flabel_orig); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 443, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyUnicode_FromString(__pyx_v_flabel_orig); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 444, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_4 = __pyx_t_1; __Pyx_INCREF(__pyx_t_4); @@ -8940,7 +8957,7 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_metadata(readstat_meta __pyx_v_flabel = ((PyObject*)__pyx_t_4); __pyx_t_4 = 0; - /* "pyreadstat/_readstat_parser.pyx":442 + /* "pyreadstat/_readstat_parser.pyx":443 * flabel_orig = readstat_get_file_label(metadata); * fencoding_orig = readstat_get_file_encoding(metadata) * if flabel_orig != NULL and flabel_orig[0]: # <<<<<<<<<<<<<< @@ -8950,7 +8967,7 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_metadata(readstat_meta goto __pyx_L10; } - /* "pyreadstat/_readstat_parser.pyx":445 + /* "pyreadstat/_readstat_parser.pyx":446 * flabel = flabel_orig * else: * flabel = None # <<<<<<<<<<<<<< @@ -8963,7 +8980,7 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_metadata(readstat_meta } __pyx_L10:; - /* "pyreadstat/_readstat_parser.pyx":446 + /* "pyreadstat/_readstat_parser.pyx":447 * else: * flabel = None * if fencoding_orig != NULL and fencoding_orig[0]: # <<<<<<<<<<<<<< @@ -8981,14 +8998,14 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_metadata(readstat_meta __pyx_L14_bool_binop_done:; if (__pyx_t_2) { - /* "pyreadstat/_readstat_parser.pyx":447 + /* "pyreadstat/_readstat_parser.pyx":448 * flabel = None * if fencoding_orig != NULL and fencoding_orig[0]: * fencoding = fencoding_orig # <<<<<<<<<<<<<< * else: * fencoding = None */ - __pyx_t_4 = __Pyx_PyUnicode_FromString(__pyx_v_fencoding_orig); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 447, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyUnicode_FromString(__pyx_v_fencoding_orig); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 448, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_1 = __pyx_t_4; __Pyx_INCREF(__pyx_t_1); @@ -8996,7 +9013,7 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_metadata(readstat_meta __pyx_v_fencoding = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - /* "pyreadstat/_readstat_parser.pyx":446 + /* "pyreadstat/_readstat_parser.pyx":447 * else: * flabel = None * if fencoding_orig != NULL and fencoding_orig[0]: # <<<<<<<<<<<<<< @@ -9006,7 +9023,7 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_metadata(readstat_meta goto __pyx_L13; } - /* "pyreadstat/_readstat_parser.pyx":449 + /* "pyreadstat/_readstat_parser.pyx":450 * fencoding = fencoding_orig * else: * fencoding = None # <<<<<<<<<<<<<< @@ -9019,7 +9036,7 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_metadata(readstat_meta } __pyx_L13:; - /* "pyreadstat/_readstat_parser.pyx":451 + /* "pyreadstat/_readstat_parser.pyx":452 * fencoding = None * * dc.file_encoding = fencoding # <<<<<<<<<<<<<< @@ -9032,7 +9049,7 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_metadata(readstat_meta __Pyx_DECREF(__pyx_v_dc->file_encoding); __pyx_v_dc->file_encoding = __pyx_v_fencoding; - /* "pyreadstat/_readstat_parser.pyx":452 + /* "pyreadstat/_readstat_parser.pyx":453 * * dc.file_encoding = fencoding * dc.file_label = flabel # <<<<<<<<<<<<<< @@ -9045,7 +9062,7 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_metadata(readstat_meta __Pyx_DECREF(__pyx_v_dc->file_label); __pyx_v_dc->file_label = __pyx_v_flabel; - /* "pyreadstat/_readstat_parser.pyx":454 + /* "pyreadstat/_readstat_parser.pyx":455 * dc.file_label = flabel * * table = readstat_get_table_name(metadata) # <<<<<<<<<<<<<< @@ -9054,7 +9071,7 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_metadata(readstat_meta */ __pyx_v_table = readstat_get_table_name(__pyx_v_metadata); - /* "pyreadstat/_readstat_parser.pyx":455 + /* "pyreadstat/_readstat_parser.pyx":456 * * table = readstat_get_table_name(metadata) * if table != NULL and table[0]: # <<<<<<<<<<<<<< @@ -9072,14 +9089,14 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_metadata(readstat_meta __pyx_L17_bool_binop_done:; if (__pyx_t_2) { - /* "pyreadstat/_readstat_parser.pyx":456 + /* "pyreadstat/_readstat_parser.pyx":457 * table = readstat_get_table_name(metadata) * if table != NULL and table[0]: * dc.table_name = table # <<<<<<<<<<<<<< * * dc.ctime = readstat_get_creation_time(metadata) */ - __pyx_t_1 = __Pyx_PyUnicode_FromString(__pyx_v_table); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 456, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyUnicode_FromString(__pyx_v_table); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 457, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_4 = __pyx_t_1; __Pyx_INCREF(__pyx_t_4); @@ -9090,7 +9107,7 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_metadata(readstat_meta __pyx_v_dc->table_name = ((PyObject*)__pyx_t_4); __pyx_t_4 = 0; - /* "pyreadstat/_readstat_parser.pyx":455 + /* "pyreadstat/_readstat_parser.pyx":456 * * table = readstat_get_table_name(metadata) * if table != NULL and table[0]: # <<<<<<<<<<<<<< @@ -9099,7 +9116,7 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_metadata(readstat_meta */ } - /* "pyreadstat/_readstat_parser.pyx":458 + /* "pyreadstat/_readstat_parser.pyx":459 * dc.table_name = table * * dc.ctime = readstat_get_creation_time(metadata) # <<<<<<<<<<<<<< @@ -9108,7 +9125,7 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_metadata(readstat_meta */ __pyx_v_dc->ctime = readstat_get_creation_time(__pyx_v_metadata); - /* "pyreadstat/_readstat_parser.pyx":459 + /* "pyreadstat/_readstat_parser.pyx":460 * * dc.ctime = readstat_get_creation_time(metadata) * dc.mtime = readstat_get_modified_time(metadata) # <<<<<<<<<<<<<< @@ -9117,7 +9134,7 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_metadata(readstat_meta */ __pyx_v_dc->mtime = readstat_get_modified_time(__pyx_v_metadata); - /* "pyreadstat/_readstat_parser.pyx":461 + /* "pyreadstat/_readstat_parser.pyx":462 * dc.mtime = readstat_get_modified_time(metadata) * * return READSTAT_HANDLER_OK # <<<<<<<<<<<<<< @@ -9127,7 +9144,7 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_metadata(readstat_meta __pyx_r = READSTAT_HANDLER_OK; goto __pyx_L0; - /* "pyreadstat/_readstat_parser.pyx":377 + /* "pyreadstat/_readstat_parser.pyx":378 * * * cdef int handle_metadata(readstat_metadata_t *metadata, void *ctx) except READSTAT_HANDLER_ABORT: # <<<<<<<<<<<<<< @@ -9153,7 +9170,7 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_metadata(readstat_meta return __pyx_r; } -/* "pyreadstat/_readstat_parser.pyx":463 +/* "pyreadstat/_readstat_parser.pyx":464 * return READSTAT_HANDLER_OK * * cdef int handle_variable(int index, readstat_variable_t *variable, # <<<<<<<<<<<<<< @@ -9165,10 +9182,12 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_variable(int __pyx_v_i char const *__pyx_v_var_name; char const *__pyx_v_var_label; char const *__pyx_v_var_format; + char const *__pyx_v_var_informat; PyObject *__pyx_v_col_name = 0; PyObject *__pyx_v_col_label = 0; PyObject *__pyx_v_label_name = 0; PyObject *__pyx_v_col_format_original = 0; + PyObject *__pyx_v_col_informat_original = 0; PyObject *__pyx_v_output_format = 0; __pyx_t_10pyreadstat_16_readstat_parser_py_datetime_format __pyx_v_col_format_final; readstat_type_t __pyx_v_var_type; @@ -9216,7 +9235,7 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_variable(int __pyx_v_i int __pyx_clineno = 0; __Pyx_RefNannySetupContext("handle_variable", 0); - /* "pyreadstat/_readstat_parser.pyx":492 + /* "pyreadstat/_readstat_parser.pyx":494 * cdef int dupcolcnt * * cdef data_container dc = ctx # <<<<<<<<<<<<<< @@ -9228,7 +9247,7 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_variable(int __pyx_v_i __pyx_v_dc = ((struct __pyx_obj_10pyreadstat_16_readstat_parser_data_container *)__pyx_t_1); __pyx_t_1 = 0; - /* "pyreadstat/_readstat_parser.pyx":493 + /* "pyreadstat/_readstat_parser.pyx":495 * * cdef data_container dc = ctx * output_format = dc.output_format # <<<<<<<<<<<<<< @@ -9240,7 +9259,7 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_variable(int __pyx_v_i __pyx_v_output_format = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - /* "pyreadstat/_readstat_parser.pyx":496 + /* "pyreadstat/_readstat_parser.pyx":498 * * # get variable name, label, format and type and put into our data container * var_name = readstat_variable_get_name(variable) # <<<<<<<<<<<<<< @@ -9249,7 +9268,7 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_variable(int __pyx_v_i */ __pyx_v_var_name = readstat_variable_get_name(__pyx_v_variable); - /* "pyreadstat/_readstat_parser.pyx":497 + /* "pyreadstat/_readstat_parser.pyx":499 * # get variable name, label, format and type and put into our data container * var_name = readstat_variable_get_name(variable) * if var_name == NULL: # <<<<<<<<<<<<<< @@ -9259,7 +9278,7 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_variable(int __pyx_v_i __pyx_t_2 = (__pyx_v_var_name == NULL); if (__pyx_t_2) { - /* "pyreadstat/_readstat_parser.pyx":498 + /* "pyreadstat/_readstat_parser.pyx":500 * var_name = readstat_variable_get_name(variable) * if var_name == NULL: * col_name = None # <<<<<<<<<<<<<< @@ -9269,7 +9288,7 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_variable(int __pyx_v_i __Pyx_INCREF(Py_None); __pyx_v_col_name = ((PyObject*)Py_None); - /* "pyreadstat/_readstat_parser.pyx":497 + /* "pyreadstat/_readstat_parser.pyx":499 * # get variable name, label, format and type and put into our data container * var_name = readstat_variable_get_name(variable) * if var_name == NULL: # <<<<<<<<<<<<<< @@ -9279,7 +9298,7 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_variable(int __pyx_v_i goto __pyx_L3; } - /* "pyreadstat/_readstat_parser.pyx":500 + /* "pyreadstat/_readstat_parser.pyx":502 * col_name = None * else: * col_name = var_name # <<<<<<<<<<<<<< @@ -9287,7 +9306,7 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_variable(int __pyx_v_i * # if the user introduced a list of columns to include, continue only if the column is in the list */ /*else*/ { - __pyx_t_1 = __Pyx_PyUnicode_FromString(__pyx_v_var_name); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 500, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyUnicode_FromString(__pyx_v_var_name); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 502, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = __pyx_t_1; __Pyx_INCREF(__pyx_t_3); @@ -9297,7 +9316,7 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_variable(int __pyx_v_i } __pyx_L3:; - /* "pyreadstat/_readstat_parser.pyx":503 + /* "pyreadstat/_readstat_parser.pyx":505 * * # if the user introduced a list of columns to include, continue only if the column is in the list * if dc.filter_cols and not (col_name in dc.use_cols): # <<<<<<<<<<<<<< @@ -9309,12 +9328,12 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_variable(int __pyx_v_i __pyx_t_2 = __pyx_v_dc->filter_cols; goto __pyx_L5_bool_binop_done; } - __pyx_t_4 = (__Pyx_PySequence_ContainsTF(__pyx_v_col_name, __pyx_v_dc->use_cols, Py_NE)); if (unlikely((__pyx_t_4 < 0))) __PYX_ERR(0, 503, __pyx_L1_error) + __pyx_t_4 = (__Pyx_PySequence_ContainsTF(__pyx_v_col_name, __pyx_v_dc->use_cols, Py_NE)); if (unlikely((__pyx_t_4 < 0))) __PYX_ERR(0, 505, __pyx_L1_error) __pyx_t_2 = __pyx_t_4; __pyx_L5_bool_binop_done:; if (__pyx_t_2) { - /* "pyreadstat/_readstat_parser.pyx":504 + /* "pyreadstat/_readstat_parser.pyx":506 * # if the user introduced a list of columns to include, continue only if the column is in the list * if dc.filter_cols and not (col_name in dc.use_cols): * dc.n_vars -= 1 # <<<<<<<<<<<<<< @@ -9323,7 +9342,7 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_variable(int __pyx_v_i */ __pyx_v_dc->n_vars = (__pyx_v_dc->n_vars - 1); - /* "pyreadstat/_readstat_parser.pyx":505 + /* "pyreadstat/_readstat_parser.pyx":507 * if dc.filter_cols and not (col_name in dc.use_cols): * dc.n_vars -= 1 * return READSTAT_HANDLER_SKIP_VARIABLE # <<<<<<<<<<<<<< @@ -9333,7 +9352,7 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_variable(int __pyx_v_i __pyx_r = READSTAT_HANDLER_SKIP_VARIABLE; goto __pyx_L0; - /* "pyreadstat/_readstat_parser.pyx":503 + /* "pyreadstat/_readstat_parser.pyx":505 * * # if the user introduced a list of columns to include, continue only if the column is in the list * if dc.filter_cols and not (col_name in dc.use_cols): # <<<<<<<<<<<<<< @@ -9342,7 +9361,7 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_variable(int __pyx_v_i */ } - /* "pyreadstat/_readstat_parser.pyx":507 + /* "pyreadstat/_readstat_parser.pyx":509 * return READSTAT_HANDLER_SKIP_VARIABLE * * index = readstat_variable_get_index_after_skipping(variable) # <<<<<<<<<<<<<< @@ -9351,17 +9370,17 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_variable(int __pyx_v_i */ __pyx_v_index = readstat_variable_get_index_after_skipping(__pyx_v_variable); - /* "pyreadstat/_readstat_parser.pyx":509 + /* "pyreadstat/_readstat_parser.pyx":511 * index = readstat_variable_get_index_after_skipping(variable) * * if col_name in dc.col_names: # <<<<<<<<<<<<<< * dupcolcnt = 1 * while True: */ - __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_v_col_name, __pyx_v_dc->col_names, Py_EQ)); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 509, __pyx_L1_error) + __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_v_col_name, __pyx_v_dc->col_names, Py_EQ)); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 511, __pyx_L1_error) if (__pyx_t_2) { - /* "pyreadstat/_readstat_parser.pyx":510 + /* "pyreadstat/_readstat_parser.pyx":512 * * if col_name in dc.col_names: * dupcolcnt = 1 # <<<<<<<<<<<<<< @@ -9370,7 +9389,7 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_variable(int __pyx_v_i */ __pyx_v_dupcolcnt = 1; - /* "pyreadstat/_readstat_parser.pyx":511 + /* "pyreadstat/_readstat_parser.pyx":513 * if col_name in dc.col_names: * dupcolcnt = 1 * while True: # <<<<<<<<<<<<<< @@ -9379,28 +9398,28 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_variable(int __pyx_v_i */ while (1) { - /* "pyreadstat/_readstat_parser.pyx":512 + /* "pyreadstat/_readstat_parser.pyx":514 * dupcolcnt = 1 * while True: * newcolname = col_name + "_duplicated" + str(dupcolcnt) # <<<<<<<<<<<<<< * if newcolname in col_name: * dupcolcnt += 1 */ - __pyx_t_3 = __Pyx_PyUnicode_ConcatSafe(__pyx_v_col_name, __pyx_mstate_global->__pyx_n_u_duplicated); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 512, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyUnicode_ConcatSafe(__pyx_v_col_name, __pyx_mstate_global->__pyx_n_u_duplicated); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 514, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_dupcolcnt); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 512, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_dupcolcnt); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 514, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_5 = __Pyx_PyObject_Unicode(__pyx_t_1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 512, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyObject_Unicode(__pyx_t_1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 514, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = __Pyx_PyUnicode_Concat__Pyx_ReferenceSharing_OwnStrongReferenceInPlace(__pyx_t_3, __pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 512, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyUnicode_Concat__Pyx_ReferenceSharing_OwnStrongReferenceInPlace(__pyx_t_3, __pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 514, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_XDECREF_SET(__pyx_v_newcolname, ((PyObject*)__pyx_t_1)); __pyx_t_1 = 0; - /* "pyreadstat/_readstat_parser.pyx":513 + /* "pyreadstat/_readstat_parser.pyx":515 * while True: * newcolname = col_name + "_duplicated" + str(dupcolcnt) * if newcolname in col_name: # <<<<<<<<<<<<<< @@ -9409,12 +9428,12 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_variable(int __pyx_v_i */ if (unlikely(__pyx_v_col_name == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable"); - __PYX_ERR(0, 513, __pyx_L1_error) + __PYX_ERR(0, 515, __pyx_L1_error) } - __pyx_t_2 = (__Pyx_PyUnicode_ContainsTF(__pyx_v_newcolname, __pyx_v_col_name, Py_EQ)); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 513, __pyx_L1_error) + __pyx_t_2 = (__Pyx_PyUnicode_ContainsTF(__pyx_v_newcolname, __pyx_v_col_name, Py_EQ)); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 515, __pyx_L1_error) if (__pyx_t_2) { - /* "pyreadstat/_readstat_parser.pyx":514 + /* "pyreadstat/_readstat_parser.pyx":516 * newcolname = col_name + "_duplicated" + str(dupcolcnt) * if newcolname in col_name: * dupcolcnt += 1 # <<<<<<<<<<<<<< @@ -9423,7 +9442,7 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_variable(int __pyx_v_i */ __pyx_v_dupcolcnt = (__pyx_v_dupcolcnt + 1); - /* "pyreadstat/_readstat_parser.pyx":515 + /* "pyreadstat/_readstat_parser.pyx":517 * if newcolname in col_name: * dupcolcnt += 1 * continue # <<<<<<<<<<<<<< @@ -9432,7 +9451,7 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_variable(int __pyx_v_i */ goto __pyx_L8_continue; - /* "pyreadstat/_readstat_parser.pyx":513 + /* "pyreadstat/_readstat_parser.pyx":515 * while True: * newcolname = col_name + "_duplicated" + str(dupcolcnt) * if newcolname in col_name: # <<<<<<<<<<<<<< @@ -9441,7 +9460,7 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_variable(int __pyx_v_i */ } - /* "pyreadstat/_readstat_parser.pyx":517 + /* "pyreadstat/_readstat_parser.pyx":519 * continue * else: * msg = "column '{0}' is duplicated, renamed to '{1}'".format(col_name, newcolname) # <<<<<<<<<<<<<< @@ -9456,13 +9475,13 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_variable(int __pyx_v_i PyObject *__pyx_callargs[3] = {__pyx_t_5, __pyx_v_col_name, __pyx_v_newcolname}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_format, __pyx_callargs+__pyx_t_6, (3-__pyx_t_6) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 517, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 519, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } __pyx_v_msg = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - /* "pyreadstat/_readstat_parser.pyx":518 + /* "pyreadstat/_readstat_parser.pyx":520 * else: * msg = "column '{0}' is duplicated, renamed to '{1}'".format(col_name, newcolname) * warnings.warn(msg) # <<<<<<<<<<<<<< @@ -9470,9 +9489,9 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_variable(int __pyx_v_i * break */ __pyx_t_5 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_warnings); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 518, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_warnings); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 520, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_warn); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 518, __pyx_L1_error) + __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_warn); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 520, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_6 = 1; @@ -9492,12 +9511,12 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_variable(int __pyx_v_i __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_7, __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 518, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 520, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "pyreadstat/_readstat_parser.pyx":519 + /* "pyreadstat/_readstat_parser.pyx":521 * msg = "column '{0}' is duplicated, renamed to '{1}'".format(col_name, newcolname) * warnings.warn(msg) * col_name = newcolname # <<<<<<<<<<<<<< @@ -9507,7 +9526,7 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_variable(int __pyx_v_i __Pyx_INCREF(__pyx_v_newcolname); __Pyx_DECREF_SET(__pyx_v_col_name, __pyx_v_newcolname); - /* "pyreadstat/_readstat_parser.pyx":520 + /* "pyreadstat/_readstat_parser.pyx":522 * warnings.warn(msg) * col_name = newcolname * break # <<<<<<<<<<<<<< @@ -9520,7 +9539,7 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_variable(int __pyx_v_i } __pyx_L9_break:; - /* "pyreadstat/_readstat_parser.pyx":509 + /* "pyreadstat/_readstat_parser.pyx":511 * index = readstat_variable_get_index_after_skipping(variable) * * if col_name in dc.col_names: # <<<<<<<<<<<<<< @@ -9529,7 +9548,7 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_variable(int __pyx_v_i */ } - /* "pyreadstat/_readstat_parser.pyx":522 + /* "pyreadstat/_readstat_parser.pyx":524 * break * * dc.col_names.append(col_name) # <<<<<<<<<<<<<< @@ -9538,11 +9557,11 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_variable(int __pyx_v_i */ if (unlikely(__pyx_v_dc->col_names == Py_None)) { PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "append"); - __PYX_ERR(0, 522, __pyx_L1_error) + __PYX_ERR(0, 524, __pyx_L1_error) } - __pyx_t_8 = __Pyx_PyList_Append(__pyx_v_dc->col_names, __pyx_v_col_name); if (unlikely(__pyx_t_8 == ((int)-1))) __PYX_ERR(0, 522, __pyx_L1_error) + __pyx_t_8 = __Pyx_PyList_Append(__pyx_v_dc->col_names, __pyx_v_col_name); if (unlikely(__pyx_t_8 == ((int)-1))) __PYX_ERR(0, 524, __pyx_L1_error) - /* "pyreadstat/_readstat_parser.pyx":525 + /* "pyreadstat/_readstat_parser.pyx":527 * * # the name of the value label for the variable * if val_labels != NULL: # <<<<<<<<<<<<<< @@ -9552,14 +9571,14 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_variable(int __pyx_v_i __pyx_t_2 = (__pyx_v_val_labels != NULL); if (__pyx_t_2) { - /* "pyreadstat/_readstat_parser.pyx":526 + /* "pyreadstat/_readstat_parser.pyx":528 * # the name of the value label for the variable * if val_labels != NULL: * label_name = val_labels # <<<<<<<<<<<<<< * if label_name: * dc.label_to_var_name[col_name] = label_name */ - __pyx_t_1 = __Pyx_PyUnicode_FromString(__pyx_v_val_labels); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 526, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyUnicode_FromString(__pyx_v_val_labels); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 528, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_7 = __pyx_t_1; __Pyx_INCREF(__pyx_t_7); @@ -9567,7 +9586,7 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_variable(int __pyx_v_i __pyx_v_label_name = ((PyObject*)__pyx_t_7); __pyx_t_7 = 0; - /* "pyreadstat/_readstat_parser.pyx":527 + /* "pyreadstat/_readstat_parser.pyx":529 * if val_labels != NULL: * label_name = val_labels * if label_name: # <<<<<<<<<<<<<< @@ -9578,22 +9597,22 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_variable(int __pyx_v_i else { Py_ssize_t __pyx_temp = __Pyx_PyUnicode_IS_TRUE(__pyx_v_label_name); - if (unlikely(((!CYTHON_ASSUME_SAFE_SIZE) && __pyx_temp < 0))) __PYX_ERR(0, 527, __pyx_L1_error) + if (unlikely(((!CYTHON_ASSUME_SAFE_SIZE) && __pyx_temp < 0))) __PYX_ERR(0, 529, __pyx_L1_error) __pyx_t_2 = (__pyx_temp != 0); } if (__pyx_t_2) { - /* "pyreadstat/_readstat_parser.pyx":528 + /* "pyreadstat/_readstat_parser.pyx":530 * label_name = val_labels * if label_name: * dc.label_to_var_name[col_name] = label_name # <<<<<<<<<<<<<< * * var_label = readstat_variable_get_label(variable) */ - if (unlikely((PyObject_SetItem(__pyx_v_dc->label_to_var_name, __pyx_v_col_name, __pyx_v_label_name) < 0))) __PYX_ERR(0, 528, __pyx_L1_error) + if (unlikely((PyObject_SetItem(__pyx_v_dc->label_to_var_name, __pyx_v_col_name, __pyx_v_label_name) < 0))) __PYX_ERR(0, 530, __pyx_L1_error) - /* "pyreadstat/_readstat_parser.pyx":527 + /* "pyreadstat/_readstat_parser.pyx":529 * if val_labels != NULL: * label_name = val_labels * if label_name: # <<<<<<<<<<<<<< @@ -9602,7 +9621,7 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_variable(int __pyx_v_i */ } - /* "pyreadstat/_readstat_parser.pyx":525 + /* "pyreadstat/_readstat_parser.pyx":527 * * # the name of the value label for the variable * if val_labels != NULL: # <<<<<<<<<<<<<< @@ -9611,7 +9630,7 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_variable(int __pyx_v_i */ } - /* "pyreadstat/_readstat_parser.pyx":530 + /* "pyreadstat/_readstat_parser.pyx":532 * dc.label_to_var_name[col_name] = label_name * * var_label = readstat_variable_get_label(variable) # <<<<<<<<<<<<<< @@ -9620,7 +9639,7 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_variable(int __pyx_v_i */ __pyx_v_var_label = readstat_variable_get_label(__pyx_v_variable); - /* "pyreadstat/_readstat_parser.pyx":531 + /* "pyreadstat/_readstat_parser.pyx":533 * * var_label = readstat_variable_get_label(variable) * if var_label == NULL: # <<<<<<<<<<<<<< @@ -9630,7 +9649,7 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_variable(int __pyx_v_i __pyx_t_2 = (__pyx_v_var_label == NULL); if (__pyx_t_2) { - /* "pyreadstat/_readstat_parser.pyx":532 + /* "pyreadstat/_readstat_parser.pyx":534 * var_label = readstat_variable_get_label(variable) * if var_label == NULL: * col_label = None # <<<<<<<<<<<<<< @@ -9640,7 +9659,7 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_variable(int __pyx_v_i __Pyx_INCREF(Py_None); __pyx_v_col_label = ((PyObject*)Py_None); - /* "pyreadstat/_readstat_parser.pyx":531 + /* "pyreadstat/_readstat_parser.pyx":533 * * var_label = readstat_variable_get_label(variable) * if var_label == NULL: # <<<<<<<<<<<<<< @@ -9650,7 +9669,7 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_variable(int __pyx_v_i goto __pyx_L13; } - /* "pyreadstat/_readstat_parser.pyx":534 + /* "pyreadstat/_readstat_parser.pyx":536 * col_label = None * else: * col_label = var_label # <<<<<<<<<<<<<< @@ -9658,7 +9677,7 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_variable(int __pyx_v_i * */ /*else*/ { - __pyx_t_7 = __Pyx_PyUnicode_FromString(__pyx_v_var_label); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 534, __pyx_L1_error) + __pyx_t_7 = __Pyx_PyUnicode_FromString(__pyx_v_var_label); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 536, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_1 = __pyx_t_7; __Pyx_INCREF(__pyx_t_1); @@ -9668,7 +9687,7 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_variable(int __pyx_v_i } __pyx_L13:; - /* "pyreadstat/_readstat_parser.pyx":535 + /* "pyreadstat/_readstat_parser.pyx":537 * else: * col_label = var_label * dc.col_labels.append(col_label) # <<<<<<<<<<<<<< @@ -9677,11 +9696,11 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_variable(int __pyx_v_i */ if (unlikely(__pyx_v_dc->col_labels == Py_None)) { PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "append"); - __PYX_ERR(0, 535, __pyx_L1_error) + __PYX_ERR(0, 537, __pyx_L1_error) } - __pyx_t_8 = __Pyx_PyList_Append(__pyx_v_dc->col_labels, __pyx_v_col_label); if (unlikely(__pyx_t_8 == ((int)-1))) __PYX_ERR(0, 535, __pyx_L1_error) + __pyx_t_8 = __Pyx_PyList_Append(__pyx_v_dc->col_labels, __pyx_v_col_label); if (unlikely(__pyx_t_8 == ((int)-1))) __PYX_ERR(0, 537, __pyx_L1_error) - /* "pyreadstat/_readstat_parser.pyx":538 + /* "pyreadstat/_readstat_parser.pyx":540 * * # format, we have to transform it in something more usable * var_format = readstat_variable_get_format(variable) # <<<<<<<<<<<<<< @@ -9690,7 +9709,7 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_variable(int __pyx_v_i */ __pyx_v_var_format = readstat_variable_get_format(__pyx_v_variable); - /* "pyreadstat/_readstat_parser.pyx":539 + /* "pyreadstat/_readstat_parser.pyx":541 * # format, we have to transform it in something more usable * var_format = readstat_variable_get_format(variable) * if var_format == NULL: # <<<<<<<<<<<<<< @@ -9700,79 +9719,149 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_variable(int __pyx_v_i __pyx_t_2 = (__pyx_v_var_format == NULL); if (__pyx_t_2) { - /* "pyreadstat/_readstat_parser.pyx":541 - * if var_format == NULL: - * #col_format_original = "NULL" - * col_format_original = None # <<<<<<<<<<<<<< + /* "pyreadstat/_readstat_parser.pyx":543 + * if var_format == NULL: + * #col_format_original = "NULL" + * col_format_original = None # <<<<<<<<<<<<<< + * else: + * col_format_original = var_format +*/ + __Pyx_INCREF(Py_None); + __pyx_v_col_format_original = ((PyObject*)Py_None); + + /* "pyreadstat/_readstat_parser.pyx":541 + * # format, we have to transform it in something more usable + * var_format = readstat_variable_get_format(variable) + * if var_format == NULL: # <<<<<<<<<<<<<< + * #col_format_original = "NULL" + * col_format_original = None +*/ + goto __pyx_L14; + } + + /* "pyreadstat/_readstat_parser.pyx":545 + * col_format_original = None + * else: + * col_format_original = var_format # <<<<<<<<<<<<<< + * # informat (SAS) + * var_informat = readstat_variable_get_informat(variable) +*/ + /*else*/ { + __pyx_t_1 = __Pyx_PyUnicode_FromString(__pyx_v_var_format); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 545, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_7 = __pyx_t_1; + __Pyx_INCREF(__pyx_t_7); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_v_col_format_original = ((PyObject*)__pyx_t_7); + __pyx_t_7 = 0; + } + __pyx_L14:; + + /* "pyreadstat/_readstat_parser.pyx":547 + * col_format_original = var_format + * # informat (SAS) + * var_informat = readstat_variable_get_informat(variable) # <<<<<<<<<<<<<< + * if var_informat == NULL: + * col_informat_original = None +*/ + __pyx_v_var_informat = readstat_variable_get_informat(__pyx_v_variable); + + /* "pyreadstat/_readstat_parser.pyx":548 + * # informat (SAS) + * var_informat = readstat_variable_get_informat(variable) + * if var_informat == NULL: # <<<<<<<<<<<<<< + * col_informat_original = None + * else: +*/ + __pyx_t_2 = (__pyx_v_var_informat == NULL); + if (__pyx_t_2) { + + /* "pyreadstat/_readstat_parser.pyx":549 + * var_informat = readstat_variable_get_informat(variable) + * if var_informat == NULL: + * col_informat_original = None # <<<<<<<<<<<<<< * else: - * col_format_original = var_format + * col_informat_original = var_informat */ __Pyx_INCREF(Py_None); - __pyx_v_col_format_original = ((PyObject*)Py_None); + __pyx_v_col_informat_original = ((PyObject*)Py_None); - /* "pyreadstat/_readstat_parser.pyx":539 - * # format, we have to transform it in something more usable - * var_format = readstat_variable_get_format(variable) - * if var_format == NULL: # <<<<<<<<<<<<<< - * #col_format_original = "NULL" - * col_format_original = None + /* "pyreadstat/_readstat_parser.pyx":548 + * # informat (SAS) + * var_informat = readstat_variable_get_informat(variable) + * if var_informat == NULL: # <<<<<<<<<<<<<< + * col_informat_original = None + * else: */ - goto __pyx_L14; + goto __pyx_L15; } - /* "pyreadstat/_readstat_parser.pyx":543 - * col_format_original = None + /* "pyreadstat/_readstat_parser.pyx":551 + * col_informat_original = None * else: - * col_format_original = var_format # <<<<<<<<<<<<<< + * col_informat_original = var_informat # <<<<<<<<<<<<<< * file_format = dc.file_format * dc.col_formats_original.append(col_format_original) */ /*else*/ { - __pyx_t_1 = __Pyx_PyUnicode_FromString(__pyx_v_var_format); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 543, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_7 = __pyx_t_1; - __Pyx_INCREF(__pyx_t_7); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_v_col_format_original = ((PyObject*)__pyx_t_7); - __pyx_t_7 = 0; + __pyx_t_7 = __Pyx_PyUnicode_FromString(__pyx_v_var_informat); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 551, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_t_1 = __pyx_t_7; + __Pyx_INCREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __pyx_v_col_informat_original = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; } - __pyx_L14:; + __pyx_L15:; - /* "pyreadstat/_readstat_parser.pyx":544 + /* "pyreadstat/_readstat_parser.pyx":552 * else: - * col_format_original = var_format + * col_informat_original = var_informat * file_format = dc.file_format # <<<<<<<<<<<<<< * dc.col_formats_original.append(col_format_original) - * col_format_final = transform_variable_format(col_format_original, file_format) + * dc.col_informats_original.append(col_informat_original) */ __pyx_t_9 = __pyx_v_dc->file_format; __pyx_v_file_format = __pyx_t_9; - /* "pyreadstat/_readstat_parser.pyx":545 - * col_format_original = var_format + /* "pyreadstat/_readstat_parser.pyx":553 + * col_informat_original = var_informat * file_format = dc.file_format * dc.col_formats_original.append(col_format_original) # <<<<<<<<<<<<<< + * dc.col_informats_original.append(col_informat_original) * col_format_final = transform_variable_format(col_format_original, file_format) - * dc.col_formats.append(col_format_final) */ if (unlikely(__pyx_v_dc->col_formats_original == Py_None)) { PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "append"); - __PYX_ERR(0, 545, __pyx_L1_error) + __PYX_ERR(0, 553, __pyx_L1_error) } - __pyx_t_8 = __Pyx_PyList_Append(__pyx_v_dc->col_formats_original, __pyx_v_col_format_original); if (unlikely(__pyx_t_8 == ((int)-1))) __PYX_ERR(0, 545, __pyx_L1_error) + __pyx_t_8 = __Pyx_PyList_Append(__pyx_v_dc->col_formats_original, __pyx_v_col_format_original); if (unlikely(__pyx_t_8 == ((int)-1))) __PYX_ERR(0, 553, __pyx_L1_error) - /* "pyreadstat/_readstat_parser.pyx":546 + /* "pyreadstat/_readstat_parser.pyx":554 * file_format = dc.file_format * dc.col_formats_original.append(col_format_original) + * dc.col_informats_original.append(col_informat_original) # <<<<<<<<<<<<<< + * col_format_final = transform_variable_format(col_format_original, file_format) + * dc.col_formats.append(col_format_final) +*/ + if (unlikely(__pyx_v_dc->col_informats_original == Py_None)) { + PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "append"); + __PYX_ERR(0, 554, __pyx_L1_error) + } + __pyx_t_8 = __Pyx_PyList_Append(__pyx_v_dc->col_informats_original, __pyx_v_col_informat_original); if (unlikely(__pyx_t_8 == ((int)-1))) __PYX_ERR(0, 554, __pyx_L1_error) + + /* "pyreadstat/_readstat_parser.pyx":555 + * dc.col_formats_original.append(col_format_original) + * dc.col_informats_original.append(col_informat_original) * col_format_final = transform_variable_format(col_format_original, file_format) # <<<<<<<<<<<<<< * dc.col_formats.append(col_format_final) * # readstat type */ - __pyx_t_10 = __pyx_f_10pyreadstat_16_readstat_parser_transform_variable_format(__pyx_v_col_format_original, __pyx_v_file_format); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 546, __pyx_L1_error) + __pyx_t_10 = __pyx_f_10pyreadstat_16_readstat_parser_transform_variable_format(__pyx_v_col_format_original, __pyx_v_file_format); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 555, __pyx_L1_error) __pyx_v_col_format_final = __pyx_t_10; - /* "pyreadstat/_readstat_parser.pyx":547 - * dc.col_formats_original.append(col_format_original) + /* "pyreadstat/_readstat_parser.pyx":556 + * dc.col_informats_original.append(col_informat_original) * col_format_final = transform_variable_format(col_format_original, file_format) * dc.col_formats.append(col_format_final) # <<<<<<<<<<<<<< * # readstat type @@ -9780,14 +9869,14 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_variable(int __pyx_v_i */ if (unlikely(__pyx_v_dc->col_formats == Py_None)) { PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "append"); - __PYX_ERR(0, 547, __pyx_L1_error) + __PYX_ERR(0, 556, __pyx_L1_error) } - __pyx_t_7 = __Pyx_PyLong_From___pyx_t_10pyreadstat_16_readstat_parser_py_datetime_format(__pyx_v_col_format_final); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 547, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - __pyx_t_8 = __Pyx_PyList_Append(__pyx_v_dc->col_formats, __pyx_t_7); if (unlikely(__pyx_t_8 == ((int)-1))) __PYX_ERR(0, 547, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __pyx_t_1 = __Pyx_PyLong_From___pyx_t_10pyreadstat_16_readstat_parser_py_datetime_format(__pyx_v_col_format_final); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 556, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_8 = __Pyx_PyList_Append(__pyx_v_dc->col_formats, __pyx_t_1); if (unlikely(__pyx_t_8 == ((int)-1))) __PYX_ERR(0, 556, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "pyreadstat/_readstat_parser.pyx":549 + /* "pyreadstat/_readstat_parser.pyx":558 * dc.col_formats.append(col_format_final) * # readstat type * var_type = readstat_variable_get_type(variable) # <<<<<<<<<<<<<< @@ -9796,7 +9885,7 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_variable(int __pyx_v_i */ __pyx_v_var_type = readstat_variable_get_type(__pyx_v_variable); - /* "pyreadstat/_readstat_parser.pyx":550 + /* "pyreadstat/_readstat_parser.pyx":559 * # readstat type * var_type = readstat_variable_get_type(variable) * dc.col_dtypes.append(var_type) # <<<<<<<<<<<<<< @@ -9805,14 +9894,14 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_variable(int __pyx_v_i */ if (unlikely(__pyx_v_dc->col_dtypes == Py_None)) { PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "append"); - __PYX_ERR(0, 550, __pyx_L1_error) + __PYX_ERR(0, 559, __pyx_L1_error) } - __pyx_t_7 = __Pyx_PyLong_From_readstat_type_t(__pyx_v_var_type); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 550, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - __pyx_t_8 = __Pyx_PyList_Append(__pyx_v_dc->col_dtypes, __pyx_t_7); if (unlikely(__pyx_t_8 == ((int)-1))) __PYX_ERR(0, 550, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __pyx_t_1 = __Pyx_PyLong_From_readstat_type_t(__pyx_v_var_type); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 559, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_8 = __Pyx_PyList_Append(__pyx_v_dc->col_dtypes, __pyx_t_1); if (unlikely(__pyx_t_8 == ((int)-1))) __PYX_ERR(0, 559, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "pyreadstat/_readstat_parser.pyx":553 + /* "pyreadstat/_readstat_parser.pyx":562 * # equivalent numpy type * # if it's a date then we need object * if col_format_final != DATE_FORMAT_NOTADATE and dc.no_datetime_conversion == 0: # <<<<<<<<<<<<<< @@ -9823,14 +9912,14 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_variable(int __pyx_v_i if (__pyx_t_4) { } else { __pyx_t_2 = __pyx_t_4; - goto __pyx_L16_bool_binop_done; + goto __pyx_L17_bool_binop_done; } __pyx_t_4 = (__pyx_v_dc->no_datetime_conversion == 0); __pyx_t_2 = __pyx_t_4; - __pyx_L16_bool_binop_done:; + __pyx_L17_bool_binop_done:; if (__pyx_t_2) { - /* "pyreadstat/_readstat_parser.pyx":554 + /* "pyreadstat/_readstat_parser.pyx":563 * # if it's a date then we need object * if col_format_final != DATE_FORMAT_NOTADATE and dc.no_datetime_conversion == 0: * curnptype = object # <<<<<<<<<<<<<< @@ -9840,17 +9929,17 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_variable(int __pyx_v_i __Pyx_INCREF(__pyx_builtin_object); __pyx_v_curnptype = __pyx_builtin_object; - /* "pyreadstat/_readstat_parser.pyx":553 + /* "pyreadstat/_readstat_parser.pyx":562 * # equivalent numpy type * # if it's a date then we need object * if col_format_final != DATE_FORMAT_NOTADATE and dc.no_datetime_conversion == 0: # <<<<<<<<<<<<<< * curnptype = object * else: */ - goto __pyx_L15; + goto __pyx_L16; } - /* "pyreadstat/_readstat_parser.pyx":556 + /* "pyreadstat/_readstat_parser.pyx":565 * curnptype = object * else: * curnptype = readstat_to_numpy_types[var_type] # <<<<<<<<<<<<<< @@ -9860,19 +9949,19 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_variable(int __pyx_v_i /*else*/ { if (unlikely(__pyx_v_10pyreadstat_16_readstat_parser_readstat_to_numpy_types == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 556, __pyx_L1_error) + __PYX_ERR(0, 565, __pyx_L1_error) } - __pyx_t_7 = __Pyx_PyLong_From_readstat_type_t(__pyx_v_var_type); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 556, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - __pyx_t_1 = __Pyx_PyDict_GetItem(__pyx_v_10pyreadstat_16_readstat_parser_readstat_to_numpy_types, __pyx_t_7); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 556, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyLong_From_readstat_type_t(__pyx_v_var_type); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 565, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __pyx_v_curnptype = __pyx_t_1; - __pyx_t_1 = 0; + __pyx_t_7 = __Pyx_PyDict_GetItem(__pyx_v_10pyreadstat_16_readstat_parser_readstat_to_numpy_types, __pyx_t_1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 565, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_v_curnptype = __pyx_t_7; + __pyx_t_7 = 0; } - __pyx_L15:; + __pyx_L16:; - /* "pyreadstat/_readstat_parser.pyx":557 + /* "pyreadstat/_readstat_parser.pyx":566 * else: * curnptype = readstat_to_numpy_types[var_type] * iscurnptypefloat = 0 # <<<<<<<<<<<<<< @@ -9881,7 +9970,7 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_variable(int __pyx_v_i */ __pyx_v_iscurnptypefloat = 0; - /* "pyreadstat/_readstat_parser.pyx":558 + /* "pyreadstat/_readstat_parser.pyx":567 * curnptype = readstat_to_numpy_types[var_type] * iscurnptypefloat = 0 * iscurnptypeobject = 0 # <<<<<<<<<<<<<< @@ -9890,7 +9979,7 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_variable(int __pyx_v_i */ __pyx_v_iscurnptypeobject = 0; - /* "pyreadstat/_readstat_parser.pyx":560 + /* "pyreadstat/_readstat_parser.pyx":569 * iscurnptypeobject = 0 * # book keeping numpy types * dc.col_numpy_dtypes[index] = curnptype # <<<<<<<<<<<<<< @@ -9899,23 +9988,23 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_variable(int __pyx_v_i */ if (unlikely(__pyx_v_dc->col_numpy_dtypes == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 560, __pyx_L1_error) + __PYX_ERR(0, 569, __pyx_L1_error) } - if (unlikely((__Pyx_SetItemInt(__pyx_v_dc->col_numpy_dtypes, __pyx_v_index, __pyx_v_curnptype, int, 1, __Pyx_PyLong_From_int, 1, 1, 1, 1, __Pyx_ReferenceSharing_SharedReference) < 0))) __PYX_ERR(0, 560, __pyx_L1_error) + if (unlikely((__Pyx_SetItemInt(__pyx_v_dc->col_numpy_dtypes, __pyx_v_index, __pyx_v_curnptype, int, 1, __Pyx_PyLong_From_int, 1, 1, 1, 1, __Pyx_ReferenceSharing_SharedReference) < 0))) __PYX_ERR(0, 569, __pyx_L1_error) - /* "pyreadstat/_readstat_parser.pyx":561 + /* "pyreadstat/_readstat_parser.pyx":570 * # book keeping numpy types * dc.col_numpy_dtypes[index] = curnptype * if curnptype == object: # <<<<<<<<<<<<<< * iscurnptypeobject = 1 * if curnptype == np.float64: */ - __pyx_t_1 = PyObject_RichCompare(__pyx_v_curnptype, __pyx_builtin_object, Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 561, __pyx_L1_error) - __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 561, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_7 = PyObject_RichCompare(__pyx_v_curnptype, __pyx_builtin_object, Py_EQ); __Pyx_XGOTREF(__pyx_t_7); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 570, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 570, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; if (__pyx_t_2) { - /* "pyreadstat/_readstat_parser.pyx":562 + /* "pyreadstat/_readstat_parser.pyx":571 * dc.col_numpy_dtypes[index] = curnptype * if curnptype == object: * iscurnptypeobject = 1 # <<<<<<<<<<<<<< @@ -9924,7 +10013,7 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_variable(int __pyx_v_i */ __pyx_v_iscurnptypeobject = 1; - /* "pyreadstat/_readstat_parser.pyx":561 + /* "pyreadstat/_readstat_parser.pyx":570 * # book keeping numpy types * dc.col_numpy_dtypes[index] = curnptype * if curnptype == object: # <<<<<<<<<<<<<< @@ -9933,25 +10022,25 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_variable(int __pyx_v_i */ } - /* "pyreadstat/_readstat_parser.pyx":563 + /* "pyreadstat/_readstat_parser.pyx":572 * if curnptype == object: * iscurnptypeobject = 1 * if curnptype == np.float64: # <<<<<<<<<<<<<< * iscurnptypefloat = 1 * dc.col_dtypes_isobject[index] = iscurnptypeobject */ - __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 563, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_float64); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 563, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_mstate_global->__pyx_n_u_np); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 572, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyObject_RichCompare(__pyx_v_curnptype, __pyx_t_7, Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 563, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_mstate_global->__pyx_n_u_float64); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 572, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 563, __pyx_L1_error) + __pyx_t_7 = PyObject_RichCompare(__pyx_v_curnptype, __pyx_t_1, Py_EQ); __Pyx_XGOTREF(__pyx_t_7); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 572, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 572, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; if (__pyx_t_2) { - /* "pyreadstat/_readstat_parser.pyx":564 + /* "pyreadstat/_readstat_parser.pyx":573 * iscurnptypeobject = 1 * if curnptype == np.float64: * iscurnptypefloat = 1 # <<<<<<<<<<<<<< @@ -9960,7 +10049,7 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_variable(int __pyx_v_i */ __pyx_v_iscurnptypefloat = 1; - /* "pyreadstat/_readstat_parser.pyx":563 + /* "pyreadstat/_readstat_parser.pyx":572 * if curnptype == object: * iscurnptypeobject = 1 * if curnptype == np.float64: # <<<<<<<<<<<<<< @@ -9969,39 +10058,39 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_variable(int __pyx_v_i */ } - /* "pyreadstat/_readstat_parser.pyx":565 + /* "pyreadstat/_readstat_parser.pyx":574 * if curnptype == np.float64: * iscurnptypefloat = 1 * dc.col_dtypes_isobject[index] = iscurnptypeobject # <<<<<<<<<<<<<< * dc.col_dytpes_isfloat[index] = iscurnptypefloat * metaonly = dc.metaonly */ - __pyx_t_1 = __Pyx_PyBool_FromLong(__pyx_v_iscurnptypeobject); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 565, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); + __pyx_t_7 = __Pyx_PyBool_FromLong(__pyx_v_iscurnptypeobject); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 574, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); if (unlikely(__pyx_v_dc->col_dtypes_isobject == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 565, __pyx_L1_error) + __PYX_ERR(0, 574, __pyx_L1_error) } - if (unlikely((__Pyx_SetItemInt(__pyx_v_dc->col_dtypes_isobject, __pyx_v_index, __pyx_t_1, int, 1, __Pyx_PyLong_From_int, 1, 1, 1, 1, __Pyx_ReferenceSharing_SharedReference) < 0))) __PYX_ERR(0, 565, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely((__Pyx_SetItemInt(__pyx_v_dc->col_dtypes_isobject, __pyx_v_index, __pyx_t_7, int, 1, __Pyx_PyLong_From_int, 1, 1, 1, 1, __Pyx_ReferenceSharing_SharedReference) < 0))) __PYX_ERR(0, 574, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - /* "pyreadstat/_readstat_parser.pyx":566 + /* "pyreadstat/_readstat_parser.pyx":575 * iscurnptypefloat = 1 * dc.col_dtypes_isobject[index] = iscurnptypeobject * dc.col_dytpes_isfloat[index] = iscurnptypefloat # <<<<<<<<<<<<<< * metaonly = dc.metaonly * # pre-allocate data */ - __pyx_t_1 = __Pyx_PyBool_FromLong(__pyx_v_iscurnptypefloat); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 566, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); + __pyx_t_7 = __Pyx_PyBool_FromLong(__pyx_v_iscurnptypefloat); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 575, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); if (unlikely(__pyx_v_dc->col_dytpes_isfloat == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 566, __pyx_L1_error) + __PYX_ERR(0, 575, __pyx_L1_error) } - if (unlikely((__Pyx_SetItemInt(__pyx_v_dc->col_dytpes_isfloat, __pyx_v_index, __pyx_t_1, int, 1, __Pyx_PyLong_From_int, 1, 1, 1, 1, __Pyx_ReferenceSharing_SharedReference) < 0))) __PYX_ERR(0, 566, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely((__Pyx_SetItemInt(__pyx_v_dc->col_dytpes_isfloat, __pyx_v_index, __pyx_t_7, int, 1, __Pyx_PyLong_From_int, 1, 1, 1, 1, __Pyx_ReferenceSharing_SharedReference) < 0))) __PYX_ERR(0, 575, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - /* "pyreadstat/_readstat_parser.pyx":567 + /* "pyreadstat/_readstat_parser.pyx":576 * dc.col_dtypes_isobject[index] = iscurnptypeobject * dc.col_dytpes_isfloat[index] = iscurnptypefloat * metaonly = dc.metaonly # <<<<<<<<<<<<<< @@ -10011,7 +10100,7 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_variable(int __pyx_v_i __pyx_t_2 = __pyx_v_dc->metaonly; __pyx_v_metaonly = __pyx_t_2; - /* "pyreadstat/_readstat_parser.pyx":569 + /* "pyreadstat/_readstat_parser.pyx":578 * metaonly = dc.metaonly * # pre-allocate data * if metaonly: # <<<<<<<<<<<<<< @@ -10020,67 +10109,67 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_variable(int __pyx_v_i */ if (__pyx_v_metaonly) { - /* "pyreadstat/_readstat_parser.pyx":570 + /* "pyreadstat/_readstat_parser.pyx":579 * # pre-allocate data * if metaonly: * if output_format == "pandas": # <<<<<<<<<<<<<< * row = np.empty(1, dtype=curnptype) * else: */ - __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_output_format, __pyx_mstate_global->__pyx_n_u_pandas, Py_EQ)); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 570, __pyx_L1_error) + __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_output_format, __pyx_mstate_global->__pyx_n_u_pandas, Py_EQ)); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 579, __pyx_L1_error) if (__pyx_t_2) { - /* "pyreadstat/_readstat_parser.pyx":571 + /* "pyreadstat/_readstat_parser.pyx":580 * if metaonly: * if output_format == "pandas": * row = np.empty(1, dtype=curnptype) # <<<<<<<<<<<<<< * else: * row = list() */ - __pyx_t_7 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 571, __pyx_L1_error) + __pyx_t_1 = NULL; + __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 580, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); - __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_empty); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 571, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_empty); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 580, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_6 = 1; #if CYTHON_UNPACK_METHODS if (unlikely(PyMethod_Check(__pyx_t_3))) { - __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_3); - assert(__pyx_t_7); + __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_3); + assert(__pyx_t_1); PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_3); - __Pyx_INCREF(__pyx_t_7); + __Pyx_INCREF(__pyx_t_1); __Pyx_INCREF(__pyx__function); __Pyx_DECREF_SET(__pyx_t_3, __pyx__function); __pyx_t_6 = 0; } #endif { - PyObject *__pyx_callargs[2 + ((CYTHON_VECTORCALL) ? 1 : 0)] = {__pyx_t_7, __pyx_mstate_global->__pyx_int_1}; - __pyx_t_5 = __Pyx_MakeVectorcallBuilderKwds(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 571, __pyx_L1_error) + PyObject *__pyx_callargs[2 + ((CYTHON_VECTORCALL) ? 1 : 0)] = {__pyx_t_1, __pyx_mstate_global->__pyx_int_1}; + __pyx_t_5 = __Pyx_MakeVectorcallBuilderKwds(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 580, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); - if (__Pyx_VectorcallBuilder_AddArg(__pyx_mstate_global->__pyx_n_u_dtype, __pyx_v_curnptype, __pyx_t_5, __pyx_callargs+2, 0) < (0)) __PYX_ERR(0, 571, __pyx_L1_error) - __pyx_t_1 = __Pyx_Object_Vectorcall_CallFromBuilder((PyObject*)__pyx_t_3, __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET), __pyx_t_5); - __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; + if (__Pyx_VectorcallBuilder_AddArg(__pyx_mstate_global->__pyx_n_u_dtype, __pyx_v_curnptype, __pyx_t_5, __pyx_callargs+2, 0) < (0)) __PYX_ERR(0, 580, __pyx_L1_error) + __pyx_t_7 = __Pyx_Object_Vectorcall_CallFromBuilder((PyObject*)__pyx_t_3, __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET), __pyx_t_5); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 571, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); + if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 580, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); } - __pyx_v_row = __pyx_t_1; - __pyx_t_1 = 0; + __pyx_v_row = __pyx_t_7; + __pyx_t_7 = 0; - /* "pyreadstat/_readstat_parser.pyx":570 + /* "pyreadstat/_readstat_parser.pyx":579 * # pre-allocate data * if metaonly: * if output_format == "pandas": # <<<<<<<<<<<<<< * row = np.empty(1, dtype=curnptype) * else: */ - goto __pyx_L21; + goto __pyx_L22; } - /* "pyreadstat/_readstat_parser.pyx":573 + /* "pyreadstat/_readstat_parser.pyx":582 * row = np.empty(1, dtype=curnptype) * else: * row = list() # <<<<<<<<<<<<<< @@ -10088,24 +10177,24 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_variable(int __pyx_v_i * obs_count = dc.n_obs */ /*else*/ { - __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 573, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_row = __pyx_t_1; - __pyx_t_1 = 0; + __pyx_t_7 = PyList_New(0); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 582, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_v_row = __pyx_t_7; + __pyx_t_7 = 0; } - __pyx_L21:; + __pyx_L22:; - /* "pyreadstat/_readstat_parser.pyx":569 + /* "pyreadstat/_readstat_parser.pyx":578 * metaonly = dc.metaonly * # pre-allocate data * if metaonly: # <<<<<<<<<<<<<< * if output_format == "pandas": * row = np.empty(1, dtype=curnptype) */ - goto __pyx_L20; + goto __pyx_L21; } - /* "pyreadstat/_readstat_parser.pyx":575 + /* "pyreadstat/_readstat_parser.pyx":584 * row = list() * else: * obs_count = dc.n_obs # <<<<<<<<<<<<<< @@ -10116,17 +10205,17 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_variable(int __pyx_v_i __pyx_t_11 = __pyx_v_dc->n_obs; __pyx_v_obs_count = __pyx_t_11; - /* "pyreadstat/_readstat_parser.pyx":576 + /* "pyreadstat/_readstat_parser.pyx":585 * else: * obs_count = dc.n_obs * if output_format == "pandas": # <<<<<<<<<<<<<< * row = np.empty(obs_count, dtype=curnptype) * if iscurnptypeobject or iscurnptypefloat: */ - __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_output_format, __pyx_mstate_global->__pyx_n_u_pandas, Py_EQ)); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 576, __pyx_L1_error) + __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_output_format, __pyx_mstate_global->__pyx_n_u_pandas, Py_EQ)); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 585, __pyx_L1_error) if (__pyx_t_2) { - /* "pyreadstat/_readstat_parser.pyx":577 + /* "pyreadstat/_readstat_parser.pyx":586 * obs_count = dc.n_obs * if output_format == "pandas": * row = np.empty(obs_count, dtype=curnptype) # <<<<<<<<<<<<<< @@ -10134,42 +10223,42 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_variable(int __pyx_v_i * row.fill(np.nan) */ __pyx_t_3 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 577, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 586, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); - __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_empty); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 577, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_empty); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 586, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_5 = __Pyx_PyLong_From_int(__pyx_v_obs_count); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 577, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyLong_From_int(__pyx_v_obs_count); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 586, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_6 = 1; #if CYTHON_UNPACK_METHODS - if (unlikely(PyMethod_Check(__pyx_t_7))) { - __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_7); + if (unlikely(PyMethod_Check(__pyx_t_1))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_1); assert(__pyx_t_3); - PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_7); + PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_1); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(__pyx__function); - __Pyx_DECREF_SET(__pyx_t_7, __pyx__function); + __Pyx_DECREF_SET(__pyx_t_1, __pyx__function); __pyx_t_6 = 0; } #endif { PyObject *__pyx_callargs[2 + ((CYTHON_VECTORCALL) ? 1 : 0)] = {__pyx_t_3, __pyx_t_5}; - __pyx_t_12 = __Pyx_MakeVectorcallBuilderKwds(1); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 577, __pyx_L1_error) + __pyx_t_12 = __Pyx_MakeVectorcallBuilderKwds(1); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 586, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); - if (__Pyx_VectorcallBuilder_AddArg(__pyx_mstate_global->__pyx_n_u_dtype, __pyx_v_curnptype, __pyx_t_12, __pyx_callargs+2, 0) < (0)) __PYX_ERR(0, 577, __pyx_L1_error) - __pyx_t_1 = __Pyx_Object_Vectorcall_CallFromBuilder((PyObject*)__pyx_t_7, __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET), __pyx_t_12); + if (__Pyx_VectorcallBuilder_AddArg(__pyx_mstate_global->__pyx_n_u_dtype, __pyx_v_curnptype, __pyx_t_12, __pyx_callargs+2, 0) < (0)) __PYX_ERR(0, 586, __pyx_L1_error) + __pyx_t_7 = __Pyx_Object_Vectorcall_CallFromBuilder((PyObject*)__pyx_t_1, __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET), __pyx_t_12); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 577, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 586, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); } - __pyx_v_row = __pyx_t_1; - __pyx_t_1 = 0; + __pyx_v_row = __pyx_t_7; + __pyx_t_7 = 0; - /* "pyreadstat/_readstat_parser.pyx":578 + /* "pyreadstat/_readstat_parser.pyx":587 * if output_format == "pandas": * row = np.empty(obs_count, dtype=curnptype) * if iscurnptypeobject or iscurnptypefloat: # <<<<<<<<<<<<<< @@ -10179,38 +10268,38 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_variable(int __pyx_v_i if (!__pyx_v_iscurnptypeobject) { } else { __pyx_t_2 = __pyx_v_iscurnptypeobject; - goto __pyx_L24_bool_binop_done; + goto __pyx_L25_bool_binop_done; } __pyx_t_2 = __pyx_v_iscurnptypefloat; - __pyx_L24_bool_binop_done:; + __pyx_L25_bool_binop_done:; if (__pyx_t_2) { - /* "pyreadstat/_readstat_parser.pyx":579 + /* "pyreadstat/_readstat_parser.pyx":588 * row = np.empty(obs_count, dtype=curnptype) * if iscurnptypeobject or iscurnptypefloat: * row.fill(np.nan) # <<<<<<<<<<<<<< * else: * row = [None] * obs_count */ - __pyx_t_7 = __pyx_v_row; - __Pyx_INCREF(__pyx_t_7); - __Pyx_GetModuleGlobalName(__pyx_t_12, __pyx_mstate_global->__pyx_n_u_np); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 579, __pyx_L1_error) + __pyx_t_1 = __pyx_v_row; + __Pyx_INCREF(__pyx_t_1); + __Pyx_GetModuleGlobalName(__pyx_t_12, __pyx_mstate_global->__pyx_n_u_np); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 588, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); - __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_12, __pyx_mstate_global->__pyx_n_u_nan); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 579, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_12, __pyx_mstate_global->__pyx_n_u_nan); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 588, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __pyx_t_6 = 0; { - PyObject *__pyx_callargs[2] = {__pyx_t_7, __pyx_t_5}; - __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_fill, __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; + PyObject *__pyx_callargs[2] = {__pyx_t_1, __pyx_t_5}; + __pyx_t_7 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_fill, __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 579, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); + if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 588, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); } - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - /* "pyreadstat/_readstat_parser.pyx":578 + /* "pyreadstat/_readstat_parser.pyx":587 * if output_format == "pandas": * row = np.empty(obs_count, dtype=curnptype) * if iscurnptypeobject or iscurnptypefloat: # <<<<<<<<<<<<<< @@ -10219,17 +10308,17 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_variable(int __pyx_v_i */ } - /* "pyreadstat/_readstat_parser.pyx":576 + /* "pyreadstat/_readstat_parser.pyx":585 * else: * obs_count = dc.n_obs * if output_format == "pandas": # <<<<<<<<<<<<<< * row = np.empty(obs_count, dtype=curnptype) * if iscurnptypeobject or iscurnptypefloat: */ - goto __pyx_L22; + goto __pyx_L23; } - /* "pyreadstat/_readstat_parser.pyx":581 + /* "pyreadstat/_readstat_parser.pyx":590 * row.fill(np.nan) * else: * row = [None] * obs_count # <<<<<<<<<<<<<< @@ -10237,23 +10326,23 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_variable(int __pyx_v_i * */ /*else*/ { - __pyx_t_1 = PyList_New(1 * ((__pyx_v_obs_count<0) ? 0:__pyx_v_obs_count)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 581, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); + __pyx_t_7 = PyList_New(1 * ((__pyx_v_obs_count<0) ? 0:__pyx_v_obs_count)); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 590, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); { Py_ssize_t __pyx_temp; for (__pyx_temp=0; __pyx_temp < __pyx_v_obs_count; __pyx_temp++) { __Pyx_INCREF(Py_None); __Pyx_GIVEREF(Py_None); - if (__Pyx_PyList_SET_ITEM(__pyx_t_1, __pyx_temp, Py_None) != (0)) __PYX_ERR(0, 581, __pyx_L1_error); + if (__Pyx_PyList_SET_ITEM(__pyx_t_7, __pyx_temp, Py_None) != (0)) __PYX_ERR(0, 590, __pyx_L1_error); } } - __pyx_v_row = __pyx_t_1; - __pyx_t_1 = 0; + __pyx_v_row = __pyx_t_7; + __pyx_t_7 = 0; } - __pyx_L22:; + __pyx_L23:; } - __pyx_L20:; + __pyx_L21:; - /* "pyreadstat/_readstat_parser.pyx":582 + /* "pyreadstat/_readstat_parser.pyx":591 * else: * row = [None] * obs_count * dc.col_data.append(row) # <<<<<<<<<<<<<< @@ -10262,11 +10351,11 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_variable(int __pyx_v_i */ if (unlikely(__pyx_v_dc->col_data == Py_None)) { PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "append"); - __PYX_ERR(0, 582, __pyx_L1_error) + __PYX_ERR(0, 591, __pyx_L1_error) } - __pyx_t_8 = __Pyx_PyList_Append(__pyx_v_dc->col_data, __pyx_v_row); if (unlikely(__pyx_t_8 == ((int)-1))) __PYX_ERR(0, 582, __pyx_L1_error) + __pyx_t_8 = __Pyx_PyList_Append(__pyx_v_dc->col_data, __pyx_v_row); if (unlikely(__pyx_t_8 == ((int)-1))) __PYX_ERR(0, 591, __pyx_L1_error) - /* "pyreadstat/_readstat_parser.pyx":585 + /* "pyreadstat/_readstat_parser.pyx":594 * * # missing values * if dc.usernan: # <<<<<<<<<<<<<< @@ -10275,7 +10364,7 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_variable(int __pyx_v_i */ if (__pyx_v_dc->usernan) { - /* "pyreadstat/_readstat_parser.pyx":586 + /* "pyreadstat/_readstat_parser.pyx":595 * # missing values * if dc.usernan: * n_ranges = readstat_variable_get_missing_ranges_count(variable) # <<<<<<<<<<<<<< @@ -10284,7 +10373,7 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_variable(int __pyx_v_i */ __pyx_v_n_ranges = readstat_variable_get_missing_ranges_count(__pyx_v_variable); - /* "pyreadstat/_readstat_parser.pyx":587 + /* "pyreadstat/_readstat_parser.pyx":596 * if dc.usernan: * n_ranges = readstat_variable_get_missing_ranges_count(variable) * if n_ranges>0: # <<<<<<<<<<<<<< @@ -10294,19 +10383,19 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_variable(int __pyx_v_i __pyx_t_2 = (__pyx_v_n_ranges > 0); if (__pyx_t_2) { - /* "pyreadstat/_readstat_parser.pyx":588 + /* "pyreadstat/_readstat_parser.pyx":597 * n_ranges = readstat_variable_get_missing_ranges_count(variable) * if n_ranges>0: * missing_ranges = list() # <<<<<<<<<<<<<< * for i in range(0, n_ranges): * loval = readstat_variable_get_missing_range_lo(variable, i) */ - __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 588, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_missing_ranges = ((PyObject*)__pyx_t_1); - __pyx_t_1 = 0; + __pyx_t_7 = PyList_New(0); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 597, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_v_missing_ranges = ((PyObject*)__pyx_t_7); + __pyx_t_7 = 0; - /* "pyreadstat/_readstat_parser.pyx":589 + /* "pyreadstat/_readstat_parser.pyx":598 * if n_ranges>0: * missing_ranges = list() * for i in range(0, n_ranges): # <<<<<<<<<<<<<< @@ -10318,7 +10407,7 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_variable(int __pyx_v_i for (__pyx_t_14 = 0; __pyx_t_14 < __pyx_t_13; __pyx_t_14+=1) { __pyx_v_i = __pyx_t_14; - /* "pyreadstat/_readstat_parser.pyx":590 + /* "pyreadstat/_readstat_parser.pyx":599 * missing_ranges = list() * for i in range(0, n_ranges): * loval = readstat_variable_get_missing_range_lo(variable, i) # <<<<<<<<<<<<<< @@ -10327,19 +10416,19 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_variable(int __pyx_v_i */ __pyx_v_loval = readstat_variable_get_missing_range_lo(__pyx_v_variable, __pyx_v_i); - /* "pyreadstat/_readstat_parser.pyx":591 + /* "pyreadstat/_readstat_parser.pyx":600 * for i in range(0, n_ranges): * loval = readstat_variable_get_missing_range_lo(variable, i) * pyloval = convert_readstat_to_python_value(loval, index, dc) # <<<<<<<<<<<<<< * hival = readstat_variable_get_missing_range_hi(variable, i) * pyhival = convert_readstat_to_python_value(hival, index, dc) */ - __pyx_t_1 = __pyx_f_10pyreadstat_16_readstat_parser_convert_readstat_to_python_value(__pyx_v_loval, __pyx_v_index, __pyx_v_dc); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 591, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_XDECREF_SET(__pyx_v_pyloval, __pyx_t_1); - __pyx_t_1 = 0; + __pyx_t_7 = __pyx_f_10pyreadstat_16_readstat_parser_convert_readstat_to_python_value(__pyx_v_loval, __pyx_v_index, __pyx_v_dc); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 600, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_XDECREF_SET(__pyx_v_pyloval, __pyx_t_7); + __pyx_t_7 = 0; - /* "pyreadstat/_readstat_parser.pyx":592 + /* "pyreadstat/_readstat_parser.pyx":601 * loval = readstat_variable_get_missing_range_lo(variable, i) * pyloval = convert_readstat_to_python_value(loval, index, dc) * hival = readstat_variable_get_missing_range_hi(variable, i) # <<<<<<<<<<<<<< @@ -10348,34 +10437,34 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_variable(int __pyx_v_i */ __pyx_v_hival = readstat_variable_get_missing_range_hi(__pyx_v_variable, __pyx_v_i); - /* "pyreadstat/_readstat_parser.pyx":593 + /* "pyreadstat/_readstat_parser.pyx":602 * pyloval = convert_readstat_to_python_value(loval, index, dc) * hival = readstat_variable_get_missing_range_hi(variable, i) * pyhival = convert_readstat_to_python_value(hival, index, dc) # <<<<<<<<<<<<<< * missing_ranges.append({'lo':pyloval, 'hi':pyhival}) * dc.missing_ranges[col_name] = missing_ranges */ - __pyx_t_1 = __pyx_f_10pyreadstat_16_readstat_parser_convert_readstat_to_python_value(__pyx_v_hival, __pyx_v_index, __pyx_v_dc); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 593, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_XDECREF_SET(__pyx_v_pyhival, __pyx_t_1); - __pyx_t_1 = 0; + __pyx_t_7 = __pyx_f_10pyreadstat_16_readstat_parser_convert_readstat_to_python_value(__pyx_v_hival, __pyx_v_index, __pyx_v_dc); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 602, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_XDECREF_SET(__pyx_v_pyhival, __pyx_t_7); + __pyx_t_7 = 0; - /* "pyreadstat/_readstat_parser.pyx":594 + /* "pyreadstat/_readstat_parser.pyx":603 * hival = readstat_variable_get_missing_range_hi(variable, i) * pyhival = convert_readstat_to_python_value(hival, index, dc) * missing_ranges.append({'lo':pyloval, 'hi':pyhival}) # <<<<<<<<<<<<<< * dc.missing_ranges[col_name] = missing_ranges * */ - __pyx_t_1 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 594, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - if (PyDict_SetItem(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_lo, __pyx_v_pyloval) < (0)) __PYX_ERR(0, 594, __pyx_L1_error) - if (PyDict_SetItem(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_hi, __pyx_v_pyhival) < (0)) __PYX_ERR(0, 594, __pyx_L1_error) - __pyx_t_8 = __Pyx_PyList_Append(__pyx_v_missing_ranges, __pyx_t_1); if (unlikely(__pyx_t_8 == ((int)-1))) __PYX_ERR(0, 594, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_7 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 603, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + if (PyDict_SetItem(__pyx_t_7, __pyx_mstate_global->__pyx_n_u_lo, __pyx_v_pyloval) < (0)) __PYX_ERR(0, 603, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_7, __pyx_mstate_global->__pyx_n_u_hi, __pyx_v_pyhival) < (0)) __PYX_ERR(0, 603, __pyx_L1_error) + __pyx_t_8 = __Pyx_PyList_Append(__pyx_v_missing_ranges, __pyx_t_7); if (unlikely(__pyx_t_8 == ((int)-1))) __PYX_ERR(0, 603, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; } - /* "pyreadstat/_readstat_parser.pyx":595 + /* "pyreadstat/_readstat_parser.pyx":604 * pyhival = convert_readstat_to_python_value(hival, index, dc) * missing_ranges.append({'lo':pyloval, 'hi':pyhival}) * dc.missing_ranges[col_name] = missing_ranges # <<<<<<<<<<<<<< @@ -10384,11 +10473,11 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_variable(int __pyx_v_i */ if (unlikely(__pyx_v_dc->missing_ranges == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 595, __pyx_L1_error) + __PYX_ERR(0, 604, __pyx_L1_error) } - if (unlikely((PyDict_SetItem(__pyx_v_dc->missing_ranges, __pyx_v_col_name, __pyx_v_missing_ranges) < 0))) __PYX_ERR(0, 595, __pyx_L1_error) + if (unlikely((PyDict_SetItem(__pyx_v_dc->missing_ranges, __pyx_v_col_name, __pyx_v_missing_ranges) < 0))) __PYX_ERR(0, 604, __pyx_L1_error) - /* "pyreadstat/_readstat_parser.pyx":587 + /* "pyreadstat/_readstat_parser.pyx":596 * if dc.usernan: * n_ranges = readstat_variable_get_missing_ranges_count(variable) * if n_ranges>0: # <<<<<<<<<<<<<< @@ -10397,7 +10486,7 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_variable(int __pyx_v_i */ } - /* "pyreadstat/_readstat_parser.pyx":585 + /* "pyreadstat/_readstat_parser.pyx":594 * * # missing values * if dc.usernan: # <<<<<<<<<<<<<< @@ -10406,7 +10495,7 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_variable(int __pyx_v_i */ } - /* "pyreadstat/_readstat_parser.pyx":598 + /* "pyreadstat/_readstat_parser.pyx":607 * * cdef size_t storage_width * storage_width = readstat_variable_get_storage_width(variable) # <<<<<<<<<<<<<< @@ -10415,35 +10504,35 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_variable(int __pyx_v_i */ __pyx_v_storage_width = readstat_variable_get_storage_width(__pyx_v_variable); - /* "pyreadstat/_readstat_parser.pyx":599 + /* "pyreadstat/_readstat_parser.pyx":608 * cdef size_t storage_width * storage_width = readstat_variable_get_storage_width(variable) * dc.variable_storage_width[col_name] = storage_width # <<<<<<<<<<<<<< * * dc.variable_display_width[col_name] = readstat_variable_get_display_width(variable) */ - __pyx_t_1 = __Pyx_PyLong_From_int(((int)__pyx_v_storage_width)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 599, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); + __pyx_t_7 = __Pyx_PyLong_From_int(((int)__pyx_v_storage_width)); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 608, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); if (unlikely(__pyx_v_dc->variable_storage_width == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 599, __pyx_L1_error) + __PYX_ERR(0, 608, __pyx_L1_error) } - if (unlikely((PyDict_SetItem(__pyx_v_dc->variable_storage_width, __pyx_v_col_name, __pyx_t_1) < 0))) __PYX_ERR(0, 599, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely((PyDict_SetItem(__pyx_v_dc->variable_storage_width, __pyx_v_col_name, __pyx_t_7) < 0))) __PYX_ERR(0, 608, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - /* "pyreadstat/_readstat_parser.pyx":601 + /* "pyreadstat/_readstat_parser.pyx":610 * dc.variable_storage_width[col_name] = storage_width * * dc.variable_display_width[col_name] = readstat_variable_get_display_width(variable) # <<<<<<<<<<<<<< * * cdef readstat_alignment_t align */ - __pyx_t_1 = __Pyx_PyLong_From_int(readstat_variable_get_display_width(__pyx_v_variable)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 601, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - if (unlikely((PyObject_SetItem(__pyx_v_dc->variable_display_width, __pyx_v_col_name, __pyx_t_1) < 0))) __PYX_ERR(0, 601, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_7 = __Pyx_PyLong_From_int(readstat_variable_get_display_width(__pyx_v_variable)); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 610, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + if (unlikely((PyObject_SetItem(__pyx_v_dc->variable_display_width, __pyx_v_col_name, __pyx_t_7) < 0))) __PYX_ERR(0, 610, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - /* "pyreadstat/_readstat_parser.pyx":605 + /* "pyreadstat/_readstat_parser.pyx":614 * cdef readstat_alignment_t align * cdef str pyalign * align = readstat_variable_get_alignment(variable) # <<<<<<<<<<<<<< @@ -10452,7 +10541,7 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_variable(int __pyx_v_i */ __pyx_v_align = readstat_variable_get_alignment(__pyx_v_variable); - /* "pyreadstat/_readstat_parser.pyx":606 + /* "pyreadstat/_readstat_parser.pyx":615 * cdef str pyalign * align = readstat_variable_get_alignment(variable) * if align == READSTAT_ALIGNMENT_UNKNOWN: # <<<<<<<<<<<<<< @@ -10462,7 +10551,7 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_variable(int __pyx_v_i switch (__pyx_v_align) { case READSTAT_ALIGNMENT_UNKNOWN: - /* "pyreadstat/_readstat_parser.pyx":607 + /* "pyreadstat/_readstat_parser.pyx":616 * align = readstat_variable_get_alignment(variable) * if align == READSTAT_ALIGNMENT_UNKNOWN: * pyalign = "unknown" # <<<<<<<<<<<<<< @@ -10472,7 +10561,7 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_variable(int __pyx_v_i __Pyx_INCREF(__pyx_mstate_global->__pyx_n_u_unknown); __pyx_v_pyalign = __pyx_mstate_global->__pyx_n_u_unknown; - /* "pyreadstat/_readstat_parser.pyx":606 + /* "pyreadstat/_readstat_parser.pyx":615 * cdef str pyalign * align = readstat_variable_get_alignment(variable) * if align == READSTAT_ALIGNMENT_UNKNOWN: # <<<<<<<<<<<<<< @@ -10482,7 +10571,7 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_variable(int __pyx_v_i break; case READSTAT_ALIGNMENT_LEFT: - /* "pyreadstat/_readstat_parser.pyx":609 + /* "pyreadstat/_readstat_parser.pyx":618 * pyalign = "unknown" * elif align == READSTAT_ALIGNMENT_LEFT: * pyalign = "left" # <<<<<<<<<<<<<< @@ -10492,7 +10581,7 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_variable(int __pyx_v_i __Pyx_INCREF(__pyx_mstate_global->__pyx_n_u_left); __pyx_v_pyalign = __pyx_mstate_global->__pyx_n_u_left; - /* "pyreadstat/_readstat_parser.pyx":608 + /* "pyreadstat/_readstat_parser.pyx":617 * if align == READSTAT_ALIGNMENT_UNKNOWN: * pyalign = "unknown" * elif align == READSTAT_ALIGNMENT_LEFT: # <<<<<<<<<<<<<< @@ -10502,7 +10591,7 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_variable(int __pyx_v_i break; case READSTAT_ALIGNMENT_CENTER: - /* "pyreadstat/_readstat_parser.pyx":611 + /* "pyreadstat/_readstat_parser.pyx":620 * pyalign = "left" * elif align == READSTAT_ALIGNMENT_CENTER: * pyalign = "center" # <<<<<<<<<<<<<< @@ -10512,7 +10601,7 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_variable(int __pyx_v_i __Pyx_INCREF(__pyx_mstate_global->__pyx_n_u_center); __pyx_v_pyalign = __pyx_mstate_global->__pyx_n_u_center; - /* "pyreadstat/_readstat_parser.pyx":610 + /* "pyreadstat/_readstat_parser.pyx":619 * elif align == READSTAT_ALIGNMENT_LEFT: * pyalign = "left" * elif align == READSTAT_ALIGNMENT_CENTER: # <<<<<<<<<<<<<< @@ -10522,7 +10611,7 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_variable(int __pyx_v_i break; case READSTAT_ALIGNMENT_RIGHT: - /* "pyreadstat/_readstat_parser.pyx":613 + /* "pyreadstat/_readstat_parser.pyx":622 * pyalign = "center" * elif align == READSTAT_ALIGNMENT_RIGHT: * pyalign = "right" # <<<<<<<<<<<<<< @@ -10532,7 +10621,7 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_variable(int __pyx_v_i __Pyx_INCREF(__pyx_mstate_global->__pyx_n_u_right); __pyx_v_pyalign = __pyx_mstate_global->__pyx_n_u_right; - /* "pyreadstat/_readstat_parser.pyx":612 + /* "pyreadstat/_readstat_parser.pyx":621 * elif align == READSTAT_ALIGNMENT_CENTER: * pyalign = "center" * elif align == READSTAT_ALIGNMENT_RIGHT: # <<<<<<<<<<<<<< @@ -10542,7 +10631,7 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_variable(int __pyx_v_i break; default: - /* "pyreadstat/_readstat_parser.pyx":615 + /* "pyreadstat/_readstat_parser.pyx":624 * pyalign = "right" * else: * pyalign = "undetermined" # <<<<<<<<<<<<<< @@ -10554,16 +10643,16 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_variable(int __pyx_v_i break; } - /* "pyreadstat/_readstat_parser.pyx":617 + /* "pyreadstat/_readstat_parser.pyx":626 * pyalign = "undetermined" * * dc.variable_alignment[col_name] = pyalign # <<<<<<<<<<<<<< * * cdef readstat_measure_t measure */ - if (unlikely((PyObject_SetItem(__pyx_v_dc->variable_alignment, __pyx_v_col_name, __pyx_v_pyalign) < 0))) __PYX_ERR(0, 617, __pyx_L1_error) + if (unlikely((PyObject_SetItem(__pyx_v_dc->variable_alignment, __pyx_v_col_name, __pyx_v_pyalign) < 0))) __PYX_ERR(0, 626, __pyx_L1_error) - /* "pyreadstat/_readstat_parser.pyx":621 + /* "pyreadstat/_readstat_parser.pyx":630 * cdef readstat_measure_t measure * cdef str pymeasure * measure = readstat_variable_get_measure(variable) # <<<<<<<<<<<<<< @@ -10572,7 +10661,7 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_variable(int __pyx_v_i */ __pyx_v_measure = readstat_variable_get_measure(__pyx_v_variable); - /* "pyreadstat/_readstat_parser.pyx":622 + /* "pyreadstat/_readstat_parser.pyx":631 * cdef str pymeasure * measure = readstat_variable_get_measure(variable) * if measure == READSTAT_MEASURE_UNKNOWN: # <<<<<<<<<<<<<< @@ -10582,7 +10671,7 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_variable(int __pyx_v_i switch (__pyx_v_measure) { case READSTAT_MEASURE_UNKNOWN: - /* "pyreadstat/_readstat_parser.pyx":623 + /* "pyreadstat/_readstat_parser.pyx":632 * measure = readstat_variable_get_measure(variable) * if measure == READSTAT_MEASURE_UNKNOWN: * pymeasure = "unknown" # <<<<<<<<<<<<<< @@ -10592,7 +10681,7 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_variable(int __pyx_v_i __Pyx_INCREF(__pyx_mstate_global->__pyx_n_u_unknown); __pyx_v_pymeasure = __pyx_mstate_global->__pyx_n_u_unknown; - /* "pyreadstat/_readstat_parser.pyx":622 + /* "pyreadstat/_readstat_parser.pyx":631 * cdef str pymeasure * measure = readstat_variable_get_measure(variable) * if measure == READSTAT_MEASURE_UNKNOWN: # <<<<<<<<<<<<<< @@ -10602,7 +10691,7 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_variable(int __pyx_v_i break; case READSTAT_MEASURE_NOMINAL: - /* "pyreadstat/_readstat_parser.pyx":625 + /* "pyreadstat/_readstat_parser.pyx":634 * pymeasure = "unknown" * elif measure == READSTAT_MEASURE_NOMINAL: * pymeasure = "nominal" # <<<<<<<<<<<<<< @@ -10612,7 +10701,7 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_variable(int __pyx_v_i __Pyx_INCREF(__pyx_mstate_global->__pyx_n_u_nominal); __pyx_v_pymeasure = __pyx_mstate_global->__pyx_n_u_nominal; - /* "pyreadstat/_readstat_parser.pyx":624 + /* "pyreadstat/_readstat_parser.pyx":633 * if measure == READSTAT_MEASURE_UNKNOWN: * pymeasure = "unknown" * elif measure == READSTAT_MEASURE_NOMINAL: # <<<<<<<<<<<<<< @@ -10622,7 +10711,7 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_variable(int __pyx_v_i break; case READSTAT_MEASURE_ORDINAL: - /* "pyreadstat/_readstat_parser.pyx":627 + /* "pyreadstat/_readstat_parser.pyx":636 * pymeasure = "nominal" * elif measure == READSTAT_MEASURE_ORDINAL: * pymeasure = "ordinal" # <<<<<<<<<<<<<< @@ -10632,7 +10721,7 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_variable(int __pyx_v_i __Pyx_INCREF(__pyx_mstate_global->__pyx_n_u_ordinal); __pyx_v_pymeasure = __pyx_mstate_global->__pyx_n_u_ordinal; - /* "pyreadstat/_readstat_parser.pyx":626 + /* "pyreadstat/_readstat_parser.pyx":635 * elif measure == READSTAT_MEASURE_NOMINAL: * pymeasure = "nominal" * elif measure == READSTAT_MEASURE_ORDINAL: # <<<<<<<<<<<<<< @@ -10642,7 +10731,7 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_variable(int __pyx_v_i break; case READSTAT_MEASURE_SCALE: - /* "pyreadstat/_readstat_parser.pyx":629 + /* "pyreadstat/_readstat_parser.pyx":638 * pymeasure = "ordinal" * elif measure == READSTAT_MEASURE_SCALE: * pymeasure = "scale" # <<<<<<<<<<<<<< @@ -10652,7 +10741,7 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_variable(int __pyx_v_i __Pyx_INCREF(__pyx_mstate_global->__pyx_n_u_scale); __pyx_v_pymeasure = __pyx_mstate_global->__pyx_n_u_scale; - /* "pyreadstat/_readstat_parser.pyx":628 + /* "pyreadstat/_readstat_parser.pyx":637 * elif measure == READSTAT_MEASURE_ORDINAL: * pymeasure = "ordinal" * elif measure == READSTAT_MEASURE_SCALE: # <<<<<<<<<<<<<< @@ -10662,7 +10751,7 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_variable(int __pyx_v_i break; default: - /* "pyreadstat/_readstat_parser.pyx":631 + /* "pyreadstat/_readstat_parser.pyx":640 * pymeasure = "scale" * else: * pymeasure = "undetermined" # <<<<<<<<<<<<<< @@ -10674,16 +10763,16 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_variable(int __pyx_v_i break; } - /* "pyreadstat/_readstat_parser.pyx":633 + /* "pyreadstat/_readstat_parser.pyx":642 * pymeasure = "undetermined" * * dc.variable_measure[col_name] = pymeasure # <<<<<<<<<<<<<< * * return READSTAT_HANDLER_OK */ - if (unlikely((PyObject_SetItem(__pyx_v_dc->variable_measure, __pyx_v_col_name, __pyx_v_pymeasure) < 0))) __PYX_ERR(0, 633, __pyx_L1_error) + if (unlikely((PyObject_SetItem(__pyx_v_dc->variable_measure, __pyx_v_col_name, __pyx_v_pymeasure) < 0))) __PYX_ERR(0, 642, __pyx_L1_error) - /* "pyreadstat/_readstat_parser.pyx":635 + /* "pyreadstat/_readstat_parser.pyx":644 * dc.variable_measure[col_name] = pymeasure * * return READSTAT_HANDLER_OK # <<<<<<<<<<<<<< @@ -10693,7 +10782,7 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_variable(int __pyx_v_i __pyx_r = READSTAT_HANDLER_OK; goto __pyx_L0; - /* "pyreadstat/_readstat_parser.pyx":463 + /* "pyreadstat/_readstat_parser.pyx":464 * return READSTAT_HANDLER_OK * * cdef int handle_variable(int index, readstat_variable_t *variable, # <<<<<<<<<<<<<< @@ -10715,6 +10804,7 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_variable(int __pyx_v_i __Pyx_XDECREF(__pyx_v_col_label); __Pyx_XDECREF(__pyx_v_label_name); __Pyx_XDECREF(__pyx_v_col_format_original); + __Pyx_XDECREF(__pyx_v_col_informat_original); __Pyx_XDECREF(__pyx_v_output_format); __Pyx_XDECREF(__pyx_v_pyloval); __Pyx_XDECREF(__pyx_v_pyhival); @@ -10730,7 +10820,7 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_variable(int __pyx_v_i return __pyx_r; } -/* "pyreadstat/_readstat_parser.pyx":638 +/* "pyreadstat/_readstat_parser.pyx":647 * * * cdef int handle_value(int obs_index, readstat_variable_t * variable, readstat_value_t value, void *ctx) except READSTAT_HANDLER_ABORT: # <<<<<<<<<<<<<< @@ -10768,7 +10858,7 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_value(int __pyx_v_obs_ int __pyx_clineno = 0; __Pyx_RefNannySetupContext("handle_value", 0); - /* "pyreadstat/_readstat_parser.pyx":659 + /* "pyreadstat/_readstat_parser.pyx":668 * * # extract variables we need from data container * dc = ctx # <<<<<<<<<<<<<< @@ -10780,7 +10870,7 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_value(int __pyx_v_obs_ __pyx_v_dc = ((struct __pyx_obj_10pyreadstat_16_readstat_parser_data_container *)__pyx_t_1); __pyx_t_1 = 0; - /* "pyreadstat/_readstat_parser.pyx":660 + /* "pyreadstat/_readstat_parser.pyx":669 * # extract variables we need from data container * dc = ctx * output_format = dc.output_format # <<<<<<<<<<<<<< @@ -10792,7 +10882,7 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_value(int __pyx_v_obs_ __pyx_v_output_format = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - /* "pyreadstat/_readstat_parser.pyx":661 + /* "pyreadstat/_readstat_parser.pyx":670 * dc = ctx * output_format = dc.output_format * index = readstat_variable_get_index_after_skipping(variable) # <<<<<<<<<<<<<< @@ -10801,7 +10891,7 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_value(int __pyx_v_obs_ */ __pyx_v_index = readstat_variable_get_index_after_skipping(__pyx_v_variable); - /* "pyreadstat/_readstat_parser.pyx":662 + /* "pyreadstat/_readstat_parser.pyx":671 * output_format = dc.output_format * index = readstat_variable_get_index_after_skipping(variable) * max_n_obs = dc.max_n_obs # <<<<<<<<<<<<<< @@ -10811,7 +10901,7 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_value(int __pyx_v_obs_ __pyx_t_2 = __pyx_v_dc->max_n_obs; __pyx_v_max_n_obs = __pyx_t_2; - /* "pyreadstat/_readstat_parser.pyx":663 + /* "pyreadstat/_readstat_parser.pyx":672 * index = readstat_variable_get_index_after_skipping(variable) * max_n_obs = dc.max_n_obs * is_unkown_number_rows = dc.is_unkown_number_rows # <<<<<<<<<<<<<< @@ -10821,7 +10911,7 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_value(int __pyx_v_obs_ __pyx_t_3 = __pyx_v_dc->is_unkown_number_rows; __pyx_v_is_unkown_number_rows = __pyx_t_3; - /* "pyreadstat/_readstat_parser.pyx":667 + /* "pyreadstat/_readstat_parser.pyx":676 * # check that we still have enough room in our pre-allocated lists * # if not, add more room * iscurnptypeobject = dc.col_dtypes_isobject[index] # <<<<<<<<<<<<<< @@ -10830,15 +10920,15 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_value(int __pyx_v_obs_ */ if (unlikely(__pyx_v_dc->col_dtypes_isobject == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 667, __pyx_L1_error) + __PYX_ERR(0, 676, __pyx_L1_error) } - __pyx_t_1 = __Pyx_GetItemInt_List(__pyx_v_dc->col_dtypes_isobject, __pyx_v_index, int, 1, __Pyx_PyLong_From_int, 1, 1, 1, 1, __Pyx_ReferenceSharing_SharedReference); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 667, __pyx_L1_error) + __pyx_t_1 = __Pyx_GetItemInt_List(__pyx_v_dc->col_dtypes_isobject, __pyx_v_index, int, 1, __Pyx_PyLong_From_int, 1, 1, 1, 1, __Pyx_ReferenceSharing_SharedReference); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 676, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 667, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 676, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_v_iscurnptypeobject = __pyx_t_3; - /* "pyreadstat/_readstat_parser.pyx":668 + /* "pyreadstat/_readstat_parser.pyx":677 * # if not, add more room * iscurnptypeobject = dc.col_dtypes_isobject[index] * iscurnptypefloat = dc.col_dytpes_isfloat[index] # <<<<<<<<<<<<<< @@ -10847,15 +10937,15 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_value(int __pyx_v_obs_ */ if (unlikely(__pyx_v_dc->col_dytpes_isfloat == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 668, __pyx_L1_error) + __PYX_ERR(0, 677, __pyx_L1_error) } - __pyx_t_1 = __Pyx_GetItemInt_List(__pyx_v_dc->col_dytpes_isfloat, __pyx_v_index, int, 1, __Pyx_PyLong_From_int, 1, 1, 1, 1, __Pyx_ReferenceSharing_SharedReference); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 668, __pyx_L1_error) + __pyx_t_1 = __Pyx_GetItemInt_List(__pyx_v_dc->col_dytpes_isfloat, __pyx_v_index, int, 1, __Pyx_PyLong_From_int, 1, 1, 1, 1, __Pyx_ReferenceSharing_SharedReference); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 677, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 668, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 677, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_v_iscurnptypefloat = __pyx_t_3; - /* "pyreadstat/_readstat_parser.pyx":669 + /* "pyreadstat/_readstat_parser.pyx":678 * iscurnptypeobject = dc.col_dtypes_isobject[index] * iscurnptypefloat = dc.col_dytpes_isfloat[index] * if is_unkown_number_rows: # <<<<<<<<<<<<<< @@ -10864,7 +10954,7 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_value(int __pyx_v_obs_ */ if (__pyx_v_is_unkown_number_rows) { - /* "pyreadstat/_readstat_parser.pyx":670 + /* "pyreadstat/_readstat_parser.pyx":679 * iscurnptypefloat = dc.col_dytpes_isfloat[index] * if is_unkown_number_rows: * if max_n_obs <= obs_index: # <<<<<<<<<<<<<< @@ -10874,7 +10964,7 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_value(int __pyx_v_obs_ __pyx_t_3 = (__pyx_v_max_n_obs <= __pyx_v_obs_index); if (__pyx_t_3) { - /* "pyreadstat/_readstat_parser.pyx":671 + /* "pyreadstat/_readstat_parser.pyx":680 * if is_unkown_number_rows: * if max_n_obs <= obs_index: * dc.max_n_obs = obs_index + 1 # <<<<<<<<<<<<<< @@ -10883,7 +10973,7 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_value(int __pyx_v_obs_ */ __pyx_v_dc->max_n_obs = (__pyx_v_obs_index + 1); - /* "pyreadstat/_readstat_parser.pyx":670 + /* "pyreadstat/_readstat_parser.pyx":679 * iscurnptypefloat = dc.col_dytpes_isfloat[index] * if is_unkown_number_rows: * if max_n_obs <= obs_index: # <<<<<<<<<<<<<< @@ -10892,7 +10982,7 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_value(int __pyx_v_obs_ */ } - /* "pyreadstat/_readstat_parser.pyx":672 + /* "pyreadstat/_readstat_parser.pyx":681 * if max_n_obs <= obs_index: * dc.max_n_obs = obs_index + 1 * var_max_rows = dc.col_data_len[index] # <<<<<<<<<<<<<< @@ -10901,15 +10991,15 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_value(int __pyx_v_obs_ */ if (unlikely(__pyx_v_dc->col_data_len == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 672, __pyx_L1_error) + __PYX_ERR(0, 681, __pyx_L1_error) } - __pyx_t_1 = __Pyx_GetItemInt_List(__pyx_v_dc->col_data_len, __pyx_v_index, int, 1, __Pyx_PyLong_From_int, 1, 1, 1, 1, __Pyx_ReferenceSharing_SharedReference); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 672, __pyx_L1_error) + __pyx_t_1 = __Pyx_GetItemInt_List(__pyx_v_dc->col_data_len, __pyx_v_index, int, 1, __Pyx_PyLong_From_int, 1, 1, 1, 1, __Pyx_ReferenceSharing_SharedReference); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 681, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = __Pyx_PyLong_As_int(__pyx_t_1); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 672, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_As_int(__pyx_t_1); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 681, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_v_var_max_rows = __pyx_t_2; - /* "pyreadstat/_readstat_parser.pyx":673 + /* "pyreadstat/_readstat_parser.pyx":682 * dc.max_n_obs = obs_index + 1 * var_max_rows = dc.col_data_len[index] * if var_max_rows <= obs_index: # <<<<<<<<<<<<<< @@ -10919,17 +11009,17 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_value(int __pyx_v_obs_ __pyx_t_3 = (__pyx_v_var_max_rows <= __pyx_v_obs_index); if (__pyx_t_3) { - /* "pyreadstat/_readstat_parser.pyx":674 + /* "pyreadstat/_readstat_parser.pyx":683 * var_max_rows = dc.col_data_len[index] * if var_max_rows <= obs_index: * if output_format == "pandas": # <<<<<<<<<<<<<< * curnptype = dc.col_numpy_dtypes[index] * buf_list = np.empty(100000, dtype=curnptype) */ - __pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_v_output_format, __pyx_mstate_global->__pyx_n_u_pandas, Py_EQ)); if (unlikely((__pyx_t_3 < 0))) __PYX_ERR(0, 674, __pyx_L1_error) + __pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_v_output_format, __pyx_mstate_global->__pyx_n_u_pandas, Py_EQ)); if (unlikely((__pyx_t_3 < 0))) __PYX_ERR(0, 683, __pyx_L1_error) if (__pyx_t_3) { - /* "pyreadstat/_readstat_parser.pyx":675 + /* "pyreadstat/_readstat_parser.pyx":684 * if var_max_rows <= obs_index: * if output_format == "pandas": * curnptype = dc.col_numpy_dtypes[index] # <<<<<<<<<<<<<< @@ -10938,14 +11028,14 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_value(int __pyx_v_obs_ */ if (unlikely(__pyx_v_dc->col_numpy_dtypes == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 675, __pyx_L1_error) + __PYX_ERR(0, 684, __pyx_L1_error) } - __pyx_t_1 = __Pyx_GetItemInt_List(__pyx_v_dc->col_numpy_dtypes, __pyx_v_index, int, 1, __Pyx_PyLong_From_int, 1, 1, 1, 1, __Pyx_ReferenceSharing_SharedReference); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 675, __pyx_L1_error) + __pyx_t_1 = __Pyx_GetItemInt_List(__pyx_v_dc->col_numpy_dtypes, __pyx_v_index, int, 1, __Pyx_PyLong_From_int, 1, 1, 1, 1, __Pyx_ReferenceSharing_SharedReference); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 684, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_curnptype = __pyx_t_1; __pyx_t_1 = 0; - /* "pyreadstat/_readstat_parser.pyx":676 + /* "pyreadstat/_readstat_parser.pyx":685 * if output_format == "pandas": * curnptype = dc.col_numpy_dtypes[index] * buf_list = np.empty(100000, dtype=curnptype) # <<<<<<<<<<<<<< @@ -10953,9 +11043,9 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_value(int __pyx_v_obs_ * buf_list.fill(np.nan) */ __pyx_t_4 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 676, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 685, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); - __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_empty); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 676, __pyx_L1_error) + __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_empty); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 685, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_7 = 1; @@ -10972,20 +11062,20 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_value(int __pyx_v_obs_ #endif { PyObject *__pyx_callargs[2 + ((CYTHON_VECTORCALL) ? 1 : 0)] = {__pyx_t_4, __pyx_mstate_global->__pyx_int_100000}; - __pyx_t_5 = __Pyx_MakeVectorcallBuilderKwds(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 676, __pyx_L1_error) + __pyx_t_5 = __Pyx_MakeVectorcallBuilderKwds(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 685, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); - if (__Pyx_VectorcallBuilder_AddArg(__pyx_mstate_global->__pyx_n_u_dtype, __pyx_v_curnptype, __pyx_t_5, __pyx_callargs+2, 0) < (0)) __PYX_ERR(0, 676, __pyx_L1_error) + if (__Pyx_VectorcallBuilder_AddArg(__pyx_mstate_global->__pyx_n_u_dtype, __pyx_v_curnptype, __pyx_t_5, __pyx_callargs+2, 0) < (0)) __PYX_ERR(0, 685, __pyx_L1_error) __pyx_t_1 = __Pyx_Object_Vectorcall_CallFromBuilder((PyObject*)__pyx_t_6, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET), __pyx_t_5); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 676, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 685, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } __pyx_v_buf_list = __pyx_t_1; __pyx_t_1 = 0; - /* "pyreadstat/_readstat_parser.pyx":677 + /* "pyreadstat/_readstat_parser.pyx":686 * curnptype = dc.col_numpy_dtypes[index] * buf_list = np.empty(100000, dtype=curnptype) * if iscurnptypeobject or iscurnptypefloat: # <<<<<<<<<<<<<< @@ -11001,7 +11091,7 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_value(int __pyx_v_obs_ __pyx_L8_bool_binop_done:; if (__pyx_t_3) { - /* "pyreadstat/_readstat_parser.pyx":678 + /* "pyreadstat/_readstat_parser.pyx":687 * buf_list = np.empty(100000, dtype=curnptype) * if iscurnptypeobject or iscurnptypefloat: * buf_list.fill(np.nan) # <<<<<<<<<<<<<< @@ -11010,9 +11100,9 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_value(int __pyx_v_obs_ */ __pyx_t_6 = __pyx_v_buf_list; __Pyx_INCREF(__pyx_t_6); - __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 678, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 687, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); - __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_nan); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 678, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_nan); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 687, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_7 = 0; @@ -11021,12 +11111,12 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_value(int __pyx_v_obs_ __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_fill, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 678, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 687, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "pyreadstat/_readstat_parser.pyx":677 + /* "pyreadstat/_readstat_parser.pyx":686 * curnptype = dc.col_numpy_dtypes[index] * buf_list = np.empty(100000, dtype=curnptype) * if iscurnptypeobject or iscurnptypefloat: # <<<<<<<<<<<<<< @@ -11035,7 +11125,7 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_value(int __pyx_v_obs_ */ } - /* "pyreadstat/_readstat_parser.pyx":679 + /* "pyreadstat/_readstat_parser.pyx":688 * if iscurnptypeobject or iscurnptypefloat: * buf_list.fill(np.nan) * dc.col_data[index] = np.append(dc.col_data[index], buf_list) # <<<<<<<<<<<<<< @@ -11043,16 +11133,16 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_value(int __pyx_v_obs_ * buf_list = [None] * 100000 */ __pyx_t_4 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 679, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 688, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); - __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_append); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 679, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_append); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 688, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (unlikely(__pyx_v_dc->col_data == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 679, __pyx_L1_error) + __PYX_ERR(0, 688, __pyx_L1_error) } - __pyx_t_6 = __Pyx_GetItemInt_List(__pyx_v_dc->col_data, __pyx_v_index, int, 1, __Pyx_PyLong_From_int, 1, 1, 1, 1, __Pyx_ReferenceSharing_SharedReference); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 679, __pyx_L1_error) + __pyx_t_6 = __Pyx_GetItemInt_List(__pyx_v_dc->col_data, __pyx_v_index, int, 1, __Pyx_PyLong_From_int, 1, 1, 1, 1, __Pyx_ReferenceSharing_SharedReference); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 688, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_7 = 1; #if CYTHON_UNPACK_METHODS @@ -11072,17 +11162,17 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_value(int __pyx_v_obs_ __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 679, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 688, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } if (unlikely(__pyx_v_dc->col_data == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 679, __pyx_L1_error) + __PYX_ERR(0, 688, __pyx_L1_error) } - if (unlikely((__Pyx_SetItemInt(__pyx_v_dc->col_data, __pyx_v_index, __pyx_t_1, int, 1, __Pyx_PyLong_From_int, 1, 1, 1, 1, __Pyx_ReferenceSharing_SharedReference) < 0))) __PYX_ERR(0, 679, __pyx_L1_error) + if (unlikely((__Pyx_SetItemInt(__pyx_v_dc->col_data, __pyx_v_index, __pyx_t_1, int, 1, __Pyx_PyLong_From_int, 1, 1, 1, 1, __Pyx_ReferenceSharing_SharedReference) < 0))) __PYX_ERR(0, 688, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "pyreadstat/_readstat_parser.pyx":674 + /* "pyreadstat/_readstat_parser.pyx":683 * var_max_rows = dc.col_data_len[index] * if var_max_rows <= obs_index: * if output_format == "pandas": # <<<<<<<<<<<<<< @@ -11092,7 +11182,7 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_value(int __pyx_v_obs_ goto __pyx_L6; } - /* "pyreadstat/_readstat_parser.pyx":681 + /* "pyreadstat/_readstat_parser.pyx":690 * dc.col_data[index] = np.append(dc.col_data[index], buf_list) * else: * buf_list = [None] * 100000 # <<<<<<<<<<<<<< @@ -11100,19 +11190,19 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_value(int __pyx_v_obs_ * var_max_rows += 100000 */ /*else*/ { - __pyx_t_1 = PyList_New(1 * 100000); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 681, __pyx_L1_error) + __pyx_t_1 = PyList_New(1 * 100000); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 690, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); { Py_ssize_t __pyx_temp; for (__pyx_temp=0; __pyx_temp < 0x186A0; __pyx_temp++) { __Pyx_INCREF(Py_None); __Pyx_GIVEREF(Py_None); - if (__Pyx_PyList_SET_ITEM(__pyx_t_1, __pyx_temp, Py_None) != (0)) __PYX_ERR(0, 681, __pyx_L1_error); + if (__Pyx_PyList_SET_ITEM(__pyx_t_1, __pyx_temp, Py_None) != (0)) __PYX_ERR(0, 690, __pyx_L1_error); } } __pyx_v_buf_list = __pyx_t_1; __pyx_t_1 = 0; - /* "pyreadstat/_readstat_parser.pyx":682 + /* "pyreadstat/_readstat_parser.pyx":691 * else: * buf_list = [None] * 100000 * dc.col_data[index].extend(buf_list) # <<<<<<<<<<<<<< @@ -11121,9 +11211,9 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_value(int __pyx_v_obs_ */ if (unlikely(__pyx_v_dc->col_data == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 682, __pyx_L1_error) + __PYX_ERR(0, 691, __pyx_L1_error) } - __pyx_t_6 = __Pyx_GetItemInt_List(__pyx_v_dc->col_data, __pyx_v_index, int, 1, __Pyx_PyLong_From_int, 1, 1, 1, 1, __Pyx_ReferenceSharing_SharedReference); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 682, __pyx_L1_error) + __pyx_t_6 = __Pyx_GetItemInt_List(__pyx_v_dc->col_data, __pyx_v_index, int, 1, __Pyx_PyLong_From_int, 1, 1, 1, 1, __Pyx_ReferenceSharing_SharedReference); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 691, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_5 = __pyx_t_6; __Pyx_INCREF(__pyx_t_5); @@ -11133,14 +11223,14 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_value(int __pyx_v_obs_ __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_extend, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 682, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 691, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } __pyx_L6:; - /* "pyreadstat/_readstat_parser.pyx":683 + /* "pyreadstat/_readstat_parser.pyx":692 * buf_list = [None] * 100000 * dc.col_data[index].extend(buf_list) * var_max_rows += 100000 # <<<<<<<<<<<<<< @@ -11149,23 +11239,23 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_value(int __pyx_v_obs_ */ __pyx_v_var_max_rows = (__pyx_v_var_max_rows + 0x186A0); - /* "pyreadstat/_readstat_parser.pyx":684 + /* "pyreadstat/_readstat_parser.pyx":693 * dc.col_data[index].extend(buf_list) * var_max_rows += 100000 * dc.col_data_len[index] = var_max_rows # <<<<<<<<<<<<<< * * # transform to python value types */ - __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_var_max_rows); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 684, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_var_max_rows); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 693, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (unlikely(__pyx_v_dc->col_data_len == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 684, __pyx_L1_error) + __PYX_ERR(0, 693, __pyx_L1_error) } - if (unlikely((__Pyx_SetItemInt(__pyx_v_dc->col_data_len, __pyx_v_index, __pyx_t_1, int, 1, __Pyx_PyLong_From_int, 1, 1, 1, 1, __Pyx_ReferenceSharing_SharedReference) < 0))) __PYX_ERR(0, 684, __pyx_L1_error) + if (unlikely((__Pyx_SetItemInt(__pyx_v_dc->col_data_len, __pyx_v_index, __pyx_t_1, int, 1, __Pyx_PyLong_From_int, 1, 1, 1, 1, __Pyx_ReferenceSharing_SharedReference) < 0))) __PYX_ERR(0, 693, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "pyreadstat/_readstat_parser.pyx":673 + /* "pyreadstat/_readstat_parser.pyx":682 * dc.max_n_obs = obs_index + 1 * var_max_rows = dc.col_data_len[index] * if var_max_rows <= obs_index: # <<<<<<<<<<<<<< @@ -11174,7 +11264,7 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_value(int __pyx_v_obs_ */ } - /* "pyreadstat/_readstat_parser.pyx":669 + /* "pyreadstat/_readstat_parser.pyx":678 * iscurnptypeobject = dc.col_dtypes_isobject[index] * iscurnptypefloat = dc.col_dytpes_isfloat[index] * if is_unkown_number_rows: # <<<<<<<<<<<<<< @@ -11183,7 +11273,7 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_value(int __pyx_v_obs_ */ } - /* "pyreadstat/_readstat_parser.pyx":687 + /* "pyreadstat/_readstat_parser.pyx":696 * * # transform to python value types * if readstat_value_is_missing(value, variable): # <<<<<<<<<<<<<< @@ -11193,7 +11283,7 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_value(int __pyx_v_obs_ __pyx_t_3 = (readstat_value_is_missing(__pyx_v_value, __pyx_v_variable) != 0); if (__pyx_t_3) { - /* "pyreadstat/_readstat_parser.pyx":689 + /* "pyreadstat/_readstat_parser.pyx":698 * if readstat_value_is_missing(value, variable): * # The user does not want to retrieve missing values * if not dc.usernan or readstat_value_is_system_missing(value): # <<<<<<<<<<<<<< @@ -11211,17 +11301,17 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_value(int __pyx_v_obs_ __pyx_L12_bool_binop_done:; if (__pyx_t_3) { - /* "pyreadstat/_readstat_parser.pyx":690 + /* "pyreadstat/_readstat_parser.pyx":699 * # The user does not want to retrieve missing values * if not dc.usernan or readstat_value_is_system_missing(value): * if output_format == "pandas": # <<<<<<<<<<<<<< * if iscurnptypefloat == 1 or iscurnptypeobject == 1: * # already allocated */ - __pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_v_output_format, __pyx_mstate_global->__pyx_n_u_pandas, Py_EQ)); if (unlikely((__pyx_t_3 < 0))) __PYX_ERR(0, 690, __pyx_L1_error) + __pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_v_output_format, __pyx_mstate_global->__pyx_n_u_pandas, Py_EQ)); if (unlikely((__pyx_t_3 < 0))) __PYX_ERR(0, 699, __pyx_L1_error) if (__pyx_t_3) { - /* "pyreadstat/_readstat_parser.pyx":691 + /* "pyreadstat/_readstat_parser.pyx":700 * if not dc.usernan or readstat_value_is_system_missing(value): * if output_format == "pandas": * if iscurnptypefloat == 1 or iscurnptypeobject == 1: # <<<<<<<<<<<<<< @@ -11241,7 +11331,7 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_value(int __pyx_v_obs_ goto __pyx_L15; } - /* "pyreadstat/_readstat_parser.pyx":697 + /* "pyreadstat/_readstat_parser.pyx":706 * # for any type except float, the numpy type will be object as now we have nans * else: * dc.col_numpy_dtypes[index] = object # <<<<<<<<<<<<<< @@ -11251,11 +11341,11 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_value(int __pyx_v_obs_ /*else*/ { if (unlikely(__pyx_v_dc->col_numpy_dtypes == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 697, __pyx_L1_error) + __PYX_ERR(0, 706, __pyx_L1_error) } - if (unlikely((__Pyx_SetItemInt(__pyx_v_dc->col_numpy_dtypes, __pyx_v_index, __pyx_builtin_object, int, 1, __Pyx_PyLong_From_int, 1, 1, 1, 1, __Pyx_ReferenceSharing_SharedReference) < 0))) __PYX_ERR(0, 697, __pyx_L1_error) + if (unlikely((__Pyx_SetItemInt(__pyx_v_dc->col_numpy_dtypes, __pyx_v_index, __pyx_builtin_object, int, 1, __Pyx_PyLong_From_int, 1, 1, 1, 1, __Pyx_ReferenceSharing_SharedReference) < 0))) __PYX_ERR(0, 706, __pyx_L1_error) - /* "pyreadstat/_readstat_parser.pyx":698 + /* "pyreadstat/_readstat_parser.pyx":707 * else: * dc.col_numpy_dtypes[index] = object * dc.col_dtypes_isobject[index] = 1 # <<<<<<<<<<<<<< @@ -11264,11 +11354,11 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_value(int __pyx_v_obs_ */ if (unlikely(__pyx_v_dc->col_dtypes_isobject == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 698, __pyx_L1_error) + __PYX_ERR(0, 707, __pyx_L1_error) } - if (unlikely((__Pyx_SetItemInt(__pyx_v_dc->col_dtypes_isobject, __pyx_v_index, __pyx_mstate_global->__pyx_int_1, int, 1, __Pyx_PyLong_From_int, 1, 1, 1, 1, __Pyx_ReferenceSharing_SharedReference) < 0))) __PYX_ERR(0, 698, __pyx_L1_error) + if (unlikely((__Pyx_SetItemInt(__pyx_v_dc->col_dtypes_isobject, __pyx_v_index, __pyx_mstate_global->__pyx_int_1, int, 1, __Pyx_PyLong_From_int, 1, 1, 1, 1, __Pyx_ReferenceSharing_SharedReference) < 0))) __PYX_ERR(0, 707, __pyx_L1_error) - /* "pyreadstat/_readstat_parser.pyx":699 + /* "pyreadstat/_readstat_parser.pyx":708 * dc.col_numpy_dtypes[index] = object * dc.col_dtypes_isobject[index] = 1 * iscurnptypeobject = 1 # <<<<<<<<<<<<<< @@ -11277,7 +11367,7 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_value(int __pyx_v_obs_ */ __pyx_v_iscurnptypeobject = 1; - /* "pyreadstat/_readstat_parser.pyx":700 + /* "pyreadstat/_readstat_parser.pyx":709 * dc.col_dtypes_isobject[index] = 1 * iscurnptypeobject = 1 * dc.col_data[index] = dc.col_data[index].astype(object, copy=False) # <<<<<<<<<<<<<< @@ -11286,57 +11376,57 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_value(int __pyx_v_obs_ */ if (unlikely(__pyx_v_dc->col_data == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 700, __pyx_L1_error) + __PYX_ERR(0, 709, __pyx_L1_error) } - __pyx_t_5 = __Pyx_GetItemInt_List(__pyx_v_dc->col_data, __pyx_v_index, int, 1, __Pyx_PyLong_From_int, 1, 1, 1, 1, __Pyx_ReferenceSharing_SharedReference); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 700, __pyx_L1_error) + __pyx_t_5 = __Pyx_GetItemInt_List(__pyx_v_dc->col_data, __pyx_v_index, int, 1, __Pyx_PyLong_From_int, 1, 1, 1, 1, __Pyx_ReferenceSharing_SharedReference); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 709, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_6 = __pyx_t_5; __Pyx_INCREF(__pyx_t_6); __pyx_t_7 = 0; { PyObject *__pyx_callargs[2 + ((CYTHON_VECTORCALL) ? 1 : 0)] = {__pyx_t_6, __pyx_builtin_object}; - __pyx_t_4 = __Pyx_MakeVectorcallBuilderKwds(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 700, __pyx_L1_error) + __pyx_t_4 = __Pyx_MakeVectorcallBuilderKwds(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 709, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - if (__Pyx_VectorcallBuilder_AddArg(__pyx_mstate_global->__pyx_n_u_copy, Py_False, __pyx_t_4, __pyx_callargs+2, 0) < (0)) __PYX_ERR(0, 700, __pyx_L1_error) + if (__Pyx_VectorcallBuilder_AddArg(__pyx_mstate_global->__pyx_n_u_copy, Py_False, __pyx_t_4, __pyx_callargs+2, 0) < (0)) __PYX_ERR(0, 709, __pyx_L1_error) __pyx_t_1 = __Pyx_Object_VectorcallMethod_CallFromBuilder((PyObject*)__pyx_mstate_global->__pyx_n_u_astype, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET), __pyx_t_4); __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 700, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 709, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } if (unlikely(__pyx_v_dc->col_data == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 700, __pyx_L1_error) + __PYX_ERR(0, 709, __pyx_L1_error) } - if (unlikely((__Pyx_SetItemInt(__pyx_v_dc->col_data, __pyx_v_index, __pyx_t_1, int, 1, __Pyx_PyLong_From_int, 1, 1, 1, 1, __Pyx_ReferenceSharing_SharedReference) < 0))) __PYX_ERR(0, 700, __pyx_L1_error) + if (unlikely((__Pyx_SetItemInt(__pyx_v_dc->col_data, __pyx_v_index, __pyx_t_1, int, 1, __Pyx_PyLong_From_int, 1, 1, 1, 1, __Pyx_ReferenceSharing_SharedReference) < 0))) __PYX_ERR(0, 709, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "pyreadstat/_readstat_parser.pyx":701 + /* "pyreadstat/_readstat_parser.pyx":710 * iscurnptypeobject = 1 * dc.col_data[index] = dc.col_data[index].astype(object, copy=False) * dc.col_data[index][obs_index:] = np.nan # <<<<<<<<<<<<<< * #dc.col_data[index][obs_index] = NAN * elif readstat_value_is_defined_missing(value, variable): */ - __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 701, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 710, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_nan); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 701, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_nan); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 710, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (unlikely(__pyx_v_dc->col_data == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 701, __pyx_L1_error) + __PYX_ERR(0, 710, __pyx_L1_error) } - __pyx_t_1 = __Pyx_GetItemInt_List(__pyx_v_dc->col_data, __pyx_v_index, int, 1, __Pyx_PyLong_From_int, 1, 1, 1, 1, __Pyx_ReferenceSharing_SharedReference); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 701, __pyx_L1_error) + __pyx_t_1 = __Pyx_GetItemInt_List(__pyx_v_dc->col_data, __pyx_v_index, int, 1, __Pyx_PyLong_From_int, 1, 1, 1, 1, __Pyx_ReferenceSharing_SharedReference); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 710, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - if (__Pyx_PyObject_SetSlice(__pyx_t_1, __pyx_t_5, __pyx_v_obs_index, 0, NULL, NULL, NULL, 1, 0, 1) < (0)) __PYX_ERR(0, 701, __pyx_L1_error) + if (__Pyx_PyObject_SetSlice(__pyx_t_1, __pyx_t_5, __pyx_v_obs_index, 0, NULL, NULL, NULL, 1, 0, 1) < (0)) __PYX_ERR(0, 710, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } __pyx_L15:; - /* "pyreadstat/_readstat_parser.pyx":690 + /* "pyreadstat/_readstat_parser.pyx":699 * # The user does not want to retrieve missing values * if not dc.usernan or readstat_value_is_system_missing(value): * if output_format == "pandas": # <<<<<<<<<<<<<< @@ -11345,7 +11435,7 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_value(int __pyx_v_obs_ */ } - /* "pyreadstat/_readstat_parser.pyx":689 + /* "pyreadstat/_readstat_parser.pyx":698 * if readstat_value_is_missing(value, variable): * # The user does not want to retrieve missing values * if not dc.usernan or readstat_value_is_system_missing(value): # <<<<<<<<<<<<<< @@ -11355,7 +11445,7 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_value(int __pyx_v_obs_ goto __pyx_L11; } - /* "pyreadstat/_readstat_parser.pyx":703 + /* "pyreadstat/_readstat_parser.pyx":712 * dc.col_data[index][obs_index:] = np.nan * #dc.col_data[index][obs_index] = NAN * elif readstat_value_is_defined_missing(value, variable): # <<<<<<<<<<<<<< @@ -11365,19 +11455,19 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_value(int __pyx_v_obs_ __pyx_t_3 = (readstat_value_is_defined_missing(__pyx_v_value, __pyx_v_variable) != 0); if (__pyx_t_3) { - /* "pyreadstat/_readstat_parser.pyx":705 + /* "pyreadstat/_readstat_parser.pyx":714 * elif readstat_value_is_defined_missing(value, variable): * # SPSS missing values * pyvalue = convert_readstat_to_python_value(value, index, dc) # <<<<<<<<<<<<<< * dc.col_data[index][obs_index] = pyvalue * elif readstat_value_is_tagged_missing(value): */ - __pyx_t_5 = __pyx_f_10pyreadstat_16_readstat_parser_convert_readstat_to_python_value(__pyx_v_value, __pyx_v_index, __pyx_v_dc); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 705, __pyx_L1_error) + __pyx_t_5 = __pyx_f_10pyreadstat_16_readstat_parser_convert_readstat_to_python_value(__pyx_v_value, __pyx_v_index, __pyx_v_dc); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 714, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_v_pyvalue = __pyx_t_5; __pyx_t_5 = 0; - /* "pyreadstat/_readstat_parser.pyx":706 + /* "pyreadstat/_readstat_parser.pyx":715 * # SPSS missing values * pyvalue = convert_readstat_to_python_value(value, index, dc) * dc.col_data[index][obs_index] = pyvalue # <<<<<<<<<<<<<< @@ -11386,14 +11476,14 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_value(int __pyx_v_obs_ */ if (unlikely(__pyx_v_dc->col_data == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 706, __pyx_L1_error) + __PYX_ERR(0, 715, __pyx_L1_error) } - __pyx_t_5 = __Pyx_GetItemInt_List(__pyx_v_dc->col_data, __pyx_v_index, int, 1, __Pyx_PyLong_From_int, 1, 1, 1, 1, __Pyx_ReferenceSharing_SharedReference); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 706, __pyx_L1_error) + __pyx_t_5 = __Pyx_GetItemInt_List(__pyx_v_dc->col_data, __pyx_v_index, int, 1, __Pyx_PyLong_From_int, 1, 1, 1, 1, __Pyx_ReferenceSharing_SharedReference); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 715, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); - if (unlikely((__Pyx_SetItemInt(__pyx_t_5, __pyx_v_obs_index, __pyx_v_pyvalue, int, 1, __Pyx_PyLong_From_int, 0, 1, 1, 1, __Pyx_ReferenceSharing_OwnStrongReference) < 0))) __PYX_ERR(0, 706, __pyx_L1_error) + if (unlikely((__Pyx_SetItemInt(__pyx_t_5, __pyx_v_obs_index, __pyx_v_pyvalue, int, 1, __Pyx_PyLong_From_int, 0, 1, 1, 1, __Pyx_ReferenceSharing_OwnStrongReference) < 0))) __PYX_ERR(0, 715, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - /* "pyreadstat/_readstat_parser.pyx":703 + /* "pyreadstat/_readstat_parser.pyx":712 * dc.col_data[index][obs_index:] = np.nan * #dc.col_data[index][obs_index] = NAN * elif readstat_value_is_defined_missing(value, variable): # <<<<<<<<<<<<<< @@ -11403,7 +11493,7 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_value(int __pyx_v_obs_ goto __pyx_L11; } - /* "pyreadstat/_readstat_parser.pyx":707 + /* "pyreadstat/_readstat_parser.pyx":716 * pyvalue = convert_readstat_to_python_value(value, index, dc) * dc.col_data[index][obs_index] = pyvalue * elif readstat_value_is_tagged_missing(value): # <<<<<<<<<<<<<< @@ -11413,7 +11503,7 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_value(int __pyx_v_obs_ __pyx_t_3 = (readstat_value_is_tagged_missing(__pyx_v_value) != 0); if (__pyx_t_3) { - /* "pyreadstat/_readstat_parser.pyx":708 + /* "pyreadstat/_readstat_parser.pyx":717 * dc.col_data[index][obs_index] = pyvalue * elif readstat_value_is_tagged_missing(value): * iscurnptypeobject = dc.col_dtypes_isobject[index] # <<<<<<<<<<<<<< @@ -11422,15 +11512,15 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_value(int __pyx_v_obs_ */ if (unlikely(__pyx_v_dc->col_dtypes_isobject == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 708, __pyx_L1_error) + __PYX_ERR(0, 717, __pyx_L1_error) } - __pyx_t_5 = __Pyx_GetItemInt_List(__pyx_v_dc->col_dtypes_isobject, __pyx_v_index, int, 1, __Pyx_PyLong_From_int, 1, 1, 1, 1, __Pyx_ReferenceSharing_SharedReference); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 708, __pyx_L1_error) + __pyx_t_5 = __Pyx_GetItemInt_List(__pyx_v_dc->col_dtypes_isobject, __pyx_v_index, int, 1, __Pyx_PyLong_From_int, 1, 1, 1, 1, __Pyx_ReferenceSharing_SharedReference); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 717, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); - __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 708, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 717, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_v_iscurnptypeobject = __pyx_t_3; - /* "pyreadstat/_readstat_parser.pyx":710 + /* "pyreadstat/_readstat_parser.pyx":719 * iscurnptypeobject = dc.col_dtypes_isobject[index] * # SAS and Stata missing values * missing_tag = readstat_value_tag(value) # <<<<<<<<<<<<<< @@ -11439,17 +11529,17 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_value(int __pyx_v_obs_ */ __pyx_v_missing_tag = ((int)readstat_value_tag(__pyx_v_value)); - /* "pyreadstat/_readstat_parser.pyx":713 + /* "pyreadstat/_readstat_parser.pyx":722 * # In SAS missing values are A to Z or _ in stata a to z * # if (missing_tag >=65 and missing_tag <= 90) or missing_tag == 95 or (missing_tag >=61 and missing_tag <= 122): * if output_format == "pandas": # <<<<<<<<<<<<<< * if iscurnptypeobject == 1: * dc.col_data[index][obs_index] = chr(missing_tag) */ - __pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_v_output_format, __pyx_mstate_global->__pyx_n_u_pandas, Py_EQ)); if (unlikely((__pyx_t_3 < 0))) __PYX_ERR(0, 713, __pyx_L1_error) + __pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_v_output_format, __pyx_mstate_global->__pyx_n_u_pandas, Py_EQ)); if (unlikely((__pyx_t_3 < 0))) __PYX_ERR(0, 722, __pyx_L1_error) if (__pyx_t_3) { - /* "pyreadstat/_readstat_parser.pyx":714 + /* "pyreadstat/_readstat_parser.pyx":723 * # if (missing_tag >=65 and missing_tag <= 90) or missing_tag == 95 or (missing_tag >=61 and missing_tag <= 122): * if output_format == "pandas": * if iscurnptypeobject == 1: # <<<<<<<<<<<<<< @@ -11459,26 +11549,26 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_value(int __pyx_v_obs_ __pyx_t_3 = (__pyx_v_iscurnptypeobject == 1); if (__pyx_t_3) { - /* "pyreadstat/_readstat_parser.pyx":715 + /* "pyreadstat/_readstat_parser.pyx":724 * if output_format == "pandas": * if iscurnptypeobject == 1: * dc.col_data[index][obs_index] = chr(missing_tag) # <<<<<<<<<<<<<< * else: * dc.col_numpy_dtypes[index] = object */ - __pyx_t_5 = PyUnicode_FromOrdinal(__pyx_v_missing_tag); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 715, __pyx_L1_error) + __pyx_t_5 = PyUnicode_FromOrdinal(__pyx_v_missing_tag); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 724, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (unlikely(__pyx_v_dc->col_data == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 715, __pyx_L1_error) + __PYX_ERR(0, 724, __pyx_L1_error) } - __pyx_t_1 = __Pyx_GetItemInt_List(__pyx_v_dc->col_data, __pyx_v_index, int, 1, __Pyx_PyLong_From_int, 1, 1, 1, 1, __Pyx_ReferenceSharing_SharedReference); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 715, __pyx_L1_error) + __pyx_t_1 = __Pyx_GetItemInt_List(__pyx_v_dc->col_data, __pyx_v_index, int, 1, __Pyx_PyLong_From_int, 1, 1, 1, 1, __Pyx_ReferenceSharing_SharedReference); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 724, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - if (unlikely((__Pyx_SetItemInt(__pyx_t_1, __pyx_v_obs_index, __pyx_t_5, int, 1, __Pyx_PyLong_From_int, 0, 1, 1, 1, __Pyx_ReferenceSharing_OwnStrongReference) < 0))) __PYX_ERR(0, 715, __pyx_L1_error) + if (unlikely((__Pyx_SetItemInt(__pyx_t_1, __pyx_v_obs_index, __pyx_t_5, int, 1, __Pyx_PyLong_From_int, 0, 1, 1, 1, __Pyx_ReferenceSharing_OwnStrongReference) < 0))) __PYX_ERR(0, 724, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - /* "pyreadstat/_readstat_parser.pyx":714 + /* "pyreadstat/_readstat_parser.pyx":723 * # if (missing_tag >=65 and missing_tag <= 90) or missing_tag == 95 or (missing_tag >=61 and missing_tag <= 122): * if output_format == "pandas": * if iscurnptypeobject == 1: # <<<<<<<<<<<<<< @@ -11488,7 +11578,7 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_value(int __pyx_v_obs_ goto __pyx_L19; } - /* "pyreadstat/_readstat_parser.pyx":717 + /* "pyreadstat/_readstat_parser.pyx":726 * dc.col_data[index][obs_index] = chr(missing_tag) * else: * dc.col_numpy_dtypes[index] = object # <<<<<<<<<<<<<< @@ -11498,11 +11588,11 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_value(int __pyx_v_obs_ /*else*/ { if (unlikely(__pyx_v_dc->col_numpy_dtypes == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 717, __pyx_L1_error) + __PYX_ERR(0, 726, __pyx_L1_error) } - if (unlikely((__Pyx_SetItemInt(__pyx_v_dc->col_numpy_dtypes, __pyx_v_index, __pyx_builtin_object, int, 1, __Pyx_PyLong_From_int, 1, 1, 1, 1, __Pyx_ReferenceSharing_SharedReference) < 0))) __PYX_ERR(0, 717, __pyx_L1_error) + if (unlikely((__Pyx_SetItemInt(__pyx_v_dc->col_numpy_dtypes, __pyx_v_index, __pyx_builtin_object, int, 1, __Pyx_PyLong_From_int, 1, 1, 1, 1, __Pyx_ReferenceSharing_SharedReference) < 0))) __PYX_ERR(0, 726, __pyx_L1_error) - /* "pyreadstat/_readstat_parser.pyx":718 + /* "pyreadstat/_readstat_parser.pyx":727 * else: * dc.col_numpy_dtypes[index] = object * dc.col_dtypes_isobject[index] = 1 # <<<<<<<<<<<<<< @@ -11511,11 +11601,11 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_value(int __pyx_v_obs_ */ if (unlikely(__pyx_v_dc->col_dtypes_isobject == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 718, __pyx_L1_error) + __PYX_ERR(0, 727, __pyx_L1_error) } - if (unlikely((__Pyx_SetItemInt(__pyx_v_dc->col_dtypes_isobject, __pyx_v_index, __pyx_mstate_global->__pyx_int_1, int, 1, __Pyx_PyLong_From_int, 1, 1, 1, 1, __Pyx_ReferenceSharing_SharedReference) < 0))) __PYX_ERR(0, 718, __pyx_L1_error) + if (unlikely((__Pyx_SetItemInt(__pyx_v_dc->col_dtypes_isobject, __pyx_v_index, __pyx_mstate_global->__pyx_int_1, int, 1, __Pyx_PyLong_From_int, 1, 1, 1, 1, __Pyx_ReferenceSharing_SharedReference) < 0))) __PYX_ERR(0, 727, __pyx_L1_error) - /* "pyreadstat/_readstat_parser.pyx":719 + /* "pyreadstat/_readstat_parser.pyx":728 * dc.col_numpy_dtypes[index] = object * dc.col_dtypes_isobject[index] = 1 * dc.col_dytpes_isfloat[index] = 0 # <<<<<<<<<<<<<< @@ -11524,11 +11614,11 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_value(int __pyx_v_obs_ */ if (unlikely(__pyx_v_dc->col_dytpes_isfloat == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 719, __pyx_L1_error) + __PYX_ERR(0, 728, __pyx_L1_error) } - if (unlikely((__Pyx_SetItemInt(__pyx_v_dc->col_dytpes_isfloat, __pyx_v_index, __pyx_mstate_global->__pyx_int_0, int, 1, __Pyx_PyLong_From_int, 1, 1, 1, 1, __Pyx_ReferenceSharing_SharedReference) < 0))) __PYX_ERR(0, 719, __pyx_L1_error) + if (unlikely((__Pyx_SetItemInt(__pyx_v_dc->col_dytpes_isfloat, __pyx_v_index, __pyx_mstate_global->__pyx_int_0, int, 1, __Pyx_PyLong_From_int, 1, 1, 1, 1, __Pyx_ReferenceSharing_SharedReference) < 0))) __PYX_ERR(0, 728, __pyx_L1_error) - /* "pyreadstat/_readstat_parser.pyx":720 + /* "pyreadstat/_readstat_parser.pyx":729 * dc.col_dtypes_isobject[index] = 1 * dc.col_dytpes_isfloat[index] = 0 * iscurnptypeobject = 1 # <<<<<<<<<<<<<< @@ -11537,7 +11627,7 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_value(int __pyx_v_obs_ */ __pyx_v_iscurnptypeobject = 1; - /* "pyreadstat/_readstat_parser.pyx":721 + /* "pyreadstat/_readstat_parser.pyx":730 * dc.col_dytpes_isfloat[index] = 0 * iscurnptypeobject = 1 * dc.col_data[index] = dc.col_data[index].astype(object, copy=False) # <<<<<<<<<<<<<< @@ -11546,54 +11636,54 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_value(int __pyx_v_obs_ */ if (unlikely(__pyx_v_dc->col_data == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 721, __pyx_L1_error) + __PYX_ERR(0, 730, __pyx_L1_error) } - __pyx_t_4 = __Pyx_GetItemInt_List(__pyx_v_dc->col_data, __pyx_v_index, int, 1, __Pyx_PyLong_From_int, 1, 1, 1, 1, __Pyx_ReferenceSharing_SharedReference); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 721, __pyx_L1_error) + __pyx_t_4 = __Pyx_GetItemInt_List(__pyx_v_dc->col_data, __pyx_v_index, int, 1, __Pyx_PyLong_From_int, 1, 1, 1, 1, __Pyx_ReferenceSharing_SharedReference); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 730, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_1 = __pyx_t_4; __Pyx_INCREF(__pyx_t_1); __pyx_t_7 = 0; { PyObject *__pyx_callargs[2 + ((CYTHON_VECTORCALL) ? 1 : 0)] = {__pyx_t_1, __pyx_builtin_object}; - __pyx_t_6 = __Pyx_MakeVectorcallBuilderKwds(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 721, __pyx_L1_error) + __pyx_t_6 = __Pyx_MakeVectorcallBuilderKwds(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 730, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); - if (__Pyx_VectorcallBuilder_AddArg(__pyx_mstate_global->__pyx_n_u_copy, Py_False, __pyx_t_6, __pyx_callargs+2, 0) < (0)) __PYX_ERR(0, 721, __pyx_L1_error) + if (__Pyx_VectorcallBuilder_AddArg(__pyx_mstate_global->__pyx_n_u_copy, Py_False, __pyx_t_6, __pyx_callargs+2, 0) < (0)) __PYX_ERR(0, 730, __pyx_L1_error) __pyx_t_5 = __Pyx_Object_VectorcallMethod_CallFromBuilder((PyObject*)__pyx_mstate_global->__pyx_n_u_astype, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET), __pyx_t_6); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 721, __pyx_L1_error) + if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 730, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); } if (unlikely(__pyx_v_dc->col_data == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 721, __pyx_L1_error) + __PYX_ERR(0, 730, __pyx_L1_error) } - if (unlikely((__Pyx_SetItemInt(__pyx_v_dc->col_data, __pyx_v_index, __pyx_t_5, int, 1, __Pyx_PyLong_From_int, 1, 1, 1, 1, __Pyx_ReferenceSharing_SharedReference) < 0))) __PYX_ERR(0, 721, __pyx_L1_error) + if (unlikely((__Pyx_SetItemInt(__pyx_v_dc->col_data, __pyx_v_index, __pyx_t_5, int, 1, __Pyx_PyLong_From_int, 1, 1, 1, 1, __Pyx_ReferenceSharing_SharedReference) < 0))) __PYX_ERR(0, 730, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - /* "pyreadstat/_readstat_parser.pyx":722 + /* "pyreadstat/_readstat_parser.pyx":731 * iscurnptypeobject = 1 * dc.col_data[index] = dc.col_data[index].astype(object, copy=False) * dc.col_data[index][obs_index] = chr(missing_tag) # <<<<<<<<<<<<<< * else: * dc.col_data[index][obs_index] = chr(missing_tag) */ - __pyx_t_5 = PyUnicode_FromOrdinal(__pyx_v_missing_tag); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 722, __pyx_L1_error) + __pyx_t_5 = PyUnicode_FromOrdinal(__pyx_v_missing_tag); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 731, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (unlikely(__pyx_v_dc->col_data == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 722, __pyx_L1_error) + __PYX_ERR(0, 731, __pyx_L1_error) } - __pyx_t_4 = __Pyx_GetItemInt_List(__pyx_v_dc->col_data, __pyx_v_index, int, 1, __Pyx_PyLong_From_int, 1, 1, 1, 1, __Pyx_ReferenceSharing_SharedReference); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 722, __pyx_L1_error) + __pyx_t_4 = __Pyx_GetItemInt_List(__pyx_v_dc->col_data, __pyx_v_index, int, 1, __Pyx_PyLong_From_int, 1, 1, 1, 1, __Pyx_ReferenceSharing_SharedReference); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 731, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - if (unlikely((__Pyx_SetItemInt(__pyx_t_4, __pyx_v_obs_index, __pyx_t_5, int, 1, __Pyx_PyLong_From_int, 0, 1, 1, 1, __Pyx_ReferenceSharing_OwnStrongReference) < 0))) __PYX_ERR(0, 722, __pyx_L1_error) + if (unlikely((__Pyx_SetItemInt(__pyx_t_4, __pyx_v_obs_index, __pyx_t_5, int, 1, __Pyx_PyLong_From_int, 0, 1, 1, 1, __Pyx_ReferenceSharing_OwnStrongReference) < 0))) __PYX_ERR(0, 731, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } __pyx_L19:; - /* "pyreadstat/_readstat_parser.pyx":713 + /* "pyreadstat/_readstat_parser.pyx":722 * # In SAS missing values are A to Z or _ in stata a to z * # if (missing_tag >=65 and missing_tag <= 90) or missing_tag == 95 or (missing_tag >=61 and missing_tag <= 122): * if output_format == "pandas": # <<<<<<<<<<<<<< @@ -11603,7 +11693,7 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_value(int __pyx_v_obs_ goto __pyx_L18; } - /* "pyreadstat/_readstat_parser.pyx":724 + /* "pyreadstat/_readstat_parser.pyx":733 * dc.col_data[index][obs_index] = chr(missing_tag) * else: * dc.col_data[index][obs_index] = chr(missing_tag) # <<<<<<<<<<<<<< @@ -11611,21 +11701,21 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_value(int __pyx_v_obs_ * if curset is None: */ /*else*/ { - __pyx_t_5 = PyUnicode_FromOrdinal(__pyx_v_missing_tag); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 724, __pyx_L1_error) + __pyx_t_5 = PyUnicode_FromOrdinal(__pyx_v_missing_tag); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 733, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (unlikely(__pyx_v_dc->col_data == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 724, __pyx_L1_error) + __PYX_ERR(0, 733, __pyx_L1_error) } - __pyx_t_4 = __Pyx_GetItemInt_List(__pyx_v_dc->col_data, __pyx_v_index, int, 1, __Pyx_PyLong_From_int, 1, 1, 1, 1, __Pyx_ReferenceSharing_SharedReference); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 724, __pyx_L1_error) + __pyx_t_4 = __Pyx_GetItemInt_List(__pyx_v_dc->col_data, __pyx_v_index, int, 1, __Pyx_PyLong_From_int, 1, 1, 1, 1, __Pyx_ReferenceSharing_SharedReference); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 733, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - if (unlikely((__Pyx_SetItemInt(__pyx_t_4, __pyx_v_obs_index, __pyx_t_5, int, 1, __Pyx_PyLong_From_int, 0, 1, 1, 1, __Pyx_ReferenceSharing_OwnStrongReference) < 0))) __PYX_ERR(0, 724, __pyx_L1_error) + if (unlikely((__Pyx_SetItemInt(__pyx_t_4, __pyx_v_obs_index, __pyx_t_5, int, 1, __Pyx_PyLong_From_int, 0, 1, 1, 1, __Pyx_ReferenceSharing_OwnStrongReference) < 0))) __PYX_ERR(0, 733, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } __pyx_L18:; - /* "pyreadstat/_readstat_parser.pyx":725 + /* "pyreadstat/_readstat_parser.pyx":734 * else: * dc.col_data[index][obs_index] = chr(missing_tag) * curset = dc.missing_user_values.get(index) # <<<<<<<<<<<<<< @@ -11634,18 +11724,18 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_value(int __pyx_v_obs_ */ if (unlikely(__pyx_v_dc->missing_user_values == Py_None)) { PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "get"); - __PYX_ERR(0, 725, __pyx_L1_error) + __PYX_ERR(0, 734, __pyx_L1_error) } - __pyx_t_5 = __Pyx_PyLong_From_int(__pyx_v_index); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 725, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyLong_From_int(__pyx_v_index); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 734, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); - __pyx_t_4 = __Pyx_PyDict_GetItemDefault(__pyx_v_dc->missing_user_values, __pyx_t_5, Py_None); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 725, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyDict_GetItemDefault(__pyx_v_dc->missing_user_values, __pyx_t_5, Py_None); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 734, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - if (!(likely(PySet_CheckExact(__pyx_t_4))||((__pyx_t_4) == Py_None) || __Pyx_RaiseUnexpectedTypeError("set", __pyx_t_4))) __PYX_ERR(0, 725, __pyx_L1_error) + if (!(likely(PySet_CheckExact(__pyx_t_4))||((__pyx_t_4) == Py_None) || __Pyx_RaiseUnexpectedTypeError("set", __pyx_t_4))) __PYX_ERR(0, 734, __pyx_L1_error) __pyx_v_curset = ((PyObject*)__pyx_t_4); __pyx_t_4 = 0; - /* "pyreadstat/_readstat_parser.pyx":726 + /* "pyreadstat/_readstat_parser.pyx":735 * dc.col_data[index][obs_index] = chr(missing_tag) * curset = dc.missing_user_values.get(index) * if curset is None: # <<<<<<<<<<<<<< @@ -11655,19 +11745,19 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_value(int __pyx_v_obs_ __pyx_t_3 = (__pyx_v_curset == ((PyObject*)Py_None)); if (__pyx_t_3) { - /* "pyreadstat/_readstat_parser.pyx":727 + /* "pyreadstat/_readstat_parser.pyx":736 * curset = dc.missing_user_values.get(index) * if curset is None: * curset = set() # <<<<<<<<<<<<<< * curset.add(chr(missing_tag)) * dc.missing_user_values[index] = curset */ - __pyx_t_4 = PySet_New(0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 727, __pyx_L1_error) + __pyx_t_4 = PySet_New(0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 736, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF_SET(__pyx_v_curset, ((PyObject*)__pyx_t_4)); __pyx_t_4 = 0; - /* "pyreadstat/_readstat_parser.pyx":726 + /* "pyreadstat/_readstat_parser.pyx":735 * dc.col_data[index][obs_index] = chr(missing_tag) * curset = dc.missing_user_values.get(index) * if curset is None: # <<<<<<<<<<<<<< @@ -11676,7 +11766,7 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_value(int __pyx_v_obs_ */ } - /* "pyreadstat/_readstat_parser.pyx":728 + /* "pyreadstat/_readstat_parser.pyx":737 * if curset is None: * curset = set() * curset.add(chr(missing_tag)) # <<<<<<<<<<<<<< @@ -11685,14 +11775,14 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_value(int __pyx_v_obs_ */ if (unlikely(__pyx_v_curset == Py_None)) { PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "add"); - __PYX_ERR(0, 728, __pyx_L1_error) + __PYX_ERR(0, 737, __pyx_L1_error) } - __pyx_t_4 = PyUnicode_FromOrdinal(__pyx_v_missing_tag); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 728, __pyx_L1_error) + __pyx_t_4 = PyUnicode_FromOrdinal(__pyx_v_missing_tag); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 737, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_9 = PySet_Add(__pyx_v_curset, __pyx_t_4); if (unlikely(__pyx_t_9 == ((int)-1))) __PYX_ERR(0, 728, __pyx_L1_error) + __pyx_t_9 = PySet_Add(__pyx_v_curset, __pyx_t_4); if (unlikely(__pyx_t_9 == ((int)-1))) __PYX_ERR(0, 737, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - /* "pyreadstat/_readstat_parser.pyx":729 + /* "pyreadstat/_readstat_parser.pyx":738 * curset = set() * curset.add(chr(missing_tag)) * dc.missing_user_values[index] = curset # <<<<<<<<<<<<<< @@ -11701,14 +11791,14 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_value(int __pyx_v_obs_ */ if (unlikely(__pyx_v_dc->missing_user_values == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 729, __pyx_L1_error) + __PYX_ERR(0, 738, __pyx_L1_error) } - __pyx_t_4 = __Pyx_PyLong_From_int(__pyx_v_index); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 729, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyLong_From_int(__pyx_v_index); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 738, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - if (unlikely((PyDict_SetItem(__pyx_v_dc->missing_user_values, __pyx_t_4, __pyx_v_curset) < 0))) __PYX_ERR(0, 729, __pyx_L1_error) + if (unlikely((PyDict_SetItem(__pyx_v_dc->missing_user_values, __pyx_t_4, __pyx_v_curset) < 0))) __PYX_ERR(0, 738, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - /* "pyreadstat/_readstat_parser.pyx":707 + /* "pyreadstat/_readstat_parser.pyx":716 * pyvalue = convert_readstat_to_python_value(value, index, dc) * dc.col_data[index][obs_index] = pyvalue * elif readstat_value_is_tagged_missing(value): # <<<<<<<<<<<<<< @@ -11718,7 +11808,7 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_value(int __pyx_v_obs_ } __pyx_L11:; - /* "pyreadstat/_readstat_parser.pyx":687 + /* "pyreadstat/_readstat_parser.pyx":696 * * # transform to python value types * if readstat_value_is_missing(value, variable): # <<<<<<<<<<<<<< @@ -11728,7 +11818,7 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_value(int __pyx_v_obs_ goto __pyx_L10; } - /* "pyreadstat/_readstat_parser.pyx":731 + /* "pyreadstat/_readstat_parser.pyx":740 * dc.missing_user_values[index] = curset * else: * pyvalue = convert_readstat_to_python_value(value, index, dc) # <<<<<<<<<<<<<< @@ -11736,12 +11826,12 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_value(int __pyx_v_obs_ * */ /*else*/ { - __pyx_t_4 = __pyx_f_10pyreadstat_16_readstat_parser_convert_readstat_to_python_value(__pyx_v_value, __pyx_v_index, __pyx_v_dc); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 731, __pyx_L1_error) + __pyx_t_4 = __pyx_f_10pyreadstat_16_readstat_parser_convert_readstat_to_python_value(__pyx_v_value, __pyx_v_index, __pyx_v_dc); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 740, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_v_pyvalue = __pyx_t_4; __pyx_t_4 = 0; - /* "pyreadstat/_readstat_parser.pyx":732 + /* "pyreadstat/_readstat_parser.pyx":741 * else: * pyvalue = convert_readstat_to_python_value(value, index, dc) * dc.col_data[index][obs_index] = pyvalue # <<<<<<<<<<<<<< @@ -11750,16 +11840,16 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_value(int __pyx_v_obs_ */ if (unlikely(__pyx_v_dc->col_data == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 732, __pyx_L1_error) + __PYX_ERR(0, 741, __pyx_L1_error) } - __pyx_t_4 = __Pyx_GetItemInt_List(__pyx_v_dc->col_data, __pyx_v_index, int, 1, __Pyx_PyLong_From_int, 1, 1, 1, 1, __Pyx_ReferenceSharing_SharedReference); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 732, __pyx_L1_error) + __pyx_t_4 = __Pyx_GetItemInt_List(__pyx_v_dc->col_data, __pyx_v_index, int, 1, __Pyx_PyLong_From_int, 1, 1, 1, 1, __Pyx_ReferenceSharing_SharedReference); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 741, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - if (unlikely((__Pyx_SetItemInt(__pyx_t_4, __pyx_v_obs_index, __pyx_v_pyvalue, int, 1, __Pyx_PyLong_From_int, 0, 1, 1, 1, __Pyx_ReferenceSharing_OwnStrongReference) < 0))) __PYX_ERR(0, 732, __pyx_L1_error) + if (unlikely((__Pyx_SetItemInt(__pyx_t_4, __pyx_v_obs_index, __pyx_v_pyvalue, int, 1, __Pyx_PyLong_From_int, 0, 1, 1, 1, __Pyx_ReferenceSharing_OwnStrongReference) < 0))) __PYX_ERR(0, 741, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; } __pyx_L10:; - /* "pyreadstat/_readstat_parser.pyx":734 + /* "pyreadstat/_readstat_parser.pyx":743 * dc.col_data[index][obs_index] = pyvalue * * return READSTAT_HANDLER_OK # <<<<<<<<<<<<<< @@ -11769,7 +11859,7 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_value(int __pyx_v_obs_ __pyx_r = READSTAT_HANDLER_OK; goto __pyx_L0; - /* "pyreadstat/_readstat_parser.pyx":638 + /* "pyreadstat/_readstat_parser.pyx":647 * * * cdef int handle_value(int obs_index, readstat_variable_t * variable, readstat_value_t value, void *ctx) except READSTAT_HANDLER_ABORT: # <<<<<<<<<<<<<< @@ -11796,7 +11886,7 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_value(int __pyx_v_obs_ return __pyx_r; } -/* "pyreadstat/_readstat_parser.pyx":737 +/* "pyreadstat/_readstat_parser.pyx":746 * * * cdef int handle_value_label(char *val_labels, readstat_value_t value, char *label, void *ctx) except READSTAT_HANDLER_ABORT: # <<<<<<<<<<<<<< @@ -11835,7 +11925,7 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_value_label(char *__py int __pyx_clineno = 0; __Pyx_RefNannySetupContext("handle_value_label", 0); - /* "pyreadstat/_readstat_parser.pyx":743 + /* "pyreadstat/_readstat_parser.pyx":752 * """ * * cdef data_container dc = ctx # <<<<<<<<<<<<<< @@ -11847,14 +11937,14 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_value_label(char *__py __pyx_v_dc = ((struct __pyx_obj_10pyreadstat_16_readstat_parser_data_container *)__pyx_t_1); __pyx_t_1 = 0; - /* "pyreadstat/_readstat_parser.pyx":761 + /* "pyreadstat/_readstat_parser.pyx":770 * cdef str value_label_name * * var_label = val_labels # <<<<<<<<<<<<<< * value_label_name = label * */ - __pyx_t_1 = __Pyx_PyUnicode_FromString(__pyx_v_val_labels); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 761, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyUnicode_FromString(__pyx_v_val_labels); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 770, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __pyx_t_1; __Pyx_INCREF(__pyx_t_2); @@ -11862,14 +11952,14 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_value_label(char *__py __pyx_v_var_label = ((PyObject*)__pyx_t_2); __pyx_t_2 = 0; - /* "pyreadstat/_readstat_parser.pyx":762 + /* "pyreadstat/_readstat_parser.pyx":771 * * var_label = val_labels * value_label_name = label # <<<<<<<<<<<<<< * * cdef readstat_type_t value_type */ - __pyx_t_2 = __Pyx_PyUnicode_FromString(__pyx_v_label); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 762, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyUnicode_FromString(__pyx_v_label); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 771, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_1 = __pyx_t_2; __Pyx_INCREF(__pyx_t_1); @@ -11877,7 +11967,7 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_value_label(char *__py __pyx_v_value_label_name = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - /* "pyreadstat/_readstat_parser.pyx":765 + /* "pyreadstat/_readstat_parser.pyx":774 * * cdef readstat_type_t value_type * value_type = readstat_value_type(value) # <<<<<<<<<<<<<< @@ -11886,7 +11976,7 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_value_label(char *__py */ __pyx_v_value_type = readstat_value_type(__pyx_v_value); - /* "pyreadstat/_readstat_parser.pyx":767 + /* "pyreadstat/_readstat_parser.pyx":776 * value_type = readstat_value_type(value) * * labels_raw = dc.labels_raw # <<<<<<<<<<<<<< @@ -11898,7 +11988,7 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_value_label(char *__py __pyx_v_labels_raw = __pyx_t_1; __pyx_t_1 = 0; - /* "pyreadstat/_readstat_parser.pyx":768 + /* "pyreadstat/_readstat_parser.pyx":777 * * labels_raw = dc.labels_raw * cur_dict = labels_raw.get(var_label) # <<<<<<<<<<<<<< @@ -11912,36 +12002,36 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_value_label(char *__py PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_v_var_label}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_get, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 768, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 777, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } __pyx_v_cur_dict = __pyx_t_1; __pyx_t_1 = 0; - /* "pyreadstat/_readstat_parser.pyx":769 + /* "pyreadstat/_readstat_parser.pyx":778 * labels_raw = dc.labels_raw * cur_dict = labels_raw.get(var_label) * if not cur_dict: # <<<<<<<<<<<<<< * cur_dict = dict() * */ - __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_v_cur_dict); if (unlikely((__pyx_t_4 < 0))) __PYX_ERR(0, 769, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_v_cur_dict); if (unlikely((__pyx_t_4 < 0))) __PYX_ERR(0, 778, __pyx_L1_error) __pyx_t_5 = (!__pyx_t_4); if (__pyx_t_5) { - /* "pyreadstat/_readstat_parser.pyx":770 + /* "pyreadstat/_readstat_parser.pyx":779 * cur_dict = labels_raw.get(var_label) * if not cur_dict: * cur_dict = dict() # <<<<<<<<<<<<<< * * if readstat_value_is_tagged_missing(value): */ - __pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 770, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 779, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_cur_dict, __pyx_t_1); __pyx_t_1 = 0; - /* "pyreadstat/_readstat_parser.pyx":769 + /* "pyreadstat/_readstat_parser.pyx":778 * labels_raw = dc.labels_raw * cur_dict = labels_raw.get(var_label) * if not cur_dict: # <<<<<<<<<<<<<< @@ -11950,7 +12040,7 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_value_label(char *__py */ } - /* "pyreadstat/_readstat_parser.pyx":772 + /* "pyreadstat/_readstat_parser.pyx":781 * cur_dict = dict() * * if readstat_value_is_tagged_missing(value): # <<<<<<<<<<<<<< @@ -11960,7 +12050,7 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_value_label(char *__py __pyx_t_5 = (readstat_value_is_tagged_missing(__pyx_v_value) != 0); if (__pyx_t_5) { - /* "pyreadstat/_readstat_parser.pyx":774 + /* "pyreadstat/_readstat_parser.pyx":783 * if readstat_value_is_tagged_missing(value): * # SAS and Stata missing values * missing_tag = readstat_value_tag(value) # <<<<<<<<<<<<<< @@ -11969,19 +12059,19 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_value_label(char *__py */ __pyx_v_missing_tag = ((int)readstat_value_tag(__pyx_v_value)); - /* "pyreadstat/_readstat_parser.pyx":776 + /* "pyreadstat/_readstat_parser.pyx":785 * missing_tag = readstat_value_tag(value) * # In SAS missing values are A to Z or _ in stata a to z * cur_dict[chr(missing_tag)] = value_label_name # <<<<<<<<<<<<<< * else: * */ - __pyx_t_1 = PyUnicode_FromOrdinal(__pyx_v_missing_tag); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 776, __pyx_L1_error) + __pyx_t_1 = PyUnicode_FromOrdinal(__pyx_v_missing_tag); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 785, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - if (unlikely((PyObject_SetItem(__pyx_v_cur_dict, __pyx_t_1, __pyx_v_value_label_name) < 0))) __PYX_ERR(0, 776, __pyx_L1_error) + if (unlikely((PyObject_SetItem(__pyx_v_cur_dict, __pyx_t_1, __pyx_v_value_label_name) < 0))) __PYX_ERR(0, 785, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "pyreadstat/_readstat_parser.pyx":772 + /* "pyreadstat/_readstat_parser.pyx":781 * cur_dict = dict() * * if readstat_value_is_tagged_missing(value): # <<<<<<<<<<<<<< @@ -11991,7 +12081,7 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_value_label(char *__py goto __pyx_L4; } - /* "pyreadstat/_readstat_parser.pyx":779 + /* "pyreadstat/_readstat_parser.pyx":788 * else: * * if value_type == READSTAT_TYPE_STRING or value_type == READSTAT_TYPE_STRING_REF: # <<<<<<<<<<<<<< @@ -12000,7 +12090,7 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_value_label(char *__py */ /*else*/ { - /* "pyreadstat/_readstat_parser.pyx":799 + /* "pyreadstat/_readstat_parser.pyx":808 * py_float_value = c_float_value * pyformat = VAR_FORMAT_FLOAT * elif value_type == READSTAT_TYPE_DOUBLE: # <<<<<<<<<<<<<< @@ -12010,7 +12100,7 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_value_label(char *__py switch (__pyx_v_value_type) { case READSTAT_TYPE_STRING: - /* "pyreadstat/_readstat_parser.pyx":779 + /* "pyreadstat/_readstat_parser.pyx":788 * else: * * if value_type == READSTAT_TYPE_STRING or value_type == READSTAT_TYPE_STRING_REF: # <<<<<<<<<<<<<< @@ -12019,7 +12109,7 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_value_label(char *__py */ case READSTAT_TYPE_STRING_REF: - /* "pyreadstat/_readstat_parser.pyx":780 + /* "pyreadstat/_readstat_parser.pyx":789 * * if value_type == READSTAT_TYPE_STRING or value_type == READSTAT_TYPE_STRING_REF: * c_str_value = readstat_string_value(value) # <<<<<<<<<<<<<< @@ -12028,14 +12118,14 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_value_label(char *__py */ __pyx_v_c_str_value = readstat_string_value(__pyx_v_value); - /* "pyreadstat/_readstat_parser.pyx":781 + /* "pyreadstat/_readstat_parser.pyx":790 * if value_type == READSTAT_TYPE_STRING or value_type == READSTAT_TYPE_STRING_REF: * c_str_value = readstat_string_value(value) * py_str_value = c_str_value # <<<<<<<<<<<<<< * pyformat = VAR_FORMAT_STRING * elif value_type == READSTAT_TYPE_INT8: */ - __pyx_t_1 = __Pyx_PyUnicode_FromString(__pyx_v_c_str_value); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 781, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyUnicode_FromString(__pyx_v_c_str_value); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 790, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __pyx_t_1; __Pyx_INCREF(__pyx_t_2); @@ -12043,7 +12133,7 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_value_label(char *__py __pyx_v_py_str_value = ((PyObject*)__pyx_t_2); __pyx_t_2 = 0; - /* "pyreadstat/_readstat_parser.pyx":782 + /* "pyreadstat/_readstat_parser.pyx":791 * c_str_value = readstat_string_value(value) * py_str_value = c_str_value * pyformat = VAR_FORMAT_STRING # <<<<<<<<<<<<<< @@ -12052,7 +12142,7 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_value_label(char *__py */ __pyx_v_pyformat = __pyx_e_10pyreadstat_16_readstat_parser_VAR_FORMAT_STRING; - /* "pyreadstat/_readstat_parser.pyx":779 + /* "pyreadstat/_readstat_parser.pyx":788 * else: * * if value_type == READSTAT_TYPE_STRING or value_type == READSTAT_TYPE_STRING_REF: # <<<<<<<<<<<<<< @@ -12062,7 +12152,7 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_value_label(char *__py break; case READSTAT_TYPE_INT8: - /* "pyreadstat/_readstat_parser.pyx":784 + /* "pyreadstat/_readstat_parser.pyx":793 * pyformat = VAR_FORMAT_STRING * elif value_type == READSTAT_TYPE_INT8: * c_int8_value = readstat_int8_value(value) # <<<<<<<<<<<<<< @@ -12071,7 +12161,7 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_value_label(char *__py */ __pyx_v_c_int8_value = readstat_int8_value(__pyx_v_value); - /* "pyreadstat/_readstat_parser.pyx":785 + /* "pyreadstat/_readstat_parser.pyx":794 * elif value_type == READSTAT_TYPE_INT8: * c_int8_value = readstat_int8_value(value) * py_long_value = c_int8_value # <<<<<<<<<<<<<< @@ -12080,7 +12170,7 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_value_label(char *__py */ __pyx_v_py_long_value = ((long)__pyx_v_c_int8_value); - /* "pyreadstat/_readstat_parser.pyx":786 + /* "pyreadstat/_readstat_parser.pyx":795 * c_int8_value = readstat_int8_value(value) * py_long_value = c_int8_value * pyformat = VAR_FORMAT_LONG # <<<<<<<<<<<<<< @@ -12089,7 +12179,7 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_value_label(char *__py */ __pyx_v_pyformat = __pyx_e_10pyreadstat_16_readstat_parser_VAR_FORMAT_LONG; - /* "pyreadstat/_readstat_parser.pyx":783 + /* "pyreadstat/_readstat_parser.pyx":792 * py_str_value = c_str_value * pyformat = VAR_FORMAT_STRING * elif value_type == READSTAT_TYPE_INT8: # <<<<<<<<<<<<<< @@ -12099,7 +12189,7 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_value_label(char *__py break; case READSTAT_TYPE_INT16: - /* "pyreadstat/_readstat_parser.pyx":788 + /* "pyreadstat/_readstat_parser.pyx":797 * pyformat = VAR_FORMAT_LONG * elif value_type == READSTAT_TYPE_INT16: * c_int16_value = readstat_int16_value(value) # <<<<<<<<<<<<<< @@ -12108,7 +12198,7 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_value_label(char *__py */ __pyx_v_c_int16_value = readstat_int16_value(__pyx_v_value); - /* "pyreadstat/_readstat_parser.pyx":789 + /* "pyreadstat/_readstat_parser.pyx":798 * elif value_type == READSTAT_TYPE_INT16: * c_int16_value = readstat_int16_value(value) * py_long_value = c_int16_value # <<<<<<<<<<<<<< @@ -12117,7 +12207,7 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_value_label(char *__py */ __pyx_v_py_long_value = ((long)__pyx_v_c_int16_value); - /* "pyreadstat/_readstat_parser.pyx":790 + /* "pyreadstat/_readstat_parser.pyx":799 * c_int16_value = readstat_int16_value(value) * py_long_value = c_int16_value * pyformat = VAR_FORMAT_LONG # <<<<<<<<<<<<<< @@ -12126,7 +12216,7 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_value_label(char *__py */ __pyx_v_pyformat = __pyx_e_10pyreadstat_16_readstat_parser_VAR_FORMAT_LONG; - /* "pyreadstat/_readstat_parser.pyx":787 + /* "pyreadstat/_readstat_parser.pyx":796 * py_long_value = c_int8_value * pyformat = VAR_FORMAT_LONG * elif value_type == READSTAT_TYPE_INT16: # <<<<<<<<<<<<<< @@ -12136,7 +12226,7 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_value_label(char *__py break; case READSTAT_TYPE_INT32: - /* "pyreadstat/_readstat_parser.pyx":792 + /* "pyreadstat/_readstat_parser.pyx":801 * pyformat = VAR_FORMAT_LONG * elif value_type == READSTAT_TYPE_INT32: * c_int32_value = readstat_int32_value(value) # <<<<<<<<<<<<<< @@ -12145,7 +12235,7 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_value_label(char *__py */ __pyx_v_c_int32_value = readstat_int32_value(__pyx_v_value); - /* "pyreadstat/_readstat_parser.pyx":793 + /* "pyreadstat/_readstat_parser.pyx":802 * elif value_type == READSTAT_TYPE_INT32: * c_int32_value = readstat_int32_value(value) * py_long_value = c_int32_value # <<<<<<<<<<<<<< @@ -12154,7 +12244,7 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_value_label(char *__py */ __pyx_v_py_long_value = ((long)__pyx_v_c_int32_value); - /* "pyreadstat/_readstat_parser.pyx":794 + /* "pyreadstat/_readstat_parser.pyx":803 * c_int32_value = readstat_int32_value(value) * py_long_value = c_int32_value * pyformat = VAR_FORMAT_LONG # <<<<<<<<<<<<<< @@ -12163,7 +12253,7 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_value_label(char *__py */ __pyx_v_pyformat = __pyx_e_10pyreadstat_16_readstat_parser_VAR_FORMAT_LONG; - /* "pyreadstat/_readstat_parser.pyx":791 + /* "pyreadstat/_readstat_parser.pyx":800 * py_long_value = c_int16_value * pyformat = VAR_FORMAT_LONG * elif value_type == READSTAT_TYPE_INT32: # <<<<<<<<<<<<<< @@ -12173,7 +12263,7 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_value_label(char *__py break; case READSTAT_TYPE_FLOAT: - /* "pyreadstat/_readstat_parser.pyx":796 + /* "pyreadstat/_readstat_parser.pyx":805 * pyformat = VAR_FORMAT_LONG * elif value_type == READSTAT_TYPE_FLOAT: * c_float_value = readstat_float_value(value) # <<<<<<<<<<<<<< @@ -12182,7 +12272,7 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_value_label(char *__py */ __pyx_v_c_float_value = readstat_float_value(__pyx_v_value); - /* "pyreadstat/_readstat_parser.pyx":797 + /* "pyreadstat/_readstat_parser.pyx":806 * elif value_type == READSTAT_TYPE_FLOAT: * c_float_value = readstat_float_value(value) * py_float_value = c_float_value # <<<<<<<<<<<<<< @@ -12191,7 +12281,7 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_value_label(char *__py */ __pyx_v_py_float_value = ((double)__pyx_v_c_float_value); - /* "pyreadstat/_readstat_parser.pyx":798 + /* "pyreadstat/_readstat_parser.pyx":807 * c_float_value = readstat_float_value(value) * py_float_value = c_float_value * pyformat = VAR_FORMAT_FLOAT # <<<<<<<<<<<<<< @@ -12200,7 +12290,7 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_value_label(char *__py */ __pyx_v_pyformat = __pyx_e_10pyreadstat_16_readstat_parser_VAR_FORMAT_FLOAT; - /* "pyreadstat/_readstat_parser.pyx":795 + /* "pyreadstat/_readstat_parser.pyx":804 * py_long_value = c_int32_value * pyformat = VAR_FORMAT_LONG * elif value_type == READSTAT_TYPE_FLOAT: # <<<<<<<<<<<<<< @@ -12210,7 +12300,7 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_value_label(char *__py break; case READSTAT_TYPE_DOUBLE: - /* "pyreadstat/_readstat_parser.pyx":800 + /* "pyreadstat/_readstat_parser.pyx":809 * pyformat = VAR_FORMAT_FLOAT * elif value_type == READSTAT_TYPE_DOUBLE: * c_double_value = readstat_double_value(value); # <<<<<<<<<<<<<< @@ -12219,7 +12309,7 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_value_label(char *__py */ __pyx_v_c_double_value = readstat_double_value(__pyx_v_value); - /* "pyreadstat/_readstat_parser.pyx":801 + /* "pyreadstat/_readstat_parser.pyx":810 * elif value_type == READSTAT_TYPE_DOUBLE: * c_double_value = readstat_double_value(value); * py_float_value = c_double_value # <<<<<<<<<<<<<< @@ -12228,7 +12318,7 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_value_label(char *__py */ __pyx_v_py_float_value = ((double)__pyx_v_c_double_value); - /* "pyreadstat/_readstat_parser.pyx":802 + /* "pyreadstat/_readstat_parser.pyx":811 * c_double_value = readstat_double_value(value); * py_float_value = c_double_value * pyformat = VAR_FORMAT_FLOAT # <<<<<<<<<<<<<< @@ -12237,7 +12327,7 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_value_label(char *__py */ __pyx_v_pyformat = __pyx_e_10pyreadstat_16_readstat_parser_VAR_FORMAT_FLOAT; - /* "pyreadstat/_readstat_parser.pyx":799 + /* "pyreadstat/_readstat_parser.pyx":808 * py_float_value = c_float_value * pyformat = VAR_FORMAT_FLOAT * elif value_type == READSTAT_TYPE_DOUBLE: # <<<<<<<<<<<<<< @@ -12247,7 +12337,7 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_value_label(char *__py break; default: - /* "pyreadstat/_readstat_parser.pyx":804 + /* "pyreadstat/_readstat_parser.pyx":813 * pyformat = VAR_FORMAT_FLOAT * else: * raise PyreadstatError("Unkown data type") # <<<<<<<<<<<<<< @@ -12255,7 +12345,7 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_value_label(char *__py * */ __pyx_t_1 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 804, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 813, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_3 = 1; #if CYTHON_UNPACK_METHODS @@ -12274,16 +12364,16 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_value_label(char *__py __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_6, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (__pyx_t_3*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 804, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 813, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } __Pyx_Raise(__pyx_t_2, 0, 0, 0); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __PYX_ERR(0, 804, __pyx_L1_error) + __PYX_ERR(0, 813, __pyx_L1_error) break; } - /* "pyreadstat/_readstat_parser.pyx":807 + /* "pyreadstat/_readstat_parser.pyx":816 * * * if pyformat == VAR_FORMAT_STRING: # <<<<<<<<<<<<<< @@ -12293,17 +12383,17 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_value_label(char *__py switch (__pyx_v_pyformat) { case __pyx_e_10pyreadstat_16_readstat_parser_VAR_FORMAT_STRING: - /* "pyreadstat/_readstat_parser.pyx":808 + /* "pyreadstat/_readstat_parser.pyx":817 * * if pyformat == VAR_FORMAT_STRING: * cur_dict[py_str_value] = value_label_name # <<<<<<<<<<<<<< * elif pyformat == VAR_FORMAT_LONG: * cur_dict[py_long_value] = value_label_name */ - if (unlikely(!__pyx_v_py_str_value)) { __Pyx_RaiseUnboundLocalError("py_str_value"); __PYX_ERR(0, 808, __pyx_L1_error) } - if (unlikely((PyObject_SetItem(__pyx_v_cur_dict, __pyx_v_py_str_value, __pyx_v_value_label_name) < 0))) __PYX_ERR(0, 808, __pyx_L1_error) + if (unlikely(!__pyx_v_py_str_value)) { __Pyx_RaiseUnboundLocalError("py_str_value"); __PYX_ERR(0, 817, __pyx_L1_error) } + if (unlikely((PyObject_SetItem(__pyx_v_cur_dict, __pyx_v_py_str_value, __pyx_v_value_label_name) < 0))) __PYX_ERR(0, 817, __pyx_L1_error) - /* "pyreadstat/_readstat_parser.pyx":807 + /* "pyreadstat/_readstat_parser.pyx":816 * * * if pyformat == VAR_FORMAT_STRING: # <<<<<<<<<<<<<< @@ -12313,16 +12403,16 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_value_label(char *__py break; case __pyx_e_10pyreadstat_16_readstat_parser_VAR_FORMAT_LONG: - /* "pyreadstat/_readstat_parser.pyx":810 + /* "pyreadstat/_readstat_parser.pyx":819 * cur_dict[py_str_value] = value_label_name * elif pyformat == VAR_FORMAT_LONG: * cur_dict[py_long_value] = value_label_name # <<<<<<<<<<<<<< * elif pyformat == VAR_FORMAT_FLOAT: * cur_dict[py_float_value] = value_label_name */ - if (unlikely((__Pyx_SetItemInt(__pyx_v_cur_dict, __pyx_v_py_long_value, __pyx_v_value_label_name, long, 1, __Pyx_PyLong_From_long, 0, 1, 1, 1, __Pyx_ReferenceSharing_OwnStrongReference) < 0))) __PYX_ERR(0, 810, __pyx_L1_error) + if (unlikely((__Pyx_SetItemInt(__pyx_v_cur_dict, __pyx_v_py_long_value, __pyx_v_value_label_name, long, 1, __Pyx_PyLong_From_long, 0, 1, 1, 1, __Pyx_ReferenceSharing_OwnStrongReference) < 0))) __PYX_ERR(0, 819, __pyx_L1_error) - /* "pyreadstat/_readstat_parser.pyx":809 + /* "pyreadstat/_readstat_parser.pyx":818 * if pyformat == VAR_FORMAT_STRING: * cur_dict[py_str_value] = value_label_name * elif pyformat == VAR_FORMAT_LONG: # <<<<<<<<<<<<<< @@ -12332,19 +12422,19 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_value_label(char *__py break; case __pyx_e_10pyreadstat_16_readstat_parser_VAR_FORMAT_FLOAT: - /* "pyreadstat/_readstat_parser.pyx":812 + /* "pyreadstat/_readstat_parser.pyx":821 * cur_dict[py_long_value] = value_label_name * elif pyformat == VAR_FORMAT_FLOAT: * cur_dict[py_float_value] = value_label_name # <<<<<<<<<<<<<< * elif pyformat == VAR_FORMAT_MISSING: * pass */ - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_py_float_value); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 812, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_py_float_value); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 821, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - if (unlikely((PyObject_SetItem(__pyx_v_cur_dict, __pyx_t_2, __pyx_v_value_label_name) < 0))) __PYX_ERR(0, 812, __pyx_L1_error) + if (unlikely((PyObject_SetItem(__pyx_v_cur_dict, __pyx_t_2, __pyx_v_value_label_name) < 0))) __PYX_ERR(0, 821, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - /* "pyreadstat/_readstat_parser.pyx":811 + /* "pyreadstat/_readstat_parser.pyx":820 * elif pyformat == VAR_FORMAT_LONG: * cur_dict[py_long_value] = value_label_name * elif pyformat == VAR_FORMAT_FLOAT: # <<<<<<<<<<<<<< @@ -12354,7 +12444,7 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_value_label(char *__py break; case __pyx_e_10pyreadstat_16_readstat_parser_VAR_FORMAT_MISSING: - /* "pyreadstat/_readstat_parser.pyx":813 + /* "pyreadstat/_readstat_parser.pyx":822 * elif pyformat == VAR_FORMAT_FLOAT: * cur_dict[py_float_value] = value_label_name * elif pyformat == VAR_FORMAT_MISSING: # <<<<<<<<<<<<<< @@ -12364,7 +12454,7 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_value_label(char *__py break; default: - /* "pyreadstat/_readstat_parser.pyx":816 + /* "pyreadstat/_readstat_parser.pyx":825 * pass * else: * raise PyreadstatError("Failed convert C to python value") # <<<<<<<<<<<<<< @@ -12372,7 +12462,7 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_value_label(char *__py * dc.labels_raw[var_label] = cur_dict */ __pyx_t_6 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 816, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 825, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = 1; #if CYTHON_UNPACK_METHODS @@ -12391,27 +12481,27 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_value_label(char *__py __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_1, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (__pyx_t_3*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 816, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 825, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } __Pyx_Raise(__pyx_t_2, 0, 0, 0); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __PYX_ERR(0, 816, __pyx_L1_error) + __PYX_ERR(0, 825, __pyx_L1_error) break; } } __pyx_L4:; - /* "pyreadstat/_readstat_parser.pyx":818 + /* "pyreadstat/_readstat_parser.pyx":827 * raise PyreadstatError("Failed convert C to python value") * * dc.labels_raw[var_label] = cur_dict # <<<<<<<<<<<<<< * * return READSTAT_HANDLER_OK */ - if (unlikely((PyObject_SetItem(__pyx_v_dc->labels_raw, __pyx_v_var_label, __pyx_v_cur_dict) < 0))) __PYX_ERR(0, 818, __pyx_L1_error) + if (unlikely((PyObject_SetItem(__pyx_v_dc->labels_raw, __pyx_v_var_label, __pyx_v_cur_dict) < 0))) __PYX_ERR(0, 827, __pyx_L1_error) - /* "pyreadstat/_readstat_parser.pyx":820 + /* "pyreadstat/_readstat_parser.pyx":829 * dc.labels_raw[var_label] = cur_dict * * return READSTAT_HANDLER_OK # <<<<<<<<<<<<<< @@ -12421,7 +12511,7 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_value_label(char *__py __pyx_r = READSTAT_HANDLER_OK; goto __pyx_L0; - /* "pyreadstat/_readstat_parser.pyx":737 + /* "pyreadstat/_readstat_parser.pyx":746 * * * cdef int handle_value_label(char *val_labels, readstat_value_t value, char *label, void *ctx) except READSTAT_HANDLER_ABORT: # <<<<<<<<<<<<<< @@ -12447,7 +12537,7 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_value_label(char *__py return __pyx_r; } -/* "pyreadstat/_readstat_parser.pyx":822 +/* "pyreadstat/_readstat_parser.pyx":831 * return READSTAT_HANDLER_OK * * cdef int handle_note (int note_index, char *note, void *ctx) except READSTAT_HANDLER_ABORT: # <<<<<<<<<<<<<< @@ -12468,7 +12558,7 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_note(CYTHON_UNUSED int int __pyx_clineno = 0; __Pyx_RefNannySetupContext("handle_note", 0); - /* "pyreadstat/_readstat_parser.pyx":828 + /* "pyreadstat/_readstat_parser.pyx":837 * * cdef str pynote * cdef data_container dc = ctx # <<<<<<<<<<<<<< @@ -12480,14 +12570,14 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_note(CYTHON_UNUSED int __pyx_v_dc = ((struct __pyx_obj_10pyreadstat_16_readstat_parser_data_container *)__pyx_t_1); __pyx_t_1 = 0; - /* "pyreadstat/_readstat_parser.pyx":830 + /* "pyreadstat/_readstat_parser.pyx":839 * cdef data_container dc = ctx * * pynote = note # <<<<<<<<<<<<<< * dc.notes.append(pynote) * */ - __pyx_t_1 = __Pyx_PyUnicode_FromString(__pyx_v_note); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 830, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyUnicode_FromString(__pyx_v_note); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 839, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __pyx_t_1; __Pyx_INCREF(__pyx_t_2); @@ -12495,16 +12585,16 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_note(CYTHON_UNUSED int __pyx_v_pynote = ((PyObject*)__pyx_t_2); __pyx_t_2 = 0; - /* "pyreadstat/_readstat_parser.pyx":831 + /* "pyreadstat/_readstat_parser.pyx":840 * * pynote = note * dc.notes.append(pynote) # <<<<<<<<<<<<<< * * return READSTAT_HANDLER_OK */ - __pyx_t_3 = __Pyx_PyObject_Append(__pyx_v_dc->notes, __pyx_v_pynote); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(0, 831, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_Append(__pyx_v_dc->notes, __pyx_v_pynote); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(0, 840, __pyx_L1_error) - /* "pyreadstat/_readstat_parser.pyx":833 + /* "pyreadstat/_readstat_parser.pyx":842 * dc.notes.append(pynote) * * return READSTAT_HANDLER_OK # <<<<<<<<<<<<<< @@ -12514,7 +12604,7 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_note(CYTHON_UNUSED int __pyx_r = READSTAT_HANDLER_OK; goto __pyx_L0; - /* "pyreadstat/_readstat_parser.pyx":822 + /* "pyreadstat/_readstat_parser.pyx":831 * return READSTAT_HANDLER_OK * * cdef int handle_note (int note_index, char *note, void *ctx) except READSTAT_HANDLER_ABORT: # <<<<<<<<<<<<<< @@ -12535,7 +12625,7 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_note(CYTHON_UNUSED int return __pyx_r; } -/* "pyreadstat/_readstat_parser.pyx":835 +/* "pyreadstat/_readstat_parser.pyx":844 * return READSTAT_HANDLER_OK * * cdef int handle_open(const char *u8_path, void *io_ctx) except READSTAT_HANDLER_ABORT: # <<<<<<<<<<<<<< @@ -12562,21 +12652,21 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_open(char const *__pyx int __pyx_clineno = 0; __Pyx_RefNannySetupContext("handle_open", 0); - /* "pyreadstat/_readstat_parser.pyx":843 + /* "pyreadstat/_readstat_parser.pyx":852 * cdef Py_ssize_t length * * if not os.path.isfile(u8_path): # <<<<<<<<<<<<<< * return -1 * */ - __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_os); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 843, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_os); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 852, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_path); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 843, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_path); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 852, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_2 = __pyx_t_4; __Pyx_INCREF(__pyx_t_2); - __pyx_t_3 = __Pyx_PyUnicode_FromString(__pyx_v_u8_path); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 843, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyUnicode_FromString(__pyx_v_u8_path); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 852, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_5 = 0; { @@ -12585,15 +12675,15 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_open(char const *__pyx __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 843, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 852, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } - __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(0, 843, __pyx_L1_error) + __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(0, 852, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_7 = (!__pyx_t_6); if (__pyx_t_7) { - /* "pyreadstat/_readstat_parser.pyx":844 + /* "pyreadstat/_readstat_parser.pyx":853 * * if not os.path.isfile(u8_path): * return -1 # <<<<<<<<<<<<<< @@ -12603,7 +12693,7 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_open(char const *__pyx __pyx_r = -1; goto __pyx_L0; - /* "pyreadstat/_readstat_parser.pyx":843 + /* "pyreadstat/_readstat_parser.pyx":852 * cdef Py_ssize_t length * * if not os.path.isfile(u8_path): # <<<<<<<<<<<<<< @@ -12612,36 +12702,36 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_open(char const *__pyx */ } - /* "pyreadstat/_readstat_parser.pyx":846 + /* "pyreadstat/_readstat_parser.pyx":855 * return -1 * * if os.name == "nt": # <<<<<<<<<<<<<< * u16_path = PyUnicode_AsWideCharString(u8_path, &length) * fd = _wsopen(u16_path, _O_RDONLY | _O_BINARY, _SH_DENYWR, 0) */ - __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_os); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 846, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_os); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 855, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_name); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 846, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_name); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 855, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_7 = (__Pyx_PyUnicode_Equals(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_nt, Py_EQ)); if (unlikely((__pyx_t_7 < 0))) __PYX_ERR(0, 846, __pyx_L1_error) + __pyx_t_7 = (__Pyx_PyUnicode_Equals(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_nt, Py_EQ)); if (unlikely((__pyx_t_7 < 0))) __PYX_ERR(0, 855, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (__pyx_t_7) { - /* "pyreadstat/_readstat_parser.pyx":847 + /* "pyreadstat/_readstat_parser.pyx":856 * * if os.name == "nt": * u16_path = PyUnicode_AsWideCharString(u8_path, &length) # <<<<<<<<<<<<<< * fd = _wsopen(u16_path, _O_RDONLY | _O_BINARY, _SH_DENYWR, 0) * assign_fd(io_ctx, fd) */ - __pyx_t_4 = __Pyx_PyUnicode_FromString(__pyx_v_u8_path); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 847, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyUnicode_FromString(__pyx_v_u8_path); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 856, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_8 = PyUnicode_AsWideCharString(__pyx_t_4, (&__pyx_v_length)); if (unlikely(__pyx_t_8 == ((void *)NULL))) __PYX_ERR(0, 847, __pyx_L1_error) + __pyx_t_8 = PyUnicode_AsWideCharString(__pyx_t_4, (&__pyx_v_length)); if (unlikely(__pyx_t_8 == ((void *)NULL))) __PYX_ERR(0, 856, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_v_u16_path = __pyx_t_8; - /* "pyreadstat/_readstat_parser.pyx":848 + /* "pyreadstat/_readstat_parser.pyx":857 * if os.name == "nt": * u16_path = PyUnicode_AsWideCharString(u8_path, &length) * fd = _wsopen(u16_path, _O_RDONLY | _O_BINARY, _SH_DENYWR, 0) # <<<<<<<<<<<<<< @@ -12650,7 +12740,7 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_open(char const *__pyx */ __pyx_v_fd = _wsopen(__pyx_v_u16_path, (_O_RDONLY | _O_BINARY), _SH_DENYWR, 0); - /* "pyreadstat/_readstat_parser.pyx":849 + /* "pyreadstat/_readstat_parser.pyx":858 * u16_path = PyUnicode_AsWideCharString(u8_path, &length) * fd = _wsopen(u16_path, _O_RDONLY | _O_BINARY, _SH_DENYWR, 0) * assign_fd(io_ctx, fd) # <<<<<<<<<<<<<< @@ -12659,7 +12749,7 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_open(char const *__pyx */ assign_fd(__pyx_v_io_ctx, __pyx_v_fd); - /* "pyreadstat/_readstat_parser.pyx":850 + /* "pyreadstat/_readstat_parser.pyx":859 * fd = _wsopen(u16_path, _O_RDONLY | _O_BINARY, _SH_DENYWR, 0) * assign_fd(io_ctx, fd) * return fd # <<<<<<<<<<<<<< @@ -12669,7 +12759,7 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_open(char const *__pyx __pyx_r = __pyx_v_fd; goto __pyx_L0; - /* "pyreadstat/_readstat_parser.pyx":846 + /* "pyreadstat/_readstat_parser.pyx":855 * return -1 * * if os.name == "nt": # <<<<<<<<<<<<<< @@ -12678,7 +12768,7 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_open(char const *__pyx */ } - /* "pyreadstat/_readstat_parser.pyx":852 + /* "pyreadstat/_readstat_parser.pyx":861 * return fd * else: * return -1 # <<<<<<<<<<<<<< @@ -12690,7 +12780,7 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_open(char const *__pyx goto __pyx_L0; } - /* "pyreadstat/_readstat_parser.pyx":835 + /* "pyreadstat/_readstat_parser.pyx":844 * return READSTAT_HANDLER_OK * * cdef int handle_open(const char *u8_path, void *io_ctx) except READSTAT_HANDLER_ABORT: # <<<<<<<<<<<<<< @@ -12711,7 +12801,7 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_open(char const *__pyx return __pyx_r; } -/* "pyreadstat/_readstat_parser.pyx":856 +/* "pyreadstat/_readstat_parser.pyx":865 * * * cdef int pyobject_open_handler(const char *path, void *io_ctx) noexcept: # <<<<<<<<<<<<<< @@ -12722,7 +12812,7 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_handle_open(char const *__pyx static int __pyx_f_10pyreadstat_16_readstat_parser_pyobject_open_handler(CYTHON_UNUSED char const *__pyx_v_path, CYTHON_UNUSED void *__pyx_v_io_ctx) { int __pyx_r; - /* "pyreadstat/_readstat_parser.pyx":858 + /* "pyreadstat/_readstat_parser.pyx":867 * cdef int pyobject_open_handler(const char *path, void *io_ctx) noexcept: * """File is already open - this is a no-op""" * return 0 # <<<<<<<<<<<<<< @@ -12732,7 +12822,7 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_pyobject_open_handler(CYTHON_ __pyx_r = 0; goto __pyx_L0; - /* "pyreadstat/_readstat_parser.pyx":856 + /* "pyreadstat/_readstat_parser.pyx":865 * * * cdef int pyobject_open_handler(const char *path, void *io_ctx) noexcept: # <<<<<<<<<<<<<< @@ -12745,7 +12835,7 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_pyobject_open_handler(CYTHON_ return __pyx_r; } -/* "pyreadstat/_readstat_parser.pyx":860 +/* "pyreadstat/_readstat_parser.pyx":869 * return 0 * * cdef int pyobject_close_handler(void *io_ctx) noexcept: # <<<<<<<<<<<<<< @@ -12756,7 +12846,7 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_pyobject_open_handler(CYTHON_ static int __pyx_f_10pyreadstat_16_readstat_parser_pyobject_close_handler(CYTHON_UNUSED void *__pyx_v_io_ctx) { int __pyx_r; - /* "pyreadstat/_readstat_parser.pyx":862 + /* "pyreadstat/_readstat_parser.pyx":871 * cdef int pyobject_close_handler(void *io_ctx) noexcept: * """User manages file lifetime - this is a no-op""" * return 0 # <<<<<<<<<<<<<< @@ -12766,7 +12856,7 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_pyobject_close_handler(CYTHON __pyx_r = 0; goto __pyx_L0; - /* "pyreadstat/_readstat_parser.pyx":860 + /* "pyreadstat/_readstat_parser.pyx":869 * return 0 * * cdef int pyobject_close_handler(void *io_ctx) noexcept: # <<<<<<<<<<<<<< @@ -12779,7 +12869,7 @@ static int __pyx_f_10pyreadstat_16_readstat_parser_pyobject_close_handler(CYTHON return __pyx_r; } -/* "pyreadstat/_readstat_parser.pyx":864 +/* "pyreadstat/_readstat_parser.pyx":873 * return 0 * * cdef ssize_t pyobject_read_handler(void *buf, size_t nbyte, void *io_ctx) noexcept: # <<<<<<<<<<<<<< @@ -12809,7 +12899,7 @@ static Py_ssize_t __pyx_f_10pyreadstat_16_readstat_parser_pyobject_read_handler( int __pyx_clineno = 0; __Pyx_RefNannySetupContext("pyobject_read_handler", 0); - /* "pyreadstat/_readstat_parser.pyx":869 + /* "pyreadstat/_readstat_parser.pyx":878 * cdef ssize_t bytes_read * cdef char *data_ptr * cdef object file_obj = io_ctx # <<<<<<<<<<<<<< @@ -12821,7 +12911,7 @@ static Py_ssize_t __pyx_f_10pyreadstat_16_readstat_parser_pyobject_read_handler( __pyx_v_file_obj = __pyx_t_1; __pyx_t_1 = 0; - /* "pyreadstat/_readstat_parser.pyx":871 + /* "pyreadstat/_readstat_parser.pyx":880 * cdef object file_obj = io_ctx * * try: # <<<<<<<<<<<<<< @@ -12837,7 +12927,7 @@ static Py_ssize_t __pyx_f_10pyreadstat_16_readstat_parser_pyobject_read_handler( __Pyx_XGOTREF(__pyx_t_4); /*try:*/ { - /* "pyreadstat/_readstat_parser.pyx":872 + /* "pyreadstat/_readstat_parser.pyx":881 * * try: * data = file_obj.read(nbyte) # <<<<<<<<<<<<<< @@ -12846,7 +12936,7 @@ static Py_ssize_t __pyx_f_10pyreadstat_16_readstat_parser_pyobject_read_handler( */ __pyx_t_5 = __pyx_v_file_obj; __Pyx_INCREF(__pyx_t_5); - __pyx_t_6 = __Pyx_PyLong_FromSize_t(__pyx_v_nbyte); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 872, __pyx_L3_error) + __pyx_t_6 = __Pyx_PyLong_FromSize_t(__pyx_v_nbyte); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 881, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_7 = 0; { @@ -12854,14 +12944,14 @@ static Py_ssize_t __pyx_f_10pyreadstat_16_readstat_parser_pyobject_read_handler( __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_read, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 872, __pyx_L3_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 881, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_1); } - if (!(likely(PyBytes_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("bytes", __pyx_t_1))) __PYX_ERR(0, 872, __pyx_L3_error) + if (!(likely(PyBytes_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("bytes", __pyx_t_1))) __PYX_ERR(0, 881, __pyx_L3_error) __pyx_v_data = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - /* "pyreadstat/_readstat_parser.pyx":873 + /* "pyreadstat/_readstat_parser.pyx":882 * try: * data = file_obj.read(nbyte) * bytes_read = len(data) # <<<<<<<<<<<<<< @@ -12870,12 +12960,12 @@ static Py_ssize_t __pyx_f_10pyreadstat_16_readstat_parser_pyobject_read_handler( */ if (unlikely(__pyx_v_data == Py_None)) { PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()"); - __PYX_ERR(0, 873, __pyx_L3_error) + __PYX_ERR(0, 882, __pyx_L3_error) } - __pyx_t_8 = __Pyx_PyBytes_GET_SIZE(__pyx_v_data); if (unlikely(__pyx_t_8 == ((Py_ssize_t)-1))) __PYX_ERR(0, 873, __pyx_L3_error) + __pyx_t_8 = __Pyx_PyBytes_GET_SIZE(__pyx_v_data); if (unlikely(__pyx_t_8 == ((Py_ssize_t)-1))) __PYX_ERR(0, 882, __pyx_L3_error) __pyx_v_bytes_read = __pyx_t_8; - /* "pyreadstat/_readstat_parser.pyx":874 + /* "pyreadstat/_readstat_parser.pyx":883 * data = file_obj.read(nbyte) * bytes_read = len(data) * if bytes_read > 0: # <<<<<<<<<<<<<< @@ -12885,7 +12975,7 @@ static Py_ssize_t __pyx_f_10pyreadstat_16_readstat_parser_pyobject_read_handler( __pyx_t_9 = (__pyx_v_bytes_read > 0); if (__pyx_t_9) { - /* "pyreadstat/_readstat_parser.pyx":875 + /* "pyreadstat/_readstat_parser.pyx":884 * bytes_read = len(data) * if bytes_read > 0: * data_ptr = data # <<<<<<<<<<<<<< @@ -12894,12 +12984,12 @@ static Py_ssize_t __pyx_f_10pyreadstat_16_readstat_parser_pyobject_read_handler( */ if (unlikely(__pyx_v_data == Py_None)) { PyErr_SetString(PyExc_TypeError, "expected bytes, NoneType found"); - __PYX_ERR(0, 875, __pyx_L3_error) + __PYX_ERR(0, 884, __pyx_L3_error) } - __pyx_t_10 = __Pyx_PyBytes_AsWritableString(__pyx_v_data); if (unlikely((!__pyx_t_10) && PyErr_Occurred())) __PYX_ERR(0, 875, __pyx_L3_error) + __pyx_t_10 = __Pyx_PyBytes_AsWritableString(__pyx_v_data); if (unlikely((!__pyx_t_10) && PyErr_Occurred())) __PYX_ERR(0, 884, __pyx_L3_error) __pyx_v_data_ptr = ((char *)__pyx_t_10); - /* "pyreadstat/_readstat_parser.pyx":876 + /* "pyreadstat/_readstat_parser.pyx":885 * if bytes_read > 0: * data_ptr = data * memcpy(buf, data_ptr, bytes_read) # <<<<<<<<<<<<<< @@ -12908,7 +12998,7 @@ static Py_ssize_t __pyx_f_10pyreadstat_16_readstat_parser_pyobject_read_handler( */ (void)(memcpy(__pyx_v_buf, __pyx_v_data_ptr, __pyx_v_bytes_read)); - /* "pyreadstat/_readstat_parser.pyx":874 + /* "pyreadstat/_readstat_parser.pyx":883 * data = file_obj.read(nbyte) * bytes_read = len(data) * if bytes_read > 0: # <<<<<<<<<<<<<< @@ -12917,7 +13007,7 @@ static Py_ssize_t __pyx_f_10pyreadstat_16_readstat_parser_pyobject_read_handler( */ } - /* "pyreadstat/_readstat_parser.pyx":877 + /* "pyreadstat/_readstat_parser.pyx":886 * data_ptr = data * memcpy(buf, data_ptr, bytes_read) * return bytes_read # <<<<<<<<<<<<<< @@ -12927,7 +13017,7 @@ static Py_ssize_t __pyx_f_10pyreadstat_16_readstat_parser_pyobject_read_handler( __pyx_r = __pyx_v_bytes_read; goto __pyx_L7_try_return; - /* "pyreadstat/_readstat_parser.pyx":871 + /* "pyreadstat/_readstat_parser.pyx":880 * cdef object file_obj = io_ctx * * try: # <<<<<<<<<<<<<< @@ -12940,7 +13030,7 @@ static Py_ssize_t __pyx_f_10pyreadstat_16_readstat_parser_pyobject_read_handler( __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; - /* "pyreadstat/_readstat_parser.pyx":878 + /* "pyreadstat/_readstat_parser.pyx":887 * memcpy(buf, data_ptr, bytes_read) * return bytes_read * except: # <<<<<<<<<<<<<< @@ -12950,7 +13040,7 @@ static Py_ssize_t __pyx_f_10pyreadstat_16_readstat_parser_pyobject_read_handler( /*except:*/ { __Pyx_ErrRestore(0,0,0); - /* "pyreadstat/_readstat_parser.pyx":879 + /* "pyreadstat/_readstat_parser.pyx":888 * return bytes_read * except: * return -1 # <<<<<<<<<<<<<< @@ -12961,7 +13051,7 @@ static Py_ssize_t __pyx_f_10pyreadstat_16_readstat_parser_pyobject_read_handler( goto __pyx_L6_except_return; } - /* "pyreadstat/_readstat_parser.pyx":871 + /* "pyreadstat/_readstat_parser.pyx":880 * cdef object file_obj = io_ctx * * try: # <<<<<<<<<<<<<< @@ -12982,7 +13072,7 @@ static Py_ssize_t __pyx_f_10pyreadstat_16_readstat_parser_pyobject_read_handler( goto __pyx_L0; } - /* "pyreadstat/_readstat_parser.pyx":864 + /* "pyreadstat/_readstat_parser.pyx":873 * return 0 * * cdef ssize_t pyobject_read_handler(void *buf, size_t nbyte, void *io_ctx) noexcept: # <<<<<<<<<<<<<< @@ -12998,7 +13088,7 @@ static Py_ssize_t __pyx_f_10pyreadstat_16_readstat_parser_pyobject_read_handler( return __pyx_r; } -/* "pyreadstat/_readstat_parser.pyx":881 +/* "pyreadstat/_readstat_parser.pyx":890 * return -1 * * cdef readstat_off_t pyobject_seek_handler(readstat_off_t offset, readstat_io_flags_t whence, void *io_ctx) noexcept: # <<<<<<<<<<<<<< @@ -13025,7 +13115,7 @@ static readstat_off_t __pyx_f_10pyreadstat_16_readstat_parser_pyobject_seek_hand int __pyx_clineno = 0; __Pyx_RefNannySetupContext("pyobject_seek_handler", 0); - /* "pyreadstat/_readstat_parser.pyx":884 + /* "pyreadstat/_readstat_parser.pyx":893 * """Bridge Python file.seek() to C seek operation""" * cdef int py_whence * cdef object file_obj = io_ctx # <<<<<<<<<<<<<< @@ -13037,7 +13127,7 @@ static readstat_off_t __pyx_f_10pyreadstat_16_readstat_parser_pyobject_seek_hand __pyx_v_file_obj = __pyx_t_1; __pyx_t_1 = 0; - /* "pyreadstat/_readstat_parser.pyx":886 + /* "pyreadstat/_readstat_parser.pyx":895 * cdef object file_obj = io_ctx * * try: # <<<<<<<<<<<<<< @@ -13053,7 +13143,7 @@ static readstat_off_t __pyx_f_10pyreadstat_16_readstat_parser_pyobject_seek_hand __Pyx_XGOTREF(__pyx_t_4); /*try:*/ { - /* "pyreadstat/_readstat_parser.pyx":887 + /* "pyreadstat/_readstat_parser.pyx":896 * * try: * if whence == READSTAT_SEEK_SET: # <<<<<<<<<<<<<< @@ -13063,7 +13153,7 @@ static readstat_off_t __pyx_f_10pyreadstat_16_readstat_parser_pyobject_seek_hand switch (__pyx_v_whence) { case READSTAT_SEEK_SET: - /* "pyreadstat/_readstat_parser.pyx":888 + /* "pyreadstat/_readstat_parser.pyx":897 * try: * if whence == READSTAT_SEEK_SET: * py_whence = 0 # <<<<<<<<<<<<<< @@ -13072,7 +13162,7 @@ static readstat_off_t __pyx_f_10pyreadstat_16_readstat_parser_pyobject_seek_hand */ __pyx_v_py_whence = 0; - /* "pyreadstat/_readstat_parser.pyx":887 + /* "pyreadstat/_readstat_parser.pyx":896 * * try: * if whence == READSTAT_SEEK_SET: # <<<<<<<<<<<<<< @@ -13082,7 +13172,7 @@ static readstat_off_t __pyx_f_10pyreadstat_16_readstat_parser_pyobject_seek_hand break; case READSTAT_SEEK_CUR: - /* "pyreadstat/_readstat_parser.pyx":890 + /* "pyreadstat/_readstat_parser.pyx":899 * py_whence = 0 * elif whence == READSTAT_SEEK_CUR: * py_whence = 1 # <<<<<<<<<<<<<< @@ -13091,7 +13181,7 @@ static readstat_off_t __pyx_f_10pyreadstat_16_readstat_parser_pyobject_seek_hand */ __pyx_v_py_whence = 1; - /* "pyreadstat/_readstat_parser.pyx":889 + /* "pyreadstat/_readstat_parser.pyx":898 * if whence == READSTAT_SEEK_SET: * py_whence = 0 * elif whence == READSTAT_SEEK_CUR: # <<<<<<<<<<<<<< @@ -13101,7 +13191,7 @@ static readstat_off_t __pyx_f_10pyreadstat_16_readstat_parser_pyobject_seek_hand break; default: - /* "pyreadstat/_readstat_parser.pyx":892 + /* "pyreadstat/_readstat_parser.pyx":901 * py_whence = 1 * else: # READSTAT_SEEK_END * py_whence = 2 # <<<<<<<<<<<<<< @@ -13112,7 +13202,7 @@ static readstat_off_t __pyx_f_10pyreadstat_16_readstat_parser_pyobject_seek_hand break; } - /* "pyreadstat/_readstat_parser.pyx":894 + /* "pyreadstat/_readstat_parser.pyx":903 * py_whence = 2 * * file_obj.seek(offset, py_whence) # <<<<<<<<<<<<<< @@ -13121,9 +13211,9 @@ static readstat_off_t __pyx_f_10pyreadstat_16_readstat_parser_pyobject_seek_hand */ __pyx_t_5 = __pyx_v_file_obj; __Pyx_INCREF(__pyx_t_5); - __pyx_t_6 = __Pyx_PyLong_From_off_t(__pyx_v_offset); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 894, __pyx_L3_error) + __pyx_t_6 = __Pyx_PyLong_From_off_t(__pyx_v_offset); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 903, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_6); - __pyx_t_7 = __Pyx_PyLong_From_int(__pyx_v_py_whence); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 894, __pyx_L3_error) + __pyx_t_7 = __Pyx_PyLong_From_int(__pyx_v_py_whence); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 903, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_8 = 0; { @@ -13132,12 +13222,12 @@ static readstat_off_t __pyx_f_10pyreadstat_16_readstat_parser_pyobject_seek_hand __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 894, __pyx_L3_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 903, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_1); } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "pyreadstat/_readstat_parser.pyx":895 + /* "pyreadstat/_readstat_parser.pyx":904 * * file_obj.seek(offset, py_whence) * return file_obj.tell() # <<<<<<<<<<<<<< @@ -13151,15 +13241,15 @@ static readstat_off_t __pyx_f_10pyreadstat_16_readstat_parser_pyobject_seek_hand PyObject *__pyx_callargs[2] = {__pyx_t_7, NULL}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_tell, __pyx_callargs+__pyx_t_8, (1-__pyx_t_8) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 895, __pyx_L3_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 904, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_1); } - __pyx_t_9 = __Pyx_PyLong_As_off_t(__pyx_t_1); if (unlikely((__pyx_t_9 == ((readstat_off_t)-1)) && PyErr_Occurred())) __PYX_ERR(0, 895, __pyx_L3_error) + __pyx_t_9 = __Pyx_PyLong_As_off_t(__pyx_t_1); if (unlikely((__pyx_t_9 == ((readstat_off_t)-1)) && PyErr_Occurred())) __PYX_ERR(0, 904, __pyx_L3_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_r = __pyx_t_9; goto __pyx_L7_try_return; - /* "pyreadstat/_readstat_parser.pyx":886 + /* "pyreadstat/_readstat_parser.pyx":895 * cdef object file_obj = io_ctx * * try: # <<<<<<<<<<<<<< @@ -13173,7 +13263,7 @@ static readstat_off_t __pyx_f_10pyreadstat_16_readstat_parser_pyobject_seek_hand __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; - /* "pyreadstat/_readstat_parser.pyx":896 + /* "pyreadstat/_readstat_parser.pyx":905 * file_obj.seek(offset, py_whence) * return file_obj.tell() * except: # <<<<<<<<<<<<<< @@ -13183,7 +13273,7 @@ static readstat_off_t __pyx_f_10pyreadstat_16_readstat_parser_pyobject_seek_hand /*except:*/ { __Pyx_ErrRestore(0,0,0); - /* "pyreadstat/_readstat_parser.pyx":897 + /* "pyreadstat/_readstat_parser.pyx":906 * return file_obj.tell() * except: * return -1 # <<<<<<<<<<<<<< @@ -13194,7 +13284,7 @@ static readstat_off_t __pyx_f_10pyreadstat_16_readstat_parser_pyobject_seek_hand goto __pyx_L6_except_return; } - /* "pyreadstat/_readstat_parser.pyx":886 + /* "pyreadstat/_readstat_parser.pyx":895 * cdef object file_obj = io_ctx * * try: # <<<<<<<<<<<<<< @@ -13215,7 +13305,7 @@ static readstat_off_t __pyx_f_10pyreadstat_16_readstat_parser_pyobject_seek_hand goto __pyx_L0; } - /* "pyreadstat/_readstat_parser.pyx":881 + /* "pyreadstat/_readstat_parser.pyx":890 * return -1 * * cdef readstat_off_t pyobject_seek_handler(readstat_off_t offset, readstat_io_flags_t whence, void *io_ctx) noexcept: # <<<<<<<<<<<<<< @@ -13230,7 +13320,7 @@ static readstat_off_t __pyx_f_10pyreadstat_16_readstat_parser_pyobject_seek_hand return __pyx_r; } -/* "pyreadstat/_readstat_parser.pyx":900 +/* "pyreadstat/_readstat_parser.pyx":909 * * * cdef void check_exit_status(readstat_error_t retcode) except *: # <<<<<<<<<<<<<< @@ -13252,7 +13342,7 @@ static void __pyx_f_10pyreadstat_16_readstat_parser_check_exit_status(readstat_e int __pyx_clineno = 0; __Pyx_RefNannySetupContext("check_exit_status", 0); - /* "pyreadstat/_readstat_parser.pyx":907 + /* "pyreadstat/_readstat_parser.pyx":916 * cdef const char * err_readstat * cdef str err_message * if retcode != READSTAT_OK: # <<<<<<<<<<<<<< @@ -13262,7 +13352,7 @@ static void __pyx_f_10pyreadstat_16_readstat_parser_check_exit_status(readstat_e __pyx_t_1 = (__pyx_v_retcode != READSTAT_OK); if (unlikely(__pyx_t_1)) { - /* "pyreadstat/_readstat_parser.pyx":908 + /* "pyreadstat/_readstat_parser.pyx":917 * cdef str err_message * if retcode != READSTAT_OK: * err_readstat = readstat_error_message(retcode) # <<<<<<<<<<<<<< @@ -13271,14 +13361,14 @@ static void __pyx_f_10pyreadstat_16_readstat_parser_check_exit_status(readstat_e */ __pyx_v_err_readstat = readstat_error_message(__pyx_v_retcode); - /* "pyreadstat/_readstat_parser.pyx":909 + /* "pyreadstat/_readstat_parser.pyx":918 * if retcode != READSTAT_OK: * err_readstat = readstat_error_message(retcode) * err_message = err_readstat # <<<<<<<<<<<<<< * raise ReadstatError(err_message) * */ - __pyx_t_2 = __Pyx_PyUnicode_FromString(__pyx_v_err_readstat); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 909, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyUnicode_FromString(__pyx_v_err_readstat); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 918, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = __pyx_t_2; __Pyx_INCREF(__pyx_t_3); @@ -13286,7 +13376,7 @@ static void __pyx_f_10pyreadstat_16_readstat_parser_check_exit_status(readstat_e __pyx_v_err_message = ((PyObject*)__pyx_t_3); __pyx_t_3 = 0; - /* "pyreadstat/_readstat_parser.pyx":910 + /* "pyreadstat/_readstat_parser.pyx":919 * err_readstat = readstat_error_message(retcode) * err_message = err_readstat * raise ReadstatError(err_message) # <<<<<<<<<<<<<< @@ -13294,7 +13384,7 @@ static void __pyx_f_10pyreadstat_16_readstat_parser_check_exit_status(readstat_e * */ __pyx_t_2 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_ReadstatError); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 910, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_ReadstatError); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 919, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = 1; #if CYTHON_UNPACK_METHODS @@ -13313,14 +13403,14 @@ static void __pyx_f_10pyreadstat_16_readstat_parser_check_exit_status(readstat_e __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 910, __pyx_L1_error) + if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 919, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); } __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __PYX_ERR(0, 910, __pyx_L1_error) + __PYX_ERR(0, 919, __pyx_L1_error) - /* "pyreadstat/_readstat_parser.pyx":907 + /* "pyreadstat/_readstat_parser.pyx":916 * cdef const char * err_readstat * cdef str err_message * if retcode != READSTAT_OK: # <<<<<<<<<<<<<< @@ -13329,7 +13419,7 @@ static void __pyx_f_10pyreadstat_16_readstat_parser_check_exit_status(readstat_e */ } - /* "pyreadstat/_readstat_parser.pyx":900 + /* "pyreadstat/_readstat_parser.pyx":909 * * * cdef void check_exit_status(readstat_error_t retcode) except *: # <<<<<<<<<<<<<< @@ -13349,7 +13439,7 @@ static void __pyx_f_10pyreadstat_16_readstat_parser_check_exit_status(readstat_e __Pyx_RefNannyFinishContext(); } -/* "pyreadstat/_readstat_parser.pyx":913 +/* "pyreadstat/_readstat_parser.pyx":922 * * * cdef void run_readstat_parser(char * filename, data_container data, py_file_extension file_extension, long row_limit, long row_offset, object file_obj=None) except *: # <<<<<<<<<<<<<< @@ -13390,7 +13480,7 @@ static void __pyx_f_10pyreadstat_16_readstat_parser_run_readstat_parser(char *__ } } - /* "pyreadstat/_readstat_parser.pyx":938 + /* "pyreadstat/_readstat_parser.pyx":947 * cdef bytes encoding_byte * * metaonly = data.metaonly # <<<<<<<<<<<<<< @@ -13400,7 +13490,7 @@ static void __pyx_f_10pyreadstat_16_readstat_parser_run_readstat_parser(char *__ __pyx_t_1 = __pyx_v_data->metaonly; __pyx_v_metaonly = __pyx_t_1; - /* "pyreadstat/_readstat_parser.pyx":939 + /* "pyreadstat/_readstat_parser.pyx":948 * * metaonly = data.metaonly * ctx = data # <<<<<<<<<<<<<< @@ -13409,7 +13499,7 @@ static void __pyx_f_10pyreadstat_16_readstat_parser_run_readstat_parser(char *__ */ __pyx_v_ctx = ((void *)__pyx_v_data); - /* "pyreadstat/_readstat_parser.pyx":941 + /* "pyreadstat/_readstat_parser.pyx":950 * ctx = data * * error = READSTAT_OK; # <<<<<<<<<<<<<< @@ -13418,7 +13508,7 @@ static void __pyx_f_10pyreadstat_16_readstat_parser_run_readstat_parser(char *__ */ __pyx_v_error = READSTAT_OK; - /* "pyreadstat/_readstat_parser.pyx":942 + /* "pyreadstat/_readstat_parser.pyx":951 * * error = READSTAT_OK; * parser = readstat_parser_init() # <<<<<<<<<<<<<< @@ -13427,7 +13517,7 @@ static void __pyx_f_10pyreadstat_16_readstat_parser_run_readstat_parser(char *__ */ __pyx_v_parser = readstat_parser_init(); - /* "pyreadstat/_readstat_parser.pyx":943 + /* "pyreadstat/_readstat_parser.pyx":952 * error = READSTAT_OK; * parser = readstat_parser_init() * metadata_handler = handle_metadata # <<<<<<<<<<<<<< @@ -13436,7 +13526,7 @@ static void __pyx_f_10pyreadstat_16_readstat_parser_run_readstat_parser(char *__ */ __pyx_v_metadata_handler = ((readstat_metadata_handler)__pyx_f_10pyreadstat_16_readstat_parser_handle_metadata); - /* "pyreadstat/_readstat_parser.pyx":944 + /* "pyreadstat/_readstat_parser.pyx":953 * parser = readstat_parser_init() * metadata_handler = handle_metadata * variable_handler = handle_variable # <<<<<<<<<<<<<< @@ -13445,7 +13535,7 @@ static void __pyx_f_10pyreadstat_16_readstat_parser_run_readstat_parser(char *__ */ __pyx_v_variable_handler = ((readstat_variable_handler)__pyx_f_10pyreadstat_16_readstat_parser_handle_variable); - /* "pyreadstat/_readstat_parser.pyx":945 + /* "pyreadstat/_readstat_parser.pyx":954 * metadata_handler = handle_metadata * variable_handler = handle_variable * value_handler = handle_value # <<<<<<<<<<<<<< @@ -13454,7 +13544,7 @@ static void __pyx_f_10pyreadstat_16_readstat_parser_run_readstat_parser(char *__ */ __pyx_v_value_handler = ((readstat_value_handler)__pyx_f_10pyreadstat_16_readstat_parser_handle_value); - /* "pyreadstat/_readstat_parser.pyx":946 + /* "pyreadstat/_readstat_parser.pyx":955 * variable_handler = handle_variable * value_handler = handle_value * value_label_handler = handle_value_label # <<<<<<<<<<<<<< @@ -13463,7 +13553,7 @@ static void __pyx_f_10pyreadstat_16_readstat_parser_run_readstat_parser(char *__ */ __pyx_v_value_label_handler = ((readstat_value_label_handler)__pyx_f_10pyreadstat_16_readstat_parser_handle_value_label); - /* "pyreadstat/_readstat_parser.pyx":947 + /* "pyreadstat/_readstat_parser.pyx":956 * value_handler = handle_value * value_label_handler = handle_value_label * note_handler = handle_note # <<<<<<<<<<<<<< @@ -13472,43 +13562,43 @@ static void __pyx_f_10pyreadstat_16_readstat_parser_run_readstat_parser(char *__ */ __pyx_v_note_handler = ((readstat_note_handler)__pyx_f_10pyreadstat_16_readstat_parser_handle_note); - /* "pyreadstat/_readstat_parser.pyx":950 + /* "pyreadstat/_readstat_parser.pyx":959 * * * check_exit_status(readstat_set_metadata_handler(parser, metadata_handler)) # <<<<<<<<<<<<<< * check_exit_status(readstat_set_variable_handler(parser, variable_handler)) * check_exit_status(readstat_set_value_label_handler(parser, value_label_handler)) */ - __pyx_f_10pyreadstat_16_readstat_parser_check_exit_status(readstat_set_metadata_handler(__pyx_v_parser, __pyx_v_metadata_handler)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 950, __pyx_L1_error) + __pyx_f_10pyreadstat_16_readstat_parser_check_exit_status(readstat_set_metadata_handler(__pyx_v_parser, __pyx_v_metadata_handler)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 959, __pyx_L1_error) - /* "pyreadstat/_readstat_parser.pyx":951 + /* "pyreadstat/_readstat_parser.pyx":960 * * check_exit_status(readstat_set_metadata_handler(parser, metadata_handler)) * check_exit_status(readstat_set_variable_handler(parser, variable_handler)) # <<<<<<<<<<<<<< * check_exit_status(readstat_set_value_label_handler(parser, value_label_handler)) * check_exit_status(readstat_set_note_handler(parser, note_handler)) */ - __pyx_f_10pyreadstat_16_readstat_parser_check_exit_status(readstat_set_variable_handler(__pyx_v_parser, __pyx_v_variable_handler)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 951, __pyx_L1_error) + __pyx_f_10pyreadstat_16_readstat_parser_check_exit_status(readstat_set_variable_handler(__pyx_v_parser, __pyx_v_variable_handler)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 960, __pyx_L1_error) - /* "pyreadstat/_readstat_parser.pyx":952 + /* "pyreadstat/_readstat_parser.pyx":961 * check_exit_status(readstat_set_metadata_handler(parser, metadata_handler)) * check_exit_status(readstat_set_variable_handler(parser, variable_handler)) * check_exit_status(readstat_set_value_label_handler(parser, value_label_handler)) # <<<<<<<<<<<<<< * check_exit_status(readstat_set_note_handler(parser, note_handler)) * */ - __pyx_f_10pyreadstat_16_readstat_parser_check_exit_status(readstat_set_value_label_handler(__pyx_v_parser, __pyx_v_value_label_handler)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 952, __pyx_L1_error) + __pyx_f_10pyreadstat_16_readstat_parser_check_exit_status(readstat_set_value_label_handler(__pyx_v_parser, __pyx_v_value_label_handler)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 961, __pyx_L1_error) - /* "pyreadstat/_readstat_parser.pyx":953 + /* "pyreadstat/_readstat_parser.pyx":962 * check_exit_status(readstat_set_variable_handler(parser, variable_handler)) * check_exit_status(readstat_set_value_label_handler(parser, value_label_handler)) * check_exit_status(readstat_set_note_handler(parser, note_handler)) # <<<<<<<<<<<<<< * * # Set up custom I/O handlers for file objects */ - __pyx_f_10pyreadstat_16_readstat_parser_check_exit_status(readstat_set_note_handler(__pyx_v_parser, __pyx_v_note_handler)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 953, __pyx_L1_error) + __pyx_f_10pyreadstat_16_readstat_parser_check_exit_status(readstat_set_note_handler(__pyx_v_parser, __pyx_v_note_handler)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 962, __pyx_L1_error) - /* "pyreadstat/_readstat_parser.pyx":956 + /* "pyreadstat/_readstat_parser.pyx":965 * * # Set up custom I/O handlers for file objects * if file_obj is not None: # <<<<<<<<<<<<<< @@ -13518,7 +13608,7 @@ static void __pyx_f_10pyreadstat_16_readstat_parser_run_readstat_parser(char *__ __pyx_t_1 = (__pyx_v_file_obj != Py_None); if (__pyx_t_1) { - /* "pyreadstat/_readstat_parser.pyx":957 + /* "pyreadstat/_readstat_parser.pyx":966 * # Set up custom I/O handlers for file objects * if file_obj is not None: * io_ctx = file_obj # <<<<<<<<<<<<<< @@ -13527,7 +13617,7 @@ static void __pyx_f_10pyreadstat_16_readstat_parser_run_readstat_parser(char *__ */ __pyx_v_io_ctx = ((void *)__pyx_v_file_obj); - /* "pyreadstat/_readstat_parser.pyx":958 + /* "pyreadstat/_readstat_parser.pyx":967 * if file_obj is not None: * io_ctx = file_obj * open_handler = pyobject_open_handler # <<<<<<<<<<<<<< @@ -13536,7 +13626,7 @@ static void __pyx_f_10pyreadstat_16_readstat_parser_run_readstat_parser(char *__ */ __pyx_v_open_handler = ((readstat_open_handler)__pyx_f_10pyreadstat_16_readstat_parser_pyobject_open_handler); - /* "pyreadstat/_readstat_parser.pyx":959 + /* "pyreadstat/_readstat_parser.pyx":968 * io_ctx = file_obj * open_handler = pyobject_open_handler * close_handler = pyobject_close_handler # <<<<<<<<<<<<<< @@ -13545,7 +13635,7 @@ static void __pyx_f_10pyreadstat_16_readstat_parser_run_readstat_parser(char *__ */ __pyx_v_close_handler = ((readstat_close_handler)__pyx_f_10pyreadstat_16_readstat_parser_pyobject_close_handler); - /* "pyreadstat/_readstat_parser.pyx":960 + /* "pyreadstat/_readstat_parser.pyx":969 * open_handler = pyobject_open_handler * close_handler = pyobject_close_handler * read_handler = pyobject_read_handler # <<<<<<<<<<<<<< @@ -13554,7 +13644,7 @@ static void __pyx_f_10pyreadstat_16_readstat_parser_run_readstat_parser(char *__ */ __pyx_v_read_handler = ((readstat_read_handler)__pyx_f_10pyreadstat_16_readstat_parser_pyobject_read_handler); - /* "pyreadstat/_readstat_parser.pyx":961 + /* "pyreadstat/_readstat_parser.pyx":970 * close_handler = pyobject_close_handler * read_handler = pyobject_read_handler * seek_handler = pyobject_seek_handler # <<<<<<<<<<<<<< @@ -13563,7 +13653,7 @@ static void __pyx_f_10pyreadstat_16_readstat_parser_run_readstat_parser(char *__ */ __pyx_v_seek_handler = ((readstat_seek_handler)__pyx_f_10pyreadstat_16_readstat_parser_pyobject_seek_handler); - /* "pyreadstat/_readstat_parser.pyx":962 + /* "pyreadstat/_readstat_parser.pyx":971 * read_handler = pyobject_read_handler * seek_handler = pyobject_seek_handler * readstat_set_io_ctx(parser, io_ctx) # <<<<<<<<<<<<<< @@ -13572,7 +13662,7 @@ static void __pyx_f_10pyreadstat_16_readstat_parser_run_readstat_parser(char *__ */ (void)(readstat_set_io_ctx(__pyx_v_parser, __pyx_v_io_ctx)); - /* "pyreadstat/_readstat_parser.pyx":963 + /* "pyreadstat/_readstat_parser.pyx":972 * seek_handler = pyobject_seek_handler * readstat_set_io_ctx(parser, io_ctx) * readstat_set_open_handler(parser, open_handler) # <<<<<<<<<<<<<< @@ -13581,7 +13671,7 @@ static void __pyx_f_10pyreadstat_16_readstat_parser_run_readstat_parser(char *__ */ (void)(readstat_set_open_handler(__pyx_v_parser, __pyx_v_open_handler)); - /* "pyreadstat/_readstat_parser.pyx":964 + /* "pyreadstat/_readstat_parser.pyx":973 * readstat_set_io_ctx(parser, io_ctx) * readstat_set_open_handler(parser, open_handler) * readstat_set_close_handler(parser, close_handler) # <<<<<<<<<<<<<< @@ -13590,7 +13680,7 @@ static void __pyx_f_10pyreadstat_16_readstat_parser_run_readstat_parser(char *__ */ (void)(readstat_set_close_handler(__pyx_v_parser, __pyx_v_close_handler)); - /* "pyreadstat/_readstat_parser.pyx":965 + /* "pyreadstat/_readstat_parser.pyx":974 * readstat_set_open_handler(parser, open_handler) * readstat_set_close_handler(parser, close_handler) * readstat_set_read_handler(parser, read_handler) # <<<<<<<<<<<<<< @@ -13599,7 +13689,7 @@ static void __pyx_f_10pyreadstat_16_readstat_parser_run_readstat_parser(char *__ */ (void)(readstat_set_read_handler(__pyx_v_parser, __pyx_v_read_handler)); - /* "pyreadstat/_readstat_parser.pyx":966 + /* "pyreadstat/_readstat_parser.pyx":975 * readstat_set_close_handler(parser, close_handler) * readstat_set_read_handler(parser, read_handler) * readstat_set_seek_handler(parser, seek_handler) # <<<<<<<<<<<<<< @@ -13608,7 +13698,7 @@ static void __pyx_f_10pyreadstat_16_readstat_parser_run_readstat_parser(char *__ */ (void)(readstat_set_seek_handler(__pyx_v_parser, __pyx_v_seek_handler)); - /* "pyreadstat/_readstat_parser.pyx":956 + /* "pyreadstat/_readstat_parser.pyx":965 * * # Set up custom I/O handlers for file objects * if file_obj is not None: # <<<<<<<<<<<<<< @@ -13618,23 +13708,23 @@ static void __pyx_f_10pyreadstat_16_readstat_parser_run_readstat_parser(char *__ goto __pyx_L3; } - /* "pyreadstat/_readstat_parser.pyx":967 + /* "pyreadstat/_readstat_parser.pyx":976 * readstat_set_read_handler(parser, read_handler) * readstat_set_seek_handler(parser, seek_handler) * elif os.name == "nt": # <<<<<<<<<<<<<< * # on windows we need a custom open handler in order to deal with internation characters in the path. * open_handler = handle_open */ - __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_os); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 967, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_os); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 976, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_name); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 967, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_name); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 976, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_nt, Py_EQ)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 967, __pyx_L1_error) + __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_nt, Py_EQ)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 976, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (__pyx_t_1) { - /* "pyreadstat/_readstat_parser.pyx":969 + /* "pyreadstat/_readstat_parser.pyx":978 * elif os.name == "nt": * # on windows we need a custom open handler in order to deal with internation characters in the path. * open_handler = handle_open # <<<<<<<<<<<<<< @@ -13643,7 +13733,7 @@ static void __pyx_f_10pyreadstat_16_readstat_parser_run_readstat_parser(char *__ */ __pyx_v_open_handler = ((readstat_open_handler)__pyx_f_10pyreadstat_16_readstat_parser_handle_open); - /* "pyreadstat/_readstat_parser.pyx":970 + /* "pyreadstat/_readstat_parser.pyx":979 * # on windows we need a custom open handler in order to deal with internation characters in the path. * open_handler = handle_open * readstat_set_open_handler(parser, open_handler) # <<<<<<<<<<<<<< @@ -13652,7 +13742,7 @@ static void __pyx_f_10pyreadstat_16_readstat_parser_run_readstat_parser(char *__ */ (void)(readstat_set_open_handler(__pyx_v_parser, __pyx_v_open_handler)); - /* "pyreadstat/_readstat_parser.pyx":967 + /* "pyreadstat/_readstat_parser.pyx":976 * readstat_set_read_handler(parser, read_handler) * readstat_set_seek_handler(parser, seek_handler) * elif os.name == "nt": # <<<<<<<<<<<<<< @@ -13662,7 +13752,7 @@ static void __pyx_f_10pyreadstat_16_readstat_parser_run_readstat_parser(char *__ } __pyx_L3:; - /* "pyreadstat/_readstat_parser.pyx":972 + /* "pyreadstat/_readstat_parser.pyx":981 * readstat_set_open_handler(parser, open_handler) * * if not metaonly: # <<<<<<<<<<<<<< @@ -13672,16 +13762,16 @@ static void __pyx_f_10pyreadstat_16_readstat_parser_run_readstat_parser(char *__ __pyx_t_1 = (!__pyx_v_metaonly); if (__pyx_t_1) { - /* "pyreadstat/_readstat_parser.pyx":973 + /* "pyreadstat/_readstat_parser.pyx":982 * * if not metaonly: * check_exit_status(readstat_set_value_handler(parser, value_handler)) # <<<<<<<<<<<<<< * * # if the user set the encoding manually */ - __pyx_f_10pyreadstat_16_readstat_parser_check_exit_status(readstat_set_value_handler(__pyx_v_parser, __pyx_v_value_handler)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 973, __pyx_L1_error) + __pyx_f_10pyreadstat_16_readstat_parser_check_exit_status(readstat_set_value_handler(__pyx_v_parser, __pyx_v_value_handler)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 982, __pyx_L1_error) - /* "pyreadstat/_readstat_parser.pyx":972 + /* "pyreadstat/_readstat_parser.pyx":981 * readstat_set_open_handler(parser, open_handler) * * if not metaonly: # <<<<<<<<<<<<<< @@ -13690,7 +13780,7 @@ static void __pyx_f_10pyreadstat_16_readstat_parser_run_readstat_parser(char *__ */ } - /* "pyreadstat/_readstat_parser.pyx":976 + /* "pyreadstat/_readstat_parser.pyx":985 * * # if the user set the encoding manually * if data.user_encoding: # <<<<<<<<<<<<<< @@ -13701,13 +13791,13 @@ static void __pyx_f_10pyreadstat_16_readstat_parser_run_readstat_parser(char *__ else { Py_ssize_t __pyx_temp = __Pyx_PyUnicode_IS_TRUE(__pyx_v_data->user_encoding); - if (unlikely(((!CYTHON_ASSUME_SAFE_SIZE) && __pyx_temp < 0))) __PYX_ERR(0, 976, __pyx_L1_error) + if (unlikely(((!CYTHON_ASSUME_SAFE_SIZE) && __pyx_temp < 0))) __PYX_ERR(0, 985, __pyx_L1_error) __pyx_t_1 = (__pyx_temp != 0); } if (__pyx_t_1) { - /* "pyreadstat/_readstat_parser.pyx":977 + /* "pyreadstat/_readstat_parser.pyx":986 * # if the user set the encoding manually * if data.user_encoding: * encoding_bytes = data.user_encoding.encode("utf-8") # <<<<<<<<<<<<<< @@ -13716,24 +13806,24 @@ static void __pyx_f_10pyreadstat_16_readstat_parser_run_readstat_parser(char *__ */ if (unlikely(__pyx_v_data->user_encoding == Py_None)) { PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "encode"); - __PYX_ERR(0, 977, __pyx_L1_error) + __PYX_ERR(0, 986, __pyx_L1_error) } - __pyx_t_3 = PyUnicode_AsUTF8String(__pyx_v_data->user_encoding); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 977, __pyx_L1_error) + __pyx_t_3 = PyUnicode_AsUTF8String(__pyx_v_data->user_encoding); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 986, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_v_encoding_bytes = ((PyObject*)__pyx_t_3); __pyx_t_3 = 0; - /* "pyreadstat/_readstat_parser.pyx":978 + /* "pyreadstat/_readstat_parser.pyx":987 * if data.user_encoding: * encoding_bytes = data.user_encoding.encode("utf-8") * readstat_set_file_character_encoding(parser, encoding_bytes) # <<<<<<<<<<<<<< * * if row_limit: */ - __pyx_t_4 = __Pyx_PyBytes_AsWritableString(__pyx_v_encoding_bytes); if (unlikely((!__pyx_t_4) && PyErr_Occurred())) __PYX_ERR(0, 978, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyBytes_AsWritableString(__pyx_v_encoding_bytes); if (unlikely((!__pyx_t_4) && PyErr_Occurred())) __PYX_ERR(0, 987, __pyx_L1_error) (void)(readstat_set_file_character_encoding(__pyx_v_parser, ((char *)__pyx_t_4))); - /* "pyreadstat/_readstat_parser.pyx":976 + /* "pyreadstat/_readstat_parser.pyx":985 * * # if the user set the encoding manually * if data.user_encoding: # <<<<<<<<<<<<<< @@ -13742,7 +13832,7 @@ static void __pyx_f_10pyreadstat_16_readstat_parser_run_readstat_parser(char *__ */ } - /* "pyreadstat/_readstat_parser.pyx":980 + /* "pyreadstat/_readstat_parser.pyx":989 * readstat_set_file_character_encoding(parser, encoding_bytes) * * if row_limit: # <<<<<<<<<<<<<< @@ -13752,16 +13842,16 @@ static void __pyx_f_10pyreadstat_16_readstat_parser_run_readstat_parser(char *__ __pyx_t_1 = (__pyx_v_row_limit != 0); if (__pyx_t_1) { - /* "pyreadstat/_readstat_parser.pyx":981 + /* "pyreadstat/_readstat_parser.pyx":990 * * if row_limit: * check_exit_status(readstat_set_row_limit(parser, row_limit)) # <<<<<<<<<<<<<< * * if row_offset: */ - __pyx_f_10pyreadstat_16_readstat_parser_check_exit_status(readstat_set_row_limit(__pyx_v_parser, __pyx_v_row_limit)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 981, __pyx_L1_error) + __pyx_f_10pyreadstat_16_readstat_parser_check_exit_status(readstat_set_row_limit(__pyx_v_parser, __pyx_v_row_limit)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 990, __pyx_L1_error) - /* "pyreadstat/_readstat_parser.pyx":980 + /* "pyreadstat/_readstat_parser.pyx":989 * readstat_set_file_character_encoding(parser, encoding_bytes) * * if row_limit: # <<<<<<<<<<<<<< @@ -13770,7 +13860,7 @@ static void __pyx_f_10pyreadstat_16_readstat_parser_run_readstat_parser(char *__ */ } - /* "pyreadstat/_readstat_parser.pyx":983 + /* "pyreadstat/_readstat_parser.pyx":992 * check_exit_status(readstat_set_row_limit(parser, row_limit)) * * if row_offset: # <<<<<<<<<<<<<< @@ -13780,16 +13870,16 @@ static void __pyx_f_10pyreadstat_16_readstat_parser_run_readstat_parser(char *__ __pyx_t_1 = (__pyx_v_row_offset != 0); if (__pyx_t_1) { - /* "pyreadstat/_readstat_parser.pyx":984 + /* "pyreadstat/_readstat_parser.pyx":993 * * if row_offset: * check_exit_status(readstat_set_row_offset(parser, row_offset)) # <<<<<<<<<<<<<< * * # parse! */ - __pyx_f_10pyreadstat_16_readstat_parser_check_exit_status(readstat_set_row_offset(__pyx_v_parser, __pyx_v_row_offset)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 984, __pyx_L1_error) + __pyx_f_10pyreadstat_16_readstat_parser_check_exit_status(readstat_set_row_offset(__pyx_v_parser, __pyx_v_row_offset)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 993, __pyx_L1_error) - /* "pyreadstat/_readstat_parser.pyx":983 + /* "pyreadstat/_readstat_parser.pyx":992 * check_exit_status(readstat_set_row_limit(parser, row_limit)) * * if row_offset: # <<<<<<<<<<<<<< @@ -13798,7 +13888,7 @@ static void __pyx_f_10pyreadstat_16_readstat_parser_run_readstat_parser(char *__ */ } - /* "pyreadstat/_readstat_parser.pyx":987 + /* "pyreadstat/_readstat_parser.pyx":996 * * # parse! * if file_extension == FILE_EXT_SAV: # <<<<<<<<<<<<<< @@ -13808,7 +13898,7 @@ static void __pyx_f_10pyreadstat_16_readstat_parser_run_readstat_parser(char *__ switch (__pyx_v_file_extension) { case __pyx_e_10pyreadstat_16_readstat_parser_FILE_EXT_SAV: - /* "pyreadstat/_readstat_parser.pyx":988 + /* "pyreadstat/_readstat_parser.pyx":997 * # parse! * if file_extension == FILE_EXT_SAV: * error = readstat_parse_sav(parser, filename, ctx); # <<<<<<<<<<<<<< @@ -13817,7 +13907,7 @@ static void __pyx_f_10pyreadstat_16_readstat_parser_run_readstat_parser(char *__ */ __pyx_v_error = readstat_parse_sav(__pyx_v_parser, __pyx_v_filename, __pyx_v_ctx); - /* "pyreadstat/_readstat_parser.pyx":987 + /* "pyreadstat/_readstat_parser.pyx":996 * * # parse! * if file_extension == FILE_EXT_SAV: # <<<<<<<<<<<<<< @@ -13827,7 +13917,7 @@ static void __pyx_f_10pyreadstat_16_readstat_parser_run_readstat_parser(char *__ break; case __pyx_e_10pyreadstat_16_readstat_parser_FILE_EXT_SAS7BDAT: - /* "pyreadstat/_readstat_parser.pyx":990 + /* "pyreadstat/_readstat_parser.pyx":999 * error = readstat_parse_sav(parser, filename, ctx); * elif file_extension == FILE_EXT_SAS7BDAT: * error = readstat_parse_sas7bdat(parser, filename, ctx); # <<<<<<<<<<<<<< @@ -13836,7 +13926,7 @@ static void __pyx_f_10pyreadstat_16_readstat_parser_run_readstat_parser(char *__ */ __pyx_v_error = readstat_parse_sas7bdat(__pyx_v_parser, __pyx_v_filename, __pyx_v_ctx); - /* "pyreadstat/_readstat_parser.pyx":989 + /* "pyreadstat/_readstat_parser.pyx":998 * if file_extension == FILE_EXT_SAV: * error = readstat_parse_sav(parser, filename, ctx); * elif file_extension == FILE_EXT_SAS7BDAT: # <<<<<<<<<<<<<< @@ -13846,7 +13936,7 @@ static void __pyx_f_10pyreadstat_16_readstat_parser_run_readstat_parser(char *__ break; case __pyx_e_10pyreadstat_16_readstat_parser_FILE_EXT_DTA: - /* "pyreadstat/_readstat_parser.pyx":992 + /* "pyreadstat/_readstat_parser.pyx":1001 * error = readstat_parse_sas7bdat(parser, filename, ctx); * elif file_extension == FILE_EXT_DTA: * error = readstat_parse_dta(parser, filename, ctx); # <<<<<<<<<<<<<< @@ -13855,7 +13945,7 @@ static void __pyx_f_10pyreadstat_16_readstat_parser_run_readstat_parser(char *__ */ __pyx_v_error = readstat_parse_dta(__pyx_v_parser, __pyx_v_filename, __pyx_v_ctx); - /* "pyreadstat/_readstat_parser.pyx":991 + /* "pyreadstat/_readstat_parser.pyx":1000 * elif file_extension == FILE_EXT_SAS7BDAT: * error = readstat_parse_sas7bdat(parser, filename, ctx); * elif file_extension == FILE_EXT_DTA: # <<<<<<<<<<<<<< @@ -13865,7 +13955,7 @@ static void __pyx_f_10pyreadstat_16_readstat_parser_run_readstat_parser(char *__ break; case __pyx_e_10pyreadstat_16_readstat_parser_FILE_EXT_XPORT: - /* "pyreadstat/_readstat_parser.pyx":994 + /* "pyreadstat/_readstat_parser.pyx":1003 * error = readstat_parse_dta(parser, filename, ctx); * elif file_extension == FILE_EXT_XPORT: * error = readstat_parse_xport(parser, filename, ctx); # <<<<<<<<<<<<<< @@ -13874,7 +13964,7 @@ static void __pyx_f_10pyreadstat_16_readstat_parser_run_readstat_parser(char *__ */ __pyx_v_error = readstat_parse_xport(__pyx_v_parser, __pyx_v_filename, __pyx_v_ctx); - /* "pyreadstat/_readstat_parser.pyx":993 + /* "pyreadstat/_readstat_parser.pyx":1002 * elif file_extension == FILE_EXT_DTA: * error = readstat_parse_dta(parser, filename, ctx); * elif file_extension == FILE_EXT_XPORT: # <<<<<<<<<<<<<< @@ -13884,7 +13974,7 @@ static void __pyx_f_10pyreadstat_16_readstat_parser_run_readstat_parser(char *__ break; case __pyx_e_10pyreadstat_16_readstat_parser_FILE_EXT_POR: - /* "pyreadstat/_readstat_parser.pyx":996 + /* "pyreadstat/_readstat_parser.pyx":1005 * error = readstat_parse_xport(parser, filename, ctx); * elif file_extension == FILE_EXT_POR: * error = readstat_parse_por(parser, filename, ctx); # <<<<<<<<<<<<<< @@ -13893,7 +13983,7 @@ static void __pyx_f_10pyreadstat_16_readstat_parser_run_readstat_parser(char *__ */ __pyx_v_error = readstat_parse_por(__pyx_v_parser, __pyx_v_filename, __pyx_v_ctx); - /* "pyreadstat/_readstat_parser.pyx":995 + /* "pyreadstat/_readstat_parser.pyx":1004 * elif file_extension == FILE_EXT_XPORT: * error = readstat_parse_xport(parser, filename, ctx); * elif file_extension == FILE_EXT_POR: # <<<<<<<<<<<<<< @@ -13903,7 +13993,7 @@ static void __pyx_f_10pyreadstat_16_readstat_parser_run_readstat_parser(char *__ break; case __pyx_e_10pyreadstat_16_readstat_parser_FILE_EXT_SAS7BCAT: - /* "pyreadstat/_readstat_parser.pyx":998 + /* "pyreadstat/_readstat_parser.pyx":1007 * error = readstat_parse_por(parser, filename, ctx); * elif file_extension == FILE_EXT_SAS7BCAT: * error = readstat_parse_sas7bcat(parser, filename, ctx); # <<<<<<<<<<<<<< @@ -13912,7 +14002,7 @@ static void __pyx_f_10pyreadstat_16_readstat_parser_run_readstat_parser(char *__ */ __pyx_v_error = readstat_parse_sas7bcat(__pyx_v_parser, __pyx_v_filename, __pyx_v_ctx); - /* "pyreadstat/_readstat_parser.pyx":997 + /* "pyreadstat/_readstat_parser.pyx":1006 * elif file_extension == FILE_EXT_POR: * error = readstat_parse_por(parser, filename, ctx); * elif file_extension == FILE_EXT_SAS7BCAT: # <<<<<<<<<<<<<< @@ -13923,7 +14013,7 @@ static void __pyx_f_10pyreadstat_16_readstat_parser_run_readstat_parser(char *__ default: break; } - /* "pyreadstat/_readstat_parser.pyx":1000 + /* "pyreadstat/_readstat_parser.pyx":1009 * error = readstat_parse_sas7bcat(parser, filename, ctx); * #error = parse_func(parser, filename, ctx); * readstat_parser_free(parser) # <<<<<<<<<<<<<< @@ -13932,7 +14022,7 @@ static void __pyx_f_10pyreadstat_16_readstat_parser_run_readstat_parser(char *__ */ readstat_parser_free(__pyx_v_parser); - /* "pyreadstat/_readstat_parser.pyx":1003 + /* "pyreadstat/_readstat_parser.pyx":1012 * # check if a python error ocurred, if yes, it will be printed by the interpreter, * # if not, make sure that the return from parse_func is OK, if not print * pyerr = PyErr_Occurred() # <<<<<<<<<<<<<< @@ -13941,7 +14031,7 @@ static void __pyx_f_10pyreadstat_16_readstat_parser_run_readstat_parser(char *__ */ __pyx_v_pyerr = PyErr_Occurred(); - /* "pyreadstat/_readstat_parser.pyx":1004 + /* "pyreadstat/_readstat_parser.pyx":1013 * # if not, make sure that the return from parse_func is OK, if not print * pyerr = PyErr_Occurred() * if pyerr == NULL: # <<<<<<<<<<<<<< @@ -13951,16 +14041,16 @@ static void __pyx_f_10pyreadstat_16_readstat_parser_run_readstat_parser(char *__ __pyx_t_1 = (((void *)__pyx_v_pyerr) == NULL); if (__pyx_t_1) { - /* "pyreadstat/_readstat_parser.pyx":1005 + /* "pyreadstat/_readstat_parser.pyx":1014 * pyerr = PyErr_Occurred() * if pyerr == NULL: * check_exit_status(error) # <<<<<<<<<<<<<< * * */ - __pyx_f_10pyreadstat_16_readstat_parser_check_exit_status(__pyx_v_error); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1005, __pyx_L1_error) + __pyx_f_10pyreadstat_16_readstat_parser_check_exit_status(__pyx_v_error); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1014, __pyx_L1_error) - /* "pyreadstat/_readstat_parser.pyx":1004 + /* "pyreadstat/_readstat_parser.pyx":1013 * # if not, make sure that the return from parse_func is OK, if not print * pyerr = PyErr_Occurred() * if pyerr == NULL: # <<<<<<<<<<<<<< @@ -13969,7 +14059,7 @@ static void __pyx_f_10pyreadstat_16_readstat_parser_run_readstat_parser(char *__ */ } - /* "pyreadstat/_readstat_parser.pyx":913 + /* "pyreadstat/_readstat_parser.pyx":922 * * * cdef void run_readstat_parser(char * filename, data_container data, py_file_extension file_extension, long row_limit, long row_offset, object file_obj=None) except *: # <<<<<<<<<<<<<< @@ -13988,7 +14078,7 @@ static void __pyx_f_10pyreadstat_16_readstat_parser_run_readstat_parser(char *__ __Pyx_RefNannyFinishContext(); } -/* "pyreadstat/_readstat_parser.pyx":1008 +/* "pyreadstat/_readstat_parser.pyx":1017 * * * cdef object data_container_to_dict(data_container data): # <<<<<<<<<<<<<< @@ -14022,7 +14112,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_data_container_to_dict( int __pyx_clineno = 0; __Pyx_RefNannySetupContext("data_container_to_dict", 0); - /* "pyreadstat/_readstat_parser.pyx":1022 + /* "pyreadstat/_readstat_parser.pyx":1031 * cdef bint metaonly * * final_container = OrderedDict() # <<<<<<<<<<<<<< @@ -14030,7 +14120,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_data_container_to_dict( * col_names = data.col_names */ __pyx_t_2 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_OrderedDict); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1022, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_OrderedDict); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1031, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = 1; #if CYTHON_UNPACK_METHODS @@ -14049,13 +14139,13 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_data_container_to_dict( __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_3, __pyx_callargs+__pyx_t_4, (1-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1022, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1031, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } __pyx_v_final_container = __pyx_t_1; __pyx_t_1 = 0; - /* "pyreadstat/_readstat_parser.pyx":1023 + /* "pyreadstat/_readstat_parser.pyx":1032 * * final_container = OrderedDict() * col_data = data.col_data # <<<<<<<<<<<<<< @@ -14067,7 +14157,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_data_container_to_dict( __pyx_v_col_data = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - /* "pyreadstat/_readstat_parser.pyx":1024 + /* "pyreadstat/_readstat_parser.pyx":1033 * final_container = OrderedDict() * col_data = data.col_data * col_names = data.col_names # <<<<<<<<<<<<<< @@ -14079,7 +14169,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_data_container_to_dict( __pyx_v_col_names = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - /* "pyreadstat/_readstat_parser.pyx":1025 + /* "pyreadstat/_readstat_parser.pyx":1034 * col_data = data.col_data * col_names = data.col_names * is_unkown_number_rows = data.is_unkown_number_rows # <<<<<<<<<<<<<< @@ -14089,7 +14179,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_data_container_to_dict( __pyx_t_5 = __pyx_v_data->is_unkown_number_rows; __pyx_v_is_unkown_number_rows = __pyx_t_5; - /* "pyreadstat/_readstat_parser.pyx":1026 + /* "pyreadstat/_readstat_parser.pyx":1035 * col_names = data.col_names * is_unkown_number_rows = data.is_unkown_number_rows * max_n_obs = data.max_n_obs # <<<<<<<<<<<<<< @@ -14099,7 +14189,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_data_container_to_dict( __pyx_t_6 = __pyx_v_data->max_n_obs; __pyx_v_max_n_obs = __pyx_t_6; - /* "pyreadstat/_readstat_parser.pyx":1027 + /* "pyreadstat/_readstat_parser.pyx":1036 * is_unkown_number_rows = data.is_unkown_number_rows * max_n_obs = data.max_n_obs * metaonly = data.metaonly # <<<<<<<<<<<<<< @@ -14109,7 +14199,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_data_container_to_dict( __pyx_t_5 = __pyx_v_data->metaonly; __pyx_v_metaonly = __pyx_t_5; - /* "pyreadstat/_readstat_parser.pyx":1029 + /* "pyreadstat/_readstat_parser.pyx":1038 * metaonly = data.metaonly * * for fc_cnt in range(0, len(col_names)): # <<<<<<<<<<<<<< @@ -14118,14 +14208,14 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_data_container_to_dict( */ if (unlikely(__pyx_v_col_names == Py_None)) { PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()"); - __PYX_ERR(0, 1029, __pyx_L1_error) + __PYX_ERR(0, 1038, __pyx_L1_error) } - __pyx_t_7 = __Pyx_PyList_GET_SIZE(__pyx_v_col_names); if (unlikely(__pyx_t_7 == ((Py_ssize_t)-1))) __PYX_ERR(0, 1029, __pyx_L1_error) + __pyx_t_7 = __Pyx_PyList_GET_SIZE(__pyx_v_col_names); if (unlikely(__pyx_t_7 == ((Py_ssize_t)-1))) __PYX_ERR(0, 1038, __pyx_L1_error) __pyx_t_8 = __pyx_t_7; for (__pyx_t_6 = 0; __pyx_t_6 < __pyx_t_8; __pyx_t_6+=1) { __pyx_v_fc_cnt = __pyx_t_6; - /* "pyreadstat/_readstat_parser.pyx":1030 + /* "pyreadstat/_readstat_parser.pyx":1039 * * for fc_cnt in range(0, len(col_names)): * cur_name_str = col_names[fc_cnt] # <<<<<<<<<<<<<< @@ -14134,15 +14224,15 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_data_container_to_dict( */ if (unlikely(__pyx_v_col_names == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 1030, __pyx_L1_error) + __PYX_ERR(0, 1039, __pyx_L1_error) } - __pyx_t_1 = __Pyx_GetItemInt_List(__pyx_v_col_names, __pyx_v_fc_cnt, int, 1, __Pyx_PyLong_From_int, 1, 1, 1, 1, __Pyx_ReferenceSharing_OwnStrongReference); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1030, __pyx_L1_error) + __pyx_t_1 = __Pyx_GetItemInt_List(__pyx_v_col_names, __pyx_v_fc_cnt, int, 1, __Pyx_PyLong_From_int, 1, 1, 1, 1, __Pyx_ReferenceSharing_OwnStrongReference); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1039, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - if (!(likely(PyUnicode_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("str", __pyx_t_1))) __PYX_ERR(0, 1030, __pyx_L1_error) + if (!(likely(PyUnicode_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("str", __pyx_t_1))) __PYX_ERR(0, 1039, __pyx_L1_error) __Pyx_XDECREF_SET(__pyx_v_cur_name_str, ((PyObject*)__pyx_t_1)); __pyx_t_1 = 0; - /* "pyreadstat/_readstat_parser.pyx":1031 + /* "pyreadstat/_readstat_parser.pyx":1040 * for fc_cnt in range(0, len(col_names)): * cur_name_str = col_names[fc_cnt] * cur_data = col_data[fc_cnt] # <<<<<<<<<<<<<< @@ -14151,14 +14241,14 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_data_container_to_dict( */ if (unlikely(__pyx_v_col_data == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 1031, __pyx_L1_error) + __PYX_ERR(0, 1040, __pyx_L1_error) } - __pyx_t_1 = __Pyx_GetItemInt_List(__pyx_v_col_data, __pyx_v_fc_cnt, int, 1, __Pyx_PyLong_From_int, 1, 1, 1, 1, __Pyx_ReferenceSharing_OwnStrongReference); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1031, __pyx_L1_error) + __pyx_t_1 = __Pyx_GetItemInt_List(__pyx_v_col_data, __pyx_v_fc_cnt, int, 1, __Pyx_PyLong_From_int, 1, 1, 1, 1, __Pyx_ReferenceSharing_OwnStrongReference); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1040, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_XDECREF_SET(__pyx_v_cur_data, __pyx_t_1); __pyx_t_1 = 0; - /* "pyreadstat/_readstat_parser.pyx":1032 + /* "pyreadstat/_readstat_parser.pyx":1041 * cur_name_str = col_names[fc_cnt] * cur_data = col_data[fc_cnt] * if is_unkown_number_rows and not metaonly: # <<<<<<<<<<<<<< @@ -14175,19 +14265,19 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_data_container_to_dict( __pyx_L6_bool_binop_done:; if (__pyx_t_5) { - /* "pyreadstat/_readstat_parser.pyx":1033 + /* "pyreadstat/_readstat_parser.pyx":1042 * cur_data = col_data[fc_cnt] * if is_unkown_number_rows and not metaonly: * cur_data = cur_data[0:max_n_obs] # <<<<<<<<<<<<<< * if not metaonly: * final_container[cur_name_str] = cur_data */ - __pyx_t_1 = __Pyx_PyObject_GetSlice(__pyx_v_cur_data, 0, __pyx_v_max_n_obs, NULL, NULL, NULL, 1, 1, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1033, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_GetSlice(__pyx_v_cur_data, 0, __pyx_v_max_n_obs, NULL, NULL, NULL, 1, 1, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1042, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_cur_data, __pyx_t_1); __pyx_t_1 = 0; - /* "pyreadstat/_readstat_parser.pyx":1032 + /* "pyreadstat/_readstat_parser.pyx":1041 * cur_name_str = col_names[fc_cnt] * cur_data = col_data[fc_cnt] * if is_unkown_number_rows and not metaonly: # <<<<<<<<<<<<<< @@ -14196,7 +14286,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_data_container_to_dict( */ } - /* "pyreadstat/_readstat_parser.pyx":1034 + /* "pyreadstat/_readstat_parser.pyx":1043 * if is_unkown_number_rows and not metaonly: * cur_data = cur_data[0:max_n_obs] * if not metaonly: # <<<<<<<<<<<<<< @@ -14206,16 +14296,16 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_data_container_to_dict( __pyx_t_5 = (!__pyx_v_metaonly); if (__pyx_t_5) { - /* "pyreadstat/_readstat_parser.pyx":1035 + /* "pyreadstat/_readstat_parser.pyx":1044 * cur_data = cur_data[0:max_n_obs] * if not metaonly: * final_container[cur_name_str] = cur_data # <<<<<<<<<<<<<< * else: * final_container[cur_name_str] = list() */ - if (unlikely((PyObject_SetItem(__pyx_v_final_container, __pyx_v_cur_name_str, __pyx_v_cur_data) < 0))) __PYX_ERR(0, 1035, __pyx_L1_error) + if (unlikely((PyObject_SetItem(__pyx_v_final_container, __pyx_v_cur_name_str, __pyx_v_cur_data) < 0))) __PYX_ERR(0, 1044, __pyx_L1_error) - /* "pyreadstat/_readstat_parser.pyx":1034 + /* "pyreadstat/_readstat_parser.pyx":1043 * if is_unkown_number_rows and not metaonly: * cur_data = cur_data[0:max_n_obs] * if not metaonly: # <<<<<<<<<<<<<< @@ -14225,7 +14315,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_data_container_to_dict( goto __pyx_L8; } - /* "pyreadstat/_readstat_parser.pyx":1037 + /* "pyreadstat/_readstat_parser.pyx":1046 * final_container[cur_name_str] = cur_data * else: * final_container[cur_name_str] = list() # <<<<<<<<<<<<<< @@ -14233,15 +14323,15 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_data_container_to_dict( * return final_container */ /*else*/ { - __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1037, __pyx_L1_error) + __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1046, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - if (unlikely((PyObject_SetItem(__pyx_v_final_container, __pyx_v_cur_name_str, __pyx_t_1) < 0))) __PYX_ERR(0, 1037, __pyx_L1_error) + if (unlikely((PyObject_SetItem(__pyx_v_final_container, __pyx_v_cur_name_str, __pyx_t_1) < 0))) __PYX_ERR(0, 1046, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } __pyx_L8:; } - /* "pyreadstat/_readstat_parser.pyx":1039 + /* "pyreadstat/_readstat_parser.pyx":1048 * final_container[cur_name_str] = list() * * return final_container # <<<<<<<<<<<<<< @@ -14253,7 +14343,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_data_container_to_dict( __pyx_r = __pyx_v_final_container; goto __pyx_L0; - /* "pyreadstat/_readstat_parser.pyx":1008 + /* "pyreadstat/_readstat_parser.pyx":1017 * * * cdef object data_container_to_dict(data_container data): # <<<<<<<<<<<<<< @@ -14279,7 +14369,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_data_container_to_dict( return __pyx_r; } -/* "pyreadstat/_readstat_parser.pyx":1041 +/* "pyreadstat/_readstat_parser.pyx":1050 * return final_container * * cdef object dict_to_dataframe(object dict_data, data_container dc): # <<<<<<<<<<<<<< @@ -14338,7 +14428,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_dict_to_dataframe(PyObj int __pyx_clineno = 0; __Pyx_RefNannySetupContext("dict_to_dataframe", 0); - /* "pyreadstat/_readstat_parser.pyx":1051 + /* "pyreadstat/_readstat_parser.pyx":1060 * cdef py_datetime_format var_format * cdef list dtypes, sertypes, datetime_cols, date_cols * cdef dict schema = None # <<<<<<<<<<<<<< @@ -14348,7 +14438,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_dict_to_dataframe(PyObj __Pyx_INCREF(Py_None); __pyx_v_schema = ((PyObject*)Py_None); - /* "pyreadstat/_readstat_parser.pyx":1053 + /* "pyreadstat/_readstat_parser.pyx":1062 * cdef dict schema = None * * dates_as_pandas = dc.dates_as_pandas # <<<<<<<<<<<<<< @@ -14358,7 +14448,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_dict_to_dataframe(PyObj __pyx_t_1 = __pyx_v_dc->dates_as_pandas; __pyx_v_dates_as_pandas = __pyx_t_1; - /* "pyreadstat/_readstat_parser.pyx":1054 + /* "pyreadstat/_readstat_parser.pyx":1063 * * dates_as_pandas = dc.dates_as_pandas * output_format = dc.output_format # <<<<<<<<<<<<<< @@ -14370,47 +14460,47 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_dict_to_dataframe(PyObj __pyx_v_output_format = ((PyObject*)__pyx_t_2); __pyx_t_2 = 0; - /* "pyreadstat/_readstat_parser.pyx":1056 + /* "pyreadstat/_readstat_parser.pyx":1065 * output_format = dc.output_format * * if dict_data: # <<<<<<<<<<<<<< * #schema = None * # in polars if missing user values we need to explicitly set the type */ - __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_dict_data); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 1056, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_dict_data); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 1065, __pyx_L1_error) if (__pyx_t_1) { - /* "pyreadstat/_readstat_parser.pyx":1060 + /* "pyreadstat/_readstat_parser.pyx":1069 * # in polars if missing user values we need to explicitly set the type * # of that column to Object if not all the elements are of the same type * if output_format != "pandas" and dc.missing_user_values: # <<<<<<<<<<<<<< * schema = dict() * for indx in range(0, len(dc.col_names)): */ - __pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_v_output_format, __pyx_mstate_global->__pyx_n_u_pandas, Py_NE)); if (unlikely((__pyx_t_3 < 0))) __PYX_ERR(0, 1060, __pyx_L1_error) + __pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_v_output_format, __pyx_mstate_global->__pyx_n_u_pandas, Py_NE)); if (unlikely((__pyx_t_3 < 0))) __PYX_ERR(0, 1069, __pyx_L1_error) if (__pyx_t_3) { } else { __pyx_t_1 = __pyx_t_3; goto __pyx_L5_bool_binop_done; } - __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_v_dc->missing_user_values); if (unlikely((__pyx_t_3 < 0))) __PYX_ERR(0, 1060, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_v_dc->missing_user_values); if (unlikely((__pyx_t_3 < 0))) __PYX_ERR(0, 1069, __pyx_L1_error) __pyx_t_1 = __pyx_t_3; __pyx_L5_bool_binop_done:; if (__pyx_t_1) { - /* "pyreadstat/_readstat_parser.pyx":1061 + /* "pyreadstat/_readstat_parser.pyx":1070 * # of that column to Object if not all the elements are of the same type * if output_format != "pandas" and dc.missing_user_values: * schema = dict() # <<<<<<<<<<<<<< * for indx in range(0, len(dc.col_names)): * col_name = dc.col_names[indx] */ - __pyx_t_2 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1061, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1070, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF_SET(__pyx_v_schema, ((PyObject*)__pyx_t_2)); __pyx_t_2 = 0; - /* "pyreadstat/_readstat_parser.pyx":1062 + /* "pyreadstat/_readstat_parser.pyx":1071 * if output_format != "pandas" and dc.missing_user_values: * schema = dict() * for indx in range(0, len(dc.col_names)): # <<<<<<<<<<<<<< @@ -14421,15 +14511,15 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_dict_to_dataframe(PyObj __Pyx_INCREF(__pyx_t_2); if (unlikely(__pyx_t_2 == Py_None)) { PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()"); - __PYX_ERR(0, 1062, __pyx_L1_error) + __PYX_ERR(0, 1071, __pyx_L1_error) } - __pyx_t_4 = __Pyx_PyList_GET_SIZE(__pyx_t_2); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(0, 1062, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyList_GET_SIZE(__pyx_t_2); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(0, 1071, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_5 = __pyx_t_4; for (__pyx_t_6 = 0; __pyx_t_6 < __pyx_t_5; __pyx_t_6+=1) { __pyx_v_indx = __pyx_t_6; - /* "pyreadstat/_readstat_parser.pyx":1063 + /* "pyreadstat/_readstat_parser.pyx":1072 * schema = dict() * for indx in range(0, len(dc.col_names)): * col_name = dc.col_names[indx] # <<<<<<<<<<<<<< @@ -14438,53 +14528,53 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_dict_to_dataframe(PyObj */ if (unlikely(__pyx_v_dc->col_names == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 1063, __pyx_L1_error) + __PYX_ERR(0, 1072, __pyx_L1_error) } - __pyx_t_2 = __Pyx_GetItemInt_List(__pyx_v_dc->col_names, __pyx_v_indx, Py_ssize_t, 1, PyLong_FromSsize_t, 1, 1, 1, 1, __Pyx_ReferenceSharing_SharedReference); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1063, __pyx_L1_error) + __pyx_t_2 = __Pyx_GetItemInt_List(__pyx_v_dc->col_names, __pyx_v_indx, Py_ssize_t, 1, PyLong_FromSsize_t, 1, 1, 1, 1, __Pyx_ReferenceSharing_SharedReference); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1072, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - if (!(likely(PyUnicode_CheckExact(__pyx_t_2))||((__pyx_t_2) == Py_None) || __Pyx_RaiseUnexpectedTypeError("str", __pyx_t_2))) __PYX_ERR(0, 1063, __pyx_L1_error) + if (!(likely(PyUnicode_CheckExact(__pyx_t_2))||((__pyx_t_2) == Py_None) || __Pyx_RaiseUnexpectedTypeError("str", __pyx_t_2))) __PYX_ERR(0, 1072, __pyx_L1_error) __Pyx_XDECREF_SET(__pyx_v_col_name, ((PyObject*)__pyx_t_2)); __pyx_t_2 = 0; - /* "pyreadstat/_readstat_parser.pyx":1064 + /* "pyreadstat/_readstat_parser.pyx":1073 * for indx in range(0, len(dc.col_names)): * col_name = dc.col_names[indx] * if indx in dc.missing_user_values.keys(): # <<<<<<<<<<<<<< * sertypes = [type(x) for x in dict_data[col_name] if x is not None] * # all missing, let polars decide */ - __pyx_t_2 = PyLong_FromSsize_t(__pyx_v_indx); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1064, __pyx_L1_error) + __pyx_t_2 = PyLong_FromSsize_t(__pyx_v_indx); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1073, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (unlikely(__pyx_v_dc->missing_user_values == Py_None)) { PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "keys"); - __PYX_ERR(0, 1064, __pyx_L1_error) + __PYX_ERR(0, 1073, __pyx_L1_error) } - __pyx_t_7 = __Pyx_PyDict_Keys(__pyx_v_dc->missing_user_values); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1064, __pyx_L1_error) + __pyx_t_7 = __Pyx_PyDict_Keys(__pyx_v_dc->missing_user_values); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1073, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); - __pyx_t_1 = (__Pyx_PySequence_ContainsTF(__pyx_t_2, __pyx_t_7, Py_EQ)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 1064, __pyx_L1_error) + __pyx_t_1 = (__Pyx_PySequence_ContainsTF(__pyx_t_2, __pyx_t_7, Py_EQ)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 1073, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; if (__pyx_t_1) { - /* "pyreadstat/_readstat_parser.pyx":1065 + /* "pyreadstat/_readstat_parser.pyx":1074 * col_name = dc.col_names[indx] * if indx in dc.missing_user_values.keys(): * sertypes = [type(x) for x in dict_data[col_name] if x is not None] # <<<<<<<<<<<<<< * # all missing, let polars decide * if not sertypes: */ - __pyx_t_7 = PyList_New(0); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1065, __pyx_L1_error) + __pyx_t_7 = PyList_New(0); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1074, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); - __pyx_t_2 = __Pyx_PyObject_Dict_GetItem(__pyx_v_dict_data, __pyx_v_col_name); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1065, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_Dict_GetItem(__pyx_v_dict_data, __pyx_v_col_name); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1074, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (likely(PyList_CheckExact(__pyx_t_2)) || PyTuple_CheckExact(__pyx_t_2)) { __pyx_t_8 = __pyx_t_2; __Pyx_INCREF(__pyx_t_8); __pyx_t_9 = 0; __pyx_t_10 = NULL; } else { - __pyx_t_9 = -1; __pyx_t_8 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1065, __pyx_L1_error) + __pyx_t_9 = -1; __pyx_t_8 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1074, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); - __pyx_t_10 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_8); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1065, __pyx_L1_error) + __pyx_t_10 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_8); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1074, __pyx_L1_error) } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; for (;;) { @@ -14493,7 +14583,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_dict_to_dataframe(PyObj { Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_8); #if !CYTHON_ASSUME_SAFE_SIZE - if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 1065, __pyx_L1_error) + if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 1074, __pyx_L1_error) #endif if (__pyx_t_9 >= __pyx_temp) break; } @@ -14503,7 +14593,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_dict_to_dataframe(PyObj { Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_8); #if !CYTHON_ASSUME_SAFE_SIZE - if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 1065, __pyx_L1_error) + if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 1074, __pyx_L1_error) #endif if (__pyx_t_9 >= __pyx_temp) break; } @@ -14514,13 +14604,13 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_dict_to_dataframe(PyObj #endif ++__pyx_t_9; } - if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1065, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1074, __pyx_L1_error) } else { __pyx_t_2 = __pyx_t_10(__pyx_t_8); if (unlikely(!__pyx_t_2)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { - if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(0, 1065, __pyx_L1_error) + if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(0, 1074, __pyx_L1_error) PyErr_Clear(); } break; @@ -14531,14 +14621,14 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_dict_to_dataframe(PyObj __pyx_t_2 = 0; __pyx_t_1 = (__pyx_v_x != Py_None); if (__pyx_t_1) { - if (unlikely(__Pyx_ListComp_Append(__pyx_t_7, (PyObject*)((PyObject *)Py_TYPE(__pyx_v_x))))) __PYX_ERR(0, 1065, __pyx_L1_error) + if (unlikely(__Pyx_ListComp_Append(__pyx_t_7, (PyObject*)((PyObject *)Py_TYPE(__pyx_v_x))))) __PYX_ERR(0, 1074, __pyx_L1_error) } } __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_XDECREF_SET(__pyx_v_sertypes, ((PyObject*)__pyx_t_7)); __pyx_t_7 = 0; - /* "pyreadstat/_readstat_parser.pyx":1067 + /* "pyreadstat/_readstat_parser.pyx":1076 * sertypes = [type(x) for x in dict_data[col_name] if x is not None] * # all missing, let polars decide * if not sertypes: # <<<<<<<<<<<<<< @@ -14547,23 +14637,23 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_dict_to_dataframe(PyObj */ { Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_v_sertypes); - if (unlikely(((!CYTHON_ASSUME_SAFE_SIZE) && __pyx_temp < 0))) __PYX_ERR(0, 1067, __pyx_L1_error) + if (unlikely(((!CYTHON_ASSUME_SAFE_SIZE) && __pyx_temp < 0))) __PYX_ERR(0, 1076, __pyx_L1_error) __pyx_t_1 = (__pyx_temp != 0); } __pyx_t_3 = (!__pyx_t_1); if (__pyx_t_3) { - /* "pyreadstat/_readstat_parser.pyx":1068 + /* "pyreadstat/_readstat_parser.pyx":1077 * # all missing, let polars decide * if not sertypes: * schema[col_name] = None # <<<<<<<<<<<<<< * continue * allsame = all([x==sertypes[0] for x in sertypes]) */ - if (unlikely((PyDict_SetItem(__pyx_v_schema, __pyx_v_col_name, Py_None) < 0))) __PYX_ERR(0, 1068, __pyx_L1_error) + if (unlikely((PyDict_SetItem(__pyx_v_schema, __pyx_v_col_name, Py_None) < 0))) __PYX_ERR(0, 1077, __pyx_L1_error) - /* "pyreadstat/_readstat_parser.pyx":1069 + /* "pyreadstat/_readstat_parser.pyx":1078 * if not sertypes: * schema[col_name] = None * continue # <<<<<<<<<<<<<< @@ -14572,7 +14662,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_dict_to_dataframe(PyObj */ goto __pyx_L7_continue; - /* "pyreadstat/_readstat_parser.pyx":1067 + /* "pyreadstat/_readstat_parser.pyx":1076 * sertypes = [type(x) for x in dict_data[col_name] if x is not None] * # all missing, let polars decide * if not sertypes: # <<<<<<<<<<<<<< @@ -14581,7 +14671,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_dict_to_dataframe(PyObj */ } - /* "pyreadstat/_readstat_parser.pyx":1070 + /* "pyreadstat/_readstat_parser.pyx":1079 * schema[col_name] = None * continue * allsame = all([x==sertypes[0] for x in sertypes]) # <<<<<<<<<<<<<< @@ -14589,7 +14679,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_dict_to_dataframe(PyObj * if allsame: */ __pyx_t_8 = NULL; - __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1070, __pyx_L1_error) + __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1079, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_11 = __pyx_v_sertypes; __Pyx_INCREF(__pyx_t_11); __pyx_t_9 = 0; @@ -14597,21 +14687,21 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_dict_to_dataframe(PyObj { Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_11); #if !CYTHON_ASSUME_SAFE_SIZE - if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 1070, __pyx_L1_error) + if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 1079, __pyx_L1_error) #endif if (__pyx_t_9 >= __pyx_temp) break; } __pyx_t_12 = __Pyx_PyList_GetItemRefFast(__pyx_t_11, __pyx_t_9, __Pyx_ReferenceSharing_OwnStrongReference); ++__pyx_t_9; - if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1070, __pyx_L1_error) + if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1079, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_12); __pyx_t_12 = 0; - __pyx_t_12 = __Pyx_GetItemInt_List(__pyx_v_sertypes, 0, long, 1, __Pyx_PyLong_From_long, 1, 0, 1, 1, __Pyx_ReferenceSharing_OwnStrongReference); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1070, __pyx_L1_error) + __pyx_t_12 = __Pyx_GetItemInt_List(__pyx_v_sertypes, 0, long, 1, __Pyx_PyLong_From_long, 1, 0, 1, 1, __Pyx_ReferenceSharing_OwnStrongReference); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1079, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); - __pyx_t_13 = PyObject_RichCompare(__pyx_v_x, __pyx_t_12, Py_EQ); __Pyx_XGOTREF(__pyx_t_13); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1070, __pyx_L1_error) + __pyx_t_13 = PyObject_RichCompare(__pyx_v_x, __pyx_t_12, Py_EQ); __Pyx_XGOTREF(__pyx_t_13); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1079, __pyx_L1_error) __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - if (unlikely(__Pyx_ListComp_Append(__pyx_t_2, (PyObject*)__pyx_t_13))) __PYX_ERR(0, 1070, __pyx_L1_error) + if (unlikely(__Pyx_ListComp_Append(__pyx_t_2, (PyObject*)__pyx_t_13))) __PYX_ERR(0, 1079, __pyx_L1_error) __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; } __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; @@ -14621,14 +14711,14 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_dict_to_dataframe(PyObj __pyx_t_7 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_all, __pyx_callargs+__pyx_t_14, (2-__pyx_t_14) | (__pyx_t_14*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1070, __pyx_L1_error) + if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1079, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); } - __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 1070, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 1079, __pyx_L1_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_v_allsame = __pyx_t_3; - /* "pyreadstat/_readstat_parser.pyx":1072 + /* "pyreadstat/_readstat_parser.pyx":1081 * allsame = all([x==sertypes[0] for x in sertypes]) * # all the same: let polars decide * if allsame: # <<<<<<<<<<<<<< @@ -14637,16 +14727,16 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_dict_to_dataframe(PyObj */ if (__pyx_v_allsame) { - /* "pyreadstat/_readstat_parser.pyx":1073 + /* "pyreadstat/_readstat_parser.pyx":1082 * # all the same: let polars decide * if allsame: * schema[col_name] = None # <<<<<<<<<<<<<< * # not all the same type, has to be Object * else: */ - if (unlikely((PyDict_SetItem(__pyx_v_schema, __pyx_v_col_name, Py_None) < 0))) __PYX_ERR(0, 1073, __pyx_L1_error) + if (unlikely((PyDict_SetItem(__pyx_v_schema, __pyx_v_col_name, Py_None) < 0))) __PYX_ERR(0, 1082, __pyx_L1_error) - /* "pyreadstat/_readstat_parser.pyx":1072 + /* "pyreadstat/_readstat_parser.pyx":1081 * allsame = all([x==sertypes[0] for x in sertypes]) * # all the same: let polars decide * if allsame: # <<<<<<<<<<<<<< @@ -14656,7 +14746,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_dict_to_dataframe(PyObj goto __pyx_L18; } - /* "pyreadstat/_readstat_parser.pyx":1076 + /* "pyreadstat/_readstat_parser.pyx":1085 * # not all the same type, has to be Object * else: * schema[col_name] = nw.Object # <<<<<<<<<<<<<< @@ -14664,17 +14754,17 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_dict_to_dataframe(PyObj * schema[col_name] = None */ /*else*/ { - __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_mstate_global->__pyx_n_u_nw); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1076, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_mstate_global->__pyx_n_u_nw); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1085, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_mstate_global->__pyx_n_u_Object); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1076, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_mstate_global->__pyx_n_u_Object); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1085, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - if (unlikely((PyDict_SetItem(__pyx_v_schema, __pyx_v_col_name, __pyx_t_2) < 0))) __PYX_ERR(0, 1076, __pyx_L1_error) + if (unlikely((PyDict_SetItem(__pyx_v_schema, __pyx_v_col_name, __pyx_t_2) < 0))) __PYX_ERR(0, 1085, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } __pyx_L18:; - /* "pyreadstat/_readstat_parser.pyx":1064 + /* "pyreadstat/_readstat_parser.pyx":1073 * for indx in range(0, len(dc.col_names)): * col_name = dc.col_names[indx] * if indx in dc.missing_user_values.keys(): # <<<<<<<<<<<<<< @@ -14684,7 +14774,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_dict_to_dataframe(PyObj goto __pyx_L9; } - /* "pyreadstat/_readstat_parser.pyx":1078 + /* "pyreadstat/_readstat_parser.pyx":1087 * schema[col_name] = nw.Object * else: * schema[col_name] = None # <<<<<<<<<<<<<< @@ -14692,13 +14782,13 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_dict_to_dataframe(PyObj * data_frame = nw.from_dict(dict_data, backend=output_format, schema=schema) */ /*else*/ { - if (unlikely((PyDict_SetItem(__pyx_v_schema, __pyx_v_col_name, Py_None) < 0))) __PYX_ERR(0, 1078, __pyx_L1_error) + if (unlikely((PyDict_SetItem(__pyx_v_schema, __pyx_v_col_name, Py_None) < 0))) __PYX_ERR(0, 1087, __pyx_L1_error) } __pyx_L9:; __pyx_L7_continue:; } - /* "pyreadstat/_readstat_parser.pyx":1060 + /* "pyreadstat/_readstat_parser.pyx":1069 * # in polars if missing user values we need to explicitly set the type * # of that column to Object if not all the elements are of the same type * if output_format != "pandas" and dc.missing_user_values: # <<<<<<<<<<<<<< @@ -14707,7 +14797,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_dict_to_dataframe(PyObj */ } - /* "pyreadstat/_readstat_parser.pyx":1080 + /* "pyreadstat/_readstat_parser.pyx":1089 * schema[col_name] = None * * data_frame = nw.from_dict(dict_data, backend=output_format, schema=schema) # <<<<<<<<<<<<<< @@ -14715,9 +14805,9 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_dict_to_dataframe(PyObj * data_frame = data_frame.to_native() */ __pyx_t_7 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_nw); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1080, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_nw); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1089, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); - __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_from_dict); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1080, __pyx_L1_error) + __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_from_dict); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1089, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_t_14 = 1; @@ -14734,21 +14824,21 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_dict_to_dataframe(PyObj #endif { PyObject *__pyx_callargs[2 + ((CYTHON_VECTORCALL) ? 2 : 0)] = {__pyx_t_7, __pyx_v_dict_data}; - __pyx_t_8 = __Pyx_MakeVectorcallBuilderKwds(2); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1080, __pyx_L1_error) + __pyx_t_8 = __Pyx_MakeVectorcallBuilderKwds(2); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1089, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); - if (__Pyx_VectorcallBuilder_AddArg(__pyx_mstate_global->__pyx_n_u_backend, __pyx_v_output_format, __pyx_t_8, __pyx_callargs+2, 0) < (0)) __PYX_ERR(0, 1080, __pyx_L1_error) - if (__Pyx_VectorcallBuilder_AddArg(__pyx_mstate_global->__pyx_n_u_schema, __pyx_v_schema, __pyx_t_8, __pyx_callargs+2, 1) < (0)) __PYX_ERR(0, 1080, __pyx_L1_error) + if (__Pyx_VectorcallBuilder_AddArg(__pyx_mstate_global->__pyx_n_u_backend, __pyx_v_output_format, __pyx_t_8, __pyx_callargs+2, 0) < (0)) __PYX_ERR(0, 1089, __pyx_L1_error) + if (__Pyx_VectorcallBuilder_AddArg(__pyx_mstate_global->__pyx_n_u_schema, __pyx_v_schema, __pyx_t_8, __pyx_callargs+2, 1) < (0)) __PYX_ERR(0, 1089, __pyx_L1_error) __pyx_t_2 = __Pyx_Object_Vectorcall_CallFromBuilder((PyObject*)__pyx_t_11, __pyx_callargs+__pyx_t_14, (2-__pyx_t_14) | (__pyx_t_14*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET), __pyx_t_8); __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1080, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1089, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } __pyx_v_data_frame = __pyx_t_2; __pyx_t_2 = 0; - /* "pyreadstat/_readstat_parser.pyx":1081 + /* "pyreadstat/_readstat_parser.pyx":1090 * * data_frame = nw.from_dict(dict_data, backend=output_format, schema=schema) * natnamespace = nw.get_native_namespace(data_frame) # <<<<<<<<<<<<<< @@ -14756,9 +14846,9 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_dict_to_dataframe(PyObj * */ __pyx_t_11 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_nw); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1081, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_nw); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1090, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); - __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_get_native_namespace); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1081, __pyx_L1_error) + __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_get_native_namespace); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1090, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_t_14 = 1; @@ -14778,13 +14868,13 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_dict_to_dataframe(PyObj __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_7, __pyx_callargs+__pyx_t_14, (2-__pyx_t_14) | (__pyx_t_14*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1081, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1090, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } __pyx_v_natnamespace = __pyx_t_2; __pyx_t_2 = 0; - /* "pyreadstat/_readstat_parser.pyx":1082 + /* "pyreadstat/_readstat_parser.pyx":1091 * data_frame = nw.from_dict(dict_data, backend=output_format, schema=schema) * natnamespace = nw.get_native_namespace(data_frame) * data_frame = data_frame.to_native() # <<<<<<<<<<<<<< @@ -14798,13 +14888,13 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_dict_to_dataframe(PyObj PyObject *__pyx_callargs[2] = {__pyx_t_7, NULL}; __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_to_native, __pyx_callargs+__pyx_t_14, (1-__pyx_t_14) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1082, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1091, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } __Pyx_DECREF_SET(__pyx_v_data_frame, __pyx_t_2); __pyx_t_2 = 0; - /* "pyreadstat/_readstat_parser.pyx":1084 + /* "pyreadstat/_readstat_parser.pyx":1093 * data_frame = data_frame.to_native() * * if dates_as_pandas and output_format=="pandas": # <<<<<<<<<<<<<< @@ -14816,12 +14906,12 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_dict_to_dataframe(PyObj __pyx_t_3 = __pyx_v_dates_as_pandas; goto __pyx_L20_bool_binop_done; } - __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_output_format, __pyx_mstate_global->__pyx_n_u_pandas, Py_EQ)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 1084, __pyx_L1_error) + __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_output_format, __pyx_mstate_global->__pyx_n_u_pandas, Py_EQ)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 1093, __pyx_L1_error) __pyx_t_3 = __pyx_t_1; __pyx_L20_bool_binop_done:; if (__pyx_t_3) { - /* "pyreadstat/_readstat_parser.pyx":1085 + /* "pyreadstat/_readstat_parser.pyx":1094 * * if dates_as_pandas and output_format=="pandas": * pd = natnamespace # <<<<<<<<<<<<<< @@ -14831,14 +14921,14 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_dict_to_dataframe(PyObj __Pyx_INCREF(__pyx_v_natnamespace); __pyx_v_pd = __pyx_v_natnamespace; - /* "pyreadstat/_readstat_parser.pyx":1086 + /* "pyreadstat/_readstat_parser.pyx":1095 * if dates_as_pandas and output_format=="pandas": * pd = natnamespace * dtypes = data_frame.dtypes.tolist() # <<<<<<<<<<<<<< * # check that datetime columns are datetime type * # this is needed in case all date values are nan */ - __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_data_frame, __pyx_mstate_global->__pyx_n_u_dtypes); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1086, __pyx_L1_error) + __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_data_frame, __pyx_mstate_global->__pyx_n_u_dtypes); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1095, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __pyx_t_7 = __pyx_t_11; __Pyx_INCREF(__pyx_t_7); @@ -14848,14 +14938,14 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_dict_to_dataframe(PyObj __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_tolist, __pyx_callargs+__pyx_t_14, (1-__pyx_t_14) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1086, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1095, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } - if (!(likely(PyList_CheckExact(__pyx_t_2))||((__pyx_t_2) == Py_None) || __Pyx_RaiseUnexpectedTypeError("list", __pyx_t_2))) __PYX_ERR(0, 1086, __pyx_L1_error) + if (!(likely(PyList_CheckExact(__pyx_t_2))||((__pyx_t_2) == Py_None) || __Pyx_RaiseUnexpectedTypeError("list", __pyx_t_2))) __PYX_ERR(0, 1095, __pyx_L1_error) __pyx_v_dtypes = ((PyObject*)__pyx_t_2); __pyx_t_2 = 0; - /* "pyreadstat/_readstat_parser.pyx":1089 + /* "pyreadstat/_readstat_parser.pyx":1098 * # check that datetime columns are datetime type * # this is needed in case all date values are nan * for index, column in enumerate(data_frame.columns): # <<<<<<<<<<<<<< @@ -14863,16 +14953,16 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_dict_to_dataframe(PyObj * if dtypes[index] != '__pyx_n_u_columns); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1089, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_data_frame, __pyx_mstate_global->__pyx_n_u_columns); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1098, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (likely(PyList_CheckExact(__pyx_t_2)) || PyTuple_CheckExact(__pyx_t_2)) { __pyx_t_11 = __pyx_t_2; __Pyx_INCREF(__pyx_t_11); __pyx_t_4 = 0; __pyx_t_10 = NULL; } else { - __pyx_t_4 = -1; __pyx_t_11 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1089, __pyx_L1_error) + __pyx_t_4 = -1; __pyx_t_11 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1098, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); - __pyx_t_10 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_11); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1089, __pyx_L1_error) + __pyx_t_10 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_11); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1098, __pyx_L1_error) } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; for (;;) { @@ -14881,7 +14971,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_dict_to_dataframe(PyObj { Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_11); #if !CYTHON_ASSUME_SAFE_SIZE - if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 1089, __pyx_L1_error) + if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 1098, __pyx_L1_error) #endif if (__pyx_t_4 >= __pyx_temp) break; } @@ -14891,7 +14981,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_dict_to_dataframe(PyObj { Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_11); #if !CYTHON_ASSUME_SAFE_SIZE - if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 1089, __pyx_L1_error) + if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 1098, __pyx_L1_error) #endif if (__pyx_t_4 >= __pyx_temp) break; } @@ -14902,26 +14992,26 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_dict_to_dataframe(PyObj #endif ++__pyx_t_4; } - if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1089, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1098, __pyx_L1_error) } else { __pyx_t_2 = __pyx_t_10(__pyx_t_11); if (unlikely(!__pyx_t_2)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { - if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(0, 1089, __pyx_L1_error) + if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(0, 1098, __pyx_L1_error) PyErr_Clear(); } break; } } __Pyx_GOTREF(__pyx_t_2); - if (!(likely(PyUnicode_CheckExact(__pyx_t_2))||((__pyx_t_2) == Py_None) || __Pyx_RaiseUnexpectedTypeError("str", __pyx_t_2))) __PYX_ERR(0, 1089, __pyx_L1_error) + if (!(likely(PyUnicode_CheckExact(__pyx_t_2))||((__pyx_t_2) == Py_None) || __Pyx_RaiseUnexpectedTypeError("str", __pyx_t_2))) __PYX_ERR(0, 1098, __pyx_L1_error) __Pyx_XDECREF_SET(__pyx_v_column, ((PyObject*)__pyx_t_2)); __pyx_t_2 = 0; __pyx_v_index = __pyx_t_15; __pyx_t_15 = (__pyx_t_15 + 1); - /* "pyreadstat/_readstat_parser.pyx":1090 + /* "pyreadstat/_readstat_parser.pyx":1099 * # this is needed in case all date values are nan * for index, column in enumerate(data_frame.columns): * var_format = dc.col_formats[index] # <<<<<<<<<<<<<< @@ -14930,15 +15020,15 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_dict_to_dataframe(PyObj */ if (unlikely(__pyx_v_dc->col_formats == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 1090, __pyx_L1_error) + __PYX_ERR(0, 1099, __pyx_L1_error) } - __pyx_t_2 = __Pyx_GetItemInt_List(__pyx_v_dc->col_formats, __pyx_v_index, int, 1, __Pyx_PyLong_From_int, 1, 1, 1, 1, __Pyx_ReferenceSharing_SharedReference); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1090, __pyx_L1_error) + __pyx_t_2 = __Pyx_GetItemInt_List(__pyx_v_dc->col_formats, __pyx_v_index, int, 1, __Pyx_PyLong_From_int, 1, 1, 1, 1, __Pyx_ReferenceSharing_SharedReference); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1099, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_16 = ((__pyx_t_10pyreadstat_16_readstat_parser_py_datetime_format)__Pyx_PyLong_As___pyx_t_10pyreadstat_16_readstat_parser_py_datetime_format(__pyx_t_2)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1090, __pyx_L1_error) + __pyx_t_16 = ((__pyx_t_10pyreadstat_16_readstat_parser_py_datetime_format)__Pyx_PyLong_As___pyx_t_10pyreadstat_16_readstat_parser_py_datetime_format(__pyx_t_2)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1099, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_v_var_format = __pyx_t_16; - /* "pyreadstat/_readstat_parser.pyx":1091 + /* "pyreadstat/_readstat_parser.pyx":1100 * for index, column in enumerate(data_frame.columns): * var_format = dc.col_formats[index] * if dtypes[index] != '__pyx_kp_u_M8_ns, Py_NE)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 1091, __pyx_L1_error) + __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_t_2, __pyx_mstate_global->__pyx_kp_u_M8_ns, Py_NE)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 1100, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (__pyx_t_1) { } else { @@ -14971,7 +15061,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_dict_to_dataframe(PyObj __pyx_L25_bool_binop_done:; if (__pyx_t_3) { - /* "pyreadstat/_readstat_parser.pyx":1092 + /* "pyreadstat/_readstat_parser.pyx":1101 * var_format = dc.col_formats[index] * if dtypes[index] != '__pyx_n_u_to_datetime, __pyx_callargs+__pyx_t_14, (2-__pyx_t_14) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1092, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1101, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } - __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_data_frame, __pyx_mstate_global->__pyx_n_u_loc); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1092, __pyx_L1_error) + __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_data_frame, __pyx_mstate_global->__pyx_n_u_loc); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1101, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); - __pyx_t_7 = PyTuple_New(2); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1092, __pyx_L1_error) + __pyx_t_7 = PyTuple_New(2); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1101, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_INCREF(__pyx_mstate_global->__pyx_slice[0]); __Pyx_GIVEREF(__pyx_mstate_global->__pyx_slice[0]); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_mstate_global->__pyx_slice[0]) != (0)) __PYX_ERR(0, 1092, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_mstate_global->__pyx_slice[0]) != (0)) __PYX_ERR(0, 1101, __pyx_L1_error); __Pyx_INCREF(__pyx_v_column); __Pyx_GIVEREF(__pyx_v_column); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_v_column) != (0)) __PYX_ERR(0, 1092, __pyx_L1_error); - if (unlikely((PyObject_SetItem(__pyx_t_8, __pyx_t_7, __pyx_t_2) < 0))) __PYX_ERR(0, 1092, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_v_column) != (0)) __PYX_ERR(0, 1101, __pyx_L1_error); + if (unlikely((PyObject_SetItem(__pyx_t_8, __pyx_t_7, __pyx_t_2) < 0))) __PYX_ERR(0, 1101, __pyx_L1_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - /* "pyreadstat/_readstat_parser.pyx":1091 + /* "pyreadstat/_readstat_parser.pyx":1100 * for index, column in enumerate(data_frame.columns): * var_format = dc.col_formats[index] * if dtypes[index] != '__pyx_n_u_polars, Py_EQ)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 1094, __pyx_L1_error) + __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_output_format, __pyx_mstate_global->__pyx_n_u_polars, Py_EQ)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 1103, __pyx_L1_error) if (__pyx_t_1) { } else { __pyx_t_3 = __pyx_t_1; @@ -15052,7 +15142,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_dict_to_dataframe(PyObj __pyx_L29_bool_binop_done:; if (__pyx_t_3) { - /* "pyreadstat/_readstat_parser.pyx":1096 + /* "pyreadstat/_readstat_parser.pyx":1105 * if output_format == "polars" and not dc.no_datetime_conversion: * # datetime and date vectorized conversion * pl = natnamespace # <<<<<<<<<<<<<< @@ -15062,31 +15152,31 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_dict_to_dataframe(PyObj __Pyx_INCREF(__pyx_v_natnamespace); __pyx_v_pl = __pyx_v_natnamespace; - /* "pyreadstat/_readstat_parser.pyx":1097 + /* "pyreadstat/_readstat_parser.pyx":1106 * # datetime and date vectorized conversion * pl = natnamespace * datetime_cols = list() # <<<<<<<<<<<<<< * date_cols = list() * for index, column in enumerate(data_frame.columns): */ - __pyx_t_11 = PyList_New(0); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1097, __pyx_L1_error) + __pyx_t_11 = PyList_New(0); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1106, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __pyx_v_datetime_cols = ((PyObject*)__pyx_t_11); __pyx_t_11 = 0; - /* "pyreadstat/_readstat_parser.pyx":1098 + /* "pyreadstat/_readstat_parser.pyx":1107 * pl = natnamespace * datetime_cols = list() * date_cols = list() # <<<<<<<<<<<<<< * for index, column in enumerate(data_frame.columns): * var_format = dc.col_formats[index] */ - __pyx_t_11 = PyList_New(0); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1098, __pyx_L1_error) + __pyx_t_11 = PyList_New(0); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1107, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __pyx_v_date_cols = ((PyObject*)__pyx_t_11); __pyx_t_11 = 0; - /* "pyreadstat/_readstat_parser.pyx":1099 + /* "pyreadstat/_readstat_parser.pyx":1108 * datetime_cols = list() * date_cols = list() * for index, column in enumerate(data_frame.columns): # <<<<<<<<<<<<<< @@ -15094,16 +15184,16 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_dict_to_dataframe(PyObj * if var_format == DATE_FORMAT_DATETIME: */ __pyx_t_15 = 0; - __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_data_frame, __pyx_mstate_global->__pyx_n_u_columns); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1099, __pyx_L1_error) + __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_data_frame, __pyx_mstate_global->__pyx_n_u_columns); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1108, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); if (likely(PyList_CheckExact(__pyx_t_11)) || PyTuple_CheckExact(__pyx_t_11)) { __pyx_t_2 = __pyx_t_11; __Pyx_INCREF(__pyx_t_2); __pyx_t_4 = 0; __pyx_t_10 = NULL; } else { - __pyx_t_4 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_11); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1099, __pyx_L1_error) + __pyx_t_4 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_11); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1108, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_10 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_2); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1099, __pyx_L1_error) + __pyx_t_10 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_2); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1108, __pyx_L1_error) } __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; for (;;) { @@ -15112,7 +15202,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_dict_to_dataframe(PyObj { Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_2); #if !CYTHON_ASSUME_SAFE_SIZE - if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 1099, __pyx_L1_error) + if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 1108, __pyx_L1_error) #endif if (__pyx_t_4 >= __pyx_temp) break; } @@ -15122,7 +15212,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_dict_to_dataframe(PyObj { Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_2); #if !CYTHON_ASSUME_SAFE_SIZE - if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 1099, __pyx_L1_error) + if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 1108, __pyx_L1_error) #endif if (__pyx_t_4 >= __pyx_temp) break; } @@ -15133,26 +15223,26 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_dict_to_dataframe(PyObj #endif ++__pyx_t_4; } - if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1099, __pyx_L1_error) + if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1108, __pyx_L1_error) } else { __pyx_t_11 = __pyx_t_10(__pyx_t_2); if (unlikely(!__pyx_t_11)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { - if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(0, 1099, __pyx_L1_error) + if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(0, 1108, __pyx_L1_error) PyErr_Clear(); } break; } } __Pyx_GOTREF(__pyx_t_11); - if (!(likely(PyUnicode_CheckExact(__pyx_t_11))||((__pyx_t_11) == Py_None) || __Pyx_RaiseUnexpectedTypeError("str", __pyx_t_11))) __PYX_ERR(0, 1099, __pyx_L1_error) + if (!(likely(PyUnicode_CheckExact(__pyx_t_11))||((__pyx_t_11) == Py_None) || __Pyx_RaiseUnexpectedTypeError("str", __pyx_t_11))) __PYX_ERR(0, 1108, __pyx_L1_error) __Pyx_XDECREF_SET(__pyx_v_column, ((PyObject*)__pyx_t_11)); __pyx_t_11 = 0; __pyx_v_index = __pyx_t_15; __pyx_t_15 = (__pyx_t_15 + 1); - /* "pyreadstat/_readstat_parser.pyx":1100 + /* "pyreadstat/_readstat_parser.pyx":1109 * date_cols = list() * for index, column in enumerate(data_frame.columns): * var_format = dc.col_formats[index] # <<<<<<<<<<<<<< @@ -15161,15 +15251,15 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_dict_to_dataframe(PyObj */ if (unlikely(__pyx_v_dc->col_formats == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 1100, __pyx_L1_error) + __PYX_ERR(0, 1109, __pyx_L1_error) } - __pyx_t_11 = __Pyx_GetItemInt_List(__pyx_v_dc->col_formats, __pyx_v_index, int, 1, __Pyx_PyLong_From_int, 1, 1, 1, 1, __Pyx_ReferenceSharing_SharedReference); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1100, __pyx_L1_error) + __pyx_t_11 = __Pyx_GetItemInt_List(__pyx_v_dc->col_formats, __pyx_v_index, int, 1, __Pyx_PyLong_From_int, 1, 1, 1, 1, __Pyx_ReferenceSharing_SharedReference); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1109, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); - __pyx_t_16 = ((__pyx_t_10pyreadstat_16_readstat_parser_py_datetime_format)__Pyx_PyLong_As___pyx_t_10pyreadstat_16_readstat_parser_py_datetime_format(__pyx_t_11)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1100, __pyx_L1_error) + __pyx_t_16 = ((__pyx_t_10pyreadstat_16_readstat_parser_py_datetime_format)__Pyx_PyLong_As___pyx_t_10pyreadstat_16_readstat_parser_py_datetime_format(__pyx_t_11)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1109, __pyx_L1_error) __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __pyx_v_var_format = __pyx_t_16; - /* "pyreadstat/_readstat_parser.pyx":1101 + /* "pyreadstat/_readstat_parser.pyx":1110 * for index, column in enumerate(data_frame.columns): * var_format = dc.col_formats[index] * if var_format == DATE_FORMAT_DATETIME: # <<<<<<<<<<<<<< @@ -15179,16 +15269,16 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_dict_to_dataframe(PyObj __pyx_t_3 = (__pyx_v_var_format == __pyx_e_10pyreadstat_16_readstat_parser_DATE_FORMAT_DATETIME); if (__pyx_t_3) { - /* "pyreadstat/_readstat_parser.pyx":1102 + /* "pyreadstat/_readstat_parser.pyx":1111 * var_format = dc.col_formats[index] * if var_format == DATE_FORMAT_DATETIME: * datetime_cols.append(column) # <<<<<<<<<<<<<< * if var_format == DATE_FORMAT_DATE: * date_cols.append(column) */ - __pyx_t_17 = __Pyx_PyList_Append(__pyx_v_datetime_cols, __pyx_v_column); if (unlikely(__pyx_t_17 == ((int)-1))) __PYX_ERR(0, 1102, __pyx_L1_error) + __pyx_t_17 = __Pyx_PyList_Append(__pyx_v_datetime_cols, __pyx_v_column); if (unlikely(__pyx_t_17 == ((int)-1))) __PYX_ERR(0, 1111, __pyx_L1_error) - /* "pyreadstat/_readstat_parser.pyx":1101 + /* "pyreadstat/_readstat_parser.pyx":1110 * for index, column in enumerate(data_frame.columns): * var_format = dc.col_formats[index] * if var_format == DATE_FORMAT_DATETIME: # <<<<<<<<<<<<<< @@ -15197,7 +15287,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_dict_to_dataframe(PyObj */ } - /* "pyreadstat/_readstat_parser.pyx":1103 + /* "pyreadstat/_readstat_parser.pyx":1112 * if var_format == DATE_FORMAT_DATETIME: * datetime_cols.append(column) * if var_format == DATE_FORMAT_DATE: # <<<<<<<<<<<<<< @@ -15207,16 +15297,16 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_dict_to_dataframe(PyObj __pyx_t_3 = (__pyx_v_var_format == __pyx_e_10pyreadstat_16_readstat_parser_DATE_FORMAT_DATE); if (__pyx_t_3) { - /* "pyreadstat/_readstat_parser.pyx":1104 + /* "pyreadstat/_readstat_parser.pyx":1113 * datetime_cols.append(column) * if var_format == DATE_FORMAT_DATE: * date_cols.append(column) # <<<<<<<<<<<<<< * if datetime_cols: * data_frame = data_frame.with_columns( */ - __pyx_t_17 = __Pyx_PyList_Append(__pyx_v_date_cols, __pyx_v_column); if (unlikely(__pyx_t_17 == ((int)-1))) __PYX_ERR(0, 1104, __pyx_L1_error) + __pyx_t_17 = __Pyx_PyList_Append(__pyx_v_date_cols, __pyx_v_column); if (unlikely(__pyx_t_17 == ((int)-1))) __PYX_ERR(0, 1113, __pyx_L1_error) - /* "pyreadstat/_readstat_parser.pyx":1103 + /* "pyreadstat/_readstat_parser.pyx":1112 * if var_format == DATE_FORMAT_DATETIME: * datetime_cols.append(column) * if var_format == DATE_FORMAT_DATE: # <<<<<<<<<<<<<< @@ -15225,7 +15315,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_dict_to_dataframe(PyObj */ } - /* "pyreadstat/_readstat_parser.pyx":1099 + /* "pyreadstat/_readstat_parser.pyx":1108 * datetime_cols = list() * date_cols = list() * for index, column in enumerate(data_frame.columns): # <<<<<<<<<<<<<< @@ -15235,7 +15325,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_dict_to_dataframe(PyObj } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - /* "pyreadstat/_readstat_parser.pyx":1105 + /* "pyreadstat/_readstat_parser.pyx":1114 * if var_format == DATE_FORMAT_DATE: * date_cols.append(column) * if datetime_cols: # <<<<<<<<<<<<<< @@ -15244,13 +15334,13 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_dict_to_dataframe(PyObj */ { Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_v_datetime_cols); - if (unlikely(((!CYTHON_ASSUME_SAFE_SIZE) && __pyx_temp < 0))) __PYX_ERR(0, 1105, __pyx_L1_error) + if (unlikely(((!CYTHON_ASSUME_SAFE_SIZE) && __pyx_temp < 0))) __PYX_ERR(0, 1114, __pyx_L1_error) __pyx_t_3 = (__pyx_temp != 0); } if (__pyx_t_3) { - /* "pyreadstat/_readstat_parser.pyx":1106 + /* "pyreadstat/_readstat_parser.pyx":1115 * date_cols.append(column) * if datetime_cols: * data_frame = data_frame.with_columns( # <<<<<<<<<<<<<< @@ -15260,17 +15350,17 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_dict_to_dataframe(PyObj __pyx_t_11 = __pyx_v_data_frame; __Pyx_INCREF(__pyx_t_11); - /* "pyreadstat/_readstat_parser.pyx":1107 + /* "pyreadstat/_readstat_parser.pyx":1116 * if datetime_cols: * data_frame = data_frame.with_columns( * [ # <<<<<<<<<<<<<< * pl.from_epoch( * (pl.col(c) % 1 * 1e6).round().cast(pl.Int64) + ( */ - __pyx_t_7 = PyList_New(0); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1107, __pyx_L1_error) + __pyx_t_7 = PyList_New(0); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1116, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); - /* "pyreadstat/_readstat_parser.pyx":1113 + /* "pyreadstat/_readstat_parser.pyx":1122 * pl.lit(dc.unix_to_origin_secs) * 1e6).cast(pl.Int64), * time_unit='us') * for c in datetime_cols if data_frame[c].len() > 0 # <<<<<<<<<<<<<< @@ -15283,17 +15373,17 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_dict_to_dataframe(PyObj { Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_8); #if !CYTHON_ASSUME_SAFE_SIZE - if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 1113, __pyx_L1_error) + if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 1122, __pyx_L1_error) #endif if (__pyx_t_4 >= __pyx_temp) break; } __pyx_t_13 = __Pyx_PyList_GetItemRefFast(__pyx_t_8, __pyx_t_4, __Pyx_ReferenceSharing_OwnStrongReference); ++__pyx_t_4; - if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1113, __pyx_L1_error) + if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1122, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_XDECREF_SET(__pyx_v_c, __pyx_t_13); __pyx_t_13 = 0; - __pyx_t_18 = __Pyx_PyObject_GetItem(__pyx_v_data_frame, __pyx_v_c); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 1113, __pyx_L1_error) + __pyx_t_18 = __Pyx_PyObject_GetItem(__pyx_v_data_frame, __pyx_v_c); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 1122, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_18); __pyx_t_12 = __pyx_t_18; __Pyx_INCREF(__pyx_t_12); @@ -15303,16 +15393,16 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_dict_to_dataframe(PyObj __pyx_t_13 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_len, __pyx_callargs+__pyx_t_14, (1-__pyx_t_14) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; - if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1113, __pyx_L1_error) + if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1122, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); } - __pyx_t_18 = PyObject_RichCompare(__pyx_t_13, __pyx_mstate_global->__pyx_int_0, Py_GT); __Pyx_XGOTREF(__pyx_t_18); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 1113, __pyx_L1_error) + __pyx_t_18 = PyObject_RichCompare(__pyx_t_13, __pyx_mstate_global->__pyx_int_0, Py_GT); __Pyx_XGOTREF(__pyx_t_18); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 1122, __pyx_L1_error) __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; - __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_18); if (unlikely((__pyx_t_3 < 0))) __PYX_ERR(0, 1113, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_18); if (unlikely((__pyx_t_3 < 0))) __PYX_ERR(0, 1122, __pyx_L1_error) __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; if (__pyx_t_3) { - /* "pyreadstat/_readstat_parser.pyx":1108 + /* "pyreadstat/_readstat_parser.pyx":1117 * data_frame = data_frame.with_columns( * [ * pl.from_epoch( # <<<<<<<<<<<<<< @@ -15322,7 +15412,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_dict_to_dataframe(PyObj __pyx_t_13 = __pyx_v_pl; __Pyx_INCREF(__pyx_t_13); - /* "pyreadstat/_readstat_parser.pyx":1109 + /* "pyreadstat/_readstat_parser.pyx":1118 * [ * pl.from_epoch( * (pl.col(c) % 1 * 1e6).round().cast(pl.Int64) + ( # <<<<<<<<<<<<<< @@ -15336,13 +15426,13 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_dict_to_dataframe(PyObj PyObject *__pyx_callargs[2] = {__pyx_t_23, __pyx_v_c}; __pyx_t_22 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_col, __pyx_callargs+__pyx_t_14, (2-__pyx_t_14) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_23); __pyx_t_23 = 0; - if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 1109, __pyx_L1_error) + if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 1118, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_22); } - __pyx_t_23 = __Pyx_PyLong_RemainderObjC(__pyx_t_22, __pyx_mstate_global->__pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 1109, __pyx_L1_error) + __pyx_t_23 = __Pyx_PyLong_RemainderObjC(__pyx_t_22, __pyx_mstate_global->__pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 1118, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_23); __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0; - __pyx_t_22 = PyNumber_Multiply(__pyx_t_23, __pyx_mstate_global->__pyx_float_1e6); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 1109, __pyx_L1_error) + __pyx_t_22 = PyNumber_Multiply(__pyx_t_23, __pyx_mstate_global->__pyx_float_1e6); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 1118, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_22); __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0; __pyx_t_21 = __pyx_t_22; @@ -15353,12 +15443,12 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_dict_to_dataframe(PyObj __pyx_t_20 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_round, __pyx_callargs+__pyx_t_14, (1-__pyx_t_14) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_21); __pyx_t_21 = 0; __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0; - if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 1109, __pyx_L1_error) + if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 1118, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_20); } __pyx_t_19 = __pyx_t_20; __Pyx_INCREF(__pyx_t_19); - __pyx_t_22 = __Pyx_PyObject_GetAttrStr(__pyx_v_pl, __pyx_mstate_global->__pyx_n_u_Int64); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 1109, __pyx_L1_error) + __pyx_t_22 = __Pyx_PyObject_GetAttrStr(__pyx_v_pl, __pyx_mstate_global->__pyx_n_u_Int64); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 1118, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_22); __pyx_t_14 = 0; { @@ -15367,11 +15457,11 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_dict_to_dataframe(PyObj __Pyx_XDECREF(__pyx_t_19); __pyx_t_19 = 0; __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0; __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0; - if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1109, __pyx_L1_error) + if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1118, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); } - /* "pyreadstat/_readstat_parser.pyx":1110 + /* "pyreadstat/_readstat_parser.pyx":1119 * pl.from_epoch( * (pl.col(c) % 1 * 1e6).round().cast(pl.Int64) + ( * pl.col(c).floor() * 1e6).cast(pl.Int64) - ( # <<<<<<<<<<<<<< @@ -15385,7 +15475,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_dict_to_dataframe(PyObj PyObject *__pyx_callargs[2] = {__pyx_t_24, __pyx_v_c}; __pyx_t_23 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_col, __pyx_callargs+__pyx_t_14, (2-__pyx_t_14) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_24); __pyx_t_24 = 0; - if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 1110, __pyx_L1_error) + if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 1119, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_23); } __pyx_t_21 = __pyx_t_23; @@ -15396,15 +15486,15 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_dict_to_dataframe(PyObj __pyx_t_19 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_floor, __pyx_callargs+__pyx_t_14, (1-__pyx_t_14) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_21); __pyx_t_21 = 0; __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0; - if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 1110, __pyx_L1_error) + if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 1119, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_19); } - __pyx_t_23 = PyNumber_Multiply(__pyx_t_19, __pyx_mstate_global->__pyx_float_1e6); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 1110, __pyx_L1_error) + __pyx_t_23 = PyNumber_Multiply(__pyx_t_19, __pyx_mstate_global->__pyx_float_1e6); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 1119, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_23); __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; __pyx_t_22 = __pyx_t_23; __Pyx_INCREF(__pyx_t_22); - __pyx_t_19 = __Pyx_PyObject_GetAttrStr(__pyx_v_pl, __pyx_mstate_global->__pyx_n_u_Int64); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 1110, __pyx_L1_error) + __pyx_t_19 = __Pyx_PyObject_GetAttrStr(__pyx_v_pl, __pyx_mstate_global->__pyx_n_u_Int64); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 1119, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_19); __pyx_t_14 = 0; { @@ -15413,23 +15503,23 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_dict_to_dataframe(PyObj __Pyx_XDECREF(__pyx_t_22); __pyx_t_22 = 0; __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0; - if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 1110, __pyx_L1_error) + if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 1119, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_20); } - /* "pyreadstat/_readstat_parser.pyx":1109 + /* "pyreadstat/_readstat_parser.pyx":1118 * [ * pl.from_epoch( * (pl.col(c) % 1 * 1e6).round().cast(pl.Int64) + ( # <<<<<<<<<<<<<< * pl.col(c).floor() * 1e6).cast(pl.Int64) - ( * pl.lit(dc.unix_to_origin_secs) * 1e6).cast(pl.Int64), */ - __pyx_t_23 = PyNumber_Add(__pyx_t_12, __pyx_t_20); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 1109, __pyx_L1_error) + __pyx_t_23 = PyNumber_Add(__pyx_t_12, __pyx_t_20); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 1118, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_23); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0; - /* "pyreadstat/_readstat_parser.pyx":1111 + /* "pyreadstat/_readstat_parser.pyx":1120 * (pl.col(c) % 1 * 1e6).round().cast(pl.Int64) + ( * pl.col(c).floor() * 1e6).cast(pl.Int64) - ( * pl.lit(dc.unix_to_origin_secs) * 1e6).cast(pl.Int64), # <<<<<<<<<<<<<< @@ -15438,7 +15528,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_dict_to_dataframe(PyObj */ __pyx_t_22 = __pyx_v_pl; __Pyx_INCREF(__pyx_t_22); - __pyx_t_21 = PyFloat_FromDouble(__pyx_v_dc->unix_to_origin_secs); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 1111, __pyx_L1_error) + __pyx_t_21 = PyFloat_FromDouble(__pyx_v_dc->unix_to_origin_secs); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 1120, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_21); __pyx_t_14 = 0; { @@ -15446,15 +15536,15 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_dict_to_dataframe(PyObj __pyx_t_19 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_lit, __pyx_callargs+__pyx_t_14, (2-__pyx_t_14) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_22); __pyx_t_22 = 0; __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; - if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 1111, __pyx_L1_error) + if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 1120, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_19); } - __pyx_t_21 = PyNumber_Multiply(__pyx_t_19, __pyx_mstate_global->__pyx_float_1e6); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 1111, __pyx_L1_error) + __pyx_t_21 = PyNumber_Multiply(__pyx_t_19, __pyx_mstate_global->__pyx_float_1e6); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 1120, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_21); __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; __pyx_t_12 = __pyx_t_21; __Pyx_INCREF(__pyx_t_12); - __pyx_t_19 = __Pyx_PyObject_GetAttrStr(__pyx_v_pl, __pyx_mstate_global->__pyx_n_u_Int64); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 1111, __pyx_L1_error) + __pyx_t_19 = __Pyx_PyObject_GetAttrStr(__pyx_v_pl, __pyx_mstate_global->__pyx_n_u_Int64); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 1120, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_19); __pyx_t_14 = 0; { @@ -15463,38 +15553,38 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_dict_to_dataframe(PyObj __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; - if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 1111, __pyx_L1_error) + if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 1120, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_20); } - /* "pyreadstat/_readstat_parser.pyx":1110 + /* "pyreadstat/_readstat_parser.pyx":1119 * pl.from_epoch( * (pl.col(c) % 1 * 1e6).round().cast(pl.Int64) + ( * pl.col(c).floor() * 1e6).cast(pl.Int64) - ( # <<<<<<<<<<<<<< * pl.lit(dc.unix_to_origin_secs) * 1e6).cast(pl.Int64), * time_unit='us') */ - __pyx_t_21 = PyNumber_Subtract(__pyx_t_23, __pyx_t_20); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 1110, __pyx_L1_error) + __pyx_t_21 = PyNumber_Subtract(__pyx_t_23, __pyx_t_20); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 1119, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_21); __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0; __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0; __pyx_t_14 = 0; { PyObject *__pyx_callargs[2 + ((CYTHON_VECTORCALL) ? 1 : 0)] = {__pyx_t_13, __pyx_t_21}; - __pyx_t_20 = __Pyx_MakeVectorcallBuilderKwds(1); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 1108, __pyx_L1_error) + __pyx_t_20 = __Pyx_MakeVectorcallBuilderKwds(1); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 1117, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_20); - if (__Pyx_VectorcallBuilder_AddArg(__pyx_mstate_global->__pyx_n_u_time_unit, __pyx_mstate_global->__pyx_n_u_us, __pyx_t_20, __pyx_callargs+2, 0) < (0)) __PYX_ERR(0, 1108, __pyx_L1_error) + if (__Pyx_VectorcallBuilder_AddArg(__pyx_mstate_global->__pyx_n_u_time_unit, __pyx_mstate_global->__pyx_n_u_us, __pyx_t_20, __pyx_callargs+2, 0) < (0)) __PYX_ERR(0, 1117, __pyx_L1_error) __pyx_t_18 = __Pyx_Object_VectorcallMethod_CallFromBuilder((PyObject*)__pyx_mstate_global->__pyx_n_u_from_epoch, __pyx_callargs+__pyx_t_14, (2-__pyx_t_14) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET), __pyx_t_20); __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0; __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0; - if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 1108, __pyx_L1_error) + if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 1117, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_18); } - if (unlikely(__Pyx_ListComp_Append(__pyx_t_7, (PyObject*)__pyx_t_18))) __PYX_ERR(0, 1107, __pyx_L1_error) + if (unlikely(__Pyx_ListComp_Append(__pyx_t_7, (PyObject*)__pyx_t_18))) __PYX_ERR(0, 1116, __pyx_L1_error) __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; - /* "pyreadstat/_readstat_parser.pyx":1113 + /* "pyreadstat/_readstat_parser.pyx":1122 * pl.lit(dc.unix_to_origin_secs) * 1e6).cast(pl.Int64), * time_unit='us') * for c in datetime_cols if data_frame[c].len() > 0 # <<<<<<<<<<<<<< @@ -15510,13 +15600,13 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_dict_to_dataframe(PyObj __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_with_columns, __pyx_callargs+__pyx_t_14, (2-__pyx_t_14) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1106, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1115, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } __Pyx_DECREF_SET(__pyx_v_data_frame, __pyx_t_2); __pyx_t_2 = 0; - /* "pyreadstat/_readstat_parser.pyx":1105 + /* "pyreadstat/_readstat_parser.pyx":1114 * if var_format == DATE_FORMAT_DATE: * date_cols.append(column) * if datetime_cols: # <<<<<<<<<<<<<< @@ -15525,7 +15615,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_dict_to_dataframe(PyObj */ } - /* "pyreadstat/_readstat_parser.pyx":1116 + /* "pyreadstat/_readstat_parser.pyx":1125 * ] * ) * if date_cols: # <<<<<<<<<<<<<< @@ -15534,13 +15624,13 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_dict_to_dataframe(PyObj */ { Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_v_date_cols); - if (unlikely(((!CYTHON_ASSUME_SAFE_SIZE) && __pyx_temp < 0))) __PYX_ERR(0, 1116, __pyx_L1_error) + if (unlikely(((!CYTHON_ASSUME_SAFE_SIZE) && __pyx_temp < 0))) __PYX_ERR(0, 1125, __pyx_L1_error) __pyx_t_3 = (__pyx_temp != 0); } if (__pyx_t_3) { - /* "pyreadstat/_readstat_parser.pyx":1117 + /* "pyreadstat/_readstat_parser.pyx":1126 * ) * if date_cols: * data_frame = data_frame.with_columns(pl.from_epoch(pl.col(*date_cols), time_unit='d')) # <<<<<<<<<<<<<< @@ -15551,25 +15641,25 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_dict_to_dataframe(PyObj __Pyx_INCREF(__pyx_t_7); __pyx_t_8 = __pyx_v_pl; __Pyx_INCREF(__pyx_t_8); - __pyx_t_18 = __Pyx_PyObject_GetAttrStr(__pyx_v_pl, __pyx_mstate_global->__pyx_n_u_col); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 1117, __pyx_L1_error) + __pyx_t_18 = __Pyx_PyObject_GetAttrStr(__pyx_v_pl, __pyx_mstate_global->__pyx_n_u_col); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 1126, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_18); - __pyx_t_20 = PySequence_Tuple(__pyx_v_date_cols); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 1117, __pyx_L1_error) + __pyx_t_20 = PySequence_Tuple(__pyx_v_date_cols); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 1126, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_20); - __pyx_t_21 = __Pyx_PyObject_Call(__pyx_t_18, __pyx_t_20, NULL); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 1117, __pyx_L1_error) + __pyx_t_21 = __Pyx_PyObject_Call(__pyx_t_18, __pyx_t_20, NULL); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 1126, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_21); __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0; __pyx_t_14 = 0; { PyObject *__pyx_callargs[2 + ((CYTHON_VECTORCALL) ? 1 : 0)] = {__pyx_t_8, __pyx_t_21}; - __pyx_t_20 = __Pyx_MakeVectorcallBuilderKwds(1); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 1117, __pyx_L1_error) + __pyx_t_20 = __Pyx_MakeVectorcallBuilderKwds(1); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 1126, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_20); - if (__Pyx_VectorcallBuilder_AddArg(__pyx_mstate_global->__pyx_n_u_time_unit, __pyx_mstate_global->__pyx_n_u_d, __pyx_t_20, __pyx_callargs+2, 0) < (0)) __PYX_ERR(0, 1117, __pyx_L1_error) + if (__Pyx_VectorcallBuilder_AddArg(__pyx_mstate_global->__pyx_n_u_time_unit, __pyx_mstate_global->__pyx_n_u_d, __pyx_t_20, __pyx_callargs+2, 0) < (0)) __PYX_ERR(0, 1126, __pyx_L1_error) __pyx_t_11 = __Pyx_Object_VectorcallMethod_CallFromBuilder((PyObject*)__pyx_mstate_global->__pyx_n_u_from_epoch, __pyx_callargs+__pyx_t_14, (2-__pyx_t_14) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET), __pyx_t_20); __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0; - if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1117, __pyx_L1_error) + if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1126, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); } __pyx_t_14 = 0; @@ -15578,13 +15668,13 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_dict_to_dataframe(PyObj __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_with_columns, __pyx_callargs+__pyx_t_14, (2-__pyx_t_14) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1117, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1126, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } __Pyx_DECREF_SET(__pyx_v_data_frame, __pyx_t_2); __pyx_t_2 = 0; - /* "pyreadstat/_readstat_parser.pyx":1116 + /* "pyreadstat/_readstat_parser.pyx":1125 * ] * ) * if date_cols: # <<<<<<<<<<<<<< @@ -15593,7 +15683,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_dict_to_dataframe(PyObj */ } - /* "pyreadstat/_readstat_parser.pyx":1094 + /* "pyreadstat/_readstat_parser.pyx":1103 * data_frame.loc[:, column] = pd.to_datetime(data_frame[column]) * * if output_format == "polars" and not dc.no_datetime_conversion: # <<<<<<<<<<<<<< @@ -15602,7 +15692,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_dict_to_dataframe(PyObj */ } - /* "pyreadstat/_readstat_parser.pyx":1056 + /* "pyreadstat/_readstat_parser.pyx":1065 * output_format = dc.output_format * * if dict_data: # <<<<<<<<<<<<<< @@ -15612,7 +15702,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_dict_to_dataframe(PyObj goto __pyx_L3; } - /* "pyreadstat/_readstat_parser.pyx":1120 + /* "pyreadstat/_readstat_parser.pyx":1129 * * else: * data_frame = nw.from_dict(dict_data, backend=output_format).to_native() # <<<<<<<<<<<<<< @@ -15621,9 +15711,9 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_dict_to_dataframe(PyObj */ /*else*/ { __pyx_t_20 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_21, __pyx_mstate_global->__pyx_n_u_nw); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 1120, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_21, __pyx_mstate_global->__pyx_n_u_nw); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 1129, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_21); - __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_21, __pyx_mstate_global->__pyx_n_u_from_dict); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1120, __pyx_L1_error) + __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_21, __pyx_mstate_global->__pyx_n_u_from_dict); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1129, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; __pyx_t_14 = 1; @@ -15640,14 +15730,14 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_dict_to_dataframe(PyObj #endif { PyObject *__pyx_callargs[2 + ((CYTHON_VECTORCALL) ? 1 : 0)] = {__pyx_t_20, __pyx_v_dict_data}; - __pyx_t_21 = __Pyx_MakeVectorcallBuilderKwds(1); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 1120, __pyx_L1_error) + __pyx_t_21 = __Pyx_MakeVectorcallBuilderKwds(1); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 1129, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_21); - if (__Pyx_VectorcallBuilder_AddArg(__pyx_mstate_global->__pyx_n_u_backend, __pyx_v_output_format, __pyx_t_21, __pyx_callargs+2, 0) < (0)) __PYX_ERR(0, 1120, __pyx_L1_error) + if (__Pyx_VectorcallBuilder_AddArg(__pyx_mstate_global->__pyx_n_u_backend, __pyx_v_output_format, __pyx_t_21, __pyx_callargs+2, 0) < (0)) __PYX_ERR(0, 1129, __pyx_L1_error) __pyx_t_7 = __Pyx_Object_Vectorcall_CallFromBuilder((PyObject*)__pyx_t_8, __pyx_callargs+__pyx_t_14, (2-__pyx_t_14) | (__pyx_t_14*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET), __pyx_t_21); __Pyx_XDECREF(__pyx_t_20); __pyx_t_20 = 0; __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1120, __pyx_L1_error) + if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1129, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); } __pyx_t_11 = __pyx_t_7; @@ -15658,7 +15748,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_dict_to_dataframe(PyObj __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_to_native, __pyx_callargs+__pyx_t_14, (1-__pyx_t_14) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1120, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1129, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } __pyx_v_data_frame = __pyx_t_2; @@ -15666,7 +15756,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_dict_to_dataframe(PyObj } __pyx_L3:; - /* "pyreadstat/_readstat_parser.pyx":1122 + /* "pyreadstat/_readstat_parser.pyx":1131 * data_frame = nw.from_dict(dict_data, backend=output_format).to_native() * * return data_frame # <<<<<<<<<<<<<< @@ -15678,7 +15768,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_dict_to_dataframe(PyObj __pyx_r = __pyx_v_data_frame; goto __pyx_L0; - /* "pyreadstat/_readstat_parser.pyx":1041 + /* "pyreadstat/_readstat_parser.pyx":1050 * return final_container * * cdef object dict_to_dataframe(object dict_data, data_container dc): # <<<<<<<<<<<<<< @@ -15723,7 +15813,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_dict_to_dataframe(PyObj return __pyx_r; } -/* "pyreadstat/_readstat_parser.pyx":1124 +/* "pyreadstat/_readstat_parser.pyx":1133 * return data_frame * * cdef object data_container_extract_metadata(data_container data): # <<<<<<<<<<<<<< @@ -15738,15 +15828,17 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_data_container_extract_ PyObject *__pyx_v_labels_raw = 0; PyObject *__pyx_v_var_name = 0; PyObject *__pyx_v_var_label = 0; + PyObject *__pyx_v_cur_type = 0; + PyObject *__pyx_v_cur_informat = 0; PyObject *__pyx_v_current_labels = 0; PyObject *__pyx_v_original_types = 0; + PyObject *__pyx_v_original_informats = 0; readstat_type_t __pyx_v_var_type; PyObject *__pyx_v_metadata = 0; PyObject *__pyx_v_variable_value_labels = NULL; PyObject *__pyx_v_readstat_types = NULL; PyObject *__pyx_v_indx = NULL; PyObject *__pyx_v_cur_col = NULL; - PyObject *__pyx_v_cur_type = NULL; PyObject *__pyx_v_curset = NULL; PyObject *__pyx_7genexpr__pyx_v_k = NULL; PyObject *__pyx_7genexpr__pyx_v_v = NULL; @@ -15769,7 +15861,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_data_container_extract_ int __pyx_clineno = 0; __Pyx_RefNannySetupContext("data_container_extract_metadata", 0); - /* "pyreadstat/_readstat_parser.pyx":1141 + /* "pyreadstat/_readstat_parser.pyx":1150 * cdef readstat_type_t var_type * * metaonly = data.metaonly # <<<<<<<<<<<<<< @@ -15779,7 +15871,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_data_container_extract_ __pyx_t_1 = __pyx_v_data->metaonly; __pyx_v_metaonly = __pyx_t_1; - /* "pyreadstat/_readstat_parser.pyx":1142 + /* "pyreadstat/_readstat_parser.pyx":1151 * * metaonly = data.metaonly * is_unkown_number_rows = data.is_unkown_number_rows # <<<<<<<<<<<<<< @@ -15789,7 +15881,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_data_container_extract_ __pyx_t_1 = __pyx_v_data->is_unkown_number_rows; __pyx_v_is_unkown_number_rows = __pyx_t_1; - /* "pyreadstat/_readstat_parser.pyx":1144 + /* "pyreadstat/_readstat_parser.pyx":1153 * is_unkown_number_rows = data.is_unkown_number_rows * * cdef object metadata = metadata_container() # <<<<<<<<<<<<<< @@ -15797,7 +15889,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_data_container_extract_ * # mr sets */ __pyx_t_3 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_metadata_container); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1144, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_metadata_container); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1153, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = 1; #if CYTHON_UNPACK_METHODS @@ -15816,13 +15908,13 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_data_container_extract_ __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_5, (1-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1144, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1153, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } __pyx_v_metadata = __pyx_t_2; __pyx_t_2 = 0; - /* "pyreadstat/_readstat_parser.pyx":1147 + /* "pyreadstat/_readstat_parser.pyx":1156 * * # mr sets * metadata.mr_sets = data.mr_sets # <<<<<<<<<<<<<< @@ -15831,22 +15923,22 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_data_container_extract_ */ __pyx_t_2 = __pyx_v_data->mr_sets; __Pyx_INCREF(__pyx_t_2); - if (__Pyx_PyObject_SetAttrStr(__pyx_v_metadata, __pyx_mstate_global->__pyx_n_u_mr_sets, __pyx_t_2) < (0)) __PYX_ERR(0, 1147, __pyx_L1_error) + if (__Pyx_PyObject_SetAttrStr(__pyx_v_metadata, __pyx_mstate_global->__pyx_n_u_mr_sets, __pyx_t_2) < (0)) __PYX_ERR(0, 1156, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - /* "pyreadstat/_readstat_parser.pyx":1150 + /* "pyreadstat/_readstat_parser.pyx":1159 * * # number of rows * metadata.number_columns = data.n_vars # <<<<<<<<<<<<<< * if is_unkown_number_rows: * if not metaonly: */ - __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_data->n_vars); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1150, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_data->n_vars); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1159, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - if (__Pyx_PyObject_SetAttrStr(__pyx_v_metadata, __pyx_mstate_global->__pyx_n_u_number_columns, __pyx_t_2) < (0)) __PYX_ERR(0, 1150, __pyx_L1_error) + if (__Pyx_PyObject_SetAttrStr(__pyx_v_metadata, __pyx_mstate_global->__pyx_n_u_number_columns, __pyx_t_2) < (0)) __PYX_ERR(0, 1159, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - /* "pyreadstat/_readstat_parser.pyx":1151 + /* "pyreadstat/_readstat_parser.pyx":1160 * # number of rows * metadata.number_columns = data.n_vars * if is_unkown_number_rows: # <<<<<<<<<<<<<< @@ -15855,7 +15947,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_data_container_extract_ */ if (__pyx_v_is_unkown_number_rows) { - /* "pyreadstat/_readstat_parser.pyx":1152 + /* "pyreadstat/_readstat_parser.pyx":1161 * metadata.number_columns = data.n_vars * if is_unkown_number_rows: * if not metaonly: # <<<<<<<<<<<<<< @@ -15865,19 +15957,19 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_data_container_extract_ __pyx_t_1 = (!__pyx_v_metaonly); if (__pyx_t_1) { - /* "pyreadstat/_readstat_parser.pyx":1153 + /* "pyreadstat/_readstat_parser.pyx":1162 * if is_unkown_number_rows: * if not metaonly: * metadata.number_rows = data.max_n_obs # <<<<<<<<<<<<<< * else: * metadata.number_rows = data.n_obs */ - __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_data->max_n_obs); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1153, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_data->max_n_obs); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1162, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - if (__Pyx_PyObject_SetAttrStr(__pyx_v_metadata, __pyx_mstate_global->__pyx_n_u_number_rows, __pyx_t_2) < (0)) __PYX_ERR(0, 1153, __pyx_L1_error) + if (__Pyx_PyObject_SetAttrStr(__pyx_v_metadata, __pyx_mstate_global->__pyx_n_u_number_rows, __pyx_t_2) < (0)) __PYX_ERR(0, 1162, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - /* "pyreadstat/_readstat_parser.pyx":1152 + /* "pyreadstat/_readstat_parser.pyx":1161 * metadata.number_columns = data.n_vars * if is_unkown_number_rows: * if not metaonly: # <<<<<<<<<<<<<< @@ -15886,7 +15978,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_data_container_extract_ */ } - /* "pyreadstat/_readstat_parser.pyx":1151 + /* "pyreadstat/_readstat_parser.pyx":1160 * # number of rows * metadata.number_columns = data.n_vars * if is_unkown_number_rows: # <<<<<<<<<<<<<< @@ -15896,7 +15988,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_data_container_extract_ goto __pyx_L3; } - /* "pyreadstat/_readstat_parser.pyx":1155 + /* "pyreadstat/_readstat_parser.pyx":1164 * metadata.number_rows = data.max_n_obs * else: * metadata.number_rows = data.n_obs # <<<<<<<<<<<<<< @@ -15904,14 +15996,14 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_data_container_extract_ * # value labels */ /*else*/ { - __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_data->n_obs); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1155, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_data->n_obs); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1164, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - if (__Pyx_PyObject_SetAttrStr(__pyx_v_metadata, __pyx_mstate_global->__pyx_n_u_number_rows, __pyx_t_2) < (0)) __PYX_ERR(0, 1155, __pyx_L1_error) + if (__Pyx_PyObject_SetAttrStr(__pyx_v_metadata, __pyx_mstate_global->__pyx_n_u_number_rows, __pyx_t_2) < (0)) __PYX_ERR(0, 1164, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } __pyx_L3:; - /* "pyreadstat/_readstat_parser.pyx":1158 + /* "pyreadstat/_readstat_parser.pyx":1167 * * # value labels * labels_raw = data.labels_raw # <<<<<<<<<<<<<< @@ -15923,7 +16015,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_data_container_extract_ __pyx_v_labels_raw = __pyx_t_2; __pyx_t_2 = 0; - /* "pyreadstat/_readstat_parser.pyx":1159 + /* "pyreadstat/_readstat_parser.pyx":1168 * # value labels * labels_raw = data.labels_raw * label_to_var_name = data.label_to_var_name # <<<<<<<<<<<<<< @@ -15935,29 +16027,29 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_data_container_extract_ __pyx_v_label_to_var_name = __pyx_t_2; __pyx_t_2 = 0; - /* "pyreadstat/_readstat_parser.pyx":1160 + /* "pyreadstat/_readstat_parser.pyx":1169 * labels_raw = data.labels_raw * label_to_var_name = data.label_to_var_name * variable_value_labels = dict() # <<<<<<<<<<<<<< * * if labels_raw: */ - __pyx_t_2 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1160, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1169, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_v_variable_value_labels = ((PyObject*)__pyx_t_2); __pyx_t_2 = 0; - /* "pyreadstat/_readstat_parser.pyx":1162 + /* "pyreadstat/_readstat_parser.pyx":1171 * variable_value_labels = dict() * * if labels_raw: # <<<<<<<<<<<<<< * for var_name, var_label in label_to_var_name.items(): * current_labels = labels_raw.get(var_label) */ - __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_labels_raw); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 1162, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_labels_raw); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 1171, __pyx_L1_error) if (__pyx_t_1) { - /* "pyreadstat/_readstat_parser.pyx":1163 + /* "pyreadstat/_readstat_parser.pyx":1172 * * if labels_raw: * for var_name, var_label in label_to_var_name.items(): # <<<<<<<<<<<<<< @@ -15971,7 +16063,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_data_container_extract_ PyObject *__pyx_callargs[2] = {__pyx_t_4, NULL}; __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_items, __pyx_callargs+__pyx_t_5, (1-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1163, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1172, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } if (likely(PyList_CheckExact(__pyx_t_2)) || PyTuple_CheckExact(__pyx_t_2)) { @@ -15979,9 +16071,9 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_data_container_extract_ __pyx_t_6 = 0; __pyx_t_7 = NULL; } else { - __pyx_t_6 = -1; __pyx_t_4 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1163, __pyx_L1_error) + __pyx_t_6 = -1; __pyx_t_4 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1172, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_7 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_4); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1163, __pyx_L1_error) + __pyx_t_7 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_4); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1172, __pyx_L1_error) } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; for (;;) { @@ -15990,7 +16082,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_data_container_extract_ { Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_4); #if !CYTHON_ASSUME_SAFE_SIZE - if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 1163, __pyx_L1_error) + if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 1172, __pyx_L1_error) #endif if (__pyx_t_6 >= __pyx_temp) break; } @@ -16000,7 +16092,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_data_container_extract_ { Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_4); #if !CYTHON_ASSUME_SAFE_SIZE - if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 1163, __pyx_L1_error) + if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 1172, __pyx_L1_error) #endif if (__pyx_t_6 >= __pyx_temp) break; } @@ -16011,13 +16103,13 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_data_container_extract_ #endif ++__pyx_t_6; } - if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1163, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1172, __pyx_L1_error) } else { __pyx_t_2 = __pyx_t_7(__pyx_t_4); if (unlikely(!__pyx_t_2)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { - if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(0, 1163, __pyx_L1_error) + if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(0, 1172, __pyx_L1_error) PyErr_Clear(); } break; @@ -16030,7 +16122,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_data_container_extract_ if (unlikely(size != 2)) { if (size > 2) __Pyx_RaiseTooManyValuesError(2); else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); - __PYX_ERR(0, 1163, __pyx_L1_error) + __PYX_ERR(0, 1172, __pyx_L1_error) } #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS if (likely(PyTuple_CheckExact(sequence))) { @@ -16040,22 +16132,22 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_data_container_extract_ __Pyx_INCREF(__pyx_t_8); } else { __pyx_t_3 = __Pyx_PyList_GetItemRefFast(sequence, 0, __Pyx_ReferenceSharing_SharedReference); - if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1163, __pyx_L1_error) + if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1172, __pyx_L1_error) __Pyx_XGOTREF(__pyx_t_3); __pyx_t_8 = __Pyx_PyList_GetItemRefFast(sequence, 1, __Pyx_ReferenceSharing_SharedReference); - if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1163, __pyx_L1_error) + if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1172, __pyx_L1_error) __Pyx_XGOTREF(__pyx_t_8); } #else - __pyx_t_3 = __Pyx_PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1163, __pyx_L1_error) + __pyx_t_3 = __Pyx_PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1172, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_8 = __Pyx_PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1163, __pyx_L1_error) + __pyx_t_8 = __Pyx_PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1172, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); #endif __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } else { Py_ssize_t index = -1; - __pyx_t_9 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1163, __pyx_L1_error) + __pyx_t_9 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1172, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_10 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_9); @@ -16063,7 +16155,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_data_container_extract_ __Pyx_GOTREF(__pyx_t_3); index = 1; __pyx_t_8 = __pyx_t_10(__pyx_t_9); if (unlikely(!__pyx_t_8)) goto __pyx_L8_unpacking_failed; __Pyx_GOTREF(__pyx_t_8); - if (__Pyx_IternextUnpackEndCheck(__pyx_t_10(__pyx_t_9), 2) < (0)) __PYX_ERR(0, 1163, __pyx_L1_error) + if (__Pyx_IternextUnpackEndCheck(__pyx_t_10(__pyx_t_9), 2) < (0)) __PYX_ERR(0, 1172, __pyx_L1_error) __pyx_t_10 = NULL; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; goto __pyx_L9_unpacking_done; @@ -16071,17 +16163,17 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_data_container_extract_ __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_10 = NULL; if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); - __PYX_ERR(0, 1163, __pyx_L1_error) + __PYX_ERR(0, 1172, __pyx_L1_error) __pyx_L9_unpacking_done:; } - if (!(likely(PyUnicode_CheckExact(__pyx_t_3))||((__pyx_t_3) == Py_None) || __Pyx_RaiseUnexpectedTypeError("str", __pyx_t_3))) __PYX_ERR(0, 1163, __pyx_L1_error) - if (!(likely(PyUnicode_CheckExact(__pyx_t_8))||((__pyx_t_8) == Py_None) || __Pyx_RaiseUnexpectedTypeError("str", __pyx_t_8))) __PYX_ERR(0, 1163, __pyx_L1_error) + if (!(likely(PyUnicode_CheckExact(__pyx_t_3))||((__pyx_t_3) == Py_None) || __Pyx_RaiseUnexpectedTypeError("str", __pyx_t_3))) __PYX_ERR(0, 1172, __pyx_L1_error) + if (!(likely(PyUnicode_CheckExact(__pyx_t_8))||((__pyx_t_8) == Py_None) || __Pyx_RaiseUnexpectedTypeError("str", __pyx_t_8))) __PYX_ERR(0, 1172, __pyx_L1_error) __Pyx_XDECREF_SET(__pyx_v_var_name, ((PyObject*)__pyx_t_3)); __pyx_t_3 = 0; __Pyx_XDECREF_SET(__pyx_v_var_label, ((PyObject*)__pyx_t_8)); __pyx_t_8 = 0; - /* "pyreadstat/_readstat_parser.pyx":1164 + /* "pyreadstat/_readstat_parser.pyx":1173 * if labels_raw: * for var_name, var_label in label_to_var_name.items(): * current_labels = labels_raw.get(var_label) # <<<<<<<<<<<<<< @@ -16095,32 +16187,32 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_data_container_extract_ PyObject *__pyx_callargs[2] = {__pyx_t_8, __pyx_v_var_label}; __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_get, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1164, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1173, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } __Pyx_XDECREF_SET(__pyx_v_current_labels, __pyx_t_2); __pyx_t_2 = 0; - /* "pyreadstat/_readstat_parser.pyx":1165 + /* "pyreadstat/_readstat_parser.pyx":1174 * for var_name, var_label in label_to_var_name.items(): * current_labels = labels_raw.get(var_label) * if current_labels: # <<<<<<<<<<<<<< * variable_value_labels[var_name] = current_labels * */ - __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_current_labels); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 1165, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_current_labels); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 1174, __pyx_L1_error) if (__pyx_t_1) { - /* "pyreadstat/_readstat_parser.pyx":1166 + /* "pyreadstat/_readstat_parser.pyx":1175 * current_labels = labels_raw.get(var_label) * if current_labels: * variable_value_labels[var_name] = current_labels # <<<<<<<<<<<<<< * * original_types = dict() */ - if (unlikely((PyDict_SetItem(__pyx_v_variable_value_labels, __pyx_v_var_name, __pyx_v_current_labels) < 0))) __PYX_ERR(0, 1166, __pyx_L1_error) + if (unlikely((PyDict_SetItem(__pyx_v_variable_value_labels, __pyx_v_var_name, __pyx_v_current_labels) < 0))) __PYX_ERR(0, 1175, __pyx_L1_error) - /* "pyreadstat/_readstat_parser.pyx":1165 + /* "pyreadstat/_readstat_parser.pyx":1174 * for var_name, var_label in label_to_var_name.items(): * current_labels = labels_raw.get(var_label) * if current_labels: # <<<<<<<<<<<<<< @@ -16129,7 +16221,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_data_container_extract_ */ } - /* "pyreadstat/_readstat_parser.pyx":1163 + /* "pyreadstat/_readstat_parser.pyx":1172 * * if labels_raw: * for var_name, var_label in label_to_var_name.items(): # <<<<<<<<<<<<<< @@ -16139,7 +16231,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_data_container_extract_ } __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - /* "pyreadstat/_readstat_parser.pyx":1162 + /* "pyreadstat/_readstat_parser.pyx":1171 * variable_value_labels = dict() * * if labels_raw: # <<<<<<<<<<<<<< @@ -16148,39 +16240,51 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_data_container_extract_ */ } - /* "pyreadstat/_readstat_parser.pyx":1168 + /* "pyreadstat/_readstat_parser.pyx":1177 * variable_value_labels[var_name] = current_labels * * original_types = dict() # <<<<<<<<<<<<<< + * original_informats = dict() * readstat_types = dict() - * for indx in range(metadata.number_columns): */ - __pyx_t_4 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1168, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1177, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_v_original_types = __pyx_t_4; __pyx_t_4 = 0; - /* "pyreadstat/_readstat_parser.pyx":1169 + /* "pyreadstat/_readstat_parser.pyx":1178 * * original_types = dict() + * original_informats = dict() # <<<<<<<<<<<<<< + * readstat_types = dict() + * for indx in range(metadata.number_columns): +*/ + __pyx_t_4 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1178, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_v_original_informats = __pyx_t_4; + __pyx_t_4 = 0; + + /* "pyreadstat/_readstat_parser.pyx":1179 + * original_types = dict() + * original_informats = dict() * readstat_types = dict() # <<<<<<<<<<<<<< * for indx in range(metadata.number_columns): * cur_col = data.col_names[indx] */ - __pyx_t_4 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1169, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1179, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_v_readstat_types = ((PyObject*)__pyx_t_4); __pyx_t_4 = 0; - /* "pyreadstat/_readstat_parser.pyx":1170 - * original_types = dict() + /* "pyreadstat/_readstat_parser.pyx":1180 + * original_informats = dict() * readstat_types = dict() * for indx in range(metadata.number_columns): # <<<<<<<<<<<<<< * cur_col = data.col_names[indx] * cur_type = data.col_formats_original[indx] */ __pyx_t_2 = NULL; - __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_metadata, __pyx_mstate_global->__pyx_n_u_number_columns); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1170, __pyx_L1_error) + __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_metadata, __pyx_mstate_global->__pyx_n_u_number_columns); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1180, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_5 = 1; { @@ -16188,12 +16292,12 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_data_container_extract_ __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)(&PyRange_Type), __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1170, __pyx_L1_error) + if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1180, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); } - __pyx_t_8 = PyObject_GetIter(__pyx_t_4); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1170, __pyx_L1_error) + __pyx_t_8 = PyObject_GetIter(__pyx_t_4); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1180, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); - __pyx_t_7 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_8); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1170, __pyx_L1_error) + __pyx_t_7 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_8); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1180, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; for (;;) { { @@ -16201,7 +16305,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_data_container_extract_ if (unlikely(!__pyx_t_4)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { - if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(0, 1170, __pyx_L1_error) + if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(0, 1180, __pyx_L1_error) PyErr_Clear(); } break; @@ -16211,7 +16315,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_data_container_extract_ __Pyx_XDECREF_SET(__pyx_v_indx, __pyx_t_4); __pyx_t_4 = 0; - /* "pyreadstat/_readstat_parser.pyx":1171 + /* "pyreadstat/_readstat_parser.pyx":1181 * readstat_types = dict() * for indx in range(metadata.number_columns): * cur_col = data.col_names[indx] # <<<<<<<<<<<<<< @@ -16220,57 +16324,84 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_data_container_extract_ */ if (unlikely(__pyx_v_data->col_names == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 1171, __pyx_L1_error) + __PYX_ERR(0, 1181, __pyx_L1_error) } - __pyx_t_4 = __Pyx_PyObject_GetItem(__pyx_v_data->col_names, __pyx_v_indx); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1171, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyObject_GetItem(__pyx_v_data->col_names, __pyx_v_indx); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1181, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_XDECREF_SET(__pyx_v_cur_col, __pyx_t_4); __pyx_t_4 = 0; - /* "pyreadstat/_readstat_parser.pyx":1172 + /* "pyreadstat/_readstat_parser.pyx":1182 * for indx in range(metadata.number_columns): * cur_col = data.col_names[indx] * cur_type = data.col_formats_original[indx] # <<<<<<<<<<<<<< * original_types[cur_col] = cur_type - * var_type = data.col_dtypes[indx] + * cur_informat = data.col_informats_original[indx] */ if (unlikely(__pyx_v_data->col_formats_original == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 1172, __pyx_L1_error) + __PYX_ERR(0, 1182, __pyx_L1_error) } - __pyx_t_4 = __Pyx_PyObject_GetItem(__pyx_v_data->col_formats_original, __pyx_v_indx); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1172, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyObject_GetItem(__pyx_v_data->col_formats_original, __pyx_v_indx); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1182, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __Pyx_XDECREF_SET(__pyx_v_cur_type, __pyx_t_4); + if (!(likely(PyUnicode_CheckExact(__pyx_t_4))||((__pyx_t_4) == Py_None) || __Pyx_RaiseUnexpectedTypeError("str", __pyx_t_4))) __PYX_ERR(0, 1182, __pyx_L1_error) + __Pyx_XDECREF_SET(__pyx_v_cur_type, ((PyObject*)__pyx_t_4)); __pyx_t_4 = 0; - /* "pyreadstat/_readstat_parser.pyx":1173 + /* "pyreadstat/_readstat_parser.pyx":1183 * cur_col = data.col_names[indx] * cur_type = data.col_formats_original[indx] * original_types[cur_col] = cur_type # <<<<<<<<<<<<<< - * var_type = data.col_dtypes[indx] - * if var_type == READSTAT_TYPE_STRING or var_type == READSTAT_TYPE_STRING_REF: + * cur_informat = data.col_informats_original[indx] + * original_informats[cur_col] = cur_informat */ - if (unlikely((PyObject_SetItem(__pyx_v_original_types, __pyx_v_cur_col, __pyx_v_cur_type) < 0))) __PYX_ERR(0, 1173, __pyx_L1_error) + if (unlikely((PyObject_SetItem(__pyx_v_original_types, __pyx_v_cur_col, __pyx_v_cur_type) < 0))) __PYX_ERR(0, 1183, __pyx_L1_error) - /* "pyreadstat/_readstat_parser.pyx":1174 + /* "pyreadstat/_readstat_parser.pyx":1184 * cur_type = data.col_formats_original[indx] * original_types[cur_col] = cur_type + * cur_informat = data.col_informats_original[indx] # <<<<<<<<<<<<<< + * original_informats[cur_col] = cur_informat + * var_type = data.col_dtypes[indx] +*/ + if (unlikely(__pyx_v_data->col_informats_original == Py_None)) { + PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); + __PYX_ERR(0, 1184, __pyx_L1_error) + } + __pyx_t_4 = __Pyx_PyObject_GetItem(__pyx_v_data->col_informats_original, __pyx_v_indx); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1184, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + if (!(likely(PyUnicode_CheckExact(__pyx_t_4))||((__pyx_t_4) == Py_None) || __Pyx_RaiseUnexpectedTypeError("str", __pyx_t_4))) __PYX_ERR(0, 1184, __pyx_L1_error) + __Pyx_XDECREF_SET(__pyx_v_cur_informat, ((PyObject*)__pyx_t_4)); + __pyx_t_4 = 0; + + /* "pyreadstat/_readstat_parser.pyx":1185 + * original_types[cur_col] = cur_type + * cur_informat = data.col_informats_original[indx] + * original_informats[cur_col] = cur_informat # <<<<<<<<<<<<<< + * var_type = data.col_dtypes[indx] + * if var_type == READSTAT_TYPE_STRING or var_type == READSTAT_TYPE_STRING_REF: +*/ + if (unlikely((PyObject_SetItem(__pyx_v_original_informats, __pyx_v_cur_col, __pyx_v_cur_informat) < 0))) __PYX_ERR(0, 1185, __pyx_L1_error) + + /* "pyreadstat/_readstat_parser.pyx":1186 + * cur_informat = data.col_informats_original[indx] + * original_informats[cur_col] = cur_informat * var_type = data.col_dtypes[indx] # <<<<<<<<<<<<<< * if var_type == READSTAT_TYPE_STRING or var_type == READSTAT_TYPE_STRING_REF: * readstat_types[cur_col] = "string" */ if (unlikely(__pyx_v_data->col_dtypes == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 1174, __pyx_L1_error) + __PYX_ERR(0, 1186, __pyx_L1_error) } - __pyx_t_4 = __Pyx_PyObject_GetItem(__pyx_v_data->col_dtypes, __pyx_v_indx); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1174, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyObject_GetItem(__pyx_v_data->col_dtypes, __pyx_v_indx); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1186, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_11 = ((readstat_type_t)__Pyx_PyLong_As_readstat_type_t(__pyx_t_4)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1174, __pyx_L1_error) + __pyx_t_11 = ((readstat_type_t)__Pyx_PyLong_As_readstat_type_t(__pyx_t_4)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1186, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_v_var_type = __pyx_t_11; - /* "pyreadstat/_readstat_parser.pyx":1175 - * original_types[cur_col] = cur_type + /* "pyreadstat/_readstat_parser.pyx":1187 + * original_informats[cur_col] = cur_informat * var_type = data.col_dtypes[indx] * if var_type == READSTAT_TYPE_STRING or var_type == READSTAT_TYPE_STRING_REF: # <<<<<<<<<<<<<< * readstat_types[cur_col] = "string" @@ -16280,17 +16411,17 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_data_container_extract_ case READSTAT_TYPE_STRING: case READSTAT_TYPE_STRING_REF: - /* "pyreadstat/_readstat_parser.pyx":1176 + /* "pyreadstat/_readstat_parser.pyx":1188 * var_type = data.col_dtypes[indx] * if var_type == READSTAT_TYPE_STRING or var_type == READSTAT_TYPE_STRING_REF: * readstat_types[cur_col] = "string" # <<<<<<<<<<<<<< * elif var_type == READSTAT_TYPE_INT8: * readstat_types[cur_col] = "int8" */ - if (unlikely((PyDict_SetItem(__pyx_v_readstat_types, __pyx_v_cur_col, __pyx_mstate_global->__pyx_n_u_string) < 0))) __PYX_ERR(0, 1176, __pyx_L1_error) + if (unlikely((PyDict_SetItem(__pyx_v_readstat_types, __pyx_v_cur_col, __pyx_mstate_global->__pyx_n_u_string) < 0))) __PYX_ERR(0, 1188, __pyx_L1_error) - /* "pyreadstat/_readstat_parser.pyx":1175 - * original_types[cur_col] = cur_type + /* "pyreadstat/_readstat_parser.pyx":1187 + * original_informats[cur_col] = cur_informat * var_type = data.col_dtypes[indx] * if var_type == READSTAT_TYPE_STRING or var_type == READSTAT_TYPE_STRING_REF: # <<<<<<<<<<<<<< * readstat_types[cur_col] = "string" @@ -16299,16 +16430,16 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_data_container_extract_ break; case READSTAT_TYPE_INT8: - /* "pyreadstat/_readstat_parser.pyx":1178 + /* "pyreadstat/_readstat_parser.pyx":1190 * readstat_types[cur_col] = "string" * elif var_type == READSTAT_TYPE_INT8: * readstat_types[cur_col] = "int8" # <<<<<<<<<<<<<< * elif var_type == READSTAT_TYPE_INT16: * readstat_types[cur_col] = "int16" */ - if (unlikely((PyDict_SetItem(__pyx_v_readstat_types, __pyx_v_cur_col, __pyx_mstate_global->__pyx_n_u_int8) < 0))) __PYX_ERR(0, 1178, __pyx_L1_error) + if (unlikely((PyDict_SetItem(__pyx_v_readstat_types, __pyx_v_cur_col, __pyx_mstate_global->__pyx_n_u_int8) < 0))) __PYX_ERR(0, 1190, __pyx_L1_error) - /* "pyreadstat/_readstat_parser.pyx":1177 + /* "pyreadstat/_readstat_parser.pyx":1189 * if var_type == READSTAT_TYPE_STRING or var_type == READSTAT_TYPE_STRING_REF: * readstat_types[cur_col] = "string" * elif var_type == READSTAT_TYPE_INT8: # <<<<<<<<<<<<<< @@ -16318,16 +16449,16 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_data_container_extract_ break; case READSTAT_TYPE_INT16: - /* "pyreadstat/_readstat_parser.pyx":1180 + /* "pyreadstat/_readstat_parser.pyx":1192 * readstat_types[cur_col] = "int8" * elif var_type == READSTAT_TYPE_INT16: * readstat_types[cur_col] = "int16" # <<<<<<<<<<<<<< * elif var_type == READSTAT_TYPE_INT32: * readstat_types[cur_col] = "int32" */ - if (unlikely((PyDict_SetItem(__pyx_v_readstat_types, __pyx_v_cur_col, __pyx_mstate_global->__pyx_n_u_int16) < 0))) __PYX_ERR(0, 1180, __pyx_L1_error) + if (unlikely((PyDict_SetItem(__pyx_v_readstat_types, __pyx_v_cur_col, __pyx_mstate_global->__pyx_n_u_int16) < 0))) __PYX_ERR(0, 1192, __pyx_L1_error) - /* "pyreadstat/_readstat_parser.pyx":1179 + /* "pyreadstat/_readstat_parser.pyx":1191 * elif var_type == READSTAT_TYPE_INT8: * readstat_types[cur_col] = "int8" * elif var_type == READSTAT_TYPE_INT16: # <<<<<<<<<<<<<< @@ -16337,16 +16468,16 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_data_container_extract_ break; case READSTAT_TYPE_INT32: - /* "pyreadstat/_readstat_parser.pyx":1182 + /* "pyreadstat/_readstat_parser.pyx":1194 * readstat_types[cur_col] = "int16" * elif var_type == READSTAT_TYPE_INT32: * readstat_types[cur_col] = "int32" # <<<<<<<<<<<<<< * elif var_type == READSTAT_TYPE_FLOAT: * readstat_types[cur_col] = "float" */ - if (unlikely((PyDict_SetItem(__pyx_v_readstat_types, __pyx_v_cur_col, __pyx_mstate_global->__pyx_n_u_int32) < 0))) __PYX_ERR(0, 1182, __pyx_L1_error) + if (unlikely((PyDict_SetItem(__pyx_v_readstat_types, __pyx_v_cur_col, __pyx_mstate_global->__pyx_n_u_int32) < 0))) __PYX_ERR(0, 1194, __pyx_L1_error) - /* "pyreadstat/_readstat_parser.pyx":1181 + /* "pyreadstat/_readstat_parser.pyx":1193 * elif var_type == READSTAT_TYPE_INT16: * readstat_types[cur_col] = "int16" * elif var_type == READSTAT_TYPE_INT32: # <<<<<<<<<<<<<< @@ -16356,16 +16487,16 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_data_container_extract_ break; case READSTAT_TYPE_FLOAT: - /* "pyreadstat/_readstat_parser.pyx":1184 + /* "pyreadstat/_readstat_parser.pyx":1196 * readstat_types[cur_col] = "int32" * elif var_type == READSTAT_TYPE_FLOAT: * readstat_types[cur_col] = "float" # <<<<<<<<<<<<<< * elif var_type == READSTAT_TYPE_DOUBLE: * readstat_types[cur_col] = "double" */ - if (unlikely((PyDict_SetItem(__pyx_v_readstat_types, __pyx_v_cur_col, __pyx_mstate_global->__pyx_n_u_float) < 0))) __PYX_ERR(0, 1184, __pyx_L1_error) + if (unlikely((PyDict_SetItem(__pyx_v_readstat_types, __pyx_v_cur_col, __pyx_mstate_global->__pyx_n_u_float) < 0))) __PYX_ERR(0, 1196, __pyx_L1_error) - /* "pyreadstat/_readstat_parser.pyx":1183 + /* "pyreadstat/_readstat_parser.pyx":1195 * elif var_type == READSTAT_TYPE_INT32: * readstat_types[cur_col] = "int32" * elif var_type == READSTAT_TYPE_FLOAT: # <<<<<<<<<<<<<< @@ -16375,16 +16506,16 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_data_container_extract_ break; case READSTAT_TYPE_DOUBLE: - /* "pyreadstat/_readstat_parser.pyx":1186 + /* "pyreadstat/_readstat_parser.pyx":1198 * readstat_types[cur_col] = "float" * elif var_type == READSTAT_TYPE_DOUBLE: * readstat_types[cur_col] = "double" # <<<<<<<<<<<<<< * else: * raise PyreadstatError("Unkown data type") */ - if (unlikely((PyDict_SetItem(__pyx_v_readstat_types, __pyx_v_cur_col, __pyx_mstate_global->__pyx_n_u_double) < 0))) __PYX_ERR(0, 1186, __pyx_L1_error) + if (unlikely((PyDict_SetItem(__pyx_v_readstat_types, __pyx_v_cur_col, __pyx_mstate_global->__pyx_n_u_double) < 0))) __PYX_ERR(0, 1198, __pyx_L1_error) - /* "pyreadstat/_readstat_parser.pyx":1185 + /* "pyreadstat/_readstat_parser.pyx":1197 * elif var_type == READSTAT_TYPE_FLOAT: * readstat_types[cur_col] = "float" * elif var_type == READSTAT_TYPE_DOUBLE: # <<<<<<<<<<<<<< @@ -16394,7 +16525,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_data_container_extract_ break; default: - /* "pyreadstat/_readstat_parser.pyx":1188 + /* "pyreadstat/_readstat_parser.pyx":1200 * readstat_types[cur_col] = "double" * else: * raise PyreadstatError("Unkown data type") # <<<<<<<<<<<<<< @@ -16402,7 +16533,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_data_container_extract_ * for indx, curset in data.missing_user_values.items(): */ __pyx_t_2 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1188, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1200, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_5 = 1; #if CYTHON_UNPACK_METHODS @@ -16421,17 +16552,17 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_data_container_extract_ __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_3, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1188, __pyx_L1_error) + if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1200, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); } __Pyx_Raise(__pyx_t_4, 0, 0, 0); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __PYX_ERR(0, 1188, __pyx_L1_error) + __PYX_ERR(0, 1200, __pyx_L1_error) break; } - /* "pyreadstat/_readstat_parser.pyx":1170 - * original_types = dict() + /* "pyreadstat/_readstat_parser.pyx":1180 + * original_informats = dict() * readstat_types = dict() * for indx in range(metadata.number_columns): # <<<<<<<<<<<<<< * cur_col = data.col_names[indx] @@ -16440,7 +16571,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_data_container_extract_ } __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - /* "pyreadstat/_readstat_parser.pyx":1190 + /* "pyreadstat/_readstat_parser.pyx":1202 * raise PyreadstatError("Unkown data type") * * for indx, curset in data.missing_user_values.items(): # <<<<<<<<<<<<<< @@ -16449,18 +16580,18 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_data_container_extract_ */ if (unlikely(__pyx_v_data->missing_user_values == Py_None)) { PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "items"); - __PYX_ERR(0, 1190, __pyx_L1_error) + __PYX_ERR(0, 1202, __pyx_L1_error) } - __pyx_t_8 = __Pyx_PyDict_Items(__pyx_v_data->missing_user_values); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1190, __pyx_L1_error) + __pyx_t_8 = __Pyx_PyDict_Items(__pyx_v_data->missing_user_values); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1202, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); if (likely(PyList_CheckExact(__pyx_t_8)) || PyTuple_CheckExact(__pyx_t_8)) { __pyx_t_4 = __pyx_t_8; __Pyx_INCREF(__pyx_t_4); __pyx_t_6 = 0; __pyx_t_7 = NULL; } else { - __pyx_t_6 = -1; __pyx_t_4 = PyObject_GetIter(__pyx_t_8); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1190, __pyx_L1_error) + __pyx_t_6 = -1; __pyx_t_4 = PyObject_GetIter(__pyx_t_8); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1202, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_7 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_4); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1190, __pyx_L1_error) + __pyx_t_7 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_4); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1202, __pyx_L1_error) } __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; for (;;) { @@ -16469,7 +16600,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_data_container_extract_ { Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_4); #if !CYTHON_ASSUME_SAFE_SIZE - if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 1190, __pyx_L1_error) + if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 1202, __pyx_L1_error) #endif if (__pyx_t_6 >= __pyx_temp) break; } @@ -16479,7 +16610,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_data_container_extract_ { Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_4); #if !CYTHON_ASSUME_SAFE_SIZE - if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 1190, __pyx_L1_error) + if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 1202, __pyx_L1_error) #endif if (__pyx_t_6 >= __pyx_temp) break; } @@ -16490,13 +16621,13 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_data_container_extract_ #endif ++__pyx_t_6; } - if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1190, __pyx_L1_error) + if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1202, __pyx_L1_error) } else { __pyx_t_8 = __pyx_t_7(__pyx_t_4); if (unlikely(!__pyx_t_8)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { - if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(0, 1190, __pyx_L1_error) + if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(0, 1202, __pyx_L1_error) PyErr_Clear(); } break; @@ -16509,7 +16640,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_data_container_extract_ if (unlikely(size != 2)) { if (size > 2) __Pyx_RaiseTooManyValuesError(2); else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); - __PYX_ERR(0, 1190, __pyx_L1_error) + __PYX_ERR(0, 1202, __pyx_L1_error) } #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS if (likely(PyTuple_CheckExact(sequence))) { @@ -16519,22 +16650,22 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_data_container_extract_ __Pyx_INCREF(__pyx_t_2); } else { __pyx_t_3 = __Pyx_PyList_GetItemRefFast(sequence, 0, __Pyx_ReferenceSharing_SharedReference); - if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1190, __pyx_L1_error) + if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1202, __pyx_L1_error) __Pyx_XGOTREF(__pyx_t_3); __pyx_t_2 = __Pyx_PyList_GetItemRefFast(sequence, 1, __Pyx_ReferenceSharing_SharedReference); - if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1190, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1202, __pyx_L1_error) __Pyx_XGOTREF(__pyx_t_2); } #else - __pyx_t_3 = __Pyx_PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1190, __pyx_L1_error) + __pyx_t_3 = __Pyx_PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1202, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_2 = __Pyx_PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1190, __pyx_L1_error) + __pyx_t_2 = __Pyx_PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1202, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); #endif __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; } else { Py_ssize_t index = -1; - __pyx_t_9 = PyObject_GetIter(__pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1190, __pyx_L1_error) + __pyx_t_9 = PyObject_GetIter(__pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1202, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_t_10 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_9); @@ -16542,7 +16673,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_data_container_extract_ __Pyx_GOTREF(__pyx_t_3); index = 1; __pyx_t_2 = __pyx_t_10(__pyx_t_9); if (unlikely(!__pyx_t_2)) goto __pyx_L17_unpacking_failed; __Pyx_GOTREF(__pyx_t_2); - if (__Pyx_IternextUnpackEndCheck(__pyx_t_10(__pyx_t_9), 2) < (0)) __PYX_ERR(0, 1190, __pyx_L1_error) + if (__Pyx_IternextUnpackEndCheck(__pyx_t_10(__pyx_t_9), 2) < (0)) __PYX_ERR(0, 1202, __pyx_L1_error) __pyx_t_10 = NULL; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; goto __pyx_L18_unpacking_done; @@ -16550,7 +16681,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_data_container_extract_ __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_10 = NULL; if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); - __PYX_ERR(0, 1190, __pyx_L1_error) + __PYX_ERR(0, 1202, __pyx_L1_error) __pyx_L18_unpacking_done:; } __Pyx_XDECREF_SET(__pyx_v_indx, __pyx_t_3); @@ -16558,7 +16689,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_data_container_extract_ __Pyx_XDECREF_SET(__pyx_v_curset, __pyx_t_2); __pyx_t_2 = 0; - /* "pyreadstat/_readstat_parser.pyx":1191 + /* "pyreadstat/_readstat_parser.pyx":1203 * * for indx, curset in data.missing_user_values.items(): * cur_col = data.col_names[indx] # <<<<<<<<<<<<<< @@ -16567,33 +16698,33 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_data_container_extract_ */ if (unlikely(__pyx_v_data->col_names == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 1191, __pyx_L1_error) + __PYX_ERR(0, 1203, __pyx_L1_error) } - __pyx_t_8 = __Pyx_PyObject_GetItem(__pyx_v_data->col_names, __pyx_v_indx); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1191, __pyx_L1_error) + __pyx_t_8 = __Pyx_PyObject_GetItem(__pyx_v_data->col_names, __pyx_v_indx); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1203, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_XDECREF_SET(__pyx_v_cur_col, __pyx_t_8); __pyx_t_8 = 0; - /* "pyreadstat/_readstat_parser.pyx":1192 + /* "pyreadstat/_readstat_parser.pyx":1204 * for indx, curset in data.missing_user_values.items(): * cur_col = data.col_names[indx] * metadata.missing_user_values[cur_col] = sorted(list(curset)) # <<<<<<<<<<<<<< * * metadata.notes = data.notes */ - __pyx_t_8 = PySequence_List(__pyx_v_curset); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1192, __pyx_L1_error) + __pyx_t_8 = PySequence_List(__pyx_v_curset); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1204, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); - __pyx_t_2 = PySequence_List(__pyx_t_8); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1192, __pyx_L1_error) + __pyx_t_2 = PySequence_List(__pyx_t_8); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1204, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - if (unlikely((PyList_Sort(__pyx_t_2) < 0))) __PYX_ERR(0, 1192, __pyx_L1_error) - __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_metadata, __pyx_mstate_global->__pyx_n_u_missing_user_values); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1192, __pyx_L1_error) + if (unlikely((PyList_Sort(__pyx_t_2) < 0))) __PYX_ERR(0, 1204, __pyx_L1_error) + __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_metadata, __pyx_mstate_global->__pyx_n_u_missing_user_values); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1204, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); - if (unlikely((PyObject_SetItem(__pyx_t_8, __pyx_v_cur_col, __pyx_t_2) < 0))) __PYX_ERR(0, 1192, __pyx_L1_error) + if (unlikely((PyObject_SetItem(__pyx_t_8, __pyx_v_cur_col, __pyx_t_2) < 0))) __PYX_ERR(0, 1204, __pyx_L1_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - /* "pyreadstat/_readstat_parser.pyx":1190 + /* "pyreadstat/_readstat_parser.pyx":1202 * raise PyreadstatError("Unkown data type") * * for indx, curset in data.missing_user_values.items(): # <<<<<<<<<<<<<< @@ -16603,7 +16734,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_data_container_extract_ } __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - /* "pyreadstat/_readstat_parser.pyx":1194 + /* "pyreadstat/_readstat_parser.pyx":1206 * metadata.missing_user_values[cur_col] = sorted(list(curset)) * * metadata.notes = data.notes # <<<<<<<<<<<<<< @@ -16612,10 +16743,10 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_data_container_extract_ */ __pyx_t_4 = __pyx_v_data->notes; __Pyx_INCREF(__pyx_t_4); - if (__Pyx_PyObject_SetAttrStr(__pyx_v_metadata, __pyx_mstate_global->__pyx_n_u_notes, __pyx_t_4) < (0)) __PYX_ERR(0, 1194, __pyx_L1_error) + if (__Pyx_PyObject_SetAttrStr(__pyx_v_metadata, __pyx_mstate_global->__pyx_n_u_notes, __pyx_t_4) < (0)) __PYX_ERR(0, 1206, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - /* "pyreadstat/_readstat_parser.pyx":1195 + /* "pyreadstat/_readstat_parser.pyx":1207 * * metadata.notes = data.notes * metadata.column_names = data.col_names # <<<<<<<<<<<<<< @@ -16624,10 +16755,10 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_data_container_extract_ */ __pyx_t_4 = __pyx_v_data->col_names; __Pyx_INCREF(__pyx_t_4); - if (__Pyx_PyObject_SetAttrStr(__pyx_v_metadata, __pyx_mstate_global->__pyx_n_u_column_names, __pyx_t_4) < (0)) __PYX_ERR(0, 1195, __pyx_L1_error) + if (__Pyx_PyObject_SetAttrStr(__pyx_v_metadata, __pyx_mstate_global->__pyx_n_u_column_names, __pyx_t_4) < (0)) __PYX_ERR(0, 1207, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - /* "pyreadstat/_readstat_parser.pyx":1196 + /* "pyreadstat/_readstat_parser.pyx":1208 * metadata.notes = data.notes * metadata.column_names = data.col_names * metadata.column_labels = data.col_labels # <<<<<<<<<<<<<< @@ -16636,10 +16767,10 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_data_container_extract_ */ __pyx_t_4 = __pyx_v_data->col_labels; __Pyx_INCREF(__pyx_t_4); - if (__Pyx_PyObject_SetAttrStr(__pyx_v_metadata, __pyx_mstate_global->__pyx_n_u_column_labels, __pyx_t_4) < (0)) __PYX_ERR(0, 1196, __pyx_L1_error) + if (__Pyx_PyObject_SetAttrStr(__pyx_v_metadata, __pyx_mstate_global->__pyx_n_u_column_labels, __pyx_t_4) < (0)) __PYX_ERR(0, 1208, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - /* "pyreadstat/_readstat_parser.pyx":1197 + /* "pyreadstat/_readstat_parser.pyx":1209 * metadata.column_names = data.col_names * metadata.column_labels = data.col_labels * metadata.column_names_to_labels = {k:v for k,v in zip(data.col_names, data.col_labels)} # <<<<<<<<<<<<<< @@ -16647,7 +16778,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_data_container_extract_ * metadata.file_label = data.file_label */ { /* enter inner scope */ - __pyx_t_4 = PyDict_New(); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1197, __pyx_L22_error) + __pyx_t_4 = PyDict_New(); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1209, __pyx_L22_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_8 = NULL; __pyx_t_5 = 1; @@ -16655,7 +16786,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_data_container_extract_ PyObject *__pyx_callargs[3] = {__pyx_t_8, __pyx_v_data->col_names, __pyx_v_data->col_labels}; __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_zip, __pyx_callargs+__pyx_t_5, (3-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1197, __pyx_L22_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1209, __pyx_L22_error) __Pyx_GOTREF(__pyx_t_2); } if (likely(PyList_CheckExact(__pyx_t_2)) || PyTuple_CheckExact(__pyx_t_2)) { @@ -16663,9 +16794,9 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_data_container_extract_ __pyx_t_6 = 0; __pyx_t_7 = NULL; } else { - __pyx_t_6 = -1; __pyx_t_8 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1197, __pyx_L22_error) + __pyx_t_6 = -1; __pyx_t_8 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1209, __pyx_L22_error) __Pyx_GOTREF(__pyx_t_8); - __pyx_t_7 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_8); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1197, __pyx_L22_error) + __pyx_t_7 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_8); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1209, __pyx_L22_error) } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; for (;;) { @@ -16674,7 +16805,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_data_container_extract_ { Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_8); #if !CYTHON_ASSUME_SAFE_SIZE - if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 1197, __pyx_L22_error) + if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 1209, __pyx_L22_error) #endif if (__pyx_t_6 >= __pyx_temp) break; } @@ -16684,7 +16815,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_data_container_extract_ { Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_8); #if !CYTHON_ASSUME_SAFE_SIZE - if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 1197, __pyx_L22_error) + if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 1209, __pyx_L22_error) #endif if (__pyx_t_6 >= __pyx_temp) break; } @@ -16695,13 +16826,13 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_data_container_extract_ #endif ++__pyx_t_6; } - if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1197, __pyx_L22_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1209, __pyx_L22_error) } else { __pyx_t_2 = __pyx_t_7(__pyx_t_8); if (unlikely(!__pyx_t_2)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { - if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(0, 1197, __pyx_L22_error) + if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(0, 1209, __pyx_L22_error) PyErr_Clear(); } break; @@ -16714,7 +16845,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_data_container_extract_ if (unlikely(size != 2)) { if (size > 2) __Pyx_RaiseTooManyValuesError(2); else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); - __PYX_ERR(0, 1197, __pyx_L22_error) + __PYX_ERR(0, 1209, __pyx_L22_error) } #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS if (likely(PyTuple_CheckExact(sequence))) { @@ -16724,22 +16855,22 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_data_container_extract_ __Pyx_INCREF(__pyx_t_9); } else { __pyx_t_3 = __Pyx_PyList_GetItemRefFast(sequence, 0, __Pyx_ReferenceSharing_SharedReference); - if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1197, __pyx_L22_error) + if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1209, __pyx_L22_error) __Pyx_XGOTREF(__pyx_t_3); __pyx_t_9 = __Pyx_PyList_GetItemRefFast(sequence, 1, __Pyx_ReferenceSharing_SharedReference); - if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1197, __pyx_L22_error) + if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1209, __pyx_L22_error) __Pyx_XGOTREF(__pyx_t_9); } #else - __pyx_t_3 = __Pyx_PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1197, __pyx_L22_error) + __pyx_t_3 = __Pyx_PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1209, __pyx_L22_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_9 = __Pyx_PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1197, __pyx_L22_error) + __pyx_t_9 = __Pyx_PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1209, __pyx_L22_error) __Pyx_GOTREF(__pyx_t_9); #endif __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } else { Py_ssize_t index = -1; - __pyx_t_12 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1197, __pyx_L22_error) + __pyx_t_12 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1209, __pyx_L22_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_10 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_12); @@ -16747,7 +16878,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_data_container_extract_ __Pyx_GOTREF(__pyx_t_3); index = 1; __pyx_t_9 = __pyx_t_10(__pyx_t_12); if (unlikely(!__pyx_t_9)) goto __pyx_L25_unpacking_failed; __Pyx_GOTREF(__pyx_t_9); - if (__Pyx_IternextUnpackEndCheck(__pyx_t_10(__pyx_t_12), 2) < (0)) __PYX_ERR(0, 1197, __pyx_L22_error) + if (__Pyx_IternextUnpackEndCheck(__pyx_t_10(__pyx_t_12), 2) < (0)) __PYX_ERR(0, 1209, __pyx_L22_error) __pyx_t_10 = NULL; __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; goto __pyx_L26_unpacking_done; @@ -16755,14 +16886,14 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_data_container_extract_ __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __pyx_t_10 = NULL; if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); - __PYX_ERR(0, 1197, __pyx_L22_error) + __PYX_ERR(0, 1209, __pyx_L22_error) __pyx_L26_unpacking_done:; } __Pyx_XDECREF_SET(__pyx_7genexpr__pyx_v_k, __pyx_t_3); __pyx_t_3 = 0; __Pyx_XDECREF_SET(__pyx_7genexpr__pyx_v_v, __pyx_t_9); __pyx_t_9 = 0; - if (unlikely(PyDict_SetItem(__pyx_t_4, (PyObject*)__pyx_7genexpr__pyx_v_k, (PyObject*)__pyx_7genexpr__pyx_v_v))) __PYX_ERR(0, 1197, __pyx_L22_error) + if (unlikely(PyDict_SetItem(__pyx_t_4, (PyObject*)__pyx_7genexpr__pyx_v_k, (PyObject*)__pyx_7genexpr__pyx_v_v))) __PYX_ERR(0, 1209, __pyx_L22_error) } __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_XDECREF(__pyx_7genexpr__pyx_v_k); __pyx_7genexpr__pyx_v_k = 0; @@ -16774,10 +16905,10 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_data_container_extract_ goto __pyx_L1_error; __pyx_L28_exit_scope:; } /* exit inner scope */ - if (__Pyx_PyObject_SetAttrStr(__pyx_v_metadata, __pyx_mstate_global->__pyx_n_u_column_names_to_labels, __pyx_t_4) < (0)) __PYX_ERR(0, 1197, __pyx_L1_error) + if (__Pyx_PyObject_SetAttrStr(__pyx_v_metadata, __pyx_mstate_global->__pyx_n_u_column_names_to_labels, __pyx_t_4) < (0)) __PYX_ERR(0, 1209, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - /* "pyreadstat/_readstat_parser.pyx":1198 + /* "pyreadstat/_readstat_parser.pyx":1210 * metadata.column_labels = data.col_labels * metadata.column_names_to_labels = {k:v for k,v in zip(data.col_names, data.col_labels)} * metadata.file_encoding = data.file_encoding # <<<<<<<<<<<<<< @@ -16786,10 +16917,10 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_data_container_extract_ */ __pyx_t_4 = __pyx_v_data->file_encoding; __Pyx_INCREF(__pyx_t_4); - if (__Pyx_PyObject_SetAttrStr(__pyx_v_metadata, __pyx_mstate_global->__pyx_n_u_file_encoding, __pyx_t_4) < (0)) __PYX_ERR(0, 1198, __pyx_L1_error) + if (__Pyx_PyObject_SetAttrStr(__pyx_v_metadata, __pyx_mstate_global->__pyx_n_u_file_encoding, __pyx_t_4) < (0)) __PYX_ERR(0, 1210, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - /* "pyreadstat/_readstat_parser.pyx":1199 + /* "pyreadstat/_readstat_parser.pyx":1211 * metadata.column_names_to_labels = {k:v for k,v in zip(data.col_names, data.col_labels)} * metadata.file_encoding = data.file_encoding * metadata.file_label = data.file_label # <<<<<<<<<<<<<< @@ -16798,56 +16929,65 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_data_container_extract_ */ __pyx_t_4 = __pyx_v_data->file_label; __Pyx_INCREF(__pyx_t_4); - if (__Pyx_PyObject_SetAttrStr(__pyx_v_metadata, __pyx_mstate_global->__pyx_n_u_file_label, __pyx_t_4) < (0)) __PYX_ERR(0, 1199, __pyx_L1_error) + if (__Pyx_PyObject_SetAttrStr(__pyx_v_metadata, __pyx_mstate_global->__pyx_n_u_file_label, __pyx_t_4) < (0)) __PYX_ERR(0, 1211, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - /* "pyreadstat/_readstat_parser.pyx":1200 + /* "pyreadstat/_readstat_parser.pyx":1212 * metadata.file_encoding = data.file_encoding * metadata.file_label = data.file_label * metadata.variable_value_labels = variable_value_labels # <<<<<<<<<<<<<< * metadata.value_labels = labels_raw * metadata.variable_to_label = label_to_var_name */ - if (__Pyx_PyObject_SetAttrStr(__pyx_v_metadata, __pyx_mstate_global->__pyx_n_u_variable_value_labels, __pyx_v_variable_value_labels) < (0)) __PYX_ERR(0, 1200, __pyx_L1_error) + if (__Pyx_PyObject_SetAttrStr(__pyx_v_metadata, __pyx_mstate_global->__pyx_n_u_variable_value_labels, __pyx_v_variable_value_labels) < (0)) __PYX_ERR(0, 1212, __pyx_L1_error) - /* "pyreadstat/_readstat_parser.pyx":1201 + /* "pyreadstat/_readstat_parser.pyx":1213 * metadata.file_label = data.file_label * metadata.variable_value_labels = variable_value_labels * metadata.value_labels = labels_raw # <<<<<<<<<<<<<< * metadata.variable_to_label = label_to_var_name * metadata.original_variable_types = original_types */ - if (__Pyx_PyObject_SetAttrStr(__pyx_v_metadata, __pyx_mstate_global->__pyx_n_u_value_labels, __pyx_v_labels_raw) < (0)) __PYX_ERR(0, 1201, __pyx_L1_error) + if (__Pyx_PyObject_SetAttrStr(__pyx_v_metadata, __pyx_mstate_global->__pyx_n_u_value_labels, __pyx_v_labels_raw) < (0)) __PYX_ERR(0, 1213, __pyx_L1_error) - /* "pyreadstat/_readstat_parser.pyx":1202 + /* "pyreadstat/_readstat_parser.pyx":1214 * metadata.variable_value_labels = variable_value_labels * metadata.value_labels = labels_raw * metadata.variable_to_label = label_to_var_name # <<<<<<<<<<<<<< * metadata.original_variable_types = original_types - * metadata.readstat_variable_types = readstat_types + * metadata.original_variable_informats = original_informats */ - if (__Pyx_PyObject_SetAttrStr(__pyx_v_metadata, __pyx_mstate_global->__pyx_n_u_variable_to_label, __pyx_v_label_to_var_name) < (0)) __PYX_ERR(0, 1202, __pyx_L1_error) + if (__Pyx_PyObject_SetAttrStr(__pyx_v_metadata, __pyx_mstate_global->__pyx_n_u_variable_to_label, __pyx_v_label_to_var_name) < (0)) __PYX_ERR(0, 1214, __pyx_L1_error) - /* "pyreadstat/_readstat_parser.pyx":1203 + /* "pyreadstat/_readstat_parser.pyx":1215 * metadata.value_labels = labels_raw * metadata.variable_to_label = label_to_var_name * metadata.original_variable_types = original_types # <<<<<<<<<<<<<< + * metadata.original_variable_informats = original_informats * metadata.readstat_variable_types = readstat_types - * metadata.table_name = data.table_name */ - if (__Pyx_PyObject_SetAttrStr(__pyx_v_metadata, __pyx_mstate_global->__pyx_n_u_original_variable_types, __pyx_v_original_types) < (0)) __PYX_ERR(0, 1203, __pyx_L1_error) + if (__Pyx_PyObject_SetAttrStr(__pyx_v_metadata, __pyx_mstate_global->__pyx_n_u_original_variable_types, __pyx_v_original_types) < (0)) __PYX_ERR(0, 1215, __pyx_L1_error) - /* "pyreadstat/_readstat_parser.pyx":1204 + /* "pyreadstat/_readstat_parser.pyx":1216 * metadata.variable_to_label = label_to_var_name * metadata.original_variable_types = original_types + * metadata.original_variable_informats = original_informats # <<<<<<<<<<<<<< + * metadata.readstat_variable_types = readstat_types + * metadata.table_name = data.table_name +*/ + if (__Pyx_PyObject_SetAttrStr(__pyx_v_metadata, __pyx_mstate_global->__pyx_n_u_original_variable_informats, __pyx_v_original_informats) < (0)) __PYX_ERR(0, 1216, __pyx_L1_error) + + /* "pyreadstat/_readstat_parser.pyx":1217 + * metadata.original_variable_types = original_types + * metadata.original_variable_informats = original_informats * metadata.readstat_variable_types = readstat_types # <<<<<<<<<<<<<< * metadata.table_name = data.table_name * metadata.missing_ranges = data.missing_ranges */ - if (__Pyx_PyObject_SetAttrStr(__pyx_v_metadata, __pyx_mstate_global->__pyx_n_u_readstat_variable_types, __pyx_v_readstat_types) < (0)) __PYX_ERR(0, 1204, __pyx_L1_error) + if (__Pyx_PyObject_SetAttrStr(__pyx_v_metadata, __pyx_mstate_global->__pyx_n_u_readstat_variable_types, __pyx_v_readstat_types) < (0)) __PYX_ERR(0, 1217, __pyx_L1_error) - /* "pyreadstat/_readstat_parser.pyx":1205 - * metadata.original_variable_types = original_types + /* "pyreadstat/_readstat_parser.pyx":1218 + * metadata.original_variable_informats = original_informats * metadata.readstat_variable_types = readstat_types * metadata.table_name = data.table_name # <<<<<<<<<<<<<< * metadata.missing_ranges = data.missing_ranges @@ -16855,10 +16995,10 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_data_container_extract_ */ __pyx_t_4 = __pyx_v_data->table_name; __Pyx_INCREF(__pyx_t_4); - if (__Pyx_PyObject_SetAttrStr(__pyx_v_metadata, __pyx_mstate_global->__pyx_n_u_table_name, __pyx_t_4) < (0)) __PYX_ERR(0, 1205, __pyx_L1_error) + if (__Pyx_PyObject_SetAttrStr(__pyx_v_metadata, __pyx_mstate_global->__pyx_n_u_table_name, __pyx_t_4) < (0)) __PYX_ERR(0, 1218, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - /* "pyreadstat/_readstat_parser.pyx":1206 + /* "pyreadstat/_readstat_parser.pyx":1219 * metadata.readstat_variable_types = readstat_types * metadata.table_name = data.table_name * metadata.missing_ranges = data.missing_ranges # <<<<<<<<<<<<<< @@ -16867,10 +17007,10 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_data_container_extract_ */ __pyx_t_4 = __pyx_v_data->missing_ranges; __Pyx_INCREF(__pyx_t_4); - if (__Pyx_PyObject_SetAttrStr(__pyx_v_metadata, __pyx_mstate_global->__pyx_n_u_missing_ranges, __pyx_t_4) < (0)) __PYX_ERR(0, 1206, __pyx_L1_error) + if (__Pyx_PyObject_SetAttrStr(__pyx_v_metadata, __pyx_mstate_global->__pyx_n_u_missing_ranges, __pyx_t_4) < (0)) __PYX_ERR(0, 1219, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - /* "pyreadstat/_readstat_parser.pyx":1207 + /* "pyreadstat/_readstat_parser.pyx":1220 * metadata.table_name = data.table_name * metadata.missing_ranges = data.missing_ranges * metadata.variable_storage_width = data.variable_storage_width # <<<<<<<<<<<<<< @@ -16879,10 +17019,10 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_data_container_extract_ */ __pyx_t_4 = __pyx_v_data->variable_storage_width; __Pyx_INCREF(__pyx_t_4); - if (__Pyx_PyObject_SetAttrStr(__pyx_v_metadata, __pyx_mstate_global->__pyx_n_u_variable_storage_width, __pyx_t_4) < (0)) __PYX_ERR(0, 1207, __pyx_L1_error) + if (__Pyx_PyObject_SetAttrStr(__pyx_v_metadata, __pyx_mstate_global->__pyx_n_u_variable_storage_width, __pyx_t_4) < (0)) __PYX_ERR(0, 1220, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - /* "pyreadstat/_readstat_parser.pyx":1208 + /* "pyreadstat/_readstat_parser.pyx":1221 * metadata.missing_ranges = data.missing_ranges * metadata.variable_storage_width = data.variable_storage_width * metadata.variable_display_width = data.variable_display_width # <<<<<<<<<<<<<< @@ -16891,10 +17031,10 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_data_container_extract_ */ __pyx_t_4 = __pyx_v_data->variable_display_width; __Pyx_INCREF(__pyx_t_4); - if (__Pyx_PyObject_SetAttrStr(__pyx_v_metadata, __pyx_mstate_global->__pyx_n_u_variable_display_width, __pyx_t_4) < (0)) __PYX_ERR(0, 1208, __pyx_L1_error) + if (__Pyx_PyObject_SetAttrStr(__pyx_v_metadata, __pyx_mstate_global->__pyx_n_u_variable_display_width, __pyx_t_4) < (0)) __PYX_ERR(0, 1221, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - /* "pyreadstat/_readstat_parser.pyx":1209 + /* "pyreadstat/_readstat_parser.pyx":1222 * metadata.variable_storage_width = data.variable_storage_width * metadata.variable_display_width = data.variable_display_width * metadata.variable_alignment = data.variable_alignment # <<<<<<<<<<<<<< @@ -16903,10 +17043,10 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_data_container_extract_ */ __pyx_t_4 = __pyx_v_data->variable_alignment; __Pyx_INCREF(__pyx_t_4); - if (__Pyx_PyObject_SetAttrStr(__pyx_v_metadata, __pyx_mstate_global->__pyx_n_u_variable_alignment, __pyx_t_4) < (0)) __PYX_ERR(0, 1209, __pyx_L1_error) + if (__Pyx_PyObject_SetAttrStr(__pyx_v_metadata, __pyx_mstate_global->__pyx_n_u_variable_alignment, __pyx_t_4) < (0)) __PYX_ERR(0, 1222, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - /* "pyreadstat/_readstat_parser.pyx":1210 + /* "pyreadstat/_readstat_parser.pyx":1223 * metadata.variable_display_width = data.variable_display_width * metadata.variable_alignment = data.variable_alignment * metadata.variable_measure = data.variable_measure # <<<<<<<<<<<<<< @@ -16915,24 +17055,24 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_data_container_extract_ */ __pyx_t_4 = __pyx_v_data->variable_measure; __Pyx_INCREF(__pyx_t_4); - if (__Pyx_PyObject_SetAttrStr(__pyx_v_metadata, __pyx_mstate_global->__pyx_n_u_variable_measure, __pyx_t_4) < (0)) __PYX_ERR(0, 1210, __pyx_L1_error) + if (__Pyx_PyObject_SetAttrStr(__pyx_v_metadata, __pyx_mstate_global->__pyx_n_u_variable_measure, __pyx_t_4) < (0)) __PYX_ERR(0, 1223, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - /* "pyreadstat/_readstat_parser.pyx":1211 + /* "pyreadstat/_readstat_parser.pyx":1224 * metadata.variable_alignment = data.variable_alignment * metadata.variable_measure = data.variable_measure * metadata.creation_time = datetime.datetime.fromtimestamp(data.ctime) # <<<<<<<<<<<<<< * metadata.modification_time = datetime.datetime.fromtimestamp(data.mtime) * */ - __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_datetime); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1211, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_datetime); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1224, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_datetime); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1211, __pyx_L1_error) + __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_datetime); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1224, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_8 = __pyx_t_9; __Pyx_INCREF(__pyx_t_8); - __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_data->ctime); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1211, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_data->ctime); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1224, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_5 = 0; { @@ -16941,27 +17081,27 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_data_container_extract_ __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1211, __pyx_L1_error) + if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1224, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); } - if (__Pyx_PyObject_SetAttrStr(__pyx_v_metadata, __pyx_mstate_global->__pyx_n_u_creation_time, __pyx_t_4) < (0)) __PYX_ERR(0, 1211, __pyx_L1_error) + if (__Pyx_PyObject_SetAttrStr(__pyx_v_metadata, __pyx_mstate_global->__pyx_n_u_creation_time, __pyx_t_4) < (0)) __PYX_ERR(0, 1224, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - /* "pyreadstat/_readstat_parser.pyx":1212 + /* "pyreadstat/_readstat_parser.pyx":1225 * metadata.variable_measure = data.variable_measure * metadata.creation_time = datetime.datetime.fromtimestamp(data.ctime) * metadata.modification_time = datetime.datetime.fromtimestamp(data.mtime) # <<<<<<<<<<<<<< * * return metadata */ - __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_datetime); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1212, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_datetime); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1225, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_datetime); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1212, __pyx_L1_error) + __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_datetime); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1225, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_9 = __pyx_t_8; __Pyx_INCREF(__pyx_t_9); - __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_data->mtime); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1212, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_data->mtime); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1225, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_5 = 0; { @@ -16970,13 +17110,13 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_data_container_extract_ __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1212, __pyx_L1_error) + if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1225, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); } - if (__Pyx_PyObject_SetAttrStr(__pyx_v_metadata, __pyx_mstate_global->__pyx_n_u_modification_time, __pyx_t_4) < (0)) __PYX_ERR(0, 1212, __pyx_L1_error) + if (__Pyx_PyObject_SetAttrStr(__pyx_v_metadata, __pyx_mstate_global->__pyx_n_u_modification_time, __pyx_t_4) < (0)) __PYX_ERR(0, 1225, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - /* "pyreadstat/_readstat_parser.pyx":1214 + /* "pyreadstat/_readstat_parser.pyx":1227 * metadata.modification_time = datetime.datetime.fromtimestamp(data.mtime) * * return metadata # <<<<<<<<<<<<<< @@ -16988,7 +17128,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_data_container_extract_ __pyx_r = __pyx_v_metadata; goto __pyx_L0; - /* "pyreadstat/_readstat_parser.pyx":1124 + /* "pyreadstat/_readstat_parser.pyx":1133 * return data_frame * * cdef object data_container_extract_metadata(data_container data): # <<<<<<<<<<<<<< @@ -17011,14 +17151,16 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_data_container_extract_ __Pyx_XDECREF(__pyx_v_labels_raw); __Pyx_XDECREF(__pyx_v_var_name); __Pyx_XDECREF(__pyx_v_var_label); + __Pyx_XDECREF(__pyx_v_cur_type); + __Pyx_XDECREF(__pyx_v_cur_informat); __Pyx_XDECREF(__pyx_v_current_labels); __Pyx_XDECREF(__pyx_v_original_types); + __Pyx_XDECREF(__pyx_v_original_informats); __Pyx_XDECREF(__pyx_v_metadata); __Pyx_XDECREF(__pyx_v_variable_value_labels); __Pyx_XDECREF(__pyx_v_readstat_types); __Pyx_XDECREF(__pyx_v_indx); __Pyx_XDECREF(__pyx_v_cur_col); - __Pyx_XDECREF(__pyx_v_cur_type); __Pyx_XDECREF(__pyx_v_curset); __Pyx_XDECREF(__pyx_7genexpr__pyx_v_k); __Pyx_XDECREF(__pyx_7genexpr__pyx_v_v); @@ -17027,7 +17169,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_data_container_extract_ return __pyx_r; } -/* "pyreadstat/_readstat_parser.pyx":1217 +/* "pyreadstat/_readstat_parser.pyx":1230 * * * cdef object run_conversion(object filename_path, py_file_format file_format, py_file_extension file_extension, # <<<<<<<<<<<<<< @@ -17083,7 +17225,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject __Pyx_RefNannySetupContext("run_conversion", 0); __Pyx_INCREF(__pyx_v_output_format); - /* "pyreadstat/_readstat_parser.pyx":1236 + /* "pyreadstat/_readstat_parser.pyx":1249 * cdef object data_dict * cdef object data_frame * cdef object file_obj = None # <<<<<<<<<<<<<< @@ -17093,25 +17235,25 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject __Pyx_INCREF(Py_None); __pyx_v_file_obj = Py_None; - /* "pyreadstat/_readstat_parser.pyx":1239 + /* "pyreadstat/_readstat_parser.pyx":1252 * * # Check if filename_path is a file-like object * if hasattr(filename_path, 'read') and hasattr(filename_path, 'seek'): # <<<<<<<<<<<<<< * file_obj = filename_path * filename_bytes = b"" # Empty path - will be ignored when file_obj is used */ - __pyx_t_2 = __Pyx_HasAttr(__pyx_v_filename_path, __pyx_mstate_global->__pyx_n_u_read); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(0, 1239, __pyx_L1_error) + __pyx_t_2 = __Pyx_HasAttr(__pyx_v_filename_path, __pyx_mstate_global->__pyx_n_u_read); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(0, 1252, __pyx_L1_error) if (__pyx_t_2) { } else { __pyx_t_1 = __pyx_t_2; goto __pyx_L4_bool_binop_done; } - __pyx_t_2 = __Pyx_HasAttr(__pyx_v_filename_path, __pyx_mstate_global->__pyx_n_u_seek); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(0, 1239, __pyx_L1_error) + __pyx_t_2 = __Pyx_HasAttr(__pyx_v_filename_path, __pyx_mstate_global->__pyx_n_u_seek); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(0, 1252, __pyx_L1_error) __pyx_t_1 = __pyx_t_2; __pyx_L4_bool_binop_done:; if (__pyx_t_1) { - /* "pyreadstat/_readstat_parser.pyx":1240 + /* "pyreadstat/_readstat_parser.pyx":1253 * # Check if filename_path is a file-like object * if hasattr(filename_path, 'read') and hasattr(filename_path, 'seek'): * file_obj = filename_path # <<<<<<<<<<<<<< @@ -17121,7 +17263,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject __Pyx_INCREF(__pyx_v_filename_path); __Pyx_DECREF_SET(__pyx_v_file_obj, __pyx_v_filename_path); - /* "pyreadstat/_readstat_parser.pyx":1241 + /* "pyreadstat/_readstat_parser.pyx":1254 * if hasattr(filename_path, 'read') and hasattr(filename_path, 'seek'): * file_obj = filename_path * filename_bytes = b"" # Empty path - will be ignored when file_obj is used # <<<<<<<<<<<<<< @@ -17131,7 +17273,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject __Pyx_INCREF(__pyx_mstate_global->__pyx_kp_b_); __pyx_v_filename_bytes = __pyx_mstate_global->__pyx_kp_b_; - /* "pyreadstat/_readstat_parser.pyx":1239 + /* "pyreadstat/_readstat_parser.pyx":1252 * * # Check if filename_path is a file-like object * if hasattr(filename_path, 'read') and hasattr(filename_path, 'seek'): # <<<<<<<<<<<<<< @@ -17141,20 +17283,20 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject goto __pyx_L3; } - /* "pyreadstat/_readstat_parser.pyx":1242 + /* "pyreadstat/_readstat_parser.pyx":1255 * file_obj = filename_path * filename_bytes = b"" # Empty path - will be ignored when file_obj is used * elif hasattr(os, 'fsencode'): # <<<<<<<<<<<<<< * try: * filename_bytes = os.fsencode(filename_path) */ - __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_os); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1242, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_os); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1255, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_1 = __Pyx_HasAttr(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_fsencode); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(0, 1242, __pyx_L1_error) + __pyx_t_1 = __Pyx_HasAttr(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_fsencode); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(0, 1255, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (__pyx_t_1) { - /* "pyreadstat/_readstat_parser.pyx":1243 + /* "pyreadstat/_readstat_parser.pyx":1256 * filename_bytes = b"" # Empty path - will be ignored when file_obj is used * elif hasattr(os, 'fsencode'): * try: # <<<<<<<<<<<<<< @@ -17170,7 +17312,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject __Pyx_XGOTREF(__pyx_t_6); /*try:*/ { - /* "pyreadstat/_readstat_parser.pyx":1244 + /* "pyreadstat/_readstat_parser.pyx":1257 * elif hasattr(os, 'fsencode'): * try: * filename_bytes = os.fsencode(filename_path) # <<<<<<<<<<<<<< @@ -17178,9 +17320,9 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject * warnings.warn("file path could not be encoded with %s which is set as your system encoding, trying to encode it as utf-8. Please set your system encoding correctly." % sys.getfilesystemencoding()) */ __pyx_t_7 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_os); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1244, __pyx_L6_error) + __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_os); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1257, __pyx_L6_error) __Pyx_GOTREF(__pyx_t_8); - __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_fsencode); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1244, __pyx_L6_error) + __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_fsencode); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1257, __pyx_L6_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_t_10 = 1; @@ -17200,14 +17342,14 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_9, __pyx_callargs+__pyx_t_10, (2-__pyx_t_10) | (__pyx_t_10*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1244, __pyx_L6_error) + if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1257, __pyx_L6_error) __Pyx_GOTREF(__pyx_t_3); } - if (!(likely(PyBytes_CheckExact(__pyx_t_3))||((__pyx_t_3) == Py_None) || __Pyx_RaiseUnexpectedTypeError("bytes", __pyx_t_3))) __PYX_ERR(0, 1244, __pyx_L6_error) + if (!(likely(PyBytes_CheckExact(__pyx_t_3))||((__pyx_t_3) == Py_None) || __Pyx_RaiseUnexpectedTypeError("bytes", __pyx_t_3))) __PYX_ERR(0, 1257, __pyx_L6_error) __pyx_v_filename_bytes = ((PyObject*)__pyx_t_3); __pyx_t_3 = 0; - /* "pyreadstat/_readstat_parser.pyx":1243 + /* "pyreadstat/_readstat_parser.pyx":1256 * filename_bytes = b"" # Empty path - will be ignored when file_obj is used * elif hasattr(os, 'fsencode'): * try: # <<<<<<<<<<<<<< @@ -17225,7 +17367,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - /* "pyreadstat/_readstat_parser.pyx":1245 + /* "pyreadstat/_readstat_parser.pyx":1258 * try: * filename_bytes = os.fsencode(filename_path) * except UnicodeError: # <<<<<<<<<<<<<< @@ -17235,12 +17377,12 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject __pyx_t_11 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(((PyTypeObject*)PyExc_UnicodeError)))); if (__pyx_t_11) { __Pyx_AddTraceback("pyreadstat._readstat_parser.run_conversion", __pyx_clineno, __pyx_lineno, __pyx_filename); - if (__Pyx_GetException(&__pyx_t_3, &__pyx_t_9, &__pyx_t_7) < 0) __PYX_ERR(0, 1245, __pyx_L8_except_error) + if (__Pyx_GetException(&__pyx_t_3, &__pyx_t_9, &__pyx_t_7) < 0) __PYX_ERR(0, 1258, __pyx_L8_except_error) __Pyx_XGOTREF(__pyx_t_3); __Pyx_XGOTREF(__pyx_t_9); __Pyx_XGOTREF(__pyx_t_7); - /* "pyreadstat/_readstat_parser.pyx":1246 + /* "pyreadstat/_readstat_parser.pyx":1259 * filename_bytes = os.fsencode(filename_path) * except UnicodeError: * warnings.warn("file path could not be encoded with %s which is set as your system encoding, trying to encode it as utf-8. Please set your system encoding correctly." % sys.getfilesystemencoding()) # <<<<<<<<<<<<<< @@ -17248,15 +17390,15 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject * else: */ __pyx_t_12 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_13, __pyx_mstate_global->__pyx_n_u_warnings); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1246, __pyx_L8_except_error) + __Pyx_GetModuleGlobalName(__pyx_t_13, __pyx_mstate_global->__pyx_n_u_warnings); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1259, __pyx_L8_except_error) __Pyx_GOTREF(__pyx_t_13); - __pyx_t_14 = __Pyx_PyObject_GetAttrStr(__pyx_t_13, __pyx_mstate_global->__pyx_n_u_warn); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 1246, __pyx_L8_except_error) + __pyx_t_14 = __Pyx_PyObject_GetAttrStr(__pyx_t_13, __pyx_mstate_global->__pyx_n_u_warn); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 1259, __pyx_L8_except_error) __Pyx_GOTREF(__pyx_t_14); __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; __pyx_t_15 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_16, __pyx_mstate_global->__pyx_n_u_sys); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 1246, __pyx_L8_except_error) + __Pyx_GetModuleGlobalName(__pyx_t_16, __pyx_mstate_global->__pyx_n_u_sys); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 1259, __pyx_L8_except_error) __Pyx_GOTREF(__pyx_t_16); - __pyx_t_17 = __Pyx_PyObject_GetAttrStr(__pyx_t_16, __pyx_mstate_global->__pyx_n_u_getfilesystemencoding); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 1246, __pyx_L8_except_error) + __pyx_t_17 = __Pyx_PyObject_GetAttrStr(__pyx_t_16, __pyx_mstate_global->__pyx_n_u_getfilesystemencoding); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 1259, __pyx_L8_except_error) __Pyx_GOTREF(__pyx_t_17); __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; __pyx_t_10 = 1; @@ -17276,10 +17418,10 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject __pyx_t_13 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_17, __pyx_callargs+__pyx_t_10, (1-__pyx_t_10) | (__pyx_t_10*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0; __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0; - if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1246, __pyx_L8_except_error) + if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1259, __pyx_L8_except_error) __Pyx_GOTREF(__pyx_t_13); } - __pyx_t_17 = __Pyx_PyUnicode_FormatSafe(__pyx_mstate_global->__pyx_kp_u_file_path_could_not_be_encoded_w, __pyx_t_13); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 1246, __pyx_L8_except_error) + __pyx_t_17 = __Pyx_PyUnicode_FormatSafe(__pyx_mstate_global->__pyx_kp_u_file_path_could_not_be_encoded_w, __pyx_t_13); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 1259, __pyx_L8_except_error) __Pyx_GOTREF(__pyx_t_17); __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; __pyx_t_10 = 1; @@ -17300,12 +17442,12 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0; __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; - if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1246, __pyx_L8_except_error) + if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1259, __pyx_L8_except_error) __Pyx_GOTREF(__pyx_t_8); } __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - /* "pyreadstat/_readstat_parser.pyx":1247 + /* "pyreadstat/_readstat_parser.pyx":1260 * except UnicodeError: * warnings.warn("file path could not be encoded with %s which is set as your system encoding, trying to encode it as utf-8. Please set your system encoding correctly." % sys.getfilesystemencoding()) * filename_bytes = os.fsdecode(filename_path).encode("utf-8", "surrogateescape") # <<<<<<<<<<<<<< @@ -17313,9 +17455,9 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject * if type(filename_path) == str: */ __pyx_t_14 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_17, __pyx_mstate_global->__pyx_n_u_os); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 1247, __pyx_L8_except_error) + __Pyx_GetModuleGlobalName(__pyx_t_17, __pyx_mstate_global->__pyx_n_u_os); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 1260, __pyx_L8_except_error) __Pyx_GOTREF(__pyx_t_17); - __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_t_17, __pyx_mstate_global->__pyx_n_u_fsdecode); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1247, __pyx_L8_except_error) + __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_t_17, __pyx_mstate_global->__pyx_n_u_fsdecode); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1260, __pyx_L8_except_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0; __pyx_t_10 = 1; @@ -17335,16 +17477,16 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject __pyx_t_8 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_12, __pyx_callargs+__pyx_t_10, (2-__pyx_t_10) | (__pyx_t_10*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0; __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1247, __pyx_L8_except_error) + if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1260, __pyx_L8_except_error) __Pyx_GOTREF(__pyx_t_8); } - __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_encode); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1247, __pyx_L8_except_error) + __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_encode); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1260, __pyx_L8_except_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_12, __pyx_mstate_global->__pyx_tuple[0], NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1247, __pyx_L8_except_error) + __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_12, __pyx_mstate_global->__pyx_tuple[0], NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1260, __pyx_L8_except_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - if (!(likely(PyBytes_CheckExact(__pyx_t_8))||((__pyx_t_8) == Py_None) || __Pyx_RaiseUnexpectedTypeError("bytes", __pyx_t_8))) __PYX_ERR(0, 1247, __pyx_L8_except_error) + if (!(likely(PyBytes_CheckExact(__pyx_t_8))||((__pyx_t_8) == Py_None) || __Pyx_RaiseUnexpectedTypeError("bytes", __pyx_t_8))) __PYX_ERR(0, 1260, __pyx_L8_except_error) __Pyx_XDECREF_SET(__pyx_v_filename_bytes, ((PyObject*)__pyx_t_8)); __pyx_t_8 = 0; __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; @@ -17354,7 +17496,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject } goto __pyx_L8_except_error; - /* "pyreadstat/_readstat_parser.pyx":1243 + /* "pyreadstat/_readstat_parser.pyx":1256 * filename_bytes = b"" # Empty path - will be ignored when file_obj is used * elif hasattr(os, 'fsencode'): * try: # <<<<<<<<<<<<<< @@ -17375,7 +17517,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject __pyx_L11_try_end:; } - /* "pyreadstat/_readstat_parser.pyx":1242 + /* "pyreadstat/_readstat_parser.pyx":1255 * file_obj = filename_path * filename_bytes = b"" # Empty path - will be ignored when file_obj is used * elif hasattr(os, 'fsencode'): # <<<<<<<<<<<<<< @@ -17385,7 +17527,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject goto __pyx_L3; } - /* "pyreadstat/_readstat_parser.pyx":1249 + /* "pyreadstat/_readstat_parser.pyx":1262 * filename_bytes = os.fsdecode(filename_path).encode("utf-8", "surrogateescape") * else: * if type(filename_path) == str: # <<<<<<<<<<<<<< @@ -17393,12 +17535,12 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject * elif type(filename_path) == bytes: */ /*else*/ { - __pyx_t_7 = PyObject_RichCompare(((PyObject *)Py_TYPE(__pyx_v_filename_path)), ((PyObject *)(&PyUnicode_Type)), Py_EQ); __Pyx_XGOTREF(__pyx_t_7); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1249, __pyx_L1_error) - __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 1249, __pyx_L1_error) + __pyx_t_7 = PyObject_RichCompare(((PyObject *)Py_TYPE(__pyx_v_filename_path)), ((PyObject *)(&PyUnicode_Type)), Py_EQ); __Pyx_XGOTREF(__pyx_t_7); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1262, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 1262, __pyx_L1_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; if (__pyx_t_1) { - /* "pyreadstat/_readstat_parser.pyx":1250 + /* "pyreadstat/_readstat_parser.pyx":1263 * else: * if type(filename_path) == str: * filename_bytes = filename_path.encode('utf-8') # <<<<<<<<<<<<<< @@ -17412,14 +17554,14 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_mstate_global->__pyx_kp_u_utf_8}; __pyx_t_7 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_encode, __pyx_callargs+__pyx_t_10, (2-__pyx_t_10) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1250, __pyx_L1_error) + if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1263, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); } - if (!(likely(PyBytes_CheckExact(__pyx_t_7))||((__pyx_t_7) == Py_None) || __Pyx_RaiseUnexpectedTypeError("bytes", __pyx_t_7))) __PYX_ERR(0, 1250, __pyx_L1_error) + if (!(likely(PyBytes_CheckExact(__pyx_t_7))||((__pyx_t_7) == Py_None) || __Pyx_RaiseUnexpectedTypeError("bytes", __pyx_t_7))) __PYX_ERR(0, 1263, __pyx_L1_error) __pyx_v_filename_bytes = ((PyObject*)__pyx_t_7); __pyx_t_7 = 0; - /* "pyreadstat/_readstat_parser.pyx":1249 + /* "pyreadstat/_readstat_parser.pyx":1262 * filename_bytes = os.fsdecode(filename_path).encode("utf-8", "surrogateescape") * else: * if type(filename_path) == str: # <<<<<<<<<<<<<< @@ -17429,19 +17571,19 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject goto __pyx_L14; } - /* "pyreadstat/_readstat_parser.pyx":1251 + /* "pyreadstat/_readstat_parser.pyx":1264 * if type(filename_path) == str: * filename_bytes = filename_path.encode('utf-8') * elif type(filename_path) == bytes: # <<<<<<<<<<<<<< * filename_bytes = filename_path * else: */ - __pyx_t_7 = PyObject_RichCompare(((PyObject *)Py_TYPE(__pyx_v_filename_path)), ((PyObject *)(&PyBytes_Type)), Py_EQ); __Pyx_XGOTREF(__pyx_t_7); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1251, __pyx_L1_error) - __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 1251, __pyx_L1_error) + __pyx_t_7 = PyObject_RichCompare(((PyObject *)Py_TYPE(__pyx_v_filename_path)), ((PyObject *)(&PyBytes_Type)), Py_EQ); __Pyx_XGOTREF(__pyx_t_7); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1264, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 1264, __pyx_L1_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; if (likely(__pyx_t_1)) { - /* "pyreadstat/_readstat_parser.pyx":1252 + /* "pyreadstat/_readstat_parser.pyx":1265 * filename_bytes = filename_path.encode('utf-8') * elif type(filename_path) == bytes: * filename_bytes = filename_path # <<<<<<<<<<<<<< @@ -17450,11 +17592,11 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject */ __pyx_t_7 = __pyx_v_filename_path; __Pyx_INCREF(__pyx_t_7); - if (!(likely(PyBytes_CheckExact(__pyx_t_7))||((__pyx_t_7) == Py_None) || __Pyx_RaiseUnexpectedTypeError("bytes", __pyx_t_7))) __PYX_ERR(0, 1252, __pyx_L1_error) + if (!(likely(PyBytes_CheckExact(__pyx_t_7))||((__pyx_t_7) == Py_None) || __Pyx_RaiseUnexpectedTypeError("bytes", __pyx_t_7))) __PYX_ERR(0, 1265, __pyx_L1_error) __pyx_v_filename_bytes = ((PyObject*)__pyx_t_7); __pyx_t_7 = 0; - /* "pyreadstat/_readstat_parser.pyx":1251 + /* "pyreadstat/_readstat_parser.pyx":1264 * if type(filename_path) == str: * filename_bytes = filename_path.encode('utf-8') * elif type(filename_path) == bytes: # <<<<<<<<<<<<<< @@ -17464,7 +17606,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject goto __pyx_L14; } - /* "pyreadstat/_readstat_parser.pyx":1254 + /* "pyreadstat/_readstat_parser.pyx":1267 * filename_bytes = filename_path * else: * raise PyreadstatError("path must be either str or bytes") # <<<<<<<<<<<<<< @@ -17473,7 +17615,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject */ /*else*/ { __pyx_t_9 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1254, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1267, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_10 = 1; #if CYTHON_UNPACK_METHODS @@ -17492,16 +17634,16 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject __pyx_t_7 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_3, __pyx_callargs+__pyx_t_10, (2-__pyx_t_10) | (__pyx_t_10*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1254, __pyx_L1_error) + if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1267, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); } __Pyx_Raise(__pyx_t_7, 0, 0, 0); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __PYX_ERR(0, 1254, __pyx_L1_error) + __PYX_ERR(0, 1267, __pyx_L1_error) } __pyx_L14:; - /* "pyreadstat/_readstat_parser.pyx":1255 + /* "pyreadstat/_readstat_parser.pyx":1268 * else: * raise PyreadstatError("path must be either str or bytes") * if type(filename_path) not in (str, bytes, unicode): # <<<<<<<<<<<<<< @@ -17510,24 +17652,24 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject */ __Pyx_INCREF(((PyObject *)Py_TYPE(__pyx_v_filename_path))); __pyx_t_7 = ((PyObject *)Py_TYPE(__pyx_v_filename_path)); - __pyx_t_3 = PyObject_RichCompare(((PyObject *)__pyx_t_7), ((PyObject *)(&PyUnicode_Type)), Py_NE); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1255, __pyx_L1_error) - __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 1255, __pyx_L1_error) + __pyx_t_3 = PyObject_RichCompare(((PyObject *)__pyx_t_7), ((PyObject *)(&PyUnicode_Type)), Py_NE); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1268, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 1268, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (__pyx_t_2) { } else { __pyx_t_1 = __pyx_t_2; goto __pyx_L16_bool_binop_done; } - __pyx_t_3 = PyObject_RichCompare(((PyObject *)__pyx_t_7), ((PyObject *)(&PyBytes_Type)), Py_NE); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1255, __pyx_L1_error) - __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 1255, __pyx_L1_error) + __pyx_t_3 = PyObject_RichCompare(((PyObject *)__pyx_t_7), ((PyObject *)(&PyBytes_Type)), Py_NE); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1268, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 1268, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (__pyx_t_2) { } else { __pyx_t_1 = __pyx_t_2; goto __pyx_L16_bool_binop_done; } - __pyx_t_3 = PyObject_RichCompare(((PyObject *)__pyx_t_7), ((PyObject *)(&PyUnicode_Type)), Py_NE); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1255, __pyx_L1_error) - __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 1255, __pyx_L1_error) + __pyx_t_3 = PyObject_RichCompare(((PyObject *)__pyx_t_7), ((PyObject *)(&PyUnicode_Type)), Py_NE); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1268, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 1268, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_1 = __pyx_t_2; __pyx_L16_bool_binop_done:; @@ -17535,7 +17677,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject __pyx_t_2 = __pyx_t_1; if (unlikely(__pyx_t_2)) { - /* "pyreadstat/_readstat_parser.pyx":1256 + /* "pyreadstat/_readstat_parser.pyx":1269 * raise PyreadstatError("path must be either str or bytes") * if type(filename_path) not in (str, bytes, unicode): * raise PyreadstatError("path must be str, bytes or unicode") # <<<<<<<<<<<<<< @@ -17543,7 +17685,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject * */ __pyx_t_3 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1256, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1269, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_10 = 1; #if CYTHON_UNPACK_METHODS @@ -17562,14 +17704,14 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject __pyx_t_7 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_9, __pyx_callargs+__pyx_t_10, (2-__pyx_t_10) | (__pyx_t_10*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1256, __pyx_L1_error) + if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1269, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); } __Pyx_Raise(__pyx_t_7, 0, 0, 0); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __PYX_ERR(0, 1256, __pyx_L1_error) + __PYX_ERR(0, 1269, __pyx_L1_error) - /* "pyreadstat/_readstat_parser.pyx":1255 + /* "pyreadstat/_readstat_parser.pyx":1268 * else: * raise PyreadstatError("path must be either str or bytes") * if type(filename_path) not in (str, bytes, unicode): # <<<<<<<<<<<<<< @@ -17578,7 +17720,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject */ } - /* "pyreadstat/_readstat_parser.pyx":1257 + /* "pyreadstat/_readstat_parser.pyx":1270 * if type(filename_path) not in (str, bytes, unicode): * raise PyreadstatError("path must be str, bytes or unicode") * filename_bytes = filename_path.encode('utf-8') # <<<<<<<<<<<<<< @@ -17592,16 +17734,16 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_mstate_global->__pyx_kp_u_utf_8}; __pyx_t_7 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_encode, __pyx_callargs+__pyx_t_10, (2-__pyx_t_10) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1257, __pyx_L1_error) + if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1270, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); } - if (!(likely(PyBytes_CheckExact(__pyx_t_7))||((__pyx_t_7) == Py_None) || __Pyx_RaiseUnexpectedTypeError("bytes", __pyx_t_7))) __PYX_ERR(0, 1257, __pyx_L1_error) + if (!(likely(PyBytes_CheckExact(__pyx_t_7))||((__pyx_t_7) == Py_None) || __Pyx_RaiseUnexpectedTypeError("bytes", __pyx_t_7))) __PYX_ERR(0, 1270, __pyx_L1_error) __Pyx_DECREF_SET(__pyx_v_filename_bytes, ((PyObject*)__pyx_t_7)); __pyx_t_7 = 0; } __pyx_L3:; - /* "pyreadstat/_readstat_parser.pyx":1260 + /* "pyreadstat/_readstat_parser.pyx":1273 * * # Only check file existence for path-based reads * if file_obj is None: # <<<<<<<<<<<<<< @@ -17611,16 +17753,16 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject __pyx_t_2 = (__pyx_v_file_obj == Py_None); if (__pyx_t_2) { - /* "pyreadstat/_readstat_parser.pyx":1261 + /* "pyreadstat/_readstat_parser.pyx":1274 * # Only check file existence for path-based reads * if file_obj is None: * filename_bytes = os.path.expanduser(filename_bytes) # <<<<<<<<<<<<<< * if not os.path.isfile(filename_bytes): * raise PyreadstatError("File {0} does not exist!".format(filename_path)) */ - __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_os); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1261, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_os); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1274, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_path); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1261, __pyx_L1_error) + __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_path); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1274, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_9 = __pyx_t_8; @@ -17631,23 +17773,23 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject __pyx_t_7 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_expanduser, __pyx_callargs+__pyx_t_10, (2-__pyx_t_10) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1261, __pyx_L1_error) + if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1274, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); } - if (!(likely(PyBytes_CheckExact(__pyx_t_7))||((__pyx_t_7) == Py_None) || __Pyx_RaiseUnexpectedTypeError("bytes", __pyx_t_7))) __PYX_ERR(0, 1261, __pyx_L1_error) + if (!(likely(PyBytes_CheckExact(__pyx_t_7))||((__pyx_t_7) == Py_None) || __Pyx_RaiseUnexpectedTypeError("bytes", __pyx_t_7))) __PYX_ERR(0, 1274, __pyx_L1_error) __Pyx_DECREF_SET(__pyx_v_filename_bytes, ((PyObject*)__pyx_t_7)); __pyx_t_7 = 0; - /* "pyreadstat/_readstat_parser.pyx":1262 + /* "pyreadstat/_readstat_parser.pyx":1275 * if file_obj is None: * filename_bytes = os.path.expanduser(filename_bytes) * if not os.path.isfile(filename_bytes): # <<<<<<<<<<<<<< * raise PyreadstatError("File {0} does not exist!".format(filename_path)) * */ - __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_os); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1262, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_os); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1275, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); - __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_path); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1262, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_path); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1275, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_8 = __pyx_t_3; @@ -17658,15 +17800,15 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject __pyx_t_7 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_isfile, __pyx_callargs+__pyx_t_10, (2-__pyx_t_10) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1262, __pyx_L1_error) + if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1275, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); } - __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 1262, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 1275, __pyx_L1_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_1 = (!__pyx_t_2); if (unlikely(__pyx_t_1)) { - /* "pyreadstat/_readstat_parser.pyx":1263 + /* "pyreadstat/_readstat_parser.pyx":1276 * filename_bytes = os.path.expanduser(filename_bytes) * if not os.path.isfile(filename_bytes): * raise PyreadstatError("File {0} does not exist!".format(filename_path)) # <<<<<<<<<<<<<< @@ -17674,7 +17816,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject * if output_format is None: */ __pyx_t_3 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1263, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1276, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_12 = __pyx_mstate_global->__pyx_kp_u_File_0_does_not_exist; __Pyx_INCREF(__pyx_t_12); @@ -17683,7 +17825,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject PyObject *__pyx_callargs[2] = {__pyx_t_12, __pyx_v_filename_path}; __pyx_t_9 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_format, __pyx_callargs+__pyx_t_10, (2-__pyx_t_10) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; - if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1263, __pyx_L1_error) + if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1276, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); } __pyx_t_10 = 1; @@ -17704,14 +17846,14 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1263, __pyx_L1_error) + if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1276, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); } __Pyx_Raise(__pyx_t_7, 0, 0, 0); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __PYX_ERR(0, 1263, __pyx_L1_error) + __PYX_ERR(0, 1276, __pyx_L1_error) - /* "pyreadstat/_readstat_parser.pyx":1262 + /* "pyreadstat/_readstat_parser.pyx":1275 * if file_obj is None: * filename_bytes = os.path.expanduser(filename_bytes) * if not os.path.isfile(filename_bytes): # <<<<<<<<<<<<<< @@ -17720,7 +17862,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject */ } - /* "pyreadstat/_readstat_parser.pyx":1260 + /* "pyreadstat/_readstat_parser.pyx":1273 * * # Only check file existence for path-based reads * if file_obj is None: # <<<<<<<<<<<<<< @@ -17729,7 +17871,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject */ } - /* "pyreadstat/_readstat_parser.pyx":1265 + /* "pyreadstat/_readstat_parser.pyx":1278 * raise PyreadstatError("File {0} does not exist!".format(filename_path)) * * if output_format is None: # <<<<<<<<<<<<<< @@ -17739,7 +17881,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject __pyx_t_1 = (__pyx_v_output_format == ((PyObject*)Py_None)); if (__pyx_t_1) { - /* "pyreadstat/_readstat_parser.pyx":1266 + /* "pyreadstat/_readstat_parser.pyx":1279 * * if output_format is None: * output_format = 'pandas' # <<<<<<<<<<<<<< @@ -17749,7 +17891,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject __Pyx_INCREF(__pyx_mstate_global->__pyx_n_u_pandas); __Pyx_DECREF_SET(__pyx_v_output_format, __pyx_mstate_global->__pyx_n_u_pandas); - /* "pyreadstat/_readstat_parser.pyx":1265 + /* "pyreadstat/_readstat_parser.pyx":1278 * raise PyreadstatError("File {0} does not exist!".format(filename_path)) * * if output_format is None: # <<<<<<<<<<<<<< @@ -17758,32 +17900,32 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject */ } - /* "pyreadstat/_readstat_parser.pyx":1267 + /* "pyreadstat/_readstat_parser.pyx":1280 * if output_format is None: * output_format = 'pandas' * allowed_formats = {'pandas', 'dict', 'polars'} # <<<<<<<<<<<<<< * if output_format not in allowed_formats: * raise PyreadstatError("output format must be one of {allowed_formats}, '{output_format}' was given".format(allowed_formats=allowed_formats, output_format=output_format)) */ - __pyx_t_7 = PySet_New(0); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1267, __pyx_L1_error) + __pyx_t_7 = PySet_New(0); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1280, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); - if (PySet_Add(__pyx_t_7, __pyx_mstate_global->__pyx_n_u_pandas) < (0)) __PYX_ERR(0, 1267, __pyx_L1_error) - if (PySet_Add(__pyx_t_7, __pyx_mstate_global->__pyx_n_u_dict) < (0)) __PYX_ERR(0, 1267, __pyx_L1_error) - if (PySet_Add(__pyx_t_7, __pyx_mstate_global->__pyx_n_u_polars) < (0)) __PYX_ERR(0, 1267, __pyx_L1_error) + if (PySet_Add(__pyx_t_7, __pyx_mstate_global->__pyx_n_u_pandas) < (0)) __PYX_ERR(0, 1280, __pyx_L1_error) + if (PySet_Add(__pyx_t_7, __pyx_mstate_global->__pyx_n_u_dict) < (0)) __PYX_ERR(0, 1280, __pyx_L1_error) + if (PySet_Add(__pyx_t_7, __pyx_mstate_global->__pyx_n_u_polars) < (0)) __PYX_ERR(0, 1280, __pyx_L1_error) __pyx_v_allowed_formats = ((PyObject*)__pyx_t_7); __pyx_t_7 = 0; - /* "pyreadstat/_readstat_parser.pyx":1268 + /* "pyreadstat/_readstat_parser.pyx":1281 * output_format = 'pandas' * allowed_formats = {'pandas', 'dict', 'polars'} * if output_format not in allowed_formats: # <<<<<<<<<<<<<< * raise PyreadstatError("output format must be one of {allowed_formats}, '{output_format}' was given".format(allowed_formats=allowed_formats, output_format=output_format)) * if output_format == "pandas": */ - __pyx_t_1 = (__Pyx_PySet_ContainsTF(__pyx_v_output_format, __pyx_v_allowed_formats, Py_NE)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 1268, __pyx_L1_error) + __pyx_t_1 = (__Pyx_PySet_ContainsTF(__pyx_v_output_format, __pyx_v_allowed_formats, Py_NE)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 1281, __pyx_L1_error) if (unlikely(__pyx_t_1)) { - /* "pyreadstat/_readstat_parser.pyx":1269 + /* "pyreadstat/_readstat_parser.pyx":1282 * allowed_formats = {'pandas', 'dict', 'polars'} * if output_format not in allowed_formats: * raise PyreadstatError("output format must be one of {allowed_formats}, '{output_format}' was given".format(allowed_formats=allowed_formats, output_format=output_format)) # <<<<<<<<<<<<<< @@ -17791,21 +17933,21 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject * try: */ __pyx_t_8 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1269, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1282, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_12 = __pyx_mstate_global->__pyx_kp_u_output_format_must_be_one_of_all; __Pyx_INCREF(__pyx_t_12); __pyx_t_10 = 0; { PyObject *__pyx_callargs[2 + ((CYTHON_VECTORCALL) ? 2 : 0)] = {__pyx_t_12, NULL}; - __pyx_t_14 = __Pyx_MakeVectorcallBuilderKwds(2); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 1269, __pyx_L1_error) + __pyx_t_14 = __Pyx_MakeVectorcallBuilderKwds(2); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 1282, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); - if (__Pyx_VectorcallBuilder_AddArg(__pyx_mstate_global->__pyx_n_u_allowed_formats, __pyx_v_allowed_formats, __pyx_t_14, __pyx_callargs+1, 0) < (0)) __PYX_ERR(0, 1269, __pyx_L1_error) - if (__Pyx_VectorcallBuilder_AddArg(__pyx_mstate_global->__pyx_n_u_output_format, __pyx_v_output_format, __pyx_t_14, __pyx_callargs+1, 1) < (0)) __PYX_ERR(0, 1269, __pyx_L1_error) + if (__Pyx_VectorcallBuilder_AddArg(__pyx_mstate_global->__pyx_n_u_allowed_formats, __pyx_v_allowed_formats, __pyx_t_14, __pyx_callargs+1, 0) < (0)) __PYX_ERR(0, 1282, __pyx_L1_error) + if (__Pyx_VectorcallBuilder_AddArg(__pyx_mstate_global->__pyx_n_u_output_format, __pyx_v_output_format, __pyx_t_14, __pyx_callargs+1, 1) < (0)) __PYX_ERR(0, 1282, __pyx_L1_error) __pyx_t_3 = __Pyx_Object_VectorcallMethod_CallFromBuilder((PyObject*)__pyx_mstate_global->__pyx_n_u_format, __pyx_callargs+__pyx_t_10, (1-__pyx_t_10) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET), __pyx_t_14); __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; - if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1269, __pyx_L1_error) + if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1282, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); } __pyx_t_10 = 1; @@ -17826,14 +17968,14 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1269, __pyx_L1_error) + if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1282, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); } __Pyx_Raise(__pyx_t_7, 0, 0, 0); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __PYX_ERR(0, 1269, __pyx_L1_error) + __PYX_ERR(0, 1282, __pyx_L1_error) - /* "pyreadstat/_readstat_parser.pyx":1268 + /* "pyreadstat/_readstat_parser.pyx":1281 * output_format = 'pandas' * allowed_formats = {'pandas', 'dict', 'polars'} * if output_format not in allowed_formats: # <<<<<<<<<<<<<< @@ -17842,17 +17984,17 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject */ } - /* "pyreadstat/_readstat_parser.pyx":1270 + /* "pyreadstat/_readstat_parser.pyx":1283 * if output_format not in allowed_formats: * raise PyreadstatError("output format must be one of {allowed_formats}, '{output_format}' was given".format(allowed_formats=allowed_formats, output_format=output_format)) * if output_format == "pandas": # <<<<<<<<<<<<<< * try: * import pandas */ - __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_output_format, __pyx_mstate_global->__pyx_n_u_pandas, Py_EQ)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 1270, __pyx_L1_error) + __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_output_format, __pyx_mstate_global->__pyx_n_u_pandas, Py_EQ)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 1283, __pyx_L1_error) if (__pyx_t_1) { - /* "pyreadstat/_readstat_parser.pyx":1271 + /* "pyreadstat/_readstat_parser.pyx":1284 * raise PyreadstatError("output format must be one of {allowed_formats}, '{output_format}' was given".format(allowed_formats=allowed_formats, output_format=output_format)) * if output_format == "pandas": * try: # <<<<<<<<<<<<<< @@ -17868,20 +18010,20 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject __Pyx_XGOTREF(__pyx_t_4); /*try:*/ { - /* "pyreadstat/_readstat_parser.pyx":1272 + /* "pyreadstat/_readstat_parser.pyx":1285 * if output_format == "pandas": * try: * import pandas # <<<<<<<<<<<<<< * except: * raise PyreadstatError("You requested pandas as output_format but cannot import pandas") */ - __pyx_t_18 = __Pyx_Import(__pyx_mstate_global->__pyx_n_u_pandas, 0, 0, __pyx_mstate_global->__pyx_kp_u_pyreadstat_pandas, -1); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 1272, __pyx_L24_error) + __pyx_t_18 = __Pyx_Import(__pyx_mstate_global->__pyx_n_u_pandas, 0, 0, __pyx_mstate_global->__pyx_kp_u_pyreadstat_pandas, -1); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 1285, __pyx_L24_error) __pyx_t_7 = __pyx_t_18; __Pyx_GOTREF(__pyx_t_7); __pyx_v_pandas = __pyx_t_7; __pyx_t_7 = 0; - /* "pyreadstat/_readstat_parser.pyx":1271 + /* "pyreadstat/_readstat_parser.pyx":1284 * raise PyreadstatError("output format must be one of {allowed_formats}, '{output_format}' was given".format(allowed_formats=allowed_formats, output_format=output_format)) * if output_format == "pandas": * try: # <<<<<<<<<<<<<< @@ -17905,7 +18047,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - /* "pyreadstat/_readstat_parser.pyx":1273 + /* "pyreadstat/_readstat_parser.pyx":1286 * try: * import pandas * except: # <<<<<<<<<<<<<< @@ -17914,12 +18056,12 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject */ /*except:*/ { __Pyx_AddTraceback("pyreadstat._readstat_parser.run_conversion", __pyx_clineno, __pyx_lineno, __pyx_filename); - if (__Pyx_GetException(&__pyx_t_7, &__pyx_t_9, &__pyx_t_3) < 0) __PYX_ERR(0, 1273, __pyx_L26_except_error) + if (__Pyx_GetException(&__pyx_t_7, &__pyx_t_9, &__pyx_t_3) < 0) __PYX_ERR(0, 1286, __pyx_L26_except_error) __Pyx_XGOTREF(__pyx_t_7); __Pyx_XGOTREF(__pyx_t_9); __Pyx_XGOTREF(__pyx_t_3); - /* "pyreadstat/_readstat_parser.pyx":1274 + /* "pyreadstat/_readstat_parser.pyx":1287 * import pandas * except: * raise PyreadstatError("You requested pandas as output_format but cannot import pandas") # <<<<<<<<<<<<<< @@ -17927,7 +18069,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject * try: */ __pyx_t_14 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_12, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1274, __pyx_L26_except_error) + __Pyx_GetModuleGlobalName(__pyx_t_12, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1287, __pyx_L26_except_error) __Pyx_GOTREF(__pyx_t_12); __pyx_t_10 = 1; #if CYTHON_UNPACK_METHODS @@ -17946,15 +18088,15 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject __pyx_t_8 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_12, __pyx_callargs+__pyx_t_10, (2-__pyx_t_10) | (__pyx_t_10*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0; __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1274, __pyx_L26_except_error) + if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1287, __pyx_L26_except_error) __Pyx_GOTREF(__pyx_t_8); } __Pyx_Raise(__pyx_t_8, 0, 0, 0); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - __PYX_ERR(0, 1274, __pyx_L26_except_error) + __PYX_ERR(0, 1287, __pyx_L26_except_error) } - /* "pyreadstat/_readstat_parser.pyx":1271 + /* "pyreadstat/_readstat_parser.pyx":1284 * raise PyreadstatError("output format must be one of {allowed_formats}, '{output_format}' was given".format(allowed_formats=allowed_formats, output_format=output_format)) * if output_format == "pandas": * try: # <<<<<<<<<<<<<< @@ -17970,7 +18112,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject __pyx_L29_try_end:; } - /* "pyreadstat/_readstat_parser.pyx":1270 + /* "pyreadstat/_readstat_parser.pyx":1283 * if output_format not in allowed_formats: * raise PyreadstatError("output format must be one of {allowed_formats}, '{output_format}' was given".format(allowed_formats=allowed_formats, output_format=output_format)) * if output_format == "pandas": # <<<<<<<<<<<<<< @@ -17979,17 +18121,17 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject */ } - /* "pyreadstat/_readstat_parser.pyx":1275 + /* "pyreadstat/_readstat_parser.pyx":1288 * except: * raise PyreadstatError("You requested pandas as output_format but cannot import pandas") * if output_format == "polars": # <<<<<<<<<<<<<< * try: * import polars */ - __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_output_format, __pyx_mstate_global->__pyx_n_u_polars, Py_EQ)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 1275, __pyx_L1_error) + __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_output_format, __pyx_mstate_global->__pyx_n_u_polars, Py_EQ)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 1288, __pyx_L1_error) if (__pyx_t_1) { - /* "pyreadstat/_readstat_parser.pyx":1276 + /* "pyreadstat/_readstat_parser.pyx":1289 * raise PyreadstatError("You requested pandas as output_format but cannot import pandas") * if output_format == "polars": * try: # <<<<<<<<<<<<<< @@ -18005,20 +18147,20 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject __Pyx_XGOTREF(__pyx_t_6); /*try:*/ { - /* "pyreadstat/_readstat_parser.pyx":1277 + /* "pyreadstat/_readstat_parser.pyx":1290 * if output_format == "polars": * try: * import polars # <<<<<<<<<<<<<< * except: * raise PyreadstatError("You requested polars as output_format but cannot import polars") */ - __pyx_t_18 = __Pyx_Import(__pyx_mstate_global->__pyx_n_u_polars, 0, 0, __pyx_mstate_global->__pyx_kp_u_pyreadstat_polars, -1); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 1277, __pyx_L33_error) + __pyx_t_18 = __Pyx_Import(__pyx_mstate_global->__pyx_n_u_polars, 0, 0, __pyx_mstate_global->__pyx_kp_u_pyreadstat_polars, -1); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 1290, __pyx_L33_error) __pyx_t_3 = __pyx_t_18; __Pyx_GOTREF(__pyx_t_3); __pyx_v_polars = __pyx_t_3; __pyx_t_3 = 0; - /* "pyreadstat/_readstat_parser.pyx":1276 + /* "pyreadstat/_readstat_parser.pyx":1289 * raise PyreadstatError("You requested pandas as output_format but cannot import pandas") * if output_format == "polars": * try: # <<<<<<<<<<<<<< @@ -18042,7 +18184,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - /* "pyreadstat/_readstat_parser.pyx":1278 + /* "pyreadstat/_readstat_parser.pyx":1291 * try: * import polars * except: # <<<<<<<<<<<<<< @@ -18051,12 +18193,12 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject */ /*except:*/ { __Pyx_AddTraceback("pyreadstat._readstat_parser.run_conversion", __pyx_clineno, __pyx_lineno, __pyx_filename); - if (__Pyx_GetException(&__pyx_t_3, &__pyx_t_9, &__pyx_t_7) < 0) __PYX_ERR(0, 1278, __pyx_L35_except_error) + if (__Pyx_GetException(&__pyx_t_3, &__pyx_t_9, &__pyx_t_7) < 0) __PYX_ERR(0, 1291, __pyx_L35_except_error) __Pyx_XGOTREF(__pyx_t_3); __Pyx_XGOTREF(__pyx_t_9); __Pyx_XGOTREF(__pyx_t_7); - /* "pyreadstat/_readstat_parser.pyx":1279 + /* "pyreadstat/_readstat_parser.pyx":1292 * import polars * except: * raise PyreadstatError("You requested polars as output_format but cannot import polars") # <<<<<<<<<<<<<< @@ -18064,7 +18206,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject * */ __pyx_t_12 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_14, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 1279, __pyx_L35_except_error) + __Pyx_GetModuleGlobalName(__pyx_t_14, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 1292, __pyx_L35_except_error) __Pyx_GOTREF(__pyx_t_14); __pyx_t_10 = 1; #if CYTHON_UNPACK_METHODS @@ -18083,15 +18225,15 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject __pyx_t_8 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_14, __pyx_callargs+__pyx_t_10, (2-__pyx_t_10) | (__pyx_t_10*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; - if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1279, __pyx_L35_except_error) + if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1292, __pyx_L35_except_error) __Pyx_GOTREF(__pyx_t_8); } __Pyx_Raise(__pyx_t_8, 0, 0, 0); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - __PYX_ERR(0, 1279, __pyx_L35_except_error) + __PYX_ERR(0, 1292, __pyx_L35_except_error) } - /* "pyreadstat/_readstat_parser.pyx":1276 + /* "pyreadstat/_readstat_parser.pyx":1289 * raise PyreadstatError("You requested pandas as output_format but cannot import pandas") * if output_format == "polars": * try: # <<<<<<<<<<<<<< @@ -18107,7 +18249,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject __pyx_L38_try_end:; } - /* "pyreadstat/_readstat_parser.pyx":1275 + /* "pyreadstat/_readstat_parser.pyx":1288 * except: * raise PyreadstatError("You requested pandas as output_format but cannot import pandas") * if output_format == "polars": # <<<<<<<<<<<<<< @@ -18116,7 +18258,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject */ } - /* "pyreadstat/_readstat_parser.pyx":1282 + /* "pyreadstat/_readstat_parser.pyx":1295 * * * if extra_date_formats is not None: # <<<<<<<<<<<<<< @@ -18126,7 +18268,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject __pyx_t_1 = (__pyx_v_extra_date_formats != ((PyObject*)Py_None)); if (__pyx_t_1) { - /* "pyreadstat/_readstat_parser.pyx":1283 + /* "pyreadstat/_readstat_parser.pyx":1296 * * if extra_date_formats is not None: * if file_format == FILE_FORMAT_SAS: # <<<<<<<<<<<<<< @@ -18136,7 +18278,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject switch (__pyx_v_file_format) { case __pyx_e_10pyreadstat_16_readstat_parser_FILE_FORMAT_SAS: - /* "pyreadstat/_readstat_parser.pyx":1284 + /* "pyreadstat/_readstat_parser.pyx":1297 * if extra_date_formats is not None: * if file_format == FILE_FORMAT_SAS: * sas_date_formats.extend([format_regex.match(edf).group(1) for edf in extra_date_formats if format_regex.match(edf)]) # <<<<<<<<<<<<<< @@ -18145,13 +18287,13 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject */ if (unlikely(__pyx_v_10pyreadstat_16_readstat_parser_sas_date_formats == Py_None)) { PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "extend"); - __PYX_ERR(0, 1284, __pyx_L1_error) + __PYX_ERR(0, 1297, __pyx_L1_error) } - __pyx_t_7 = PyList_New(0); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1284, __pyx_L1_error) + __pyx_t_7 = PyList_New(0); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1297, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); if (unlikely(__pyx_v_extra_date_formats == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable"); - __PYX_ERR(0, 1284, __pyx_L1_error) + __PYX_ERR(0, 1297, __pyx_L1_error) } __pyx_t_9 = __pyx_v_extra_date_formats; __Pyx_INCREF(__pyx_t_9); __pyx_t_19 = 0; @@ -18159,13 +18301,13 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject { Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_9); #if !CYTHON_ASSUME_SAFE_SIZE - if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 1284, __pyx_L1_error) + if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 1297, __pyx_L1_error) #endif if (__pyx_t_19 >= __pyx_temp) break; } __pyx_t_3 = __Pyx_PyList_GetItemRefFast(__pyx_t_9, __pyx_t_19, __Pyx_ReferenceSharing_OwnStrongReference); ++__pyx_t_19; - if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1284, __pyx_L1_error) + if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1297, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_XDECREF_SET(__pyx_v_edf, __pyx_t_3); __pyx_t_3 = 0; @@ -18176,10 +18318,10 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject PyObject *__pyx_callargs[2] = {__pyx_t_8, __pyx_v_edf}; __pyx_t_3 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_match, __pyx_callargs+__pyx_t_10, (2-__pyx_t_10) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; - if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1284, __pyx_L1_error) + if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1297, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); } - __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 1284, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 1297, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (__pyx_t_1) { __pyx_t_12 = __pyx_v_10pyreadstat_16_readstat_parser_format_regex; @@ -18189,7 +18331,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject PyObject *__pyx_callargs[2] = {__pyx_t_12, __pyx_v_edf}; __pyx_t_14 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_match, __pyx_callargs+__pyx_t_10, (2-__pyx_t_10) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; - if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 1284, __pyx_L1_error) + if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 1297, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); } __pyx_t_8 = __pyx_t_14; @@ -18200,18 +18342,18 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject __pyx_t_3 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_group, __pyx_callargs+__pyx_t_10, (2-__pyx_t_10) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; - if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1284, __pyx_L1_error) + if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1297, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); } - if (unlikely(__Pyx_ListComp_Append(__pyx_t_7, (PyObject*)__pyx_t_3))) __PYX_ERR(0, 1284, __pyx_L1_error) + if (unlikely(__Pyx_ListComp_Append(__pyx_t_7, (PyObject*)__pyx_t_3))) __PYX_ERR(0, 1297, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } } __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_20 = __Pyx_PyList_Extend(__pyx_v_10pyreadstat_16_readstat_parser_sas_date_formats, __pyx_t_7); if (unlikely(__pyx_t_20 == ((int)-1))) __PYX_ERR(0, 1284, __pyx_L1_error) + __pyx_t_20 = __Pyx_PyList_Extend(__pyx_v_10pyreadstat_16_readstat_parser_sas_date_formats, __pyx_t_7); if (unlikely(__pyx_t_20 == ((int)-1))) __PYX_ERR(0, 1297, __pyx_L1_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - /* "pyreadstat/_readstat_parser.pyx":1283 + /* "pyreadstat/_readstat_parser.pyx":1296 * * if extra_date_formats is not None: * if file_format == FILE_FORMAT_SAS: # <<<<<<<<<<<<<< @@ -18221,7 +18363,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject break; case __pyx_e_10pyreadstat_16_readstat_parser_FILE_FORMAT_SPSS: - /* "pyreadstat/_readstat_parser.pyx":1286 + /* "pyreadstat/_readstat_parser.pyx":1299 * sas_date_formats.extend([format_regex.match(edf).group(1) for edf in extra_date_formats if format_regex.match(edf)]) * elif file_format == FILE_FORMAT_SPSS: * spss_date_formats.extend([format_regex.match(edf).group(1) for edf in extra_date_formats if format_regex.match(edf)]) # <<<<<<<<<<<<<< @@ -18230,13 +18372,13 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject */ if (unlikely(__pyx_v_10pyreadstat_16_readstat_parser_spss_date_formats == Py_None)) { PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "extend"); - __PYX_ERR(0, 1286, __pyx_L1_error) + __PYX_ERR(0, 1299, __pyx_L1_error) } - __pyx_t_7 = PyList_New(0); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1286, __pyx_L1_error) + __pyx_t_7 = PyList_New(0); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1299, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); if (unlikely(__pyx_v_extra_date_formats == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable"); - __PYX_ERR(0, 1286, __pyx_L1_error) + __PYX_ERR(0, 1299, __pyx_L1_error) } __pyx_t_9 = __pyx_v_extra_date_formats; __Pyx_INCREF(__pyx_t_9); __pyx_t_19 = 0; @@ -18244,13 +18386,13 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject { Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_9); #if !CYTHON_ASSUME_SAFE_SIZE - if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 1286, __pyx_L1_error) + if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 1299, __pyx_L1_error) #endif if (__pyx_t_19 >= __pyx_temp) break; } __pyx_t_3 = __Pyx_PyList_GetItemRefFast(__pyx_t_9, __pyx_t_19, __Pyx_ReferenceSharing_OwnStrongReference); ++__pyx_t_19; - if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1286, __pyx_L1_error) + if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1299, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_XDECREF_SET(__pyx_v_edf, __pyx_t_3); __pyx_t_3 = 0; @@ -18261,10 +18403,10 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject PyObject *__pyx_callargs[2] = {__pyx_t_14, __pyx_v_edf}; __pyx_t_3 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_match, __pyx_callargs+__pyx_t_10, (2-__pyx_t_10) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0; - if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1286, __pyx_L1_error) + if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1299, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); } - __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 1286, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 1299, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (__pyx_t_1) { __pyx_t_12 = __pyx_v_10pyreadstat_16_readstat_parser_format_regex; @@ -18274,7 +18416,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject PyObject *__pyx_callargs[2] = {__pyx_t_12, __pyx_v_edf}; __pyx_t_8 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_match, __pyx_callargs+__pyx_t_10, (2-__pyx_t_10) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; - if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1286, __pyx_L1_error) + if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1299, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); } __pyx_t_14 = __pyx_t_8; @@ -18285,18 +18427,18 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject __pyx_t_3 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_group, __pyx_callargs+__pyx_t_10, (2-__pyx_t_10) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1286, __pyx_L1_error) + if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1299, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); } - if (unlikely(__Pyx_ListComp_Append(__pyx_t_7, (PyObject*)__pyx_t_3))) __PYX_ERR(0, 1286, __pyx_L1_error) + if (unlikely(__Pyx_ListComp_Append(__pyx_t_7, (PyObject*)__pyx_t_3))) __PYX_ERR(0, 1299, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } } __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_20 = __Pyx_PyList_Extend(__pyx_v_10pyreadstat_16_readstat_parser_spss_date_formats, __pyx_t_7); if (unlikely(__pyx_t_20 == ((int)-1))) __PYX_ERR(0, 1286, __pyx_L1_error) + __pyx_t_20 = __Pyx_PyList_Extend(__pyx_v_10pyreadstat_16_readstat_parser_spss_date_formats, __pyx_t_7); if (unlikely(__pyx_t_20 == ((int)-1))) __PYX_ERR(0, 1299, __pyx_L1_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - /* "pyreadstat/_readstat_parser.pyx":1285 + /* "pyreadstat/_readstat_parser.pyx":1298 * if file_format == FILE_FORMAT_SAS: * sas_date_formats.extend([format_regex.match(edf).group(1) for edf in extra_date_formats if format_regex.match(edf)]) * elif file_format == FILE_FORMAT_SPSS: # <<<<<<<<<<<<<< @@ -18306,7 +18448,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject break; case __pyx_e_10pyreadstat_16_readstat_parser_FILE_FORMAT_STATA: - /* "pyreadstat/_readstat_parser.pyx":1288 + /* "pyreadstat/_readstat_parser.pyx":1301 * spss_date_formats.extend([format_regex.match(edf).group(1) for edf in extra_date_formats if format_regex.match(edf)]) * elif file_format == FILE_FORMAT_STATA: * stata_date_formats.extend(extra_date_formats) # <<<<<<<<<<<<<< @@ -18315,11 +18457,11 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject */ if (unlikely(__pyx_v_10pyreadstat_16_readstat_parser_stata_date_formats == Py_None)) { PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "extend"); - __PYX_ERR(0, 1288, __pyx_L1_error) + __PYX_ERR(0, 1301, __pyx_L1_error) } - __pyx_t_20 = __Pyx_PyList_Extend(__pyx_v_10pyreadstat_16_readstat_parser_stata_date_formats, __pyx_v_extra_date_formats); if (unlikely(__pyx_t_20 == ((int)-1))) __PYX_ERR(0, 1288, __pyx_L1_error) + __pyx_t_20 = __Pyx_PyList_Extend(__pyx_v_10pyreadstat_16_readstat_parser_stata_date_formats, __pyx_v_extra_date_formats); if (unlikely(__pyx_t_20 == ((int)-1))) __PYX_ERR(0, 1301, __pyx_L1_error) - /* "pyreadstat/_readstat_parser.pyx":1287 + /* "pyreadstat/_readstat_parser.pyx":1300 * elif file_format == FILE_FORMAT_SPSS: * spss_date_formats.extend([format_regex.match(edf).group(1) for edf in extra_date_formats if format_regex.match(edf)]) * elif file_format == FILE_FORMAT_STATA: # <<<<<<<<<<<<<< @@ -18329,7 +18471,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject break; default: - /* "pyreadstat/_readstat_parser.pyx":1290 + /* "pyreadstat/_readstat_parser.pyx":1303 * stata_date_formats.extend(extra_date_formats) * else: * raise PyreadstatError("Unknown file format") # <<<<<<<<<<<<<< @@ -18337,7 +18479,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject * if file_format == FILE_FORMAT_SAS: */ __pyx_t_9 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1290, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1303, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_10 = 1; #if CYTHON_UNPACK_METHODS @@ -18356,16 +18498,16 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject __pyx_t_7 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_3, __pyx_callargs+__pyx_t_10, (2-__pyx_t_10) | (__pyx_t_10*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1290, __pyx_L1_error) + if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1303, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); } __Pyx_Raise(__pyx_t_7, 0, 0, 0); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __PYX_ERR(0, 1290, __pyx_L1_error) + __PYX_ERR(0, 1303, __pyx_L1_error) break; } - /* "pyreadstat/_readstat_parser.pyx":1282 + /* "pyreadstat/_readstat_parser.pyx":1295 * * * if extra_date_formats is not None: # <<<<<<<<<<<<<< @@ -18374,7 +18516,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject */ } - /* "pyreadstat/_readstat_parser.pyx":1291 + /* "pyreadstat/_readstat_parser.pyx":1304 * else: * raise PyreadstatError("Unknown file format") * if extra_datetime_formats is not None: # <<<<<<<<<<<<<< @@ -18384,7 +18526,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject __pyx_t_1 = (__pyx_v_extra_datetime_formats != ((PyObject*)Py_None)); if (__pyx_t_1) { - /* "pyreadstat/_readstat_parser.pyx":1292 + /* "pyreadstat/_readstat_parser.pyx":1305 * raise PyreadstatError("Unknown file format") * if extra_datetime_formats is not None: * if file_format == FILE_FORMAT_SAS: # <<<<<<<<<<<<<< @@ -18394,7 +18536,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject switch (__pyx_v_file_format) { case __pyx_e_10pyreadstat_16_readstat_parser_FILE_FORMAT_SAS: - /* "pyreadstat/_readstat_parser.pyx":1293 + /* "pyreadstat/_readstat_parser.pyx":1306 * if extra_datetime_formats is not None: * if file_format == FILE_FORMAT_SAS: * sas_datetime_formats.extend([format_regex.match(edtf).group(1) for edtf in extra_datetime_formats if format_regex.match(edtf)]) # <<<<<<<<<<<<<< @@ -18403,13 +18545,13 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject */ if (unlikely(__pyx_v_10pyreadstat_16_readstat_parser_sas_datetime_formats == Py_None)) { PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "extend"); - __PYX_ERR(0, 1293, __pyx_L1_error) + __PYX_ERR(0, 1306, __pyx_L1_error) } - __pyx_t_7 = PyList_New(0); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1293, __pyx_L1_error) + __pyx_t_7 = PyList_New(0); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1306, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); if (unlikely(__pyx_v_extra_datetime_formats == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable"); - __PYX_ERR(0, 1293, __pyx_L1_error) + __PYX_ERR(0, 1306, __pyx_L1_error) } __pyx_t_3 = __pyx_v_extra_datetime_formats; __Pyx_INCREF(__pyx_t_3); __pyx_t_19 = 0; @@ -18417,13 +18559,13 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject { Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_3); #if !CYTHON_ASSUME_SAFE_SIZE - if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 1293, __pyx_L1_error) + if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 1306, __pyx_L1_error) #endif if (__pyx_t_19 >= __pyx_temp) break; } __pyx_t_9 = __Pyx_PyList_GetItemRefFast(__pyx_t_3, __pyx_t_19, __Pyx_ReferenceSharing_OwnStrongReference); ++__pyx_t_19; - if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1293, __pyx_L1_error) + if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1306, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_XDECREF_SET(__pyx_v_edtf, __pyx_t_9); __pyx_t_9 = 0; @@ -18434,10 +18576,10 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject PyObject *__pyx_callargs[2] = {__pyx_t_8, __pyx_v_edtf}; __pyx_t_9 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_match, __pyx_callargs+__pyx_t_10, (2-__pyx_t_10) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; - if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1293, __pyx_L1_error) + if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1306, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); } - __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_9); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 1293, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_9); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 1306, __pyx_L1_error) __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; if (__pyx_t_1) { __pyx_t_12 = __pyx_v_10pyreadstat_16_readstat_parser_format_regex; @@ -18447,7 +18589,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject PyObject *__pyx_callargs[2] = {__pyx_t_12, __pyx_v_edtf}; __pyx_t_14 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_match, __pyx_callargs+__pyx_t_10, (2-__pyx_t_10) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; - if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 1293, __pyx_L1_error) + if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 1306, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); } __pyx_t_8 = __pyx_t_14; @@ -18458,18 +18600,18 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject __pyx_t_9 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_group, __pyx_callargs+__pyx_t_10, (2-__pyx_t_10) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; - if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1293, __pyx_L1_error) + if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1306, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); } - if (unlikely(__Pyx_ListComp_Append(__pyx_t_7, (PyObject*)__pyx_t_9))) __PYX_ERR(0, 1293, __pyx_L1_error) + if (unlikely(__Pyx_ListComp_Append(__pyx_t_7, (PyObject*)__pyx_t_9))) __PYX_ERR(0, 1306, __pyx_L1_error) __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; } } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_20 = __Pyx_PyList_Extend(__pyx_v_10pyreadstat_16_readstat_parser_sas_datetime_formats, __pyx_t_7); if (unlikely(__pyx_t_20 == ((int)-1))) __PYX_ERR(0, 1293, __pyx_L1_error) + __pyx_t_20 = __Pyx_PyList_Extend(__pyx_v_10pyreadstat_16_readstat_parser_sas_datetime_formats, __pyx_t_7); if (unlikely(__pyx_t_20 == ((int)-1))) __PYX_ERR(0, 1306, __pyx_L1_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - /* "pyreadstat/_readstat_parser.pyx":1292 + /* "pyreadstat/_readstat_parser.pyx":1305 * raise PyreadstatError("Unknown file format") * if extra_datetime_formats is not None: * if file_format == FILE_FORMAT_SAS: # <<<<<<<<<<<<<< @@ -18479,7 +18621,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject break; case __pyx_e_10pyreadstat_16_readstat_parser_FILE_FORMAT_SPSS: - /* "pyreadstat/_readstat_parser.pyx":1295 + /* "pyreadstat/_readstat_parser.pyx":1308 * sas_datetime_formats.extend([format_regex.match(edtf).group(1) for edtf in extra_datetime_formats if format_regex.match(edtf)]) * elif file_format == FILE_FORMAT_SPSS: * spss_datetime_formats.extend([format_regex.match(edtf).group(1) for edtf in extra_datetime_formats if format_regex.match(edtf)]) # <<<<<<<<<<<<<< @@ -18488,13 +18630,13 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject */ if (unlikely(__pyx_v_10pyreadstat_16_readstat_parser_spss_datetime_formats == Py_None)) { PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "extend"); - __PYX_ERR(0, 1295, __pyx_L1_error) + __PYX_ERR(0, 1308, __pyx_L1_error) } - __pyx_t_7 = PyList_New(0); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1295, __pyx_L1_error) + __pyx_t_7 = PyList_New(0); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1308, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); if (unlikely(__pyx_v_extra_datetime_formats == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable"); - __PYX_ERR(0, 1295, __pyx_L1_error) + __PYX_ERR(0, 1308, __pyx_L1_error) } __pyx_t_3 = __pyx_v_extra_datetime_formats; __Pyx_INCREF(__pyx_t_3); __pyx_t_19 = 0; @@ -18502,13 +18644,13 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject { Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_3); #if !CYTHON_ASSUME_SAFE_SIZE - if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 1295, __pyx_L1_error) + if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 1308, __pyx_L1_error) #endif if (__pyx_t_19 >= __pyx_temp) break; } __pyx_t_9 = __Pyx_PyList_GetItemRefFast(__pyx_t_3, __pyx_t_19, __Pyx_ReferenceSharing_OwnStrongReference); ++__pyx_t_19; - if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1295, __pyx_L1_error) + if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1308, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_XDECREF_SET(__pyx_v_edtf, __pyx_t_9); __pyx_t_9 = 0; @@ -18519,10 +18661,10 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject PyObject *__pyx_callargs[2] = {__pyx_t_14, __pyx_v_edtf}; __pyx_t_9 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_match, __pyx_callargs+__pyx_t_10, (2-__pyx_t_10) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0; - if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1295, __pyx_L1_error) + if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1308, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); } - __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_9); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 1295, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_9); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 1308, __pyx_L1_error) __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; if (__pyx_t_1) { __pyx_t_12 = __pyx_v_10pyreadstat_16_readstat_parser_format_regex; @@ -18532,7 +18674,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject PyObject *__pyx_callargs[2] = {__pyx_t_12, __pyx_v_edtf}; __pyx_t_8 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_match, __pyx_callargs+__pyx_t_10, (2-__pyx_t_10) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; - if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1295, __pyx_L1_error) + if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1308, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); } __pyx_t_14 = __pyx_t_8; @@ -18543,18 +18685,18 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject __pyx_t_9 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_group, __pyx_callargs+__pyx_t_10, (2-__pyx_t_10) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1295, __pyx_L1_error) + if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1308, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); } - if (unlikely(__Pyx_ListComp_Append(__pyx_t_7, (PyObject*)__pyx_t_9))) __PYX_ERR(0, 1295, __pyx_L1_error) + if (unlikely(__Pyx_ListComp_Append(__pyx_t_7, (PyObject*)__pyx_t_9))) __PYX_ERR(0, 1308, __pyx_L1_error) __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; } } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_20 = __Pyx_PyList_Extend(__pyx_v_10pyreadstat_16_readstat_parser_spss_datetime_formats, __pyx_t_7); if (unlikely(__pyx_t_20 == ((int)-1))) __PYX_ERR(0, 1295, __pyx_L1_error) + __pyx_t_20 = __Pyx_PyList_Extend(__pyx_v_10pyreadstat_16_readstat_parser_spss_datetime_formats, __pyx_t_7); if (unlikely(__pyx_t_20 == ((int)-1))) __PYX_ERR(0, 1308, __pyx_L1_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - /* "pyreadstat/_readstat_parser.pyx":1294 + /* "pyreadstat/_readstat_parser.pyx":1307 * if file_format == FILE_FORMAT_SAS: * sas_datetime_formats.extend([format_regex.match(edtf).group(1) for edtf in extra_datetime_formats if format_regex.match(edtf)]) * elif file_format == FILE_FORMAT_SPSS: # <<<<<<<<<<<<<< @@ -18564,7 +18706,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject break; case __pyx_e_10pyreadstat_16_readstat_parser_FILE_FORMAT_STATA: - /* "pyreadstat/_readstat_parser.pyx":1297 + /* "pyreadstat/_readstat_parser.pyx":1310 * spss_datetime_formats.extend([format_regex.match(edtf).group(1) for edtf in extra_datetime_formats if format_regex.match(edtf)]) * elif file_format == FILE_FORMAT_STATA: * stata_datetime_formats.extend(extra_datetime_formats) # <<<<<<<<<<<<<< @@ -18573,11 +18715,11 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject */ if (unlikely(__pyx_v_10pyreadstat_16_readstat_parser_stata_datetime_formats == Py_None)) { PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "extend"); - __PYX_ERR(0, 1297, __pyx_L1_error) + __PYX_ERR(0, 1310, __pyx_L1_error) } - __pyx_t_20 = __Pyx_PyList_Extend(__pyx_v_10pyreadstat_16_readstat_parser_stata_datetime_formats, __pyx_v_extra_datetime_formats); if (unlikely(__pyx_t_20 == ((int)-1))) __PYX_ERR(0, 1297, __pyx_L1_error) + __pyx_t_20 = __Pyx_PyList_Extend(__pyx_v_10pyreadstat_16_readstat_parser_stata_datetime_formats, __pyx_v_extra_datetime_formats); if (unlikely(__pyx_t_20 == ((int)-1))) __PYX_ERR(0, 1310, __pyx_L1_error) - /* "pyreadstat/_readstat_parser.pyx":1296 + /* "pyreadstat/_readstat_parser.pyx":1309 * elif file_format == FILE_FORMAT_SPSS: * spss_datetime_formats.extend([format_regex.match(edtf).group(1) for edtf in extra_datetime_formats if format_regex.match(edtf)]) * elif file_format == FILE_FORMAT_STATA: # <<<<<<<<<<<<<< @@ -18587,7 +18729,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject break; default: - /* "pyreadstat/_readstat_parser.pyx":1299 + /* "pyreadstat/_readstat_parser.pyx":1312 * stata_datetime_formats.extend(extra_datetime_formats) * else: * raise PyreadstatError("Unknown file format") # <<<<<<<<<<<<<< @@ -18595,7 +18737,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject * if file_format == FILE_FORMAT_SAS: */ __pyx_t_3 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1299, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1312, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_10 = 1; #if CYTHON_UNPACK_METHODS @@ -18614,16 +18756,16 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject __pyx_t_7 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_9, __pyx_callargs+__pyx_t_10, (2-__pyx_t_10) | (__pyx_t_10*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1299, __pyx_L1_error) + if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1312, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); } __Pyx_Raise(__pyx_t_7, 0, 0, 0); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __PYX_ERR(0, 1299, __pyx_L1_error) + __PYX_ERR(0, 1312, __pyx_L1_error) break; } - /* "pyreadstat/_readstat_parser.pyx":1291 + /* "pyreadstat/_readstat_parser.pyx":1304 * else: * raise PyreadstatError("Unknown file format") * if extra_datetime_formats is not None: # <<<<<<<<<<<<<< @@ -18632,7 +18774,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject */ } - /* "pyreadstat/_readstat_parser.pyx":1300 + /* "pyreadstat/_readstat_parser.pyx":1313 * else: * raise PyreadstatError("Unknown file format") * if extra_time_formats is not None: # <<<<<<<<<<<<<< @@ -18642,7 +18784,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject __pyx_t_1 = (__pyx_v_extra_time_formats != ((PyObject*)Py_None)); if (__pyx_t_1) { - /* "pyreadstat/_readstat_parser.pyx":1301 + /* "pyreadstat/_readstat_parser.pyx":1314 * raise PyreadstatError("Unknown file format") * if extra_time_formats is not None: * if file_format == FILE_FORMAT_SAS: # <<<<<<<<<<<<<< @@ -18652,7 +18794,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject switch (__pyx_v_file_format) { case __pyx_e_10pyreadstat_16_readstat_parser_FILE_FORMAT_SAS: - /* "pyreadstat/_readstat_parser.pyx":1302 + /* "pyreadstat/_readstat_parser.pyx":1315 * if extra_time_formats is not None: * if file_format == FILE_FORMAT_SAS: * sas_time_formats.extend([format_regex.match(etf).group(1) for etf in extra_time_formats if format_regex.match(etf)]) # <<<<<<<<<<<<<< @@ -18661,13 +18803,13 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject */ if (unlikely(__pyx_v_10pyreadstat_16_readstat_parser_sas_time_formats == Py_None)) { PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "extend"); - __PYX_ERR(0, 1302, __pyx_L1_error) + __PYX_ERR(0, 1315, __pyx_L1_error) } - __pyx_t_7 = PyList_New(0); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1302, __pyx_L1_error) + __pyx_t_7 = PyList_New(0); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1315, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); if (unlikely(__pyx_v_extra_time_formats == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable"); - __PYX_ERR(0, 1302, __pyx_L1_error) + __PYX_ERR(0, 1315, __pyx_L1_error) } __pyx_t_9 = __pyx_v_extra_time_formats; __Pyx_INCREF(__pyx_t_9); __pyx_t_19 = 0; @@ -18675,13 +18817,13 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject { Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_9); #if !CYTHON_ASSUME_SAFE_SIZE - if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 1302, __pyx_L1_error) + if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 1315, __pyx_L1_error) #endif if (__pyx_t_19 >= __pyx_temp) break; } __pyx_t_3 = __Pyx_PyList_GetItemRefFast(__pyx_t_9, __pyx_t_19, __Pyx_ReferenceSharing_OwnStrongReference); ++__pyx_t_19; - if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1302, __pyx_L1_error) + if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1315, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_XDECREF_SET(__pyx_v_etf, __pyx_t_3); __pyx_t_3 = 0; @@ -18692,10 +18834,10 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject PyObject *__pyx_callargs[2] = {__pyx_t_8, __pyx_v_etf}; __pyx_t_3 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_match, __pyx_callargs+__pyx_t_10, (2-__pyx_t_10) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; - if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1302, __pyx_L1_error) + if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1315, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); } - __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 1302, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 1315, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (__pyx_t_1) { __pyx_t_12 = __pyx_v_10pyreadstat_16_readstat_parser_format_regex; @@ -18705,7 +18847,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject PyObject *__pyx_callargs[2] = {__pyx_t_12, __pyx_v_etf}; __pyx_t_14 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_match, __pyx_callargs+__pyx_t_10, (2-__pyx_t_10) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; - if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 1302, __pyx_L1_error) + if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 1315, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); } __pyx_t_8 = __pyx_t_14; @@ -18716,18 +18858,18 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject __pyx_t_3 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_group, __pyx_callargs+__pyx_t_10, (2-__pyx_t_10) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; - if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1302, __pyx_L1_error) + if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1315, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); } - if (unlikely(__Pyx_ListComp_Append(__pyx_t_7, (PyObject*)__pyx_t_3))) __PYX_ERR(0, 1302, __pyx_L1_error) + if (unlikely(__Pyx_ListComp_Append(__pyx_t_7, (PyObject*)__pyx_t_3))) __PYX_ERR(0, 1315, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } } __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_20 = __Pyx_PyList_Extend(__pyx_v_10pyreadstat_16_readstat_parser_sas_time_formats, __pyx_t_7); if (unlikely(__pyx_t_20 == ((int)-1))) __PYX_ERR(0, 1302, __pyx_L1_error) + __pyx_t_20 = __Pyx_PyList_Extend(__pyx_v_10pyreadstat_16_readstat_parser_sas_time_formats, __pyx_t_7); if (unlikely(__pyx_t_20 == ((int)-1))) __PYX_ERR(0, 1315, __pyx_L1_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - /* "pyreadstat/_readstat_parser.pyx":1301 + /* "pyreadstat/_readstat_parser.pyx":1314 * raise PyreadstatError("Unknown file format") * if extra_time_formats is not None: * if file_format == FILE_FORMAT_SAS: # <<<<<<<<<<<<<< @@ -18737,7 +18879,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject break; case __pyx_e_10pyreadstat_16_readstat_parser_FILE_FORMAT_SPSS: - /* "pyreadstat/_readstat_parser.pyx":1304 + /* "pyreadstat/_readstat_parser.pyx":1317 * sas_time_formats.extend([format_regex.match(etf).group(1) for etf in extra_time_formats if format_regex.match(etf)]) * elif file_format == FILE_FORMAT_SPSS: * spss_time_formats.extend([format_regex.match(etf).group(1) for etf in extra_time_formats if format_regex.match(etf)]) # <<<<<<<<<<<<<< @@ -18746,13 +18888,13 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject */ if (unlikely(__pyx_v_10pyreadstat_16_readstat_parser_spss_time_formats == Py_None)) { PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "extend"); - __PYX_ERR(0, 1304, __pyx_L1_error) + __PYX_ERR(0, 1317, __pyx_L1_error) } - __pyx_t_7 = PyList_New(0); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1304, __pyx_L1_error) + __pyx_t_7 = PyList_New(0); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1317, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); if (unlikely(__pyx_v_extra_time_formats == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable"); - __PYX_ERR(0, 1304, __pyx_L1_error) + __PYX_ERR(0, 1317, __pyx_L1_error) } __pyx_t_9 = __pyx_v_extra_time_formats; __Pyx_INCREF(__pyx_t_9); __pyx_t_19 = 0; @@ -18760,13 +18902,13 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject { Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_9); #if !CYTHON_ASSUME_SAFE_SIZE - if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 1304, __pyx_L1_error) + if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 1317, __pyx_L1_error) #endif if (__pyx_t_19 >= __pyx_temp) break; } __pyx_t_3 = __Pyx_PyList_GetItemRefFast(__pyx_t_9, __pyx_t_19, __Pyx_ReferenceSharing_OwnStrongReference); ++__pyx_t_19; - if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1304, __pyx_L1_error) + if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1317, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_XDECREF_SET(__pyx_v_etf, __pyx_t_3); __pyx_t_3 = 0; @@ -18777,10 +18919,10 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject PyObject *__pyx_callargs[2] = {__pyx_t_14, __pyx_v_etf}; __pyx_t_3 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_match, __pyx_callargs+__pyx_t_10, (2-__pyx_t_10) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0; - if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1304, __pyx_L1_error) + if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1317, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); } - __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 1304, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 1317, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (__pyx_t_1) { __pyx_t_12 = __pyx_v_10pyreadstat_16_readstat_parser_format_regex; @@ -18790,7 +18932,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject PyObject *__pyx_callargs[2] = {__pyx_t_12, __pyx_v_etf}; __pyx_t_8 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_match, __pyx_callargs+__pyx_t_10, (2-__pyx_t_10) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; - if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1304, __pyx_L1_error) + if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1317, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); } __pyx_t_14 = __pyx_t_8; @@ -18801,18 +18943,18 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject __pyx_t_3 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_group, __pyx_callargs+__pyx_t_10, (2-__pyx_t_10) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1304, __pyx_L1_error) + if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1317, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); } - if (unlikely(__Pyx_ListComp_Append(__pyx_t_7, (PyObject*)__pyx_t_3))) __PYX_ERR(0, 1304, __pyx_L1_error) + if (unlikely(__Pyx_ListComp_Append(__pyx_t_7, (PyObject*)__pyx_t_3))) __PYX_ERR(0, 1317, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } } __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_20 = __Pyx_PyList_Extend(__pyx_v_10pyreadstat_16_readstat_parser_spss_time_formats, __pyx_t_7); if (unlikely(__pyx_t_20 == ((int)-1))) __PYX_ERR(0, 1304, __pyx_L1_error) + __pyx_t_20 = __Pyx_PyList_Extend(__pyx_v_10pyreadstat_16_readstat_parser_spss_time_formats, __pyx_t_7); if (unlikely(__pyx_t_20 == ((int)-1))) __PYX_ERR(0, 1317, __pyx_L1_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - /* "pyreadstat/_readstat_parser.pyx":1303 + /* "pyreadstat/_readstat_parser.pyx":1316 * if file_format == FILE_FORMAT_SAS: * sas_time_formats.extend([format_regex.match(etf).group(1) for etf in extra_time_formats if format_regex.match(etf)]) * elif file_format == FILE_FORMAT_SPSS: # <<<<<<<<<<<<<< @@ -18822,7 +18964,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject break; case __pyx_e_10pyreadstat_16_readstat_parser_FILE_FORMAT_STATA: - /* "pyreadstat/_readstat_parser.pyx":1306 + /* "pyreadstat/_readstat_parser.pyx":1319 * spss_time_formats.extend([format_regex.match(etf).group(1) for etf in extra_time_formats if format_regex.match(etf)]) * elif file_format == FILE_FORMAT_STATA: * stata_time_formats.extend(extra_time_formats) # <<<<<<<<<<<<<< @@ -18831,11 +18973,11 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject */ if (unlikely(__pyx_v_10pyreadstat_16_readstat_parser_stata_time_formats == Py_None)) { PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "extend"); - __PYX_ERR(0, 1306, __pyx_L1_error) + __PYX_ERR(0, 1319, __pyx_L1_error) } - __pyx_t_20 = __Pyx_PyList_Extend(__pyx_v_10pyreadstat_16_readstat_parser_stata_time_formats, __pyx_v_extra_time_formats); if (unlikely(__pyx_t_20 == ((int)-1))) __PYX_ERR(0, 1306, __pyx_L1_error) + __pyx_t_20 = __Pyx_PyList_Extend(__pyx_v_10pyreadstat_16_readstat_parser_stata_time_formats, __pyx_v_extra_time_formats); if (unlikely(__pyx_t_20 == ((int)-1))) __PYX_ERR(0, 1319, __pyx_L1_error) - /* "pyreadstat/_readstat_parser.pyx":1305 + /* "pyreadstat/_readstat_parser.pyx":1318 * elif file_format == FILE_FORMAT_SPSS: * spss_time_formats.extend([format_regex.match(etf).group(1) for etf in extra_time_formats if format_regex.match(etf)]) * elif file_format == FILE_FORMAT_STATA: # <<<<<<<<<<<<<< @@ -18845,7 +18987,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject break; default: - /* "pyreadstat/_readstat_parser.pyx":1308 + /* "pyreadstat/_readstat_parser.pyx":1321 * stata_time_formats.extend(extra_time_formats) * else: * raise PyreadstatError("Unknown file format") # <<<<<<<<<<<<<< @@ -18853,7 +18995,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject * sas_all_formats = sas_date_formats + sas_datetime_formats + sas_time_formats */ __pyx_t_9 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1308, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1321, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_10 = 1; #if CYTHON_UNPACK_METHODS @@ -18872,16 +19014,16 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject __pyx_t_7 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_3, __pyx_callargs+__pyx_t_10, (2-__pyx_t_10) | (__pyx_t_10*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1308, __pyx_L1_error) + if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1321, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); } __Pyx_Raise(__pyx_t_7, 0, 0, 0); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __PYX_ERR(0, 1308, __pyx_L1_error) + __PYX_ERR(0, 1321, __pyx_L1_error) break; } - /* "pyreadstat/_readstat_parser.pyx":1300 + /* "pyreadstat/_readstat_parser.pyx":1313 * else: * raise PyreadstatError("Unknown file format") * if extra_time_formats is not None: # <<<<<<<<<<<<<< @@ -18890,16 +19032,16 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject */ } - /* "pyreadstat/_readstat_parser.pyx":1310 + /* "pyreadstat/_readstat_parser.pyx":1323 * raise PyreadstatError("Unknown file format") * global sas_all_formats, spss_all_formats, stata_all_formats * sas_all_formats = sas_date_formats + sas_datetime_formats + sas_time_formats # <<<<<<<<<<<<<< * stata_all_formats = stata_date_formats + stata_datetime_formats + stata_time_formats * spss_all_formats = spss_date_formats + spss_datetime_formats + spss_time_formats */ - __pyx_t_7 = PyNumber_Add(__pyx_v_10pyreadstat_16_readstat_parser_sas_date_formats, __pyx_v_10pyreadstat_16_readstat_parser_sas_datetime_formats); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1310, __pyx_L1_error) + __pyx_t_7 = PyNumber_Add(__pyx_v_10pyreadstat_16_readstat_parser_sas_date_formats, __pyx_v_10pyreadstat_16_readstat_parser_sas_datetime_formats); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1323, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); - __pyx_t_3 = PyNumber_Add(__pyx_t_7, __pyx_v_10pyreadstat_16_readstat_parser_sas_time_formats); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1310, __pyx_L1_error) + __pyx_t_3 = PyNumber_Add(__pyx_t_7, __pyx_v_10pyreadstat_16_readstat_parser_sas_time_formats); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1323, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_XGOTREF(__pyx_v_10pyreadstat_16_readstat_parser_sas_all_formats); @@ -18907,16 +19049,16 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject __Pyx_GIVEREF(__pyx_t_3); __pyx_t_3 = 0; - /* "pyreadstat/_readstat_parser.pyx":1311 + /* "pyreadstat/_readstat_parser.pyx":1324 * global sas_all_formats, spss_all_formats, stata_all_formats * sas_all_formats = sas_date_formats + sas_datetime_formats + sas_time_formats * stata_all_formats = stata_date_formats + stata_datetime_formats + stata_time_formats # <<<<<<<<<<<<<< * spss_all_formats = spss_date_formats + spss_datetime_formats + spss_time_formats * */ - __pyx_t_3 = PyNumber_Add(__pyx_v_10pyreadstat_16_readstat_parser_stata_date_formats, __pyx_v_10pyreadstat_16_readstat_parser_stata_datetime_formats); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1311, __pyx_L1_error) + __pyx_t_3 = PyNumber_Add(__pyx_v_10pyreadstat_16_readstat_parser_stata_date_formats, __pyx_v_10pyreadstat_16_readstat_parser_stata_datetime_formats); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1324, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_7 = PyNumber_Add(__pyx_t_3, __pyx_v_10pyreadstat_16_readstat_parser_stata_time_formats); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1311, __pyx_L1_error) + __pyx_t_7 = PyNumber_Add(__pyx_t_3, __pyx_v_10pyreadstat_16_readstat_parser_stata_time_formats); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1324, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_XGOTREF(__pyx_v_10pyreadstat_16_readstat_parser_stata_all_formats); @@ -18924,16 +19066,16 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject __Pyx_GIVEREF(__pyx_t_7); __pyx_t_7 = 0; - /* "pyreadstat/_readstat_parser.pyx":1312 + /* "pyreadstat/_readstat_parser.pyx":1325 * sas_all_formats = sas_date_formats + sas_datetime_formats + sas_time_formats * stata_all_formats = stata_date_formats + stata_datetime_formats + stata_time_formats * spss_all_formats = spss_date_formats + spss_datetime_formats + spss_time_formats # <<<<<<<<<<<<<< * * filename = filename_bytes */ - __pyx_t_7 = PyNumber_Add(__pyx_v_10pyreadstat_16_readstat_parser_spss_date_formats, __pyx_v_10pyreadstat_16_readstat_parser_spss_datetime_formats); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1312, __pyx_L1_error) + __pyx_t_7 = PyNumber_Add(__pyx_v_10pyreadstat_16_readstat_parser_spss_date_formats, __pyx_v_10pyreadstat_16_readstat_parser_spss_datetime_formats); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1325, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); - __pyx_t_3 = PyNumber_Add(__pyx_t_7, __pyx_v_10pyreadstat_16_readstat_parser_spss_time_formats); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1312, __pyx_L1_error) + __pyx_t_3 = PyNumber_Add(__pyx_t_7, __pyx_v_10pyreadstat_16_readstat_parser_spss_time_formats); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1325, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_XGOTREF(__pyx_v_10pyreadstat_16_readstat_parser_spss_all_formats); @@ -18941,7 +19083,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject __Pyx_GIVEREF(__pyx_t_3); __pyx_t_3 = 0; - /* "pyreadstat/_readstat_parser.pyx":1314 + /* "pyreadstat/_readstat_parser.pyx":1327 * spss_all_formats = spss_date_formats + spss_datetime_formats + spss_time_formats * * filename = filename_bytes # <<<<<<<<<<<<<< @@ -18950,12 +19092,12 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject */ if (unlikely(__pyx_v_filename_bytes == Py_None)) { PyErr_SetString(PyExc_TypeError, "expected bytes, NoneType found"); - __PYX_ERR(0, 1314, __pyx_L1_error) + __PYX_ERR(0, 1327, __pyx_L1_error) } - __pyx_t_21 = __Pyx_PyBytes_AsWritableString(__pyx_v_filename_bytes); if (unlikely((!__pyx_t_21) && PyErr_Occurred())) __PYX_ERR(0, 1314, __pyx_L1_error) + __pyx_t_21 = __Pyx_PyBytes_AsWritableString(__pyx_v_filename_bytes); if (unlikely((!__pyx_t_21) && PyErr_Occurred())) __PYX_ERR(0, 1327, __pyx_L1_error) __pyx_v_filename = ((char *)__pyx_t_21); - /* "pyreadstat/_readstat_parser.pyx":1316 + /* "pyreadstat/_readstat_parser.pyx":1329 * filename = filename_bytes * * data = data_container() # <<<<<<<<<<<<<< @@ -18968,13 +19110,13 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject PyObject *__pyx_callargs[2] = {__pyx_t_7, NULL}; __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_mstate_global->__pyx_ptype_10pyreadstat_16_readstat_parser_data_container, __pyx_callargs+__pyx_t_10, (1-__pyx_t_10) | (__pyx_t_10*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; - if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1316, __pyx_L1_error) + if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1329, __pyx_L1_error) __Pyx_GOTREF((PyObject *)__pyx_t_3); } __pyx_v_data = ((struct __pyx_obj_10pyreadstat_16_readstat_parser_data_container *)__pyx_t_3); __pyx_t_3 = 0; - /* "pyreadstat/_readstat_parser.pyx":1317 + /* "pyreadstat/_readstat_parser.pyx":1330 * * data = data_container() * ctx = data # <<<<<<<<<<<<<< @@ -18983,7 +19125,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject */ __pyx_v_ctx = ((void *)__pyx_v_data); - /* "pyreadstat/_readstat_parser.pyx":1319 + /* "pyreadstat/_readstat_parser.pyx":1332 * ctx = data * * data.file_format = file_format # <<<<<<<<<<<<<< @@ -18992,7 +19134,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject */ __pyx_v_data->file_format = __pyx_v_file_format; - /* "pyreadstat/_readstat_parser.pyx":1320 + /* "pyreadstat/_readstat_parser.pyx":1333 * * data.file_format = file_format * data.metaonly = metaonly # <<<<<<<<<<<<<< @@ -19001,7 +19143,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject */ __pyx_v_data->metaonly = __pyx_v_metaonly; - /* "pyreadstat/_readstat_parser.pyx":1321 + /* "pyreadstat/_readstat_parser.pyx":1334 * data.file_format = file_format * data.metaonly = metaonly * data.dates_as_pandas = dates_as_pandas # <<<<<<<<<<<<<< @@ -19010,7 +19152,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject */ __pyx_v_data->dates_as_pandas = __pyx_v_dates_as_pandas; - /* "pyreadstat/_readstat_parser.pyx":1322 + /* "pyreadstat/_readstat_parser.pyx":1335 * data.metaonly = metaonly * data.dates_as_pandas = dates_as_pandas * data.output_format = output_format # <<<<<<<<<<<<<< @@ -19023,7 +19165,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject __Pyx_DECREF(__pyx_v_data->output_format); __pyx_v_data->output_format = __pyx_v_output_format; - /* "pyreadstat/_readstat_parser.pyx":1324 + /* "pyreadstat/_readstat_parser.pyx":1337 * data.output_format = output_format * * if encoding: # <<<<<<<<<<<<<< @@ -19034,13 +19176,13 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject else { Py_ssize_t __pyx_temp = __Pyx_PyUnicode_IS_TRUE(__pyx_v_encoding); - if (unlikely(((!CYTHON_ASSUME_SAFE_SIZE) && __pyx_temp < 0))) __PYX_ERR(0, 1324, __pyx_L1_error) + if (unlikely(((!CYTHON_ASSUME_SAFE_SIZE) && __pyx_temp < 0))) __PYX_ERR(0, 1337, __pyx_L1_error) __pyx_t_1 = (__pyx_temp != 0); } if (__pyx_t_1) { - /* "pyreadstat/_readstat_parser.pyx":1325 + /* "pyreadstat/_readstat_parser.pyx":1338 * * if encoding: * data.user_encoding = encoding # <<<<<<<<<<<<<< @@ -19053,7 +19195,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject __Pyx_DECREF(__pyx_v_data->user_encoding); __pyx_v_data->user_encoding = __pyx_v_encoding; - /* "pyreadstat/_readstat_parser.pyx":1324 + /* "pyreadstat/_readstat_parser.pyx":1337 * data.output_format = output_format * * if encoding: # <<<<<<<<<<<<<< @@ -19062,7 +19204,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject */ } - /* "pyreadstat/_readstat_parser.pyx":1327 + /* "pyreadstat/_readstat_parser.pyx":1340 * data.user_encoding = encoding * * if file_format == FILE_FORMAT_SAS: # <<<<<<<<<<<<<< @@ -19072,7 +19214,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject switch (__pyx_v_file_format) { case __pyx_e_10pyreadstat_16_readstat_parser_FILE_FORMAT_SAS: - /* "pyreadstat/_readstat_parser.pyx":1328 + /* "pyreadstat/_readstat_parser.pyx":1341 * * if file_format == FILE_FORMAT_SAS: * origin = sas_origin # <<<<<<<<<<<<<< @@ -19082,7 +19224,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject __Pyx_INCREF(__pyx_v_10pyreadstat_16_readstat_parser_sas_origin); __pyx_v_origin = __pyx_v_10pyreadstat_16_readstat_parser_sas_origin; - /* "pyreadstat/_readstat_parser.pyx":1329 + /* "pyreadstat/_readstat_parser.pyx":1342 * if file_format == FILE_FORMAT_SAS: * origin = sas_origin * unix_to_origin_secs = sas_secs_from_unix # <<<<<<<<<<<<<< @@ -19092,7 +19234,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject __Pyx_INCREF(__pyx_v_10pyreadstat_16_readstat_parser_sas_secs_from_unix); __pyx_v_unix_to_origin_secs = __pyx_v_10pyreadstat_16_readstat_parser_sas_secs_from_unix; - /* "pyreadstat/_readstat_parser.pyx":1327 + /* "pyreadstat/_readstat_parser.pyx":1340 * data.user_encoding = encoding * * if file_format == FILE_FORMAT_SAS: # <<<<<<<<<<<<<< @@ -19102,7 +19244,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject break; case __pyx_e_10pyreadstat_16_readstat_parser_FILE_FORMAT_SPSS: - /* "pyreadstat/_readstat_parser.pyx":1331 + /* "pyreadstat/_readstat_parser.pyx":1344 * unix_to_origin_secs = sas_secs_from_unix * elif file_format == FILE_FORMAT_SPSS: * origin = spss_origin # <<<<<<<<<<<<<< @@ -19112,7 +19254,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject __Pyx_INCREF(__pyx_v_10pyreadstat_16_readstat_parser_spss_origin); __pyx_v_origin = __pyx_v_10pyreadstat_16_readstat_parser_spss_origin; - /* "pyreadstat/_readstat_parser.pyx":1332 + /* "pyreadstat/_readstat_parser.pyx":1345 * elif file_format == FILE_FORMAT_SPSS: * origin = spss_origin * unix_to_origin_secs = spss_secs_from_unix # <<<<<<<<<<<<<< @@ -19122,7 +19264,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject __Pyx_INCREF(__pyx_v_10pyreadstat_16_readstat_parser_spss_secs_from_unix); __pyx_v_unix_to_origin_secs = __pyx_v_10pyreadstat_16_readstat_parser_spss_secs_from_unix; - /* "pyreadstat/_readstat_parser.pyx":1330 + /* "pyreadstat/_readstat_parser.pyx":1343 * origin = sas_origin * unix_to_origin_secs = sas_secs_from_unix * elif file_format == FILE_FORMAT_SPSS: # <<<<<<<<<<<<<< @@ -19132,7 +19274,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject break; case __pyx_e_10pyreadstat_16_readstat_parser_FILE_FORMAT_STATA: - /* "pyreadstat/_readstat_parser.pyx":1334 + /* "pyreadstat/_readstat_parser.pyx":1347 * unix_to_origin_secs = spss_secs_from_unix * elif file_format == FILE_FORMAT_STATA: * origin = stata_origin # <<<<<<<<<<<<<< @@ -19142,7 +19284,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject __Pyx_INCREF(__pyx_v_10pyreadstat_16_readstat_parser_stata_origin); __pyx_v_origin = __pyx_v_10pyreadstat_16_readstat_parser_stata_origin; - /* "pyreadstat/_readstat_parser.pyx":1335 + /* "pyreadstat/_readstat_parser.pyx":1348 * elif file_format == FILE_FORMAT_STATA: * origin = stata_origin * unix_to_origin_secs = stata_secs_from_unix # <<<<<<<<<<<<<< @@ -19152,7 +19294,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject __Pyx_INCREF(__pyx_v_10pyreadstat_16_readstat_parser_stata_secs_from_unix); __pyx_v_unix_to_origin_secs = __pyx_v_10pyreadstat_16_readstat_parser_stata_secs_from_unix; - /* "pyreadstat/_readstat_parser.pyx":1333 + /* "pyreadstat/_readstat_parser.pyx":1346 * origin = spss_origin * unix_to_origin_secs = spss_secs_from_unix * elif file_format == FILE_FORMAT_STATA: # <<<<<<<<<<<<<< @@ -19162,7 +19304,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject break; default: - /* "pyreadstat/_readstat_parser.pyx":1337 + /* "pyreadstat/_readstat_parser.pyx":1350 * unix_to_origin_secs = stata_secs_from_unix * else: * raise PyreadstatError("Unknown file format") # <<<<<<<<<<<<<< @@ -19170,7 +19312,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject * data.origin = origin */ __pyx_t_7 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1337, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1350, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_10 = 1; #if CYTHON_UNPACK_METHODS @@ -19189,16 +19331,16 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_9, __pyx_callargs+__pyx_t_10, (2-__pyx_t_10) | (__pyx_t_10*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1337, __pyx_L1_error) + if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1350, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); } __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __PYX_ERR(0, 1337, __pyx_L1_error) + __PYX_ERR(0, 1350, __pyx_L1_error) break; } - /* "pyreadstat/_readstat_parser.pyx":1339 + /* "pyreadstat/_readstat_parser.pyx":1352 * raise PyreadstatError("Unknown file format") * * data.origin = origin # <<<<<<<<<<<<<< @@ -19211,17 +19353,17 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject __Pyx_DECREF(__pyx_v_data->origin); __pyx_v_data->origin = __pyx_v_origin; - /* "pyreadstat/_readstat_parser.pyx":1340 + /* "pyreadstat/_readstat_parser.pyx":1353 * * data.origin = origin * data.unix_to_origin_secs = unix_to_origin_secs # <<<<<<<<<<<<<< * * if usecols is not None: */ - __pyx_t_22 = __Pyx_PyFloat_AsDouble(__pyx_v_unix_to_origin_secs); if (unlikely((__pyx_t_22 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1340, __pyx_L1_error) + __pyx_t_22 = __Pyx_PyFloat_AsDouble(__pyx_v_unix_to_origin_secs); if (unlikely((__pyx_t_22 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1353, __pyx_L1_error) __pyx_v_data->unix_to_origin_secs = __pyx_t_22; - /* "pyreadstat/_readstat_parser.pyx":1342 + /* "pyreadstat/_readstat_parser.pyx":1355 * data.unix_to_origin_secs = unix_to_origin_secs * * if usecols is not None: # <<<<<<<<<<<<<< @@ -19231,7 +19373,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject __pyx_t_1 = (__pyx_v_usecols != ((PyObject*)Py_None)); if (__pyx_t_1) { - /* "pyreadstat/_readstat_parser.pyx":1343 + /* "pyreadstat/_readstat_parser.pyx":1356 * * if usecols is not None: * data.filter_cols = 1 # <<<<<<<<<<<<<< @@ -19240,7 +19382,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject */ __pyx_v_data->filter_cols = 1; - /* "pyreadstat/_readstat_parser.pyx":1344 + /* "pyreadstat/_readstat_parser.pyx":1357 * if usecols is not None: * data.filter_cols = 1 * data.use_cols = usecols # <<<<<<<<<<<<<< @@ -19253,7 +19395,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject __Pyx_DECREF(__pyx_v_data->use_cols); __pyx_v_data->use_cols = __pyx_v_usecols; - /* "pyreadstat/_readstat_parser.pyx":1342 + /* "pyreadstat/_readstat_parser.pyx":1355 * data.unix_to_origin_secs = unix_to_origin_secs * * if usecols is not None: # <<<<<<<<<<<<<< @@ -19262,7 +19404,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject */ } - /* "pyreadstat/_readstat_parser.pyx":1346 + /* "pyreadstat/_readstat_parser.pyx":1359 * data.use_cols = usecols * * data.usernan = usernan # <<<<<<<<<<<<<< @@ -19271,7 +19413,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject */ __pyx_v_data->usernan = __pyx_v_usernan; - /* "pyreadstat/_readstat_parser.pyx":1347 + /* "pyreadstat/_readstat_parser.pyx":1360 * * data.usernan = usernan * data.no_datetime_conversion = no_datetime_conversion # <<<<<<<<<<<<<< @@ -19280,7 +19422,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject */ __pyx_v_data->no_datetime_conversion = __pyx_v_no_datetime_conversion; - /* "pyreadstat/_readstat_parser.pyx":1350 + /* "pyreadstat/_readstat_parser.pyx":1363 * * # go! * run_readstat_parser(filename, data, file_extension, row_limit, row_offset, file_obj) # <<<<<<<<<<<<<< @@ -19289,31 +19431,31 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject */ __pyx_t_23.__pyx_n = 1; __pyx_t_23.file_obj = __pyx_v_file_obj; - __pyx_f_10pyreadstat_16_readstat_parser_run_readstat_parser(__pyx_v_filename, __pyx_v_data, __pyx_v_file_extension, __pyx_v_row_limit, __pyx_v_row_offset, &__pyx_t_23); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1350, __pyx_L1_error) + __pyx_f_10pyreadstat_16_readstat_parser_run_readstat_parser(__pyx_v_filename, __pyx_v_data, __pyx_v_file_extension, __pyx_v_row_limit, __pyx_v_row_offset, &__pyx_t_23); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1363, __pyx_L1_error) - /* "pyreadstat/_readstat_parser.pyx":1351 + /* "pyreadstat/_readstat_parser.pyx":1364 * # go! * run_readstat_parser(filename, data, file_extension, row_limit, row_offset, file_obj) * data_dict = data_container_to_dict(data) # <<<<<<<<<<<<<< * if output_format == 'dict': * data_frame = data_dict */ - __pyx_t_3 = __pyx_f_10pyreadstat_16_readstat_parser_data_container_to_dict(__pyx_v_data); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1351, __pyx_L1_error) + __pyx_t_3 = __pyx_f_10pyreadstat_16_readstat_parser_data_container_to_dict(__pyx_v_data); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1364, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_v_data_dict = __pyx_t_3; __pyx_t_3 = 0; - /* "pyreadstat/_readstat_parser.pyx":1352 + /* "pyreadstat/_readstat_parser.pyx":1365 * run_readstat_parser(filename, data, file_extension, row_limit, row_offset, file_obj) * data_dict = data_container_to_dict(data) * if output_format == 'dict': # <<<<<<<<<<<<<< * data_frame = data_dict * else: */ - __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_output_format, __pyx_mstate_global->__pyx_n_u_dict, Py_EQ)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 1352, __pyx_L1_error) + __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_output_format, __pyx_mstate_global->__pyx_n_u_dict, Py_EQ)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 1365, __pyx_L1_error) if (__pyx_t_1) { - /* "pyreadstat/_readstat_parser.pyx":1353 + /* "pyreadstat/_readstat_parser.pyx":1366 * data_dict = data_container_to_dict(data) * if output_format == 'dict': * data_frame = data_dict # <<<<<<<<<<<<<< @@ -19323,7 +19465,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject __Pyx_INCREF(__pyx_v_data_dict); __pyx_v_data_frame = __pyx_v_data_dict; - /* "pyreadstat/_readstat_parser.pyx":1352 + /* "pyreadstat/_readstat_parser.pyx":1365 * run_readstat_parser(filename, data, file_extension, row_limit, row_offset, file_obj) * data_dict = data_container_to_dict(data) * if output_format == 'dict': # <<<<<<<<<<<<<< @@ -19333,7 +19475,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject goto __pyx_L70; } - /* "pyreadstat/_readstat_parser.pyx":1355 + /* "pyreadstat/_readstat_parser.pyx":1368 * data_frame = data_dict * else: * data_frame = dict_to_dataframe(data_dict, data) # <<<<<<<<<<<<<< @@ -19341,26 +19483,26 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject * */ /*else*/ { - __pyx_t_3 = __pyx_f_10pyreadstat_16_readstat_parser_dict_to_dataframe(__pyx_v_data_dict, __pyx_v_data); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1355, __pyx_L1_error) + __pyx_t_3 = __pyx_f_10pyreadstat_16_readstat_parser_dict_to_dataframe(__pyx_v_data_dict, __pyx_v_data); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1368, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_v_data_frame = __pyx_t_3; __pyx_t_3 = 0; } __pyx_L70:; - /* "pyreadstat/_readstat_parser.pyx":1356 + /* "pyreadstat/_readstat_parser.pyx":1369 * else: * data_frame = dict_to_dataframe(data_dict, data) * metadata = data_container_extract_metadata(data) # <<<<<<<<<<<<<< * * return data_frame, metadata */ - __pyx_t_3 = __pyx_f_10pyreadstat_16_readstat_parser_data_container_extract_metadata(__pyx_v_data); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1356, __pyx_L1_error) + __pyx_t_3 = __pyx_f_10pyreadstat_16_readstat_parser_data_container_extract_metadata(__pyx_v_data); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1369, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_v_metadata = __pyx_t_3; __pyx_t_3 = 0; - /* "pyreadstat/_readstat_parser.pyx":1358 + /* "pyreadstat/_readstat_parser.pyx":1371 * metadata = data_container_extract_metadata(data) * * return data_frame, metadata # <<<<<<<<<<<<<< @@ -19368,19 +19510,19 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject * def parser_entry_point(filename_path, str parser_format=None, */ __Pyx_XDECREF(__pyx_r); - __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1358, __pyx_L1_error) + __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1371, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_INCREF(__pyx_v_data_frame); __Pyx_GIVEREF(__pyx_v_data_frame); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_data_frame) != (0)) __PYX_ERR(0, 1358, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_data_frame) != (0)) __PYX_ERR(0, 1371, __pyx_L1_error); __Pyx_INCREF(__pyx_v_metadata); __Pyx_GIVEREF(__pyx_v_metadata); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_v_metadata) != (0)) __PYX_ERR(0, 1358, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_v_metadata) != (0)) __PYX_ERR(0, 1371, __pyx_L1_error); __pyx_r = __pyx_t_3; __pyx_t_3 = 0; goto __pyx_L0; - /* "pyreadstat/_readstat_parser.pyx":1217 + /* "pyreadstat/_readstat_parser.pyx":1230 * * * cdef object run_conversion(object filename_path, py_file_format file_format, py_file_extension file_extension, # <<<<<<<<<<<<<< @@ -19423,7 +19565,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_parser_run_conversion(PyObject return __pyx_r; } -/* "pyreadstat/_readstat_parser.pyx":1360 +/* "pyreadstat/_readstat_parser.pyx":1373 * return data_frame, metadata * * def parser_entry_point(filename_path, str parser_format=None, # <<<<<<<<<<<<<< @@ -19485,81 +19627,81 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_filename_path,&__pyx_mstate_global->__pyx_n_u_parser_format,&__pyx_mstate_global->__pyx_n_u_metadataonly,&__pyx_mstate_global->__pyx_n_u_dates_as_pandas_datetime,&__pyx_mstate_global->__pyx_n_u_formats_as_category,&__pyx_mstate_global->__pyx_n_u_formats_as_ordered_category,&__pyx_mstate_global->__pyx_n_u_encoding,&__pyx_mstate_global->__pyx_n_u_usecols,&__pyx_mstate_global->__pyx_n_u_user_missing,&__pyx_mstate_global->__pyx_n_u_disable_datetime_conversion,&__pyx_mstate_global->__pyx_n_u_row_limit,&__pyx_mstate_global->__pyx_n_u_row_offset,&__pyx_mstate_global->__pyx_n_u_output_format,&__pyx_mstate_global->__pyx_n_u_extra_datetime_formats,&__pyx_mstate_global->__pyx_n_u_extra_date_formats,&__pyx_mstate_global->__pyx_n_u_extra_time_formats,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(0, 1360, __pyx_L3_error) + if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(0, 1373, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 16: values[15] = __Pyx_ArgRef_FASTCALL(__pyx_args, 15); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[15])) __PYX_ERR(0, 1360, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[15])) __PYX_ERR(0, 1373, __pyx_L3_error) CYTHON_FALLTHROUGH; case 15: values[14] = __Pyx_ArgRef_FASTCALL(__pyx_args, 14); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[14])) __PYX_ERR(0, 1360, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[14])) __PYX_ERR(0, 1373, __pyx_L3_error) CYTHON_FALLTHROUGH; case 14: values[13] = __Pyx_ArgRef_FASTCALL(__pyx_args, 13); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[13])) __PYX_ERR(0, 1360, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[13])) __PYX_ERR(0, 1373, __pyx_L3_error) CYTHON_FALLTHROUGH; case 13: values[12] = __Pyx_ArgRef_FASTCALL(__pyx_args, 12); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[12])) __PYX_ERR(0, 1360, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[12])) __PYX_ERR(0, 1373, __pyx_L3_error) CYTHON_FALLTHROUGH; case 12: values[11] = __Pyx_ArgRef_FASTCALL(__pyx_args, 11); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[11])) __PYX_ERR(0, 1360, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[11])) __PYX_ERR(0, 1373, __pyx_L3_error) CYTHON_FALLTHROUGH; case 11: values[10] = __Pyx_ArgRef_FASTCALL(__pyx_args, 10); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[10])) __PYX_ERR(0, 1360, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[10])) __PYX_ERR(0, 1373, __pyx_L3_error) CYTHON_FALLTHROUGH; case 10: values[9] = __Pyx_ArgRef_FASTCALL(__pyx_args, 9); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[9])) __PYX_ERR(0, 1360, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[9])) __PYX_ERR(0, 1373, __pyx_L3_error) CYTHON_FALLTHROUGH; case 9: values[8] = __Pyx_ArgRef_FASTCALL(__pyx_args, 8); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[8])) __PYX_ERR(0, 1360, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[8])) __PYX_ERR(0, 1373, __pyx_L3_error) CYTHON_FALLTHROUGH; case 8: values[7] = __Pyx_ArgRef_FASTCALL(__pyx_args, 7); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(0, 1360, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(0, 1373, __pyx_L3_error) CYTHON_FALLTHROUGH; case 7: values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(0, 1360, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(0, 1373, __pyx_L3_error) CYTHON_FALLTHROUGH; case 6: values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(0, 1360, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(0, 1373, __pyx_L3_error) CYTHON_FALLTHROUGH; case 5: values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(0, 1360, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(0, 1373, __pyx_L3_error) CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(0, 1360, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(0, 1373, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 1360, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 1373, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 1360, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 1373, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1360, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1373, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "parser_entry_point", 0) < (0)) __PYX_ERR(0, 1360, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "parser_entry_point", 0) < (0)) __PYX_ERR(0, 1373, __pyx_L3_error) if (!values[1]) values[1] = __Pyx_NewRef(((PyObject*)Py_None)); - /* "pyreadstat/_readstat_parser.pyx":1361 + /* "pyreadstat/_readstat_parser.pyx":1374 * * def parser_entry_point(filename_path, str parser_format=None, * metadataonly=False, dates_as_pandas_datetime=False, # <<<<<<<<<<<<<< @@ -19569,7 +19711,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds if (!values[2]) values[2] = __Pyx_NewRef(((PyObject *)((PyObject*)Py_False))); if (!values[3]) values[3] = __Pyx_NewRef(((PyObject *)((PyObject*)Py_False))); - /* "pyreadstat/_readstat_parser.pyx":1362 + /* "pyreadstat/_readstat_parser.pyx":1375 * def parser_entry_point(filename_path, str parser_format=None, * metadataonly=False, dates_as_pandas_datetime=False, * formats_as_category=True, formats_as_ordered_category=False, str encoding=None, list usecols=None, user_missing=False, # <<<<<<<<<<<<<< @@ -19582,7 +19724,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds if (!values[7]) values[7] = __Pyx_NewRef(((PyObject*)Py_None)); if (!values[8]) values[8] = __Pyx_NewRef(((PyObject *)((PyObject*)Py_False))); - /* "pyreadstat/_readstat_parser.pyx":1363 + /* "pyreadstat/_readstat_parser.pyx":1376 * metadataonly=False, dates_as_pandas_datetime=False, * formats_as_category=True, formats_as_ordered_category=False, str encoding=None, list usecols=None, user_missing=False, * disable_datetime_conversion=False, int row_limit=0, int row_offset=0, str output_format=None, list extra_datetime_formats=None, # <<<<<<<<<<<<<< @@ -19593,7 +19735,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds if (!values[12]) values[12] = __Pyx_NewRef(((PyObject*)Py_None)); if (!values[13]) values[13] = __Pyx_NewRef(((PyObject*)Py_None)); - /* "pyreadstat/_readstat_parser.pyx":1364 + /* "pyreadstat/_readstat_parser.pyx":1377 * formats_as_category=True, formats_as_ordered_category=False, str encoding=None, list usecols=None, user_missing=False, * disable_datetime_conversion=False, int row_limit=0, int row_offset=0, str output_format=None, list extra_datetime_formats=None, * list extra_date_formats=None, list extra_time_formats=None): # <<<<<<<<<<<<<< @@ -19603,78 +19745,78 @@ PyObject *__pyx_args, PyObject *__pyx_kwds if (!values[14]) values[14] = __Pyx_NewRef(((PyObject*)Py_None)); if (!values[15]) values[15] = __Pyx_NewRef(((PyObject*)Py_None)); for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("parser_entry_point", 0, 1, 16, i); __PYX_ERR(0, 1360, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("parser_entry_point", 0, 1, 16, i); __PYX_ERR(0, 1373, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 16: values[15] = __Pyx_ArgRef_FASTCALL(__pyx_args, 15); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[15])) __PYX_ERR(0, 1360, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[15])) __PYX_ERR(0, 1373, __pyx_L3_error) CYTHON_FALLTHROUGH; case 15: values[14] = __Pyx_ArgRef_FASTCALL(__pyx_args, 14); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[14])) __PYX_ERR(0, 1360, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[14])) __PYX_ERR(0, 1373, __pyx_L3_error) CYTHON_FALLTHROUGH; case 14: values[13] = __Pyx_ArgRef_FASTCALL(__pyx_args, 13); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[13])) __PYX_ERR(0, 1360, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[13])) __PYX_ERR(0, 1373, __pyx_L3_error) CYTHON_FALLTHROUGH; case 13: values[12] = __Pyx_ArgRef_FASTCALL(__pyx_args, 12); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[12])) __PYX_ERR(0, 1360, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[12])) __PYX_ERR(0, 1373, __pyx_L3_error) CYTHON_FALLTHROUGH; case 12: values[11] = __Pyx_ArgRef_FASTCALL(__pyx_args, 11); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[11])) __PYX_ERR(0, 1360, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[11])) __PYX_ERR(0, 1373, __pyx_L3_error) CYTHON_FALLTHROUGH; case 11: values[10] = __Pyx_ArgRef_FASTCALL(__pyx_args, 10); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[10])) __PYX_ERR(0, 1360, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[10])) __PYX_ERR(0, 1373, __pyx_L3_error) CYTHON_FALLTHROUGH; case 10: values[9] = __Pyx_ArgRef_FASTCALL(__pyx_args, 9); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[9])) __PYX_ERR(0, 1360, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[9])) __PYX_ERR(0, 1373, __pyx_L3_error) CYTHON_FALLTHROUGH; case 9: values[8] = __Pyx_ArgRef_FASTCALL(__pyx_args, 8); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[8])) __PYX_ERR(0, 1360, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[8])) __PYX_ERR(0, 1373, __pyx_L3_error) CYTHON_FALLTHROUGH; case 8: values[7] = __Pyx_ArgRef_FASTCALL(__pyx_args, 7); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(0, 1360, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(0, 1373, __pyx_L3_error) CYTHON_FALLTHROUGH; case 7: values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(0, 1360, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(0, 1373, __pyx_L3_error) CYTHON_FALLTHROUGH; case 6: values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(0, 1360, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(0, 1373, __pyx_L3_error) CYTHON_FALLTHROUGH; case 5: values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(0, 1360, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(0, 1373, __pyx_L3_error) CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(0, 1360, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(0, 1373, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 1360, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 1373, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 1360, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 1373, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1360, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1373, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } - /* "pyreadstat/_readstat_parser.pyx":1360 + /* "pyreadstat/_readstat_parser.pyx":1373 * return data_frame, metadata * * def parser_entry_point(filename_path, str parser_format=None, # <<<<<<<<<<<<<< @@ -19687,7 +19829,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds if (!values[4]) values[4] = __Pyx_NewRef(((PyObject *)((PyObject*)Py_True))); if (!values[5]) values[5] = __Pyx_NewRef(((PyObject *)((PyObject*)Py_False))); - /* "pyreadstat/_readstat_parser.pyx":1362 + /* "pyreadstat/_readstat_parser.pyx":1375 * def parser_entry_point(filename_path, str parser_format=None, * metadataonly=False, dates_as_pandas_datetime=False, * formats_as_category=True, formats_as_ordered_category=False, str encoding=None, list usecols=None, user_missing=False, # <<<<<<<<<<<<<< @@ -19699,7 +19841,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds if (!values[8]) values[8] = __Pyx_NewRef(((PyObject *)((PyObject*)Py_False))); if (!values[9]) values[9] = __Pyx_NewRef(((PyObject *)((PyObject*)Py_False))); - /* "pyreadstat/_readstat_parser.pyx":1363 + /* "pyreadstat/_readstat_parser.pyx":1376 * metadataonly=False, dates_as_pandas_datetime=False, * formats_as_category=True, formats_as_ordered_category=False, str encoding=None, list usecols=None, user_missing=False, * disable_datetime_conversion=False, int row_limit=0, int row_offset=0, str output_format=None, list extra_datetime_formats=None, # <<<<<<<<<<<<<< @@ -19709,7 +19851,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds if (!values[12]) values[12] = __Pyx_NewRef(((PyObject*)Py_None)); if (!values[13]) values[13] = __Pyx_NewRef(((PyObject*)Py_None)); - /* "pyreadstat/_readstat_parser.pyx":1364 + /* "pyreadstat/_readstat_parser.pyx":1377 * formats_as_category=True, formats_as_ordered_category=False, str encoding=None, list usecols=None, user_missing=False, * disable_datetime_conversion=False, int row_limit=0, int row_offset=0, str output_format=None, list extra_datetime_formats=None, * list extra_date_formats=None, list extra_time_formats=None): # <<<<<<<<<<<<<< @@ -19730,12 +19872,12 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __pyx_v_user_missing = values[8]; __pyx_v_disable_datetime_conversion = values[9]; if (values[10]) { - __pyx_v_row_limit = __Pyx_PyLong_As_int(values[10]); if (unlikely((__pyx_v_row_limit == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 1363, __pyx_L3_error) + __pyx_v_row_limit = __Pyx_PyLong_As_int(values[10]); if (unlikely((__pyx_v_row_limit == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 1376, __pyx_L3_error) } else { __pyx_v_row_limit = ((int)((int)0)); } if (values[11]) { - __pyx_v_row_offset = __Pyx_PyLong_As_int(values[11]); if (unlikely((__pyx_v_row_offset == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 1363, __pyx_L3_error) + __pyx_v_row_offset = __Pyx_PyLong_As_int(values[11]); if (unlikely((__pyx_v_row_offset == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 1376, __pyx_L3_error) } else { __pyx_v_row_offset = ((int)((int)0)); } @@ -19746,7 +19888,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("parser_entry_point", 0, 1, 16, __pyx_nargs); __PYX_ERR(0, 1360, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("parser_entry_point", 0, 1, 16, __pyx_nargs); __PYX_ERR(0, 1373, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -19757,16 +19899,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_parser_format), (&PyUnicode_Type), 1, "parser_format", 1))) __PYX_ERR(0, 1360, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_encoding), (&PyUnicode_Type), 1, "encoding", 1))) __PYX_ERR(0, 1362, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_usecols), (&PyList_Type), 1, "usecols", 1))) __PYX_ERR(0, 1362, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_output_format), (&PyUnicode_Type), 1, "output_format", 1))) __PYX_ERR(0, 1363, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_extra_datetime_formats), (&PyList_Type), 1, "extra_datetime_formats", 1))) __PYX_ERR(0, 1363, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_extra_date_formats), (&PyList_Type), 1, "extra_date_formats", 1))) __PYX_ERR(0, 1364, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_extra_time_formats), (&PyList_Type), 1, "extra_time_formats", 1))) __PYX_ERR(0, 1364, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_parser_format), (&PyUnicode_Type), 1, "parser_format", 1))) __PYX_ERR(0, 1373, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_encoding), (&PyUnicode_Type), 1, "encoding", 1))) __PYX_ERR(0, 1375, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_usecols), (&PyList_Type), 1, "usecols", 1))) __PYX_ERR(0, 1375, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_output_format), (&PyUnicode_Type), 1, "output_format", 1))) __PYX_ERR(0, 1376, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_extra_datetime_formats), (&PyList_Type), 1, "extra_datetime_formats", 1))) __PYX_ERR(0, 1376, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_extra_date_formats), (&PyList_Type), 1, "extra_date_formats", 1))) __PYX_ERR(0, 1377, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_extra_time_formats), (&PyList_Type), 1, "extra_time_formats", 1))) __PYX_ERR(0, 1377, __pyx_L1_error) __pyx_r = __pyx_pf_10pyreadstat_16_readstat_parser_parser_entry_point(__pyx_self, __pyx_v_filename_path, __pyx_v_parser_format, __pyx_v_metadataonly, __pyx_v_dates_as_pandas_datetime, __pyx_v_formats_as_category, __pyx_v_formats_as_ordered_category, __pyx_v_encoding, __pyx_v_usecols, __pyx_v_user_missing, __pyx_v_disable_datetime_conversion, __pyx_v_row_limit, __pyx_v_row_offset, __pyx_v_output_format, __pyx_v_extra_datetime_formats, __pyx_v_extra_date_formats, __pyx_v_extra_time_formats); - /* "pyreadstat/_readstat_parser.pyx":1360 + /* "pyreadstat/_readstat_parser.pyx":1373 * return data_frame, metadata * * def parser_entry_point(filename_path, str parser_format=None, # <<<<<<<<<<<<<< @@ -19814,17 +19956,17 @@ static PyObject *__pyx_pf_10pyreadstat_16_readstat_parser_parser_entry_point(CYT int __pyx_clineno = 0; __Pyx_RefNannySetupContext("parser_entry_point", 0); - /* "pyreadstat/_readstat_parser.pyx":1370 + /* "pyreadstat/_readstat_parser.pyx":1383 * cdef py_file_extension file_extension * * if parser_format == "sav/zsav": # <<<<<<<<<<<<<< * file_format = FILE_FORMAT_SPSS * file_extension = FILE_EXT_SAV */ - __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_parser_format, __pyx_mstate_global->__pyx_kp_u_sav_zsav, Py_EQ)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 1370, __pyx_L1_error) + __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_parser_format, __pyx_mstate_global->__pyx_kp_u_sav_zsav, Py_EQ)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 1383, __pyx_L1_error) if (__pyx_t_1) { - /* "pyreadstat/_readstat_parser.pyx":1371 + /* "pyreadstat/_readstat_parser.pyx":1384 * * if parser_format == "sav/zsav": * file_format = FILE_FORMAT_SPSS # <<<<<<<<<<<<<< @@ -19833,7 +19975,7 @@ static PyObject *__pyx_pf_10pyreadstat_16_readstat_parser_parser_entry_point(CYT */ __pyx_v_file_format = __pyx_e_10pyreadstat_16_readstat_parser_FILE_FORMAT_SPSS; - /* "pyreadstat/_readstat_parser.pyx":1372 + /* "pyreadstat/_readstat_parser.pyx":1385 * if parser_format == "sav/zsav": * file_format = FILE_FORMAT_SPSS * file_extension = FILE_EXT_SAV # <<<<<<<<<<<<<< @@ -19842,7 +19984,7 @@ static PyObject *__pyx_pf_10pyreadstat_16_readstat_parser_parser_entry_point(CYT */ __pyx_v_file_extension = __pyx_e_10pyreadstat_16_readstat_parser_FILE_EXT_SAV; - /* "pyreadstat/_readstat_parser.pyx":1370 + /* "pyreadstat/_readstat_parser.pyx":1383 * cdef py_file_extension file_extension * * if parser_format == "sav/zsav": # <<<<<<<<<<<<<< @@ -19852,17 +19994,17 @@ static PyObject *__pyx_pf_10pyreadstat_16_readstat_parser_parser_entry_point(CYT goto __pyx_L3; } - /* "pyreadstat/_readstat_parser.pyx":1373 + /* "pyreadstat/_readstat_parser.pyx":1386 * file_format = FILE_FORMAT_SPSS * file_extension = FILE_EXT_SAV * elif parser_format == "sas7bdat": # <<<<<<<<<<<<<< * file_format = FILE_FORMAT_SAS * file_extension = FILE_EXT_SAS7BDAT */ - __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_parser_format, __pyx_mstate_global->__pyx_n_u_sas7bdat, Py_EQ)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 1373, __pyx_L1_error) + __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_parser_format, __pyx_mstate_global->__pyx_n_u_sas7bdat, Py_EQ)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 1386, __pyx_L1_error) if (__pyx_t_1) { - /* "pyreadstat/_readstat_parser.pyx":1374 + /* "pyreadstat/_readstat_parser.pyx":1387 * file_extension = FILE_EXT_SAV * elif parser_format == "sas7bdat": * file_format = FILE_FORMAT_SAS # <<<<<<<<<<<<<< @@ -19871,7 +20013,7 @@ static PyObject *__pyx_pf_10pyreadstat_16_readstat_parser_parser_entry_point(CYT */ __pyx_v_file_format = __pyx_e_10pyreadstat_16_readstat_parser_FILE_FORMAT_SAS; - /* "pyreadstat/_readstat_parser.pyx":1375 + /* "pyreadstat/_readstat_parser.pyx":1388 * elif parser_format == "sas7bdat": * file_format = FILE_FORMAT_SAS * file_extension = FILE_EXT_SAS7BDAT # <<<<<<<<<<<<<< @@ -19880,7 +20022,7 @@ static PyObject *__pyx_pf_10pyreadstat_16_readstat_parser_parser_entry_point(CYT */ __pyx_v_file_extension = __pyx_e_10pyreadstat_16_readstat_parser_FILE_EXT_SAS7BDAT; - /* "pyreadstat/_readstat_parser.pyx":1373 + /* "pyreadstat/_readstat_parser.pyx":1386 * file_format = FILE_FORMAT_SPSS * file_extension = FILE_EXT_SAV * elif parser_format == "sas7bdat": # <<<<<<<<<<<<<< @@ -19890,17 +20032,17 @@ static PyObject *__pyx_pf_10pyreadstat_16_readstat_parser_parser_entry_point(CYT goto __pyx_L3; } - /* "pyreadstat/_readstat_parser.pyx":1376 + /* "pyreadstat/_readstat_parser.pyx":1389 * file_format = FILE_FORMAT_SAS * file_extension = FILE_EXT_SAS7BDAT * elif parser_format == "xport": # <<<<<<<<<<<<<< * file_format = FILE_FORMAT_SAS * file_extension = FILE_EXT_XPORT */ - __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_parser_format, __pyx_mstate_global->__pyx_n_u_xport, Py_EQ)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 1376, __pyx_L1_error) + __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_parser_format, __pyx_mstate_global->__pyx_n_u_xport, Py_EQ)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 1389, __pyx_L1_error) if (__pyx_t_1) { - /* "pyreadstat/_readstat_parser.pyx":1377 + /* "pyreadstat/_readstat_parser.pyx":1390 * file_extension = FILE_EXT_SAS7BDAT * elif parser_format == "xport": * file_format = FILE_FORMAT_SAS # <<<<<<<<<<<<<< @@ -19909,7 +20051,7 @@ static PyObject *__pyx_pf_10pyreadstat_16_readstat_parser_parser_entry_point(CYT */ __pyx_v_file_format = __pyx_e_10pyreadstat_16_readstat_parser_FILE_FORMAT_SAS; - /* "pyreadstat/_readstat_parser.pyx":1378 + /* "pyreadstat/_readstat_parser.pyx":1391 * elif parser_format == "xport": * file_format = FILE_FORMAT_SAS * file_extension = FILE_EXT_XPORT # <<<<<<<<<<<<<< @@ -19918,7 +20060,7 @@ static PyObject *__pyx_pf_10pyreadstat_16_readstat_parser_parser_entry_point(CYT */ __pyx_v_file_extension = __pyx_e_10pyreadstat_16_readstat_parser_FILE_EXT_XPORT; - /* "pyreadstat/_readstat_parser.pyx":1376 + /* "pyreadstat/_readstat_parser.pyx":1389 * file_format = FILE_FORMAT_SAS * file_extension = FILE_EXT_SAS7BDAT * elif parser_format == "xport": # <<<<<<<<<<<<<< @@ -19928,17 +20070,17 @@ static PyObject *__pyx_pf_10pyreadstat_16_readstat_parser_parser_entry_point(CYT goto __pyx_L3; } - /* "pyreadstat/_readstat_parser.pyx":1379 + /* "pyreadstat/_readstat_parser.pyx":1392 * file_format = FILE_FORMAT_SAS * file_extension = FILE_EXT_XPORT * elif parser_format == "dta": # <<<<<<<<<<<<<< * file_format = FILE_FORMAT_STATA * file_extension = FILE_EXT_DTA */ - __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_parser_format, __pyx_mstate_global->__pyx_n_u_dta, Py_EQ)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 1379, __pyx_L1_error) + __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_parser_format, __pyx_mstate_global->__pyx_n_u_dta, Py_EQ)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 1392, __pyx_L1_error) if (__pyx_t_1) { - /* "pyreadstat/_readstat_parser.pyx":1380 + /* "pyreadstat/_readstat_parser.pyx":1393 * file_extension = FILE_EXT_XPORT * elif parser_format == "dta": * file_format = FILE_FORMAT_STATA # <<<<<<<<<<<<<< @@ -19947,7 +20089,7 @@ static PyObject *__pyx_pf_10pyreadstat_16_readstat_parser_parser_entry_point(CYT */ __pyx_v_file_format = __pyx_e_10pyreadstat_16_readstat_parser_FILE_FORMAT_STATA; - /* "pyreadstat/_readstat_parser.pyx":1381 + /* "pyreadstat/_readstat_parser.pyx":1394 * elif parser_format == "dta": * file_format = FILE_FORMAT_STATA * file_extension = FILE_EXT_DTA # <<<<<<<<<<<<<< @@ -19956,7 +20098,7 @@ static PyObject *__pyx_pf_10pyreadstat_16_readstat_parser_parser_entry_point(CYT */ __pyx_v_file_extension = __pyx_e_10pyreadstat_16_readstat_parser_FILE_EXT_DTA; - /* "pyreadstat/_readstat_parser.pyx":1379 + /* "pyreadstat/_readstat_parser.pyx":1392 * file_format = FILE_FORMAT_SAS * file_extension = FILE_EXT_XPORT * elif parser_format == "dta": # <<<<<<<<<<<<<< @@ -19966,17 +20108,17 @@ static PyObject *__pyx_pf_10pyreadstat_16_readstat_parser_parser_entry_point(CYT goto __pyx_L3; } - /* "pyreadstat/_readstat_parser.pyx":1382 + /* "pyreadstat/_readstat_parser.pyx":1395 * file_format = FILE_FORMAT_STATA * file_extension = FILE_EXT_DTA * elif parser_format == "por": # <<<<<<<<<<<<<< * file_format = FILE_FORMAT_SPSS * file_extension = FILE_EXT_POR */ - __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_parser_format, __pyx_mstate_global->__pyx_n_u_por, Py_EQ)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 1382, __pyx_L1_error) + __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_parser_format, __pyx_mstate_global->__pyx_n_u_por, Py_EQ)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 1395, __pyx_L1_error) if (__pyx_t_1) { - /* "pyreadstat/_readstat_parser.pyx":1383 + /* "pyreadstat/_readstat_parser.pyx":1396 * file_extension = FILE_EXT_DTA * elif parser_format == "por": * file_format = FILE_FORMAT_SPSS # <<<<<<<<<<<<<< @@ -19985,7 +20127,7 @@ static PyObject *__pyx_pf_10pyreadstat_16_readstat_parser_parser_entry_point(CYT */ __pyx_v_file_format = __pyx_e_10pyreadstat_16_readstat_parser_FILE_FORMAT_SPSS; - /* "pyreadstat/_readstat_parser.pyx":1384 + /* "pyreadstat/_readstat_parser.pyx":1397 * elif parser_format == "por": * file_format = FILE_FORMAT_SPSS * file_extension = FILE_EXT_POR # <<<<<<<<<<<<<< @@ -19994,7 +20136,7 @@ static PyObject *__pyx_pf_10pyreadstat_16_readstat_parser_parser_entry_point(CYT */ __pyx_v_file_extension = __pyx_e_10pyreadstat_16_readstat_parser_FILE_EXT_POR; - /* "pyreadstat/_readstat_parser.pyx":1382 + /* "pyreadstat/_readstat_parser.pyx":1395 * file_format = FILE_FORMAT_STATA * file_extension = FILE_EXT_DTA * elif parser_format == "por": # <<<<<<<<<<<<<< @@ -20004,17 +20146,17 @@ static PyObject *__pyx_pf_10pyreadstat_16_readstat_parser_parser_entry_point(CYT goto __pyx_L3; } - /* "pyreadstat/_readstat_parser.pyx":1385 + /* "pyreadstat/_readstat_parser.pyx":1398 * file_format = FILE_FORMAT_SPSS * file_extension = FILE_EXT_POR * elif parser_format == "sas7bcat": # <<<<<<<<<<<<<< * file_format = FILE_FORMAT_SAS * file_extension = FILE_EXT_SAS7BCAT */ - __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_parser_format, __pyx_mstate_global->__pyx_n_u_sas7bcat, Py_EQ)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 1385, __pyx_L1_error) + __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_parser_format, __pyx_mstate_global->__pyx_n_u_sas7bcat, Py_EQ)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 1398, __pyx_L1_error) if (likely(__pyx_t_1)) { - /* "pyreadstat/_readstat_parser.pyx":1386 + /* "pyreadstat/_readstat_parser.pyx":1399 * file_extension = FILE_EXT_POR * elif parser_format == "sas7bcat": * file_format = FILE_FORMAT_SAS # <<<<<<<<<<<<<< @@ -20023,7 +20165,7 @@ static PyObject *__pyx_pf_10pyreadstat_16_readstat_parser_parser_entry_point(CYT */ __pyx_v_file_format = __pyx_e_10pyreadstat_16_readstat_parser_FILE_FORMAT_SAS; - /* "pyreadstat/_readstat_parser.pyx":1387 + /* "pyreadstat/_readstat_parser.pyx":1400 * elif parser_format == "sas7bcat": * file_format = FILE_FORMAT_SAS * file_extension = FILE_EXT_SAS7BCAT # <<<<<<<<<<<<<< @@ -20032,7 +20174,7 @@ static PyObject *__pyx_pf_10pyreadstat_16_readstat_parser_parser_entry_point(CYT */ __pyx_v_file_extension = __pyx_e_10pyreadstat_16_readstat_parser_FILE_EXT_SAS7BCAT; - /* "pyreadstat/_readstat_parser.pyx":1385 + /* "pyreadstat/_readstat_parser.pyx":1398 * file_format = FILE_FORMAT_SPSS * file_extension = FILE_EXT_POR * elif parser_format == "sas7bcat": # <<<<<<<<<<<<<< @@ -20042,7 +20184,7 @@ static PyObject *__pyx_pf_10pyreadstat_16_readstat_parser_parser_entry_point(CYT goto __pyx_L3; } - /* "pyreadstat/_readstat_parser.pyx":1389 + /* "pyreadstat/_readstat_parser.pyx":1402 * file_extension = FILE_EXT_SAS7BCAT * else: * raise PyreadstatError("wrong parser format") # <<<<<<<<<<<<<< @@ -20051,7 +20193,7 @@ static PyObject *__pyx_pf_10pyreadstat_16_readstat_parser_parser_entry_point(CYT */ /*else*/ { __pyx_t_3 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1389, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1402, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = 1; #if CYTHON_UNPACK_METHODS @@ -20070,16 +20212,16 @@ static PyObject *__pyx_pf_10pyreadstat_16_readstat_parser_parser_entry_point(CYT __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1389, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1402, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } __Pyx_Raise(__pyx_t_2, 0, 0, 0); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __PYX_ERR(0, 1389, __pyx_L1_error) + __PYX_ERR(0, 1402, __pyx_L1_error) } __pyx_L3:; - /* "pyreadstat/_readstat_parser.pyx":1391 + /* "pyreadstat/_readstat_parser.pyx":1404 * raise PyreadstatError("wrong parser format") * * cdef bint metaonly = 0 # <<<<<<<<<<<<<< @@ -20088,17 +20230,17 @@ static PyObject *__pyx_pf_10pyreadstat_16_readstat_parser_parser_entry_point(CYT */ __pyx_v_metaonly = 0; - /* "pyreadstat/_readstat_parser.pyx":1392 + /* "pyreadstat/_readstat_parser.pyx":1405 * * cdef bint metaonly = 0 * if metadataonly: # <<<<<<<<<<<<<< * metaonly = 1 * */ - __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_metadataonly); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 1392, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_metadataonly); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 1405, __pyx_L1_error) if (__pyx_t_1) { - /* "pyreadstat/_readstat_parser.pyx":1393 + /* "pyreadstat/_readstat_parser.pyx":1406 * cdef bint metaonly = 0 * if metadataonly: * metaonly = 1 # <<<<<<<<<<<<<< @@ -20107,7 +20249,7 @@ static PyObject *__pyx_pf_10pyreadstat_16_readstat_parser_parser_entry_point(CYT */ __pyx_v_metaonly = 1; - /* "pyreadstat/_readstat_parser.pyx":1392 + /* "pyreadstat/_readstat_parser.pyx":1405 * * cdef bint metaonly = 0 * if metadataonly: # <<<<<<<<<<<<<< @@ -20116,7 +20258,7 @@ static PyObject *__pyx_pf_10pyreadstat_16_readstat_parser_parser_entry_point(CYT */ } - /* "pyreadstat/_readstat_parser.pyx":1395 + /* "pyreadstat/_readstat_parser.pyx":1408 * metaonly = 1 * * cdef bint dates_as_pandas = 0 # <<<<<<<<<<<<<< @@ -20125,17 +20267,17 @@ static PyObject *__pyx_pf_10pyreadstat_16_readstat_parser_parser_entry_point(CYT */ __pyx_v_dates_as_pandas = 0; - /* "pyreadstat/_readstat_parser.pyx":1396 + /* "pyreadstat/_readstat_parser.pyx":1409 * * cdef bint dates_as_pandas = 0 * if dates_as_pandas_datetime: # <<<<<<<<<<<<<< * dates_as_pandas = 1 * */ - __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_dates_as_pandas_datetime); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 1396, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_dates_as_pandas_datetime); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 1409, __pyx_L1_error) if (__pyx_t_1) { - /* "pyreadstat/_readstat_parser.pyx":1397 + /* "pyreadstat/_readstat_parser.pyx":1410 * cdef bint dates_as_pandas = 0 * if dates_as_pandas_datetime: * dates_as_pandas = 1 # <<<<<<<<<<<<<< @@ -20144,7 +20286,7 @@ static PyObject *__pyx_pf_10pyreadstat_16_readstat_parser_parser_entry_point(CYT */ __pyx_v_dates_as_pandas = 1; - /* "pyreadstat/_readstat_parser.pyx":1396 + /* "pyreadstat/_readstat_parser.pyx":1409 * * cdef bint dates_as_pandas = 0 * if dates_as_pandas_datetime: # <<<<<<<<<<<<<< @@ -20153,7 +20295,7 @@ static PyObject *__pyx_pf_10pyreadstat_16_readstat_parser_parser_entry_point(CYT */ } - /* "pyreadstat/_readstat_parser.pyx":1399 + /* "pyreadstat/_readstat_parser.pyx":1412 * dates_as_pandas = 1 * * cdef bint usernan = 0 # <<<<<<<<<<<<<< @@ -20162,17 +20304,17 @@ static PyObject *__pyx_pf_10pyreadstat_16_readstat_parser_parser_entry_point(CYT */ __pyx_v_usernan = 0; - /* "pyreadstat/_readstat_parser.pyx":1400 + /* "pyreadstat/_readstat_parser.pyx":1413 * * cdef bint usernan = 0 * if user_missing: # <<<<<<<<<<<<<< * usernan = 1 * */ - __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_user_missing); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 1400, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_user_missing); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 1413, __pyx_L1_error) if (__pyx_t_1) { - /* "pyreadstat/_readstat_parser.pyx":1401 + /* "pyreadstat/_readstat_parser.pyx":1414 * cdef bint usernan = 0 * if user_missing: * usernan = 1 # <<<<<<<<<<<<<< @@ -20181,7 +20323,7 @@ static PyObject *__pyx_pf_10pyreadstat_16_readstat_parser_parser_entry_point(CYT */ __pyx_v_usernan = 1; - /* "pyreadstat/_readstat_parser.pyx":1400 + /* "pyreadstat/_readstat_parser.pyx":1413 * * cdef bint usernan = 0 * if user_missing: # <<<<<<<<<<<<<< @@ -20190,7 +20332,7 @@ static PyObject *__pyx_pf_10pyreadstat_16_readstat_parser_parser_entry_point(CYT */ } - /* "pyreadstat/_readstat_parser.pyx":1403 + /* "pyreadstat/_readstat_parser.pyx":1416 * usernan = 1 * * cdef bint no_datetime_conversion = 0 # <<<<<<<<<<<<<< @@ -20199,17 +20341,17 @@ static PyObject *__pyx_pf_10pyreadstat_16_readstat_parser_parser_entry_point(CYT */ __pyx_v_no_datetime_conversion = 0; - /* "pyreadstat/_readstat_parser.pyx":1404 + /* "pyreadstat/_readstat_parser.pyx":1417 * * cdef bint no_datetime_conversion = 0 * if disable_datetime_conversion: # <<<<<<<<<<<<<< * no_datetime_conversion = 1 * */ - __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_disable_datetime_conversion); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 1404, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_disable_datetime_conversion); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 1417, __pyx_L1_error) if (__pyx_t_1) { - /* "pyreadstat/_readstat_parser.pyx":1405 + /* "pyreadstat/_readstat_parser.pyx":1418 * cdef bint no_datetime_conversion = 0 * if disable_datetime_conversion: * no_datetime_conversion = 1 # <<<<<<<<<<<<<< @@ -20218,7 +20360,7 @@ static PyObject *__pyx_pf_10pyreadstat_16_readstat_parser_parser_entry_point(CYT */ __pyx_v_no_datetime_conversion = 1; - /* "pyreadstat/_readstat_parser.pyx":1404 + /* "pyreadstat/_readstat_parser.pyx":1417 * * cdef bint no_datetime_conversion = 0 * if disable_datetime_conversion: # <<<<<<<<<<<<<< @@ -20227,14 +20369,14 @@ static PyObject *__pyx_pf_10pyreadstat_16_readstat_parser_parser_entry_point(CYT */ } - /* "pyreadstat/_readstat_parser.pyx":1407 + /* "pyreadstat/_readstat_parser.pyx":1420 * no_datetime_conversion = 1 * * data_frame, metadata = run_conversion(filename_path, file_format, file_extension, encoding, metaonly, # <<<<<<<<<<<<<< * dates_as_pandas, usecols, usernan, no_datetime_conversion, row_limit, row_offset, * output_format, extra_datetime_formats, extra_date_formats, extra_time_formats) */ - __pyx_t_2 = __pyx_f_10pyreadstat_16_readstat_parser_run_conversion(__pyx_v_filename_path, __pyx_v_file_format, __pyx_v_file_extension, __pyx_v_encoding, __pyx_v_metaonly, __pyx_v_dates_as_pandas, __pyx_v_usecols, __pyx_v_usernan, __pyx_v_no_datetime_conversion, ((long)__pyx_v_row_limit), ((long)__pyx_v_row_offset), __pyx_v_output_format, __pyx_v_extra_datetime_formats, __pyx_v_extra_date_formats, __pyx_v_extra_time_formats); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1407, __pyx_L1_error) + __pyx_t_2 = __pyx_f_10pyreadstat_16_readstat_parser_run_conversion(__pyx_v_filename_path, __pyx_v_file_format, __pyx_v_file_extension, __pyx_v_encoding, __pyx_v_metaonly, __pyx_v_dates_as_pandas, __pyx_v_usecols, __pyx_v_usernan, __pyx_v_no_datetime_conversion, ((long)__pyx_v_row_limit), ((long)__pyx_v_row_offset), __pyx_v_output_format, __pyx_v_extra_datetime_formats, __pyx_v_extra_date_formats, __pyx_v_extra_time_formats); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1420, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if ((likely(PyTuple_CheckExact(__pyx_t_2))) || (PyList_CheckExact(__pyx_t_2))) { PyObject* sequence = __pyx_t_2; @@ -20242,7 +20384,7 @@ static PyObject *__pyx_pf_10pyreadstat_16_readstat_parser_parser_entry_point(CYT if (unlikely(size != 2)) { if (size > 2) __Pyx_RaiseTooManyValuesError(2); else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); - __PYX_ERR(0, 1407, __pyx_L1_error) + __PYX_ERR(0, 1420, __pyx_L1_error) } #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS if (likely(PyTuple_CheckExact(sequence))) { @@ -20252,22 +20394,22 @@ static PyObject *__pyx_pf_10pyreadstat_16_readstat_parser_parser_entry_point(CYT __Pyx_INCREF(__pyx_t_3); } else { __pyx_t_4 = __Pyx_PyList_GetItemRefFast(sequence, 0, __Pyx_ReferenceSharing_SharedReference); - if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1407, __pyx_L1_error) + if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1420, __pyx_L1_error) __Pyx_XGOTREF(__pyx_t_4); __pyx_t_3 = __Pyx_PyList_GetItemRefFast(sequence, 1, __Pyx_ReferenceSharing_SharedReference); - if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1407, __pyx_L1_error) + if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1420, __pyx_L1_error) __Pyx_XGOTREF(__pyx_t_3); } #else - __pyx_t_4 = __Pyx_PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1407, __pyx_L1_error) + __pyx_t_4 = __Pyx_PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1420, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_3 = __Pyx_PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1407, __pyx_L1_error) + __pyx_t_3 = __Pyx_PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1420, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); #endif __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } else { Py_ssize_t index = -1; - __pyx_t_6 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1407, __pyx_L1_error) + __pyx_t_6 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1420, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_7 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_6); @@ -20275,7 +20417,7 @@ static PyObject *__pyx_pf_10pyreadstat_16_readstat_parser_parser_entry_point(CYT __Pyx_GOTREF(__pyx_t_4); index = 1; __pyx_t_3 = __pyx_t_7(__pyx_t_6); if (unlikely(!__pyx_t_3)) goto __pyx_L8_unpacking_failed; __Pyx_GOTREF(__pyx_t_3); - if (__Pyx_IternextUnpackEndCheck(__pyx_t_7(__pyx_t_6), 2) < (0)) __PYX_ERR(0, 1407, __pyx_L1_error) + if (__Pyx_IternextUnpackEndCheck(__pyx_t_7(__pyx_t_6), 2) < (0)) __PYX_ERR(0, 1420, __pyx_L1_error) __pyx_t_7 = NULL; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; goto __pyx_L9_unpacking_done; @@ -20283,7 +20425,7 @@ static PyObject *__pyx_pf_10pyreadstat_16_readstat_parser_parser_entry_point(CYT __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_7 = NULL; if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); - __PYX_ERR(0, 1407, __pyx_L1_error) + __PYX_ERR(0, 1420, __pyx_L1_error) __pyx_L9_unpacking_done:; } __pyx_v_data_frame = __pyx_t_4; @@ -20291,26 +20433,26 @@ static PyObject *__pyx_pf_10pyreadstat_16_readstat_parser_parser_entry_point(CYT __pyx_v_metadata = __pyx_t_3; __pyx_t_3 = 0; - /* "pyreadstat/_readstat_parser.pyx":1411 + /* "pyreadstat/_readstat_parser.pyx":1424 * output_format, extra_datetime_formats, extra_date_formats, extra_time_formats) * * return data_frame, metadata # <<<<<<<<<<<<<< * */ __Pyx_XDECREF(__pyx_r); - __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1411, __pyx_L1_error) + __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1424, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(__pyx_v_data_frame); __Pyx_GIVEREF(__pyx_v_data_frame); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_data_frame) != (0)) __PYX_ERR(0, 1411, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_data_frame) != (0)) __PYX_ERR(0, 1424, __pyx_L1_error); __Pyx_INCREF(__pyx_v_metadata); __Pyx_GIVEREF(__pyx_v_metadata); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_v_metadata) != (0)) __PYX_ERR(0, 1411, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_v_metadata) != (0)) __PYX_ERR(0, 1424, __pyx_L1_error); __pyx_r = __pyx_t_2; __pyx_t_2 = 0; goto __pyx_L0; - /* "pyreadstat/_readstat_parser.pyx":1360 + /* "pyreadstat/_readstat_parser.pyx":1373 * return data_frame, metadata * * def parser_entry_point(filename_path, str parser_format=None, # <<<<<<<<<<<<<< @@ -20351,6 +20493,7 @@ static PyObject *__pyx_tp_new_10pyreadstat_16_readstat_parser_data_container(PyT p->col_dytpes_isfloat = ((PyObject*)Py_None); Py_INCREF(Py_None); p->col_formats = ((PyObject*)Py_None); Py_INCREF(Py_None); p->col_formats_original = ((PyObject*)Py_None); Py_INCREF(Py_None); + p->col_informats_original = ((PyObject*)Py_None); Py_INCREF(Py_None); p->origin = Py_None; Py_INCREF(Py_None); p->file_label = ((PyObject*)Py_None); Py_INCREF(Py_None); p->file_encoding = ((PyObject*)Py_None); Py_INCREF(Py_None); @@ -20395,6 +20538,7 @@ static void __pyx_tp_dealloc_10pyreadstat_16_readstat_parser_data_container(PyOb Py_CLEAR(p->col_dytpes_isfloat); Py_CLEAR(p->col_formats); Py_CLEAR(p->col_formats_original); + Py_CLEAR(p->col_informats_original); Py_CLEAR(p->origin); Py_CLEAR(p->file_label); Py_CLEAR(p->file_encoding); @@ -20463,6 +20607,9 @@ static int __pyx_tp_traverse_10pyreadstat_16_readstat_parser_data_container(PyOb if (p->col_formats_original) { e = (*v)(p->col_formats_original, a); if (e) return e; } + if (p->col_informats_original) { + e = (*v)(p->col_informats_original, a); if (e) return e; + } if (p->origin) { e = (*v)(p->origin, a); if (e) return e; } @@ -20535,6 +20682,9 @@ static int __pyx_tp_clear_10pyreadstat_16_readstat_parser_data_container(PyObjec tmp = ((PyObject*)p->col_formats_original); p->col_formats_original = ((PyObject*)Py_None); Py_INCREF(Py_None); Py_XDECREF(tmp); + tmp = ((PyObject*)p->col_informats_original); + p->col_informats_original = ((PyObject*)Py_None); Py_INCREF(Py_None); + Py_XDECREF(tmp); tmp = ((PyObject*)p->origin); p->origin = Py_None; Py_INCREF(Py_None); Py_XDECREF(tmp); @@ -21730,97 +21880,97 @@ __Pyx_RefNannySetupContext("PyInit__readstat_parser", 0); if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_setstate_cython, __pyx_t_7) < (0)) __PYX_ERR(2, 3, __pyx_L1_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - /* "pyreadstat/_readstat_parser.pyx":132 + /* "pyreadstat/_readstat_parser.pyx":133 * * * class ReadstatError(Exception): # <<<<<<<<<<<<<< * """ * Just defining a custom exception to raise when readstat gives an error return code. */ - __pyx_t_7 = PyTuple_Pack(1, ((PyObject *)(((PyTypeObject*)PyExc_Exception)))); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 132, __pyx_L1_error) + __pyx_t_7 = PyTuple_Pack(1, ((PyObject *)(((PyTypeObject*)PyExc_Exception)))); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 133, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); - __pyx_t_4 = __Pyx_PEP560_update_bases(__pyx_t_7); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 132, __pyx_L1_error) + __pyx_t_4 = __Pyx_PEP560_update_bases(__pyx_t_7); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 133, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_6 = __Pyx_CalculateMetaclass(NULL, __pyx_t_4); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 132, __pyx_L1_error) + __pyx_t_6 = __Pyx_CalculateMetaclass(NULL, __pyx_t_4); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 133, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); - __pyx_t_2 = __Pyx_Py3MetaclassPrepare(__pyx_t_6, __pyx_t_4, __pyx_mstate_global->__pyx_n_u_ReadstatError, __pyx_mstate_global->__pyx_n_u_ReadstatError, (PyObject *) NULL, __pyx_mstate_global->__pyx_n_u_pyreadstat__readstat_parser, __pyx_mstate_global->__pyx_kp_u_Just_defining_a_custom_exceptio); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 132, __pyx_L1_error) + __pyx_t_2 = __Pyx_Py3MetaclassPrepare(__pyx_t_6, __pyx_t_4, __pyx_mstate_global->__pyx_n_u_ReadstatError, __pyx_mstate_global->__pyx_n_u_ReadstatError, (PyObject *) NULL, __pyx_mstate_global->__pyx_n_u_pyreadstat__readstat_parser, __pyx_mstate_global->__pyx_kp_u_Just_defining_a_custom_exceptio); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 133, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (__pyx_t_4 != __pyx_t_7) { - if (unlikely((PyDict_SetItemString(__pyx_t_2, "__orig_bases__", __pyx_t_7) < 0))) __PYX_ERR(0, 132, __pyx_L1_error) + if (unlikely((PyDict_SetItemString(__pyx_t_2, "__orig_bases__", __pyx_t_7) < 0))) __PYX_ERR(0, 133, __pyx_L1_error) } __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __pyx_t_7 = __Pyx_Py3ClassCreate(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_ReadstatError, __pyx_t_4, __pyx_t_2, NULL, 0, 1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 132, __pyx_L1_error) + __pyx_t_7 = __Pyx_Py3ClassCreate(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_ReadstatError, __pyx_t_4, __pyx_t_2, NULL, 0, 1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 133, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_7); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ReadstatError, __pyx_t_7) < (0)) __PYX_ERR(0, 132, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ReadstatError, __pyx_t_7) < (0)) __PYX_ERR(0, 133, __pyx_L1_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - /* "pyreadstat/_readstat_parser.pyx":139 + /* "pyreadstat/_readstat_parser.pyx":140 * * * class PyreadstatError(Exception): # <<<<<<<<<<<<<< * """ * Just defining a custom exception to raise when pyreadstat raises an exception. */ - __pyx_t_4 = PyTuple_Pack(1, ((PyObject *)(((PyTypeObject*)PyExc_Exception)))); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 139, __pyx_L1_error) + __pyx_t_4 = PyTuple_Pack(1, ((PyObject *)(((PyTypeObject*)PyExc_Exception)))); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 140, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_6 = __Pyx_PEP560_update_bases(__pyx_t_4); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 139, __pyx_L1_error) + __pyx_t_6 = __Pyx_PEP560_update_bases(__pyx_t_4); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 140, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); - __pyx_t_2 = __Pyx_CalculateMetaclass(NULL, __pyx_t_6); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 139, __pyx_L1_error) + __pyx_t_2 = __Pyx_CalculateMetaclass(NULL, __pyx_t_6); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 140, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_7 = __Pyx_Py3MetaclassPrepare(__pyx_t_2, __pyx_t_6, __pyx_mstate_global->__pyx_n_u_PyreadstatError, __pyx_mstate_global->__pyx_n_u_PyreadstatError, (PyObject *) NULL, __pyx_mstate_global->__pyx_n_u_pyreadstat__readstat_parser, __pyx_mstate_global->__pyx_kp_u_Just_defining_a_custom_exceptio_2); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 139, __pyx_L1_error) + __pyx_t_7 = __Pyx_Py3MetaclassPrepare(__pyx_t_2, __pyx_t_6, __pyx_mstate_global->__pyx_n_u_PyreadstatError, __pyx_mstate_global->__pyx_n_u_PyreadstatError, (PyObject *) NULL, __pyx_mstate_global->__pyx_n_u_pyreadstat__readstat_parser, __pyx_mstate_global->__pyx_kp_u_Just_defining_a_custom_exceptio_2); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 140, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); if (__pyx_t_6 != __pyx_t_4) { - if (unlikely((PyDict_SetItemString(__pyx_t_7, "__orig_bases__", __pyx_t_4) < 0))) __PYX_ERR(0, 139, __pyx_L1_error) + if (unlikely((PyDict_SetItemString(__pyx_t_7, "__orig_bases__", __pyx_t_4) < 0))) __PYX_ERR(0, 140, __pyx_L1_error) } __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = __Pyx_Py3ClassCreate(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_PyreadstatError, __pyx_t_6, __pyx_t_7, NULL, 0, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 139, __pyx_L1_error) + __pyx_t_4 = __Pyx_Py3ClassCreate(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_PyreadstatError, __pyx_t_6, __pyx_t_7, NULL, 0, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 140, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_PyreadstatError, __pyx_t_4) < (0)) __PYX_ERR(0, 139, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_PyreadstatError, __pyx_t_4) < (0)) __PYX_ERR(0, 140, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - /* "pyreadstat/_readstat_parser.pyx":1363 + /* "pyreadstat/_readstat_parser.pyx":1376 * metadataonly=False, dates_as_pandas_datetime=False, * formats_as_category=True, formats_as_ordered_category=False, str encoding=None, list usecols=None, user_missing=False, * disable_datetime_conversion=False, int row_limit=0, int row_offset=0, str output_format=None, list extra_datetime_formats=None, # <<<<<<<<<<<<<< * list extra_date_formats=None, list extra_time_formats=None): * */ - __pyx_t_6 = __Pyx_PyLong_From_int(((int)0)); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1363, __pyx_L1_error) + __pyx_t_6 = __Pyx_PyLong_From_int(((int)0)); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1376, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); - __pyx_t_2 = __Pyx_PyLong_From_int(((int)0)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1363, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(((int)0)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1376, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - /* "pyreadstat/_readstat_parser.pyx":1360 + /* "pyreadstat/_readstat_parser.pyx":1373 * return data_frame, metadata * * def parser_entry_point(filename_path, str parser_format=None, # <<<<<<<<<<<<<< * metadataonly=False, dates_as_pandas_datetime=False, * formats_as_category=True, formats_as_ordered_category=False, str encoding=None, list usecols=None, user_missing=False, */ - __pyx_t_7 = PyTuple_Pack(15, Py_None, ((PyObject*)Py_False), ((PyObject*)Py_False), ((PyObject*)Py_True), ((PyObject*)Py_False), Py_None, Py_None, ((PyObject*)Py_False), ((PyObject*)Py_False), __pyx_t_6, __pyx_t_2, Py_None, Py_None, Py_None, Py_None); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1360, __pyx_L1_error) + __pyx_t_7 = PyTuple_Pack(15, Py_None, ((PyObject*)Py_False), ((PyObject*)Py_False), ((PyObject*)Py_True), ((PyObject*)Py_False), Py_None, Py_None, ((PyObject*)Py_False), ((PyObject*)Py_False), __pyx_t_6, __pyx_t_2, Py_None, Py_None, Py_None, Py_None); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1373, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_10pyreadstat_16_readstat_parser_1parser_entry_point, 0, __pyx_mstate_global->__pyx_n_u_parser_entry_point, NULL, __pyx_mstate_global->__pyx_n_u_pyreadstat__readstat_parser, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[2])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1360, __pyx_L1_error) + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_10pyreadstat_16_readstat_parser_1parser_entry_point, 0, __pyx_mstate_global->__pyx_n_u_parser_entry_point, NULL, __pyx_mstate_global->__pyx_n_u_pyreadstat__readstat_parser, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[2])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1373, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_t_7); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_parser_entry_point, __pyx_t_2) < (0)) __PYX_ERR(0, 1360, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_parser_entry_point, __pyx_t_2) < (0)) __PYX_ERR(0, 1373, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* "pyreadstat/_readstat_parser.pyx":1 @@ -21873,10 +22023,10 @@ __Pyx_RefNannySetupContext("PyInit__readstat_parser", 0); static int __Pyx_InitCachedBuiltins(__pyx_mstatetype *__pyx_mstate) { CYTHON_UNUSED_VAR(__pyx_mstate); __pyx_builtin_object = __Pyx_GetBuiltinName(__pyx_mstate->__pyx_n_u_object); if (!__pyx_builtin_object) __PYX_ERR(0, 80, __pyx_L1_error) - __pyx_builtin_round = __Pyx_GetBuiltinName(__pyx_mstate->__pyx_n_u_round); if (!__pyx_builtin_round) __PYX_ERR(0, 256, __pyx_L1_error) - __pyx_builtin_all = __Pyx_GetBuiltinName(__pyx_mstate->__pyx_n_u_all); if (!__pyx_builtin_all) __PYX_ERR(0, 1070, __pyx_L1_error) - __pyx_builtin_enumerate = __Pyx_GetBuiltinName(__pyx_mstate->__pyx_n_u_enumerate); if (!__pyx_builtin_enumerate) __PYX_ERR(0, 1089, __pyx_L1_error) - __pyx_builtin_zip = __Pyx_GetBuiltinName(__pyx_mstate->__pyx_n_u_zip); if (!__pyx_builtin_zip) __PYX_ERR(0, 1197, __pyx_L1_error) + __pyx_builtin_round = __Pyx_GetBuiltinName(__pyx_mstate->__pyx_n_u_round); if (!__pyx_builtin_round) __PYX_ERR(0, 257, __pyx_L1_error) + __pyx_builtin_all = __Pyx_GetBuiltinName(__pyx_mstate->__pyx_n_u_all); if (!__pyx_builtin_all) __PYX_ERR(0, 1079, __pyx_L1_error) + __pyx_builtin_enumerate = __Pyx_GetBuiltinName(__pyx_mstate->__pyx_n_u_enumerate); if (!__pyx_builtin_enumerate) __PYX_ERR(0, 1098, __pyx_L1_error) + __pyx_builtin_zip = __Pyx_GetBuiltinName(__pyx_mstate->__pyx_n_u_zip); if (!__pyx_builtin_zip) __PYX_ERR(0, 1209, __pyx_L1_error) /* Cached unbound methods */ __pyx_mstate->__pyx_umethod_PyDict_Type_get.type = (PyObject*)&PyDict_Type; @@ -21900,25 +22050,25 @@ static int __Pyx_InitCachedConstants(__pyx_mstatetype *__pyx_mstate) { CYTHON_UNUSED_VAR(__pyx_mstate); __Pyx_RefNannySetupContext("__Pyx_InitCachedConstants", 0); - /* "pyreadstat/_readstat_parser.pyx":1092 + /* "pyreadstat/_readstat_parser.pyx":1101 * var_format = dc.col_formats[index] * if dtypes[index] != '__pyx_slice[0] = PySlice_New(Py_None, Py_None, Py_None); if (unlikely(!__pyx_mstate_global->__pyx_slice[0])) __PYX_ERR(0, 1092, __pyx_L1_error) + __pyx_mstate_global->__pyx_slice[0] = PySlice_New(Py_None, Py_None, Py_None); if (unlikely(!__pyx_mstate_global->__pyx_slice[0])) __PYX_ERR(0, 1101, __pyx_L1_error) __Pyx_GOTREF(__pyx_mstate_global->__pyx_slice[0]); __Pyx_GIVEREF(__pyx_mstate_global->__pyx_slice[0]); - /* "pyreadstat/_readstat_parser.pyx":1247 + /* "pyreadstat/_readstat_parser.pyx":1260 * except UnicodeError: * warnings.warn("file path could not be encoded with %s which is set as your system encoding, trying to encode it as utf-8. Please set your system encoding correctly." % sys.getfilesystemencoding()) * filename_bytes = os.fsdecode(filename_path).encode("utf-8", "surrogateescape") # <<<<<<<<<<<<<< * else: * if type(filename_path) == str: */ - __pyx_mstate_global->__pyx_tuple[0] = PyTuple_Pack(2, __pyx_mstate_global->__pyx_kp_u_utf_8, __pyx_mstate_global->__pyx_n_u_surrogateescape); if (unlikely(!__pyx_mstate_global->__pyx_tuple[0])) __PYX_ERR(0, 1247, __pyx_L1_error) + __pyx_mstate_global->__pyx_tuple[0] = PyTuple_Pack(2, __pyx_mstate_global->__pyx_kp_u_utf_8, __pyx_mstate_global->__pyx_n_u_surrogateescape); if (unlikely(!__pyx_mstate_global->__pyx_tuple[0])) __PYX_ERR(0, 1260, __pyx_L1_error) __Pyx_GOTREF(__pyx_mstate_global->__pyx_tuple[0]); __Pyx_GIVEREF(__pyx_mstate_global->__pyx_tuple[0]); #if CYTHON_IMMORTAL_CONSTANTS @@ -21970,31 +22120,31 @@ static int __Pyx_InitCachedConstants(__pyx_mstatetype *__pyx_mstate) { static int __Pyx_InitConstants(__pyx_mstatetype *__pyx_mstate) { CYTHON_UNUSED_VAR(__pyx_mstate); { - const struct { const unsigned int length: 11; } index[] = {{0},{47},{32},{34},{24},{93},{88},{7},{4},{179},{24},{19},{16},{62},{62},{1},{1},{1},{8},{44},{2},{7},{6},{149},{2},{9},{50},{75},{32},{34},{31},{22},{19},{29},{16},{13},{17},{17},{20},{13},{14},{19},{8},{14},{3},{3},{8},{11},{3},{13},{8},{5},{28},{19},{5},{7},{7},{7},{7},{4},{8},{8},{6},{7},{7},{7},{7},{7},{7},{6},{5},{7},{7},{7},{5},{4},{8},{8},{8},{5},{5},{7},{6},{7},{7},{7},{7},{7},{7},{6},{11},{15},{20},{13},{5},{4},{8},{3},{8},{8},{6},{6},{7},{7},{7},{7},{7},{3},{15},{6},{6},{18},{7},{4},{6},{17},{18},{3},{11},{13},{12},{22},{7},{7},{4},{13},{13},{1},{14},{32},{34},{10},{4},{15},{24},{8},{4},{27},{7},{6},{3},{5},{6},{11},{5},{6},{8},{9},{10},{6},{18},{22},{18},{13},{14},{11},{10},{13},{4},{5},{7},{5},{6},{19},{27},{9},{10},{13},{8},{8},{8},{3},{20},{21},{12},{5},{2},{5},{5},{5},{4},{13},{12},{6},{5},{4},{5},{4},{3},{3},{2},{3},{8},{5},{13},{8},{18},{12},{8},{14},{19},{17},{10},{7},{15},{4},{8},{3},{18},{22},{7},{5},{2},{2},{14},{11},{5},{2},{6},{7},{23},{2},{13},{6},{18},{13},{4},{6},{3},{3},{11},{9},{27},{12},{11},{12},{2},{4},{23},{10},{17},{13},{5},{5},{9},{10},{8},{8},{5},{6},{4},{4},{12},{10},{12},{19},{6},{6},{15},{3},{10},{4},{8},{4},{9},{11},{9},{6},{4},{12},{7},{2},{7},{12},{7},{2},{12},{6},{18},{22},{13},{16},{22},{17},{21},{4},{8},{12},{5},{3},{0},{1446},{310},{9},{283}}; - #if (CYTHON_COMPRESS_STRINGS) == 2 /* compression: bz2 (2528 bytes) */ -const char* const cstring = "BZh91AY&SY\341\006 6\000\0023\177\377\346\377y\362g\377\375\375\277\373\377\377\377\377\377\377@@@@@@\000@@\000@@@\000@\000`\n/\275w\275\336\307\243\324\367=\222\031\335\334UKgwq\204r\310\355\203\337|4 \223#I\264i\242\236\321\242\217S\324= oB\215\032=@\323@\017Pi\350\200\332\21520!\246\010\014D\002\0235&F\206\250hh\036\240\00044\000\000\r\000\000\0004\000\000\323A\004\2022\020\320\r\351@hh\001\240\000\320\000\000\000\000\000\000\002S\324\224\321\222\236\324\232i\350\215\r\032\r\000\000\000\000\000\000\000\000\001\240\000\005*0\002i\200\004\311\200\000\000\000L\000\000\000\000\000\000\023\032\t\022\0104\021=M5=MS\364\325=\252z\237\225\017D=F\215\007\250\001\241\3524\032\000\000\006\215\000\r\224HbI\265U\304\204\262V\256\226\216D\324=cp\20626\353\000\342\320\0040\r\215h\376o\357'\235\036\201i\316\021 \016\r\037\004\247\274\251\377\177\364\352\272i\347\260\263s\002\235H\251(\217\356HF\230=\230\346A\233\272\320\236\266\024\215*\314\023\022\304(\202\245\314\212\272\201\340\240B\037\262u\037-\222\027\262\312c\004,\013_\237\204\234gq\217\253\355\342u\260\274\327LY\005T\265BNZ\204F\330B\0004W\351l\352\225\250\023\027\236r\223\275\307E+`\016j+X\243\037\304\222\003\243\325\250\326\025\351\324-\037\257\206,\255\366\310\230B\203\241\257)L}\212Tk\216@V\370\261=&(w=\371 \366\335\255hb8\245|\025<\330\005\345\372\207\265(\222L:{\360\r\343\353\373^c\351\336\000y\007\300\247\243\350\356\333%\303C\304\311\030\256\256\204\212\243ST\320\241\234\222\203\024|\331\207S\313\356\357\305\374\016\203+2\346n)\210Jy\206\tG0\033A\215\376\316\336\230!sH\210q\210\372\340\210;\020 \267e<~\347\311\312zs\311\001\005\023\340\024\001\203\016\246K\310\021\021\022\374\310\\\317\267\365\r\274\254\020s\353\347_\250g\237\272]h\014R\272t\224\010YU\334\275\227\003o\273\230\261\330[,\223\317UyZ\352\261\367\023$\\\343;/\273-;\251\222\350\211\261:\221X)\257\266Q \\v\322\275\304\220A.\230h\005\214\020\241\021V\257R\345+c\266'$\023@\332~\202\236W\373\235\225pu'\006\354\033\260\241\002\215\233L2Zl\006\002\263e\031F""\233\320\232\210\251\022\224\302*\rk\223\216\322\257\366\253P\220\0009RB\365l\24415SlpV%\201t\030\006\363ie\340\331\203\013\220DY\324D\235(a\236\375\205\021\220\021\0043\315I]\213o\327\341J\340\276\305\023\350P%\267\\\222\010\304s-\\hRI\325\352\264\326\245\272\026sc\215Xm<\225e\341|\207\001W\"p\300.5\350\230\024m\240\034*\320;\254j\312\363\017\300\212\335k\256\010\"\355\024\324\016\036vS \203=\023c\355\026\307\273\332g\230\354;\260\024;\374\224\306\307\242\001e\202d\010I\016c\211\014\231>\350@\200X\230\211\007W\234]\177\331G\301\020Lhr\322I\264\331\233M\316\326,\311\365\263<\340~x\361T\207\203&\305\020\323\020\016\363|\032\346\250`q\243\n\022i\252\030\022\211\3408$\033!\357g4G@\342P\240m\2106\210$\210\321v\026\231B\347\352\334a|\336\302\027\3000I\177)\207ggW^\005\307\026\3569\270\3017\272\272\352\001\274\254\202\023B\t\224t[[e\335\001\177n\006\371ZV\267\256<\201\r1\315H\014q8\014\340\301D\0045\230\002\262\020\257\247w\3172\274\372\320\341o.(\245d!\2300k\013\222U\231\201(U\203\245\344\017\266\207\"\206\300\264\302j\036\343v\316\231\210\243\001\251X8-\352\254\3235\\\213\226\0206\370t\352\247\321\034\334\361""\275Z\270\220\364\224\243\n\270\334R\025`*nB\226\341=\037q \034\210\270\202\n\261\0225\020\340>\274w\271\304Q\202\312\234Bi\365\3078\314,\2078\210\357S!\2114`\333\332r\013g\207\036\014\251\251\004\242P;\307B\221\2060\334D4D!Bl},\261\342\212$\322%l\257\343L\302\261a\244\256\224 U\t\245\306Y ss\204$\264y\2478S\272\204\304:\021V*9\027\255\241z\355\334\213\305s\211H#\000\324\227\246\312(\230\300\315\342\033J\253`RA\004\022\034l\332XhfV\002)\307&\017\253\"\005\266#D\2564S\265\036H\231\275^\371\022\253<\335\332H'\246)\026\316\023h`\312\326R\254\267\\\243l\344\341\356}\027\357_J\362\025\310\240s\220\300\240\374\224\235\306A@\032\271p\322\354\362\302C\032\3136\3319\364\361^\261\261\236\343\231\036\236y\245\315\324]\031\320~\371\243V\367G\030\346\221&p\273\212\304\032\344I\036?u\251\255\331\326g\"\025\206\2475O\235\035z\261&*D \320\365\020\034\022\263\347ki.U0\246j\240\241%0\310\203\254!Py\227\310\001\250DNh;@\031\374\242\301(s\325?\351*m\201\253\257\271\273\371\375\357c\023\260\002\353HA\336O\370BT \360Q]\024=}~\362\362\\\tD\304DrAY\304}Hq\254404\003\3201_\233\376\312<\222A\313A\236\021\203\240\316\3363\375N\204\246\323V_\370\273\222)\302\204\207\0101\001\260"; - PyObject *data = __Pyx_DecompressString(cstring, 2528, 2); + const struct { const unsigned int length: 11; } index[] = {{0},{47},{32},{34},{24},{93},{88},{7},{4},{179},{24},{19},{16},{62},{62},{1},{1},{1},{8},{44},{2},{7},{6},{149},{2},{9},{50},{75},{32},{34},{31},{22},{19},{29},{16},{13},{17},{17},{20},{13},{14},{19},{8},{14},{3},{3},{8},{11},{3},{13},{8},{5},{28},{19},{5},{7},{7},{7},{7},{4},{8},{8},{6},{7},{7},{7},{7},{7},{7},{6},{5},{7},{7},{7},{5},{4},{8},{8},{8},{5},{5},{7},{6},{7},{7},{7},{7},{7},{7},{6},{11},{15},{20},{13},{5},{4},{8},{3},{8},{8},{6},{6},{7},{7},{7},{7},{7},{3},{15},{6},{6},{18},{7},{4},{6},{17},{18},{3},{11},{13},{12},{22},{7},{7},{4},{13},{13},{1},{14},{32},{34},{10},{4},{15},{24},{8},{4},{27},{7},{6},{3},{5},{6},{11},{5},{6},{8},{9},{10},{6},{18},{22},{18},{13},{14},{11},{10},{13},{4},{5},{7},{5},{6},{19},{27},{9},{10},{13},{8},{8},{8},{3},{20},{21},{12},{5},{2},{5},{5},{5},{4},{13},{12},{6},{5},{4},{5},{4},{3},{3},{2},{3},{8},{5},{13},{8},{18},{12},{8},{14},{19},{17},{10},{7},{15},{4},{8},{3},{18},{22},{7},{5},{2},{2},{14},{11},{5},{2},{6},{7},{27},{23},{2},{13},{6},{18},{13},{4},{6},{3},{3},{11},{9},{27},{12},{11},{12},{2},{4},{23},{10},{17},{13},{5},{5},{9},{10},{8},{8},{5},{6},{4},{4},{12},{10},{12},{19},{6},{6},{15},{3},{10},{4},{8},{4},{9},{11},{9},{6},{4},{12},{7},{2},{7},{12},{7},{2},{12},{6},{18},{22},{13},{16},{22},{17},{21},{4},{8},{12},{5},{3},{0},{1446},{310},{9},{283}}; + #if (CYTHON_COMPRESS_STRINGS) == 2 /* compression: bz2 (2534 bytes) */ +const char* const cstring = "BZh91AY&SYC\376N\221\000\0023\177\377\346\377y\362g\377\375\375\277\373\377\377\377\377\377\377@@@@@@\000@@\000@@@\000@\000`\n[\357^\357w\261\350<\367^\212j\347w\025j\326\013\002\332\353A\333*\363\341\222j\t\224\332M\243DOjf\223\322\2326P\323bFL\236\240i\240\007\250\r4\006@\311\20120OA\210\223& j\230&\246H\r<\243\324\320\000\000\003@\001\240\000\000\006\200\000\032h \211\251=542\r\032h\000\031\000\000\000\0004\320\000\321\240\0004h\004\232\222\232iS\360S\311\241Oi'\2224d\032\001\240\332F\200\032\014\200\323@\000\006\2314\323L\232d8\000\000\000\000\000\000\003!\240\000\000\000\000\000\000\000\004\210\202\001\021\212\237\250\247\206\223\325?T\006\230j4dmA\240\r\000\000\014@4h\304\014\3221\310\307\267\025\264U\035\033\325\337\314\364/\234\347\231\240\315C,\360&\352\002\220\014JC\363\241\370_\032=\361m\304\"@94y\305~-\217w\377R\313\271_\036b\325\320\n\367\221bd\355\353\t\304\017\333h\333:\236n\341\372\261I\276\265\n\224\310\242\n\2306\354\354\007~\241\010~\301\336>\203$^\303+\224\020\2613\303_$\244ks/C\336\310\353\341i.\240\242\nie\010\271k\310\272\225\204\000k\227\351L\346\225/\t\213\3138\305\336\327E+`\016j+X\243\035\t$\007G\253Q\254+\331\250Z?w\004Y\\&\322\314\"{\301\307\325[\201\265X\332\216\26069/\277Z\374[\277\035h}\326jW\027\322\235\270\001\245\233\010\270\327\236{3\022\223\016\347\300\200o/\273\354\372\207\330\300\000\360\217\221_\177\352\357\341\242\345\261\330\3114<{\024*\215\315\325b\306J,2\317\341\306>\017\277\245\364\314y^\357{\215\203\251\240\316[L\264\005R`G\002\016\036\316\346\240##\336H\345\021\366\001!\352`\206\236\266\232\177\010\013\264\265'\026\002\024\300\001\2046/j\353\\`c\030\306]\231\023\2726>\341\313\213\231\017K\033>\356\"&\216\361\316\205\005\033)EA\022-\233[N\207.\275\226\320\320i\271\013\357\342\276\272\353W`L\254\324\324I z:w2%\321\022brEUI}\261\270\201a\332\306\326\021A\004\272\201\240\026\020a\210S\251\215\211\221F\300\355\211\254\207\010\r\270'\253\353\203'\017 u\246\2076Q\350\230A\215\275\266\320\264\315\220\3302H\306\350R~$Rh\225V""\311\236\343\216\315J\353w\265R}`\000\226\264O\324\303b\014%\302\253\305P\264\005\220\200#\356Q\265\231\265\r\347a\246s\350\n\331QE:\n\252P\201L1\022\321rkr\316{rc\320\316T'}\0102\315i\021\002\013\t\217+0\333b\"%y#\224\313\245&lq\255\352\357\263\026\337\034\004q\034b]@\017+^\324\002\205\206\001\306\272Ie\267\0327\033O\003\025\273\227\234\020E\352)\250\034\215\326\231\220A\236\235\257\356V\307\275\232\3171\230\356\300P\3611\023I~\210\005\226\t\220!$:N$1$\373\341\002\001bb$\035^qy\364J>(\202\203C\235\2456\2335i\272g\231\233(u3]`~8\354\261\016l\233\004CH@;\311\352\3263B\247\013\330^I\277(T\224I\337\200\375u\371\251\025E\2066\264\313%\245`\242U\307B\304M\357[\315t\222\036\215P\335{l\352\2728\260w\277\355\306\261\t\211X\267\201\277C\231\2052f\263V\273\203\376&s\201}\230\004('\345\233\245\004\2541]|\003\313\333\356~\273\036I\247\250\221\235\004\332\321\272\360]\"\204:\327S\346\3117(q\272/\270\311%\324\267\024\0203\023\267MC\022^\014\210\2068\343\306\014q\026\223R\246\214\325\266\r\013\301\020)\000\272,\004Ue5\0040\257\017E\r\244\227aq\302\354p\334T\002\227\201Q\366\032\232\370\205\352\370\376\226\226\377\275\261\362\016\2604]\356\013\355 \035.1\003adoT\340\362\240\373\\2 ~\016y\2433>\305h\362\214\327\310\323\030\341\227\026\254\0143\034\201\243Tc{\021\321\347vWEb\005\341 \013\273A\304\3414\000\351\007\006\214 U.\022\224\343X3a\321\370\210\201\207'D\252c3\261j\022\271\322B\346\002Y\246\004,\332\324\225\337\306\263z\023\305\006W6\"\361At,AA)\335\024A5\2046\271D\001\036\370U\t\024U\224\261p`\265\233#\014FF\025\035\360\326\2715W\024\222Q\224k\345Y0\234\315\263#\003(b 0dR\026b\332\205\025e\366\304\2431\246\006Xe!\257\024\003\334d\002i\234\345\266\232\353\206~\024\004\030\020E\014\272g\nX\370DY\261\272\232U\032\n\302\371\014\230:+\243\235\302P\327$\2243\21629\230H\206\201b\261\305\260`\233\244\020\253\204V\212*\241\226\355\315\014)N\026\255\300\231\275\352ceR)\262eW2\371OjG[\246Q\240o\033\246A.\203\200\304\334\3504c\257d\230md\032$\311p\210y\031\032\264\210`\242\014,\223\002c\032\355\255\370M\333\351\233\233\371\362Ff8Z\214z\276<\232\260\027\026u\241'\225\007 Z\355\360c\226\352\276M\267v5\003n\351\215H\234\023!\004\006\241S=\217\236\362u\"\024,e>RdD\250\204\321\001\205\302\256\317\207\"\t\013\223\024\220\024\346h\336\005\203\231\220^\230\007\276I\010*\334\254\306Z\270\301 L\336x\2046h\016hi\263\2445\232h\224\004\330e`\375\364\006\203\217\000\375=\222\274Ll\267C\212\002\344Db\300\007\024\203\303\"6\"8W;\215\331\345\001}'A\267\031V\203\0349\335\nH\207\251R\314\213\211eH8\302TW\365\2328\016\227L\221\032\003\314\311\223\331\340\265\347\007H5X5A\322\233\025[cV\251B\244\rUE\241\033.\263:\025.\375\013\230\341G\300B\363LR_\332\201\327\327\336\352\304\271\315\273\235<\340Ai\034\363 \013\010\271\014P$\010\013\225\307Uu\036V\002\376I\213=^\265\364\307\240!\246:+\006\362\365&\203\253Hd\345\320D\246E;\264\247\242\355s\354C\205\271rb\225\220\206`\301\254.IVf\004\241V\016\227 }\34490y\021\207K\304\246s\360\351]DU\200\324\346\034\227B\2636\325[B\353\030\022[8\2630\333{\360kk*\323\002\036q\215\320\243\216\022\220\233\0013b\024xD\264\236\322@""\265F\305\030\361\251e\211N\013\360\327\273+C\010\036\270s.\347\246\273\253q\352x\021^\353\272!#f\r\276\024\220\317\\y\362e\215\304\023\023\003\300u+\030\345\r\304CDB\024&\307\334fgdU&\2219\351\207:\352\026\214\306\222\274\302\005`\242\\\347D\016\216\220\204\226\317T\351\n\227\251A\016\244Y\212\256L\033\324/ky\0270\215\245\013A\325\227\214e\261\235 \325\344s\027b`\252\")\256\253F3D\2769\013\233\033\271-\2374\0055\243zV\032)R\365\201\020\0267\255\341\342\207\241\313\223\201\014\250H\256,R\t\203-i\233N\373\250\341\254\270{\337\221\207B\372\330\020\256\212\207\022\030\025\037\206\264\271\240T\006\256\271m}t\306F5\246\255\262\224\356s_\\\340k\274\351G\227\256$\360s\304\233\033\202\346Df\226\21477\003\207Cd\267\032\000\216\360\344v}~c9kj\035\262\026cT\242\257\247\035[\230\223\025b\020ly\350\016If\370\265\302N\370\211\335\211\210\005\2117\242D\356#p\364\241\274\010\261&^d\364\t|[{\276\340K\325;\355m\233\200~5\367w\277\234\037\335<\034 \346\354\021\305\341\343&y\034\223\262o\325\377\177\344\337\345\240%\301\254\373\270\353\372\301\241\351v\226\257\243\353lg\214\256\235\254\024\223\276\210\023\234Fp*\032#+\256\255p&\223\216\253\254V\177\027rE8P\220C\376N\221"; + PyObject *data = __Pyx_DecompressString(cstring, 2534, 2); if (unlikely(!data)) __PYX_ERR(0, 1, __pyx_L1_error) const char* const bytes = __Pyx_PyBytes_AsString(data); #if !CYTHON_ASSUME_SAFE_MACROS if (likely(bytes)); else { Py_DECREF(data); __PYX_ERR(0, 1, __pyx_L1_error) } #endif - #elif (CYTHON_COMPRESS_STRINGS) != 0 /* compression: zlib (2288 bytes) */ -const char* const cstring = "x\332\255XQo\033\271\021V\000\027M\357\232\242i\201^[\240\000\003\\*;\261\025;\r\322$\r.p,\247q\n9N\344^\353\336\245\237{ T$C\026\350xO\246\226\2550\253Y\222\333\201\216\331\236\2102Y\314\203\233J\021\2628\033n\313\224\351\036fS%\266#i\036`\001{\276\370\222\205Z\032\026k\313\344\2012\366\322'\014\177\2172cY({*Vq\237\t\026`\254\207X\021\310\304*\034B\202\2052\222\355\017d\354\3160VX\326W{\020&b&\323T\247\340\333,\215\241e([N\356\207\010O\362J\274\343z\371\345b/\367n\347\326W\261y\266\256c\271\256\255dv\200\325+\336\036\312\340\260H\341\376\302\312(g\306\246*\260\260\006\026\305lcuc\341\306\255\033\220\031B\335\177\311\300\032f\262\355 \022\206\216\202\305\2663\025Y\005\255\362D\232\026[\353\261\\g,\226\336\274\t\326\3257XR\331HK\035\326\0241\014+HO\216\355\270n\223\205*\305!\260\023\355~ \"#[\335\315\247k\353\177v\007\260}e\007\336\205\254\371\327x'\326\3731\353\221\253z:\035\n\013\026qBa\205[\277\005UR\271\233Ic\241O\202[\010\330\007zg6\311,\367\233p\005\313\002\247\013S\303D\0030~\345\324n\035\211\364\377\333\355V6[\367D\030r\360e\240\243l\030\263&\360\324t\006\317\222H\005\260w8\217\003b1\364\306j>_z\331\274\034\206\312\020\004\301G\353.\227\010\334:\320Y\024:$nK&cBM\350\355q\331\000\n*\030\220h\262-T\204\017Rfr(>\364ka\334yf\323\2340\205\243\374~\246\334\342\314\366\026n\265\330F$\005PE\022\316\332\016\005R\362M\224\267\372\001\200\346\324\013cMX\025Yd\031\347\251\014\263@r\216\013:\377\305:^\000\234\366\224\2100\033\000\321\226so\275\302alHh\307\205\000MB\323s\021Ez_\206\205q\315\313yXe\302\336\260\340>t\246P\212\235]J\t\022\246\000l\201_\206\330\332\316\2554\023\363\230\230\367l\232\317bE\026\030G\3175^\366x\002\357\311\264\225\344\007\343\351\026|\030\0212ulj\\ MZ5\254\311i\305\"\335\037\000\270-""\214`\241\326\336\365\372d6L\362\332X\327\205y\324\325\031\016HuF^\004R\215\227\326\017\207\317j\243}\221R\0221F\354]\373\026\315]\nn\214\341\335@~q\331\256\\\266\001>\017\037\336\351tJz\247\333\275lC|VV\266\266\026\326\327\027\332m\014\332|\310\267\034N\232\036stq\037\222\2122\230\307\367~\252\201\023o\276\302\301\313\355\345\315\325\373\267n..\265\227=Y\367d\323\221\315\016\315\323w\271\263\341\372\233k\235\325v\273\323\331\332\362\355}OVJ\236#\353\236lx\322mo:)\264u\325\037\345\311\346\252?\303\035\360\360a\247\263\326\365\323\005\335\364t\263\263\026\333\2337\036\321\252N{\2134\351t\332\355\255-\337\336\367d\305\223\266'\353\236lx\322}\274M\271\361q\032J\304@\033\tt\243\362\302*\345z\3167\362\003|i\212\257\313\003\373T\366\236\326\027t\313\273\323\2274\330|\334\376\333\352\352_\210]\320\277ou\332\017;\335R-j\357{R\214\326=\331\360\244\213P\232\212&\221$\222 F~\023&\217\003\245\201\353\024\361\245bi\266E\260\203\351\000\363\201\214Q\002\020\262\2046\336\007\304\221\th\210u\\![\247\"\220\264\036\236\257\005\206\307\001\217\304\266\214\312\001e\267\211>\267zb\005\3100A\226\0134\320\2553\034\034r\227\341\003X\320\327\006\004XH9\235\243\240[\001\035\322\311Q\253J=\201+j\234\237\232GV#[O\255\350\245\224{)\021\343k\2700\334\307\340\324\220\227a^Q\270\261H\323\325\034\367\257\r\243\234t\035P\223Q\212\264\"$\203\273\006\242\252\334/\207\211\315}\".s\254D~p\205X\036\320\311\031\342\010X\201S\320\246\302\035U\372r\314q\207Op\353\034* \274\224\357\007$\221\324t#\277\314u\235W\250G~\342\224<1\210z\221\306<57o\200\350\264\330\341\305\223\221\3506}\235\3465\226\366\2210\236J\365\220\223\325\\G&:\030P\217\024\205[\206I\317\204\222\014\3213\336 \234\367\262\030&\004\364\360\001p\350I\340\361\223\000z\340\221\236\276B\225\227s\253\275\223y\037\240N\006J\305v\351&\232?\\W\024\341hnq\005\205K\314\243\017\245\006\032\017\254\\9S\021\320\315\216\314\2153\006\352\257\2059\"e#\035\221K\207\300\023\2656\030\200H+|\204\270.!\252\244c\354\225\034\035G9\365\035U\306\220\302\251\200\313M9""\"o{\344\233!.\324#\224\224\360\307\t:\314\"\242\251\3032u4\374\212\204\016P9\313\214\333\370t\r\212\365Y@\215\365P\305\"\2427\212\211\223\330\372\2070/\002\263\030\245z\337\270\272\025\357k\227\346\340\\\332\245S\325'\312\313G3w\010\327f\242^\027E\315\325\004\247o\316\023\rG\024\234r\221\035\024\305N'\t\245\313\004eM\244\270\315Y%o\272T\323\252\003`-Q\234\373~\001\203\335\014\227sFI%\355\251\366M\252<~\271\234J$\025C\036\240\253\372\003\013\350\304!l\302#5T\226:\272\327#\227\010\363\307\355@x\n[\233@\000\241\301@\016\361\252\222;\006\241\345\322P\341%\364\212\207S-9\3613\022\225waQ\2713\324\212>\345\007HO\034\376\335-H$^\357\021\347p$\004\222\233\235\253\361\314\261v\354zt}(Y\035\341\327\014]\036\227\301\326\0248\300=\375\213:3\200\"0`\034\"\013xR\037\310\332\273\356\020Zdp\217\326\312\230\"R\375\030\361h+\016\222d\022\211\234\357\253\320\016*.\235]\r\206(EY*\2531~\355\244\242/\247\266\224E\243b\324\325\240wN\371\326\241\327I\t\340\003z\216\177\253\222\215\334\327gvev\334\235g\036*\226/-\216\261\305\227n\236BW\222\363Z\252|\377}U\302\235g\365\343\021\004Es67\322\364f\367m}\305\273\373s\215\357\2711P\224\005\266\270\000\202\371\235W\230\314eS\222\337\303\016Suj\236\371\332\370\341>8e\262:\303\013\237\320\365#\334\274\361\341\367e\037\001ws\r\334\223\315\006\003\221\222\220Z*\243@\200\005\312\231=\255B\322\327-w\266\371\376\2313\022\"-|\357\r\247\265\231\330ZMW\365\321\326\305;Z\335\354\007\273\352\007Eh=\352&5I,\027i\337\274Sh\232\305\323;4G\227>.\343\344\374\317^\353\243'G\342d\206\246g~\374j\367\370\374/\017\227Nf\330\233s\305\360\267G\227Nf~}T\016\177q\210a\363\315n1\274\364\346\342\311\314\317\017?=\372\342\355\305\267\327\276\373\335\350\301\227\243/\277\031}#\216\257\374\351\273\333\377Y\033u\344H\342f{\243\275\027\243\027/\217\257\334\036\335~2z\002f\357d\346\323\327w\017w\377\007N\360l\256"; - PyObject *data = __Pyx_DecompressString(cstring, 2288, 1); + #elif (CYTHON_COMPRESS_STRINGS) != 0 /* compression: zlib (2293 bytes) */ +const char* const cstring = "x\332\255X_o\024\311\021_$G!w!\n\211\224K\"Ej\244#k\203\275\330\004\021 \350\220\361\232`\2425\206u.q\356H_{\246w\267\343\331\351\361t\217\3559 \342\221G?\372\221G>\302=\346#\354\243\037\375\021\362\021\362\253\356\231\331\331\265O\004\016dOuWwW\327\237_U\265\371\347\354W\313\013\377xF\237\305\205\333\317\256\272\331\334\354\327\341\325\271{\263\367f\257\317\315\336\273\363u\313M?\177\361\371\334\003\241\"\031\262@\307{2\265l\205Y\315\222\334\016t\314\366D\224\311b\035\334T\212\220\305\331p[\246L\367\260\232*\261\035I\363\000\033\330\363\305\227,\324\322\260X[&\017\224\261\227>a\370\367(3\226\205\262\247b\025\367\231`\001\346z\210\035\201L\254\302%$X(#\331\376@\306\356\016c\205e}\265\007a\"f2Mu\n\276\315\322\030Z\206\262\345\344~\210\360$\257\304;\256\227_n\366r\357vn}\025\233g\353:\226\353\332Jf\007\330\275\342\375\241\014.\213\024\354\027VF936U\201\2057\260)f\033\253\033\0137n\335\200\314\020\352\376K\006\3260\223m\007\2210t\025<\266\235\251\310*h\225'\322\264\330Z\217\345:c\261\364\356M\260\257~\300\222\312FZ\032\260\246\210\341XAzr\034\207\271M\026\252\024\227\300Ot\372\201\210\214lu7\237\256\255\377\331]\300\366\225\035\370\020\262\346_\343\235X\357\307\254G\241\352\351t(,X\304\t\205\025n\377\026TI\345n&\215\205>\t\254\020\360\017\364\316l\222Y\356\017\301\004\313\002\247\013S\303D\0030~\347\324i\035\211\364\377;\355v6[\367D\030r\360e\240\243l\030\263&\360\324t\016\317\222H\005\360w8\217\013b1\364\316j>_z\331\274\034\206\312\020\004\301\307\327\031\227\010X\035\350,\n\035\022\267%\2231\241&\364\376\270l\000\005\025\014H4\371\026*\"\006)39\024\037\372\275p\356<\263iN\230\302U\376\200\007}o@\202\205T\3239\032\272\025\320!\235\234\265\252\322\023\270\246\306\371\251uT5\362\365\324\216^J\265\227\n1~\r\027\206\373\034\234\232\3622\315+\2120\026e\272Z\343\376\265a\224\223\256\003\372dT\"\255\010\311\341\356\003QU\355\227\303\304\346\276\020\2275V\242>\270F,\017\350\346\014y\004\254 (\370\246\302]U\306r\314q\227Op\353\034j \274\224\357'$\221\324t3\277\315\r]ThDq\342T<1\211z\221\306:}n\336\000\321iq\302\213''\2215}\235\3465\226\366\2310^J\365\220\223\327\334@&:\030\320\210\024EX\206I\317\204\222\034\3213\336!\234\367\262\030.\004\364\360\003\340\320\223\300\343'\001\364\300#=}\207*\215s\273}\220y\037\240N\006J\305v\351&>\177\270\256(\303\361\271\305\025\024.1\2171\224\032h<\260r\345\\E@7;27\316\031\350\277\026\356\210\224\215tD!\035\002O\364\265\301\000DZ\3413\304\r\tQ%\035c\257\344""\3508\312i\354\2502\206\024N\005Bn\312\031E\333#\337\014aP\217PR\302\0377\3500\213\210\246\016\3134\320\210+\n:@\345<3\376\306\247{P\254\317\002j\254\207*\026\021\275QL\234\304\326?\204y\221\230\305,\325\373\306\365\255x_\2732\207\340\322)\235\252>Q^>\232Q\031\n\010\234^r\340\327f\242\225\027\375\316\265\013gJ\316\023\215\030\025\234r\223\035\024}P'\tU\322\004\035O\2440\364\254n8\335\305i\327\001`\230(\316\375\270@\310n\006\273\235\277RIg\252s\223*\217\0375\247jL\305\220\007\030\252\376\300\002Uq\010w\361H\r\225\245\201\356\365(Z\302\374q;\020\236\"\014&\020\000o0\220C<\270\344\216A\326\271\nU\004\020\243\342MU\253[\374\214\032\346\243[4\365\014m\244O\245\003\322\023\227\032\316\n\022\211\207}\3049b\014\201\204\000\207\002\274\200\254\035\243\002C\237eVG\370C\207\214\20718\232\002\"\260\323?\2663\003\224\002\036\306\201\265@.\215\001\272\275\353\016\274Eq\367@\256\234)\"\325\217\221\252\266\342\240~&\221\310\371\276\n\355\240\342\322\335\325d\210.\225\245\262\232\343\017\241T\364\345\324\221\262\237T\214\272\032\364\004*\237A\364p)\261}@/\365oU\262\221\373\326\315\256\314\216\207\363\314C\305\362\245\3051\266\370\322\315S\350Jr^\253\242\357\177\256\252\305\363\254~=\222\240\370\234\315\2154=\347\375\267\276\343\335\343\271\306\367X\014\024e\201-\014@\236\277\323\204\31127%\371=\3740\325\302\346\231o\233\037\036\203S.\2533\274\360\t]?\202\345\215\017\267\227}\004\334\3155`'\233\r\006\"%!\265RF\211\000\017\224+{Z\205\244\257\333\356|\363\375+g\024D\332\370\336\007Nk3q\264Z\256Z\247\255\213w\264\262\354\007\207\352\007eh=\353&5I,\027i\337\274Sh\232\305\323\250\021\250/\270\035\320FV\320V`\320`a\330*;\2709\300I\320Me\320ek\320kv\320v|\320|}\330*9\3209Q\320Qe\320ef\340\004\013\210<\220q"; + #else /* compression: none (5721 bytes) */ +const char* const bytes = "^([A-Z][A-Z0-9]+[A-Z])(\\d+)?(?(2)(?:\\.\\d+)?$|$)Failed convert C to python valueFailed to read number of variablesFile {0} does not exist!\n Just defining a custom exception to raise when readstat gives an error return code.\n \n Just defining a custom exception to raise when pyreadstat raises an exception.\n %tC%tc%tcHH:MM%tcHH:MM:SS%td%tdCCYY-NN-DD%tdD_m_Yutf-8' with date type in column 'wrong parser formatADATEB8601DAB8601DNB8601DTB8601TMDATEDATEAMPMDATETIMEDDMMYYDDMMYYBDDMMYYCDDMMYYDDDMMYYNDDMMYYPDDMMYYSDTDATEDTIMEE8601DAE8601DTE8601TMEDATEHHMMIS8601DAIS8601DTIS8601TMInt64JDATEMDYAMPMMMDDYYMMDDYYBMMDDYYCMMDDYYDMMDDYYNMMDDYYPMMDDYYSObjectOrderedDictPyreadstatError__Pyx_PyDict_NextRefReadstatErrorSDATETIMETIMEAMPMTODWEEKDATEWEEKDATXYMDHMSYYMMDDYYMMDDBYYMMDDDYYMMDDNYYMMDDPYYMMDDSallallowed_formatsappendastypeasyncio.coroutinesbackendcastcenter__class_getitem__cline_in_tracebackcolcollectionscolumn_labelscolumn_namescolumn_nam""es_to_labelscolumnscompilecopycounted_valuecreation_timeddata_containerdata_container.__reduce_cython__data_container.__setstate_cython__data_framedatedates_as_pandasdates_as_pandas_datetimedatetimedictdisable_datetime_conversion__doc__doubledtadtypedtypes_duplicatedemptyencodeencodingenumerateexpanduserextendextra_date_formatsextra_datetime_formatsextra_time_formatsfile_encodingfile_extensionfile_formatfile_labelfilename_pathfillfloatfloat64floorformatformats_as_categoryformats_as_ordered_categoryfrom_dictfrom_epochfromtimestampfsdecodefsencode__func__getget_native_namespacegetfilesystemencoding__getstate__grouphiint16int32int64int8_is_coroutineis_dichotomyisfileitemskeyslabelleftlenlitloloc__main__match__metaclass__metadatametadata_containermetadataonlymetaonlymissing_rangesmissing_user_valuesmodification_time__module__mr_sets__mro_entries__name__name__nannarwhals.stable.v2no_datetime_conversionnominalnotesnpntnumber_columnsnumber_rowsnumpynwobjectordinaloriginal_variable_informatsoriginal_variable_typesosoutput_formatpandasparser_entry_pointparser_formatpathpolarspoppor__prepare__pyclassespyreadstat._readstat_parser__pyx_capi____pyx_state__qualname__rereadreadstat_variable_types__reduce____reduce_cython____reduce_ex__rightroundrow_limitrow_offsetsas7bcatsas7bdatscaleschemaseekself__set_name__setdefault__setstate____setstate_cython__stablestringsurrogateescapesystable_nametell__test__timetime_unitto_datetimeto_nativetolisttypeundeterminedunknownususecolsuser_missingusernanv2value_labelsvaluesvariable_alignmentvariable_display_widthvariable_listvariable_measurevariable_storage_widthvariable_to_labelvariable_value_labelswarnwarningswith_columnsxportzipPyObject *(PyObject *, __pyx_t_10pyreadstat_16_readstat_parser_py_file_format, __pyx_t_10pyreadstat_16_readstat_parser_py_file_extension, PyObject *, int, int, PyObject *, int, int, long, long, PyObject *, PyObject *, PyObject *, PyObject *)\000PyObject *(PyObject *, struct __pyx_obj_10pyreadstat_16_readstat_parser_dat""a_container *)\000PyObject *(__pyx_t_10pyreadstat_16_readstat_parser_py_datetime_format, double, __pyx_t_10pyreadstat_16_readstat_parser_py_file_format, PyObject *, int, PyObject *, double)\000PyObject *(struct __pyx_obj_10pyreadstat_16_readstat_parser_data_container *)\000\000__pyx_t_10pyreadstat_16_readstat_parser_py_datetime_format (PyObject *, __pyx_t_10pyreadstat_16_readstat_parser_py_file_format)\000int (char *, readstat_value_t, char *, void *)\000int (int, char *, void *)\000int (int, readstat_variable_t *, char *, void *)\000int (int, readstat_variable_t *, readstat_value_t, void *)\000int (readstat_metadata_t *, void *)\000void (char *, struct __pyx_obj_10pyreadstat_16_readstat_parser_data_container *, __pyx_t_10pyreadstat_16_readstat_parser_py_file_extension, long, long, struct __pyx_opt_args_10pyreadstat_16_readstat_parser_run_readstat_parser *__pyx_optional_args)\000void (readstat_error_t)\000run_conversion\000dict_to_dataframe\000transform_datetime\000data_container_extract_metadata\000data_container_to_dict\000transform_variable_format\000handle_value_label\000handle_note\000handle_variable\000handle_value\000handle_metadata\000run_readstat_parser\000check_exit_statusPyObject *\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000readstat_to_numpy_types\000sas_all_formats\000sas_date_formats\000sas_datetime_formats\000sas_origin\000sas_time_formats\000spss_all_formats\000spss_date_formats\000spss_datetime_formats\000spss_origin\000spss_time_formats\000stata_all_formats\000stata_date_formats\000stata_datetime_formats\000stata_origin\000stata_time_formats\200\001\330\004\n\210+\220Q\320\000&\240a\330\027+\2501\330\r'\320'J\320J]\320]p\320pq\330\r0\3200A\320AS\320Sk\320kl\330\r+\2501\360\014\000\005\010\200~\220S\230\001\330\010\026\220a\330\010\031\230\021\330\t\027\220s\230!\330\010\026\220a\330\010\031\230\021\330\t\027\220s\230!\330\010\026\220a\330\010\031\230\021\330\t\027\220s\230!\330\010\026\220a\330\010\031\230\021\330\t\027\220s\230!""\330\010\026\220a\330\010\031\230\021\330\t\027\220s\230!\330\010\026\220a\330\010\031\230\021\340\010\016\210o\230Q\230a\340\004\031\230\021\330\004\007\200q\330\010\023\2201\340\004 \240\001\330\004\007\200q\330\010\032\230!\340\004\030\230\001\330\004\007\200q\330\010\022\220!\340\004'\240q\330\004\007\200q\330\010!\240\021\340\004\020\220\013\230>\250\021\250/\270\035\320FV\320V`\320`a\330*;\2709\300I\320Me\320ek\320kv\320v|\320|}\330*9\3209Q\320Qe\320ef\340\004\013\210<\220q"; PyObject *data = NULL; CYTHON_UNUSED_VAR(__Pyx_DecompressString); #endif PyObject **stringtab = __pyx_mstate->__pyx_string_tab; Py_ssize_t pos = 0; - for (int i = 0; i < 290; i++) { + for (int i = 0; i < 291; i++) { Py_ssize_t bytes_length = index[i].length; PyObject *string = PyUnicode_DecodeUTF8(bytes + pos, bytes_length, NULL); if (likely(string) && i >= 54) PyUnicode_InternInPlace(&string); @@ -22005,7 +22155,7 @@ const char* const bytes = "^([A-Z][A-Z0-9]+[A-Z])(\\d+)?(?(2)(?:\\.\\d+)?$|$)Fai stringtab[i] = string; pos += bytes_length; } - for (int i = 290; i < 295; i++) { + for (int i = 291; i < 296; i++) { Py_ssize_t bytes_length = index[i].length; PyObject *string = PyBytes_FromStringAndSize(bytes + pos, bytes_length); stringtab[i] = string; @@ -22016,14 +22166,14 @@ const char* const bytes = "^([A-Z][A-Z0-9]+[A-Z])(\\d+)?(?(2)(?:\\.\\d+)?$|$)Fai } } Py_XDECREF(data); - for (Py_ssize_t i = 0; i < 295; i++) { + for (Py_ssize_t i = 0; i < 296; i++) { if (unlikely(PyObject_Hash(stringtab[i]) == -1)) { __PYX_ERR(0, 1, __pyx_L1_error) } } #if CYTHON_IMMORTAL_CONSTANTS { - PyObject **table = stringtab + 290; + PyObject **table = stringtab + 291; for (Py_ssize_t i=0; i<5; ++i) { #if CYTHON_COMPILING_IN_CPYTHON_FREETHREADING #if PY_VERSION_HEX < 0x030E0000 @@ -22115,7 +22265,7 @@ static int __Pyx_CreateCodeObjects(__pyx_mstatetype *__pyx_mstate) { __pyx_mstate_global->__pyx_codeobj_tab[1] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_mstate->__pyx_kp_b_iso88591_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[1])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {16, 0, 0, 24, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1360}; + const __Pyx_PyCode_New_function_description descr = {16, 0, 0, 24, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1373}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_filename_path, __pyx_mstate->__pyx_n_u_parser_format, __pyx_mstate->__pyx_n_u_metadataonly, __pyx_mstate->__pyx_n_u_dates_as_pandas_datetime, __pyx_mstate->__pyx_n_u_formats_as_category, __pyx_mstate->__pyx_n_u_formats_as_ordered_category, __pyx_mstate->__pyx_n_u_encoding, __pyx_mstate->__pyx_n_u_usecols, __pyx_mstate->__pyx_n_u_user_missing, __pyx_mstate->__pyx_n_u_disable_datetime_conversion, __pyx_mstate->__pyx_n_u_row_limit, __pyx_mstate->__pyx_n_u_row_offset, __pyx_mstate->__pyx_n_u_output_format, __pyx_mstate->__pyx_n_u_extra_datetime_formats, __pyx_mstate->__pyx_n_u_extra_date_formats, __pyx_mstate->__pyx_n_u_extra_time_formats, __pyx_mstate->__pyx_n_u_file_format, __pyx_mstate->__pyx_n_u_file_extension, __pyx_mstate->__pyx_n_u_metaonly, __pyx_mstate->__pyx_n_u_dates_as_pandas, __pyx_mstate->__pyx_n_u_usernan, __pyx_mstate->__pyx_n_u_no_datetime_conversion, __pyx_mstate->__pyx_n_u_data_frame, __pyx_mstate->__pyx_n_u_metadata}; __pyx_mstate_global->__pyx_codeobj_tab[2] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_pyreadstat__readstat_parser_pyx, __pyx_mstate->__pyx_n_u_parser_entry_point, __pyx_mstate->__pyx_kp_b_iso88591_a_1_JJ_ppq_00AASSkkl_1_S_a_s_a, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[2])) goto bad; } diff --git a/pyreadstat/_readstat_parser.pxd b/pyreadstat/_readstat_parser.pxd index e6b77eb..23ed07f 100644 --- a/pyreadstat/_readstat_parser.pxd +++ b/pyreadstat/_readstat_parser.pxd @@ -64,6 +64,7 @@ cdef class data_container: cdef list col_dytpes_isfloat cdef list col_formats cdef list col_formats_original + cdef list col_informats_original cdef object origin cdef double unix_to_origin_secs cdef py_file_format file_format diff --git a/pyreadstat/_readstat_parser.pyx b/pyreadstat/_readstat_parser.pyx index fc13fd1..bd43be1 100644 --- a/pyreadstat/_readstat_parser.pyx +++ b/pyreadstat/_readstat_parser.pyx @@ -101,6 +101,7 @@ cdef class data_container: self.col_dytpes_isfloat = list() self.col_formats = list() self.col_formats_original = list() + self.col_informats_original = list() self.origin = None self.unix_to_origin_secs = 0 self.is_unkown_number_rows = 0 @@ -471,7 +472,8 @@ cdef int handle_variable(int index, readstat_variable_t *variable, cdef const char * var_name, cdef const char * var_label cdef const char * var_format - cdef str col_name, col_label, label_name, col_format_original, output_format + cdef const char * var_informat + cdef str col_name, col_label, label_name, col_format_original, col_informat_original, output_format cdef py_datetime_format col_format_final cdef readstat_type_t var_type cdef py_file_format file_format @@ -541,8 +543,15 @@ cdef int handle_variable(int index, readstat_variable_t *variable, col_format_original = None else: col_format_original = var_format + # informat (SAS) + var_informat = readstat_variable_get_informat(variable) + if var_informat == NULL: + col_informat_original = None + else: + col_informat_original = var_informat file_format = dc.file_format dc.col_formats_original.append(col_format_original) + dc.col_informats_original.append(col_informat_original) col_format_final = transform_variable_format(col_format_original, file_format) dc.col_formats.append(col_format_final) # readstat type @@ -1132,10 +1141,10 @@ cdef object data_container_extract_metadata(data_container data): cdef bint is_unkown_number_rows cdef object label_to_var_name cdef object labels_raw - cdef str var_name, var_label + cdef str var_name, var_label, cur_type, cur_informat cdef object current_labels cdef object labels_str - cdef object original_types + cdef object original_types, original_informats cdef readstat_type_t var_type metaonly = data.metaonly @@ -1166,11 +1175,14 @@ cdef object data_container_extract_metadata(data_container data): variable_value_labels[var_name] = current_labels original_types = dict() + original_informats = dict() readstat_types = dict() for indx in range(metadata.number_columns): cur_col = data.col_names[indx] cur_type = data.col_formats_original[indx] original_types[cur_col] = cur_type + cur_informat = data.col_informats_original[indx] + original_informats[cur_col] = cur_informat var_type = data.col_dtypes[indx] if var_type == READSTAT_TYPE_STRING or var_type == READSTAT_TYPE_STRING_REF: readstat_types[cur_col] = "string" @@ -1201,6 +1213,7 @@ cdef object data_container_extract_metadata(data_container data): metadata.value_labels = labels_raw metadata.variable_to_label = label_to_var_name metadata.original_variable_types = original_types + metadata.original_variable_informats = original_informats metadata.readstat_variable_types = readstat_types metadata.table_name = data.table_name metadata.missing_ranges = data.missing_ranges diff --git a/pyreadstat/_readstat_writer.c b/pyreadstat/_readstat_writer.c index 5d96d8f..5794730 100644 --- a/pyreadstat/_readstat_writer.c +++ b/pyreadstat/_readstat_writer.c @@ -1718,6 +1718,7 @@ struct __pyx_obj_10pyreadstat_16_readstat_parser_data_container { PyObject *col_dytpes_isfloat; PyObject *col_formats; PyObject *col_formats_original; + PyObject *col_informats_original; PyObject *origin; double unix_to_origin_secs; __pyx_t_10pyreadstat_16_readstat_parser_py_file_format file_format; @@ -2883,7 +2884,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_open_file(PyObject *); /*prot static int __pyx_f_10pyreadstat_16_readstat_writer_close_file(int); /*proto*/ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_filepath_to_bytes(PyObject *); /*proto*/ static void __pyx_f_10pyreadstat_16_readstat_writer_initial_checks(int, int, PyObject *, PyObject *, __pyx_t_10pyreadstat_16_readstat_writer_dst_file_format, PyObject *, PyObject *); /*proto*/ -static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *, PyObject *, __pyx_t_10pyreadstat_16_readstat_writer_dst_file_format, PyObject *, PyObject *, int, PyObject *, PyObject *, PyObject *, PyObject *, PyObject *, PyObject *, PyObject *, PyObject *, PyObject *, int); /*proto*/ +static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *, PyObject *, __pyx_t_10pyreadstat_16_readstat_writer_dst_file_format, PyObject *, PyObject *, int, PyObject *, PyObject *, PyObject *, PyObject *, PyObject *, PyObject *, PyObject *, PyObject *, PyObject *, PyObject *, int); /*proto*/ static readstat_label_set_t *__pyx_f_10pyreadstat_16_readstat_writer_set_value_label(readstat_writer_t *, PyObject *, PyObject *, __pyx_t_10pyreadstat_16_readstat_writer_pywriter_variable_type, __pyx_t_10pyreadstat_16_readstat_writer_dst_file_format, PyObject *, PyObject *); /*proto*/ static void __pyx_f_10pyreadstat_16_readstat_writer_add_missing_ranges(PyObject *, readstat_variable_t *, __pyx_t_10pyreadstat_16_readstat_writer_pywriter_variable_type, PyObject *); /*proto*/ static void __pyx_f_10pyreadstat_16_readstat_writer_set_variable_alignment(readstat_variable_t *, PyObject *, PyObject *); /*proto*/ @@ -2900,7 +2901,7 @@ int __pyx_module_is_main_pyreadstat___readstat_writer = 0; static PyObject *__pyx_builtin_zip; /* #### Code section: string_decls ### */ /* #### Code section: decls ### */ -static PyObject *__pyx_pf_10pyreadstat_16_readstat_writer_writer_entry_point(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_df, PyObject *__pyx_v_dst_path, PyObject *__pyx_v_writer_format, PyObject *__pyx_v_file_label, int __pyx_v_version, PyObject *__pyx_v_table_name, PyObject *__pyx_v_column_labels, PyObject *__pyx_v_compress, PyObject *__pyx_v_row_compress, PyObject *__pyx_v_note, PyObject *__pyx_v_variable_value_labels, PyObject *__pyx_v_missing_ranges, PyObject *__pyx_v_variable_display_width, PyObject *__pyx_v_variable_measure, PyObject *__pyx_v_missing_user_values, PyObject *__pyx_v_variable_format, PyObject *__pyx_v_variable_alignment); /* proto */ +static PyObject *__pyx_pf_10pyreadstat_16_readstat_writer_writer_entry_point(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_df, PyObject *__pyx_v_dst_path, PyObject *__pyx_v_writer_format, PyObject *__pyx_v_file_label, int __pyx_v_version, PyObject *__pyx_v_table_name, PyObject *__pyx_v_column_labels, PyObject *__pyx_v_compress, PyObject *__pyx_v_row_compress, PyObject *__pyx_v_note, PyObject *__pyx_v_variable_value_labels, PyObject *__pyx_v_missing_ranges, PyObject *__pyx_v_variable_display_width, PyObject *__pyx_v_variable_measure, PyObject *__pyx_v_missing_user_values, PyObject *__pyx_v_variable_format, PyObject *__pyx_v_variable_alignment, PyObject *__pyx_v_variable_informat); /* proto */ /* #### Code section: late_includes ### */ /* #### Code section: module_state ### */ /* SmallCodeConfig */ @@ -2929,7 +2930,7 @@ typedef struct { __Pyx_CachedCFunction __pyx_umethod_PyDict_Type_values; PyObject *__pyx_tuple[2]; PyObject *__pyx_codeobj_tab[1]; - PyObject *__pyx_string_tab[225]; + PyObject *__pyx_string_tab[226]; PyObject *__pyx_number_tab[10]; /* #### Code section: module_state_contents ### */ /* CommonTypesMetaclass.module_state_decls */ @@ -3179,23 +3180,24 @@ static __pyx_mstatetype * const __pyx_mstate_global = &__pyx_mstate_global_stati #define __pyx_n_u_variable_alignment __pyx_string_tab[205] #define __pyx_n_u_variable_display_width __pyx_string_tab[206] #define __pyx_n_u_variable_format __pyx_string_tab[207] -#define __pyx_n_u_variable_measure __pyx_string_tab[208] -#define __pyx_n_u_variable_value_labels __pyx_string_tab[209] -#define __pyx_n_u_version __pyx_string_tab[210] -#define __pyx_n_u_warn __pyx_string_tab[211] -#define __pyx_n_u_warnings __pyx_string_tab[212] -#define __pyx_n_u_when __pyx_string_tab[213] -#define __pyx_n_u_with_columns __pyx_string_tab[214] -#define __pyx_n_u_writer_entry_point __pyx_string_tab[215] -#define __pyx_n_u_writer_file_format __pyx_string_tab[216] -#define __pyx_n_u_writer_format __pyx_string_tab[217] -#define __pyx_n_u_x __pyx_string_tab[218] -#define __pyx_n_u_xport __pyx_string_tab[219] -#define __pyx_n_u_zip __pyx_string_tab[220] -#define __pyx_kp_b_PyObject_PyObject_PyObject_PyObj __pyx_string_tab[221] -#define __pyx_kp_b_PyObject_readstat_to_numpy_types __pyx_string_tab[222] -#define __pyx_kp_b_iso88591_Q_22BBVVW_11K1_1_S_Q_a_9D_1_1_a __pyx_string_tab[223] -#define __pyx_kp_b_void_readstat_error_t_check_exit __pyx_string_tab[224] +#define __pyx_n_u_variable_informat __pyx_string_tab[208] +#define __pyx_n_u_variable_measure __pyx_string_tab[209] +#define __pyx_n_u_variable_value_labels __pyx_string_tab[210] +#define __pyx_n_u_version __pyx_string_tab[211] +#define __pyx_n_u_warn __pyx_string_tab[212] +#define __pyx_n_u_warnings __pyx_string_tab[213] +#define __pyx_n_u_when __pyx_string_tab[214] +#define __pyx_n_u_with_columns __pyx_string_tab[215] +#define __pyx_n_u_writer_entry_point __pyx_string_tab[216] +#define __pyx_n_u_writer_file_format __pyx_string_tab[217] +#define __pyx_n_u_writer_format __pyx_string_tab[218] +#define __pyx_n_u_x __pyx_string_tab[219] +#define __pyx_n_u_xport __pyx_string_tab[220] +#define __pyx_n_u_zip __pyx_string_tab[221] +#define __pyx_kp_b_PyObject_PyObject_PyObject_PyObj __pyx_string_tab[222] +#define __pyx_kp_b_PyObject_readstat_to_numpy_types __pyx_string_tab[223] +#define __pyx_kp_b_iso88591_Q_22BBVVW_11K1_1_S_Q_a_9D_1_1_a __pyx_string_tab[224] +#define __pyx_kp_b_void_readstat_error_t_check_exit __pyx_string_tab[225] #define __pyx_float_1e3 __pyx_number_tab[0] #define __pyx_float_1e6 __pyx_number_tab[1] #define __pyx_float_1e9 __pyx_number_tab[2] @@ -3223,7 +3225,7 @@ static CYTHON_SMALL_CODE int __pyx_m_clear(PyObject *m) { Py_CLEAR(clear_module_state->__pyx_ptype_10pyreadstat_16_readstat_parser_data_container); for (int i=0; i<2; ++i) { Py_CLEAR(clear_module_state->__pyx_tuple[i]); } for (int i=0; i<1; ++i) { Py_CLEAR(clear_module_state->__pyx_codeobj_tab[i]); } - for (int i=0; i<225; ++i) { Py_CLEAR(clear_module_state->__pyx_string_tab[i]); } + for (int i=0; i<226; ++i) { Py_CLEAR(clear_module_state->__pyx_string_tab[i]); } for (int i=0; i<10; ++i) { Py_CLEAR(clear_module_state->__pyx_number_tab[i]); } /* #### Code section: module_state_clear_contents ### */ /* CommonTypesMetaclass.module_state_clear */ @@ -3250,7 +3252,7 @@ static CYTHON_SMALL_CODE int __pyx_m_traverse(PyObject *m, visitproc visit, void Py_VISIT(traverse_module_state->__pyx_ptype_10pyreadstat_16_readstat_parser_data_container); for (int i=0; i<2; ++i) { __Pyx_VISIT_CONST(traverse_module_state->__pyx_tuple[i]); } for (int i=0; i<1; ++i) { __Pyx_VISIT_CONST(traverse_module_state->__pyx_codeobj_tab[i]); } - for (int i=0; i<225; ++i) { __Pyx_VISIT_CONST(traverse_module_state->__pyx_string_tab[i]); } + for (int i=0; i<226; ++i) { __Pyx_VISIT_CONST(traverse_module_state->__pyx_string_tab[i]); } for (int i=0; i<10; ++i) { __Pyx_VISIT_CONST(traverse_module_state->__pyx_number_tab[i]); } /* #### Code section: module_state_traverse_contents ### */ /* CommonTypesMetaclass.module_state_traverse */ @@ -13100,7 +13102,7 @@ static PyObject *__pyx_f_10pyreadstat_16_readstat_writer_filepath_to_bytes(PyObj * dict missing_ranges, dict missing_user_values, dict variable_alignment, */ -static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_df, PyObject *__pyx_v_filename_path, __pyx_t_10pyreadstat_16_readstat_writer_dst_file_format __pyx_v_file_format, PyObject *__pyx_v_file_label, PyObject *__pyx_v_column_labels, int __pyx_v_file_format_version, PyObject *__pyx_v_note, PyObject *__pyx_v_table_name, PyObject *__pyx_v_variable_value_labels, PyObject *__pyx_v_missing_ranges, PyObject *__pyx_v_missing_user_values, PyObject *__pyx_v_variable_alignment, PyObject *__pyx_v_variable_display_width, PyObject *__pyx_v_variable_measure, PyObject *__pyx_v_variable_format, int __pyx_v_row_compression) { +static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_df, PyObject *__pyx_v_filename_path, __pyx_t_10pyreadstat_16_readstat_writer_dst_file_format __pyx_v_file_format, PyObject *__pyx_v_file_label, PyObject *__pyx_v_column_labels, int __pyx_v_file_format_version, PyObject *__pyx_v_note, PyObject *__pyx_v_table_name, PyObject *__pyx_v_variable_value_labels, PyObject *__pyx_v_missing_ranges, PyObject *__pyx_v_missing_user_values, PyObject *__pyx_v_variable_alignment, PyObject *__pyx_v_variable_display_width, PyObject *__pyx_v_variable_measure, PyObject *__pyx_v_variable_format, PyObject *__pyx_v_variable_informat, int __pyx_v_row_compression) { PyObject *__pyx_v_natnamespace = 0; PyObject *__pyx_v_pd = 0; int __pyx_v_is_pandas; @@ -13193,15 +13195,16 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d char const *__pyx_t_28; char const *__pyx_t_29; char const *__pyx_t_30; - readstat_label_set_t *__pyx_t_31; - long __pyx_t_32; - double __pyx_t_33; - int32_t __pyx_t_34; - char const *__pyx_t_35; + char const *__pyx_t_31; + readstat_label_set_t *__pyx_t_32; + long __pyx_t_33; + double __pyx_t_34; + int32_t __pyx_t_35; char const *__pyx_t_36; - PyObject *__pyx_t_37 = NULL; + char const *__pyx_t_37; PyObject *__pyx_t_38 = NULL; PyObject *__pyx_t_39 = NULL; + PyObject *__pyx_t_40 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -13210,7 +13213,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d __Pyx_INCREF(__pyx_v_column_labels); __Pyx_INCREF(__pyx_v_note); - /* "pyreadstat/_readstat_writer.pyx":690 + /* "pyreadstat/_readstat_writer.pyx":691 * * cdef object natnamespace * cdef object pd = None # <<<<<<<<<<<<<< @@ -13220,28 +13223,28 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d __Pyx_INCREF(Py_None); __pyx_v_pd = Py_None; - /* "pyreadstat/_readstat_writer.pyx":695 + /* "pyreadstat/_readstat_writer.pyx":696 * cdef list col_names * * filename_bytes = filepath_to_bytes(filename_path) # <<<<<<<<<<<<<< * filename_bytes = os.path.expanduser(filename_bytes) * */ - __pyx_t_1 = __pyx_f_10pyreadstat_16_readstat_writer_filepath_to_bytes(__pyx_v_filename_path); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 695, __pyx_L1_error) + __pyx_t_1 = __pyx_f_10pyreadstat_16_readstat_writer_filepath_to_bytes(__pyx_v_filename_path); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 696, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_filename_bytes = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - /* "pyreadstat/_readstat_writer.pyx":696 + /* "pyreadstat/_readstat_writer.pyx":697 * * filename_bytes = filepath_to_bytes(filename_path) * filename_bytes = os.path.expanduser(filename_bytes) # <<<<<<<<<<<<<< * * df = nw.from_native(df, eager_only=True) */ - __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_os); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 696, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_os); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 697, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_path); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 696, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_path); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 697, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_2 = __pyx_t_4; @@ -13252,14 +13255,14 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_expanduser, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 696, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 697, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } - if (!(likely(PyBytes_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("bytes", __pyx_t_1))) __PYX_ERR(0, 696, __pyx_L1_error) + if (!(likely(PyBytes_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("bytes", __pyx_t_1))) __PYX_ERR(0, 697, __pyx_L1_error) __Pyx_DECREF_SET(__pyx_v_filename_bytes, ((PyObject*)__pyx_t_1)); __pyx_t_1 = 0; - /* "pyreadstat/_readstat_writer.pyx":698 + /* "pyreadstat/_readstat_writer.pyx":699 * filename_bytes = os.path.expanduser(filename_bytes) * * df = nw.from_native(df, eager_only=True) # <<<<<<<<<<<<<< @@ -13267,9 +13270,9 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d * is_pandas = df.implementation.is_pandas() */ __pyx_t_4 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_nw); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 698, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_nw); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 699, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_from_native); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 698, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_from_native); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 699, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_5 = 1; @@ -13286,20 +13289,20 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d #endif { PyObject *__pyx_callargs[2 + ((CYTHON_VECTORCALL) ? 1 : 0)] = {__pyx_t_4, __pyx_v_df}; - __pyx_t_2 = __Pyx_MakeVectorcallBuilderKwds(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 698, __pyx_L1_error) + __pyx_t_2 = __Pyx_MakeVectorcallBuilderKwds(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 699, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - if (__Pyx_VectorcallBuilder_AddArg(__pyx_mstate_global->__pyx_n_u_eager_only, Py_True, __pyx_t_2, __pyx_callargs+2, 0) < (0)) __PYX_ERR(0, 698, __pyx_L1_error) + if (__Pyx_VectorcallBuilder_AddArg(__pyx_mstate_global->__pyx_n_u_eager_only, Py_True, __pyx_t_2, __pyx_callargs+2, 0) < (0)) __PYX_ERR(0, 699, __pyx_L1_error) __pyx_t_1 = __Pyx_Object_Vectorcall_CallFromBuilder((PyObject*)__pyx_t_3, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET), __pyx_t_2); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 698, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 699, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } __Pyx_DECREF_SET(__pyx_v_df, __pyx_t_1); __pyx_t_1 = 0; - /* "pyreadstat/_readstat_writer.pyx":699 + /* "pyreadstat/_readstat_writer.pyx":700 * * df = nw.from_native(df, eager_only=True) * natnamespace = nw.get_native_namespace(df) # <<<<<<<<<<<<<< @@ -13307,9 +13310,9 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d * is_polars = df.implementation.is_polars() */ __pyx_t_3 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_nw); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 699, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_nw); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 700, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_get_native_namespace); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 699, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_get_native_namespace); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 700, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_5 = 1; @@ -13329,20 +13332,20 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 699, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 700, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } __pyx_v_natnamespace = __pyx_t_1; __pyx_t_1 = 0; - /* "pyreadstat/_readstat_writer.pyx":700 + /* "pyreadstat/_readstat_writer.pyx":701 * df = nw.from_native(df, eager_only=True) * natnamespace = nw.get_native_namespace(df) * is_pandas = df.implementation.is_pandas() # <<<<<<<<<<<<<< * is_polars = df.implementation.is_polars() * col_names = df.columns */ - __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_df, __pyx_mstate_global->__pyx_n_u_implementation); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 700, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_df, __pyx_mstate_global->__pyx_n_u_implementation); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 701, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = __pyx_t_3; __Pyx_INCREF(__pyx_t_4); @@ -13352,21 +13355,21 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_is_pandas, __pyx_callargs+__pyx_t_5, (1-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 700, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 701, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } - __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_6 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 700, __pyx_L1_error) + __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_6 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 701, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_v_is_pandas = __pyx_t_6; - /* "pyreadstat/_readstat_writer.pyx":701 + /* "pyreadstat/_readstat_writer.pyx":702 * natnamespace = nw.get_native_namespace(df) * is_pandas = df.implementation.is_pandas() * is_polars = df.implementation.is_polars() # <<<<<<<<<<<<<< * col_names = df.columns * if is_pandas: */ - __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_df, __pyx_mstate_global->__pyx_n_u_implementation); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 701, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_df, __pyx_mstate_global->__pyx_n_u_implementation); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 702, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_3 = __pyx_t_4; __Pyx_INCREF(__pyx_t_3); @@ -13376,27 +13379,27 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_is_polars, __pyx_callargs+__pyx_t_5, (1-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 701, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 702, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } - __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_6 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 701, __pyx_L1_error) + __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_6 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 702, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_v_is_polars = __pyx_t_6; - /* "pyreadstat/_readstat_writer.pyx":702 + /* "pyreadstat/_readstat_writer.pyx":703 * is_pandas = df.implementation.is_pandas() * is_polars = df.implementation.is_polars() * col_names = df.columns # <<<<<<<<<<<<<< * if is_pandas: * pd = natnamespace */ - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_df, __pyx_mstate_global->__pyx_n_u_columns); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 702, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_df, __pyx_mstate_global->__pyx_n_u_columns); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 703, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - if (!(likely(PyList_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("list", __pyx_t_1))) __PYX_ERR(0, 702, __pyx_L1_error) + if (!(likely(PyList_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("list", __pyx_t_1))) __PYX_ERR(0, 703, __pyx_L1_error) __pyx_v_col_names = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - /* "pyreadstat/_readstat_writer.pyx":703 + /* "pyreadstat/_readstat_writer.pyx":704 * is_polars = df.implementation.is_polars() * col_names = df.columns * if is_pandas: # <<<<<<<<<<<<<< @@ -13405,7 +13408,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d */ if (__pyx_v_is_pandas) { - /* "pyreadstat/_readstat_writer.pyx":704 + /* "pyreadstat/_readstat_writer.pyx":705 * col_names = df.columns * if is_pandas: * pd = natnamespace # <<<<<<<<<<<<<< @@ -13415,7 +13418,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d __Pyx_INCREF(__pyx_v_natnamespace); __Pyx_DECREF_SET(__pyx_v_pd, __pyx_v_natnamespace); - /* "pyreadstat/_readstat_writer.pyx":703 + /* "pyreadstat/_readstat_writer.pyx":704 * is_polars = df.implementation.is_polars() * col_names = df.columns * if is_pandas: # <<<<<<<<<<<<<< @@ -13424,16 +13427,16 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d */ } - /* "pyreadstat/_readstat_writer.pyx":706 + /* "pyreadstat/_readstat_writer.pyx":707 * pd = natnamespace * * initial_checks(is_pandas, is_polars, variable_value_labels, missing_user_values, file_format, # <<<<<<<<<<<<<< * col_names, filename_bytes) * */ - __pyx_f_10pyreadstat_16_readstat_writer_initial_checks(__pyx_v_is_pandas, __pyx_v_is_polars, __pyx_v_variable_value_labels, __pyx_v_missing_user_values, __pyx_v_file_format, __pyx_v_col_names, __pyx_v_filename_bytes); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 706, __pyx_L1_error) + __pyx_f_10pyreadstat_16_readstat_writer_initial_checks(__pyx_v_is_pandas, __pyx_v_is_polars, __pyx_v_variable_value_labels, __pyx_v_missing_user_values, __pyx_v_file_format, __pyx_v_col_names, __pyx_v_filename_bytes); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 707, __pyx_L1_error) - /* "pyreadstat/_readstat_writer.pyx":717 + /* "pyreadstat/_readstat_writer.pyx":718 * cdef bytes file_label_bytes * cdef char *file_labl * cdef int dta_str_max_len = 0 # <<<<<<<<<<<<<< @@ -13442,7 +13445,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d */ __pyx_v_dta_str_max_len = 0; - /* "pyreadstat/_readstat_writer.pyx":720 + /* "pyreadstat/_readstat_writer.pyx":721 * * * if file_format == FILE_FORMAT_POR: # <<<<<<<<<<<<<< @@ -13452,18 +13455,18 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d __pyx_t_6 = (__pyx_v_file_format == __pyx_e_10pyreadstat_16_readstat_writer_FILE_FORMAT_POR); if (__pyx_t_6) { - /* "pyreadstat/_readstat_writer.pyx":721 + /* "pyreadstat/_readstat_writer.pyx":722 * * if file_format == FILE_FORMAT_POR: * col_names = [x.upper() for x in col_names] # <<<<<<<<<<<<<< * * if file_format == FILE_FORMAT_DTA: */ - __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 721, __pyx_L1_error) + __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 722, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (unlikely(__pyx_v_col_names == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable"); - __PYX_ERR(0, 721, __pyx_L1_error) + __PYX_ERR(0, 722, __pyx_L1_error) } __pyx_t_4 = __pyx_v_col_names; __Pyx_INCREF(__pyx_t_4); __pyx_t_7 = 0; @@ -13471,13 +13474,13 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d { Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_4); #if !CYTHON_ASSUME_SAFE_SIZE - if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 721, __pyx_L1_error) + if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 722, __pyx_L1_error) #endif if (__pyx_t_7 >= __pyx_temp) break; } __pyx_t_3 = __Pyx_PyList_GetItemRefFast(__pyx_t_4, __pyx_t_7, __Pyx_ReferenceSharing_OwnStrongReference); ++__pyx_t_7; - if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 721, __pyx_L1_error) + if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 722, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_3); __pyx_t_3 = 0; @@ -13488,17 +13491,17 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL}; __pyx_t_3 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_upper, __pyx_callargs+__pyx_t_5, (1-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 721, __pyx_L1_error) + if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 722, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); } - if (unlikely(__Pyx_ListComp_Append(__pyx_t_1, (PyObject*)__pyx_t_3))) __PYX_ERR(0, 721, __pyx_L1_error) + if (unlikely(__Pyx_ListComp_Append(__pyx_t_1, (PyObject*)__pyx_t_3))) __PYX_ERR(0, 722, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF_SET(__pyx_v_col_names, ((PyObject*)__pyx_t_1)); __pyx_t_1 = 0; - /* "pyreadstat/_readstat_writer.pyx":720 + /* "pyreadstat/_readstat_writer.pyx":721 * * * if file_format == FILE_FORMAT_POR: # <<<<<<<<<<<<<< @@ -13507,7 +13510,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d */ } - /* "pyreadstat/_readstat_writer.pyx":723 + /* "pyreadstat/_readstat_writer.pyx":724 * col_names = [x.upper() for x in col_names] * * if file_format == FILE_FORMAT_DTA: # <<<<<<<<<<<<<< @@ -13517,7 +13520,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d __pyx_t_6 = (__pyx_v_file_format == __pyx_e_10pyreadstat_16_readstat_writer_FILE_FORMAT_DTA); if (__pyx_t_6) { - /* "pyreadstat/_readstat_writer.pyx":724 + /* "pyreadstat/_readstat_writer.pyx":725 * * if file_format == FILE_FORMAT_DTA: * if file_format_version >= 117: # <<<<<<<<<<<<<< @@ -13527,7 +13530,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d __pyx_t_6 = (__pyx_v_file_format_version >= 0x75); if (__pyx_t_6) { - /* "pyreadstat/_readstat_writer.pyx":725 + /* "pyreadstat/_readstat_writer.pyx":726 * if file_format == FILE_FORMAT_DTA: * if file_format_version >= 117: * dta_str_max_len = dta_117_max_width # <<<<<<<<<<<<<< @@ -13536,7 +13539,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d */ __pyx_v_dta_str_max_len = __pyx_v_10pyreadstat_16_readstat_writer_dta_117_max_width; - /* "pyreadstat/_readstat_writer.pyx":724 + /* "pyreadstat/_readstat_writer.pyx":725 * * if file_format == FILE_FORMAT_DTA: * if file_format_version >= 117: # <<<<<<<<<<<<<< @@ -13546,7 +13549,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d goto __pyx_L9; } - /* "pyreadstat/_readstat_writer.pyx":726 + /* "pyreadstat/_readstat_writer.pyx":727 * if file_format_version >= 117: * dta_str_max_len = dta_117_max_width * elif file_format_version >= 111: # <<<<<<<<<<<<<< @@ -13556,7 +13559,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d __pyx_t_6 = (__pyx_v_file_format_version >= 0x6F); if (__pyx_t_6) { - /* "pyreadstat/_readstat_writer.pyx":727 + /* "pyreadstat/_readstat_writer.pyx":728 * dta_str_max_len = dta_117_max_width * elif file_format_version >= 111: * dta_str_max_len = dta_111_max_width # <<<<<<<<<<<<<< @@ -13565,7 +13568,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d */ __pyx_v_dta_str_max_len = __pyx_v_10pyreadstat_16_readstat_writer_dta_111_max_width; - /* "pyreadstat/_readstat_writer.pyx":726 + /* "pyreadstat/_readstat_writer.pyx":727 * if file_format_version >= 117: * dta_str_max_len = dta_117_max_width * elif file_format_version >= 111: # <<<<<<<<<<<<<< @@ -13575,7 +13578,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d goto __pyx_L9; } - /* "pyreadstat/_readstat_writer.pyx":729 + /* "pyreadstat/_readstat_writer.pyx":730 * dta_str_max_len = dta_111_max_width * else: * dta_str_max_len = dta_old_max_width # <<<<<<<<<<<<<< @@ -13587,7 +13590,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d } __pyx_L9:; - /* "pyreadstat/_readstat_writer.pyx":723 + /* "pyreadstat/_readstat_writer.pyx":724 * col_names = [x.upper() for x in col_names] * * if file_format == FILE_FORMAT_DTA: # <<<<<<<<<<<<<< @@ -13596,29 +13599,29 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d */ } - /* "pyreadstat/_readstat_writer.pyx":731 + /* "pyreadstat/_readstat_writer.pyx":732 * dta_str_max_len = dta_old_max_width * * cdef list col_types = get_narwhals_column_types(df, missing_user_values, variable_value_labels, dta_str_max_len) # <<<<<<<<<<<<<< * cdef int row_count = len(df) * cdef int col_count = len(col_names) */ - __pyx_t_1 = __pyx_f_10pyreadstat_16_readstat_writer_get_narwhals_column_types(__pyx_v_df, __pyx_v_missing_user_values, __pyx_v_variable_value_labels, __pyx_v_dta_str_max_len); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 731, __pyx_L1_error) + __pyx_t_1 = __pyx_f_10pyreadstat_16_readstat_writer_get_narwhals_column_types(__pyx_v_df, __pyx_v_missing_user_values, __pyx_v_variable_value_labels, __pyx_v_dta_str_max_len); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 732, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_col_types = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - /* "pyreadstat/_readstat_writer.pyx":732 + /* "pyreadstat/_readstat_writer.pyx":733 * * cdef list col_types = get_narwhals_column_types(df, missing_user_values, variable_value_labels, dta_str_max_len) * cdef int row_count = len(df) # <<<<<<<<<<<<<< * cdef int col_count = len(col_names) * cdef dict col_names_to_types = {k:v[0] for k,v in zip(col_names, col_types)} */ - __pyx_t_7 = PyObject_Length(__pyx_v_df); if (unlikely(__pyx_t_7 == ((Py_ssize_t)-1))) __PYX_ERR(0, 732, __pyx_L1_error) + __pyx_t_7 = PyObject_Length(__pyx_v_df); if (unlikely(__pyx_t_7 == ((Py_ssize_t)-1))) __PYX_ERR(0, 733, __pyx_L1_error) __pyx_v_row_count = __pyx_t_7; - /* "pyreadstat/_readstat_writer.pyx":733 + /* "pyreadstat/_readstat_writer.pyx":734 * cdef list col_types = get_narwhals_column_types(df, missing_user_values, variable_value_labels, dta_str_max_len) * cdef int row_count = len(df) * cdef int col_count = len(col_names) # <<<<<<<<<<<<<< @@ -13627,12 +13630,12 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d */ if (unlikely(__pyx_v_col_names == Py_None)) { PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()"); - __PYX_ERR(0, 733, __pyx_L1_error) + __PYX_ERR(0, 734, __pyx_L1_error) } - __pyx_t_7 = __Pyx_PyList_GET_SIZE(__pyx_v_col_names); if (unlikely(__pyx_t_7 == ((Py_ssize_t)-1))) __PYX_ERR(0, 733, __pyx_L1_error) + __pyx_t_7 = __Pyx_PyList_GET_SIZE(__pyx_v_col_names); if (unlikely(__pyx_t_7 == ((Py_ssize_t)-1))) __PYX_ERR(0, 734, __pyx_L1_error) __pyx_v_col_count = __pyx_t_7; - /* "pyreadstat/_readstat_writer.pyx":734 + /* "pyreadstat/_readstat_writer.pyx":735 * cdef int row_count = len(df) * cdef int col_count = len(col_names) * cdef dict col_names_to_types = {k:v[0] for k,v in zip(col_names, col_types)} # <<<<<<<<<<<<<< @@ -13640,7 +13643,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d * cdef readstat_variable_t *variable */ { /* enter inner scope */ - __pyx_t_1 = PyDict_New(); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 734, __pyx_L12_error) + __pyx_t_1 = PyDict_New(); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 735, __pyx_L12_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = NULL; __pyx_t_5 = 1; @@ -13648,7 +13651,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d PyObject *__pyx_callargs[3] = {__pyx_t_3, __pyx_v_col_names, __pyx_v_col_types}; __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_zip, __pyx_callargs+__pyx_t_5, (3-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 734, __pyx_L12_error) + if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 735, __pyx_L12_error) __Pyx_GOTREF(__pyx_t_4); } if (likely(PyList_CheckExact(__pyx_t_4)) || PyTuple_CheckExact(__pyx_t_4)) { @@ -13656,9 +13659,9 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d __pyx_t_7 = 0; __pyx_t_8 = NULL; } else { - __pyx_t_7 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 734, __pyx_L12_error) + __pyx_t_7 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 735, __pyx_L12_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_8 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_3); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 734, __pyx_L12_error) + __pyx_t_8 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_3); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 735, __pyx_L12_error) } __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; for (;;) { @@ -13667,7 +13670,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d { Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_3); #if !CYTHON_ASSUME_SAFE_SIZE - if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 734, __pyx_L12_error) + if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 735, __pyx_L12_error) #endif if (__pyx_t_7 >= __pyx_temp) break; } @@ -13677,7 +13680,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d { Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_3); #if !CYTHON_ASSUME_SAFE_SIZE - if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 734, __pyx_L12_error) + if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 735, __pyx_L12_error) #endif if (__pyx_t_7 >= __pyx_temp) break; } @@ -13688,13 +13691,13 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d #endif ++__pyx_t_7; } - if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 734, __pyx_L12_error) + if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 735, __pyx_L12_error) } else { __pyx_t_4 = __pyx_t_8(__pyx_t_3); if (unlikely(!__pyx_t_4)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { - if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(0, 734, __pyx_L12_error) + if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(0, 735, __pyx_L12_error) PyErr_Clear(); } break; @@ -13707,7 +13710,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d if (unlikely(size != 2)) { if (size > 2) __Pyx_RaiseTooManyValuesError(2); else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); - __PYX_ERR(0, 734, __pyx_L12_error) + __PYX_ERR(0, 735, __pyx_L12_error) } #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS if (likely(PyTuple_CheckExact(sequence))) { @@ -13717,22 +13720,22 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d __Pyx_INCREF(__pyx_t_9); } else { __pyx_t_2 = __Pyx_PyList_GetItemRefFast(sequence, 0, __Pyx_ReferenceSharing_SharedReference); - if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 734, __pyx_L12_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 735, __pyx_L12_error) __Pyx_XGOTREF(__pyx_t_2); __pyx_t_9 = __Pyx_PyList_GetItemRefFast(sequence, 1, __Pyx_ReferenceSharing_SharedReference); - if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 734, __pyx_L12_error) + if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 735, __pyx_L12_error) __Pyx_XGOTREF(__pyx_t_9); } #else - __pyx_t_2 = __Pyx_PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 734, __pyx_L12_error) + __pyx_t_2 = __Pyx_PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 735, __pyx_L12_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_9 = __Pyx_PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 734, __pyx_L12_error) + __pyx_t_9 = __Pyx_PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 735, __pyx_L12_error) __Pyx_GOTREF(__pyx_t_9); #endif __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; } else { Py_ssize_t index = -1; - __pyx_t_10 = PyObject_GetIter(__pyx_t_4); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 734, __pyx_L12_error) + __pyx_t_10 = PyObject_GetIter(__pyx_t_4); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 735, __pyx_L12_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_11 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_10); @@ -13740,7 +13743,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d __Pyx_GOTREF(__pyx_t_2); index = 1; __pyx_t_9 = __pyx_t_11(__pyx_t_10); if (unlikely(!__pyx_t_9)) goto __pyx_L15_unpacking_failed; __Pyx_GOTREF(__pyx_t_9); - if (__Pyx_IternextUnpackEndCheck(__pyx_t_11(__pyx_t_10), 2) < (0)) __PYX_ERR(0, 734, __pyx_L12_error) + if (__Pyx_IternextUnpackEndCheck(__pyx_t_11(__pyx_t_10), 2) < (0)) __PYX_ERR(0, 735, __pyx_L12_error) __pyx_t_11 = NULL; __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; goto __pyx_L16_unpacking_done; @@ -13748,16 +13751,16 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_t_11 = NULL; if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); - __PYX_ERR(0, 734, __pyx_L12_error) + __PYX_ERR(0, 735, __pyx_L12_error) __pyx_L16_unpacking_done:; } __Pyx_XDECREF_SET(__pyx_7genexpr__pyx_v_k, __pyx_t_2); __pyx_t_2 = 0; __Pyx_XDECREF_SET(__pyx_7genexpr__pyx_v_v, __pyx_t_9); __pyx_t_9 = 0; - __pyx_t_4 = __Pyx_GetItemInt(__pyx_7genexpr__pyx_v_v, 0, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_SharedReference); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 734, __pyx_L12_error) + __pyx_t_4 = __Pyx_GetItemInt(__pyx_7genexpr__pyx_v_v, 0, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_SharedReference); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 735, __pyx_L12_error) __Pyx_GOTREF(__pyx_t_4); - if (unlikely(PyDict_SetItem(__pyx_t_1, (PyObject*)__pyx_7genexpr__pyx_v_k, (PyObject*)__pyx_t_4))) __PYX_ERR(0, 734, __pyx_L12_error) + if (unlikely(PyDict_SetItem(__pyx_t_1, (PyObject*)__pyx_7genexpr__pyx_v_k, (PyObject*)__pyx_t_4))) __PYX_ERR(0, 735, __pyx_L12_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; @@ -13773,7 +13776,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d __pyx_v_col_names_to_types = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - /* "pyreadstat/_readstat_writer.pyx":743 + /* "pyreadstat/_readstat_writer.pyx":744 * cdef int col_indx * cdef bytes cur_col_label * cdef int col_label_count = 0 # <<<<<<<<<<<<<< @@ -13782,7 +13785,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d */ __pyx_v_col_label_count = 0; - /* "pyreadstat/_readstat_writer.pyx":752 + /* "pyreadstat/_readstat_writer.pyx":753 * cdef object values * cdef dict value_labels * cdef int lblset_cnt = 0 # <<<<<<<<<<<<<< @@ -13791,29 +13794,29 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d */ __pyx_v_lblset_cnt = 0; - /* "pyreadstat/_readstat_writer.pyx":760 + /* "pyreadstat/_readstat_writer.pyx":761 * cdef float mulfac, conv2secs * cdef readstat_string_ref_t* strref * cdef dict strref_map = dict() # <<<<<<<<<<<<<< * cdef int strref_cnt * cdef object strref_indx */ - __pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 760, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 761, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_strref_map = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - /* "pyreadstat/_readstat_writer.pyx":765 + /* "pyreadstat/_readstat_writer.pyx":766 * * * cdef int fd = open_file(filename_bytes) # <<<<<<<<<<<<<< * if fd == -1: * raise PyreadstatError( */ - __pyx_t_12 = __pyx_f_10pyreadstat_16_readstat_writer_open_file(__pyx_v_filename_bytes); if (unlikely(__pyx_t_12 == ((int)-1) && PyErr_Occurred())) __PYX_ERR(0, 765, __pyx_L1_error) + __pyx_t_12 = __pyx_f_10pyreadstat_16_readstat_writer_open_file(__pyx_v_filename_bytes); if (unlikely(__pyx_t_12 == ((int)-1) && PyErr_Occurred())) __PYX_ERR(0, 766, __pyx_L1_error) __pyx_v_fd = __pyx_t_12; - /* "pyreadstat/_readstat_writer.pyx":766 + /* "pyreadstat/_readstat_writer.pyx":767 * * cdef int fd = open_file(filename_bytes) * if fd == -1: # <<<<<<<<<<<<<< @@ -13823,7 +13826,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d __pyx_t_6 = (__pyx_v_fd == -1L); if (unlikely(__pyx_t_6)) { - /* "pyreadstat/_readstat_writer.pyx":767 + /* "pyreadstat/_readstat_writer.pyx":768 * cdef int fd = open_file(filename_bytes) * if fd == -1: * raise PyreadstatError( # <<<<<<<<<<<<<< @@ -13831,42 +13834,42 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d * "The file may be locked by another process or you may not have write permission." */ __pyx_t_3 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 767, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 768, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - /* "pyreadstat/_readstat_writer.pyx":770 + /* "pyreadstat/_readstat_writer.pyx":771 * "Could not open file '%s' for writing: %s (errno %d). " * "The file may be locked by another process or you may not have write permission." * % (os.fsdecode(filename_bytes), os.strerror(errno), errno)) # <<<<<<<<<<<<<< * writer = readstat_writer_init() * */ - __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_os); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 770, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_os); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 771, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_fsdecode); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 770, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_fsdecode); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 771, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_9 = __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v_filename_bytes); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 770, __pyx_L1_error) + __pyx_t_9 = __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v_filename_bytes); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 771, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Str(__pyx_t_9), __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 770, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Str(__pyx_t_9), __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 771, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_os); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 770, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_os); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 771, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); - __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_strerror); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 770, __pyx_L1_error) + __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_strerror); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 771, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_9 = __Pyx_PyLong_From_int(errno); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 770, __pyx_L1_error) + __pyx_t_9 = __Pyx_PyLong_From_int(errno); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 771, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); - __pyx_t_13 = __Pyx_PyObject_CallOneArg(__pyx_t_10, __pyx_t_9); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 770, __pyx_L1_error) + __pyx_t_13 = __Pyx_PyObject_CallOneArg(__pyx_t_10, __pyx_t_9); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 771, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_9 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Str(__pyx_t_13), __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 770, __pyx_L1_error) + __pyx_t_9 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Str(__pyx_t_13), __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 771, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; - __pyx_t_13 = __Pyx_PyUnicode_From_int(errno, 0, ' ', 'd'); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 770, __pyx_L1_error) + __pyx_t_13 = __Pyx_PyUnicode_From_int(errno, 0, ' ', 'd'); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 771, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __pyx_t_14[0] = __pyx_mstate_global->__pyx_kp_u_Could_not_open_file; __pyx_t_14[1] = __pyx_t_2; @@ -13876,7 +13879,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d __pyx_t_14[5] = __pyx_t_13; __pyx_t_14[6] = __pyx_mstate_global->__pyx_kp_u_The_file_may_be_locked_by_anoth; - /* "pyreadstat/_readstat_writer.pyx":768 + /* "pyreadstat/_readstat_writer.pyx":769 * if fd == -1: * raise PyreadstatError( * "Could not open file '%s' for writing: %s (errno %d). " # <<<<<<<<<<<<<< @@ -13884,7 +13887,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d * % (os.fsdecode(filename_bytes), os.strerror(errno), errno)) */ __pyx_t_10 = __Pyx_PyUnicode_Join(__pyx_t_14, 7, 21 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_2) + 15 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_9) + 8 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_13) + 82, 127 | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_2) | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_9)); - if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 768, __pyx_L1_error) + if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 769, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; @@ -13907,14 +13910,14 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 767, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 768, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __PYX_ERR(0, 767, __pyx_L1_error) + __PYX_ERR(0, 768, __pyx_L1_error) - /* "pyreadstat/_readstat_writer.pyx":766 + /* "pyreadstat/_readstat_writer.pyx":767 * * cdef int fd = open_file(filename_bytes) * if fd == -1: # <<<<<<<<<<<<<< @@ -13923,7 +13926,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d */ } - /* "pyreadstat/_readstat_writer.pyx":771 + /* "pyreadstat/_readstat_writer.pyx":772 * "The file may be locked by another process or you may not have write permission." * % (os.fsdecode(filename_bytes), os.strerror(errno), errno)) * writer = readstat_writer_init() # <<<<<<<<<<<<<< @@ -13932,7 +13935,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d */ __pyx_v_writer = readstat_writer_init(); - /* "pyreadstat/_readstat_writer.pyx":773 + /* "pyreadstat/_readstat_writer.pyx":774 * writer = readstat_writer_init() * * try: # <<<<<<<<<<<<<< @@ -13949,16 +13952,16 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d __Pyx_XGOTREF(__pyx_t_17); /*try:*/ { - /* "pyreadstat/_readstat_writer.pyx":775 + /* "pyreadstat/_readstat_writer.pyx":776 * try: * * check_exit_status(readstat_set_data_writer(writer, write_bytes)) # <<<<<<<<<<<<<< * * if file_label: */ - __pyx_f_10pyreadstat_16_readstat_parser_check_exit_status(readstat_set_data_writer(__pyx_v_writer, __pyx_f_10pyreadstat_16_readstat_writer_write_bytes)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 775, __pyx_L23_error) + __pyx_f_10pyreadstat_16_readstat_parser_check_exit_status(readstat_set_data_writer(__pyx_v_writer, __pyx_f_10pyreadstat_16_readstat_writer_write_bytes)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 776, __pyx_L23_error) - /* "pyreadstat/_readstat_writer.pyx":777 + /* "pyreadstat/_readstat_writer.pyx":778 * check_exit_status(readstat_set_data_writer(writer, write_bytes)) * * if file_label: # <<<<<<<<<<<<<< @@ -13969,13 +13972,13 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d else { Py_ssize_t __pyx_temp = __Pyx_PyUnicode_IS_TRUE(__pyx_v_file_label); - if (unlikely(((!CYTHON_ASSUME_SAFE_SIZE) && __pyx_temp < 0))) __PYX_ERR(0, 777, __pyx_L23_error) + if (unlikely(((!CYTHON_ASSUME_SAFE_SIZE) && __pyx_temp < 0))) __PYX_ERR(0, 778, __pyx_L23_error) __pyx_t_6 = (__pyx_temp != 0); } if (__pyx_t_6) { - /* "pyreadstat/_readstat_writer.pyx":778 + /* "pyreadstat/_readstat_writer.pyx":779 * * if file_label: * file_label_bytes = file_label.encode("utf-8") # <<<<<<<<<<<<<< @@ -13984,33 +13987,33 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d */ if (unlikely(__pyx_v_file_label == Py_None)) { PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "encode"); - __PYX_ERR(0, 778, __pyx_L23_error) + __PYX_ERR(0, 779, __pyx_L23_error) } - __pyx_t_1 = PyUnicode_AsUTF8String(__pyx_v_file_label); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 778, __pyx_L23_error) + __pyx_t_1 = PyUnicode_AsUTF8String(__pyx_v_file_label); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 779, __pyx_L23_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_file_label_bytes = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - /* "pyreadstat/_readstat_writer.pyx":779 + /* "pyreadstat/_readstat_writer.pyx":780 * if file_label: * file_label_bytes = file_label.encode("utf-8") * file_labl = file_label_bytes # <<<<<<<<<<<<<< * check_exit_status(readstat_writer_set_file_label(writer, file_labl)) * */ - __pyx_t_18 = __Pyx_PyBytes_AsWritableString(__pyx_v_file_label_bytes); if (unlikely((!__pyx_t_18) && PyErr_Occurred())) __PYX_ERR(0, 779, __pyx_L23_error) + __pyx_t_18 = __Pyx_PyBytes_AsWritableString(__pyx_v_file_label_bytes); if (unlikely((!__pyx_t_18) && PyErr_Occurred())) __PYX_ERR(0, 780, __pyx_L23_error) __pyx_v_file_labl = ((char *)__pyx_t_18); - /* "pyreadstat/_readstat_writer.pyx":780 + /* "pyreadstat/_readstat_writer.pyx":781 * file_label_bytes = file_label.encode("utf-8") * file_labl = file_label_bytes * check_exit_status(readstat_writer_set_file_label(writer, file_labl)) # <<<<<<<<<<<<<< * * if note: */ - __pyx_f_10pyreadstat_16_readstat_parser_check_exit_status(readstat_writer_set_file_label(__pyx_v_writer, __pyx_v_file_labl)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 780, __pyx_L23_error) + __pyx_f_10pyreadstat_16_readstat_parser_check_exit_status(readstat_writer_set_file_label(__pyx_v_writer, __pyx_v_file_labl)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 781, __pyx_L23_error) - /* "pyreadstat/_readstat_writer.pyx":777 + /* "pyreadstat/_readstat_writer.pyx":778 * check_exit_status(readstat_set_data_writer(writer, write_bytes)) * * if file_label: # <<<<<<<<<<<<<< @@ -14019,44 +14022,44 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d */ } - /* "pyreadstat/_readstat_writer.pyx":782 + /* "pyreadstat/_readstat_writer.pyx":783 * check_exit_status(readstat_writer_set_file_label(writer, file_labl)) * * if note: # <<<<<<<<<<<<<< * if type(note) == str: * note = [note] */ - __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_v_note); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(0, 782, __pyx_L23_error) + __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_v_note); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(0, 783, __pyx_L23_error) if (__pyx_t_6) { - /* "pyreadstat/_readstat_writer.pyx":783 + /* "pyreadstat/_readstat_writer.pyx":784 * * if note: * if type(note) == str: # <<<<<<<<<<<<<< * note = [note] * if type(note) == list: */ - __pyx_t_1 = PyObject_RichCompare(((PyObject *)Py_TYPE(__pyx_v_note)), ((PyObject *)(&PyUnicode_Type)), Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 783, __pyx_L23_error) - __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(0, 783, __pyx_L23_error) + __pyx_t_1 = PyObject_RichCompare(((PyObject *)Py_TYPE(__pyx_v_note)), ((PyObject *)(&PyUnicode_Type)), Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 784, __pyx_L23_error) + __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(0, 784, __pyx_L23_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_6) { - /* "pyreadstat/_readstat_writer.pyx":784 + /* "pyreadstat/_readstat_writer.pyx":785 * if note: * if type(note) == str: * note = [note] # <<<<<<<<<<<<<< * if type(note) == list: * for line in note: */ - __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 784, __pyx_L23_error) + __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 785, __pyx_L23_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_note); __Pyx_GIVEREF(__pyx_v_note); - if (__Pyx_PyList_SET_ITEM(__pyx_t_1, 0, __pyx_v_note) != (0)) __PYX_ERR(0, 784, __pyx_L23_error); + if (__Pyx_PyList_SET_ITEM(__pyx_t_1, 0, __pyx_v_note) != (0)) __PYX_ERR(0, 785, __pyx_L23_error); __Pyx_DECREF_SET(__pyx_v_note, __pyx_t_1); __pyx_t_1 = 0; - /* "pyreadstat/_readstat_writer.pyx":783 + /* "pyreadstat/_readstat_writer.pyx":784 * * if note: * if type(note) == str: # <<<<<<<<<<<<<< @@ -14065,19 +14068,19 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d */ } - /* "pyreadstat/_readstat_writer.pyx":785 + /* "pyreadstat/_readstat_writer.pyx":786 * if type(note) == str: * note = [note] * if type(note) == list: # <<<<<<<<<<<<<< * for line in note: * readstat_add_note(writer, line.encode("utf-8")) */ - __pyx_t_1 = PyObject_RichCompare(((PyObject *)Py_TYPE(__pyx_v_note)), ((PyObject *)(&PyList_Type)), Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 785, __pyx_L23_error) - __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(0, 785, __pyx_L23_error) + __pyx_t_1 = PyObject_RichCompare(((PyObject *)Py_TYPE(__pyx_v_note)), ((PyObject *)(&PyList_Type)), Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 786, __pyx_L23_error) + __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(0, 786, __pyx_L23_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (likely(__pyx_t_6)) { - /* "pyreadstat/_readstat_writer.pyx":786 + /* "pyreadstat/_readstat_writer.pyx":787 * note = [note] * if type(note) == list: * for line in note: # <<<<<<<<<<<<<< @@ -14089,9 +14092,9 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d __pyx_t_7 = 0; __pyx_t_8 = NULL; } else { - __pyx_t_7 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_v_note); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 786, __pyx_L23_error) + __pyx_t_7 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_v_note); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 787, __pyx_L23_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_8 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 786, __pyx_L23_error) + __pyx_t_8 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 787, __pyx_L23_error) } for (;;) { if (likely(!__pyx_t_8)) { @@ -14099,7 +14102,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d { Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_1); #if !CYTHON_ASSUME_SAFE_SIZE - if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 786, __pyx_L23_error) + if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 787, __pyx_L23_error) #endif if (__pyx_t_7 >= __pyx_temp) break; } @@ -14109,7 +14112,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d { Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_1); #if !CYTHON_ASSUME_SAFE_SIZE - if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 786, __pyx_L23_error) + if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 787, __pyx_L23_error) #endif if (__pyx_t_7 >= __pyx_temp) break; } @@ -14120,13 +14123,13 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d #endif ++__pyx_t_7; } - if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 786, __pyx_L23_error) + if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 787, __pyx_L23_error) } else { __pyx_t_4 = __pyx_t_8(__pyx_t_1); if (unlikely(!__pyx_t_4)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { - if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(0, 786, __pyx_L23_error) + if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(0, 787, __pyx_L23_error) PyErr_Clear(); } break; @@ -14136,7 +14139,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d __Pyx_XDECREF_SET(__pyx_v_line, __pyx_t_4); __pyx_t_4 = 0; - /* "pyreadstat/_readstat_writer.pyx":787 + /* "pyreadstat/_readstat_writer.pyx":788 * if type(note) == list: * for line in note: * readstat_add_note(writer, line.encode("utf-8")) # <<<<<<<<<<<<<< @@ -14150,14 +14153,14 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d PyObject *__pyx_callargs[2] = {__pyx_t_10, __pyx_mstate_global->__pyx_kp_u_utf_8}; __pyx_t_4 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_encode, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 787, __pyx_L23_error) + if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 788, __pyx_L23_error) __Pyx_GOTREF(__pyx_t_4); } - __pyx_t_19 = __Pyx_PyObject_AsString(__pyx_t_4); if (unlikely((!__pyx_t_19) && PyErr_Occurred())) __PYX_ERR(0, 787, __pyx_L23_error) + __pyx_t_19 = __Pyx_PyObject_AsString(__pyx_t_4); if (unlikely((!__pyx_t_19) && PyErr_Occurred())) __PYX_ERR(0, 788, __pyx_L23_error) readstat_add_note(__pyx_v_writer, __pyx_t_19); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - /* "pyreadstat/_readstat_writer.pyx":786 + /* "pyreadstat/_readstat_writer.pyx":787 * note = [note] * if type(note) == list: * for line in note: # <<<<<<<<<<<<<< @@ -14167,7 +14170,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "pyreadstat/_readstat_writer.pyx":785 + /* "pyreadstat/_readstat_writer.pyx":786 * if type(note) == str: * note = [note] * if type(note) == list: # <<<<<<<<<<<<<< @@ -14177,7 +14180,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d goto __pyx_L32; } - /* "pyreadstat/_readstat_writer.pyx":789 + /* "pyreadstat/_readstat_writer.pyx":790 * readstat_add_note(writer, line.encode("utf-8")) * else: * raise PyreadstatError(f"note should be either str or list, got {type(note)}") # <<<<<<<<<<<<<< @@ -14186,11 +14189,11 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d */ /*else*/ { __pyx_t_4 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 789, __pyx_L23_error) + __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 790, __pyx_L23_error) __Pyx_GOTREF(__pyx_t_10); - __pyx_t_3 = __Pyx_PyObject_FormatSimple(((PyObject *)Py_TYPE(__pyx_v_note)), __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 789, __pyx_L23_error) + __pyx_t_3 = __Pyx_PyObject_FormatSimple(((PyObject *)Py_TYPE(__pyx_v_note)), __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 790, __pyx_L23_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_13 = __Pyx_PyUnicode_Concat(__pyx_mstate_global->__pyx_kp_u_note_should_be_either_str_or_lis, __pyx_t_3); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 789, __pyx_L23_error) + __pyx_t_13 = __Pyx_PyUnicode_Concat(__pyx_mstate_global->__pyx_kp_u_note_should_be_either_str_or_lis, __pyx_t_3); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 790, __pyx_L23_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_5 = 1; @@ -14211,16 +14214,16 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 789, __pyx_L23_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 790, __pyx_L23_error) __Pyx_GOTREF(__pyx_t_1); } __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __PYX_ERR(0, 789, __pyx_L23_error) + __PYX_ERR(0, 790, __pyx_L23_error) } __pyx_L32:; - /* "pyreadstat/_readstat_writer.pyx":782 + /* "pyreadstat/_readstat_writer.pyx":783 * check_exit_status(readstat_writer_set_file_label(writer, file_labl)) * * if note: # <<<<<<<<<<<<<< @@ -14229,7 +14232,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d */ } - /* "pyreadstat/_readstat_writer.pyx":791 + /* "pyreadstat/_readstat_writer.pyx":792 * raise PyreadstatError(f"note should be either str or list, got {type(note)}") * * if file_format_version > -1: # <<<<<<<<<<<<<< @@ -14239,16 +14242,16 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d __pyx_t_6 = (__pyx_v_file_format_version > -1L); if (__pyx_t_6) { - /* "pyreadstat/_readstat_writer.pyx":792 + /* "pyreadstat/_readstat_writer.pyx":793 * * if file_format_version > -1: * check_exit_status(readstat_writer_set_file_format_version(writer, file_format_version)) # <<<<<<<<<<<<<< * * if row_compression: */ - __pyx_f_10pyreadstat_16_readstat_parser_check_exit_status(readstat_writer_set_file_format_version(__pyx_v_writer, __pyx_v_file_format_version)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 792, __pyx_L23_error) + __pyx_f_10pyreadstat_16_readstat_parser_check_exit_status(readstat_writer_set_file_format_version(__pyx_v_writer, __pyx_v_file_format_version)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 793, __pyx_L23_error) - /* "pyreadstat/_readstat_writer.pyx":791 + /* "pyreadstat/_readstat_writer.pyx":792 * raise PyreadstatError(f"note should be either str or list, got {type(note)}") * * if file_format_version > -1: # <<<<<<<<<<<<<< @@ -14257,7 +14260,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d */ } - /* "pyreadstat/_readstat_writer.pyx":794 + /* "pyreadstat/_readstat_writer.pyx":795 * check_exit_status(readstat_writer_set_file_format_version(writer, file_format_version)) * * if row_compression: # <<<<<<<<<<<<<< @@ -14266,16 +14269,16 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d */ if (__pyx_v_row_compression) { - /* "pyreadstat/_readstat_writer.pyx":795 + /* "pyreadstat/_readstat_writer.pyx":796 * * if row_compression: * check_exit_status(readstat_writer_set_compression(writer, READSTAT_COMPRESS_ROWS)) # <<<<<<<<<<<<<< * * # table name is used only for xpt files */ - __pyx_f_10pyreadstat_16_readstat_parser_check_exit_status(readstat_writer_set_compression(__pyx_v_writer, READSTAT_COMPRESS_ROWS)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 795, __pyx_L23_error) + __pyx_f_10pyreadstat_16_readstat_parser_check_exit_status(readstat_writer_set_compression(__pyx_v_writer, READSTAT_COMPRESS_ROWS)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 796, __pyx_L23_error) - /* "pyreadstat/_readstat_writer.pyx":794 + /* "pyreadstat/_readstat_writer.pyx":795 * check_exit_status(readstat_writer_set_file_format_version(writer, file_format_version)) * * if row_compression: # <<<<<<<<<<<<<< @@ -14284,7 +14287,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d */ } - /* "pyreadstat/_readstat_writer.pyx":798 + /* "pyreadstat/_readstat_writer.pyx":799 * * # table name is used only for xpt files * if table_name: # <<<<<<<<<<<<<< @@ -14295,13 +14298,13 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d else { Py_ssize_t __pyx_temp = __Pyx_PyUnicode_IS_TRUE(__pyx_v_table_name); - if (unlikely(((!CYTHON_ASSUME_SAFE_SIZE) && __pyx_temp < 0))) __PYX_ERR(0, 798, __pyx_L23_error) + if (unlikely(((!CYTHON_ASSUME_SAFE_SIZE) && __pyx_temp < 0))) __PYX_ERR(0, 799, __pyx_L23_error) __pyx_t_6 = (__pyx_temp != 0); } if (__pyx_t_6) { - /* "pyreadstat/_readstat_writer.pyx":799 + /* "pyreadstat/_readstat_writer.pyx":800 * # table name is used only for xpt files * if table_name: * table_name_bytes = table_name.encode("utf-8") # <<<<<<<<<<<<<< @@ -14310,33 +14313,33 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d */ if (unlikely(__pyx_v_table_name == Py_None)) { PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "encode"); - __PYX_ERR(0, 799, __pyx_L23_error) + __PYX_ERR(0, 800, __pyx_L23_error) } - __pyx_t_1 = PyUnicode_AsUTF8String(__pyx_v_table_name); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 799, __pyx_L23_error) + __pyx_t_1 = PyUnicode_AsUTF8String(__pyx_v_table_name); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 800, __pyx_L23_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_table_name_bytes = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - /* "pyreadstat/_readstat_writer.pyx":800 + /* "pyreadstat/_readstat_writer.pyx":801 * if table_name: * table_name_bytes = table_name.encode("utf-8") * tab_name = table_name_bytes # <<<<<<<<<<<<<< * check_exit_status(readstat_writer_set_table_name(writer, tab_name)) * */ - __pyx_t_18 = __Pyx_PyBytes_AsWritableString(__pyx_v_table_name_bytes); if (unlikely((!__pyx_t_18) && PyErr_Occurred())) __PYX_ERR(0, 800, __pyx_L23_error) + __pyx_t_18 = __Pyx_PyBytes_AsWritableString(__pyx_v_table_name_bytes); if (unlikely((!__pyx_t_18) && PyErr_Occurred())) __PYX_ERR(0, 801, __pyx_L23_error) __pyx_v_tab_name = ((char *)__pyx_t_18); - /* "pyreadstat/_readstat_writer.pyx":801 + /* "pyreadstat/_readstat_writer.pyx":802 * table_name_bytes = table_name.encode("utf-8") * tab_name = table_name_bytes * check_exit_status(readstat_writer_set_table_name(writer, tab_name)) # <<<<<<<<<<<<<< * * # add variables */ - __pyx_f_10pyreadstat_16_readstat_parser_check_exit_status(readstat_writer_set_table_name(__pyx_v_writer, __pyx_v_tab_name)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 801, __pyx_L23_error) + __pyx_f_10pyreadstat_16_readstat_parser_check_exit_status(readstat_writer_set_table_name(__pyx_v_writer, __pyx_v_tab_name)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 802, __pyx_L23_error) - /* "pyreadstat/_readstat_writer.pyx":798 + /* "pyreadstat/_readstat_writer.pyx":799 * * # table name is used only for xpt files * if table_name: # <<<<<<<<<<<<<< @@ -14345,39 +14348,39 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d */ } - /* "pyreadstat/_readstat_writer.pyx":804 + /* "pyreadstat/_readstat_writer.pyx":805 * * # add variables * if column_labels: # <<<<<<<<<<<<<< * if type(column_labels) != list and type(column_labels) != dict: * raise PyreadstatError("column_labels must be either list or dict!") */ - __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_v_column_labels); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(0, 804, __pyx_L23_error) + __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_v_column_labels); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(0, 805, __pyx_L23_error) if (__pyx_t_6) { - /* "pyreadstat/_readstat_writer.pyx":805 + /* "pyreadstat/_readstat_writer.pyx":806 * # add variables * if column_labels: * if type(column_labels) != list and type(column_labels) != dict: # <<<<<<<<<<<<<< * raise PyreadstatError("column_labels must be either list or dict!") * if type(column_labels) == dict: */ - __pyx_t_1 = PyObject_RichCompare(((PyObject *)Py_TYPE(__pyx_v_column_labels)), ((PyObject *)(&PyList_Type)), Py_NE); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 805, __pyx_L23_error) - __pyx_t_20 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_20 < 0))) __PYX_ERR(0, 805, __pyx_L23_error) + __pyx_t_1 = PyObject_RichCompare(((PyObject *)Py_TYPE(__pyx_v_column_labels)), ((PyObject *)(&PyList_Type)), Py_NE); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 806, __pyx_L23_error) + __pyx_t_20 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_20 < 0))) __PYX_ERR(0, 806, __pyx_L23_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_20) { } else { __pyx_t_6 = __pyx_t_20; goto __pyx_L41_bool_binop_done; } - __pyx_t_1 = PyObject_RichCompare(((PyObject *)Py_TYPE(__pyx_v_column_labels)), ((PyObject *)(&PyDict_Type)), Py_NE); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 805, __pyx_L23_error) - __pyx_t_20 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_20 < 0))) __PYX_ERR(0, 805, __pyx_L23_error) + __pyx_t_1 = PyObject_RichCompare(((PyObject *)Py_TYPE(__pyx_v_column_labels)), ((PyObject *)(&PyDict_Type)), Py_NE); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 806, __pyx_L23_error) + __pyx_t_20 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_20 < 0))) __PYX_ERR(0, 806, __pyx_L23_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_6 = __pyx_t_20; __pyx_L41_bool_binop_done:; if (unlikely(__pyx_t_6)) { - /* "pyreadstat/_readstat_writer.pyx":806 + /* "pyreadstat/_readstat_writer.pyx":807 * if column_labels: * if type(column_labels) != list and type(column_labels) != dict: * raise PyreadstatError("column_labels must be either list or dict!") # <<<<<<<<<<<<<< @@ -14385,7 +14388,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d * col_label_temp = list() */ __pyx_t_10 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_13, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 806, __pyx_L23_error) + __Pyx_GetModuleGlobalName(__pyx_t_13, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 807, __pyx_L23_error) __Pyx_GOTREF(__pyx_t_13); __pyx_t_5 = 1; #if CYTHON_UNPACK_METHODS @@ -14404,14 +14407,14 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_13, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 806, __pyx_L23_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 807, __pyx_L23_error) __Pyx_GOTREF(__pyx_t_1); } __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __PYX_ERR(0, 806, __pyx_L23_error) + __PYX_ERR(0, 807, __pyx_L23_error) - /* "pyreadstat/_readstat_writer.pyx":805 + /* "pyreadstat/_readstat_writer.pyx":806 * # add variables * if column_labels: * if type(column_labels) != list and type(column_labels) != dict: # <<<<<<<<<<<<<< @@ -14420,31 +14423,31 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d */ } - /* "pyreadstat/_readstat_writer.pyx":807 + /* "pyreadstat/_readstat_writer.pyx":808 * if type(column_labels) != list and type(column_labels) != dict: * raise PyreadstatError("column_labels must be either list or dict!") * if type(column_labels) == dict: # <<<<<<<<<<<<<< * col_label_temp = list() * for col_indx in range(col_count): */ - __pyx_t_1 = PyObject_RichCompare(((PyObject *)Py_TYPE(__pyx_v_column_labels)), ((PyObject *)(&PyDict_Type)), Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 807, __pyx_L23_error) - __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(0, 807, __pyx_L23_error) + __pyx_t_1 = PyObject_RichCompare(((PyObject *)Py_TYPE(__pyx_v_column_labels)), ((PyObject *)(&PyDict_Type)), Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 808, __pyx_L23_error) + __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(0, 808, __pyx_L23_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_6) { - /* "pyreadstat/_readstat_writer.pyx":808 + /* "pyreadstat/_readstat_writer.pyx":809 * raise PyreadstatError("column_labels must be either list or dict!") * if type(column_labels) == dict: * col_label_temp = list() # <<<<<<<<<<<<<< * for col_indx in range(col_count): * variable_name = col_names[col_indx] */ - __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 808, __pyx_L23_error) + __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 809, __pyx_L23_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_col_label_temp = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - /* "pyreadstat/_readstat_writer.pyx":809 + /* "pyreadstat/_readstat_writer.pyx":810 * if type(column_labels) == dict: * col_label_temp = list() * for col_indx in range(col_count): # <<<<<<<<<<<<<< @@ -14456,7 +14459,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d for (__pyx_t_22 = 0; __pyx_t_22 < __pyx_t_21; __pyx_t_22+=1) { __pyx_v_col_indx = __pyx_t_22; - /* "pyreadstat/_readstat_writer.pyx":810 + /* "pyreadstat/_readstat_writer.pyx":811 * col_label_temp = list() * for col_indx in range(col_count): * variable_name = col_names[col_indx] # <<<<<<<<<<<<<< @@ -14465,14 +14468,14 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d */ if (unlikely(__pyx_v_col_names == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 810, __pyx_L23_error) + __PYX_ERR(0, 811, __pyx_L23_error) } - __pyx_t_1 = __Pyx_GetItemInt_List(__pyx_v_col_names, __pyx_v_col_indx, int, 1, __Pyx_PyLong_From_int, 1, 1, 1, 1, __Pyx_ReferenceSharing_OwnStrongReference); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 810, __pyx_L23_error) + __pyx_t_1 = __Pyx_GetItemInt_List(__pyx_v_col_names, __pyx_v_col_indx, int, 1, __Pyx_PyLong_From_int, 1, 1, 1, 1, __Pyx_ReferenceSharing_OwnStrongReference); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 811, __pyx_L23_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_XDECREF_SET(__pyx_v_variable_name, __pyx_t_1); __pyx_t_1 = 0; - /* "pyreadstat/_readstat_writer.pyx":811 + /* "pyreadstat/_readstat_writer.pyx":812 * for col_indx in range(col_count): * variable_name = col_names[col_indx] * if variable_name in column_labels.keys(): # <<<<<<<<<<<<<< @@ -14486,26 +14489,26 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d PyObject *__pyx_callargs[2] = {__pyx_t_13, NULL}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_keys, __pyx_callargs+__pyx_t_5, (1-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 811, __pyx_L23_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 812, __pyx_L23_error) __Pyx_GOTREF(__pyx_t_1); } - __pyx_t_6 = (__Pyx_PySequence_ContainsTF(__pyx_v_variable_name, __pyx_t_1, Py_EQ)); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(0, 811, __pyx_L23_error) + __pyx_t_6 = (__Pyx_PySequence_ContainsTF(__pyx_v_variable_name, __pyx_t_1, Py_EQ)); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(0, 812, __pyx_L23_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_6) { - /* "pyreadstat/_readstat_writer.pyx":812 + /* "pyreadstat/_readstat_writer.pyx":813 * variable_name = col_names[col_indx] * if variable_name in column_labels.keys(): * col_label_temp.append(column_labels[variable_name]) # <<<<<<<<<<<<<< * else: * col_label_temp.append(None) */ - __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_v_column_labels, __pyx_v_variable_name); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 812, __pyx_L23_error) + __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_v_column_labels, __pyx_v_variable_name); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 813, __pyx_L23_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_23 = __Pyx_PyList_Append(__pyx_v_col_label_temp, __pyx_t_1); if (unlikely(__pyx_t_23 == ((int)-1))) __PYX_ERR(0, 812, __pyx_L23_error) + __pyx_t_23 = __Pyx_PyList_Append(__pyx_v_col_label_temp, __pyx_t_1); if (unlikely(__pyx_t_23 == ((int)-1))) __PYX_ERR(0, 813, __pyx_L23_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "pyreadstat/_readstat_writer.pyx":811 + /* "pyreadstat/_readstat_writer.pyx":812 * for col_indx in range(col_count): * variable_name = col_names[col_indx] * if variable_name in column_labels.keys(): # <<<<<<<<<<<<<< @@ -14515,7 +14518,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d goto __pyx_L46; } - /* "pyreadstat/_readstat_writer.pyx":814 + /* "pyreadstat/_readstat_writer.pyx":815 * col_label_temp.append(column_labels[variable_name]) * else: * col_label_temp.append(None) # <<<<<<<<<<<<<< @@ -14523,12 +14526,12 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d * */ /*else*/ { - __pyx_t_23 = __Pyx_PyList_Append(__pyx_v_col_label_temp, Py_None); if (unlikely(__pyx_t_23 == ((int)-1))) __PYX_ERR(0, 814, __pyx_L23_error) + __pyx_t_23 = __Pyx_PyList_Append(__pyx_v_col_label_temp, Py_None); if (unlikely(__pyx_t_23 == ((int)-1))) __PYX_ERR(0, 815, __pyx_L23_error) } __pyx_L46:; } - /* "pyreadstat/_readstat_writer.pyx":815 + /* "pyreadstat/_readstat_writer.pyx":816 * else: * col_label_temp.append(None) * column_labels = col_label_temp # <<<<<<<<<<<<<< @@ -14538,7 +14541,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d __Pyx_INCREF(__pyx_v_col_label_temp); __Pyx_DECREF_SET(__pyx_v_column_labels, __pyx_v_col_label_temp); - /* "pyreadstat/_readstat_writer.pyx":807 + /* "pyreadstat/_readstat_writer.pyx":808 * if type(column_labels) != list and type(column_labels) != dict: * raise PyreadstatError("column_labels must be either list or dict!") * if type(column_labels) == dict: # <<<<<<<<<<<<<< @@ -14547,17 +14550,17 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d */ } - /* "pyreadstat/_readstat_writer.pyx":817 + /* "pyreadstat/_readstat_writer.pyx":818 * column_labels = col_label_temp * * col_label_count = len(column_labels) # <<<<<<<<<<<<<< * if col_label_count != col_count: * raise PyreadstatError("length of column labels must be the same as number of columns") */ - __pyx_t_7 = PyObject_Length(__pyx_v_column_labels); if (unlikely(__pyx_t_7 == ((Py_ssize_t)-1))) __PYX_ERR(0, 817, __pyx_L23_error) + __pyx_t_7 = PyObject_Length(__pyx_v_column_labels); if (unlikely(__pyx_t_7 == ((Py_ssize_t)-1))) __PYX_ERR(0, 818, __pyx_L23_error) __pyx_v_col_label_count = __pyx_t_7; - /* "pyreadstat/_readstat_writer.pyx":818 + /* "pyreadstat/_readstat_writer.pyx":819 * * col_label_count = len(column_labels) * if col_label_count != col_count: # <<<<<<<<<<<<<< @@ -14567,7 +14570,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d __pyx_t_6 = (__pyx_v_col_label_count != __pyx_v_col_count); if (unlikely(__pyx_t_6)) { - /* "pyreadstat/_readstat_writer.pyx":819 + /* "pyreadstat/_readstat_writer.pyx":820 * col_label_count = len(column_labels) * if col_label_count != col_count: * raise PyreadstatError("length of column labels must be the same as number of columns") # <<<<<<<<<<<<<< @@ -14575,7 +14578,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d * strref_cnt = 0 */ __pyx_t_13 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 819, __pyx_L23_error) + __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 820, __pyx_L23_error) __Pyx_GOTREF(__pyx_t_10); __pyx_t_5 = 1; #if CYTHON_UNPACK_METHODS @@ -14594,14 +14597,14 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_10, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0; __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 819, __pyx_L23_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 820, __pyx_L23_error) __Pyx_GOTREF(__pyx_t_1); } __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __PYX_ERR(0, 819, __pyx_L23_error) + __PYX_ERR(0, 820, __pyx_L23_error) - /* "pyreadstat/_readstat_writer.pyx":818 + /* "pyreadstat/_readstat_writer.pyx":819 * * col_label_count = len(column_labels) * if col_label_count != col_count: # <<<<<<<<<<<<<< @@ -14610,7 +14613,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d */ } - /* "pyreadstat/_readstat_writer.pyx":804 + /* "pyreadstat/_readstat_writer.pyx":805 * * # add variables * if column_labels: # <<<<<<<<<<<<<< @@ -14619,7 +14622,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d */ } - /* "pyreadstat/_readstat_writer.pyx":821 + /* "pyreadstat/_readstat_writer.pyx":822 * raise PyreadstatError("length of column labels must be the same as number of columns") * * strref_cnt = 0 # <<<<<<<<<<<<<< @@ -14628,7 +14631,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d */ __pyx_v_strref_cnt = 0; - /* "pyreadstat/_readstat_writer.pyx":822 + /* "pyreadstat/_readstat_writer.pyx":823 * * strref_cnt = 0 * for col_indx in range(col_count): # <<<<<<<<<<<<<< @@ -14640,7 +14643,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d for (__pyx_t_22 = 0; __pyx_t_22 < __pyx_t_21; __pyx_t_22+=1) { __pyx_v_col_indx = __pyx_t_22; - /* "pyreadstat/_readstat_writer.pyx":823 + /* "pyreadstat/_readstat_writer.pyx":824 * strref_cnt = 0 * for col_indx in range(col_count): * curtype, max_length, _,_ = col_types[col_indx] # <<<<<<<<<<<<<< @@ -14649,9 +14652,9 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d */ if (unlikely(__pyx_v_col_types == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 823, __pyx_L23_error) + __PYX_ERR(0, 824, __pyx_L23_error) } - __pyx_t_1 = __Pyx_GetItemInt_List(__pyx_v_col_types, __pyx_v_col_indx, int, 1, __Pyx_PyLong_From_int, 1, 1, 1, 1, __Pyx_ReferenceSharing_OwnStrongReference); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 823, __pyx_L23_error) + __pyx_t_1 = __Pyx_GetItemInt_List(__pyx_v_col_types, __pyx_v_col_indx, int, 1, __Pyx_PyLong_From_int, 1, 1, 1, 1, __Pyx_ReferenceSharing_OwnStrongReference); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 824, __pyx_L23_error) __Pyx_GOTREF(__pyx_t_1); if ((likely(PyTuple_CheckExact(__pyx_t_1))) || (PyList_CheckExact(__pyx_t_1))) { PyObject* sequence = __pyx_t_1; @@ -14659,7 +14662,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d if (unlikely(size != 4)) { if (size > 4) __Pyx_RaiseTooManyValuesError(4); else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); - __PYX_ERR(0, 823, __pyx_L23_error) + __PYX_ERR(0, 824, __pyx_L23_error) } #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS if (likely(PyTuple_CheckExact(sequence))) { @@ -14673,16 +14676,16 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d __Pyx_INCREF(__pyx_t_3); } else { __pyx_t_10 = __Pyx_PyList_GetItemRefFast(sequence, 0, __Pyx_ReferenceSharing_SharedReference); - if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 823, __pyx_L23_error) + if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 824, __pyx_L23_error) __Pyx_XGOTREF(__pyx_t_10); __pyx_t_13 = __Pyx_PyList_GetItemRefFast(sequence, 1, __Pyx_ReferenceSharing_SharedReference); - if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 823, __pyx_L23_error) + if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 824, __pyx_L23_error) __Pyx_XGOTREF(__pyx_t_13); __pyx_t_4 = __Pyx_PyList_GetItemRefFast(sequence, 2, __Pyx_ReferenceSharing_SharedReference); - if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 823, __pyx_L23_error) + if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 824, __pyx_L23_error) __Pyx_XGOTREF(__pyx_t_4); __pyx_t_3 = __Pyx_PyList_GetItemRefFast(sequence, 3, __Pyx_ReferenceSharing_SharedReference); - if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 823, __pyx_L23_error) + if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 824, __pyx_L23_error) __Pyx_XGOTREF(__pyx_t_3); } #else @@ -14690,7 +14693,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d Py_ssize_t i; PyObject** temps[4] = {&__pyx_t_10,&__pyx_t_13,&__pyx_t_4,&__pyx_t_3}; for (i=0; i < 4; i++) { - PyObject* item = __Pyx_PySequence_ITEM(sequence, i); if (unlikely(!item)) __PYX_ERR(0, 823, __pyx_L23_error) + PyObject* item = __Pyx_PySequence_ITEM(sequence, i); if (unlikely(!item)) __PYX_ERR(0, 824, __pyx_L23_error) __Pyx_GOTREF(item); *(temps[i]) = item; } @@ -14700,7 +14703,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d } else { Py_ssize_t index = -1; PyObject** temps[4] = {&__pyx_t_10,&__pyx_t_13,&__pyx_t_4,&__pyx_t_3}; - __pyx_t_9 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 823, __pyx_L23_error) + __pyx_t_9 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 824, __pyx_L23_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_11 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_9); @@ -14709,7 +14712,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d __Pyx_GOTREF(item); *(temps[index]) = item; } - if (__Pyx_IternextUnpackEndCheck(__pyx_t_11(__pyx_t_9), 4) < (0)) __PYX_ERR(0, 823, __pyx_L23_error) + if (__Pyx_IternextUnpackEndCheck(__pyx_t_11(__pyx_t_9), 4) < (0)) __PYX_ERR(0, 824, __pyx_L23_error) __pyx_t_11 = NULL; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; goto __pyx_L51_unpacking_done; @@ -14717,12 +14720,12 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_11 = NULL; if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); - __PYX_ERR(0, 823, __pyx_L23_error) + __PYX_ERR(0, 824, __pyx_L23_error) __pyx_L51_unpacking_done:; } - __pyx_t_24 = ((__pyx_t_10pyreadstat_16_readstat_writer_pywriter_variable_type)__Pyx_PyLong_As___pyx_t_10pyreadstat_16_readstat_writer_pywriter_variable_type(__pyx_t_10)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 823, __pyx_L23_error) + __pyx_t_24 = ((__pyx_t_10pyreadstat_16_readstat_writer_pywriter_variable_type)__Pyx_PyLong_As___pyx_t_10pyreadstat_16_readstat_writer_pywriter_variable_type(__pyx_t_10)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 824, __pyx_L23_error) __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - __pyx_t_25 = __Pyx_PyLong_As_int(__pyx_t_13); if (unlikely((__pyx_t_25 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 823, __pyx_L23_error) + __pyx_t_25 = __Pyx_PyLong_As_int(__pyx_t_13); if (unlikely((__pyx_t_25 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 824, __pyx_L23_error) __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; __pyx_v_curtype = __pyx_t_24; __pyx_v_max_length = __pyx_t_25; @@ -14731,7 +14734,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d __Pyx_DECREF_SET(__pyx_v__, __pyx_t_3); __pyx_t_3 = 0; - /* "pyreadstat/_readstat_writer.pyx":824 + /* "pyreadstat/_readstat_writer.pyx":825 * for col_indx in range(col_count): * curtype, max_length, _,_ = col_types[col_indx] * variable_name = col_names[col_indx] # <<<<<<<<<<<<<< @@ -14740,14 +14743,14 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d */ if (unlikely(__pyx_v_col_names == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 824, __pyx_L23_error) + __PYX_ERR(0, 825, __pyx_L23_error) } - __pyx_t_1 = __Pyx_GetItemInt_List(__pyx_v_col_names, __pyx_v_col_indx, int, 1, __Pyx_PyLong_From_int, 1, 1, 1, 1, __Pyx_ReferenceSharing_OwnStrongReference); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 824, __pyx_L23_error) + __pyx_t_1 = __Pyx_GetItemInt_List(__pyx_v_col_names, __pyx_v_col_indx, int, 1, __Pyx_PyLong_From_int, 1, 1, 1, 1, __Pyx_ReferenceSharing_OwnStrongReference); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 825, __pyx_L23_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_XDECREF_SET(__pyx_v_variable_name, __pyx_t_1); __pyx_t_1 = 0; - /* "pyreadstat/_readstat_writer.pyx":826 + /* "pyreadstat/_readstat_writer.pyx":827 * variable_name = col_names[col_indx] * # add variable * variable = readstat_add_variable(writer, variable_name.encode("utf-8"), narwhals_to_readstat_types[curtype], max_length) # <<<<<<<<<<<<<< @@ -14761,35 +14764,35 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_mstate_global->__pyx_kp_u_utf_8}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_encode, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 826, __pyx_L23_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 827, __pyx_L23_error) __Pyx_GOTREF(__pyx_t_1); } - __pyx_t_26 = __Pyx_PyObject_AsString(__pyx_t_1); if (unlikely((!__pyx_t_26) && PyErr_Occurred())) __PYX_ERR(0, 826, __pyx_L23_error) + __pyx_t_26 = __Pyx_PyObject_AsString(__pyx_t_1); if (unlikely((!__pyx_t_26) && PyErr_Occurred())) __PYX_ERR(0, 827, __pyx_L23_error) if (unlikely(__pyx_v_10pyreadstat_16_readstat_writer_narwhals_to_readstat_types == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 826, __pyx_L23_error) + __PYX_ERR(0, 827, __pyx_L23_error) } - __pyx_t_3 = __Pyx_PyLong_From___pyx_t_10pyreadstat_16_readstat_writer_pywriter_variable_type(__pyx_v_curtype); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 826, __pyx_L23_error) + __pyx_t_3 = __Pyx_PyLong_From___pyx_t_10pyreadstat_16_readstat_writer_pywriter_variable_type(__pyx_v_curtype); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 827, __pyx_L23_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = __Pyx_PyDict_GetItem(__pyx_v_10pyreadstat_16_readstat_writer_narwhals_to_readstat_types, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 826, __pyx_L23_error) + __pyx_t_4 = __Pyx_PyDict_GetItem(__pyx_v_10pyreadstat_16_readstat_writer_narwhals_to_readstat_types, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 827, __pyx_L23_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_27 = ((readstat_type_t)__Pyx_PyLong_As_readstat_type_t(__pyx_t_4)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 826, __pyx_L23_error) + __pyx_t_27 = ((readstat_type_t)__Pyx_PyLong_As_readstat_type_t(__pyx_t_4)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 827, __pyx_L23_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_v_variable = readstat_add_variable(__pyx_v_writer, __pyx_t_26, __pyx_t_27, __pyx_v_max_length); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "pyreadstat/_readstat_writer.pyx":828 + /* "pyreadstat/_readstat_writer.pyx":829 * variable = readstat_add_variable(writer, variable_name.encode("utf-8"), narwhals_to_readstat_types[curtype], max_length) * # add format * if variable_format: # <<<<<<<<<<<<<< * tempformat = variable_format.get(variable_name) * if tempformat: */ - __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_v_variable_format); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(0, 828, __pyx_L23_error) + __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_v_variable_format); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(0, 829, __pyx_L23_error) if (__pyx_t_6) { - /* "pyreadstat/_readstat_writer.pyx":829 + /* "pyreadstat/_readstat_writer.pyx":830 * # add format * if variable_format: * tempformat = variable_format.get(variable_name) # <<<<<<<<<<<<<< @@ -14798,15 +14801,15 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d */ if (unlikely(__pyx_v_variable_format == Py_None)) { PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "get"); - __PYX_ERR(0, 829, __pyx_L23_error) + __PYX_ERR(0, 830, __pyx_L23_error) } - __pyx_t_1 = __Pyx_PyDict_GetItemDefault(__pyx_v_variable_format, __pyx_v_variable_name, Py_None); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 829, __pyx_L23_error) + __pyx_t_1 = __Pyx_PyDict_GetItemDefault(__pyx_v_variable_format, __pyx_v_variable_name, Py_None); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 830, __pyx_L23_error) __Pyx_GOTREF(__pyx_t_1); - if (!(likely(PyUnicode_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("str", __pyx_t_1))) __PYX_ERR(0, 829, __pyx_L23_error) + if (!(likely(PyUnicode_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("str", __pyx_t_1))) __PYX_ERR(0, 830, __pyx_L23_error) __Pyx_XDECREF_SET(__pyx_v_tempformat, ((PyObject*)__pyx_t_1)); __pyx_t_1 = 0; - /* "pyreadstat/_readstat_writer.pyx":830 + /* "pyreadstat/_readstat_writer.pyx":831 * if variable_format: * tempformat = variable_format.get(variable_name) * if tempformat: # <<<<<<<<<<<<<< @@ -14817,13 +14820,13 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d else { Py_ssize_t __pyx_temp = __Pyx_PyUnicode_IS_TRUE(__pyx_v_tempformat); - if (unlikely(((!CYTHON_ASSUME_SAFE_SIZE) && __pyx_temp < 0))) __PYX_ERR(0, 830, __pyx_L23_error) + if (unlikely(((!CYTHON_ASSUME_SAFE_SIZE) && __pyx_temp < 0))) __PYX_ERR(0, 831, __pyx_L23_error) __pyx_t_6 = (__pyx_temp != 0); } if (__pyx_t_6) { - /* "pyreadstat/_readstat_writer.pyx":831 + /* "pyreadstat/_readstat_writer.pyx":832 * tempformat = variable_format.get(variable_name) * if tempformat: * readstat_variable_set_format(variable, tempformat.encode("utf-8")) # <<<<<<<<<<<<<< @@ -14832,15 +14835,15 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d */ if (unlikely(__pyx_v_tempformat == Py_None)) { PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "encode"); - __PYX_ERR(0, 831, __pyx_L23_error) + __PYX_ERR(0, 832, __pyx_L23_error) } - __pyx_t_1 = PyUnicode_AsUTF8String(__pyx_v_tempformat); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 831, __pyx_L23_error) + __pyx_t_1 = PyUnicode_AsUTF8String(__pyx_v_tempformat); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 832, __pyx_L23_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_28 = __Pyx_PyBytes_AsString(__pyx_t_1); if (unlikely((!__pyx_t_28) && PyErr_Occurred())) __PYX_ERR(0, 831, __pyx_L23_error) + __pyx_t_28 = __Pyx_PyBytes_AsString(__pyx_t_1); if (unlikely((!__pyx_t_28) && PyErr_Occurred())) __PYX_ERR(0, 832, __pyx_L23_error) readstat_variable_set_format(__pyx_v_variable, __pyx_t_28); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "pyreadstat/_readstat_writer.pyx":830 + /* "pyreadstat/_readstat_writer.pyx":831 * if variable_format: * tempformat = variable_format.get(variable_name) * if tempformat: # <<<<<<<<<<<<<< @@ -14849,7 +14852,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d */ } - /* "pyreadstat/_readstat_writer.pyx":828 + /* "pyreadstat/_readstat_writer.pyx":829 * variable = readstat_add_variable(writer, variable_name.encode("utf-8"), narwhals_to_readstat_types[curtype], max_length) * # add format * if variable_format: # <<<<<<<<<<<<<< @@ -14858,20 +14861,20 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d */ } - /* "pyreadstat/_readstat_writer.pyx":832 + /* "pyreadstat/_readstat_writer.pyx":833 * if tempformat: * readstat_variable_set_format(variable, tempformat.encode("utf-8")) * if curtype in pyrwriter_datetimelike_types and (variable_format is None or variable_name not in variable_format.keys()): # <<<<<<<<<<<<<< * curformat = get_datetimelike_format_for_readstat(file_format, curtype) * readstat_variable_set_format(variable, curformat) */ - __pyx_t_1 = __Pyx_PyLong_From___pyx_t_10pyreadstat_16_readstat_writer_pywriter_variable_type(__pyx_v_curtype); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 832, __pyx_L23_error) + __pyx_t_1 = __Pyx_PyLong_From___pyx_t_10pyreadstat_16_readstat_writer_pywriter_variable_type(__pyx_v_curtype); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 833, __pyx_L23_error) __Pyx_GOTREF(__pyx_t_1); if (unlikely(__pyx_v_10pyreadstat_16_readstat_writer_pyrwriter_datetimelike_types == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable"); - __PYX_ERR(0, 832, __pyx_L23_error) + __PYX_ERR(0, 833, __pyx_L23_error) } - __pyx_t_20 = (__Pyx_PySet_ContainsTF(__pyx_t_1, __pyx_v_10pyreadstat_16_readstat_writer_pyrwriter_datetimelike_types, Py_EQ)); if (unlikely((__pyx_t_20 < 0))) __PYX_ERR(0, 832, __pyx_L23_error) + __pyx_t_20 = (__Pyx_PySet_ContainsTF(__pyx_t_1, __pyx_v_10pyreadstat_16_readstat_writer_pyrwriter_datetimelike_types, Py_EQ)); if (unlikely((__pyx_t_20 < 0))) __PYX_ERR(0, 833, __pyx_L23_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_20) { } else { @@ -14886,36 +14889,36 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d } if (unlikely(__pyx_v_variable_format == Py_None)) { PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "keys"); - __PYX_ERR(0, 832, __pyx_L23_error) + __PYX_ERR(0, 833, __pyx_L23_error) } - __pyx_t_1 = __Pyx_PyDict_Keys(__pyx_v_variable_format); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 832, __pyx_L23_error) + __pyx_t_1 = __Pyx_PyDict_Keys(__pyx_v_variable_format); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 833, __pyx_L23_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_20 = (__Pyx_PySequence_ContainsTF(__pyx_v_variable_name, __pyx_t_1, Py_NE)); if (unlikely((__pyx_t_20 < 0))) __PYX_ERR(0, 832, __pyx_L23_error) + __pyx_t_20 = (__Pyx_PySequence_ContainsTF(__pyx_v_variable_name, __pyx_t_1, Py_NE)); if (unlikely((__pyx_t_20 < 0))) __PYX_ERR(0, 833, __pyx_L23_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_6 = __pyx_t_20; __pyx_L55_bool_binop_done:; if (__pyx_t_6) { - /* "pyreadstat/_readstat_writer.pyx":833 + /* "pyreadstat/_readstat_writer.pyx":834 * readstat_variable_set_format(variable, tempformat.encode("utf-8")) * if curtype in pyrwriter_datetimelike_types and (variable_format is None or variable_name not in variable_format.keys()): * curformat = get_datetimelike_format_for_readstat(file_format, curtype) # <<<<<<<<<<<<<< * readstat_variable_set_format(variable, curformat) - * # prepare string_ref + * if variable_informat: */ - __pyx_t_18 = __pyx_f_10pyreadstat_16_readstat_writer_get_datetimelike_format_for_readstat(__pyx_v_file_format, __pyx_v_curtype); if (unlikely(__pyx_t_18 == ((void *)NULL) && PyErr_Occurred())) __PYX_ERR(0, 833, __pyx_L23_error) + __pyx_t_18 = __pyx_f_10pyreadstat_16_readstat_writer_get_datetimelike_format_for_readstat(__pyx_v_file_format, __pyx_v_curtype); if (unlikely(__pyx_t_18 == ((void *)NULL) && PyErr_Occurred())) __PYX_ERR(0, 834, __pyx_L23_error) __pyx_v_curformat = __pyx_t_18; - /* "pyreadstat/_readstat_writer.pyx":834 + /* "pyreadstat/_readstat_writer.pyx":835 * if curtype in pyrwriter_datetimelike_types and (variable_format is None or variable_name not in variable_format.keys()): * curformat = get_datetimelike_format_for_readstat(file_format, curtype) * readstat_variable_set_format(variable, curformat) # <<<<<<<<<<<<<< - * # prepare string_ref - * # for STRING_REF we have to add to a dict here before start writing + * if variable_informat: + * tempformat = variable_informat.get(variable_name) */ readstat_variable_set_format(__pyx_v_variable, __pyx_v_curformat); - /* "pyreadstat/_readstat_writer.pyx":832 + /* "pyreadstat/_readstat_writer.pyx":833 * if tempformat: * readstat_variable_set_format(variable, tempformat.encode("utf-8")) * if curtype in pyrwriter_datetimelike_types and (variable_format is None or variable_name not in variable_format.keys()): # <<<<<<<<<<<<<< @@ -14924,7 +14927,86 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d */ } - /* "pyreadstat/_readstat_writer.pyx":837 + /* "pyreadstat/_readstat_writer.pyx":836 + * curformat = get_datetimelike_format_for_readstat(file_format, curtype) + * readstat_variable_set_format(variable, curformat) + * if variable_informat: # <<<<<<<<<<<<<< + * tempformat = variable_informat.get(variable_name) + * if tempformat: +*/ + __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_v_variable_informat); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(0, 836, __pyx_L23_error) + if (__pyx_t_6) { + + /* "pyreadstat/_readstat_writer.pyx":837 + * readstat_variable_set_format(variable, curformat) + * if variable_informat: + * tempformat = variable_informat.get(variable_name) # <<<<<<<<<<<<<< + * if tempformat: + * readstat_variable_set_informat(variable, tempformat.encode("utf-8")) +*/ + if (unlikely(__pyx_v_variable_informat == Py_None)) { + PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "get"); + __PYX_ERR(0, 837, __pyx_L23_error) + } + __pyx_t_1 = __Pyx_PyDict_GetItemDefault(__pyx_v_variable_informat, __pyx_v_variable_name, Py_None); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 837, __pyx_L23_error) + __Pyx_GOTREF(__pyx_t_1); + if (!(likely(PyUnicode_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("str", __pyx_t_1))) __PYX_ERR(0, 837, __pyx_L23_error) + __Pyx_XDECREF_SET(__pyx_v_tempformat, ((PyObject*)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "pyreadstat/_readstat_writer.pyx":838 + * if variable_informat: + * tempformat = variable_informat.get(variable_name) + * if tempformat: # <<<<<<<<<<<<<< + * readstat_variable_set_informat(variable, tempformat.encode("utf-8")) + * # prepare string_ref +*/ + if (__pyx_v_tempformat == Py_None) __pyx_t_6 = 0; + else + { + Py_ssize_t __pyx_temp = __Pyx_PyUnicode_IS_TRUE(__pyx_v_tempformat); + if (unlikely(((!CYTHON_ASSUME_SAFE_SIZE) && __pyx_temp < 0))) __PYX_ERR(0, 838, __pyx_L23_error) + __pyx_t_6 = (__pyx_temp != 0); + } + + if (__pyx_t_6) { + + /* "pyreadstat/_readstat_writer.pyx":839 + * tempformat = variable_informat.get(variable_name) + * if tempformat: + * readstat_variable_set_informat(variable, tempformat.encode("utf-8")) # <<<<<<<<<<<<<< + * # prepare string_ref + * # for STRING_REF we have to add to a dict here before start writing +*/ + if (unlikely(__pyx_v_tempformat == Py_None)) { + PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "encode"); + __PYX_ERR(0, 839, __pyx_L23_error) + } + __pyx_t_1 = PyUnicode_AsUTF8String(__pyx_v_tempformat); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 839, __pyx_L23_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_29 = __Pyx_PyBytes_AsString(__pyx_t_1); if (unlikely((!__pyx_t_29) && PyErr_Occurred())) __PYX_ERR(0, 839, __pyx_L23_error) + readstat_variable_set_informat(__pyx_v_variable, __pyx_t_29); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "pyreadstat/_readstat_writer.pyx":838 + * if variable_informat: + * tempformat = variable_informat.get(variable_name) + * if tempformat: # <<<<<<<<<<<<<< + * readstat_variable_set_informat(variable, tempformat.encode("utf-8")) + * # prepare string_ref +*/ + } + + /* "pyreadstat/_readstat_writer.pyx":836 + * curformat = get_datetimelike_format_for_readstat(file_format, curtype) + * readstat_variable_set_format(variable, curformat) + * if variable_informat: # <<<<<<<<<<<<<< + * tempformat = variable_informat.get(variable_name) + * if tempformat: +*/ + } + + /* "pyreadstat/_readstat_writer.pyx":842 * # prepare string_ref * # for STRING_REF we have to add to a dict here before start writing * if curtype == PYWRITER_DTA_STR_REF: # <<<<<<<<<<<<<< @@ -14934,23 +15016,23 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d __pyx_t_6 = (__pyx_v_curtype == __pyx_e_10pyreadstat_16_readstat_writer_PYWRITER_DTA_STR_REF); if (__pyx_t_6) { - /* "pyreadstat/_readstat_writer.pyx":838 + /* "pyreadstat/_readstat_writer.pyx":843 * # for STRING_REF we have to add to a dict here before start writing * if curtype == PYWRITER_DTA_STR_REF: * for curval in df[variable_name]: # <<<<<<<<<<<<<< * if curval not in strref_map: * curvalstr = str(curval) */ - __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_v_df, __pyx_v_variable_name); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 838, __pyx_L23_error) + __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_v_df, __pyx_v_variable_name); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 843, __pyx_L23_error) __Pyx_GOTREF(__pyx_t_1); if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) { __pyx_t_4 = __pyx_t_1; __Pyx_INCREF(__pyx_t_4); __pyx_t_7 = 0; __pyx_t_8 = NULL; } else { - __pyx_t_7 = -1; __pyx_t_4 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 838, __pyx_L23_error) + __pyx_t_7 = -1; __pyx_t_4 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 843, __pyx_L23_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_8 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_4); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 838, __pyx_L23_error) + __pyx_t_8 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_4); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 843, __pyx_L23_error) } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; for (;;) { @@ -14959,7 +15041,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d { Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_4); #if !CYTHON_ASSUME_SAFE_SIZE - if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 838, __pyx_L23_error) + if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 843, __pyx_L23_error) #endif if (__pyx_t_7 >= __pyx_temp) break; } @@ -14969,7 +15051,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d { Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_4); #if !CYTHON_ASSUME_SAFE_SIZE - if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 838, __pyx_L23_error) + if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 843, __pyx_L23_error) #endif if (__pyx_t_7 >= __pyx_temp) break; } @@ -14980,13 +15062,13 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d #endif ++__pyx_t_7; } - if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 838, __pyx_L23_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 843, __pyx_L23_error) } else { __pyx_t_1 = __pyx_t_8(__pyx_t_4); if (unlikely(!__pyx_t_1)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { - if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(0, 838, __pyx_L23_error) + if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(0, 843, __pyx_L23_error) PyErr_Clear(); } break; @@ -14996,54 +15078,54 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d __Pyx_XDECREF_SET(__pyx_v_curval, __pyx_t_1); __pyx_t_1 = 0; - /* "pyreadstat/_readstat_writer.pyx":839 + /* "pyreadstat/_readstat_writer.pyx":844 * if curtype == PYWRITER_DTA_STR_REF: * for curval in df[variable_name]: * if curval not in strref_map: # <<<<<<<<<<<<<< * curvalstr = str(curval) * strref = readstat_add_string_ref(writer, curvalstr.encode("utf-8")) */ - __pyx_t_6 = (__Pyx_PyDict_ContainsTF(__pyx_v_curval, __pyx_v_strref_map, Py_NE)); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(0, 839, __pyx_L23_error) + __pyx_t_6 = (__Pyx_PyDict_ContainsTF(__pyx_v_curval, __pyx_v_strref_map, Py_NE)); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(0, 844, __pyx_L23_error) if (__pyx_t_6) { - /* "pyreadstat/_readstat_writer.pyx":840 + /* "pyreadstat/_readstat_writer.pyx":845 * for curval in df[variable_name]: * if curval not in strref_map: * curvalstr = str(curval) # <<<<<<<<<<<<<< * strref = readstat_add_string_ref(writer, curvalstr.encode("utf-8")) * strref_map[curvalstr] = strref_cnt */ - __pyx_t_1 = __Pyx_PyObject_Unicode(__pyx_v_curval); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 840, __pyx_L23_error) + __pyx_t_1 = __Pyx_PyObject_Unicode(__pyx_v_curval); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 845, __pyx_L23_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_XDECREF_SET(__pyx_v_curvalstr, ((PyObject*)__pyx_t_1)); __pyx_t_1 = 0; - /* "pyreadstat/_readstat_writer.pyx":841 + /* "pyreadstat/_readstat_writer.pyx":846 * if curval not in strref_map: * curvalstr = str(curval) * strref = readstat_add_string_ref(writer, curvalstr.encode("utf-8")) # <<<<<<<<<<<<<< * strref_map[curvalstr] = strref_cnt * strref_cnt += 1 */ - __pyx_t_1 = PyUnicode_AsUTF8String(__pyx_v_curvalstr); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 841, __pyx_L23_error) + __pyx_t_1 = PyUnicode_AsUTF8String(__pyx_v_curvalstr); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 846, __pyx_L23_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_29 = __Pyx_PyBytes_AsString(__pyx_t_1); if (unlikely((!__pyx_t_29) && PyErr_Occurred())) __PYX_ERR(0, 841, __pyx_L23_error) - __pyx_v_strref = readstat_add_string_ref(__pyx_v_writer, __pyx_t_29); + __pyx_t_30 = __Pyx_PyBytes_AsString(__pyx_t_1); if (unlikely((!__pyx_t_30) && PyErr_Occurred())) __PYX_ERR(0, 846, __pyx_L23_error) + __pyx_v_strref = readstat_add_string_ref(__pyx_v_writer, __pyx_t_30); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "pyreadstat/_readstat_writer.pyx":842 + /* "pyreadstat/_readstat_writer.pyx":847 * curvalstr = str(curval) * strref = readstat_add_string_ref(writer, curvalstr.encode("utf-8")) * strref_map[curvalstr] = strref_cnt # <<<<<<<<<<<<<< * strref_cnt += 1 * # labels */ - __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_strref_cnt); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 842, __pyx_L23_error) + __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_strref_cnt); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 847, __pyx_L23_error) __Pyx_GOTREF(__pyx_t_1); - if (unlikely((PyDict_SetItem(__pyx_v_strref_map, __pyx_v_curvalstr, __pyx_t_1) < 0))) __PYX_ERR(0, 842, __pyx_L23_error) + if (unlikely((PyDict_SetItem(__pyx_v_strref_map, __pyx_v_curvalstr, __pyx_t_1) < 0))) __PYX_ERR(0, 847, __pyx_L23_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "pyreadstat/_readstat_writer.pyx":843 + /* "pyreadstat/_readstat_writer.pyx":848 * strref = readstat_add_string_ref(writer, curvalstr.encode("utf-8")) * strref_map[curvalstr] = strref_cnt * strref_cnt += 1 # <<<<<<<<<<<<<< @@ -15052,7 +15134,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d */ __pyx_v_strref_cnt = (__pyx_v_strref_cnt + 1); - /* "pyreadstat/_readstat_writer.pyx":839 + /* "pyreadstat/_readstat_writer.pyx":844 * if curtype == PYWRITER_DTA_STR_REF: * for curval in df[variable_name]: * if curval not in strref_map: # <<<<<<<<<<<<<< @@ -15061,7 +15143,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d */ } - /* "pyreadstat/_readstat_writer.pyx":838 + /* "pyreadstat/_readstat_writer.pyx":843 * # for STRING_REF we have to add to a dict here before start writing * if curtype == PYWRITER_DTA_STR_REF: * for curval in df[variable_name]: # <<<<<<<<<<<<<< @@ -15071,7 +15153,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d } __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - /* "pyreadstat/_readstat_writer.pyx":837 + /* "pyreadstat/_readstat_writer.pyx":842 * # prepare string_ref * # for STRING_REF we have to add to a dict here before start writing * if curtype == PYWRITER_DTA_STR_REF: # <<<<<<<<<<<<<< @@ -15080,7 +15162,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d */ } - /* "pyreadstat/_readstat_writer.pyx":845 + /* "pyreadstat/_readstat_writer.pyx":850 * strref_cnt += 1 * # labels * if col_label_count: # <<<<<<<<<<<<<< @@ -15090,35 +15172,35 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d __pyx_t_6 = (__pyx_v_col_label_count != 0); if (__pyx_t_6) { - /* "pyreadstat/_readstat_writer.pyx":846 + /* "pyreadstat/_readstat_writer.pyx":851 * # labels * if col_label_count: * if column_labels[col_indx] is not None: # <<<<<<<<<<<<<< * if type(column_labels[col_indx]) != str: * raise PyreadstatError("Column labels must be strings") */ - __pyx_t_4 = __Pyx_GetItemInt(__pyx_v_column_labels, __pyx_v_col_indx, int, 1, __Pyx_PyLong_From_int, 0, 1, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 846, __pyx_L23_error) + __pyx_t_4 = __Pyx_GetItemInt(__pyx_v_column_labels, __pyx_v_col_indx, int, 1, __Pyx_PyLong_From_int, 0, 1, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 851, __pyx_L23_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_6 = (__pyx_t_4 != Py_None); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (__pyx_t_6) { - /* "pyreadstat/_readstat_writer.pyx":847 + /* "pyreadstat/_readstat_writer.pyx":852 * if col_label_count: * if column_labels[col_indx] is not None: * if type(column_labels[col_indx]) != str: # <<<<<<<<<<<<<< * raise PyreadstatError("Column labels must be strings") * cur_col_label = column_labels[col_indx].encode("utf-8") */ - __pyx_t_4 = __Pyx_GetItemInt(__pyx_v_column_labels, __pyx_v_col_indx, int, 1, __Pyx_PyLong_From_int, 0, 1, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 847, __pyx_L23_error) + __pyx_t_4 = __Pyx_GetItemInt(__pyx_v_column_labels, __pyx_v_col_indx, int, 1, __Pyx_PyLong_From_int, 0, 1, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 852, __pyx_L23_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_1 = PyObject_RichCompare(((PyObject *)Py_TYPE(__pyx_t_4)), ((PyObject *)(&PyUnicode_Type)), Py_NE); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 847, __pyx_L23_error) + __pyx_t_1 = PyObject_RichCompare(((PyObject *)Py_TYPE(__pyx_t_4)), ((PyObject *)(&PyUnicode_Type)), Py_NE); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 852, __pyx_L23_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(0, 847, __pyx_L23_error) + __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(0, 852, __pyx_L23_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (unlikely(__pyx_t_6)) { - /* "pyreadstat/_readstat_writer.pyx":848 + /* "pyreadstat/_readstat_writer.pyx":853 * if column_labels[col_indx] is not None: * if type(column_labels[col_indx]) != str: * raise PyreadstatError("Column labels must be strings") # <<<<<<<<<<<<<< @@ -15126,7 +15208,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d * readstat_variable_set_label(variable, cur_col_label) */ __pyx_t_4 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 848, __pyx_L23_error) + __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 853, __pyx_L23_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_5 = 1; #if CYTHON_UNPACK_METHODS @@ -15145,14 +15227,14 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_3, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 848, __pyx_L23_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 853, __pyx_L23_error) __Pyx_GOTREF(__pyx_t_1); } __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __PYX_ERR(0, 848, __pyx_L23_error) + __PYX_ERR(0, 853, __pyx_L23_error) - /* "pyreadstat/_readstat_writer.pyx":847 + /* "pyreadstat/_readstat_writer.pyx":852 * if col_label_count: * if column_labels[col_indx] is not None: * if type(column_labels[col_indx]) != str: # <<<<<<<<<<<<<< @@ -15161,14 +15243,14 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d */ } - /* "pyreadstat/_readstat_writer.pyx":849 + /* "pyreadstat/_readstat_writer.pyx":854 * if type(column_labels[col_indx]) != str: * raise PyreadstatError("Column labels must be strings") * cur_col_label = column_labels[col_indx].encode("utf-8") # <<<<<<<<<<<<<< * readstat_variable_set_label(variable, cur_col_label) * if variable_value_labels: */ - __pyx_t_4 = __Pyx_GetItemInt(__pyx_v_column_labels, __pyx_v_col_indx, int, 1, __Pyx_PyLong_From_int, 0, 1, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 849, __pyx_L23_error) + __pyx_t_4 = __Pyx_GetItemInt(__pyx_v_column_labels, __pyx_v_col_indx, int, 1, __Pyx_PyLong_From_int, 0, 1, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 854, __pyx_L23_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_3 = __pyx_t_4; __Pyx_INCREF(__pyx_t_3); @@ -15178,14 +15260,14 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_encode, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 849, __pyx_L23_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 854, __pyx_L23_error) __Pyx_GOTREF(__pyx_t_1); } - if (!(likely(PyBytes_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("bytes", __pyx_t_1))) __PYX_ERR(0, 849, __pyx_L23_error) + if (!(likely(PyBytes_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("bytes", __pyx_t_1))) __PYX_ERR(0, 854, __pyx_L23_error) __Pyx_XDECREF_SET(__pyx_v_cur_col_label, ((PyObject*)__pyx_t_1)); __pyx_t_1 = 0; - /* "pyreadstat/_readstat_writer.pyx":850 + /* "pyreadstat/_readstat_writer.pyx":855 * raise PyreadstatError("Column labels must be strings") * cur_col_label = column_labels[col_indx].encode("utf-8") * readstat_variable_set_label(variable, cur_col_label) # <<<<<<<<<<<<<< @@ -15194,12 +15276,12 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d */ if (unlikely(__pyx_v_cur_col_label == Py_None)) { PyErr_SetString(PyExc_TypeError, "expected bytes, NoneType found"); - __PYX_ERR(0, 850, __pyx_L23_error) + __PYX_ERR(0, 855, __pyx_L23_error) } - __pyx_t_30 = __Pyx_PyBytes_AsString(__pyx_v_cur_col_label); if (unlikely((!__pyx_t_30) && PyErr_Occurred())) __PYX_ERR(0, 850, __pyx_L23_error) - readstat_variable_set_label(__pyx_v_variable, __pyx_t_30); + __pyx_t_31 = __Pyx_PyBytes_AsString(__pyx_v_cur_col_label); if (unlikely((!__pyx_t_31) && PyErr_Occurred())) __PYX_ERR(0, 855, __pyx_L23_error) + readstat_variable_set_label(__pyx_v_variable, __pyx_t_31); - /* "pyreadstat/_readstat_writer.pyx":846 + /* "pyreadstat/_readstat_writer.pyx":851 * # labels * if col_label_count: * if column_labels[col_indx] is not None: # <<<<<<<<<<<<<< @@ -15208,7 +15290,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d */ } - /* "pyreadstat/_readstat_writer.pyx":845 + /* "pyreadstat/_readstat_writer.pyx":850 * strref_cnt += 1 * # labels * if col_label_count: # <<<<<<<<<<<<<< @@ -15217,17 +15299,17 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d */ } - /* "pyreadstat/_readstat_writer.pyx":851 + /* "pyreadstat/_readstat_writer.pyx":856 * cur_col_label = column_labels[col_indx].encode("utf-8") * readstat_variable_set_label(variable, cur_col_label) * if variable_value_labels: # <<<<<<<<<<<<<< * value_labels = variable_value_labels.get(variable_name) * if value_labels: */ - __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_v_variable_value_labels); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(0, 851, __pyx_L23_error) + __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_v_variable_value_labels); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(0, 856, __pyx_L23_error) if (__pyx_t_6) { - /* "pyreadstat/_readstat_writer.pyx":852 + /* "pyreadstat/_readstat_writer.pyx":857 * readstat_variable_set_label(variable, cur_col_label) * if variable_value_labels: * value_labels = variable_value_labels.get(variable_name) # <<<<<<<<<<<<<< @@ -15236,43 +15318,43 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d */ if (unlikely(__pyx_v_variable_value_labels == Py_None)) { PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "get"); - __PYX_ERR(0, 852, __pyx_L23_error) + __PYX_ERR(0, 857, __pyx_L23_error) } - __pyx_t_1 = __Pyx_PyDict_GetItemDefault(__pyx_v_variable_value_labels, __pyx_v_variable_name, Py_None); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 852, __pyx_L23_error) + __pyx_t_1 = __Pyx_PyDict_GetItemDefault(__pyx_v_variable_value_labels, __pyx_v_variable_name, Py_None); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 857, __pyx_L23_error) __Pyx_GOTREF(__pyx_t_1); - if (!(likely(PyDict_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("dict", __pyx_t_1))) __PYX_ERR(0, 852, __pyx_L23_error) + if (!(likely(PyDict_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("dict", __pyx_t_1))) __PYX_ERR(0, 857, __pyx_L23_error) __Pyx_XDECREF_SET(__pyx_v_value_labels, ((PyObject*)__pyx_t_1)); __pyx_t_1 = 0; - /* "pyreadstat/_readstat_writer.pyx":853 + /* "pyreadstat/_readstat_writer.pyx":858 * if variable_value_labels: * value_labels = variable_value_labels.get(variable_name) * if value_labels: # <<<<<<<<<<<<<< * labelset_name = variable_name + str(lblset_cnt) * lblset_cnt += 1 */ - __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_v_value_labels); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(0, 853, __pyx_L23_error) + __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_v_value_labels); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(0, 858, __pyx_L23_error) if (__pyx_t_6) { - /* "pyreadstat/_readstat_writer.pyx":854 + /* "pyreadstat/_readstat_writer.pyx":859 * value_labels = variable_value_labels.get(variable_name) * if value_labels: * labelset_name = variable_name + str(lblset_cnt) # <<<<<<<<<<<<<< * lblset_cnt += 1 * curuser_missing = None */ - __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_lblset_cnt); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 854, __pyx_L23_error) + __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_lblset_cnt); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 859, __pyx_L23_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_4 = __Pyx_PyObject_Unicode(__pyx_t_1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 854, __pyx_L23_error) + __pyx_t_4 = __Pyx_PyObject_Unicode(__pyx_t_1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 859, __pyx_L23_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyNumber_Add(__pyx_v_variable_name, __pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 854, __pyx_L23_error) + __pyx_t_1 = PyNumber_Add(__pyx_v_variable_name, __pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 859, __pyx_L23_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_XDECREF_SET(__pyx_v_labelset_name, __pyx_t_1); __pyx_t_1 = 0; - /* "pyreadstat/_readstat_writer.pyx":855 + /* "pyreadstat/_readstat_writer.pyx":860 * if value_labels: * labelset_name = variable_name + str(lblset_cnt) * lblset_cnt += 1 # <<<<<<<<<<<<<< @@ -15281,7 +15363,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d */ __pyx_v_lblset_cnt = (__pyx_v_lblset_cnt + 1); - /* "pyreadstat/_readstat_writer.pyx":856 + /* "pyreadstat/_readstat_writer.pyx":861 * labelset_name = variable_name + str(lblset_cnt) * lblset_cnt += 1 * curuser_missing = None # <<<<<<<<<<<<<< @@ -15291,17 +15373,17 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d __Pyx_INCREF(Py_None); __Pyx_XDECREF_SET(__pyx_v_curuser_missing, Py_None); - /* "pyreadstat/_readstat_writer.pyx":857 + /* "pyreadstat/_readstat_writer.pyx":862 * lblset_cnt += 1 * curuser_missing = None * if missing_user_values: # <<<<<<<<<<<<<< * curuser_missing = missing_user_values.get(variable_name) * label_set = set_value_label(writer, value_labels, labelset_name, */ - __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_v_missing_user_values); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(0, 857, __pyx_L23_error) + __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_v_missing_user_values); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(0, 862, __pyx_L23_error) if (__pyx_t_6) { - /* "pyreadstat/_readstat_writer.pyx":858 + /* "pyreadstat/_readstat_writer.pyx":863 * curuser_missing = None * if missing_user_values: * curuser_missing = missing_user_values.get(variable_name) # <<<<<<<<<<<<<< @@ -15310,14 +15392,14 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d */ if (unlikely(__pyx_v_missing_user_values == Py_None)) { PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "get"); - __PYX_ERR(0, 858, __pyx_L23_error) + __PYX_ERR(0, 863, __pyx_L23_error) } - __pyx_t_1 = __Pyx_PyDict_GetItemDefault(__pyx_v_missing_user_values, __pyx_v_variable_name, Py_None); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 858, __pyx_L23_error) + __pyx_t_1 = __Pyx_PyDict_GetItemDefault(__pyx_v_missing_user_values, __pyx_v_variable_name, Py_None); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 863, __pyx_L23_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_curuser_missing, __pyx_t_1); __pyx_t_1 = 0; - /* "pyreadstat/_readstat_writer.pyx":857 + /* "pyreadstat/_readstat_writer.pyx":862 * lblset_cnt += 1 * curuser_missing = None * if missing_user_values: # <<<<<<<<<<<<<< @@ -15326,7 +15408,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d */ } - /* "pyreadstat/_readstat_writer.pyx":859 + /* "pyreadstat/_readstat_writer.pyx":864 * if missing_user_values: * curuser_missing = missing_user_values.get(variable_name) * label_set = set_value_label(writer, value_labels, labelset_name, # <<<<<<<<<<<<<< @@ -15335,40 +15417,40 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d */ __pyx_t_1 = __pyx_v_labelset_name; __Pyx_INCREF(__pyx_t_1); - if (!(likely(PyUnicode_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("str", __pyx_t_1))) __PYX_ERR(0, 859, __pyx_L23_error) + if (!(likely(PyUnicode_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("str", __pyx_t_1))) __PYX_ERR(0, 864, __pyx_L23_error) - /* "pyreadstat/_readstat_writer.pyx":860 + /* "pyreadstat/_readstat_writer.pyx":865 * curuser_missing = missing_user_values.get(variable_name) * label_set = set_value_label(writer, value_labels, labelset_name, * col_names_to_types[variable_name], file_format, variable_name, curuser_missing) # <<<<<<<<<<<<<< * readstat_variable_set_label_set(variable, label_set) * # missing ranges */ - __pyx_t_4 = __Pyx_PyDict_GetItem(__pyx_v_col_names_to_types, __pyx_v_variable_name); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 860, __pyx_L23_error) + __pyx_t_4 = __Pyx_PyDict_GetItem(__pyx_v_col_names_to_types, __pyx_v_variable_name); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 865, __pyx_L23_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_24 = ((__pyx_t_10pyreadstat_16_readstat_writer_pywriter_variable_type)__Pyx_PyLong_As___pyx_t_10pyreadstat_16_readstat_writer_pywriter_variable_type(__pyx_t_4)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 860, __pyx_L23_error) + __pyx_t_24 = ((__pyx_t_10pyreadstat_16_readstat_writer_pywriter_variable_type)__Pyx_PyLong_As___pyx_t_10pyreadstat_16_readstat_writer_pywriter_variable_type(__pyx_t_4)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 865, __pyx_L23_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = __pyx_v_variable_name; __Pyx_INCREF(__pyx_t_4); - if (!(likely(PyUnicode_CheckExact(__pyx_t_4))||((__pyx_t_4) == Py_None) || __Pyx_RaiseUnexpectedTypeError("str", __pyx_t_4))) __PYX_ERR(0, 860, __pyx_L23_error) + if (!(likely(PyUnicode_CheckExact(__pyx_t_4))||((__pyx_t_4) == Py_None) || __Pyx_RaiseUnexpectedTypeError("str", __pyx_t_4))) __PYX_ERR(0, 865, __pyx_L23_error) __pyx_t_3 = __pyx_v_curuser_missing; __Pyx_INCREF(__pyx_t_3); - if (!(likely(PyList_CheckExact(__pyx_t_3))||((__pyx_t_3) == Py_None) || __Pyx_RaiseUnexpectedTypeError("list", __pyx_t_3))) __PYX_ERR(0, 860, __pyx_L23_error) + if (!(likely(PyList_CheckExact(__pyx_t_3))||((__pyx_t_3) == Py_None) || __Pyx_RaiseUnexpectedTypeError("list", __pyx_t_3))) __PYX_ERR(0, 865, __pyx_L23_error) - /* "pyreadstat/_readstat_writer.pyx":859 + /* "pyreadstat/_readstat_writer.pyx":864 * if missing_user_values: * curuser_missing = missing_user_values.get(variable_name) * label_set = set_value_label(writer, value_labels, labelset_name, # <<<<<<<<<<<<<< * col_names_to_types[variable_name], file_format, variable_name, curuser_missing) * readstat_variable_set_label_set(variable, label_set) */ - __pyx_t_31 = __pyx_f_10pyreadstat_16_readstat_writer_set_value_label(__pyx_v_writer, __pyx_v_value_labels, ((PyObject*)__pyx_t_1), __pyx_t_24, __pyx_v_file_format, ((PyObject*)__pyx_t_4), ((PyObject*)__pyx_t_3)); if (unlikely(__pyx_t_31 == ((void *)NULL) && PyErr_Occurred())) __PYX_ERR(0, 859, __pyx_L23_error) + __pyx_t_32 = __pyx_f_10pyreadstat_16_readstat_writer_set_value_label(__pyx_v_writer, __pyx_v_value_labels, ((PyObject*)__pyx_t_1), __pyx_t_24, __pyx_v_file_format, ((PyObject*)__pyx_t_4), ((PyObject*)__pyx_t_3)); if (unlikely(__pyx_t_32 == ((void *)NULL) && PyErr_Occurred())) __PYX_ERR(0, 864, __pyx_L23_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_v_label_set = __pyx_t_31; + __pyx_v_label_set = __pyx_t_32; - /* "pyreadstat/_readstat_writer.pyx":861 + /* "pyreadstat/_readstat_writer.pyx":866 * label_set = set_value_label(writer, value_labels, labelset_name, * col_names_to_types[variable_name], file_format, variable_name, curuser_missing) * readstat_variable_set_label_set(variable, label_set) # <<<<<<<<<<<<<< @@ -15377,7 +15459,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d */ readstat_variable_set_label_set(__pyx_v_variable, __pyx_v_label_set); - /* "pyreadstat/_readstat_writer.pyx":853 + /* "pyreadstat/_readstat_writer.pyx":858 * if variable_value_labels: * value_labels = variable_value_labels.get(variable_name) * if value_labels: # <<<<<<<<<<<<<< @@ -15386,7 +15468,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d */ } - /* "pyreadstat/_readstat_writer.pyx":851 + /* "pyreadstat/_readstat_writer.pyx":856 * cur_col_label = column_labels[col_indx].encode("utf-8") * readstat_variable_set_label(variable, cur_col_label) * if variable_value_labels: # <<<<<<<<<<<<<< @@ -15395,17 +15477,17 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d */ } - /* "pyreadstat/_readstat_writer.pyx":863 + /* "pyreadstat/_readstat_writer.pyx":868 * readstat_variable_set_label_set(variable, label_set) * # missing ranges * if missing_ranges: # <<<<<<<<<<<<<< * cur_ranges = missing_ranges.get(variable_name) * if cur_ranges: */ - __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_v_missing_ranges); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(0, 863, __pyx_L23_error) + __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_v_missing_ranges); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(0, 868, __pyx_L23_error) if (__pyx_t_6) { - /* "pyreadstat/_readstat_writer.pyx":864 + /* "pyreadstat/_readstat_writer.pyx":869 * # missing ranges * if missing_ranges: * cur_ranges = missing_ranges.get(variable_name) # <<<<<<<<<<<<<< @@ -15414,24 +15496,24 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d */ if (unlikely(__pyx_v_missing_ranges == Py_None)) { PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "get"); - __PYX_ERR(0, 864, __pyx_L23_error) + __PYX_ERR(0, 869, __pyx_L23_error) } - __pyx_t_3 = __Pyx_PyDict_GetItemDefault(__pyx_v_missing_ranges, __pyx_v_variable_name, Py_None); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 864, __pyx_L23_error) + __pyx_t_3 = __Pyx_PyDict_GetItemDefault(__pyx_v_missing_ranges, __pyx_v_variable_name, Py_None); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 869, __pyx_L23_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_XDECREF_SET(__pyx_v_cur_ranges, __pyx_t_3); __pyx_t_3 = 0; - /* "pyreadstat/_readstat_writer.pyx":865 + /* "pyreadstat/_readstat_writer.pyx":870 * if missing_ranges: * cur_ranges = missing_ranges.get(variable_name) * if cur_ranges: # <<<<<<<<<<<<<< * if not isinstance(cur_ranges, list): * msg = "missing_ranges: values in dictionary must be list" */ - __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_v_cur_ranges); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(0, 865, __pyx_L23_error) + __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_v_cur_ranges); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(0, 870, __pyx_L23_error) if (__pyx_t_6) { - /* "pyreadstat/_readstat_writer.pyx":866 + /* "pyreadstat/_readstat_writer.pyx":871 * cur_ranges = missing_ranges.get(variable_name) * if cur_ranges: * if not isinstance(cur_ranges, list): # <<<<<<<<<<<<<< @@ -15442,7 +15524,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d __pyx_t_20 = (!__pyx_t_6); if (unlikely(__pyx_t_20)) { - /* "pyreadstat/_readstat_writer.pyx":867 + /* "pyreadstat/_readstat_writer.pyx":872 * if cur_ranges: * if not isinstance(cur_ranges, list): * msg = "missing_ranges: values in dictionary must be list" # <<<<<<<<<<<<<< @@ -15452,7 +15534,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d __Pyx_INCREF(__pyx_mstate_global->__pyx_kp_u_missing_ranges_values_in_diction); __pyx_v_msg = __pyx_mstate_global->__pyx_kp_u_missing_ranges_values_in_diction; - /* "pyreadstat/_readstat_writer.pyx":868 + /* "pyreadstat/_readstat_writer.pyx":873 * if not isinstance(cur_ranges, list): * msg = "missing_ranges: values in dictionary must be list" * raise PyreadstatError(msg) # <<<<<<<<<<<<<< @@ -15460,7 +15542,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d * if variable_alignment: */ __pyx_t_4 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 868, __pyx_L23_error) + __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 873, __pyx_L23_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_5 = 1; #if CYTHON_UNPACK_METHODS @@ -15479,14 +15561,14 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_1, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 868, __pyx_L23_error) + if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 873, __pyx_L23_error) __Pyx_GOTREF(__pyx_t_3); } __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __PYX_ERR(0, 868, __pyx_L23_error) + __PYX_ERR(0, 873, __pyx_L23_error) - /* "pyreadstat/_readstat_writer.pyx":866 + /* "pyreadstat/_readstat_writer.pyx":871 * cur_ranges = missing_ranges.get(variable_name) * if cur_ranges: * if not isinstance(cur_ranges, list): # <<<<<<<<<<<<<< @@ -15495,7 +15577,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d */ } - /* "pyreadstat/_readstat_writer.pyx":869 + /* "pyreadstat/_readstat_writer.pyx":874 * msg = "missing_ranges: values in dictionary must be list" * raise PyreadstatError(msg) * add_missing_ranges(cur_ranges, variable, curtype, variable_name) # <<<<<<<<<<<<<< @@ -15504,15 +15586,15 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d */ __pyx_t_3 = __pyx_v_cur_ranges; __Pyx_INCREF(__pyx_t_3); - if (!(likely(PyList_CheckExact(__pyx_t_3))||((__pyx_t_3) == Py_None) || __Pyx_RaiseUnexpectedTypeError("list", __pyx_t_3))) __PYX_ERR(0, 869, __pyx_L23_error) + if (!(likely(PyList_CheckExact(__pyx_t_3))||((__pyx_t_3) == Py_None) || __Pyx_RaiseUnexpectedTypeError("list", __pyx_t_3))) __PYX_ERR(0, 874, __pyx_L23_error) __pyx_t_1 = __pyx_v_variable_name; __Pyx_INCREF(__pyx_t_1); - if (!(likely(PyUnicode_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("str", __pyx_t_1))) __PYX_ERR(0, 869, __pyx_L23_error) - __pyx_f_10pyreadstat_16_readstat_writer_add_missing_ranges(((PyObject*)__pyx_t_3), __pyx_v_variable, __pyx_v_curtype, ((PyObject*)__pyx_t_1)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 869, __pyx_L23_error) + if (!(likely(PyUnicode_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("str", __pyx_t_1))) __PYX_ERR(0, 874, __pyx_L23_error) + __pyx_f_10pyreadstat_16_readstat_writer_add_missing_ranges(((PyObject*)__pyx_t_3), __pyx_v_variable, __pyx_v_curtype, ((PyObject*)__pyx_t_1)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 874, __pyx_L23_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "pyreadstat/_readstat_writer.pyx":865 + /* "pyreadstat/_readstat_writer.pyx":870 * if missing_ranges: * cur_ranges = missing_ranges.get(variable_name) * if cur_ranges: # <<<<<<<<<<<<<< @@ -15521,7 +15603,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d */ } - /* "pyreadstat/_readstat_writer.pyx":863 + /* "pyreadstat/_readstat_writer.pyx":868 * readstat_variable_set_label_set(variable, label_set) * # missing ranges * if missing_ranges: # <<<<<<<<<<<<<< @@ -15530,17 +15612,17 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d */ } - /* "pyreadstat/_readstat_writer.pyx":870 + /* "pyreadstat/_readstat_writer.pyx":875 * raise PyreadstatError(msg) * add_missing_ranges(cur_ranges, variable, curtype, variable_name) * if variable_alignment: # <<<<<<<<<<<<<< * # At the moment this is ineffective for sav and dta (the function runs but in * # the resulting file all alignments are still unknown) */ - __pyx_t_20 = __Pyx_PyObject_IsTrue(__pyx_v_variable_alignment); if (unlikely((__pyx_t_20 < 0))) __PYX_ERR(0, 870, __pyx_L23_error) + __pyx_t_20 = __Pyx_PyObject_IsTrue(__pyx_v_variable_alignment); if (unlikely((__pyx_t_20 < 0))) __PYX_ERR(0, 875, __pyx_L23_error) if (__pyx_t_20) { - /* "pyreadstat/_readstat_writer.pyx":873 + /* "pyreadstat/_readstat_writer.pyx":878 * # At the moment this is ineffective for sav and dta (the function runs but in * # the resulting file all alignments are still unknown) * cur_alignment = variable_alignment.get(variable_name) # <<<<<<<<<<<<<< @@ -15549,24 +15631,24 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d */ if (unlikely(__pyx_v_variable_alignment == Py_None)) { PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "get"); - __PYX_ERR(0, 873, __pyx_L23_error) + __PYX_ERR(0, 878, __pyx_L23_error) } - __pyx_t_1 = __Pyx_PyDict_GetItemDefault(__pyx_v_variable_alignment, __pyx_v_variable_name, Py_None); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 873, __pyx_L23_error) + __pyx_t_1 = __Pyx_PyDict_GetItemDefault(__pyx_v_variable_alignment, __pyx_v_variable_name, Py_None); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 878, __pyx_L23_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_XDECREF_SET(__pyx_v_cur_alignment, __pyx_t_1); __pyx_t_1 = 0; - /* "pyreadstat/_readstat_writer.pyx":874 + /* "pyreadstat/_readstat_writer.pyx":879 * # the resulting file all alignments are still unknown) * cur_alignment = variable_alignment.get(variable_name) * if cur_alignment: # <<<<<<<<<<<<<< * set_variable_alignment(variable, cur_alignment, variable_name) * if variable_display_width: */ - __pyx_t_20 = __Pyx_PyObject_IsTrue(__pyx_v_cur_alignment); if (unlikely((__pyx_t_20 < 0))) __PYX_ERR(0, 874, __pyx_L23_error) + __pyx_t_20 = __Pyx_PyObject_IsTrue(__pyx_v_cur_alignment); if (unlikely((__pyx_t_20 < 0))) __PYX_ERR(0, 879, __pyx_L23_error) if (__pyx_t_20) { - /* "pyreadstat/_readstat_writer.pyx":875 + /* "pyreadstat/_readstat_writer.pyx":880 * cur_alignment = variable_alignment.get(variable_name) * if cur_alignment: * set_variable_alignment(variable, cur_alignment, variable_name) # <<<<<<<<<<<<<< @@ -15575,15 +15657,15 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d */ __pyx_t_1 = __pyx_v_cur_alignment; __Pyx_INCREF(__pyx_t_1); - if (!(likely(PyUnicode_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("str", __pyx_t_1))) __PYX_ERR(0, 875, __pyx_L23_error) + if (!(likely(PyUnicode_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("str", __pyx_t_1))) __PYX_ERR(0, 880, __pyx_L23_error) __pyx_t_3 = __pyx_v_variable_name; __Pyx_INCREF(__pyx_t_3); - if (!(likely(PyUnicode_CheckExact(__pyx_t_3))||((__pyx_t_3) == Py_None) || __Pyx_RaiseUnexpectedTypeError("str", __pyx_t_3))) __PYX_ERR(0, 875, __pyx_L23_error) - __pyx_f_10pyreadstat_16_readstat_writer_set_variable_alignment(__pyx_v_variable, ((PyObject*)__pyx_t_1), ((PyObject*)__pyx_t_3)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 875, __pyx_L23_error) + if (!(likely(PyUnicode_CheckExact(__pyx_t_3))||((__pyx_t_3) == Py_None) || __Pyx_RaiseUnexpectedTypeError("str", __pyx_t_3))) __PYX_ERR(0, 880, __pyx_L23_error) + __pyx_f_10pyreadstat_16_readstat_writer_set_variable_alignment(__pyx_v_variable, ((PyObject*)__pyx_t_1), ((PyObject*)__pyx_t_3)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 880, __pyx_L23_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - /* "pyreadstat/_readstat_writer.pyx":874 + /* "pyreadstat/_readstat_writer.pyx":879 * # the resulting file all alignments are still unknown) * cur_alignment = variable_alignment.get(variable_name) * if cur_alignment: # <<<<<<<<<<<<<< @@ -15592,7 +15674,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d */ } - /* "pyreadstat/_readstat_writer.pyx":870 + /* "pyreadstat/_readstat_writer.pyx":875 * raise PyreadstatError(msg) * add_missing_ranges(cur_ranges, variable, curtype, variable_name) * if variable_alignment: # <<<<<<<<<<<<<< @@ -15601,17 +15683,17 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d */ } - /* "pyreadstat/_readstat_writer.pyx":876 + /* "pyreadstat/_readstat_writer.pyx":881 * if cur_alignment: * set_variable_alignment(variable, cur_alignment, variable_name) * if variable_display_width: # <<<<<<<<<<<<<< * cur_display_width = variable_display_width.get(variable_name) * if cur_display_width: */ - __pyx_t_20 = __Pyx_PyObject_IsTrue(__pyx_v_variable_display_width); if (unlikely((__pyx_t_20 < 0))) __PYX_ERR(0, 876, __pyx_L23_error) + __pyx_t_20 = __Pyx_PyObject_IsTrue(__pyx_v_variable_display_width); if (unlikely((__pyx_t_20 < 0))) __PYX_ERR(0, 881, __pyx_L23_error) if (__pyx_t_20) { - /* "pyreadstat/_readstat_writer.pyx":877 + /* "pyreadstat/_readstat_writer.pyx":882 * set_variable_alignment(variable, cur_alignment, variable_name) * if variable_display_width: * cur_display_width = variable_display_width.get(variable_name) # <<<<<<<<<<<<<< @@ -15620,38 +15702,38 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d */ if (unlikely(__pyx_v_variable_display_width == Py_None)) { PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "get"); - __PYX_ERR(0, 877, __pyx_L23_error) + __PYX_ERR(0, 882, __pyx_L23_error) } - __pyx_t_3 = __Pyx_PyDict_GetItemDefault(__pyx_v_variable_display_width, __pyx_v_variable_name, Py_None); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 877, __pyx_L23_error) + __pyx_t_3 = __Pyx_PyDict_GetItemDefault(__pyx_v_variable_display_width, __pyx_v_variable_name, Py_None); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 882, __pyx_L23_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_XDECREF_SET(__pyx_v_cur_display_width, __pyx_t_3); __pyx_t_3 = 0; - /* "pyreadstat/_readstat_writer.pyx":878 + /* "pyreadstat/_readstat_writer.pyx":883 * if variable_display_width: * cur_display_width = variable_display_width.get(variable_name) * if cur_display_width: # <<<<<<<<<<<<<< * set_variable_display_width(variable, cur_display_width, variable_name) * if variable_measure: */ - __pyx_t_20 = __Pyx_PyObject_IsTrue(__pyx_v_cur_display_width); if (unlikely((__pyx_t_20 < 0))) __PYX_ERR(0, 878, __pyx_L23_error) + __pyx_t_20 = __Pyx_PyObject_IsTrue(__pyx_v_cur_display_width); if (unlikely((__pyx_t_20 < 0))) __PYX_ERR(0, 883, __pyx_L23_error) if (__pyx_t_20) { - /* "pyreadstat/_readstat_writer.pyx":879 + /* "pyreadstat/_readstat_writer.pyx":884 * cur_display_width = variable_display_width.get(variable_name) * if cur_display_width: * set_variable_display_width(variable, cur_display_width, variable_name) # <<<<<<<<<<<<<< * if variable_measure: * cur_measure = variable_measure.get(variable_name) */ - __pyx_t_25 = __Pyx_PyLong_As_int(__pyx_v_cur_display_width); if (unlikely((__pyx_t_25 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 879, __pyx_L23_error) + __pyx_t_25 = __Pyx_PyLong_As_int(__pyx_v_cur_display_width); if (unlikely((__pyx_t_25 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 884, __pyx_L23_error) __pyx_t_3 = __pyx_v_variable_name; __Pyx_INCREF(__pyx_t_3); - if (!(likely(PyUnicode_CheckExact(__pyx_t_3))||((__pyx_t_3) == Py_None) || __Pyx_RaiseUnexpectedTypeError("str", __pyx_t_3))) __PYX_ERR(0, 879, __pyx_L23_error) - __pyx_f_10pyreadstat_16_readstat_writer_set_variable_display_width(__pyx_v_variable, __pyx_t_25, ((PyObject*)__pyx_t_3)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 879, __pyx_L23_error) + if (!(likely(PyUnicode_CheckExact(__pyx_t_3))||((__pyx_t_3) == Py_None) || __Pyx_RaiseUnexpectedTypeError("str", __pyx_t_3))) __PYX_ERR(0, 884, __pyx_L23_error) + __pyx_f_10pyreadstat_16_readstat_writer_set_variable_display_width(__pyx_v_variable, __pyx_t_25, ((PyObject*)__pyx_t_3)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 884, __pyx_L23_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - /* "pyreadstat/_readstat_writer.pyx":878 + /* "pyreadstat/_readstat_writer.pyx":883 * if variable_display_width: * cur_display_width = variable_display_width.get(variable_name) * if cur_display_width: # <<<<<<<<<<<<<< @@ -15660,7 +15742,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d */ } - /* "pyreadstat/_readstat_writer.pyx":876 + /* "pyreadstat/_readstat_writer.pyx":881 * if cur_alignment: * set_variable_alignment(variable, cur_alignment, variable_name) * if variable_display_width: # <<<<<<<<<<<<<< @@ -15669,17 +15751,17 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d */ } - /* "pyreadstat/_readstat_writer.pyx":880 + /* "pyreadstat/_readstat_writer.pyx":885 * if cur_display_width: * set_variable_display_width(variable, cur_display_width, variable_name) * if variable_measure: # <<<<<<<<<<<<<< * cur_measure = variable_measure.get(variable_name) * if cur_measure: */ - __pyx_t_20 = __Pyx_PyObject_IsTrue(__pyx_v_variable_measure); if (unlikely((__pyx_t_20 < 0))) __PYX_ERR(0, 880, __pyx_L23_error) + __pyx_t_20 = __Pyx_PyObject_IsTrue(__pyx_v_variable_measure); if (unlikely((__pyx_t_20 < 0))) __PYX_ERR(0, 885, __pyx_L23_error) if (__pyx_t_20) { - /* "pyreadstat/_readstat_writer.pyx":881 + /* "pyreadstat/_readstat_writer.pyx":886 * set_variable_display_width(variable, cur_display_width, variable_name) * if variable_measure: * cur_measure = variable_measure.get(variable_name) # <<<<<<<<<<<<<< @@ -15688,24 +15770,24 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d */ if (unlikely(__pyx_v_variable_measure == Py_None)) { PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "get"); - __PYX_ERR(0, 881, __pyx_L23_error) + __PYX_ERR(0, 886, __pyx_L23_error) } - __pyx_t_3 = __Pyx_PyDict_GetItemDefault(__pyx_v_variable_measure, __pyx_v_variable_name, Py_None); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 881, __pyx_L23_error) + __pyx_t_3 = __Pyx_PyDict_GetItemDefault(__pyx_v_variable_measure, __pyx_v_variable_name, Py_None); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 886, __pyx_L23_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_XDECREF_SET(__pyx_v_cur_measure, __pyx_t_3); __pyx_t_3 = 0; - /* "pyreadstat/_readstat_writer.pyx":882 + /* "pyreadstat/_readstat_writer.pyx":887 * if variable_measure: * cur_measure = variable_measure.get(variable_name) * if cur_measure: # <<<<<<<<<<<<<< * set_variable_measure(variable, cur_measure, variable_name) * */ - __pyx_t_20 = __Pyx_PyObject_IsTrue(__pyx_v_cur_measure); if (unlikely((__pyx_t_20 < 0))) __PYX_ERR(0, 882, __pyx_L23_error) + __pyx_t_20 = __Pyx_PyObject_IsTrue(__pyx_v_cur_measure); if (unlikely((__pyx_t_20 < 0))) __PYX_ERR(0, 887, __pyx_L23_error) if (__pyx_t_20) { - /* "pyreadstat/_readstat_writer.pyx":883 + /* "pyreadstat/_readstat_writer.pyx":888 * cur_measure = variable_measure.get(variable_name) * if cur_measure: * set_variable_measure(variable, cur_measure, variable_name) # <<<<<<<<<<<<<< @@ -15714,15 +15796,15 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d */ __pyx_t_3 = __pyx_v_cur_measure; __Pyx_INCREF(__pyx_t_3); - if (!(likely(PyUnicode_CheckExact(__pyx_t_3))||((__pyx_t_3) == Py_None) || __Pyx_RaiseUnexpectedTypeError("str", __pyx_t_3))) __PYX_ERR(0, 883, __pyx_L23_error) + if (!(likely(PyUnicode_CheckExact(__pyx_t_3))||((__pyx_t_3) == Py_None) || __Pyx_RaiseUnexpectedTypeError("str", __pyx_t_3))) __PYX_ERR(0, 888, __pyx_L23_error) __pyx_t_1 = __pyx_v_variable_name; __Pyx_INCREF(__pyx_t_1); - if (!(likely(PyUnicode_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("str", __pyx_t_1))) __PYX_ERR(0, 883, __pyx_L23_error) - __pyx_f_10pyreadstat_16_readstat_writer_set_variable_measure(__pyx_v_variable, ((PyObject*)__pyx_t_3), ((PyObject*)__pyx_t_1)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 883, __pyx_L23_error) + if (!(likely(PyUnicode_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("str", __pyx_t_1))) __PYX_ERR(0, 888, __pyx_L23_error) + __pyx_f_10pyreadstat_16_readstat_writer_set_variable_measure(__pyx_v_variable, ((PyObject*)__pyx_t_3), ((PyObject*)__pyx_t_1)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 888, __pyx_L23_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "pyreadstat/_readstat_writer.pyx":882 + /* "pyreadstat/_readstat_writer.pyx":887 * if variable_measure: * cur_measure = variable_measure.get(variable_name) * if cur_measure: # <<<<<<<<<<<<<< @@ -15731,7 +15813,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d */ } - /* "pyreadstat/_readstat_writer.pyx":880 + /* "pyreadstat/_readstat_writer.pyx":885 * if cur_display_width: * set_variable_display_width(variable, cur_display_width, variable_name) * if variable_measure: # <<<<<<<<<<<<<< @@ -15741,7 +15823,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d } } - /* "pyreadstat/_readstat_writer.pyx":886 + /* "pyreadstat/_readstat_writer.pyx":891 * * # start writing * if file_format == FILE_FORMAT_SAS7BCAT: # <<<<<<<<<<<<<< @@ -15751,16 +15833,16 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d switch (__pyx_v_file_format) { case __pyx_e_10pyreadstat_16_readstat_writer_FILE_FORMAT_SAS7BCAT: - /* "pyreadstat/_readstat_writer.pyx":887 + /* "pyreadstat/_readstat_writer.pyx":892 * # start writing * if file_format == FILE_FORMAT_SAS7BCAT: * check_exit_status(readstat_begin_writing_sas7bcat(writer, &fd)) # <<<<<<<<<<<<<< * elif file_format == FILE_FORMAT_DTA: * check_exit_status(readstat_begin_writing_dta(writer, &fd, row_count)) */ - __pyx_f_10pyreadstat_16_readstat_parser_check_exit_status(readstat_begin_writing_sas7bcat(__pyx_v_writer, (&__pyx_v_fd))); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 887, __pyx_L23_error) + __pyx_f_10pyreadstat_16_readstat_parser_check_exit_status(readstat_begin_writing_sas7bcat(__pyx_v_writer, (&__pyx_v_fd))); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 892, __pyx_L23_error) - /* "pyreadstat/_readstat_writer.pyx":886 + /* "pyreadstat/_readstat_writer.pyx":891 * * # start writing * if file_format == FILE_FORMAT_SAS7BCAT: # <<<<<<<<<<<<<< @@ -15770,16 +15852,16 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d break; case __pyx_e_10pyreadstat_16_readstat_writer_FILE_FORMAT_DTA: - /* "pyreadstat/_readstat_writer.pyx":889 + /* "pyreadstat/_readstat_writer.pyx":894 * check_exit_status(readstat_begin_writing_sas7bcat(writer, &fd)) * elif file_format == FILE_FORMAT_DTA: * check_exit_status(readstat_begin_writing_dta(writer, &fd, row_count)) # <<<<<<<<<<<<<< * elif file_format == FILE_FORMAT_SAV: * check_exit_status(readstat_begin_writing_sav(writer, &fd, row_count)) */ - __pyx_f_10pyreadstat_16_readstat_parser_check_exit_status(readstat_begin_writing_dta(__pyx_v_writer, (&__pyx_v_fd), __pyx_v_row_count)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 889, __pyx_L23_error) + __pyx_f_10pyreadstat_16_readstat_parser_check_exit_status(readstat_begin_writing_dta(__pyx_v_writer, (&__pyx_v_fd), __pyx_v_row_count)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 894, __pyx_L23_error) - /* "pyreadstat/_readstat_writer.pyx":888 + /* "pyreadstat/_readstat_writer.pyx":893 * if file_format == FILE_FORMAT_SAS7BCAT: * check_exit_status(readstat_begin_writing_sas7bcat(writer, &fd)) * elif file_format == FILE_FORMAT_DTA: # <<<<<<<<<<<<<< @@ -15789,16 +15871,16 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d break; case __pyx_e_10pyreadstat_16_readstat_writer_FILE_FORMAT_SAV: - /* "pyreadstat/_readstat_writer.pyx":891 + /* "pyreadstat/_readstat_writer.pyx":896 * check_exit_status(readstat_begin_writing_dta(writer, &fd, row_count)) * elif file_format == FILE_FORMAT_SAV: * check_exit_status(readstat_begin_writing_sav(writer, &fd, row_count)) # <<<<<<<<<<<<<< * elif file_format == FILE_FORMAT_POR: * check_exit_status(readstat_begin_writing_por(writer, &fd, row_count)) */ - __pyx_f_10pyreadstat_16_readstat_parser_check_exit_status(readstat_begin_writing_sav(__pyx_v_writer, (&__pyx_v_fd), __pyx_v_row_count)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 891, __pyx_L23_error) + __pyx_f_10pyreadstat_16_readstat_parser_check_exit_status(readstat_begin_writing_sav(__pyx_v_writer, (&__pyx_v_fd), __pyx_v_row_count)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 896, __pyx_L23_error) - /* "pyreadstat/_readstat_writer.pyx":890 + /* "pyreadstat/_readstat_writer.pyx":895 * elif file_format == FILE_FORMAT_DTA: * check_exit_status(readstat_begin_writing_dta(writer, &fd, row_count)) * elif file_format == FILE_FORMAT_SAV: # <<<<<<<<<<<<<< @@ -15808,16 +15890,16 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d break; case __pyx_e_10pyreadstat_16_readstat_writer_FILE_FORMAT_POR: - /* "pyreadstat/_readstat_writer.pyx":893 + /* "pyreadstat/_readstat_writer.pyx":898 * check_exit_status(readstat_begin_writing_sav(writer, &fd, row_count)) * elif file_format == FILE_FORMAT_POR: * check_exit_status(readstat_begin_writing_por(writer, &fd, row_count)) # <<<<<<<<<<<<<< * elif file_format == FILE_FORMAT_SAS7BDAT: * check_exit_status(readstat_begin_writing_sas7bdat(writer, &fd, row_count)) */ - __pyx_f_10pyreadstat_16_readstat_parser_check_exit_status(readstat_begin_writing_por(__pyx_v_writer, (&__pyx_v_fd), __pyx_v_row_count)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 893, __pyx_L23_error) + __pyx_f_10pyreadstat_16_readstat_parser_check_exit_status(readstat_begin_writing_por(__pyx_v_writer, (&__pyx_v_fd), __pyx_v_row_count)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 898, __pyx_L23_error) - /* "pyreadstat/_readstat_writer.pyx":892 + /* "pyreadstat/_readstat_writer.pyx":897 * elif file_format == FILE_FORMAT_SAV: * check_exit_status(readstat_begin_writing_sav(writer, &fd, row_count)) * elif file_format == FILE_FORMAT_POR: # <<<<<<<<<<<<<< @@ -15827,16 +15909,16 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d break; case __pyx_e_10pyreadstat_16_readstat_writer_FILE_FORMAT_SAS7BDAT: - /* "pyreadstat/_readstat_writer.pyx":895 + /* "pyreadstat/_readstat_writer.pyx":900 * check_exit_status(readstat_begin_writing_por(writer, &fd, row_count)) * elif file_format == FILE_FORMAT_SAS7BDAT: * check_exit_status(readstat_begin_writing_sas7bdat(writer, &fd, row_count)) # <<<<<<<<<<<<<< * elif file_format == FILE_FORMAT_XPORT: * check_exit_status(readstat_begin_writing_xport(writer, &fd, row_count)) */ - __pyx_f_10pyreadstat_16_readstat_parser_check_exit_status(readstat_begin_writing_sas7bdat(__pyx_v_writer, (&__pyx_v_fd), __pyx_v_row_count)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 895, __pyx_L23_error) + __pyx_f_10pyreadstat_16_readstat_parser_check_exit_status(readstat_begin_writing_sas7bdat(__pyx_v_writer, (&__pyx_v_fd), __pyx_v_row_count)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 900, __pyx_L23_error) - /* "pyreadstat/_readstat_writer.pyx":894 + /* "pyreadstat/_readstat_writer.pyx":899 * elif file_format == FILE_FORMAT_POR: * check_exit_status(readstat_begin_writing_por(writer, &fd, row_count)) * elif file_format == FILE_FORMAT_SAS7BDAT: # <<<<<<<<<<<<<< @@ -15846,16 +15928,16 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d break; case __pyx_e_10pyreadstat_16_readstat_writer_FILE_FORMAT_XPORT: - /* "pyreadstat/_readstat_writer.pyx":897 + /* "pyreadstat/_readstat_writer.pyx":902 * check_exit_status(readstat_begin_writing_sas7bdat(writer, &fd, row_count)) * elif file_format == FILE_FORMAT_XPORT: * check_exit_status(readstat_begin_writing_xport(writer, &fd, row_count)) # <<<<<<<<<<<<<< * else: * raise PyreadstatError("unknown file format") */ - __pyx_f_10pyreadstat_16_readstat_parser_check_exit_status(readstat_begin_writing_xport(__pyx_v_writer, (&__pyx_v_fd), __pyx_v_row_count)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 897, __pyx_L23_error) + __pyx_f_10pyreadstat_16_readstat_parser_check_exit_status(readstat_begin_writing_xport(__pyx_v_writer, (&__pyx_v_fd), __pyx_v_row_count)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 902, __pyx_L23_error) - /* "pyreadstat/_readstat_writer.pyx":896 + /* "pyreadstat/_readstat_writer.pyx":901 * elif file_format == FILE_FORMAT_SAS7BDAT: * check_exit_status(readstat_begin_writing_sas7bdat(writer, &fd, row_count)) * elif file_format == FILE_FORMAT_XPORT: # <<<<<<<<<<<<<< @@ -15865,7 +15947,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d break; default: - /* "pyreadstat/_readstat_writer.pyx":899 + /* "pyreadstat/_readstat_writer.pyx":904 * check_exit_status(readstat_begin_writing_xport(writer, &fd, row_count)) * else: * raise PyreadstatError("unknown file format") # <<<<<<<<<<<<<< @@ -15873,7 +15955,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d * # validation */ __pyx_t_3 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 899, __pyx_L23_error) + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 904, __pyx_L23_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = 1; #if CYTHON_UNPACK_METHODS @@ -15892,25 +15974,25 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 899, __pyx_L23_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 904, __pyx_L23_error) __Pyx_GOTREF(__pyx_t_1); } __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __PYX_ERR(0, 899, __pyx_L23_error) + __PYX_ERR(0, 904, __pyx_L23_error) break; } - /* "pyreadstat/_readstat_writer.pyx":902 + /* "pyreadstat/_readstat_writer.pyx":907 * * # validation * check_exit_status(readstat_validate_metadata(writer)) # <<<<<<<<<<<<<< * for col_indx in range(col_count): * tempvar = readstat_get_variable(writer, col_indx) */ - __pyx_f_10pyreadstat_16_readstat_parser_check_exit_status(readstat_validate_metadata(__pyx_v_writer)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 902, __pyx_L23_error) + __pyx_f_10pyreadstat_16_readstat_parser_check_exit_status(readstat_validate_metadata(__pyx_v_writer)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 907, __pyx_L23_error) - /* "pyreadstat/_readstat_writer.pyx":903 + /* "pyreadstat/_readstat_writer.pyx":908 * # validation * check_exit_status(readstat_validate_metadata(writer)) * for col_indx in range(col_count): # <<<<<<<<<<<<<< @@ -15922,7 +16004,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d for (__pyx_t_22 = 0; __pyx_t_22 < __pyx_t_21; __pyx_t_22+=1) { __pyx_v_col_indx = __pyx_t_22; - /* "pyreadstat/_readstat_writer.pyx":904 + /* "pyreadstat/_readstat_writer.pyx":909 * check_exit_status(readstat_validate_metadata(writer)) * for col_indx in range(col_count): * tempvar = readstat_get_variable(writer, col_indx) # <<<<<<<<<<<<<< @@ -15931,28 +16013,28 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d */ __pyx_v_tempvar = readstat_get_variable(__pyx_v_writer, __pyx_v_col_indx); - /* "pyreadstat/_readstat_writer.pyx":905 + /* "pyreadstat/_readstat_writer.pyx":910 * for col_indx in range(col_count): * tempvar = readstat_get_variable(writer, col_indx) * check_exit_status(readstat_validate_variable(writer, tempvar)) # <<<<<<<<<<<<<< * * # vectorized transform of datetime64ns columns */ - __pyx_f_10pyreadstat_16_readstat_parser_check_exit_status(readstat_validate_variable(__pyx_v_writer, __pyx_v_tempvar)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 905, __pyx_L23_error) + __pyx_f_10pyreadstat_16_readstat_parser_check_exit_status(readstat_validate_variable(__pyx_v_writer, __pyx_v_tempvar)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 910, __pyx_L23_error) } - /* "pyreadstat/_readstat_writer.pyx":908 + /* "pyreadstat/_readstat_writer.pyx":913 * * # vectorized transform of datetime64ns columns * pywriter_types = [x[0] for x in col_types] # <<<<<<<<<<<<<< * pywriter_timeunits = [x[3] for x in col_types] * hasdatetime64 = PYWRITER_DATETIME64 in pywriter_types */ - __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 908, __pyx_L23_error) + __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 913, __pyx_L23_error) __Pyx_GOTREF(__pyx_t_1); if (unlikely(__pyx_v_col_types == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable"); - __PYX_ERR(0, 908, __pyx_L23_error) + __PYX_ERR(0, 913, __pyx_L23_error) } __pyx_t_4 = __pyx_v_col_types; __Pyx_INCREF(__pyx_t_4); __pyx_t_7 = 0; @@ -15960,37 +16042,37 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d { Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_4); #if !CYTHON_ASSUME_SAFE_SIZE - if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 908, __pyx_L23_error) + if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 913, __pyx_L23_error) #endif if (__pyx_t_7 >= __pyx_temp) break; } __pyx_t_3 = __Pyx_PyList_GetItemRefFast(__pyx_t_4, __pyx_t_7, __Pyx_ReferenceSharing_OwnStrongReference); ++__pyx_t_7; - if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 908, __pyx_L23_error) + if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 913, __pyx_L23_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_GetItemInt(__pyx_v_x, 0, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_OwnStrongReference); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 908, __pyx_L23_error) + __pyx_t_3 = __Pyx_GetItemInt(__pyx_v_x, 0, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_OwnStrongReference); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 913, __pyx_L23_error) __Pyx_GOTREF(__pyx_t_3); - if (unlikely(__Pyx_ListComp_Append(__pyx_t_1, (PyObject*)__pyx_t_3))) __PYX_ERR(0, 908, __pyx_L23_error) + if (unlikely(__Pyx_ListComp_Append(__pyx_t_1, (PyObject*)__pyx_t_3))) __PYX_ERR(0, 913, __pyx_L23_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_v_pywriter_types = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - /* "pyreadstat/_readstat_writer.pyx":909 + /* "pyreadstat/_readstat_writer.pyx":914 * # vectorized transform of datetime64ns columns * pywriter_types = [x[0] for x in col_types] * pywriter_timeunits = [x[3] for x in col_types] # <<<<<<<<<<<<<< * hasdatetime64 = PYWRITER_DATETIME64 in pywriter_types * hasdate64 = PYWRITER_DATE64 in pywriter_types */ - __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 909, __pyx_L23_error) + __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 914, __pyx_L23_error) __Pyx_GOTREF(__pyx_t_1); if (unlikely(__pyx_v_col_types == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable"); - __PYX_ERR(0, 909, __pyx_L23_error) + __PYX_ERR(0, 914, __pyx_L23_error) } __pyx_t_4 = __pyx_v_col_types; __Pyx_INCREF(__pyx_t_4); __pyx_t_7 = 0; @@ -15998,71 +16080,71 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d { Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_4); #if !CYTHON_ASSUME_SAFE_SIZE - if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 909, __pyx_L23_error) + if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 914, __pyx_L23_error) #endif if (__pyx_t_7 >= __pyx_temp) break; } __pyx_t_3 = __Pyx_PyList_GetItemRefFast(__pyx_t_4, __pyx_t_7, __Pyx_ReferenceSharing_OwnStrongReference); ++__pyx_t_7; - if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 909, __pyx_L23_error) + if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 914, __pyx_L23_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_GetItemInt(__pyx_v_x, 3, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_OwnStrongReference); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 909, __pyx_L23_error) + __pyx_t_3 = __Pyx_GetItemInt(__pyx_v_x, 3, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_OwnStrongReference); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 914, __pyx_L23_error) __Pyx_GOTREF(__pyx_t_3); - if (unlikely(__Pyx_ListComp_Append(__pyx_t_1, (PyObject*)__pyx_t_3))) __PYX_ERR(0, 909, __pyx_L23_error) + if (unlikely(__Pyx_ListComp_Append(__pyx_t_1, (PyObject*)__pyx_t_3))) __PYX_ERR(0, 914, __pyx_L23_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_v_pywriter_timeunits = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - /* "pyreadstat/_readstat_writer.pyx":910 + /* "pyreadstat/_readstat_writer.pyx":915 * pywriter_types = [x[0] for x in col_types] * pywriter_timeunits = [x[3] for x in col_types] * hasdatetime64 = PYWRITER_DATETIME64 in pywriter_types # <<<<<<<<<<<<<< * hasdate64 = PYWRITER_DATE64 in pywriter_types * hastime64 = PYWRITER_TIME64 in pywriter_types */ - __pyx_t_1 = __Pyx_PyLong_From___pyx_t_10pyreadstat_16_readstat_writer_pywriter_variable_type(__pyx_e_10pyreadstat_16_readstat_writer_PYWRITER_DATETIME64); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 910, __pyx_L23_error) + __pyx_t_1 = __Pyx_PyLong_From___pyx_t_10pyreadstat_16_readstat_writer_pywriter_variable_type(__pyx_e_10pyreadstat_16_readstat_writer_PYWRITER_DATETIME64); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 915, __pyx_L23_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_20 = (__Pyx_PySequence_ContainsTF(__pyx_t_1, __pyx_v_pywriter_types, Py_EQ)); if (unlikely((__pyx_t_20 < 0))) __PYX_ERR(0, 910, __pyx_L23_error) + __pyx_t_20 = (__Pyx_PySequence_ContainsTF(__pyx_t_1, __pyx_v_pywriter_types, Py_EQ)); if (unlikely((__pyx_t_20 < 0))) __PYX_ERR(0, 915, __pyx_L23_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_v_hasdatetime64 = __pyx_t_20; - /* "pyreadstat/_readstat_writer.pyx":911 + /* "pyreadstat/_readstat_writer.pyx":916 * pywriter_timeunits = [x[3] for x in col_types] * hasdatetime64 = PYWRITER_DATETIME64 in pywriter_types * hasdate64 = PYWRITER_DATE64 in pywriter_types # <<<<<<<<<<<<<< * hastime64 = PYWRITER_TIME64 in pywriter_types * if hasdatetime64 or hasdate64 or hastime64: */ - __pyx_t_1 = __Pyx_PyLong_From___pyx_t_10pyreadstat_16_readstat_writer_pywriter_variable_type(__pyx_e_10pyreadstat_16_readstat_writer_PYWRITER_DATE64); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 911, __pyx_L23_error) + __pyx_t_1 = __Pyx_PyLong_From___pyx_t_10pyreadstat_16_readstat_writer_pywriter_variable_type(__pyx_e_10pyreadstat_16_readstat_writer_PYWRITER_DATE64); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 916, __pyx_L23_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_20 = (__Pyx_PySequence_ContainsTF(__pyx_t_1, __pyx_v_pywriter_types, Py_EQ)); if (unlikely((__pyx_t_20 < 0))) __PYX_ERR(0, 911, __pyx_L23_error) + __pyx_t_20 = (__Pyx_PySequence_ContainsTF(__pyx_t_1, __pyx_v_pywriter_types, Py_EQ)); if (unlikely((__pyx_t_20 < 0))) __PYX_ERR(0, 916, __pyx_L23_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = __Pyx_PyBool_FromLong(__pyx_t_20); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 911, __pyx_L23_error) + __pyx_t_1 = __Pyx_PyBool_FromLong(__pyx_t_20); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 916, __pyx_L23_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_hasdate64 = __pyx_t_1; __pyx_t_1 = 0; - /* "pyreadstat/_readstat_writer.pyx":912 + /* "pyreadstat/_readstat_writer.pyx":917 * hasdatetime64 = PYWRITER_DATETIME64 in pywriter_types * hasdate64 = PYWRITER_DATE64 in pywriter_types * hastime64 = PYWRITER_TIME64 in pywriter_types # <<<<<<<<<<<<<< * if hasdatetime64 or hasdate64 or hastime64: * df2 = df.clone() */ - __pyx_t_1 = __Pyx_PyLong_From___pyx_t_10pyreadstat_16_readstat_writer_pywriter_variable_type(__pyx_e_10pyreadstat_16_readstat_writer_PYWRITER_TIME64); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 912, __pyx_L23_error) + __pyx_t_1 = __Pyx_PyLong_From___pyx_t_10pyreadstat_16_readstat_writer_pywriter_variable_type(__pyx_e_10pyreadstat_16_readstat_writer_PYWRITER_TIME64); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 917, __pyx_L23_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_20 = (__Pyx_PySequence_ContainsTF(__pyx_t_1, __pyx_v_pywriter_types, Py_EQ)); if (unlikely((__pyx_t_20 < 0))) __PYX_ERR(0, 912, __pyx_L23_error) + __pyx_t_20 = (__Pyx_PySequence_ContainsTF(__pyx_t_1, __pyx_v_pywriter_types, Py_EQ)); if (unlikely((__pyx_t_20 < 0))) __PYX_ERR(0, 917, __pyx_L23_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = __Pyx_PyBool_FromLong(__pyx_t_20); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 912, __pyx_L23_error) + __pyx_t_1 = __Pyx_PyBool_FromLong(__pyx_t_20); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 917, __pyx_L23_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_hastime64 = __pyx_t_1; __pyx_t_1 = 0; - /* "pyreadstat/_readstat_writer.pyx":913 + /* "pyreadstat/_readstat_writer.pyx":918 * hasdate64 = PYWRITER_DATE64 in pywriter_types * hastime64 = PYWRITER_TIME64 in pywriter_types * if hasdatetime64 or hasdate64 or hastime64: # <<<<<<<<<<<<<< @@ -16072,20 +16154,20 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d if (!__pyx_v_hasdatetime64) { } else { __pyx_t_20 = __pyx_v_hasdatetime64; - goto __pyx_L87_bool_binop_done; + goto __pyx_L89_bool_binop_done; } - __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_v_hasdate64); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(0, 913, __pyx_L23_error) + __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_v_hasdate64); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(0, 918, __pyx_L23_error) if (!__pyx_t_6) { } else { __pyx_t_20 = __pyx_t_6; - goto __pyx_L87_bool_binop_done; + goto __pyx_L89_bool_binop_done; } - __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_v_hastime64); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(0, 913, __pyx_L23_error) + __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_v_hastime64); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(0, 918, __pyx_L23_error) __pyx_t_20 = __pyx_t_6; - __pyx_L87_bool_binop_done:; + __pyx_L89_bool_binop_done:; if (__pyx_t_20) { - /* "pyreadstat/_readstat_writer.pyx":914 + /* "pyreadstat/_readstat_writer.pyx":919 * hastime64 = PYWRITER_TIME64 in pywriter_types * if hasdatetime64 or hasdate64 or hastime64: * df2 = df.clone() # <<<<<<<<<<<<<< @@ -16099,13 +16181,13 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d PyObject *__pyx_callargs[2] = {__pyx_t_4, NULL}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_clone, __pyx_callargs+__pyx_t_5, (1-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 914, __pyx_L23_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 919, __pyx_L23_error) __Pyx_GOTREF(__pyx_t_1); } __pyx_v_df2 = __pyx_t_1; __pyx_t_1 = 0; - /* "pyreadstat/_readstat_writer.pyx":915 + /* "pyreadstat/_readstat_writer.pyx":920 * if hasdatetime64 or hasdate64 or hastime64: * df2 = df.clone() * if hasdatetime64: # <<<<<<<<<<<<<< @@ -16114,19 +16196,19 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d */ if (__pyx_v_hasdatetime64) { - /* "pyreadstat/_readstat_writer.pyx":916 + /* "pyreadstat/_readstat_writer.pyx":921 * df2 = df.clone() * if hasdatetime64: * df2 = vectorized_convert_datetime_to_number(df2, file_format, pywriter_types, pywriter_timeunits, col_count) # <<<<<<<<<<<<<< * if hasdate64: * df2 = vectorized_convert_date_to_number(df2, file_format, pywriter_types, col_count) */ - __pyx_t_1 = __pyx_f_10pyreadstat_16_readstat_writer_vectorized_convert_datetime_to_number(__pyx_v_df2, __pyx_v_file_format, __pyx_v_pywriter_types, __pyx_v_pywriter_timeunits, __pyx_v_col_count); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 916, __pyx_L23_error) + __pyx_t_1 = __pyx_f_10pyreadstat_16_readstat_writer_vectorized_convert_datetime_to_number(__pyx_v_df2, __pyx_v_file_format, __pyx_v_pywriter_types, __pyx_v_pywriter_timeunits, __pyx_v_col_count); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 921, __pyx_L23_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_df2, __pyx_t_1); __pyx_t_1 = 0; - /* "pyreadstat/_readstat_writer.pyx":915 + /* "pyreadstat/_readstat_writer.pyx":920 * if hasdatetime64 or hasdate64 or hastime64: * df2 = df.clone() * if hasdatetime64: # <<<<<<<<<<<<<< @@ -16135,29 +16217,29 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d */ } - /* "pyreadstat/_readstat_writer.pyx":917 + /* "pyreadstat/_readstat_writer.pyx":922 * if hasdatetime64: * df2 = vectorized_convert_datetime_to_number(df2, file_format, pywriter_types, pywriter_timeunits, col_count) * if hasdate64: # <<<<<<<<<<<<<< * df2 = vectorized_convert_date_to_number(df2, file_format, pywriter_types, col_count) * if hastime64: */ - __pyx_t_20 = __Pyx_PyObject_IsTrue(__pyx_v_hasdate64); if (unlikely((__pyx_t_20 < 0))) __PYX_ERR(0, 917, __pyx_L23_error) + __pyx_t_20 = __Pyx_PyObject_IsTrue(__pyx_v_hasdate64); if (unlikely((__pyx_t_20 < 0))) __PYX_ERR(0, 922, __pyx_L23_error) if (__pyx_t_20) { - /* "pyreadstat/_readstat_writer.pyx":918 + /* "pyreadstat/_readstat_writer.pyx":923 * df2 = vectorized_convert_datetime_to_number(df2, file_format, pywriter_types, pywriter_timeunits, col_count) * if hasdate64: * df2 = vectorized_convert_date_to_number(df2, file_format, pywriter_types, col_count) # <<<<<<<<<<<<<< * if hastime64: * df2 = vectorized_convert_time_to_number(df2, file_format, pywriter_types, col_count) */ - __pyx_t_1 = __pyx_f_10pyreadstat_16_readstat_writer_vectorized_convert_date_to_number(__pyx_v_df2, __pyx_v_file_format, __pyx_v_pywriter_types, __pyx_v_col_count); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 918, __pyx_L23_error) + __pyx_t_1 = __pyx_f_10pyreadstat_16_readstat_writer_vectorized_convert_date_to_number(__pyx_v_df2, __pyx_v_file_format, __pyx_v_pywriter_types, __pyx_v_col_count); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 923, __pyx_L23_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_df2, __pyx_t_1); __pyx_t_1 = 0; - /* "pyreadstat/_readstat_writer.pyx":917 + /* "pyreadstat/_readstat_writer.pyx":922 * if hasdatetime64: * df2 = vectorized_convert_datetime_to_number(df2, file_format, pywriter_types, pywriter_timeunits, col_count) * if hasdate64: # <<<<<<<<<<<<<< @@ -16166,29 +16248,29 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d */ } - /* "pyreadstat/_readstat_writer.pyx":919 + /* "pyreadstat/_readstat_writer.pyx":924 * if hasdate64: * df2 = vectorized_convert_date_to_number(df2, file_format, pywriter_types, col_count) * if hastime64: # <<<<<<<<<<<<<< * df2 = vectorized_convert_time_to_number(df2, file_format, pywriter_types, col_count) * else: */ - __pyx_t_20 = __Pyx_PyObject_IsTrue(__pyx_v_hastime64); if (unlikely((__pyx_t_20 < 0))) __PYX_ERR(0, 919, __pyx_L23_error) + __pyx_t_20 = __Pyx_PyObject_IsTrue(__pyx_v_hastime64); if (unlikely((__pyx_t_20 < 0))) __PYX_ERR(0, 924, __pyx_L23_error) if (__pyx_t_20) { - /* "pyreadstat/_readstat_writer.pyx":920 + /* "pyreadstat/_readstat_writer.pyx":925 * df2 = vectorized_convert_date_to_number(df2, file_format, pywriter_types, col_count) * if hastime64: * df2 = vectorized_convert_time_to_number(df2, file_format, pywriter_types, col_count) # <<<<<<<<<<<<<< * else: * df2 = df */ - __pyx_t_1 = __pyx_f_10pyreadstat_16_readstat_writer_vectorized_convert_time_to_number(__pyx_v_df2, __pyx_v_file_format, __pyx_v_pywriter_types, __pyx_v_col_count); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 920, __pyx_L23_error) + __pyx_t_1 = __pyx_f_10pyreadstat_16_readstat_writer_vectorized_convert_time_to_number(__pyx_v_df2, __pyx_v_file_format, __pyx_v_pywriter_types, __pyx_v_col_count); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 925, __pyx_L23_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_df2, __pyx_t_1); __pyx_t_1 = 0; - /* "pyreadstat/_readstat_writer.pyx":919 + /* "pyreadstat/_readstat_writer.pyx":924 * if hasdate64: * df2 = vectorized_convert_date_to_number(df2, file_format, pywriter_types, col_count) * if hastime64: # <<<<<<<<<<<<<< @@ -16197,17 +16279,17 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d */ } - /* "pyreadstat/_readstat_writer.pyx":913 + /* "pyreadstat/_readstat_writer.pyx":918 * hasdate64 = PYWRITER_DATE64 in pywriter_types * hastime64 = PYWRITER_TIME64 in pywriter_types * if hasdatetime64 or hasdate64 or hastime64: # <<<<<<<<<<<<<< * df2 = df.clone() * if hasdatetime64: */ - goto __pyx_L86; + goto __pyx_L88; } - /* "pyreadstat/_readstat_writer.pyx":922 + /* "pyreadstat/_readstat_writer.pyx":927 * df2 = vectorized_convert_time_to_number(df2, file_format, pywriter_types, col_count) * else: * df2 = df # <<<<<<<<<<<<<< @@ -16218,9 +16300,9 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d __Pyx_INCREF(__pyx_v_df); __pyx_v_df2 = __pyx_v_df; } - __pyx_L86:; + __pyx_L88:; - /* "pyreadstat/_readstat_writer.pyx":926 + /* "pyreadstat/_readstat_writer.pyx":931 * * # inserting * rowcnt = 0 # <<<<<<<<<<<<<< @@ -16230,7 +16312,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d __Pyx_INCREF(__pyx_mstate_global->__pyx_int_0); __pyx_v_rowcnt = __pyx_mstate_global->__pyx_int_0; - /* "pyreadstat/_readstat_writer.pyx":928 + /* "pyreadstat/_readstat_writer.pyx":933 * rowcnt = 0 * * for row in df2.iter_rows(): # <<<<<<<<<<<<<< @@ -16244,7 +16326,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d PyObject *__pyx_callargs[2] = {__pyx_t_4, NULL}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_iter_rows, __pyx_callargs+__pyx_t_5, (1-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 928, __pyx_L23_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 933, __pyx_L23_error) __Pyx_GOTREF(__pyx_t_1); } if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) { @@ -16252,9 +16334,9 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d __pyx_t_7 = 0; __pyx_t_8 = NULL; } else { - __pyx_t_7 = -1; __pyx_t_4 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 928, __pyx_L23_error) + __pyx_t_7 = -1; __pyx_t_4 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 933, __pyx_L23_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_8 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_4); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 928, __pyx_L23_error) + __pyx_t_8 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_4); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 933, __pyx_L23_error) } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; for (;;) { @@ -16263,7 +16345,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d { Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_4); #if !CYTHON_ASSUME_SAFE_SIZE - if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 928, __pyx_L23_error) + if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 933, __pyx_L23_error) #endif if (__pyx_t_7 >= __pyx_temp) break; } @@ -16273,7 +16355,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d { Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_4); #if !CYTHON_ASSUME_SAFE_SIZE - if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 928, __pyx_L23_error) + if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 933, __pyx_L23_error) #endif if (__pyx_t_7 >= __pyx_temp) break; } @@ -16284,13 +16366,13 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d #endif ++__pyx_t_7; } - if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 928, __pyx_L23_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 933, __pyx_L23_error) } else { __pyx_t_1 = __pyx_t_8(__pyx_t_4); if (unlikely(!__pyx_t_1)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { - if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(0, 928, __pyx_L23_error) + if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(0, 933, __pyx_L23_error) PyErr_Clear(); } break; @@ -16300,16 +16382,16 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d __Pyx_XDECREF_SET(__pyx_v_row, __pyx_t_1); __pyx_t_1 = 0; - /* "pyreadstat/_readstat_writer.pyx":929 + /* "pyreadstat/_readstat_writer.pyx":934 * * for row in df2.iter_rows(): * check_exit_status(readstat_begin_row(writer)) # <<<<<<<<<<<<<< * * for col_indx in range(col_count): */ - __pyx_f_10pyreadstat_16_readstat_parser_check_exit_status(readstat_begin_row(__pyx_v_writer)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 929, __pyx_L23_error) + __pyx_f_10pyreadstat_16_readstat_parser_check_exit_status(readstat_begin_row(__pyx_v_writer)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 934, __pyx_L23_error) - /* "pyreadstat/_readstat_writer.pyx":931 + /* "pyreadstat/_readstat_writer.pyx":936 * check_exit_status(readstat_begin_row(writer)) * * for col_indx in range(col_count): # <<<<<<<<<<<<<< @@ -16321,7 +16403,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d for (__pyx_t_22 = 0; __pyx_t_22 < __pyx_t_21; __pyx_t_22+=1) { __pyx_v_col_indx = __pyx_t_22; - /* "pyreadstat/_readstat_writer.pyx":933 + /* "pyreadstat/_readstat_writer.pyx":938 * for col_indx in range(col_count): * * tempvar = readstat_get_variable(writer, col_indx) # <<<<<<<<<<<<<< @@ -16330,32 +16412,32 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d */ __pyx_v_tempvar = readstat_get_variable(__pyx_v_writer, __pyx_v_col_indx); - /* "pyreadstat/_readstat_writer.pyx":934 + /* "pyreadstat/_readstat_writer.pyx":939 * * tempvar = readstat_get_variable(writer, col_indx) * curval = row[col_indx] # <<<<<<<<<<<<<< * curtype = pywriter_types[col_indx] * is_missing = col_types[col_indx][2] */ - __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_row, __pyx_v_col_indx, int, 1, __Pyx_PyLong_From_int, 0, 1, 1, 1, __Pyx_ReferenceSharing_OwnStrongReference); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 934, __pyx_L23_error) + __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_row, __pyx_v_col_indx, int, 1, __Pyx_PyLong_From_int, 0, 1, 1, 1, __Pyx_ReferenceSharing_OwnStrongReference); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 939, __pyx_L23_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_XDECREF_SET(__pyx_v_curval, __pyx_t_1); __pyx_t_1 = 0; - /* "pyreadstat/_readstat_writer.pyx":935 + /* "pyreadstat/_readstat_writer.pyx":940 * tempvar = readstat_get_variable(writer, col_indx) * curval = row[col_indx] * curtype = pywriter_types[col_indx] # <<<<<<<<<<<<<< * is_missing = col_types[col_indx][2] * curuser_missing = None */ - __pyx_t_1 = __Pyx_GetItemInt_List(__pyx_v_pywriter_types, __pyx_v_col_indx, int, 1, __Pyx_PyLong_From_int, 1, 1, 1, 1, __Pyx_ReferenceSharing_OwnStrongReference); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 935, __pyx_L23_error) + __pyx_t_1 = __Pyx_GetItemInt_List(__pyx_v_pywriter_types, __pyx_v_col_indx, int, 1, __Pyx_PyLong_From_int, 1, 1, 1, 1, __Pyx_ReferenceSharing_OwnStrongReference); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 940, __pyx_L23_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_24 = ((__pyx_t_10pyreadstat_16_readstat_writer_pywriter_variable_type)__Pyx_PyLong_As___pyx_t_10pyreadstat_16_readstat_writer_pywriter_variable_type(__pyx_t_1)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 935, __pyx_L23_error) + __pyx_t_24 = ((__pyx_t_10pyreadstat_16_readstat_writer_pywriter_variable_type)__Pyx_PyLong_As___pyx_t_10pyreadstat_16_readstat_writer_pywriter_variable_type(__pyx_t_1)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 940, __pyx_L23_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_v_curtype = __pyx_t_24; - /* "pyreadstat/_readstat_writer.pyx":936 + /* "pyreadstat/_readstat_writer.pyx":941 * curval = row[col_indx] * curtype = pywriter_types[col_indx] * is_missing = col_types[col_indx][2] # <<<<<<<<<<<<<< @@ -16364,17 +16446,17 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d */ if (unlikely(__pyx_v_col_types == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 936, __pyx_L23_error) + __PYX_ERR(0, 941, __pyx_L23_error) } - __pyx_t_1 = __Pyx_GetItemInt_List(__pyx_v_col_types, __pyx_v_col_indx, int, 1, __Pyx_PyLong_From_int, 1, 1, 1, 1, __Pyx_ReferenceSharing_OwnStrongReference); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 936, __pyx_L23_error) + __pyx_t_1 = __Pyx_GetItemInt_List(__pyx_v_col_types, __pyx_v_col_indx, int, 1, __Pyx_PyLong_From_int, 1, 1, 1, 1, __Pyx_ReferenceSharing_OwnStrongReference); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 941, __pyx_L23_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_3 = __Pyx_GetItemInt(__pyx_t_1, 2, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_OwnStrongReference); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 936, __pyx_L23_error) + __pyx_t_3 = __Pyx_GetItemInt(__pyx_t_1, 2, long, 1, __Pyx_PyLong_From_long, 0, 0, 1, 1, __Pyx_ReferenceSharing_OwnStrongReference); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 941, __pyx_L23_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_XDECREF_SET(__pyx_v_is_missing, __pyx_t_3); __pyx_t_3 = 0; - /* "pyreadstat/_readstat_writer.pyx":937 + /* "pyreadstat/_readstat_writer.pyx":942 * curtype = pywriter_types[col_indx] * is_missing = col_types[col_indx][2] * curuser_missing = None # <<<<<<<<<<<<<< @@ -16384,17 +16466,17 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d __Pyx_INCREF(Py_None); __Pyx_XDECREF_SET(__pyx_v_curuser_missing, Py_None); - /* "pyreadstat/_readstat_writer.pyx":938 + /* "pyreadstat/_readstat_writer.pyx":943 * is_missing = col_types[col_indx][2] * curuser_missing = None * if missing_user_values: # <<<<<<<<<<<<<< * curuser_missing = missing_user_values.get(col_names[col_indx]) * */ - __pyx_t_20 = __Pyx_PyObject_IsTrue(__pyx_v_missing_user_values); if (unlikely((__pyx_t_20 < 0))) __PYX_ERR(0, 938, __pyx_L23_error) + __pyx_t_20 = __Pyx_PyObject_IsTrue(__pyx_v_missing_user_values); if (unlikely((__pyx_t_20 < 0))) __PYX_ERR(0, 943, __pyx_L23_error) if (__pyx_t_20) { - /* "pyreadstat/_readstat_writer.pyx":939 + /* "pyreadstat/_readstat_writer.pyx":944 * curuser_missing = None * if missing_user_values: * curuser_missing = missing_user_values.get(col_names[col_indx]) # <<<<<<<<<<<<<< @@ -16403,21 +16485,21 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d */ if (unlikely(__pyx_v_missing_user_values == Py_None)) { PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "get"); - __PYX_ERR(0, 939, __pyx_L23_error) + __PYX_ERR(0, 944, __pyx_L23_error) } if (unlikely(__pyx_v_col_names == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 939, __pyx_L23_error) + __PYX_ERR(0, 944, __pyx_L23_error) } - __pyx_t_3 = __Pyx_GetItemInt_List(__pyx_v_col_names, __pyx_v_col_indx, int, 1, __Pyx_PyLong_From_int, 1, 1, 1, 1, __Pyx_ReferenceSharing_OwnStrongReference); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 939, __pyx_L23_error) + __pyx_t_3 = __Pyx_GetItemInt_List(__pyx_v_col_names, __pyx_v_col_indx, int, 1, __Pyx_PyLong_From_int, 1, 1, 1, 1, __Pyx_ReferenceSharing_OwnStrongReference); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 944, __pyx_L23_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_1 = __Pyx_PyDict_GetItemDefault(__pyx_v_missing_user_values, __pyx_t_3, Py_None); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 939, __pyx_L23_error) + __pyx_t_1 = __Pyx_PyDict_GetItemDefault(__pyx_v_missing_user_values, __pyx_t_3, Py_None); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 944, __pyx_L23_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF_SET(__pyx_v_curuser_missing, __pyx_t_1); __pyx_t_1 = 0; - /* "pyreadstat/_readstat_writer.pyx":938 + /* "pyreadstat/_readstat_writer.pyx":943 * is_missing = col_types[col_indx][2] * curuser_missing = None * if missing_user_values: # <<<<<<<<<<<<<< @@ -16426,17 +16508,17 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d */ } - /* "pyreadstat/_readstat_writer.pyx":941 + /* "pyreadstat/_readstat_writer.pyx":946 * curuser_missing = missing_user_values.get(col_names[col_indx]) * * if is_missing: # <<<<<<<<<<<<<< * # For pandas we need isna because values can be Nan, NA, NAT, None * if is_pandas: */ - __pyx_t_20 = __Pyx_PyObject_IsTrue(__pyx_v_is_missing); if (unlikely((__pyx_t_20 < 0))) __PYX_ERR(0, 941, __pyx_L23_error) + __pyx_t_20 = __Pyx_PyObject_IsTrue(__pyx_v_is_missing); if (unlikely((__pyx_t_20 < 0))) __PYX_ERR(0, 946, __pyx_L23_error) if (__pyx_t_20) { - /* "pyreadstat/_readstat_writer.pyx":943 + /* "pyreadstat/_readstat_writer.pyx":948 * if is_missing: * # For pandas we need isna because values can be Nan, NA, NAT, None * if is_pandas: # <<<<<<<<<<<<<< @@ -16445,7 +16527,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d */ if (__pyx_v_is_pandas) { - /* "pyreadstat/_readstat_writer.pyx":944 + /* "pyreadstat/_readstat_writer.pyx":949 * # For pandas we need isna because values can be Nan, NA, NAT, None * if is_pandas: * check_if_missing = pd.isna(curval) # <<<<<<<<<<<<<< @@ -16459,23 +16541,23 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_v_curval}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_isna, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 944, __pyx_L23_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 949, __pyx_L23_error) __Pyx_GOTREF(__pyx_t_1); } __Pyx_XDECREF_SET(__pyx_v_check_if_missing, __pyx_t_1); __pyx_t_1 = 0; - /* "pyreadstat/_readstat_writer.pyx":943 + /* "pyreadstat/_readstat_writer.pyx":948 * if is_missing: * # For pandas we need isna because values can be Nan, NA, NAT, None * if is_pandas: # <<<<<<<<<<<<<< * check_if_missing = pd.isna(curval) * # for other libraries the value would be None */ - goto __pyx_L99; + goto __pyx_L101; } - /* "pyreadstat/_readstat_writer.pyx":947 + /* "pyreadstat/_readstat_writer.pyx":952 * # for other libraries the value would be None * else: * check_if_missing = curval is None # <<<<<<<<<<<<<< @@ -16484,42 +16566,42 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d */ /*else*/ { __pyx_t_20 = (__pyx_v_curval == Py_None); - __pyx_t_1 = __Pyx_PyBool_FromLong(__pyx_t_20); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 947, __pyx_L23_error) + __pyx_t_1 = __Pyx_PyBool_FromLong(__pyx_t_20); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 952, __pyx_L23_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_XDECREF_SET(__pyx_v_check_if_missing, __pyx_t_1); __pyx_t_1 = 0; } - __pyx_L99:; + __pyx_L101:; - /* "pyreadstat/_readstat_writer.pyx":948 + /* "pyreadstat/_readstat_writer.pyx":953 * else: * check_if_missing = curval is None * if check_if_missing: # <<<<<<<<<<<<<< * check_exit_status(readstat_insert_missing_value(writer, tempvar)) * continue */ - __pyx_t_20 = __Pyx_PyObject_IsTrue(__pyx_v_check_if_missing); if (unlikely((__pyx_t_20 < 0))) __PYX_ERR(0, 948, __pyx_L23_error) + __pyx_t_20 = __Pyx_PyObject_IsTrue(__pyx_v_check_if_missing); if (unlikely((__pyx_t_20 < 0))) __PYX_ERR(0, 953, __pyx_L23_error) if (__pyx_t_20) { - /* "pyreadstat/_readstat_writer.pyx":949 + /* "pyreadstat/_readstat_writer.pyx":954 * check_if_missing = curval is None * if check_if_missing: * check_exit_status(readstat_insert_missing_value(writer, tempvar)) # <<<<<<<<<<<<<< * continue * */ - __pyx_f_10pyreadstat_16_readstat_parser_check_exit_status(readstat_insert_missing_value(__pyx_v_writer, __pyx_v_tempvar)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 949, __pyx_L23_error) + __pyx_f_10pyreadstat_16_readstat_parser_check_exit_status(readstat_insert_missing_value(__pyx_v_writer, __pyx_v_tempvar)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 954, __pyx_L23_error) - /* "pyreadstat/_readstat_writer.pyx":950 + /* "pyreadstat/_readstat_writer.pyx":955 * if check_if_missing: * check_exit_status(readstat_insert_missing_value(writer, tempvar)) * continue # <<<<<<<<<<<<<< * * if curuser_missing and curtype in pywriter_numeric_types: */ - goto __pyx_L95_continue; + goto __pyx_L97_continue; - /* "pyreadstat/_readstat_writer.pyx":948 + /* "pyreadstat/_readstat_writer.pyx":953 * else: * check_if_missing = curval is None * if check_if_missing: # <<<<<<<<<<<<<< @@ -16528,7 +16610,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d */ } - /* "pyreadstat/_readstat_writer.pyx":941 + /* "pyreadstat/_readstat_writer.pyx":946 * curuser_missing = missing_user_values.get(col_names[col_indx]) * * if is_missing: # <<<<<<<<<<<<<< @@ -16537,61 +16619,61 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d */ } - /* "pyreadstat/_readstat_writer.pyx":952 + /* "pyreadstat/_readstat_writer.pyx":957 * continue * * if curuser_missing and curtype in pywriter_numeric_types: # <<<<<<<<<<<<<< * if curval in curuser_missing: * check_exit_status(readstat_insert_tagged_missing_value(writer, tempvar, ord(curval))) */ - __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_v_curuser_missing); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(0, 952, __pyx_L23_error) + __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_v_curuser_missing); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(0, 957, __pyx_L23_error) if (__pyx_t_6) { } else { __pyx_t_20 = __pyx_t_6; - goto __pyx_L102_bool_binop_done; + goto __pyx_L104_bool_binop_done; } - __pyx_t_1 = __Pyx_PyLong_From___pyx_t_10pyreadstat_16_readstat_writer_pywriter_variable_type(__pyx_v_curtype); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 952, __pyx_L23_error) + __pyx_t_1 = __Pyx_PyLong_From___pyx_t_10pyreadstat_16_readstat_writer_pywriter_variable_type(__pyx_v_curtype); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 957, __pyx_L23_error) __Pyx_GOTREF(__pyx_t_1); if (unlikely(__pyx_v_10pyreadstat_16_readstat_writer_pywriter_numeric_types == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable"); - __PYX_ERR(0, 952, __pyx_L23_error) + __PYX_ERR(0, 957, __pyx_L23_error) } - __pyx_t_6 = (__Pyx_PySet_ContainsTF(__pyx_t_1, __pyx_v_10pyreadstat_16_readstat_writer_pywriter_numeric_types, Py_EQ)); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(0, 952, __pyx_L23_error) + __pyx_t_6 = (__Pyx_PySet_ContainsTF(__pyx_t_1, __pyx_v_10pyreadstat_16_readstat_writer_pywriter_numeric_types, Py_EQ)); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(0, 957, __pyx_L23_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_20 = __pyx_t_6; - __pyx_L102_bool_binop_done:; + __pyx_L104_bool_binop_done:; if (__pyx_t_20) { - /* "pyreadstat/_readstat_writer.pyx":953 + /* "pyreadstat/_readstat_writer.pyx":958 * * if curuser_missing and curtype in pywriter_numeric_types: * if curval in curuser_missing: # <<<<<<<<<<<<<< * check_exit_status(readstat_insert_tagged_missing_value(writer, tempvar, ord(curval))) * continue */ - __pyx_t_20 = (__Pyx_PySequence_ContainsTF(__pyx_v_curval, __pyx_v_curuser_missing, Py_EQ)); if (unlikely((__pyx_t_20 < 0))) __PYX_ERR(0, 953, __pyx_L23_error) + __pyx_t_20 = (__Pyx_PySequence_ContainsTF(__pyx_v_curval, __pyx_v_curuser_missing, Py_EQ)); if (unlikely((__pyx_t_20 < 0))) __PYX_ERR(0, 958, __pyx_L23_error) if (__pyx_t_20) { - /* "pyreadstat/_readstat_writer.pyx":954 + /* "pyreadstat/_readstat_writer.pyx":959 * if curuser_missing and curtype in pywriter_numeric_types: * if curval in curuser_missing: * check_exit_status(readstat_insert_tagged_missing_value(writer, tempvar, ord(curval))) # <<<<<<<<<<<<<< * continue * */ - __pyx_t_32 = __Pyx_PyObject_Ord(__pyx_v_curval); if (unlikely(__pyx_t_32 == ((long)(long)(Py_UCS4)-1))) __PYX_ERR(0, 954, __pyx_L23_error) - __pyx_f_10pyreadstat_16_readstat_parser_check_exit_status(readstat_insert_tagged_missing_value(__pyx_v_writer, __pyx_v_tempvar, __pyx_t_32)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 954, __pyx_L23_error) + __pyx_t_33 = __Pyx_PyObject_Ord(__pyx_v_curval); if (unlikely(__pyx_t_33 == ((long)(long)(Py_UCS4)-1))) __PYX_ERR(0, 959, __pyx_L23_error) + __pyx_f_10pyreadstat_16_readstat_parser_check_exit_status(readstat_insert_tagged_missing_value(__pyx_v_writer, __pyx_v_tempvar, __pyx_t_33)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 959, __pyx_L23_error) - /* "pyreadstat/_readstat_writer.pyx":955 + /* "pyreadstat/_readstat_writer.pyx":960 * if curval in curuser_missing: * check_exit_status(readstat_insert_tagged_missing_value(writer, tempvar, ord(curval))) * continue # <<<<<<<<<<<<<< * * if curtype == PYWRITER_DOUBLE: */ - goto __pyx_L95_continue; + goto __pyx_L97_continue; - /* "pyreadstat/_readstat_writer.pyx":953 + /* "pyreadstat/_readstat_writer.pyx":958 * * if curuser_missing and curtype in pywriter_numeric_types: * if curval in curuser_missing: # <<<<<<<<<<<<<< @@ -16600,7 +16682,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d */ } - /* "pyreadstat/_readstat_writer.pyx":952 + /* "pyreadstat/_readstat_writer.pyx":957 * continue * * if curuser_missing and curtype in pywriter_numeric_types: # <<<<<<<<<<<<<< @@ -16609,7 +16691,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d */ } - /* "pyreadstat/_readstat_writer.pyx":957 + /* "pyreadstat/_readstat_writer.pyx":962 * continue * * if curtype == PYWRITER_DOUBLE: # <<<<<<<<<<<<<< @@ -16619,27 +16701,27 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d __pyx_t_20 = (__pyx_v_curtype == __pyx_e_10pyreadstat_16_readstat_writer_PYWRITER_DOUBLE); if (__pyx_t_20) { - /* "pyreadstat/_readstat_writer.pyx":958 + /* "pyreadstat/_readstat_writer.pyx":963 * * if curtype == PYWRITER_DOUBLE: * check_exit_status(readstat_insert_double_value(writer, tempvar, curval)) # <<<<<<<<<<<<<< * elif curtype == PYWRITER_INTEGER: * check_exit_status(readstat_insert_int32_value(writer, tempvar, curval)) */ - __pyx_t_33 = __Pyx_PyFloat_AsDouble(__pyx_v_curval); if (unlikely((__pyx_t_33 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 958, __pyx_L23_error) - __pyx_f_10pyreadstat_16_readstat_parser_check_exit_status(readstat_insert_double_value(__pyx_v_writer, __pyx_v_tempvar, ((double)__pyx_t_33))); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 958, __pyx_L23_error) + __pyx_t_34 = __Pyx_PyFloat_AsDouble(__pyx_v_curval); if (unlikely((__pyx_t_34 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 963, __pyx_L23_error) + __pyx_f_10pyreadstat_16_readstat_parser_check_exit_status(readstat_insert_double_value(__pyx_v_writer, __pyx_v_tempvar, ((double)__pyx_t_34))); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 963, __pyx_L23_error) - /* "pyreadstat/_readstat_writer.pyx":957 + /* "pyreadstat/_readstat_writer.pyx":962 * continue * * if curtype == PYWRITER_DOUBLE: # <<<<<<<<<<<<<< * check_exit_status(readstat_insert_double_value(writer, tempvar, curval)) * elif curtype == PYWRITER_INTEGER: */ - goto __pyx_L105; + goto __pyx_L107; } - /* "pyreadstat/_readstat_writer.pyx":959 + /* "pyreadstat/_readstat_writer.pyx":964 * if curtype == PYWRITER_DOUBLE: * check_exit_status(readstat_insert_double_value(writer, tempvar, curval)) * elif curtype == PYWRITER_INTEGER: # <<<<<<<<<<<<<< @@ -16649,27 +16731,27 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d __pyx_t_20 = (__pyx_v_curtype == __pyx_e_10pyreadstat_16_readstat_writer_PYWRITER_INTEGER); if (__pyx_t_20) { - /* "pyreadstat/_readstat_writer.pyx":960 + /* "pyreadstat/_readstat_writer.pyx":965 * check_exit_status(readstat_insert_double_value(writer, tempvar, curval)) * elif curtype == PYWRITER_INTEGER: * check_exit_status(readstat_insert_int32_value(writer, tempvar, curval)) # <<<<<<<<<<<<<< * elif curtype == PYWRITER_LOGICAL: * check_exit_status(readstat_insert_int32_value(writer, tempvar, curval)) */ - __pyx_t_34 = __Pyx_PyLong_As_int32_t(__pyx_v_curval); if (unlikely((__pyx_t_34 == ((int32_t)-1)) && PyErr_Occurred())) __PYX_ERR(0, 960, __pyx_L23_error) - __pyx_f_10pyreadstat_16_readstat_parser_check_exit_status(readstat_insert_int32_value(__pyx_v_writer, __pyx_v_tempvar, __pyx_t_34)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 960, __pyx_L23_error) + __pyx_t_35 = __Pyx_PyLong_As_int32_t(__pyx_v_curval); if (unlikely((__pyx_t_35 == ((int32_t)-1)) && PyErr_Occurred())) __PYX_ERR(0, 965, __pyx_L23_error) + __pyx_f_10pyreadstat_16_readstat_parser_check_exit_status(readstat_insert_int32_value(__pyx_v_writer, __pyx_v_tempvar, __pyx_t_35)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 965, __pyx_L23_error) - /* "pyreadstat/_readstat_writer.pyx":959 + /* "pyreadstat/_readstat_writer.pyx":964 * if curtype == PYWRITER_DOUBLE: * check_exit_status(readstat_insert_double_value(writer, tempvar, curval)) * elif curtype == PYWRITER_INTEGER: # <<<<<<<<<<<<<< * check_exit_status(readstat_insert_int32_value(writer, tempvar, curval)) * elif curtype == PYWRITER_LOGICAL: */ - goto __pyx_L105; + goto __pyx_L107; } - /* "pyreadstat/_readstat_writer.pyx":961 + /* "pyreadstat/_readstat_writer.pyx":966 * elif curtype == PYWRITER_INTEGER: * check_exit_status(readstat_insert_int32_value(writer, tempvar, curval)) * elif curtype == PYWRITER_LOGICAL: # <<<<<<<<<<<<<< @@ -16679,27 +16761,27 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d __pyx_t_20 = (__pyx_v_curtype == __pyx_e_10pyreadstat_16_readstat_writer_PYWRITER_LOGICAL); if (__pyx_t_20) { - /* "pyreadstat/_readstat_writer.pyx":962 + /* "pyreadstat/_readstat_writer.pyx":967 * check_exit_status(readstat_insert_int32_value(writer, tempvar, curval)) * elif curtype == PYWRITER_LOGICAL: * check_exit_status(readstat_insert_int32_value(writer, tempvar, curval)) # <<<<<<<<<<<<<< * elif curtype == PYWRITER_CHARACTER: * check_exit_status(readstat_insert_string_value(writer, tempvar, curval.encode("utf-8"))) */ - __pyx_t_25 = __Pyx_PyLong_As_int(__pyx_v_curval); if (unlikely((__pyx_t_25 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 962, __pyx_L23_error) - __pyx_f_10pyreadstat_16_readstat_parser_check_exit_status(readstat_insert_int32_value(__pyx_v_writer, __pyx_v_tempvar, ((int)__pyx_t_25))); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 962, __pyx_L23_error) + __pyx_t_25 = __Pyx_PyLong_As_int(__pyx_v_curval); if (unlikely((__pyx_t_25 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 967, __pyx_L23_error) + __pyx_f_10pyreadstat_16_readstat_parser_check_exit_status(readstat_insert_int32_value(__pyx_v_writer, __pyx_v_tempvar, ((int)__pyx_t_25))); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 967, __pyx_L23_error) - /* "pyreadstat/_readstat_writer.pyx":961 + /* "pyreadstat/_readstat_writer.pyx":966 * elif curtype == PYWRITER_INTEGER: * check_exit_status(readstat_insert_int32_value(writer, tempvar, curval)) * elif curtype == PYWRITER_LOGICAL: # <<<<<<<<<<<<<< * check_exit_status(readstat_insert_int32_value(writer, tempvar, curval)) * elif curtype == PYWRITER_CHARACTER: */ - goto __pyx_L105; + goto __pyx_L107; } - /* "pyreadstat/_readstat_writer.pyx":963 + /* "pyreadstat/_readstat_writer.pyx":968 * elif curtype == PYWRITER_LOGICAL: * check_exit_status(readstat_insert_int32_value(writer, tempvar, curval)) * elif curtype == PYWRITER_CHARACTER: # <<<<<<<<<<<<<< @@ -16709,7 +16791,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d __pyx_t_20 = (__pyx_v_curtype == __pyx_e_10pyreadstat_16_readstat_writer_PYWRITER_CHARACTER); if (__pyx_t_20) { - /* "pyreadstat/_readstat_writer.pyx":964 + /* "pyreadstat/_readstat_writer.pyx":969 * check_exit_status(readstat_insert_int32_value(writer, tempvar, curval)) * elif curtype == PYWRITER_CHARACTER: * check_exit_status(readstat_insert_string_value(writer, tempvar, curval.encode("utf-8"))) # <<<<<<<<<<<<<< @@ -16723,24 +16805,24 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_mstate_global->__pyx_kp_u_utf_8}; __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_encode, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 964, __pyx_L23_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 969, __pyx_L23_error) __Pyx_GOTREF(__pyx_t_1); } - __pyx_t_35 = __Pyx_PyObject_AsString(__pyx_t_1); if (unlikely((!__pyx_t_35) && PyErr_Occurred())) __PYX_ERR(0, 964, __pyx_L23_error) - __pyx_f_10pyreadstat_16_readstat_parser_check_exit_status(readstat_insert_string_value(__pyx_v_writer, __pyx_v_tempvar, __pyx_t_35)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 964, __pyx_L23_error) + __pyx_t_36 = __Pyx_PyObject_AsString(__pyx_t_1); if (unlikely((!__pyx_t_36) && PyErr_Occurred())) __PYX_ERR(0, 969, __pyx_L23_error) + __pyx_f_10pyreadstat_16_readstat_parser_check_exit_status(readstat_insert_string_value(__pyx_v_writer, __pyx_v_tempvar, __pyx_t_36)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 969, __pyx_L23_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "pyreadstat/_readstat_writer.pyx":963 + /* "pyreadstat/_readstat_writer.pyx":968 * elif curtype == PYWRITER_LOGICAL: * check_exit_status(readstat_insert_int32_value(writer, tempvar, curval)) * elif curtype == PYWRITER_CHARACTER: # <<<<<<<<<<<<<< * check_exit_status(readstat_insert_string_value(writer, tempvar, curval.encode("utf-8"))) * elif curtype == PYWRITER_OBJECT: */ - goto __pyx_L105; + goto __pyx_L107; } - /* "pyreadstat/_readstat_writer.pyx":965 + /* "pyreadstat/_readstat_writer.pyx":970 * elif curtype == PYWRITER_CHARACTER: * check_exit_status(readstat_insert_string_value(writer, tempvar, curval.encode("utf-8"))) * elif curtype == PYWRITER_OBJECT: # <<<<<<<<<<<<<< @@ -16750,42 +16832,42 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d __pyx_t_20 = (__pyx_v_curtype == __pyx_e_10pyreadstat_16_readstat_writer_PYWRITER_OBJECT); if (__pyx_t_20) { - /* "pyreadstat/_readstat_writer.pyx":966 + /* "pyreadstat/_readstat_writer.pyx":971 * check_exit_status(readstat_insert_string_value(writer, tempvar, curval.encode("utf-8"))) * elif curtype == PYWRITER_OBJECT: * curvalstr = str(curval) # <<<<<<<<<<<<<< * check_exit_status(readstat_insert_string_value(writer, tempvar, curvalstr.encode("utf-8"))) * elif curtype == PYWRITER_DTA_STR_REF: */ - __pyx_t_1 = __Pyx_PyObject_Unicode(__pyx_v_curval); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 966, __pyx_L23_error) + __pyx_t_1 = __Pyx_PyObject_Unicode(__pyx_v_curval); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 971, __pyx_L23_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_XDECREF_SET(__pyx_v_curvalstr, ((PyObject*)__pyx_t_1)); __pyx_t_1 = 0; - /* "pyreadstat/_readstat_writer.pyx":967 + /* "pyreadstat/_readstat_writer.pyx":972 * elif curtype == PYWRITER_OBJECT: * curvalstr = str(curval) * check_exit_status(readstat_insert_string_value(writer, tempvar, curvalstr.encode("utf-8"))) # <<<<<<<<<<<<<< * elif curtype == PYWRITER_DTA_STR_REF: * curvalstr = str(curval) */ - __pyx_t_1 = PyUnicode_AsUTF8String(__pyx_v_curvalstr); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 967, __pyx_L23_error) + __pyx_t_1 = PyUnicode_AsUTF8String(__pyx_v_curvalstr); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 972, __pyx_L23_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_35 = __Pyx_PyBytes_AsString(__pyx_t_1); if (unlikely((!__pyx_t_35) && PyErr_Occurred())) __PYX_ERR(0, 967, __pyx_L23_error) - __pyx_f_10pyreadstat_16_readstat_parser_check_exit_status(readstat_insert_string_value(__pyx_v_writer, __pyx_v_tempvar, __pyx_t_35)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 967, __pyx_L23_error) + __pyx_t_36 = __Pyx_PyBytes_AsString(__pyx_t_1); if (unlikely((!__pyx_t_36) && PyErr_Occurred())) __PYX_ERR(0, 972, __pyx_L23_error) + __pyx_f_10pyreadstat_16_readstat_parser_check_exit_status(readstat_insert_string_value(__pyx_v_writer, __pyx_v_tempvar, __pyx_t_36)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 972, __pyx_L23_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "pyreadstat/_readstat_writer.pyx":965 + /* "pyreadstat/_readstat_writer.pyx":970 * elif curtype == PYWRITER_CHARACTER: * check_exit_status(readstat_insert_string_value(writer, tempvar, curval.encode("utf-8"))) * elif curtype == PYWRITER_OBJECT: # <<<<<<<<<<<<<< * curvalstr = str(curval) * check_exit_status(readstat_insert_string_value(writer, tempvar, curvalstr.encode("utf-8"))) */ - goto __pyx_L105; + goto __pyx_L107; } - /* "pyreadstat/_readstat_writer.pyx":968 + /* "pyreadstat/_readstat_writer.pyx":973 * curvalstr = str(curval) * check_exit_status(readstat_insert_string_value(writer, tempvar, curvalstr.encode("utf-8"))) * elif curtype == PYWRITER_DTA_STR_REF: # <<<<<<<<<<<<<< @@ -16795,60 +16877,60 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d __pyx_t_20 = (__pyx_v_curtype == __pyx_e_10pyreadstat_16_readstat_writer_PYWRITER_DTA_STR_REF); if (__pyx_t_20) { - /* "pyreadstat/_readstat_writer.pyx":969 + /* "pyreadstat/_readstat_writer.pyx":974 * check_exit_status(readstat_insert_string_value(writer, tempvar, curvalstr.encode("utf-8"))) * elif curtype == PYWRITER_DTA_STR_REF: * curvalstr = str(curval) # <<<<<<<<<<<<<< * strref_indx = strref_map[curvalstr] * strref = readstat_get_string_ref(writer, strref_indx) */ - __pyx_t_1 = __Pyx_PyObject_Unicode(__pyx_v_curval); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 969, __pyx_L23_error) + __pyx_t_1 = __Pyx_PyObject_Unicode(__pyx_v_curval); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 974, __pyx_L23_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_XDECREF_SET(__pyx_v_curvalstr, ((PyObject*)__pyx_t_1)); __pyx_t_1 = 0; - /* "pyreadstat/_readstat_writer.pyx":970 + /* "pyreadstat/_readstat_writer.pyx":975 * elif curtype == PYWRITER_DTA_STR_REF: * curvalstr = str(curval) * strref_indx = strref_map[curvalstr] # <<<<<<<<<<<<<< * strref = readstat_get_string_ref(writer, strref_indx) * check_exit_status(readstat_insert_string_ref(writer, tempvar, strref)) */ - __pyx_t_1 = __Pyx_PyDict_GetItem(__pyx_v_strref_map, __pyx_v_curvalstr); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 970, __pyx_L23_error) + __pyx_t_1 = __Pyx_PyDict_GetItem(__pyx_v_strref_map, __pyx_v_curvalstr); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 975, __pyx_L23_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_XDECREF_SET(__pyx_v_strref_indx, __pyx_t_1); __pyx_t_1 = 0; - /* "pyreadstat/_readstat_writer.pyx":971 + /* "pyreadstat/_readstat_writer.pyx":976 * curvalstr = str(curval) * strref_indx = strref_map[curvalstr] * strref = readstat_get_string_ref(writer, strref_indx) # <<<<<<<<<<<<<< * check_exit_status(readstat_insert_string_ref(writer, tempvar, strref)) * elif curtype == PYWRITER_DATETIME64 or curtype == PYWRITER_DATE64 or curtype == PYWRITER_TIME64: */ - __pyx_t_25 = __Pyx_PyLong_As_int(__pyx_v_strref_indx); if (unlikely((__pyx_t_25 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 971, __pyx_L23_error) + __pyx_t_25 = __Pyx_PyLong_As_int(__pyx_v_strref_indx); if (unlikely((__pyx_t_25 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 976, __pyx_L23_error) __pyx_v_strref = readstat_get_string_ref(__pyx_v_writer, __pyx_t_25); - /* "pyreadstat/_readstat_writer.pyx":972 + /* "pyreadstat/_readstat_writer.pyx":977 * strref_indx = strref_map[curvalstr] * strref = readstat_get_string_ref(writer, strref_indx) * check_exit_status(readstat_insert_string_ref(writer, tempvar, strref)) # <<<<<<<<<<<<<< * elif curtype == PYWRITER_DATETIME64 or curtype == PYWRITER_DATE64 or curtype == PYWRITER_TIME64: * check_exit_status(readstat_insert_double_value(writer, tempvar, curval)) */ - __pyx_f_10pyreadstat_16_readstat_parser_check_exit_status(readstat_insert_string_ref(__pyx_v_writer, __pyx_v_tempvar, __pyx_v_strref)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 972, __pyx_L23_error) + __pyx_f_10pyreadstat_16_readstat_parser_check_exit_status(readstat_insert_string_ref(__pyx_v_writer, __pyx_v_tempvar, __pyx_v_strref)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 977, __pyx_L23_error) - /* "pyreadstat/_readstat_writer.pyx":968 + /* "pyreadstat/_readstat_writer.pyx":973 * curvalstr = str(curval) * check_exit_status(readstat_insert_string_value(writer, tempvar, curvalstr.encode("utf-8"))) * elif curtype == PYWRITER_DTA_STR_REF: # <<<<<<<<<<<<<< * curvalstr = str(curval) * strref_indx = strref_map[curvalstr] */ - goto __pyx_L105; + goto __pyx_L107; } - /* "pyreadstat/_readstat_writer.pyx":973 + /* "pyreadstat/_readstat_writer.pyx":978 * strref = readstat_get_string_ref(writer, strref_indx) * check_exit_status(readstat_insert_string_ref(writer, tempvar, strref)) * elif curtype == PYWRITER_DATETIME64 or curtype == PYWRITER_DATE64 or curtype == PYWRITER_TIME64: # <<<<<<<<<<<<<< @@ -16867,73 +16949,73 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d } if (__pyx_t_20) { - /* "pyreadstat/_readstat_writer.pyx":974 + /* "pyreadstat/_readstat_writer.pyx":979 * check_exit_status(readstat_insert_string_ref(writer, tempvar, strref)) * elif curtype == PYWRITER_DATETIME64 or curtype == PYWRITER_DATE64 or curtype == PYWRITER_TIME64: * check_exit_status(readstat_insert_double_value(writer, tempvar, curval)) # <<<<<<<<<<<<<< * elif curtype in pyrwriter_datetimelike_types: * dtimelikeval = convert_datetimelike_to_number(file_format, curtype, curval) */ - __pyx_t_33 = __Pyx_PyFloat_AsDouble(__pyx_v_curval); if (unlikely((__pyx_t_33 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 974, __pyx_L23_error) - __pyx_f_10pyreadstat_16_readstat_parser_check_exit_status(readstat_insert_double_value(__pyx_v_writer, __pyx_v_tempvar, ((double)__pyx_t_33))); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 974, __pyx_L23_error) + __pyx_t_34 = __Pyx_PyFloat_AsDouble(__pyx_v_curval); if (unlikely((__pyx_t_34 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 979, __pyx_L23_error) + __pyx_f_10pyreadstat_16_readstat_parser_check_exit_status(readstat_insert_double_value(__pyx_v_writer, __pyx_v_tempvar, ((double)__pyx_t_34))); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 979, __pyx_L23_error) - /* "pyreadstat/_readstat_writer.pyx":973 + /* "pyreadstat/_readstat_writer.pyx":978 * strref = readstat_get_string_ref(writer, strref_indx) * check_exit_status(readstat_insert_string_ref(writer, tempvar, strref)) * elif curtype == PYWRITER_DATETIME64 or curtype == PYWRITER_DATE64 or curtype == PYWRITER_TIME64: # <<<<<<<<<<<<<< * check_exit_status(readstat_insert_double_value(writer, tempvar, curval)) * elif curtype in pyrwriter_datetimelike_types: */ - goto __pyx_L105; + goto __pyx_L107; } - /* "pyreadstat/_readstat_writer.pyx":975 + /* "pyreadstat/_readstat_writer.pyx":980 * elif curtype == PYWRITER_DATETIME64 or curtype == PYWRITER_DATE64 or curtype == PYWRITER_TIME64: * check_exit_status(readstat_insert_double_value(writer, tempvar, curval)) * elif curtype in pyrwriter_datetimelike_types: # <<<<<<<<<<<<<< * dtimelikeval = convert_datetimelike_to_number(file_format, curtype, curval) * check_exit_status(readstat_insert_double_value(writer, tempvar, dtimelikeval)) */ - __pyx_t_1 = __Pyx_PyLong_From___pyx_t_10pyreadstat_16_readstat_writer_pywriter_variable_type(__pyx_v_curtype); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 975, __pyx_L23_error) + __pyx_t_1 = __Pyx_PyLong_From___pyx_t_10pyreadstat_16_readstat_writer_pywriter_variable_type(__pyx_v_curtype); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 980, __pyx_L23_error) __Pyx_GOTREF(__pyx_t_1); if (unlikely(__pyx_v_10pyreadstat_16_readstat_writer_pyrwriter_datetimelike_types == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable"); - __PYX_ERR(0, 975, __pyx_L23_error) + __PYX_ERR(0, 980, __pyx_L23_error) } - __pyx_t_20 = (__Pyx_PySet_ContainsTF(__pyx_t_1, __pyx_v_10pyreadstat_16_readstat_writer_pyrwriter_datetimelike_types, Py_EQ)); if (unlikely((__pyx_t_20 < 0))) __PYX_ERR(0, 975, __pyx_L23_error) + __pyx_t_20 = (__Pyx_PySet_ContainsTF(__pyx_t_1, __pyx_v_10pyreadstat_16_readstat_writer_pyrwriter_datetimelike_types, Py_EQ)); if (unlikely((__pyx_t_20 < 0))) __PYX_ERR(0, 980, __pyx_L23_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (likely(__pyx_t_20)) { - /* "pyreadstat/_readstat_writer.pyx":976 + /* "pyreadstat/_readstat_writer.pyx":981 * check_exit_status(readstat_insert_double_value(writer, tempvar, curval)) * elif curtype in pyrwriter_datetimelike_types: * dtimelikeval = convert_datetimelike_to_number(file_format, curtype, curval) # <<<<<<<<<<<<<< * check_exit_status(readstat_insert_double_value(writer, tempvar, dtimelikeval)) * else: */ - __pyx_t_33 = __pyx_f_10pyreadstat_16_readstat_writer_convert_datetimelike_to_number(__pyx_v_file_format, __pyx_v_curtype, __pyx_v_curval); if (unlikely(__pyx_t_33 == ((double)-1) && PyErr_Occurred())) __PYX_ERR(0, 976, __pyx_L23_error) - __pyx_v_dtimelikeval = __pyx_t_33; + __pyx_t_34 = __pyx_f_10pyreadstat_16_readstat_writer_convert_datetimelike_to_number(__pyx_v_file_format, __pyx_v_curtype, __pyx_v_curval); if (unlikely(__pyx_t_34 == ((double)-1) && PyErr_Occurred())) __PYX_ERR(0, 981, __pyx_L23_error) + __pyx_v_dtimelikeval = __pyx_t_34; - /* "pyreadstat/_readstat_writer.pyx":977 + /* "pyreadstat/_readstat_writer.pyx":982 * elif curtype in pyrwriter_datetimelike_types: * dtimelikeval = convert_datetimelike_to_number(file_format, curtype, curval) * check_exit_status(readstat_insert_double_value(writer, tempvar, dtimelikeval)) # <<<<<<<<<<<<<< * else: * raise PyreadstatError("Unknown data format to insert") */ - __pyx_f_10pyreadstat_16_readstat_parser_check_exit_status(readstat_insert_double_value(__pyx_v_writer, __pyx_v_tempvar, __pyx_v_dtimelikeval)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 977, __pyx_L23_error) + __pyx_f_10pyreadstat_16_readstat_parser_check_exit_status(readstat_insert_double_value(__pyx_v_writer, __pyx_v_tempvar, __pyx_v_dtimelikeval)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 982, __pyx_L23_error) - /* "pyreadstat/_readstat_writer.pyx":975 + /* "pyreadstat/_readstat_writer.pyx":980 * elif curtype == PYWRITER_DATETIME64 or curtype == PYWRITER_DATE64 or curtype == PYWRITER_TIME64: * check_exit_status(readstat_insert_double_value(writer, tempvar, curval)) * elif curtype in pyrwriter_datetimelike_types: # <<<<<<<<<<<<<< * dtimelikeval = convert_datetimelike_to_number(file_format, curtype, curval) * check_exit_status(readstat_insert_double_value(writer, tempvar, dtimelikeval)) */ - goto __pyx_L105; + goto __pyx_L107; } - /* "pyreadstat/_readstat_writer.pyx":979 + /* "pyreadstat/_readstat_writer.pyx":984 * check_exit_status(readstat_insert_double_value(writer, tempvar, dtimelikeval)) * else: * raise PyreadstatError("Unknown data format to insert") # <<<<<<<<<<<<<< @@ -16942,7 +17024,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d */ /*else*/ { __pyx_t_3 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_13, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 979, __pyx_L23_error) + __Pyx_GetModuleGlobalName(__pyx_t_13, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 984, __pyx_L23_error) __Pyx_GOTREF(__pyx_t_13); __pyx_t_5 = 1; #if CYTHON_UNPACK_METHODS @@ -16961,39 +17043,39 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_13, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 979, __pyx_L23_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 984, __pyx_L23_error) __Pyx_GOTREF(__pyx_t_1); } __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __PYX_ERR(0, 979, __pyx_L23_error) + __PYX_ERR(0, 984, __pyx_L23_error) } - __pyx_L105:; - __pyx_L95_continue:; + __pyx_L107:; + __pyx_L97_continue:; } - /* "pyreadstat/_readstat_writer.pyx":981 + /* "pyreadstat/_readstat_writer.pyx":986 * raise PyreadstatError("Unknown data format to insert") * * check_exit_status(readstat_end_row(writer)) # <<<<<<<<<<<<<< * rowcnt += 1 * */ - __pyx_f_10pyreadstat_16_readstat_parser_check_exit_status(readstat_end_row(__pyx_v_writer)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 981, __pyx_L23_error) + __pyx_f_10pyreadstat_16_readstat_parser_check_exit_status(readstat_end_row(__pyx_v_writer)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 986, __pyx_L23_error) - /* "pyreadstat/_readstat_writer.pyx":982 + /* "pyreadstat/_readstat_writer.pyx":987 * * check_exit_status(readstat_end_row(writer)) * rowcnt += 1 # <<<<<<<<<<<<<< * * check_exit_status(readstat_end_writing(writer)) */ - __pyx_t_1 = __Pyx_PyLong_AddObjC(__pyx_v_rowcnt, __pyx_mstate_global->__pyx_int_1, 1, 1, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 982, __pyx_L23_error) + __pyx_t_1 = __Pyx_PyLong_AddObjC(__pyx_v_rowcnt, __pyx_mstate_global->__pyx_int_1, 1, 1, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 987, __pyx_L23_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_rowcnt, __pyx_t_1); __pyx_t_1 = 0; - /* "pyreadstat/_readstat_writer.pyx":928 + /* "pyreadstat/_readstat_writer.pyx":933 * rowcnt = 0 * * for row in df2.iter_rows(): # <<<<<<<<<<<<<< @@ -17003,16 +17085,16 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d } __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - /* "pyreadstat/_readstat_writer.pyx":984 + /* "pyreadstat/_readstat_writer.pyx":989 * rowcnt += 1 * * check_exit_status(readstat_end_writing(writer)) # <<<<<<<<<<<<<< * * except: */ - __pyx_f_10pyreadstat_16_readstat_parser_check_exit_status(readstat_end_writing(__pyx_v_writer)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 984, __pyx_L23_error) + __pyx_f_10pyreadstat_16_readstat_parser_check_exit_status(readstat_end_writing(__pyx_v_writer)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 989, __pyx_L23_error) - /* "pyreadstat/_readstat_writer.pyx":773 + /* "pyreadstat/_readstat_writer.pyx":774 * writer = readstat_writer_init() * * try: # <<<<<<<<<<<<<< @@ -17033,7 +17115,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - /* "pyreadstat/_readstat_writer.pyx":986 + /* "pyreadstat/_readstat_writer.pyx":991 * check_exit_status(readstat_end_writing(writer)) * * except: # <<<<<<<<<<<<<< @@ -17042,12 +17124,12 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d */ /*except:*/ { __Pyx_AddTraceback("pyreadstat._readstat_writer.run_write", __pyx_clineno, __pyx_lineno, __pyx_filename); - if (__Pyx_GetException(&__pyx_t_4, &__pyx_t_1, &__pyx_t_13) < 0) __PYX_ERR(0, 986, __pyx_L25_except_error) + if (__Pyx_GetException(&__pyx_t_4, &__pyx_t_1, &__pyx_t_13) < 0) __PYX_ERR(0, 991, __pyx_L25_except_error) __Pyx_XGOTREF(__pyx_t_4); __Pyx_XGOTREF(__pyx_t_1); __Pyx_XGOTREF(__pyx_t_13); - /* "pyreadstat/_readstat_writer.pyx":987 + /* "pyreadstat/_readstat_writer.pyx":992 * * except: * raise # <<<<<<<<<<<<<< @@ -17059,10 +17141,10 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d __Pyx_XGIVEREF(__pyx_t_13); __Pyx_ErrRestoreWithState(__pyx_t_4, __pyx_t_1, __pyx_t_13); __pyx_t_4 = 0; __pyx_t_1 = 0; __pyx_t_13 = 0; - __PYX_ERR(0, 987, __pyx_L25_except_error) + __PYX_ERR(0, 992, __pyx_L25_except_error) } - /* "pyreadstat/_readstat_writer.pyx":773 + /* "pyreadstat/_readstat_writer.pyx":774 * writer = readstat_writer_init() * * try: # <<<<<<<<<<<<<< @@ -17079,7 +17161,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d } } - /* "pyreadstat/_readstat_writer.pyx":989 + /* "pyreadstat/_readstat_writer.pyx":994 * raise * finally: * readstat_writer_free(writer) # <<<<<<<<<<<<<< @@ -17090,21 +17172,21 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d /*normal exit:*/{ readstat_writer_free(__pyx_v_writer); - /* "pyreadstat/_readstat_writer.pyx":990 + /* "pyreadstat/_readstat_writer.pyx":995 * finally: * readstat_writer_free(writer) * close_file(fd) # <<<<<<<<<<<<<< * * return 0 */ - __pyx_t_12 = __pyx_f_10pyreadstat_16_readstat_writer_close_file(__pyx_v_fd); if (unlikely(__pyx_t_12 == ((int)-1) && PyErr_Occurred())) __PYX_ERR(0, 990, __pyx_L1_error) + __pyx_t_12 = __pyx_f_10pyreadstat_16_readstat_writer_close_file(__pyx_v_fd); if (unlikely(__pyx_t_12 == ((int)-1) && PyErr_Occurred())) __PYX_ERR(0, 995, __pyx_L1_error) goto __pyx_L22; } __pyx_L21_error:; /*exception exit:*/{ __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign - __pyx_t_17 = 0; __pyx_t_16 = 0; __pyx_t_15 = 0; __pyx_t_37 = 0; __pyx_t_38 = 0; __pyx_t_39 = 0; + __pyx_t_17 = 0; __pyx_t_16 = 0; __pyx_t_15 = 0; __pyx_t_38 = 0; __pyx_t_39 = 0; __pyx_t_40 = 0; __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0; @@ -17112,18 +17194,18 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_ExceptionSwap(&__pyx_t_37, &__pyx_t_38, &__pyx_t_39); + __Pyx_ExceptionSwap(&__pyx_t_38, &__pyx_t_39, &__pyx_t_40); if ( unlikely(__Pyx_GetException(&__pyx_t_17, &__pyx_t_16, &__pyx_t_15) < 0)) __Pyx_ErrFetch(&__pyx_t_17, &__pyx_t_16, &__pyx_t_15); __Pyx_XGOTREF(__pyx_t_17); __Pyx_XGOTREF(__pyx_t_16); __Pyx_XGOTREF(__pyx_t_15); - __Pyx_XGOTREF(__pyx_t_37); __Pyx_XGOTREF(__pyx_t_38); __Pyx_XGOTREF(__pyx_t_39); - __pyx_t_12 = __pyx_lineno; __pyx_t_21 = __pyx_clineno; __pyx_t_36 = __pyx_filename; + __Pyx_XGOTREF(__pyx_t_40); + __pyx_t_12 = __pyx_lineno; __pyx_t_21 = __pyx_clineno; __pyx_t_37 = __pyx_filename; { - /* "pyreadstat/_readstat_writer.pyx":989 + /* "pyreadstat/_readstat_writer.pyx":994 * raise * finally: * readstat_writer_free(writer) # <<<<<<<<<<<<<< @@ -17132,41 +17214,41 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d */ readstat_writer_free(__pyx_v_writer); - /* "pyreadstat/_readstat_writer.pyx":990 + /* "pyreadstat/_readstat_writer.pyx":995 * finally: * readstat_writer_free(writer) * close_file(fd) # <<<<<<<<<<<<<< * * return 0 */ - __pyx_t_22 = __pyx_f_10pyreadstat_16_readstat_writer_close_file(__pyx_v_fd); if (unlikely(__pyx_t_22 == ((int)-1) && PyErr_Occurred())) __PYX_ERR(0, 990, __pyx_L110_error) + __pyx_t_22 = __pyx_f_10pyreadstat_16_readstat_writer_close_file(__pyx_v_fd); if (unlikely(__pyx_t_22 == ((int)-1) && PyErr_Occurred())) __PYX_ERR(0, 995, __pyx_L112_error) } - __Pyx_XGIVEREF(__pyx_t_37); __Pyx_XGIVEREF(__pyx_t_38); __Pyx_XGIVEREF(__pyx_t_39); - __Pyx_ExceptionReset(__pyx_t_37, __pyx_t_38, __pyx_t_39); + __Pyx_XGIVEREF(__pyx_t_40); + __Pyx_ExceptionReset(__pyx_t_38, __pyx_t_39, __pyx_t_40); __Pyx_XGIVEREF(__pyx_t_17); __Pyx_XGIVEREF(__pyx_t_16); __Pyx_XGIVEREF(__pyx_t_15); __Pyx_ErrRestore(__pyx_t_17, __pyx_t_16, __pyx_t_15); - __pyx_t_17 = 0; __pyx_t_16 = 0; __pyx_t_15 = 0; __pyx_t_37 = 0; __pyx_t_38 = 0; __pyx_t_39 = 0; - __pyx_lineno = __pyx_t_12; __pyx_clineno = __pyx_t_21; __pyx_filename = __pyx_t_36; + __pyx_t_17 = 0; __pyx_t_16 = 0; __pyx_t_15 = 0; __pyx_t_38 = 0; __pyx_t_39 = 0; __pyx_t_40 = 0; + __pyx_lineno = __pyx_t_12; __pyx_clineno = __pyx_t_21; __pyx_filename = __pyx_t_37; goto __pyx_L1_error; - __pyx_L110_error:; - __Pyx_XGIVEREF(__pyx_t_37); + __pyx_L112_error:; __Pyx_XGIVEREF(__pyx_t_38); __Pyx_XGIVEREF(__pyx_t_39); - __Pyx_ExceptionReset(__pyx_t_37, __pyx_t_38, __pyx_t_39); + __Pyx_XGIVEREF(__pyx_t_40); + __Pyx_ExceptionReset(__pyx_t_38, __pyx_t_39, __pyx_t_40); __Pyx_XDECREF(__pyx_t_17); __pyx_t_17 = 0; __Pyx_XDECREF(__pyx_t_16); __pyx_t_16 = 0; __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0; - __pyx_t_37 = 0; __pyx_t_38 = 0; __pyx_t_39 = 0; + __pyx_t_38 = 0; __pyx_t_39 = 0; __pyx_t_40 = 0; goto __pyx_L1_error; } __pyx_L22:; } - /* "pyreadstat/_readstat_writer.pyx":992 + /* "pyreadstat/_readstat_writer.pyx":997 * close_file(fd) * * return 0 # <<<<<<<<<<<<<< @@ -17241,7 +17323,7 @@ static int __pyx_f_10pyreadstat_16_readstat_writer_run_write(PyObject *__pyx_v_d return __pyx_r; } -/* "pyreadstat/_readstat_writer.pyx":994 +/* "pyreadstat/_readstat_writer.pyx":999 * return 0 * * def writer_entry_point(df, dst_path, str writer_format=None, str file_label="", # <<<<<<<<<<<<<< @@ -17282,11 +17364,12 @@ PyObject *__pyx_args, PyObject *__pyx_kwds PyObject *__pyx_v_missing_user_values = 0; PyObject *__pyx_v_variable_format = 0; PyObject *__pyx_v_variable_alignment = 0; + PyObject *__pyx_v_variable_informat = 0; #if !CYTHON_METH_FASTCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[17] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}; + PyObject* values[18] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -17302,88 +17385,92 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_df,&__pyx_mstate_global->__pyx_n_u_dst_path,&__pyx_mstate_global->__pyx_n_u_writer_format,&__pyx_mstate_global->__pyx_n_u_file_label,&__pyx_mstate_global->__pyx_n_u_version,&__pyx_mstate_global->__pyx_n_u_table_name,&__pyx_mstate_global->__pyx_n_u_column_labels,&__pyx_mstate_global->__pyx_n_u_compress,&__pyx_mstate_global->__pyx_n_u_row_compress,&__pyx_mstate_global->__pyx_n_u_note,&__pyx_mstate_global->__pyx_n_u_variable_value_labels,&__pyx_mstate_global->__pyx_n_u_missing_ranges,&__pyx_mstate_global->__pyx_n_u_variable_display_width,&__pyx_mstate_global->__pyx_n_u_variable_measure,&__pyx_mstate_global->__pyx_n_u_missing_user_values,&__pyx_mstate_global->__pyx_n_u_variable_format,&__pyx_mstate_global->__pyx_n_u_variable_alignment,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_df,&__pyx_mstate_global->__pyx_n_u_dst_path,&__pyx_mstate_global->__pyx_n_u_writer_format,&__pyx_mstate_global->__pyx_n_u_file_label,&__pyx_mstate_global->__pyx_n_u_version,&__pyx_mstate_global->__pyx_n_u_table_name,&__pyx_mstate_global->__pyx_n_u_column_labels,&__pyx_mstate_global->__pyx_n_u_compress,&__pyx_mstate_global->__pyx_n_u_row_compress,&__pyx_mstate_global->__pyx_n_u_note,&__pyx_mstate_global->__pyx_n_u_variable_value_labels,&__pyx_mstate_global->__pyx_n_u_missing_ranges,&__pyx_mstate_global->__pyx_n_u_variable_display_width,&__pyx_mstate_global->__pyx_n_u_variable_measure,&__pyx_mstate_global->__pyx_n_u_missing_user_values,&__pyx_mstate_global->__pyx_n_u_variable_format,&__pyx_mstate_global->__pyx_n_u_variable_alignment,&__pyx_mstate_global->__pyx_n_u_variable_informat,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(0, 994, __pyx_L3_error) + if (unlikely(__pyx_kwds_len) < 0) __PYX_ERR(0, 999, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 18: + values[17] = __Pyx_ArgRef_FASTCALL(__pyx_args, 17); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[17])) __PYX_ERR(0, 999, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 17: values[16] = __Pyx_ArgRef_FASTCALL(__pyx_args, 16); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[16])) __PYX_ERR(0, 994, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[16])) __PYX_ERR(0, 999, __pyx_L3_error) CYTHON_FALLTHROUGH; case 16: values[15] = __Pyx_ArgRef_FASTCALL(__pyx_args, 15); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[15])) __PYX_ERR(0, 994, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[15])) __PYX_ERR(0, 999, __pyx_L3_error) CYTHON_FALLTHROUGH; case 15: values[14] = __Pyx_ArgRef_FASTCALL(__pyx_args, 14); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[14])) __PYX_ERR(0, 994, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[14])) __PYX_ERR(0, 999, __pyx_L3_error) CYTHON_FALLTHROUGH; case 14: values[13] = __Pyx_ArgRef_FASTCALL(__pyx_args, 13); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[13])) __PYX_ERR(0, 994, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[13])) __PYX_ERR(0, 999, __pyx_L3_error) CYTHON_FALLTHROUGH; case 13: values[12] = __Pyx_ArgRef_FASTCALL(__pyx_args, 12); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[12])) __PYX_ERR(0, 994, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[12])) __PYX_ERR(0, 999, __pyx_L3_error) CYTHON_FALLTHROUGH; case 12: values[11] = __Pyx_ArgRef_FASTCALL(__pyx_args, 11); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[11])) __PYX_ERR(0, 994, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[11])) __PYX_ERR(0, 999, __pyx_L3_error) CYTHON_FALLTHROUGH; case 11: values[10] = __Pyx_ArgRef_FASTCALL(__pyx_args, 10); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[10])) __PYX_ERR(0, 994, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[10])) __PYX_ERR(0, 999, __pyx_L3_error) CYTHON_FALLTHROUGH; case 10: values[9] = __Pyx_ArgRef_FASTCALL(__pyx_args, 9); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[9])) __PYX_ERR(0, 994, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[9])) __PYX_ERR(0, 999, __pyx_L3_error) CYTHON_FALLTHROUGH; case 9: values[8] = __Pyx_ArgRef_FASTCALL(__pyx_args, 8); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[8])) __PYX_ERR(0, 994, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[8])) __PYX_ERR(0, 999, __pyx_L3_error) CYTHON_FALLTHROUGH; case 8: values[7] = __Pyx_ArgRef_FASTCALL(__pyx_args, 7); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(0, 994, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(0, 999, __pyx_L3_error) CYTHON_FALLTHROUGH; case 7: values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(0, 994, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(0, 999, __pyx_L3_error) CYTHON_FALLTHROUGH; case 6: values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(0, 994, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(0, 999, __pyx_L3_error) CYTHON_FALLTHROUGH; case 5: values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(0, 994, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(0, 999, __pyx_L3_error) CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(0, 994, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(0, 999, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 994, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 999, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 994, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 999, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 994, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 999, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "writer_entry_point", 0) < (0)) __PYX_ERR(0, 994, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "writer_entry_point", 0) < (0)) __PYX_ERR(0, 999, __pyx_L3_error) if (!values[2]) values[2] = __Pyx_NewRef(((PyObject*)Py_None)); if (!values[3]) values[3] = __Pyx_NewRef(((PyObject*)((PyObject*)__pyx_mstate_global->__pyx_kp_u__4))); - /* "pyreadstat/_readstat_writer.pyx":996 + /* "pyreadstat/_readstat_writer.pyx":1001 * def writer_entry_point(df, dst_path, str writer_format=None, str file_label="", * int version=0, * str table_name=None, # <<<<<<<<<<<<<< @@ -17392,7 +17479,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds */ if (!values[5]) values[5] = __Pyx_NewRef(((PyObject*)Py_None)); - /* "pyreadstat/_readstat_writer.pyx":997 + /* "pyreadstat/_readstat_writer.pyx":1002 * int version=0, * str table_name=None, * object column_labels=None, compress=False, row_compress=False, object note=None, # <<<<<<<<<<<<<< @@ -17404,7 +17491,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds if (!values[8]) values[8] = __Pyx_NewRef(((PyObject *)((PyObject*)Py_False))); if (!values[9]) values[9] = __Pyx_NewRef(((PyObject *)Py_None)); - /* "pyreadstat/_readstat_writer.pyx":998 + /* "pyreadstat/_readstat_writer.pyx":1003 * str table_name=None, * object column_labels=None, compress=False, row_compress=False, object note=None, * dict variable_value_labels=None, dict missing_ranges=None, dict variable_display_width=None, # <<<<<<<<<<<<<< @@ -17415,7 +17502,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds if (!values[11]) values[11] = __Pyx_NewRef(((PyObject*)Py_None)); if (!values[12]) values[12] = __Pyx_NewRef(((PyObject*)Py_None)); - /* "pyreadstat/_readstat_writer.pyx":999 + /* "pyreadstat/_readstat_writer.pyx":1004 * object column_labels=None, compress=False, row_compress=False, object note=None, * dict variable_value_labels=None, dict missing_ranges=None, dict variable_display_width=None, * dict variable_measure=None, # <<<<<<<<<<<<<< @@ -17424,7 +17511,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds */ if (!values[13]) values[13] = __Pyx_NewRef(((PyObject*)Py_None)); - /* "pyreadstat/_readstat_writer.pyx":1000 + /* "pyreadstat/_readstat_writer.pyx":1005 * dict variable_value_labels=None, dict missing_ranges=None, dict variable_display_width=None, * dict variable_measure=None, * dict missing_user_values=None, # <<<<<<<<<<<<<< @@ -17433,98 +17520,111 @@ PyObject *__pyx_args, PyObject *__pyx_kwds */ if (!values[14]) values[14] = __Pyx_NewRef(((PyObject*)Py_None)); - /* "pyreadstat/_readstat_writer.pyx":1001 + /* "pyreadstat/_readstat_writer.pyx":1006 * dict variable_measure=None, * dict missing_user_values=None, * dict variable_format=None, # <<<<<<<<<<<<<< * dict variable_alignment = None, - * ): + * dict variable_informat=None, */ if (!values[15]) values[15] = __Pyx_NewRef(((PyObject*)Py_None)); - /* "pyreadstat/_readstat_writer.pyx":1002 + /* "pyreadstat/_readstat_writer.pyx":1007 * dict missing_user_values=None, * dict variable_format=None, * dict variable_alignment = None, # <<<<<<<<<<<<<< + * dict variable_informat=None, * ): - * */ if (!values[16]) values[16] = __Pyx_NewRef(((PyObject*)Py_None)); + + /* "pyreadstat/_readstat_writer.pyx":1008 + * dict variable_format=None, + * dict variable_alignment = None, + * dict variable_informat=None, # <<<<<<<<<<<<<< + * ): + * +*/ + if (!values[17]) values[17] = __Pyx_NewRef(((PyObject*)Py_None)); for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("writer_entry_point", 0, 2, 17, i); __PYX_ERR(0, 994, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("writer_entry_point", 0, 2, 18, i); __PYX_ERR(0, 999, __pyx_L3_error) } } } else { switch (__pyx_nargs) { + case 18: + values[17] = __Pyx_ArgRef_FASTCALL(__pyx_args, 17); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[17])) __PYX_ERR(0, 999, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 17: values[16] = __Pyx_ArgRef_FASTCALL(__pyx_args, 16); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[16])) __PYX_ERR(0, 994, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[16])) __PYX_ERR(0, 999, __pyx_L3_error) CYTHON_FALLTHROUGH; case 16: values[15] = __Pyx_ArgRef_FASTCALL(__pyx_args, 15); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[15])) __PYX_ERR(0, 994, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[15])) __PYX_ERR(0, 999, __pyx_L3_error) CYTHON_FALLTHROUGH; case 15: values[14] = __Pyx_ArgRef_FASTCALL(__pyx_args, 14); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[14])) __PYX_ERR(0, 994, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[14])) __PYX_ERR(0, 999, __pyx_L3_error) CYTHON_FALLTHROUGH; case 14: values[13] = __Pyx_ArgRef_FASTCALL(__pyx_args, 13); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[13])) __PYX_ERR(0, 994, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[13])) __PYX_ERR(0, 999, __pyx_L3_error) CYTHON_FALLTHROUGH; case 13: values[12] = __Pyx_ArgRef_FASTCALL(__pyx_args, 12); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[12])) __PYX_ERR(0, 994, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[12])) __PYX_ERR(0, 999, __pyx_L3_error) CYTHON_FALLTHROUGH; case 12: values[11] = __Pyx_ArgRef_FASTCALL(__pyx_args, 11); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[11])) __PYX_ERR(0, 994, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[11])) __PYX_ERR(0, 999, __pyx_L3_error) CYTHON_FALLTHROUGH; case 11: values[10] = __Pyx_ArgRef_FASTCALL(__pyx_args, 10); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[10])) __PYX_ERR(0, 994, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[10])) __PYX_ERR(0, 999, __pyx_L3_error) CYTHON_FALLTHROUGH; case 10: values[9] = __Pyx_ArgRef_FASTCALL(__pyx_args, 9); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[9])) __PYX_ERR(0, 994, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[9])) __PYX_ERR(0, 999, __pyx_L3_error) CYTHON_FALLTHROUGH; case 9: values[8] = __Pyx_ArgRef_FASTCALL(__pyx_args, 8); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[8])) __PYX_ERR(0, 994, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[8])) __PYX_ERR(0, 999, __pyx_L3_error) CYTHON_FALLTHROUGH; case 8: values[7] = __Pyx_ArgRef_FASTCALL(__pyx_args, 7); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(0, 994, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(0, 999, __pyx_L3_error) CYTHON_FALLTHROUGH; case 7: values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(0, 994, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(0, 999, __pyx_L3_error) CYTHON_FALLTHROUGH; case 6: values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(0, 994, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(0, 999, __pyx_L3_error) CYTHON_FALLTHROUGH; case 5: values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(0, 994, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(0, 999, __pyx_L3_error) CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(0, 994, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(0, 999, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 994, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 999, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 994, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 999, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 994, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 999, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } - /* "pyreadstat/_readstat_writer.pyx":994 + /* "pyreadstat/_readstat_writer.pyx":999 * return 0 * * def writer_entry_point(df, dst_path, str writer_format=None, str file_label="", # <<<<<<<<<<<<<< @@ -17534,7 +17634,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds if (!values[2]) values[2] = __Pyx_NewRef(((PyObject*)Py_None)); if (!values[3]) values[3] = __Pyx_NewRef(((PyObject*)((PyObject*)__pyx_mstate_global->__pyx_kp_u__4))); - /* "pyreadstat/_readstat_writer.pyx":996 + /* "pyreadstat/_readstat_writer.pyx":1001 * def writer_entry_point(df, dst_path, str writer_format=None, str file_label="", * int version=0, * str table_name=None, # <<<<<<<<<<<<<< @@ -17543,7 +17643,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds */ if (!values[5]) values[5] = __Pyx_NewRef(((PyObject*)Py_None)); - /* "pyreadstat/_readstat_writer.pyx":997 + /* "pyreadstat/_readstat_writer.pyx":1002 * int version=0, * str table_name=None, * object column_labels=None, compress=False, row_compress=False, object note=None, # <<<<<<<<<<<<<< @@ -17555,7 +17655,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds if (!values[8]) values[8] = __Pyx_NewRef(((PyObject *)((PyObject*)Py_False))); if (!values[9]) values[9] = __Pyx_NewRef(((PyObject *)Py_None)); - /* "pyreadstat/_readstat_writer.pyx":998 + /* "pyreadstat/_readstat_writer.pyx":1003 * str table_name=None, * object column_labels=None, compress=False, row_compress=False, object note=None, * dict variable_value_labels=None, dict missing_ranges=None, dict variable_display_width=None, # <<<<<<<<<<<<<< @@ -17566,7 +17666,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds if (!values[11]) values[11] = __Pyx_NewRef(((PyObject*)Py_None)); if (!values[12]) values[12] = __Pyx_NewRef(((PyObject*)Py_None)); - /* "pyreadstat/_readstat_writer.pyx":999 + /* "pyreadstat/_readstat_writer.pyx":1004 * object column_labels=None, compress=False, row_compress=False, object note=None, * dict variable_value_labels=None, dict missing_ranges=None, dict variable_display_width=None, * dict variable_measure=None, # <<<<<<<<<<<<<< @@ -17575,7 +17675,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds */ if (!values[13]) values[13] = __Pyx_NewRef(((PyObject*)Py_None)); - /* "pyreadstat/_readstat_writer.pyx":1000 + /* "pyreadstat/_readstat_writer.pyx":1005 * dict variable_value_labels=None, dict missing_ranges=None, dict variable_display_width=None, * dict variable_measure=None, * dict missing_user_values=None, # <<<<<<<<<<<<<< @@ -17584,30 +17684,39 @@ PyObject *__pyx_args, PyObject *__pyx_kwds */ if (!values[14]) values[14] = __Pyx_NewRef(((PyObject*)Py_None)); - /* "pyreadstat/_readstat_writer.pyx":1001 + /* "pyreadstat/_readstat_writer.pyx":1006 * dict variable_measure=None, * dict missing_user_values=None, * dict variable_format=None, # <<<<<<<<<<<<<< * dict variable_alignment = None, - * ): + * dict variable_informat=None, */ if (!values[15]) values[15] = __Pyx_NewRef(((PyObject*)Py_None)); - /* "pyreadstat/_readstat_writer.pyx":1002 + /* "pyreadstat/_readstat_writer.pyx":1007 * dict missing_user_values=None, * dict variable_format=None, * dict variable_alignment = None, # <<<<<<<<<<<<<< + * dict variable_informat=None, * ): - * */ if (!values[16]) values[16] = __Pyx_NewRef(((PyObject*)Py_None)); + + /* "pyreadstat/_readstat_writer.pyx":1008 + * dict variable_format=None, + * dict variable_alignment = None, + * dict variable_informat=None, # <<<<<<<<<<<<<< + * ): + * +*/ + if (!values[17]) values[17] = __Pyx_NewRef(((PyObject*)Py_None)); } __pyx_v_df = values[0]; __pyx_v_dst_path = values[1]; __pyx_v_writer_format = ((PyObject*)values[2]); __pyx_v_file_label = ((PyObject*)values[3]); if (values[4]) { - __pyx_v_version = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_version == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 995, __pyx_L3_error) + __pyx_v_version = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_version == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 1000, __pyx_L3_error) } else { __pyx_v_version = ((int)((int)0)); } @@ -17623,10 +17732,11 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __pyx_v_missing_user_values = ((PyObject*)values[14]); __pyx_v_variable_format = ((PyObject*)values[15]); __pyx_v_variable_alignment = ((PyObject*)values[16]); + __pyx_v_variable_informat = ((PyObject*)values[17]); } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("writer_entry_point", 0, 2, 17, __pyx_nargs); __PYX_ERR(0, 994, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("writer_entry_point", 0, 2, 18, __pyx_nargs); __PYX_ERR(0, 999, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -17637,19 +17747,20 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_writer_format), (&PyUnicode_Type), 1, "writer_format", 1))) __PYX_ERR(0, 994, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_file_label), (&PyUnicode_Type), 1, "file_label", 1))) __PYX_ERR(0, 994, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_table_name), (&PyUnicode_Type), 1, "table_name", 1))) __PYX_ERR(0, 996, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_variable_value_labels), (&PyDict_Type), 1, "variable_value_labels", 1))) __PYX_ERR(0, 998, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_missing_ranges), (&PyDict_Type), 1, "missing_ranges", 1))) __PYX_ERR(0, 998, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_variable_display_width), (&PyDict_Type), 1, "variable_display_width", 1))) __PYX_ERR(0, 998, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_variable_measure), (&PyDict_Type), 1, "variable_measure", 1))) __PYX_ERR(0, 999, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_missing_user_values), (&PyDict_Type), 1, "missing_user_values", 1))) __PYX_ERR(0, 1000, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_variable_format), (&PyDict_Type), 1, "variable_format", 1))) __PYX_ERR(0, 1001, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_variable_alignment), (&PyDict_Type), 1, "variable_alignment", 1))) __PYX_ERR(0, 1002, __pyx_L1_error) - __pyx_r = __pyx_pf_10pyreadstat_16_readstat_writer_writer_entry_point(__pyx_self, __pyx_v_df, __pyx_v_dst_path, __pyx_v_writer_format, __pyx_v_file_label, __pyx_v_version, __pyx_v_table_name, __pyx_v_column_labels, __pyx_v_compress, __pyx_v_row_compress, __pyx_v_note, __pyx_v_variable_value_labels, __pyx_v_missing_ranges, __pyx_v_variable_display_width, __pyx_v_variable_measure, __pyx_v_missing_user_values, __pyx_v_variable_format, __pyx_v_variable_alignment); - - /* "pyreadstat/_readstat_writer.pyx":994 + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_writer_format), (&PyUnicode_Type), 1, "writer_format", 1))) __PYX_ERR(0, 999, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_file_label), (&PyUnicode_Type), 1, "file_label", 1))) __PYX_ERR(0, 999, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_table_name), (&PyUnicode_Type), 1, "table_name", 1))) __PYX_ERR(0, 1001, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_variable_value_labels), (&PyDict_Type), 1, "variable_value_labels", 1))) __PYX_ERR(0, 1003, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_missing_ranges), (&PyDict_Type), 1, "missing_ranges", 1))) __PYX_ERR(0, 1003, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_variable_display_width), (&PyDict_Type), 1, "variable_display_width", 1))) __PYX_ERR(0, 1003, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_variable_measure), (&PyDict_Type), 1, "variable_measure", 1))) __PYX_ERR(0, 1004, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_missing_user_values), (&PyDict_Type), 1, "missing_user_values", 1))) __PYX_ERR(0, 1005, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_variable_format), (&PyDict_Type), 1, "variable_format", 1))) __PYX_ERR(0, 1006, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_variable_alignment), (&PyDict_Type), 1, "variable_alignment", 1))) __PYX_ERR(0, 1007, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_variable_informat), (&PyDict_Type), 1, "variable_informat", 1))) __PYX_ERR(0, 1008, __pyx_L1_error) + __pyx_r = __pyx_pf_10pyreadstat_16_readstat_writer_writer_entry_point(__pyx_self, __pyx_v_df, __pyx_v_dst_path, __pyx_v_writer_format, __pyx_v_file_label, __pyx_v_version, __pyx_v_table_name, __pyx_v_column_labels, __pyx_v_compress, __pyx_v_row_compress, __pyx_v_note, __pyx_v_variable_value_labels, __pyx_v_missing_ranges, __pyx_v_variable_display_width, __pyx_v_variable_measure, __pyx_v_missing_user_values, __pyx_v_variable_format, __pyx_v_variable_alignment, __pyx_v_variable_informat); + + /* "pyreadstat/_readstat_writer.pyx":999 * return 0 * * def writer_entry_point(df, dst_path, str writer_format=None, str file_label="", # <<<<<<<<<<<<<< @@ -17674,7 +17785,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_10pyreadstat_16_readstat_writer_writer_entry_point(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_df, PyObject *__pyx_v_dst_path, PyObject *__pyx_v_writer_format, PyObject *__pyx_v_file_label, int __pyx_v_version, PyObject *__pyx_v_table_name, PyObject *__pyx_v_column_labels, PyObject *__pyx_v_compress, PyObject *__pyx_v_row_compress, PyObject *__pyx_v_note, PyObject *__pyx_v_variable_value_labels, PyObject *__pyx_v_missing_ranges, PyObject *__pyx_v_variable_display_width, PyObject *__pyx_v_variable_measure, PyObject *__pyx_v_missing_user_values, PyObject *__pyx_v_variable_format, PyObject *__pyx_v_variable_alignment) { +static PyObject *__pyx_pf_10pyreadstat_16_readstat_writer_writer_entry_point(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_df, PyObject *__pyx_v_dst_path, PyObject *__pyx_v_writer_format, PyObject *__pyx_v_file_label, int __pyx_v_version, PyObject *__pyx_v_table_name, PyObject *__pyx_v_column_labels, PyObject *__pyx_v_compress, PyObject *__pyx_v_row_compress, PyObject *__pyx_v_note, PyObject *__pyx_v_variable_value_labels, PyObject *__pyx_v_missing_ranges, PyObject *__pyx_v_variable_display_width, PyObject *__pyx_v_variable_measure, PyObject *__pyx_v_missing_user_values, PyObject *__pyx_v_variable_format, PyObject *__pyx_v_variable_alignment, PyObject *__pyx_v_variable_informat) { int __pyx_v_file_format_version; int __pyx_v_row_compression; __pyx_t_10pyreadstat_16_readstat_writer_dst_file_format __pyx_v_writer_file_format; @@ -17693,7 +17804,7 @@ static PyObject *__pyx_pf_10pyreadstat_16_readstat_writer_writer_entry_point(CYT __Pyx_RefNannySetupContext("writer_entry_point", 0); __Pyx_INCREF(__pyx_v_note); - /* "pyreadstat/_readstat_writer.pyx":1006 + /* "pyreadstat/_readstat_writer.pyx":1012 * * * cdef int file_format_version = 0 # <<<<<<<<<<<<<< @@ -17702,7 +17813,7 @@ static PyObject *__pyx_pf_10pyreadstat_16_readstat_writer_writer_entry_point(CYT */ __pyx_v_file_format_version = 0; - /* "pyreadstat/_readstat_writer.pyx":1007 + /* "pyreadstat/_readstat_writer.pyx":1013 * * cdef int file_format_version = 0 * cdef bint row_compression = 0 # <<<<<<<<<<<<<< @@ -17711,17 +17822,17 @@ static PyObject *__pyx_pf_10pyreadstat_16_readstat_writer_writer_entry_point(CYT */ __pyx_v_row_compression = 0; - /* "pyreadstat/_readstat_writer.pyx":1011 + /* "pyreadstat/_readstat_writer.pyx":1017 * cdef dst_file_format writer_file_format * * if writer_format == "sav": # <<<<<<<<<<<<<< * writer_file_format = FILE_FORMAT_SAV * file_format_version = 2 */ - __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_writer_format, __pyx_mstate_global->__pyx_n_u_sav, Py_EQ)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 1011, __pyx_L1_error) + __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_writer_format, __pyx_mstate_global->__pyx_n_u_sav, Py_EQ)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 1017, __pyx_L1_error) if (__pyx_t_1) { - /* "pyreadstat/_readstat_writer.pyx":1012 + /* "pyreadstat/_readstat_writer.pyx":1018 * * if writer_format == "sav": * writer_file_format = FILE_FORMAT_SAV # <<<<<<<<<<<<<< @@ -17730,7 +17841,7 @@ static PyObject *__pyx_pf_10pyreadstat_16_readstat_writer_writer_entry_point(CYT */ __pyx_v_writer_file_format = __pyx_e_10pyreadstat_16_readstat_writer_FILE_FORMAT_SAV; - /* "pyreadstat/_readstat_writer.pyx":1013 + /* "pyreadstat/_readstat_writer.pyx":1019 * if writer_format == "sav": * writer_file_format = FILE_FORMAT_SAV * file_format_version = 2 # <<<<<<<<<<<<<< @@ -17739,25 +17850,25 @@ static PyObject *__pyx_pf_10pyreadstat_16_readstat_writer_writer_entry_point(CYT */ __pyx_v_file_format_version = 2; - /* "pyreadstat/_readstat_writer.pyx":1014 + /* "pyreadstat/_readstat_writer.pyx":1020 * writer_file_format = FILE_FORMAT_SAV * file_format_version = 2 * if compress and row_compress: # <<<<<<<<<<<<<< * raise PyreadstatError("compress and row_compress cannot be both True") * if compress: */ - __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_compress); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 1014, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_compress); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 1020, __pyx_L1_error) if (__pyx_t_2) { } else { __pyx_t_1 = __pyx_t_2; goto __pyx_L5_bool_binop_done; } - __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_row_compress); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 1014, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_row_compress); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 1020, __pyx_L1_error) __pyx_t_1 = __pyx_t_2; __pyx_L5_bool_binop_done:; if (unlikely(__pyx_t_1)) { - /* "pyreadstat/_readstat_writer.pyx":1015 + /* "pyreadstat/_readstat_writer.pyx":1021 * file_format_version = 2 * if compress and row_compress: * raise PyreadstatError("compress and row_compress cannot be both True") # <<<<<<<<<<<<<< @@ -17765,7 +17876,7 @@ static PyObject *__pyx_pf_10pyreadstat_16_readstat_writer_writer_entry_point(CYT * file_format_version = 3 */ __pyx_t_4 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1015, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1021, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_6 = 1; #if CYTHON_UNPACK_METHODS @@ -17784,14 +17895,14 @@ static PyObject *__pyx_pf_10pyreadstat_16_readstat_writer_writer_entry_point(CYT __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_5, __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1015, __pyx_L1_error) + if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1021, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); } __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __PYX_ERR(0, 1015, __pyx_L1_error) + __PYX_ERR(0, 1021, __pyx_L1_error) - /* "pyreadstat/_readstat_writer.pyx":1014 + /* "pyreadstat/_readstat_writer.pyx":1020 * writer_file_format = FILE_FORMAT_SAV * file_format_version = 2 * if compress and row_compress: # <<<<<<<<<<<<<< @@ -17800,17 +17911,17 @@ static PyObject *__pyx_pf_10pyreadstat_16_readstat_writer_writer_entry_point(CYT */ } - /* "pyreadstat/_readstat_writer.pyx":1016 + /* "pyreadstat/_readstat_writer.pyx":1022 * if compress and row_compress: * raise PyreadstatError("compress and row_compress cannot be both True") * if compress: # <<<<<<<<<<<<<< * file_format_version = 3 * if row_compress: */ - __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_compress); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 1016, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_compress); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 1022, __pyx_L1_error) if (__pyx_t_1) { - /* "pyreadstat/_readstat_writer.pyx":1017 + /* "pyreadstat/_readstat_writer.pyx":1023 * raise PyreadstatError("compress and row_compress cannot be both True") * if compress: * file_format_version = 3 # <<<<<<<<<<<<<< @@ -17819,7 +17930,7 @@ static PyObject *__pyx_pf_10pyreadstat_16_readstat_writer_writer_entry_point(CYT */ __pyx_v_file_format_version = 3; - /* "pyreadstat/_readstat_writer.pyx":1016 + /* "pyreadstat/_readstat_writer.pyx":1022 * if compress and row_compress: * raise PyreadstatError("compress and row_compress cannot be both True") * if compress: # <<<<<<<<<<<<<< @@ -17828,17 +17939,17 @@ static PyObject *__pyx_pf_10pyreadstat_16_readstat_writer_writer_entry_point(CYT */ } - /* "pyreadstat/_readstat_writer.pyx":1018 + /* "pyreadstat/_readstat_writer.pyx":1024 * if compress: * file_format_version = 3 * if row_compress: # <<<<<<<<<<<<<< * row_compression = 1 * elif writer_format == "dta": */ - __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_row_compress); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 1018, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_row_compress); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 1024, __pyx_L1_error) if (__pyx_t_1) { - /* "pyreadstat/_readstat_writer.pyx":1019 + /* "pyreadstat/_readstat_writer.pyx":1025 * file_format_version = 3 * if row_compress: * row_compression = 1 # <<<<<<<<<<<<<< @@ -17847,7 +17958,7 @@ static PyObject *__pyx_pf_10pyreadstat_16_readstat_writer_writer_entry_point(CYT */ __pyx_v_row_compression = 1; - /* "pyreadstat/_readstat_writer.pyx":1018 + /* "pyreadstat/_readstat_writer.pyx":1024 * if compress: * file_format_version = 3 * if row_compress: # <<<<<<<<<<<<<< @@ -17856,7 +17967,7 @@ static PyObject *__pyx_pf_10pyreadstat_16_readstat_writer_writer_entry_point(CYT */ } - /* "pyreadstat/_readstat_writer.pyx":1011 + /* "pyreadstat/_readstat_writer.pyx":1017 * cdef dst_file_format writer_file_format * * if writer_format == "sav": # <<<<<<<<<<<<<< @@ -17866,17 +17977,17 @@ static PyObject *__pyx_pf_10pyreadstat_16_readstat_writer_writer_entry_point(CYT goto __pyx_L3; } - /* "pyreadstat/_readstat_writer.pyx":1020 + /* "pyreadstat/_readstat_writer.pyx":1026 * if row_compress: * row_compression = 1 * elif writer_format == "dta": # <<<<<<<<<<<<<< * writer_file_format = FILE_FORMAT_DTA * if version == 15: */ - __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_writer_format, __pyx_mstate_global->__pyx_n_u_dta, Py_EQ)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 1020, __pyx_L1_error) + __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_writer_format, __pyx_mstate_global->__pyx_n_u_dta, Py_EQ)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 1026, __pyx_L1_error) if (__pyx_t_1) { - /* "pyreadstat/_readstat_writer.pyx":1021 + /* "pyreadstat/_readstat_writer.pyx":1027 * row_compression = 1 * elif writer_format == "dta": * writer_file_format = FILE_FORMAT_DTA # <<<<<<<<<<<<<< @@ -17885,7 +17996,7 @@ static PyObject *__pyx_pf_10pyreadstat_16_readstat_writer_writer_entry_point(CYT */ __pyx_v_writer_file_format = __pyx_e_10pyreadstat_16_readstat_writer_FILE_FORMAT_DTA; - /* "pyreadstat/_readstat_writer.pyx":1022 + /* "pyreadstat/_readstat_writer.pyx":1028 * elif writer_format == "dta": * writer_file_format = FILE_FORMAT_DTA * if version == 15: # <<<<<<<<<<<<<< @@ -17895,7 +18006,7 @@ static PyObject *__pyx_pf_10pyreadstat_16_readstat_writer_writer_entry_point(CYT switch (__pyx_v_version) { case 15: - /* "pyreadstat/_readstat_writer.pyx":1023 + /* "pyreadstat/_readstat_writer.pyx":1029 * writer_file_format = FILE_FORMAT_DTA * if version == 15: * file_format_version = 119 # <<<<<<<<<<<<<< @@ -17904,7 +18015,7 @@ static PyObject *__pyx_pf_10pyreadstat_16_readstat_writer_writer_entry_point(CYT */ __pyx_v_file_format_version = 0x77; - /* "pyreadstat/_readstat_writer.pyx":1022 + /* "pyreadstat/_readstat_writer.pyx":1028 * elif writer_format == "dta": * writer_file_format = FILE_FORMAT_DTA * if version == 15: # <<<<<<<<<<<<<< @@ -17914,7 +18025,7 @@ static PyObject *__pyx_pf_10pyreadstat_16_readstat_writer_writer_entry_point(CYT break; case 14: - /* "pyreadstat/_readstat_writer.pyx":1025 + /* "pyreadstat/_readstat_writer.pyx":1031 * file_format_version = 119 * elif version == 14: * file_format_version = 118 # <<<<<<<<<<<<<< @@ -17923,7 +18034,7 @@ static PyObject *__pyx_pf_10pyreadstat_16_readstat_writer_writer_entry_point(CYT */ __pyx_v_file_format_version = 0x76; - /* "pyreadstat/_readstat_writer.pyx":1024 + /* "pyreadstat/_readstat_writer.pyx":1030 * if version == 15: * file_format_version = 119 * elif version == 14: # <<<<<<<<<<<<<< @@ -17933,7 +18044,7 @@ static PyObject *__pyx_pf_10pyreadstat_16_readstat_writer_writer_entry_point(CYT break; case 13: - /* "pyreadstat/_readstat_writer.pyx":1027 + /* "pyreadstat/_readstat_writer.pyx":1033 * file_format_version = 118 * elif version == 13: * file_format_version = 117 # <<<<<<<<<<<<<< @@ -17942,7 +18053,7 @@ static PyObject *__pyx_pf_10pyreadstat_16_readstat_writer_writer_entry_point(CYT */ __pyx_v_file_format_version = 0x75; - /* "pyreadstat/_readstat_writer.pyx":1026 + /* "pyreadstat/_readstat_writer.pyx":1032 * elif version == 14: * file_format_version = 118 * elif version == 13: # <<<<<<<<<<<<<< @@ -17952,7 +18063,7 @@ static PyObject *__pyx_pf_10pyreadstat_16_readstat_writer_writer_entry_point(CYT break; case 12: - /* "pyreadstat/_readstat_writer.pyx":1029 + /* "pyreadstat/_readstat_writer.pyx":1035 * file_format_version = 117 * elif version == 12: * file_format_version = 115 # <<<<<<<<<<<<<< @@ -17961,7 +18072,7 @@ static PyObject *__pyx_pf_10pyreadstat_16_readstat_writer_writer_entry_point(CYT */ __pyx_v_file_format_version = 0x73; - /* "pyreadstat/_readstat_writer.pyx":1028 + /* "pyreadstat/_readstat_writer.pyx":1034 * elif version == 13: * file_format_version = 117 * elif version == 12: # <<<<<<<<<<<<<< @@ -17971,7 +18082,7 @@ static PyObject *__pyx_pf_10pyreadstat_16_readstat_writer_writer_entry_point(CYT break; case 10: - /* "pyreadstat/_readstat_writer.pyx":1030 + /* "pyreadstat/_readstat_writer.pyx":1036 * elif version == 12: * file_format_version = 115 * elif version in {10, 11}: # <<<<<<<<<<<<<< @@ -17980,7 +18091,7 @@ static PyObject *__pyx_pf_10pyreadstat_16_readstat_writer_writer_entry_point(CYT */ case 11: - /* "pyreadstat/_readstat_writer.pyx":1031 + /* "pyreadstat/_readstat_writer.pyx":1037 * file_format_version = 115 * elif version in {10, 11}: * file_format_version = 114 # <<<<<<<<<<<<<< @@ -17989,7 +18100,7 @@ static PyObject *__pyx_pf_10pyreadstat_16_readstat_writer_writer_entry_point(CYT */ __pyx_v_file_format_version = 0x72; - /* "pyreadstat/_readstat_writer.pyx":1030 + /* "pyreadstat/_readstat_writer.pyx":1036 * elif version == 12: * file_format_version = 115 * elif version in {10, 11}: # <<<<<<<<<<<<<< @@ -17999,7 +18110,7 @@ static PyObject *__pyx_pf_10pyreadstat_16_readstat_writer_writer_entry_point(CYT break; case 8: - /* "pyreadstat/_readstat_writer.pyx":1032 + /* "pyreadstat/_readstat_writer.pyx":1038 * elif version in {10, 11}: * file_format_version = 114 * elif version in {8, 9}: # <<<<<<<<<<<<<< @@ -18008,7 +18119,7 @@ static PyObject *__pyx_pf_10pyreadstat_16_readstat_writer_writer_entry_point(CYT */ case 9: - /* "pyreadstat/_readstat_writer.pyx":1033 + /* "pyreadstat/_readstat_writer.pyx":1039 * file_format_version = 114 * elif version in {8, 9}: * file_format_version = 113 # <<<<<<<<<<<<<< @@ -18017,7 +18128,7 @@ static PyObject *__pyx_pf_10pyreadstat_16_readstat_writer_writer_entry_point(CYT */ __pyx_v_file_format_version = 0x71; - /* "pyreadstat/_readstat_writer.pyx":1032 + /* "pyreadstat/_readstat_writer.pyx":1038 * elif version in {10, 11}: * file_format_version = 114 * elif version in {8, 9}: # <<<<<<<<<<<<<< @@ -18027,7 +18138,7 @@ static PyObject *__pyx_pf_10pyreadstat_16_readstat_writer_writer_entry_point(CYT break; default: - /* "pyreadstat/_readstat_writer.pyx":1035 + /* "pyreadstat/_readstat_writer.pyx":1041 * file_format_version = 113 * else: * raise PyreadstatError("Version not supported") # <<<<<<<<<<<<<< @@ -18035,7 +18146,7 @@ static PyObject *__pyx_pf_10pyreadstat_16_readstat_writer_writer_entry_point(CYT * elif writer_format == "xport": */ __pyx_t_5 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1035, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1041, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_6 = 1; #if CYTHON_UNPACK_METHODS @@ -18054,16 +18165,16 @@ static PyObject *__pyx_pf_10pyreadstat_16_readstat_writer_writer_entry_point(CYT __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1035, __pyx_L1_error) + if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1041, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); } __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __PYX_ERR(0, 1035, __pyx_L1_error) + __PYX_ERR(0, 1041, __pyx_L1_error) break; } - /* "pyreadstat/_readstat_writer.pyx":1036 + /* "pyreadstat/_readstat_writer.pyx":1042 * else: * raise PyreadstatError("Version not supported") * note = "" # <<<<<<<<<<<<<< @@ -18073,7 +18184,7 @@ static PyObject *__pyx_pf_10pyreadstat_16_readstat_writer_writer_entry_point(CYT __Pyx_INCREF(__pyx_mstate_global->__pyx_kp_u__4); __Pyx_DECREF_SET(__pyx_v_note, __pyx_mstate_global->__pyx_kp_u__4); - /* "pyreadstat/_readstat_writer.pyx":1020 + /* "pyreadstat/_readstat_writer.pyx":1026 * if row_compress: * row_compression = 1 * elif writer_format == "dta": # <<<<<<<<<<<<<< @@ -18083,17 +18194,17 @@ static PyObject *__pyx_pf_10pyreadstat_16_readstat_writer_writer_entry_point(CYT goto __pyx_L3; } - /* "pyreadstat/_readstat_writer.pyx":1037 + /* "pyreadstat/_readstat_writer.pyx":1043 * raise PyreadstatError("Version not supported") * note = "" * elif writer_format == "xport": # <<<<<<<<<<<<<< * writer_file_format = FILE_FORMAT_XPORT * file_format_version = version */ - __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_writer_format, __pyx_mstate_global->__pyx_n_u_xport, Py_EQ)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 1037, __pyx_L1_error) + __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_writer_format, __pyx_mstate_global->__pyx_n_u_xport, Py_EQ)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 1043, __pyx_L1_error) if (__pyx_t_1) { - /* "pyreadstat/_readstat_writer.pyx":1038 + /* "pyreadstat/_readstat_writer.pyx":1044 * note = "" * elif writer_format == "xport": * writer_file_format = FILE_FORMAT_XPORT # <<<<<<<<<<<<<< @@ -18102,7 +18213,7 @@ static PyObject *__pyx_pf_10pyreadstat_16_readstat_writer_writer_entry_point(CYT */ __pyx_v_writer_file_format = __pyx_e_10pyreadstat_16_readstat_writer_FILE_FORMAT_XPORT; - /* "pyreadstat/_readstat_writer.pyx":1039 + /* "pyreadstat/_readstat_writer.pyx":1045 * elif writer_format == "xport": * writer_file_format = FILE_FORMAT_XPORT * file_format_version = version # <<<<<<<<<<<<<< @@ -18111,7 +18222,7 @@ static PyObject *__pyx_pf_10pyreadstat_16_readstat_writer_writer_entry_point(CYT */ __pyx_v_file_format_version = __pyx_v_version; - /* "pyreadstat/_readstat_writer.pyx":1037 + /* "pyreadstat/_readstat_writer.pyx":1043 * raise PyreadstatError("Version not supported") * note = "" * elif writer_format == "xport": # <<<<<<<<<<<<<< @@ -18121,17 +18232,17 @@ static PyObject *__pyx_pf_10pyreadstat_16_readstat_writer_writer_entry_point(CYT goto __pyx_L3; } - /* "pyreadstat/_readstat_writer.pyx":1040 + /* "pyreadstat/_readstat_writer.pyx":1046 * writer_file_format = FILE_FORMAT_XPORT * file_format_version = version * elif writer_format == "por": # <<<<<<<<<<<<<< * writer_file_format = FILE_FORMAT_POR * else: */ - __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_writer_format, __pyx_mstate_global->__pyx_n_u_por, Py_EQ)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 1040, __pyx_L1_error) + __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_writer_format, __pyx_mstate_global->__pyx_n_u_por, Py_EQ)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 1046, __pyx_L1_error) if (likely(__pyx_t_1)) { - /* "pyreadstat/_readstat_writer.pyx":1041 + /* "pyreadstat/_readstat_writer.pyx":1047 * file_format_version = version * elif writer_format == "por": * writer_file_format = FILE_FORMAT_POR # <<<<<<<<<<<<<< @@ -18140,7 +18251,7 @@ static PyObject *__pyx_pf_10pyreadstat_16_readstat_writer_writer_entry_point(CYT */ __pyx_v_writer_file_format = __pyx_e_10pyreadstat_16_readstat_writer_FILE_FORMAT_POR; - /* "pyreadstat/_readstat_writer.pyx":1040 + /* "pyreadstat/_readstat_writer.pyx":1046 * writer_file_format = FILE_FORMAT_XPORT * file_format_version = version * elif writer_format == "por": # <<<<<<<<<<<<<< @@ -18150,7 +18261,7 @@ static PyObject *__pyx_pf_10pyreadstat_16_readstat_writer_writer_entry_point(CYT goto __pyx_L3; } - /* "pyreadstat/_readstat_writer.pyx":1043 + /* "pyreadstat/_readstat_writer.pyx":1049 * writer_file_format = FILE_FORMAT_POR * else: * raise PyreadstatError("wrong writer format") # <<<<<<<<<<<<<< @@ -18159,7 +18270,7 @@ static PyObject *__pyx_pf_10pyreadstat_16_readstat_writer_writer_entry_point(CYT */ /*else*/ { __pyx_t_4 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1043, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_PyreadstatError); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1049, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_6 = 1; #if CYTHON_UNPACK_METHODS @@ -18178,25 +18289,25 @@ static PyObject *__pyx_pf_10pyreadstat_16_readstat_writer_writer_entry_point(CYT __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_5, __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1043, __pyx_L1_error) + if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1049, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); } __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __PYX_ERR(0, 1043, __pyx_L1_error) + __PYX_ERR(0, 1049, __pyx_L1_error) } __pyx_L3:; - /* "pyreadstat/_readstat_writer.pyx":1045 + /* "pyreadstat/_readstat_writer.pyx":1051 * raise PyreadstatError("wrong writer format") * * run_write(df, dst_path, writer_file_format, file_label, column_labels, # <<<<<<<<<<<<<< * file_format_version, note, table_name, variable_value_labels, missing_ranges, missing_user_values, - * variable_alignment, variable_display_width, variable_measure, variable_format, row_compression) + * variable_alignment, variable_display_width, variable_measure, variable_format, variable_informat, row_compression) */ - __pyx_t_7 = __pyx_f_10pyreadstat_16_readstat_writer_run_write(__pyx_v_df, __pyx_v_dst_path, __pyx_v_writer_file_format, __pyx_v_file_label, __pyx_v_column_labels, __pyx_v_file_format_version, __pyx_v_note, __pyx_v_table_name, __pyx_v_variable_value_labels, __pyx_v_missing_ranges, __pyx_v_missing_user_values, __pyx_v_variable_alignment, __pyx_v_variable_display_width, __pyx_v_variable_measure, __pyx_v_variable_format, __pyx_v_row_compression); if (unlikely(__pyx_t_7 == ((int)-1) && PyErr_Occurred())) __PYX_ERR(0, 1045, __pyx_L1_error) + __pyx_t_7 = __pyx_f_10pyreadstat_16_readstat_writer_run_write(__pyx_v_df, __pyx_v_dst_path, __pyx_v_writer_file_format, __pyx_v_file_label, __pyx_v_column_labels, __pyx_v_file_format_version, __pyx_v_note, __pyx_v_table_name, __pyx_v_variable_value_labels, __pyx_v_missing_ranges, __pyx_v_missing_user_values, __pyx_v_variable_alignment, __pyx_v_variable_display_width, __pyx_v_variable_measure, __pyx_v_variable_format, __pyx_v_variable_informat, __pyx_v_row_compression); if (unlikely(__pyx_t_7 == ((int)-1) && PyErr_Occurred())) __PYX_ERR(0, 1051, __pyx_L1_error) - /* "pyreadstat/_readstat_writer.pyx":994 + /* "pyreadstat/_readstat_writer.pyx":999 * return 0 * * def writer_entry_point(df, dst_path, str writer_format=None, str file_label="", # <<<<<<<<<<<<<< @@ -18282,7 +18393,7 @@ static int __Pyx_modinit_function_export_code(__pyx_mstatetype *__pyx_mstate) { #if !CYTHON_ASSUME_SAFE_MACROS if (unlikely(!__pyx_export_signature)) __PYX_ERR(0, 1, __pyx_L1_error) #endif - const char * __pyx_export_name = __pyx_export_signature + 1032; + const char * __pyx_export_name = __pyx_export_signature + 1044; void (*const __pyx_export_pointers[])(void) = {(void (*)(void))&__pyx_f_10pyreadstat_16_readstat_writer_filepath_to_bytes, (void (*)(void))&__pyx_f_10pyreadstat_16_readstat_writer_get_narwhals_column_types, (void (*)(void))&__pyx_f_10pyreadstat_16_readstat_writer_vectorized_convert_datetime_to_number, (void (*)(void))&__pyx_f_10pyreadstat_16_readstat_writer_vectorized_convert_date_to_number, (void (*)(void))&__pyx_f_10pyreadstat_16_readstat_writer_vectorized_convert_time_to_number, (void (*)(void))&__pyx_f_10pyreadstat_16_readstat_writer_write_bytes, (void (*)(void))&__pyx_f_10pyreadstat_16_readstat_writer_get_datetimelike_format_for_readstat, (void (*)(void))&__pyx_f_10pyreadstat_16_readstat_writer_convert_datetimelike_to_number, (void (*)(void))&__pyx_f_10pyreadstat_16_readstat_writer_open_file, (void (*)(void))&__pyx_f_10pyreadstat_16_readstat_writer_check_series_all_same_types, (void (*)(void))&__pyx_f_10pyreadstat_16_readstat_writer_run_write, (void (*)(void))&__pyx_f_10pyreadstat_16_readstat_writer_get_narwhals_str_series_max_length, (void (*)(void))&__pyx_f_10pyreadstat_16_readstat_writer_close_file, (void (*)(void))&__pyx_f_10pyreadstat_16_readstat_writer_initial_checks, (void (*)(void)) NULL}; void (*const *__pyx_export_pointer)(void) = __pyx_export_pointers; const char *__pyx_export_current_signature = __pyx_export_signature; @@ -19442,34 +19553,34 @@ __Pyx_RefNannySetupContext("PyInit__readstat_writer", 0); */ __pyx_v_10pyreadstat_16_readstat_writer_dta_117_max_width = 0x7FD; - /* "pyreadstat/_readstat_writer.pyx":995 + /* "pyreadstat/_readstat_writer.pyx":1000 * * def writer_entry_point(df, dst_path, str writer_format=None, str file_label="", * int version=0, # <<<<<<<<<<<<<< * str table_name=None, * object column_labels=None, compress=False, row_compress=False, object note=None, */ - __pyx_t_8 = __Pyx_PyLong_From_int(((int)0)); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 995, __pyx_L1_error) + __pyx_t_8 = __Pyx_PyLong_From_int(((int)0)); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1000, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); - /* "pyreadstat/_readstat_writer.pyx":994 + /* "pyreadstat/_readstat_writer.pyx":999 * return 0 * * def writer_entry_point(df, dst_path, str writer_format=None, str file_label="", # <<<<<<<<<<<<<< * int version=0, * str table_name=None, */ - __pyx_t_9 = PyTuple_Pack(15, Py_None, ((PyObject*)__pyx_mstate_global->__pyx_kp_u__4), __pyx_t_8, Py_None, Py_None, ((PyObject*)Py_False), ((PyObject*)Py_False), Py_None, Py_None, Py_None, Py_None, Py_None, Py_None, Py_None, Py_None); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 994, __pyx_L1_error) + __pyx_t_9 = PyTuple_Pack(16, Py_None, ((PyObject*)__pyx_mstate_global->__pyx_kp_u__4), __pyx_t_8, Py_None, Py_None, ((PyObject*)Py_False), ((PyObject*)Py_False), Py_None, Py_None, Py_None, Py_None, Py_None, Py_None, Py_None, Py_None, Py_None); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 999, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - __pyx_t_8 = __Pyx_CyFunction_New(&__pyx_mdef_10pyreadstat_16_readstat_writer_1writer_entry_point, 0, __pyx_mstate_global->__pyx_n_u_writer_entry_point, NULL, __pyx_mstate_global->__pyx_n_u_pyreadstat__readstat_writer, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[0])); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 994, __pyx_L1_error) + __pyx_t_8 = __Pyx_CyFunction_New(&__pyx_mdef_10pyreadstat_16_readstat_writer_1writer_entry_point, 0, __pyx_mstate_global->__pyx_n_u_writer_entry_point, NULL, __pyx_mstate_global->__pyx_n_u_pyreadstat__readstat_writer, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[0])); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 999, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_8); #endif __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_8, __pyx_t_9); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_writer_entry_point, __pyx_t_8) < (0)) __PYX_ERR(0, 994, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_writer_entry_point, __pyx_t_8) < (0)) __PYX_ERR(0, 999, __pyx_L1_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; /* "pyreadstat/_readstat_writer.pyx":1 @@ -19527,7 +19638,7 @@ __Pyx_RefNannySetupContext("PyInit__readstat_writer", 0); static int __Pyx_InitCachedBuiltins(__pyx_mstatetype *__pyx_mstate) { CYTHON_UNUSED_VAR(__pyx_mstate); - __pyx_builtin_zip = __Pyx_GetBuiltinName(__pyx_mstate->__pyx_n_u_zip); if (!__pyx_builtin_zip) __PYX_ERR(0, 734, __pyx_L1_error) + __pyx_builtin_zip = __Pyx_GetBuiltinName(__pyx_mstate->__pyx_n_u_zip); if (!__pyx_builtin_zip) __PYX_ERR(0, 735, __pyx_L1_error) /* Cached unbound methods */ __pyx_mstate->__pyx_umethod_PyDict_Type_get.type = (PyObject*)&PyDict_Type; @@ -19602,31 +19713,31 @@ static int __Pyx_InitCachedConstants(__pyx_mstatetype *__pyx_mstate) { static int __Pyx_InitConstants(__pyx_mstatetype *__pyx_mstate) { CYTHON_UNUSED_VAR(__pyx_mstate); { - const struct { const unsigned int length: 11; } index[] = {{29},{21},{50},{4},{179},{82},{29},{32},{21},{1},{1},{0},{1},{1},{8},{23},{48},{66},{42},{45},{44},{59},{16},{8},{149},{15},{13},{8},{13},{61},{21},{70},{78},{96},{54},{66},{56},{62},{49},{68},{57},{93},{54},{29},{19},{55},{51},{12},{16},{15},{85},{39},{62},{11},{32},{27},{31},{19},{29},{16},{13},{14},{19},{76},{23},{19},{5},{15},{57},{67},{37},{37},{37},{19},{1},{7},{11},{4},{8},{7},{4},{7},{7},{6},{5},{5},{5},{4},{6},{15},{20},{13},{6},{4},{7},{6},{6},{6},{5},{18},{4},{3},{6},{17},{18},{5},{13},{7},{7},{8},{1},{4},{8},{10},{4},{2},{7},{10},{8},{3},{5},{10},{6},{10},{19},{10},{6},{11},{8},{8},{8},{3},{14},{20},{21},{2},{14},{13},{5},{9},{9},{7},{5},{4},{5},{12},{9},{4},{4},{2},{8},{3},{14},{19},{10},{2},{4},{8},{18},{7},{4},{2},{2},{2},{3},{10},{5},{2},{7},{2},{4},{3},{3},{27},{12},{12},{16},{7},{5},{5},{12},{15},{3},{5},{12},{10},{6},{8},{15},{3},{10},{8},{4},{4},{9},{9},{8},{13},{6},{7},{5},{2},{3},{2},{6},{18},{22},{15},{16},{21},{7},{4},{8},{4},{12},{18},{18},{13},{1},{5},{3},{1370},{310},{306},{41}}; - #if (CYTHON_COMPRESS_STRINGS) == 2 /* compression: bz2 (2436 bytes) */ -const char* const cstring = "BZh91AY&SY\223\264k\203\000\001\342\377\377\346o\376\307v\367\375v\277-\377\320\277\377\377\361@@@@@\000@@\000@@@@\000@\000`\no\275\267\241\357^\014\340#\254\321M\000P\nL\314\2009\341)\251M\220\247\250M\223MG\243j'\246\240\365\032\0035\001\243OP\003\324dd\036\247\352\233S\3243F\223\312\014SI\243*~\247\224\311Ce?T\000\3204\000\000\320\000\000\000\000\000\002)\242yL\206\236\240\032L\000L\000\020\300\000LL\230M0\021\223\020\300\t\t\023D\324\321=H\375S\365C@\362\217Sj\006\200\000\000\000\000\000\000\r\003\200\001\240\320\320h\000\323 \320\310\032h\000\000\310\000\310\014\200\002D\200\215\010\230F\2044\022yF\2312\001\240\365\000\000\000\00044\r\rTj\300w5&r/n\321H\240\210s\024^\211\217\272\004\201Rr\211bc\223&M\017\374@I\240\342\326\360r`S\341\204r\241\010\271\336\035\014\035\250\242\350\271N\006\211a\357\363_\000\354\340\251\320>\211\364\375\374:\325aS\214\000\355+\367\317c\232\304q\341\271C\335p\006\314\035+\341$\006\350\222\314\nY\025\373\357\331\341m\311q?0\225\010\321\242l\206\211\243iR\272\357\227\013Y\262\334\177\227U\312\346\363\210y\304\313}O\255\310`\200\010\303E\370\005<\016LlO\362\2150\010\202R\221\250\210\302\220\004\004\002\266\001\214\0161\004\221\024\251t\253\273G;\342(:\332\t\216\211\343\001\037\005\353\357\316\267_e\352h\372\022\245]\244\272\355C7\214(\265\215r\214\345\266S\314\255\373\006Q\224\246jD\253\331ZI\317\005I\313)p~FLv/\221\244\234\313\326\262%\3133\224\356n\210\\\272Ny\226u\tK\253\022:\212\326_\207\225\367m\273\006\305\354\264Y\254Q\234jD\212\361\207IV\314\340\006k\244#0\256\017P\312\247HOU\232\347j\235\371@\352\023\303\336bt!\302\220\313\317\323\253\243\305ccM\006\330\306\370\340Ez\313\243 \021\327\305\336\006&\222H$@E\313\332\230\025\257\226p\371\331o\257Lcww{\215\265\204F(\nD:\002\254\251\222Z\002\353\202\330\017\004\0046\247\377\031e\037m\261\266\324\304\315\235\245zM\320\320\203S\315\030\207wu\351M\026\201b\265f\032\257\303^K9z\332:\234\351\346$\265T\326\257\257\026\2211\035\311\267\272\021/\344\352u\005\022\261\n\235{u*0\3015\370\310""\352\343\3546\373\304\204\206HI\222\022HgU\205\23565\026\303\373\322\032\363\203\255'\025)\327\257^\314\323\222\273>\213\357w\021\307\036\222\220`\273H\250\274\324\351Zw\213f\336\264M\t\203TFdM\232\240m\247K\234\376\214\031l\364:\353\314V\311\232\347\t\026\271\245?\316KP\254\340\030i\264\332+S:yF\323|V\265@\304$[\265\347\344F\314\315\257\013\253,h\203\225\nx\245\355G\224\t\365\034\"\246Y\347\276\217\250\n\2235\257*\204q\205\224\021\270\030f*R\220\013\230\321\375vA\227h\224\306\r\211\362\311\323\375\3101\374\332@U\017\244e\246\315w\323J\310\267\004n\027\330\271\034p\036\036\360\274\254AS}FB\" 4\261|6\320qUIk\356N\n\243\226\000Y\370)d<)\212\376\014\325\032\312\326X\231\352\313NIB\017(\310`6\332m#&\206\026\224{\355\035\236\3758\314\243\003To\310f@\241\207\265\241\276Io\277\305_\035\360\3559\010^Q\027G\211\220\317\200H!\024i\"\211x\307P7\275I;>\224\311Z\247\014\212\361=<\2241\267c4\322[\224|\370\300]\254\327\025e\0359\243\244\235[\247\221J\373\362\230j\346\032\206e\224\265\243\261J\233\242\211\371\341\317\312VW\313\016\376\031\340\254\336\346k8\033\034\335\030\273\234\24666AW\200f>\351j\331\320c\0104\021\376ZH\341)\252\032\355\3575\240\257\354\022\004t\205KSR\312F-\224\337VV\200\226\020}\270)\254\016\026\n\235\351o\346[B\000\252/\205\353\224`\345\031\362~\3233\311;\263b\376)E6\226\241;6\341\213\244\2673P`\022kPeb,\224\030\254\036\356\230\276~\316\362V\200\276\006\271\350\317#\010\332\234\264\320hkv5W\r;\247R\206\233F\302\016\007\311fdQih\013\264\206\316\341`\014I\325s*Ms\022\n\357]c\320\256B\226\n\264j\207\274\260\321\3168\226R\350\245\203D6&0\274A9A$\233\030\023=w\327\031be\356\3643\031\245\003I\205\030\241\222[\375\322*O\002e\323\032c\210\213\227\222\005\262D\362\335\005\034\364\266\364\2140\006\022eR\241\220\252\332h`7\272\261!\227yC\213%5\n\305n\254\3370\3674\316x\243\323D\214\261\204iz'M\004\212\252\025\345%X\224\020O\256l\273\205Z\367*\321\222U\\\2473\331dfrV\305\255\211\207\3372\030\205\373\360\226\211\022+\016\255\227}\316CHm\010\232I\242\2532\322\037\255\246\353\332N\305r\372\014\\Z0\310\306\273\357\350\024\363\323\2043\272R$\3216#\320\"r]\217\237\010+\347\327\351\260\336!\337\263\246\003\233\317\245N/\223 z\304\t\226}\340p\356\330E=!\315{\033\027\371M\005Y\250\320\365\344\343\324\340S\226\336\304\355\316*'\347\3724\337\351\337\033\315`\206\333\033hi\320\207\341.\230\363\032\256\305t\20537\224-\347u\303D\233\013\263\2037\203\355:s\323\257]\245RH\324W\024{}}<\207>^\246B\361\304\360\221R\210\353\220y\365\034^\336M\263\311\360\315i\345\325\227E\262D!\357\256=\032\320\247\342\002\372\244w\3718\362\300w\362\352Rhm\2661\252$\006\267\020\215\246\223M1\244\233\251\005,\034\003\006\020\251Ug-\302\017$\037}\210\323~ONh\3551\241\262\004\322\326\262\221+\304)\240\313\301\010\220\222\234\252f\363\215\326\361H2\310\317\2356\236\215\232\372\010mc\032v\202pm\367\373\355aj@i\017\266z\233wV\366\275V\035\303c,\364rb\212\322\250\263+'Y\321\314_1\244\323\\\225\325\254i2\223\336\220s\331\230=\231\263\014*E[w\021\222VR\"[\013\332\031\026jB\362\034\"%!B\361\221\314@\026$\224\226\332\327\331\247G\3265\271\366\276\226^C5\322c<\3452 \260\2026y\356B&\332\227D\274f}\223\331P@l\214\361\202\352\331\335VP\202\354,p\322\221\313\263\025\332\267\037\316[\251\300,\215{\320\203\215(o\322\324\300m\264\017\0222ZP\370E|\235\261\205\233WcG5\257k\335""\004\006\306\301\226\346\335W\001\240\266Y\334n\324'@\311\255\251 \220q\200\313\023\022\017\256\321)A3\226Y1\320\231\014(Jy\347DP\253ut\007w\021\000\034\271\255n\221\203\007;\031\272@\345!\312%\3116\275\346\213\315\024k\031\333|\363E\233m\266\027|\257\323m\373\216\243=\027R\315\301\316-\231\240\265\024\325\250\022`qg;[$\213\340\326Z2\255\263k#\006\370P\233\306\\\017\206DF\022&\304\275SW\301\206\222\242CU\352\305\236\032\202\230 k\215\003>\361#*^\266;\216\251\213 i65\351\204\216\236\336\231\347\315\334\225\216\316\035m\370\323U\257\000\237\303\177M\370.\026 \\C+\031\264R\202r\226o\305 +\261\004\211\226\314$6\006\313\311\021n\332h>\331\322=\321 \243\361Vs\326z\005\300 E\230\027\273\2522^\315\025X\213\362D\244\231w\350\017\266N\034\023\3415\261\345\343c\203\201\2667\023\\4\333\212\317#bG+h\352|\214|\242\033\233\333\347\273\223.\206\034\027r\340\333\337\275\274g\224C\350V\270\350\226D`x\377b|c\234D\237\006\006\314\303\311\330\0174\207\223\270\273\222)\302\204\204\235\243\\\030"; - PyObject *data = __Pyx_DecompressString(cstring, 2436, 2); + const struct { const unsigned int length: 11; } index[] = {{29},{21},{50},{4},{179},{82},{29},{32},{21},{1},{1},{0},{1},{1},{8},{23},{48},{66},{42},{45},{44},{59},{16},{8},{149},{15},{13},{8},{13},{61},{21},{70},{78},{96},{54},{66},{56},{62},{49},{68},{57},{93},{54},{29},{19},{55},{51},{12},{16},{15},{85},{39},{62},{11},{32},{27},{31},{19},{29},{16},{13},{14},{19},{76},{23},{19},{5},{15},{57},{67},{37},{37},{37},{19},{1},{7},{11},{4},{8},{7},{4},{7},{7},{6},{5},{5},{5},{4},{6},{15},{20},{13},{6},{4},{7},{6},{6},{6},{5},{18},{4},{3},{6},{17},{18},{5},{13},{7},{7},{8},{1},{4},{8},{10},{4},{2},{7},{10},{8},{3},{5},{10},{6},{10},{19},{10},{6},{11},{8},{8},{8},{3},{14},{20},{21},{2},{14},{13},{5},{9},{9},{7},{5},{4},{5},{12},{9},{4},{4},{2},{8},{3},{14},{19},{10},{2},{4},{8},{18},{7},{4},{2},{2},{2},{3},{10},{5},{2},{7},{2},{4},{3},{3},{27},{12},{12},{16},{7},{5},{5},{12},{15},{3},{5},{12},{10},{6},{8},{15},{3},{10},{8},{4},{4},{9},{9},{8},{13},{6},{7},{5},{2},{3},{2},{6},{18},{22},{15},{17},{16},{21},{7},{4},{8},{4},{12},{18},{18},{13},{1},{5},{3},{1382},{310},{312},{41}}; + #if (CYTHON_COMPRESS_STRINGS) == 2 /* compression: bz2 (2445 bytes) */ +const char* const cstring = "BZh91AY&SY\361\217\253\334\000\001\345\377\377\346o\376\307v\367\375v\277-\377\220\277\377\377\361@@@@@\000@@\000@@@@\000@\000`\no\275\266\272\254\341\030T)tS@T\212*\254\306@\256BSR\233AOTi\342i\250\364\315D\361A\3524\003\311\000\036\240\017P\3653Pg\252mOP=\032Oj\203D\320L\206T\361&D11\014\021\220\310d\320d\301\030\000\023F@\300Lp4\r\000\32044\000hd4\320\003M\000\320\000\031\014@\001\240\221\020A\002F\325?Q<\t\250\306\243@\320\006\214\215\000\000\000h\006\201\240p4\r\000\32044\000hd4\320\003M\000\320\000\031\014@\001\240\221 #B&\021\241\032S\324\323\3056S54h\006@\000\000\000\032\000i\246\3126a\035\311I\234\214_\031\351\023\220\016b|P1\366@\220*NP,\354qi\323\241\361\020\022h8\265\274\034\230\024\370a\034\250@\256w\243\241\203\265\024]\027P\334b\225\336\337Q\356\016\224\n\\\203\347\217\257\275\273\312\232\n\\4\001\323\236\376\0319\255E\026l\023\275\330\030\033Pt\217\2068F\347\222J\nH\326\376\373\373\234-\345\223;\365\t\020\215\032&\310h\2326\225+\256\371p\265\233-\307\371u\\\256o8\207\234L\267\325\372\374\252b5\017\3645\340M#\261\374\353\255\007g\236\350\322\326\273\014\261\257\204\255IX\356\322\345K\245]\3329\337\021A\326\320LtO\030\010\377\027\257\301:\335}\247\251\243\350J\2257![s\004\016y\311Np\245\352\202E\353\200l\327\001\206\030c H\021\267\032\3045\340\2519e.\017\301\223\035\213\344i'2\365\254\211r\314\345;\233\242\027.\223\236e\215\240\"U:\n\203Z\233\026\246\224e8\210\231\305A@\247a\213\032\024\201\266(\330\215t\240\0167\314\313A\334\233\256\367\246\325\323\325)^=K\322\230\274\311z\375\035\353\265\236\336f\376\257Bj\216\313\033\032h4\303\033\325\001\n\263n{ G\202\365w\032M\266\330\332\006\241\367\234\211\355\313\244SEo\367\35680\370y\370/\256\330\234\0145bD\"\256\252\021\335\003\013\202\360\017\004\0047\346\377\024H>\363hk\362\222\267/_\337\0360\247\013T\345\014C\333\306\364\245\202\231j\275v\032\267\302\344v\350\352kY\346M)\035\332\306\325\213\220k\222\221`\227\345\316\201~\346S(T\n\3245z\267\252\325\031\202^\010\210\253h\3536G\211\t3$$\311\t$3\253Coa\213+m""\373\221\227&\007]N*\324\261b\305\271f$v\257\337\202\261\337-\276\356 \365\344\336}\315\223\315\036\237g\257\307El\303\210fTZ\035\216\323\214t\327\257r\331z\276\005\351*Y\231\341\004B\317\004\243\374\327I\025\034\001v\233M\242s0\221\332\033M\350\245&\002\360D-\354\374]h\313\003K\272\353E\014Pr\241G|\275Q\344\002}G\010\251\226y\357\243\352\002\244\315k\312\241\034ae\004n\006\031\212\224\244\002\3464\177]\220e\332%1\241\261>Y:\177\311\006?\233H\n\241\364\214\264\331\256\372iY\026\340\215\302\373\027#\216\003\303\350\013\310\304\0257\324d\"\"\003K\027\303m\007\025T\226\276\334\340\2529a\002\317\310\245\220\360\246,9\031\245\032f\367Y\320\353c\243}(A\3122\030\r\266\233H\305\241\205\245\037\003Gg\301N3(\300\325\033\362\031\220(h\365ho\222[\357\350^\227\303\264\337\020\271D`\216\026C;\351 \204U\200\252\227\020\354\006\307\244\227G\262,\2511\272\304\371}\313(/\247&c\214S\250>\255\356\025k\005\242m\016\\G\2334c\222\013:\276z\021%D\203P\333\321\r5\002\325\013#k\244\262\002FB\253\r\262bKX\205\"d\0332\362o\236\301\263C\303<\340\2433gz\252\211\366\301\245C9n\226T\025\252 %\333\276Y\316\336\346\2731tyDma\004\"w>\007)9\247B\304\252\355\264]\252\227j\014\n(\245!\334\255\215qT\371\241\323\224\264\341\216o\016L\263-G\255\232i\003c\243\253\027\206\346ccd\025f\001\230\373\245\253gA\214 \320G\372i#\204\246\250S\203QJ\"]\204D\003\347\022$\217\225\221{\322\350\252\222\033\2003\255\253ugA\326U\260\251\336\226\376e\264 \n\242\370^\364\243\007(\317\223\371L\317$\356\315\213\370\245\024\332Z\204\354\333\206.\222\334\315A\200I\255A\225\210\262Pb\260|\2751|\375;\311Z\002\370\032\347\243<\030F\321\343\274'\"\255)1\324\355\353\211\337-\212\214\224\222\262\023\252\202x3#\2305\004\236D\363\001(m\252\345\323\341'\326B\263!\321Acl\214\301\213\017O-\272\252\221F\304\306$\335\030\374\241l\202s\000#\020N\220\205|\227\013\\\246\250\314d\310D\222\260\034\306&\316G\020A(u\032?\266\022\231F\202\212\r\262f\340|\013\rh\024\357A\014S8\036YB\342\031\3100\321r\314\366\020\023}\333anh\016\033\225\221'\317\226""\356\306\3354\356 \247\226\233\374\215\0249\316%\326\200\227d\207~\3355\331I\014^F>\234\264\320hkv5W\r;\247R\206\233F\302\016\007\270\314\310\242\322\320\027i\r\235\302\300\030\223\252\346T\232\346\222\n\373\277\367\202\350=\213\340R\363ld\321\275\017\211q\243\244u\227R\357R\320\334\206\304\306\027\210'($\223m\260&{\367\333\031be\356\3643\031\245\003I\205\030\241\222\\~a\025'\2012\351\2151\304E\313\311\002\331\"yo\202\216z[\212F\032\001\204\262\311T\304Vm40\033\327h\221\230'#\004\332\021D\223E\226e\244?}\246\353\342'b\271}&.-\030dc]\367\363\212y\351\302\031\335)\022h\233\021\347\0219.\307\317\204\025\363k\3570\336!\337\263\246\003\233\317\245N/\223 z\304\t\226}\340p\356\330E=\220\346\275\033\027\367Z\n\263Q\241\353\311\307\216\340T\235]z_lXO\233\265]\2366\310\330i\202\033lm\241\247R\037$\364\307\224\325v+\202S3yB\336w\\4I\260\27383x>\323\247=:\365\332U$\215EqG\257\257\247\201\317\227\245\220\274q<$T\242:\344\037\037Q\305\355\341\266y>\031\255>6\254\272-\222!\017}q\354kB\237\214\013\352\221\337\341\307\226\003\277\227R\226\206\333c\032\222 \032\336 \206\323I\246\230\322M\314@\242a\330\0300\205J\2539n\020xA\370\030\2157\344\364\346\216\323\032\033\010M-6\231'\010\205D\030\362!\022\222T\233\031<\243]\370d1\304\313muOF\315}\202\rX\306\234\340N\006\337\265\316s\026\010\006\220\374O\006\275S\265\256\353\0166\306Q\342\342/$\3432Q\223g8I\314W\001\244\323RLDs\324\330-faKD@\264D\260W\"\022O3\3050d^!n\244m'd[Q\005\007\210@D\226)R\020\001\206fp?\033\226\313\221\\\237)\226\345\305\225\020D\276rZtM\221\005\204\021\263\317r\0216\324\272%\3433\354\236\312\202\003dg\214\027V\316\352\262\204\027ac\206\224\216]\230\256\325\270\376\212\335N\001dk\336$\034iC~S\223\001\266\320;D2'\022\037d*U\316\326Wj\214h\346\245iZ\240\200ll\031Nm\351\250\r\005-\205F\351\"r\014\214\351)\004\207F\003\034\350$""\035\326\211\230(o\343\213\035J\020\302\204\247\236tE\n\267W@wq\020\001\313\232\326\351\0300s\261\233\244\016R\034\242\\\223k\351\264^h\243X\316\333\347\232,\333m\260\273\345~\233o\334u\031\350\272\226n\016ql\315\005\250\246\255@\223\003\2139\332\331$_\006\262\321\225cf\326F\r\360\2417\214\270\037\014\210\214$M\211z&\257\203\r%D\206\253\325\213<5\0050@\327\032\006}\342FT\275lw\035S\026@\322lk\317\t\035=\2553\317\233.J\307g\016\266\374i\252\327\200O\313\1775\370.\026 ]\020\306\346M\025\250\234\316O\206@\266\242\t(_ \221\2605.8\213\366\323A\366\316\221\353I\005\037\212\263\236\263\320.\001\002,\300\275\335Q\222\366h\320\241\210\3531!\035\033\323\207\327O\016Y\263\033Z(\376\261\223#m\341M|\330o\345\276&\316\2166\326\263\274h\343\020\334\230\260\371\264\321O6\\4e\361|\361c5M\335\330\276\2077q\317ZQ\225\343\375\251\366\"\t\272U\024\355\013\327\342/\025\275\177\370\273\222)\302\204\207\214}^\340"; + PyObject *data = __Pyx_DecompressString(cstring, 2445, 2); if (unlikely(!data)) __PYX_ERR(0, 1, __pyx_L1_error) const char* const bytes = __Pyx_PyBytes_AsString(data); #if !CYTHON_ASSUME_SAFE_MACROS if (likely(bytes)); else { Py_DECREF(data); __PYX_ERR(0, 1, __pyx_L1_error) } #endif - #elif (CYTHON_COMPRESS_STRINGS) != 0 /* compression: zlib (2241 bytes) */ -const char* const cstring = "x\332\305X\313n\034\307\025\035\003\016\300\300rb\347\001g\241\004\305 \002I\203\032i(\202`\204\004\201\236\200\221@\241\254W\220M\241\246\273f\246\302\356\252VU5\207\315E\220%\227\\r\251O\310\322\237\220\345,\271\324'\344\023rnUwO\317xHYB\014\023dw\275\356\243\356=\367\321|`\2622\327,\023C\2319\226\227\316\263\241d\316[\245\307\356\201)\263\224i\343\231)\244f#\225I\266\361\304hVj\365\272\224,\211\304Z\344\322\261Tz\231x\2312\245\231\237H\226\n/F\026[\353\240\220O\214\227X\026\236=\250\374\004,\024Qdj(\255\3602\253\202H\220[:\244\331\301\243\203\233\273\373\273L\350\224Y\371\0170v\314\225\303$\023\316A\226\031\261a\2512O\242\252B\272>\373j\304*S2-\241\2007\254\300\271.\001\024\322\314I\0374\333\020\032w\022^\031\315A\216\233n\260TY\010QG\222\250\037\213\314\311\376V\237=\307\351p\353\\Td\227\314$\207\0200\254\240\230\001+\313\nk\022\tY\306\006\371t\216\3545\021\3404\265\n\227.\244\315\225s\020\326\177\241\017\265\231\352`\032626\2079 Ni'\255o6\213*\320Yv$\254\022C\010\217'_JKL\002{W\026\205\2610\366\026\353\377I\244)\307\242\024\231\032\353\\jO\004s\352`C\345\273\276e\233\201\211\027\026\026\034\263\251\362\023\246\313\034\276p\353[\311DX\021<\021\324\326cn\205\036\303\206G\"\203\317\307\260\221\016\0224\224\231\037n\345\335p\021\026|\tSR\005\203e\nSP\247\360\366zb\362\302\222\371\202\237\315\224\267\013I\360\021\321\rah\366\334\226\262\005T\313\262\000\231\010\266/L&\254\233c\216\270\303X\320\t\212\003%KW\t\014\202\217\010\017\207\262rl\242\202\022\231a\251\301\t\022.\217\241\353:\333\224\326j\023qP\010(\223\264aA\327\322\211I\201\211`\304\033\216M'*\231\020\272\tmP\016\250\260\314U\316\313<\236\205\032\333\314\333\212,\017\347Gzr\020\016\227~ts\277\317\0162)\234\014\034V\221C\001Kh\315\252\376F\360\004\001\006\353w\031]u\356x\340\n\250H7H\033D\014E\n\313\244\036CQL\223\225\221O\366pdch\023!1?\353r\250UZ\271\210\257E\323\336\355\0302\000f\316:8\262\345OT\272\361\342\200""\005\272z\273\350\202[d\231\231\312t5\377\017\241\272s\211V\356=8\324\027\177\017\272E\212\032\023\301\3025\252\021M\343&\027\357/S\327d\300Z\033fU\353\037\212\357K\010>\310\205%r#\257\031\220r\365\215\002~Vf\237U\204u\276t\215&\202\"\357$\360x\346)\031\023\326\356\321\342\337\303\220\307\255{\317\266\331\0302o\270&\226V0\377\016\366\350\334\334 \2645]\025\263\001\275o\267\233D\034\345-\347Lmr\245E\266\215\363i\034\270D\340\262 /\353\252\261\212\314\252\361\004\034\023\224\004i\267\341\346\221\277\224D\351\271\226\215C\026\273\2018E!Jb\024\207tBie\3226\002J\3173p\260\343P\266\211\007\033r;<\275\312\203\352\364\246\272\305\334$$\324\271\342T\242L,\025\321 \255F\357\256H\363(j\021\261\3016k\303\305\374\275d\246Z\332\260\362\322\025\225\205\227Q\031}\2377#^\240\264H;\337\2725\337\212\245\272_T\307\035\312\346\222\235%@b:AW\321\307\014J\365\217v\272\233e^T\235\271\351\252\201\334\337\231M\205\325\324\231m\304\352\355b\302\002\242T\226\3111.\270\251\353[\211\254\230 \265{\230B\343v\202\232\266\024\005\036\265Cn\315#\347.\333\010\315\232t\250 \241%\202%3\034la\022\352^lAByj\rKm\037\333X\232\222\265\023\243\275@\300 \314\\!\022\270\275-\212\235\010^ \234'\007\370\360\246\314\013_5M\3506\273\264YiX\304H\254\033\216\273-2\377Bs\366\216C/\003\206.9\024\001F\320B\217\2002kH\201\330\235E\213\360\3731\242\037\300\345c\003\334\211\354!\206\017k\004<\224\211\312E\366\010\372>\316\214\360wv\302ko\367+\355\007;\373\364\334\303\343\316\016\036aq\377\257Cjv\017Z\217?\262\326X\316\017\252c\374=D\206\340O\344\261\377Z\216\276\356\036x\026L\365\034\022_D\316\341\265\367\"\360~\021\230\323s_\270J'\312\364\001\002S\302\234\022y\304\371\0041\035r\004\347\241_\346c(\217\206\203\2468\303\025\332d\240E\016Er\230dh\346\027\032\274\2727\250Kh\323\300\245\024\004M 4\357\275\335TT.\035\241\331&\247\247\326\024\\\227Y\346p\023N\241\231z\221\222c\244@\365\341FgUl\217\3441\265z\224t\t\215\274\266\375Q\354\210\303R\320\005#\334bdM\316\t\313Gr\344RI\364#\027\371p>*u\302\351\202\370\345I\3555\351h\026Ix""\200#\301\026k\304:6_M\3575Q*/2\232\327\037\020\312\361\326\232\030+\215G\354Ki\020\332R\345B0*\207{+\247\005\331\326\021\210xm\2730F\373\353\250\023\2454\235\031\316s\204\020\236J/&\275\025\025\010\247LZ\302\010\336\006\331A\022\364\321\220Z3\206#\t\313E\360V\010\344H\205\224\356\361\304\327\037\341\217\3768\276]=\rp\016i\006\203\023 \332\343{0\203\014\244.(}\242\364\310\324\371\017\235\203\264\245+}r\264\023\315\335\346\212\366\203\253]A/\207[V|\252R?iW#\\\333i\335E\257L95\244)\3157\251~\n\345)\3515`\251\315\016\261\266\002\300P\270\353\225Nh4+ar|L\275\317\211*\016\252\230]\330\227\233\363\341Vo\345\3626\273l\014\201\227\322D0x>\270=G\014\037\354}\0133\024\357\035u\177@aA\000$p\000\357Dr\3176\217\214J\251\204\271\260\037W\267YX\205\261\250pB\217\017\226\375]\t\233\377\002\360\026&\224\027\267z\251)\251f\376P\nt\215\267\325\243\246q\363\212\205+O/\372\341\373@\316\345\233\337\3078 \351\312;\316O\204Q\200\324f\320\363Je\377\317\246\331\352\321!\312\355\334\033\036\272\336^,\177\261Z\324y&\270\333\365\216@\203\ny\"S\254k\244'\317\233jN\344\261\021\273\354\324\325'\226x\204[t\364i\304d\352\260\255\370x\265\327\356-\353\023\016\316\371\321\277,\203=\020\26329Dr\247B\217\244\215^\344\033V\026\031\267K+h\033\326a\322\335\237\365n\314n\374\361\233\247\027_\374*\374\356\314v\356\317\356\277\234\275|u\361\331`6\370\363\177\006\027\237}\336\376\376w\255\367\243\337\275\031\\|\314\336|D\343\265\177\375\363\354\331\371G\027k\277>\177z\261\366\233sq\261\366\311\351\357""\317\036b\351\332\317\316n\275\371\374\315:\255\014.\256\375\266\035\321\251\037\177q\346\316\327k\262ON\367\317\356\234\211x\346\323_\006\206\357\032\077\077\377\005H\347\263\237\237\337\013\263\267s\261?=}\275(gI\360\333\265\237\234\232\363\247\347\342\355\307\237\236>=M\317\276\234]\277\375\357k\337\334\243\335\227o\3760\273\365x\3668\030b\355\372\354\372\356l\027\323W\263W\177\213)\243\305Th\200\270\337\252\021.\217\225\347\264Q\272\377\001\225c\3662"; - PyObject *data = __Pyx_DecompressString(cstring, 2241, 1); + #elif (CYTHON_COMPRESS_STRINGS) != 0 /* compression: zlib (2247 bytes) */ +const char* const cstring = "x\332\305X\313n\034\307\025\035\0036\300\300rb\347\001{\241\004\305 \002I\203\032i(B`\204\004\201\236\200\221@\241\254\027\220M\241\246\273f\246\304\356\252VU5\207\315E\220%\227\\r\251O\310\322\237\220\345,\271\324'\344\023rnUwO\317xHYB\014\023dw\275\356\373\324\275\267y\337de\256Y&\2062s,/\235gC\311\234\267J\217\335}Sf)\323\3063SH\315F*\223l\343\261\321\254\324\352u)Y\022\211\265\310\245c\251\3642\3612eJ3?\221,\025^\214,\266\326A!\037\033/\261,<\273_\371\tX(\242\310\324PZ\341eV\005\221 \267tH\263\375\207\373\327w\367v\231\320)\263\362\025\030;\346\312a\222\t\347 \313\214\330\260T\231'QU!]\237}3b\225)\231\226P\300\033V\340\\\227\000\ni\346\244\017\232m\010\r\233\204WFs\220\303\322\r\226*\013!\352P\022\365#\2219\331\337\352\263g8\035\254\316EE~\311Lr\000\001\303\n\212\031\260\262\254\260&\221\220el\220O\347\310_\023\001NS\253`t!m\256\234\203\260\376s}\240\315T\007\327\260\221\2619\334\001qJ;i}\263YT\201\316\262Ca\225\030Bx<\371BZb\022\330\273\262(\214\205\263\267X\377/\"M9\026\245\310\324X\347R{\"\230S\007\037*\337\215-\333\014L\274\260\360\340\230M\225\2370]\346\210\205[\337J&\302\212\020\211\240\266\036s+\364\030><\024\031b>\206\217t\220\240\241\314\374p+\357\232\213\260\340K\230\222*8,S\230\202:E\264\327\023\223\027\226\334\027\342l\246\274]HB\214\210n\010G\263g\266\224-\240Z\226\005\310D\360}a2a\335\034s\304\035\316\202NP\034(Y2%0\0101\"<\034\310\312\261\211\nJd\206\245\006'H\270<\202\256\353lSZ\253M\304A!\240L\322^\0132K'&\005&\202\023\25796\235\250dB\350&\264A9\240\3022W9/\363x\026jl3o+\362<\202\037\351)@8\\\372\321\365\275>\333\317\244p2pXE\016\005,\2415\253\372\033!\022\004\030\254\337ad\352<\360\300\025P\221n\2206\2701tSX&\365\030\212b\232\254\274\371\344\017G>\2066\021\022\363\263.\207Z\245\225\213\370Zt\355\235\216#\003`\346\254C [\376\304#\246\231\240\330\373q\251\261\004\315\240\243D\342`\227s\313\305\021\033\000r.\261\310R-QD\264\"\373\362\241\322M\024\007,\320\325\333E\027\334\"\313\314T\246\253\371\177\010\325\255\013\264r\357\301\2416\374=\350\026)jL""\004\017\327\250\306m\0327\271xo\231\272&\003\326\332kV\265\361\241\373}\001\301\007\205\260Dn\3445\003R\256\266(\340ge\366YEX\347K\327h\"\350\346\035\007\036O=%c\302\332]Z\374G\030\362\270u\367\3516\033C\3465\327\334\245\025\314\177\200?:\226\033\\mM\246b6\240\367\315v\223\210\243\274\345\234\251M\256\264\310\266q>\215\003\227\010\030\013\362\262\256\032\253\310\254\032O\3001AI\220v\033a\036\371\013I\224\236k\331\004d\261\033\210S\024\242$\336\342\220N(\255L\332F@\351y\006\016~\034\3126\361`Cn\207\247WyP\235\336T\267\230\233\204\204:W\234J\224\211\245\":\244\325\350\335\025i~\213ZDl\260\315\332q1\177/\271\251\2266\254\274tEe\021eTF\337\347\315\210\027(-\322\316\267n\314\267b\251\356\027\325Q\207\2621\262\263\004HL'\350*\372\230A\251\376\341Nw\263\314\213\25237]5\220\373;\263\251\260\232:\263\215X\275]LX@\224\31229\206\201\233\272\266Jd\305\004\251\335\303\025\032\326\tj\332R\024x\324\016\2715\2779w\330Fh\326\244C\005\t-\021<\231\341`\013\223P\367b\013\022\312S\353Xj\373\330\306\322\224\274\235\030\355\005.\014\256\231+D\202\260\267E\261s\203\027\010\347\311\0011\274.\363\302WM\023\272\315.lV\032\026\361&\326\r\307\235\026\231\177\2439{\307\241\027\001C\027\034\212\000#h\241G@\2315\244@\354\316\242G\370\275x\243\357#\344c\003\334\211\354\001\206\017j\004<\220\211\312E\366\020\372>\312\214\360\267v\302\353\366\3567\332\017v\366\350y\033\217[;x\204\305\275\277\017\251\331\335o#\376\320Zc9\337\257\216\360\367\000\031\202?\226G\376[9\372\266{\340ip\3253H|\0369\207\327\355\347\201\367\363\300\234\236{\302U:Q\246\017\020\230\022\356\224\310#\316'\270\323!Gp\036\372e>\206\362h8h\2123\\\241M\006Z\344P$\007I\206f~\241\301\253{\203\272\2046\r\\J\227\240\271\010\315\373\366n**\227\216\320lS\320Sk\n\256\313,s\260\204\323\325L\275H)0R\240\372p\243\263*\266G\362\210Z=J\272\204F^\373\3760v\304a)\350\202\021\254\030Y\223s\302\362\241\034\271T\022\375\310E>\234\217J\235p2\020\277<\251\243&\035\315\"\t\017p$\330b\215X\307\346\253\351\275&J\345EF\363\372\003B9\336z\023c\245\361\210})""\rB[\252\\\270\214\312\301n\345\264 \337:\002\021\257}\027\306h\177\035u\242\224\2463\303y\216+\204\247\322\213IoE\005\302)\223\226p\002\317\035i\317y\363\\N:u!\241\254\253\013\355\264\327~B\001\200\"%&\224\207\364\264\316\225\310B\210Ha\250r\256L\213\361\"p\216\344\007O\026\212\343\347u\t\356A\370r\372\264\262\310\340\324P\223\340.\235v\333\375\356\030Nu\3420\0248\316]\210K\036G\210\243(3\037\255Av\220\004}4\244\326\214\021H\302r\021\242\025.r\244BJ\367x\342\353\217\360G\177\034\337\256\236\0068\2074\203\3011\020\355\361=\230A\006R\027\224>Vzd\352\374\207\316A\332\322\225>9\334\211\356nsE\373\301\325\256\240\227\203\225\025\237\252\324O\332\325\010\327vJ\314\027\026\352\266ze\016\2521Ny\277\311\375SXCY\260AO\035\007\350a+ \016\225\274^\351\334\225f%L\216\216\250\031:V\305~\025\323\r\373zs>\334\352\255\\\336f\027\215!\360B\232\210\016\317\0077\347\020\342\203\333\337\003\021%\200\216\272?\241\260 \000\0228\220x,\271g\233\207F\245T\323\\\330\217\253\333,\254\302YTI\241\307\007\313\376\241\204\315\277\005x\013\023J\224[\275\324\224TD\177*\005\272\316\333\352Q\027\271y\311\302\245\247\027\343\360c \347\342\315\037{\034Pu\251\275\363\023a\024\340\265\031t\276T\361\377\263\233\266zt\210\022?\367\206\207\226\270\027kc,%u\316\t\241w\275C\320\240|\036\313\024\353\032\251\312\363\246\324\023y\354\322.:u\371\211%\036\301\212\216>\215\230L\035\264\355\000^\255\331\275e}\302\3019?\372\177f\360\007\356\257L\016\220\371\251\013@FG\021\240\302\021\355\263\245\216\376[\364\001JOC\200\017p\036?\237{\350\214\234\214<\321\004x\205z\022x\273\271w{K?m\220\242bEU\313u\"\252\022\r\213\363\340\262\345\205\340\245\356\"\2748V:\014\027\367\n\267\304\222\026\026y6+\337'l\270\322xq\227>\236\027\371\206\225E\306\355\322\n\332\206u\230t\367g\275k\263k\177\376\356\311\371\227_\205\337\235\331\316\275\331\275\027\263\027/\317?\037\314\006\177\375\317\340\374\363/\272\277\377]\353}\362\2077\203\363\217\331\233\217h\274\366\257\177\236>=\373\350|\355\267gO\316\327~w&\316\327>=\371\343\351\003,]\371""\345\351\2157_\274Y\247\225\301\371\225\337\267#:\365\263/O\335\331zM\366\351\311\336\351\255S\021\317|\366\233\300\360]\343gg\277\006\351|\366\253\263\273a\366v.\366\027'\257\027\345,\t~\273\366\363\023s\366\344L\274\375\370\263\223''\351\351\327\263\2537\377}\345\273\273\264\373\342\315\237f7\036\315\036\005_\254]\235]\335\235\355b\372r\366\362\325\354\325AL\034-\262B\217\304\375V\215sy\244<\247\215\322\375\017\310\245\003\254"; + PyObject *data = __Pyx_DecompressString(cstring, 2247, 1); if (unlikely(!data)) __PYX_ERR(0, 1, __pyx_L1_error) const char* const bytes = __Pyx_PyBytes_AsString(data); #if !CYTHON_ASSUME_SAFE_MACROS if (likely(bytes)); else { Py_DECREF(data); __PYX_ERR(0, 1, __pyx_L1_error) } #endif - #else /* compression: none (6103 bytes) */ -const char* const bytes = "Column labels must be stringsCould not open file 'Non unique column names detected in the dataframe!NoneNote that Cython is deliberately stricter than PEP-484 and rejects subclasses of builtin types. If you need to pass subclasses then set the 'annotation_typing' directive to False.). The file may be locked by another process or you may not have write permission.Unknown data format to insertUnknown pywriter variable formatVersion not supported) .?add_notealignment for variable and it must be str (not starting with numbers!)character missing_ranges value given for non character variable %scolumn_labels must be either list or dict!compress and row_compress cannot be both Truedataframe must be pandas or polars dataframedictionaries in missing_ranges must have the keys hi and lo does not exist! (errno file path could not be encoded with %s which is set as your system encoding, trying to encode it as utf-8. Please set your system encoding correctly.' for writing: in variable instead' is of type length of column labels must be the same as number of columnsmeasure for variable missing_ranges: hi and lo values must be both the same for string typemissing_ranges: hi and lo values must be both either of numeric or string typemissing_ranges: max 1 discrete numeric value if combined with 1 range value per variable allowedmissing_ranges: max 1 range value per variable allowedmissing_ranges: max 3 discrete numeric values per variable allowedmissing_ranges: max 3 string values per variable allowedmissing_ranges: string values length must not be larger than 8missing_ranges: values in dictionary must be listmissing_ranges: values must be both either of numeric or string typemissing_user_values not allowed for character variable %smissing_user_values supports values a to z for Stata and A to Z and _ for SAS, got %s insteadmissing_user_values: values in dictionary must be list must be boolean or be 1 or 0 must be dict, got must be either nominal, ordinal, scale or unknown got mus""t be either right, center, left or unknown got must be int must be numeric must be string must match the type of the column in dataframe and be of type date, datetime or timenote should be either str or list, got numeric missing_ranges value given for non numeric variable %s' (ordinal path must be either str or bytespyreadstat._readstat_parserpyreadstat/_readstat_writer.pyxpyreadstat.datetimepyreadstat.narwhals.stable.v2pyreadstat.numpypyreadstat.ospyreadstat.syspyreadstat.warnings' starts with an illegal (neither alphabetic nor an underscore) character: 'the destination folder unknown file formatutf-8variable name 'variable name '%s' contains a space, which is not allowedvariable names must be non-empty strings, not starting with numbersvariable_value_labels: type of Label variable_value_labels: type of Value variable_value_labels: value for key wrong writer format_BooleanCategoricalDateDatetimeDecimalEnumFloat32Float64Int128Int16Int32Int64Int8ObjectPyreadstatError__Pyx_PyDict_NextRefReadstatErrorStringTimeUInt128UInt16UInt32UInt64UInt8asyncio.coroutinescastcatcenter__class_getitem__cline_in_tracebackclonecolumn_labelscolumnscombinecompressddatedatetimedatetime64daysdfdirnamedrop_nullsdst_pathdtadtypeeager_onlyencodeexpanduserfile_format_versionfile_labelfilterfrom_nativefsdecodefsencode__func__getget_categoriesget_native_namespacegetfilesystemencodinghiimplementation_is_coroutineis_inis_pandasis_polarsisalphaisdirisnaitemsiter_columnsiter_rowskeysleftlo__main__minmissing_rangesmissing_user_values__module__msname__name__narwhals.stable.v2nominalnotenpnsntnthnull_countnumpynwordinalospathpopporpyreadstat._readstat_writer__pyx_capi____qualname___readstat_parserreplacerightroundrow_compressrow_compressionsavscale__set_name__setdefaultstablestrerrorsurrogateescapesystable_name__test__thentimetime_unittimestamptimezonetotal_secondstzinfounknownupperusutcv2valuesvariable_alignmentvariable_display_widthvariable_formatvariable_measurevariable_value_labelsversionwarnwarnin""gswhenwith_columnswriter_entry_pointwriter_file_formatwriter_formatxxportzipPyObject *(PyObject *)\000PyObject *(PyObject *, PyObject *, PyObject *, int)\000PyObject *(PyObject *, __pyx_t_10pyreadstat_16_readstat_writer_dst_file_format, PyObject *, PyObject *, int)\000PyObject *(PyObject *, __pyx_t_10pyreadstat_16_readstat_writer_dst_file_format, PyObject *, int)\000\000Py_ssize_t (void const *, size_t, void *)\000char *(__pyx_t_10pyreadstat_16_readstat_writer_dst_file_format, __pyx_t_10pyreadstat_16_readstat_writer_pywriter_variable_type)\000double (__pyx_t_10pyreadstat_16_readstat_writer_dst_file_format, __pyx_t_10pyreadstat_16_readstat_writer_pywriter_variable_type, PyObject *)\000int (PyObject *)\000int (PyObject *, PyObject *)\000int (PyObject *, PyObject *, __pyx_t_10pyreadstat_16_readstat_writer_dst_file_format, PyObject *, PyObject *, int, PyObject *, PyObject *, PyObject *, PyObject *, PyObject *, PyObject *, PyObject *, PyObject *, PyObject *, int)\000int (PyObject *, PyObject *, int)\000int (int)\000void (int, int, PyObject *, PyObject *, __pyx_t_10pyreadstat_16_readstat_writer_dst_file_format, PyObject *, PyObject *)\000filepath_to_bytes\000get_narwhals_column_types\000vectorized_convert_datetime_to_number\000vectorized_convert_date_to_number\000vectorized_convert_time_to_number\000write_bytes\000get_datetimelike_format_for_readstat\000convert_datetimelike_to_number\000open_file\000check_series_all_same_types\000run_write\000get_narwhals_str_series_max_length\000close_file\000initial_checksPyObject *\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000readstat_to_numpy_types\000sas_all_formats\000sas_date_formats\000sas_datetime_formats\000sas_origin\000sas_time_formats\000spss_all_formats\000spss_date_formats\000spss_datetime_formats\000spss_origin\000spss_time_formats\000stata_all_formats\000stata_date_formats\000stata_datetime_formats\000stata_origin\000stata_time_formats\320\000%\320%=\270Q\330\027\030\330\027\030\330\0272\3202B\320BV\320V""W\330\0201\3201K\3101\330\020\021\330\020\021\330\020\021\330\020\021\360\010\000\005$\2401\330\004 \240\001\360\010\000\005\010\200~\220S\230\001\330\010\035\230Q\330\010\036\230a\330\010\013\2109\220D\230\001\330\014\022\220/\240\021\240!\330\010\013\2101\330\014\"\240!\330\010\013\2101\330\014\036\230a\330\t\027\220s\230!\330\010\035\230Q\330\010\013\2108\2203\220a\330\014\"\240!\330\r\025\220S\230\001\330\014\"\240!\330\r\025\220S\230\001\330\014\"\240!\330\r\025\220S\230\001\330\014\"\240!\330\r\025\220T\230\024\230Q\330\014\"\240!\330\r\025\220T\230\023\230A\330\014\"\240!\340\014\022\220/\240\021\240!\330\010\017\210q\330\t\027\220s\230!\330\010\035\230Q\330\010\036\230a\330\t\027\220s\230!\330\010\035\230Q\340\010\016\210o\230Q\230a\340\004\r\210Q\210d\220*\320\0340\260\014\270A\330\010\035\230V\240<\320/F\320FV\320VW\330\010\034\320\0344\3204F\320FW\320WXvoid (readstat_error_t)\000check_exit_status"; + #else /* compression: none (6138 bytes) */ +const char* const bytes = "Column labels must be stringsCould not open file 'Non unique column names detected in the dataframe!NoneNote that Cython is deliberately stricter than PEP-484 and rejects subclasses of builtin types. If you need to pass subclasses then set the 'annotation_typing' directive to False.). The file may be locked by another process or you may not have write permission.Unknown data format to insertUnknown pywriter variable formatVersion not supported) .?add_notealignment for variable and it must be str (not starting with numbers!)character missing_ranges value given for non character variable %scolumn_labels must be either list or dict!compress and row_compress cannot be both Truedataframe must be pandas or polars dataframedictionaries in missing_ranges must have the keys hi and lo does not exist! (errno file path could not be encoded with %s which is set as your system encoding, trying to encode it as utf-8. Please set your system encoding correctly.' for writing: in variable instead' is of type length of column labels must be the same as number of columnsmeasure for variable missing_ranges: hi and lo values must be both the same for string typemissing_ranges: hi and lo values must be both either of numeric or string typemissing_ranges: max 1 discrete numeric value if combined with 1 range value per variable allowedmissing_ranges: max 1 range value per variable allowedmissing_ranges: max 3 discrete numeric values per variable allowedmissing_ranges: max 3 string values per variable allowedmissing_ranges: string values length must not be larger than 8missing_ranges: values in dictionary must be listmissing_ranges: values must be both either of numeric or string typemissing_user_values not allowed for character variable %smissing_user_values supports values a to z for Stata and A to Z and _ for SAS, got %s insteadmissing_user_values: values in dictionary must be list must be boolean or be 1 or 0 must be dict, got must be either nominal, ordinal, scale or unknown got mus""t be either right, center, left or unknown got must be int must be numeric must be string must match the type of the column in dataframe and be of type date, datetime or timenote should be either str or list, got numeric missing_ranges value given for non numeric variable %s' (ordinal path must be either str or bytespyreadstat._readstat_parserpyreadstat/_readstat_writer.pyxpyreadstat.datetimepyreadstat.narwhals.stable.v2pyreadstat.numpypyreadstat.ospyreadstat.syspyreadstat.warnings' starts with an illegal (neither alphabetic nor an underscore) character: 'the destination folder unknown file formatutf-8variable name 'variable name '%s' contains a space, which is not allowedvariable names must be non-empty strings, not starting with numbersvariable_value_labels: type of Label variable_value_labels: type of Value variable_value_labels: value for key wrong writer format_BooleanCategoricalDateDatetimeDecimalEnumFloat32Float64Int128Int16Int32Int64Int8ObjectPyreadstatError__Pyx_PyDict_NextRefReadstatErrorStringTimeUInt128UInt16UInt32UInt64UInt8asyncio.coroutinescastcatcenter__class_getitem__cline_in_tracebackclonecolumn_labelscolumnscombinecompressddatedatetimedatetime64daysdfdirnamedrop_nullsdst_pathdtadtypeeager_onlyencodeexpanduserfile_format_versionfile_labelfilterfrom_nativefsdecodefsencode__func__getget_categoriesget_native_namespacegetfilesystemencodinghiimplementation_is_coroutineis_inis_pandasis_polarsisalphaisdirisnaitemsiter_columnsiter_rowskeysleftlo__main__minmissing_rangesmissing_user_values__module__msname__name__narwhals.stable.v2nominalnotenpnsntnthnull_countnumpynwordinalospathpopporpyreadstat._readstat_writer__pyx_capi____qualname___readstat_parserreplacerightroundrow_compressrow_compressionsavscale__set_name__setdefaultstablestrerrorsurrogateescapesystable_name__test__thentimetime_unittimestamptimezonetotal_secondstzinfounknownupperusutcv2valuesvariable_alignmentvariable_display_widthvariable_formatvariable_informatvariable_measurevariable_value_labels""versionwarnwarningswhenwith_columnswriter_entry_pointwriter_file_formatwriter_formatxxportzipPyObject *(PyObject *)\000PyObject *(PyObject *, PyObject *, PyObject *, int)\000PyObject *(PyObject *, __pyx_t_10pyreadstat_16_readstat_writer_dst_file_format, PyObject *, PyObject *, int)\000PyObject *(PyObject *, __pyx_t_10pyreadstat_16_readstat_writer_dst_file_format, PyObject *, int)\000\000Py_ssize_t (void const *, size_t, void *)\000char *(__pyx_t_10pyreadstat_16_readstat_writer_dst_file_format, __pyx_t_10pyreadstat_16_readstat_writer_pywriter_variable_type)\000double (__pyx_t_10pyreadstat_16_readstat_writer_dst_file_format, __pyx_t_10pyreadstat_16_readstat_writer_pywriter_variable_type, PyObject *)\000int (PyObject *)\000int (PyObject *, PyObject *)\000int (PyObject *, PyObject *, __pyx_t_10pyreadstat_16_readstat_writer_dst_file_format, PyObject *, PyObject *, int, PyObject *, PyObject *, PyObject *, PyObject *, PyObject *, PyObject *, PyObject *, PyObject *, PyObject *, PyObject *, int)\000int (PyObject *, PyObject *, int)\000int (int)\000void (int, int, PyObject *, PyObject *, __pyx_t_10pyreadstat_16_readstat_writer_dst_file_format, PyObject *, PyObject *)\000filepath_to_bytes\000get_narwhals_column_types\000vectorized_convert_datetime_to_number\000vectorized_convert_date_to_number\000vectorized_convert_time_to_number\000write_bytes\000get_datetimelike_format_for_readstat\000convert_datetimelike_to_number\000open_file\000check_series_all_same_types\000run_write\000get_narwhals_str_series_max_length\000close_file\000initial_checksPyObject *\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000readstat_to_numpy_types\000sas_all_formats\000sas_date_formats\000sas_datetime_formats\000sas_origin\000sas_time_formats\000spss_all_formats\000spss_date_formats\000spss_datetime_formats\000spss_origin\000spss_time_formats\000stata_all_formats\000stata_date_formats\000stata_datetime_formats\000stata_origin\000stata_time_formats\320\000%\320%=\270Q\330\027\030\330\027""\030\330\0272\3202B\320BV\320VW\330\0201\3201K\3101\330\020\021\330\020\021\330\020\021\330\020\021\330\020\021\360\010\000\005$\2401\330\004 \240\001\360\010\000\005\010\200~\220S\230\001\330\010\035\230Q\330\010\036\230a\330\010\013\2109\220D\230\001\330\014\022\220/\240\021\240!\330\010\013\2101\330\014\"\240!\330\010\013\2101\330\014\036\230a\330\t\027\220s\230!\330\010\035\230Q\330\010\013\2108\2203\220a\330\014\"\240!\330\r\025\220S\230\001\330\014\"\240!\330\r\025\220S\230\001\330\014\"\240!\330\r\025\220S\230\001\330\014\"\240!\330\r\025\220T\230\024\230Q\330\014\"\240!\330\r\025\220T\230\023\230A\330\014\"\240!\340\014\022\220/\240\021\240!\330\010\017\210q\330\t\027\220s\230!\330\010\035\230Q\330\010\036\230a\330\t\027\220s\230!\330\010\035\230Q\340\010\016\210o\230Q\230a\340\004\r\210Q\210d\220*\320\0340\260\014\270A\330\010\035\230V\240<\320/F\320FV\320VW\330\010\034\320\0344\3204F\320FW\320Wj\320jkvoid (readstat_error_t)\000check_exit_status"; PyObject *data = NULL; CYTHON_UNUSED_VAR(__Pyx_DecompressString); #endif PyObject **stringtab = __pyx_mstate->__pyx_string_tab; Py_ssize_t pos = 0; - for (int i = 0; i < 221; i++) { + for (int i = 0; i < 222; i++) { Py_ssize_t bytes_length = index[i].length; PyObject *string = PyUnicode_DecodeUTF8(bytes + pos, bytes_length, NULL); if (likely(string) && i >= 74) PyUnicode_InternInPlace(&string); @@ -19637,7 +19748,7 @@ const char* const bytes = "Column labels must be stringsCould not open file 'Non stringtab[i] = string; pos += bytes_length; } - for (int i = 221; i < 225; i++) { + for (int i = 222; i < 226; i++) { Py_ssize_t bytes_length = index[i].length; PyObject *string = PyBytes_FromStringAndSize(bytes + pos, bytes_length); stringtab[i] = string; @@ -19648,14 +19759,14 @@ const char* const bytes = "Column labels must be stringsCould not open file 'Non } } Py_XDECREF(data); - for (Py_ssize_t i = 0; i < 225; i++) { + for (Py_ssize_t i = 0; i < 226; i++) { if (unlikely(PyObject_Hash(stringtab[i]) == -1)) { __PYX_ERR(0, 1, __pyx_L1_error) } } #if CYTHON_IMMORTAL_CONSTANTS { - PyObject **table = stringtab + 221; + PyObject **table = stringtab + 222; for (Py_ssize_t i=0; i<4; ++i) { #if CYTHON_COMPILING_IN_CPYTHON_FREETHREADING #if PY_VERSION_HEX < 0x030E0000 @@ -19747,8 +19858,8 @@ static int __Pyx_CreateCodeObjects(__pyx_mstatetype *__pyx_mstate) { PyObject* tuple_dedup_map = PyDict_New(); if (unlikely(!tuple_dedup_map)) return -1; { - const __Pyx_PyCode_New_function_description descr = {17, 0, 0, 20, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 994}; - PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_df, __pyx_mstate->__pyx_n_u_dst_path, __pyx_mstate->__pyx_n_u_writer_format, __pyx_mstate->__pyx_n_u_file_label, __pyx_mstate->__pyx_n_u_version, __pyx_mstate->__pyx_n_u_table_name, __pyx_mstate->__pyx_n_u_column_labels, __pyx_mstate->__pyx_n_u_compress, __pyx_mstate->__pyx_n_u_row_compress, __pyx_mstate->__pyx_n_u_note, __pyx_mstate->__pyx_n_u_variable_value_labels, __pyx_mstate->__pyx_n_u_missing_ranges, __pyx_mstate->__pyx_n_u_variable_display_width, __pyx_mstate->__pyx_n_u_variable_measure, __pyx_mstate->__pyx_n_u_missing_user_values, __pyx_mstate->__pyx_n_u_variable_format, __pyx_mstate->__pyx_n_u_variable_alignment, __pyx_mstate->__pyx_n_u_file_format_version, __pyx_mstate->__pyx_n_u_row_compression, __pyx_mstate->__pyx_n_u_writer_file_format}; + const __Pyx_PyCode_New_function_description descr = {18, 0, 0, 21, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 999}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_df, __pyx_mstate->__pyx_n_u_dst_path, __pyx_mstate->__pyx_n_u_writer_format, __pyx_mstate->__pyx_n_u_file_label, __pyx_mstate->__pyx_n_u_version, __pyx_mstate->__pyx_n_u_table_name, __pyx_mstate->__pyx_n_u_column_labels, __pyx_mstate->__pyx_n_u_compress, __pyx_mstate->__pyx_n_u_row_compress, __pyx_mstate->__pyx_n_u_note, __pyx_mstate->__pyx_n_u_variable_value_labels, __pyx_mstate->__pyx_n_u_missing_ranges, __pyx_mstate->__pyx_n_u_variable_display_width, __pyx_mstate->__pyx_n_u_variable_measure, __pyx_mstate->__pyx_n_u_missing_user_values, __pyx_mstate->__pyx_n_u_variable_format, __pyx_mstate->__pyx_n_u_variable_alignment, __pyx_mstate->__pyx_n_u_variable_informat, __pyx_mstate->__pyx_n_u_file_format_version, __pyx_mstate->__pyx_n_u_row_compression, __pyx_mstate->__pyx_n_u_writer_file_format}; __pyx_mstate_global->__pyx_codeobj_tab[0] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_pyreadstat__readstat_writer_pyx, __pyx_mstate->__pyx_n_u_writer_entry_point, __pyx_mstate->__pyx_kp_b_iso88591_Q_22BBVVW_11K1_1_S_Q_a_9D_1_1_a, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[0])) goto bad; } Py_DECREF(tuple_dedup_map); diff --git a/pyreadstat/_readstat_writer.pxd b/pyreadstat/_readstat_writer.pxd index 4cda8ef..489d7a7 100644 --- a/pyreadstat/_readstat_writer.pxd +++ b/pyreadstat/_readstat_writer.pxd @@ -94,4 +94,5 @@ cdef void initial_checks(bint is_pandas, bint is_polars, dict variable_value_lab cdef int run_write(df, object filename_path, dst_file_format file_format, str file_label, object column_labels, int file_format_version, object note, str table_name, dict variable_value_labels, dict missing_ranges, dict missing_user_values, dict variable_alignment, - dict variable_display_width, dict variable_measure, dict variable_format, bint row_compression) except * + dict variable_display_width, dict variable_measure, dict variable_format, dict variable_informat, + bint row_compression) except * diff --git a/pyreadstat/_readstat_writer.pyx b/pyreadstat/_readstat_writer.pyx index 582a7d7..ba1e62e 100644 --- a/pyreadstat/_readstat_writer.pyx +++ b/pyreadstat/_readstat_writer.pyx @@ -679,7 +679,8 @@ cdef bytes filepath_to_bytes(object filename_path): cdef int run_write(df, object filename_path, dst_file_format file_format, str file_label, object column_labels, int file_format_version, object note, str table_name, dict variable_value_labels, dict missing_ranges, dict missing_user_values, dict variable_alignment, - dict variable_display_width, dict variable_measure, dict variable_format, bint row_compression) except *: + dict variable_display_width, dict variable_measure, dict variable_format, + dict variable_informat, bint row_compression) except *: """ main entry point for writing all formats. Some parameters are specific for certain file type and are even incompatible between them. This function relies on the caller to select the right @@ -832,6 +833,10 @@ cdef int run_write(df, object filename_path, dst_file_format file_format, str fi if curtype in pyrwriter_datetimelike_types and (variable_format is None or variable_name not in variable_format.keys()): curformat = get_datetimelike_format_for_readstat(file_format, curtype) readstat_variable_set_format(variable, curformat) + if variable_informat: + tempformat = variable_informat.get(variable_name) + if tempformat: + readstat_variable_set_informat(variable, tempformat.encode("utf-8")) # prepare string_ref # for STRING_REF we have to add to a dict here before start writing if curtype == PYWRITER_DTA_STR_REF: @@ -1000,6 +1005,7 @@ def writer_entry_point(df, dst_path, str writer_format=None, str file_label="", dict missing_user_values=None, dict variable_format=None, dict variable_alignment = None, + dict variable_informat=None, ): @@ -1044,4 +1050,4 @@ def writer_entry_point(df, dst_path, str writer_format=None, str file_label="", run_write(df, dst_path, writer_file_format, file_label, column_labels, file_format_version, note, table_name, variable_value_labels, missing_ranges, missing_user_values, - variable_alignment, variable_display_width, variable_measure, variable_format, row_compression) + variable_alignment, variable_display_width, variable_measure, variable_format, variable_informat, row_compression) diff --git a/pyreadstat/pyclasses.py b/pyreadstat/pyclasses.py index 11121db..faae82e 100644 --- a/pyreadstat/pyclasses.py +++ b/pyreadstat/pyclasses.py @@ -48,8 +48,8 @@ class metadata_container: """ column_names: list[str] = field(default_factory=list) - column_labels: list[str] = field(default_factory=list) - column_names_to_labels: dict[str, str] = field(default_factory=dict) + column_labels: list[str | None] = field(default_factory=list) + column_names_to_labels: dict[str, str | None] = field(default_factory=dict) file_encoding: str | None = None file_label: str | None = None number_columns: int | None = None @@ -58,7 +58,8 @@ class metadata_container: value_labels: dict[str, dict[float | int, str]] = field(default_factory=dict) variable_to_label: dict[str, str] = field(default_factory=dict) notes: list[str] = field(default_factory=list) - original_variable_types: dict[str, str] = field(default_factory=dict) + original_variable_types: dict[str, str | None] = field(default_factory=dict) + original_variable_informats: dict[str, str | None] = field(default_factory=dict) readstat_variable_types: dict[str, str] = field(default_factory=dict) table_name: str | None = None missing_ranges: dict[str, list[int | float | str | MissingRange]] = field(default_factory=dict) @@ -66,7 +67,7 @@ class metadata_container: variable_storage_width: dict[str, int] = field(default_factory=dict) variable_display_width: dict[str, int] = field(default_factory=dict) variable_alignment: dict[str, str] = field(default_factory=dict) - variable_measure: dict[str, Literal["nominal", "ordinal", "scale", "unknown"]] = field(default_factory=dict) + variable_measure: dict[str, Literal["nominal", "ordinal", "scale", "unknown", "undetermined"]] = field(default_factory=dict) creation_time: datetime | None = None modification_time: datetime | None = None mr_sets: dict[str, MRSet] = field(default_factory=dict) diff --git a/pyreadstat/pyreadstat.py b/pyreadstat/pyreadstat.py index bfb7548..97d5452 100644 --- a/pyreadstat/pyreadstat.py +++ b/pyreadstat/pyreadstat.py @@ -1212,7 +1212,7 @@ def write_sav( df: "DataFrame", dst_path: FilePathLike, file_label: str = "", - column_labels: list[str] | dict[str, str] | None = None, + column_labels: list[str | None] | dict[str, str | None] | None = None, compress: bool = False, row_compress: bool = False, note: str | list[str] | None = None, @@ -1298,7 +1298,7 @@ def write_dta( df: "DataFrame", dst_path: FilePathLike, file_label: str = "", - column_labels: list[str] | dict[str, str] | None = None, + column_labels: list[str | None] | dict[str, str | None] | None = None, version: int = 15, variable_value_labels: dict[str, dict[int | float, str]] | None = None, missing_user_values: dict[str, list[str]] | None = None, @@ -1354,10 +1354,11 @@ def write_xport( df: "DataFrame", dst_path: FilePathLike, file_label: str = "", - column_labels: list[str] | dict[str, str] | None = None, + column_labels: list[str | None] | dict[str, str | None] | None = None, table_name: str | None = None, file_format_version: Literal[5, 8] = 8, variable_format: dict[str, str] | None = None, + variable_informat: dict[str, str] | None = None, ) -> None: """ Writes a dataframe to a SAS Xport (xpt) file. @@ -1386,6 +1387,9 @@ def write_xport( sets the format of a variable. Must be a dictionary with keys being the variable names and values being strings defining the format. See README, setting variable formats section, for more information. + variable_informat: dict, optional + sets the informat of a variable. Must be a dictionary with keys being the variable names and + values being strings defining the format. """ writer_format = "xport" @@ -1398,6 +1402,7 @@ def write_xport( version=file_format_version, table_name=table_name, variable_format=variable_format, + variable_informat=variable_informat, ) @@ -1405,7 +1410,7 @@ def write_por( df: "DataFrame", dst_path: FilePathLike, file_label: str = "", - column_labels: list[str] | dict[str, str] | None = None, + column_labels: list[str | None] | dict[str, str | None] | None = None, variable_format: dict[str, str] | None = None, ) -> None: """ diff --git a/pyreadstat/readstat_api.pxd b/pyreadstat/readstat_api.pxd index af41f4f..d724266 100644 --- a/pyreadstat/readstat_api.pxd +++ b/pyreadstat/readstat_api.pxd @@ -184,6 +184,7 @@ cdef extern from "readstat.h": cdef char *readstat_variable_get_name(readstat_variable_t *variable) cdef char *readstat_variable_get_label(readstat_variable_t *variable) cdef char *readstat_variable_get_format(readstat_variable_t *variable) + cdef char *readstat_variable_get_informat(const readstat_variable_t *variable); cdef readstat_type_t readstat_variable_get_type(const readstat_variable_t *variable); cdef readstat_measure_t readstat_variable_get_measure(const readstat_variable_t *variable); cdef readstat_alignment_t readstat_variable_get_alignment(const readstat_variable_t *variable) @@ -246,6 +247,7 @@ cdef extern from "readstat.h": cdef void readstat_variable_set_label(readstat_variable_t *variable, const char *label) cdef void readstat_variable_set_format(readstat_variable_t *variable, const char *format); + cdef void readstat_variable_set_informat(readstat_variable_t *variable, const char *informat); cdef void readstat_variable_set_label_set(readstat_variable_t *variable, readstat_label_set_t *label_set); cdef void readstat_variable_set_measure(readstat_variable_t *variable, readstat_measure_t measure); cdef void readstat_variable_set_alignment(readstat_variable_t *variable, readstat_alignment_t alignment); diff --git a/tests/test_narwhalified.py b/tests/test_narwhalified.py index ceda9bf..d78eb79 100644 --- a/tests/test_narwhalified.py +++ b/tests/test_narwhalified.py @@ -291,6 +291,7 @@ def test_xport(self): self.assertTrue(meta.number_columns == len(self.df_pandas.columns)) self.assertTrue(meta.number_rows == len(self.df_pandas)) self.assertTrue(meta.number_rows==len(df)) + self.assertTrue(meta.original_variable_informats['MYDATE'] == 'YYMMDD10') #self.assertTrue(meta.creation_time==datetime(2018, 8, 14, 10, 55, 46)) #self.assertTrue(meta.modification_time==datetime(2018, 8, 14, 10, 55, 46)) @@ -906,8 +907,11 @@ def test_xport_write_basic_v8(self): table_name = "TEST" col_labels = ["mychar label","mynum label", "mydate label", "dtime label", None, "myord label", "mytime label"] path = os.path.join(self.write_folder, "write.xpt") - pyreadstat.write_xport(self.df_pandas, path, file_label=file_label, column_labels=col_labels, table_name=table_name, file_format_version=8) + informats = {'mychar': '$1', 'mynum': 'BEST32', 'mydate': 'YYMMDD10', 'dtime': 'ANYDTDTM40', 'mylabl': 'BEST32', 'myord': 'BEST32', 'mytime': 'TIME20.3'} + pyreadstat.write_xport(self.df_pandas, path, file_label=file_label, column_labels=col_labels, table_name=table_name, + file_format_version=8, variable_informat=informats) df, meta = pyreadstat.read_xport(path, output_format=self.backend) + self.assertTrue(meta.original_variable_informats['mydate'] == 'YYMMDD10') df.columns = [x.lower() for x in df.columns] self.assertTrue(df.equals(self.df_pandas)) diff --git a/tests/test_typing.yml b/tests/test_typing.yml index 996e25a..92575dd 100644 --- a/tests/test_typing.yml +++ b/tests/test_typing.yml @@ -341,5 +341,5 @@ "var2": "ordinal", "var3": "scale", "var4": "unknown", - "var5": "another", # E: Dict entry 4 has incompatible type "str": "Literal['another']"; expected "str": "Literal['nominal', 'ordinal', 'scale', 'unknown']" [dict-item] + "var5": "another", # E: Dict entry 4 has incompatible type "str": "Literal['another']"; expected "str": "Literal['nominal', 'ordinal', 'scale', 'unknown', 'undetermined']" [dict-item] }