Generated by Cython 3.3.0
Yellow lines hint at Python interaction.
Click on a line that starts with a "+" to see the C code that Cython generated for it.
Raw output: converters.c
+0001: # cython: language_level=3, embedsignature=True, initializedcheck=False
__pyx_t_2 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_test, __pyx_t_2) < (0)) __PYX_ERR(0, 1, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
0002: # Copyright (C) 2018-present Jesus Lara
0003: #
+0004: import re
__pyx_t_1 = __Pyx_Import(__pyx_mstate_global->__pyx_n_u_re, 0, 0, NULL, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4, __pyx_L1_error) __pyx_t_2 = __pyx_t_1; __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_re, __pyx_t_2) < (0)) __PYX_ERR(0, 4, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+0005: from typing import get_args, get_origin, Union, Optional, List, NewType, Literal, Any, Set
{
PyObject* const __pyx_imported_names[] = {__pyx_mstate_global->__pyx_n_u_get_args,__pyx_mstate_global->__pyx_n_u_get_origin,__pyx_mstate_global->__pyx_n_u_Union,__pyx_mstate_global->__pyx_n_u_Optional,__pyx_mstate_global->__pyx_n_u_List,__pyx_mstate_global->__pyx_n_u_NewType,__pyx_mstate_global->__pyx_n_u_Literal,__pyx_mstate_global->__pyx_n_u_Any,__pyx_mstate_global->__pyx_n_u_Set};
__pyx_t_1 = __Pyx_Import(__pyx_mstate_global->__pyx_n_u_typing, __pyx_imported_names, 9, NULL, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5, __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_get_args,__pyx_mstate_global->__pyx_n_u_get_origin,__pyx_mstate_global->__pyx_n_u_Union,__pyx_mstate_global->__pyx_n_u_Optional,__pyx_mstate_global->__pyx_n_u_List,__pyx_mstate_global->__pyx_n_u_NewType,__pyx_mstate_global->__pyx_n_u_Literal,__pyx_mstate_global->__pyx_n_u_Any,__pyx_mstate_global->__pyx_n_u_Set};
for (__pyx_t_3=0; __pyx_t_3 < 9; __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, 5, __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, 5, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
}
}
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+0006: from collections.abc import Sequence, Mapping, Callable, Awaitable
{
PyObject* const __pyx_imported_names[] = {__pyx_mstate_global->__pyx_n_u_Sequence,__pyx_mstate_global->__pyx_n_u_Mapping,__pyx_mstate_global->__pyx_n_u_Callable,__pyx_mstate_global->__pyx_n_u_Awaitable};
__pyx_t_1 = __Pyx_Import(__pyx_mstate_global->__pyx_n_u_collections_abc, __pyx_imported_names, 4, NULL, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6, __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_Sequence,__pyx_mstate_global->__pyx_n_u_Mapping,__pyx_mstate_global->__pyx_n_u_Callable,__pyx_mstate_global->__pyx_n_u_Awaitable};
for (__pyx_t_3=0; __pyx_t_3 < 4; __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, 6, __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, 6, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
}
}
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+0007: import types
__pyx_t_1 = __Pyx_Import(__pyx_mstate_global->__pyx_n_u_types, 0, 0, NULL, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 7, __pyx_L1_error) __pyx_t_2 = __pyx_t_1; __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_types, __pyx_t_2) < (0)) __PYX_ERR(0, 7, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+0008: from dataclasses import _MISSING_TYPE, _FIELDS, fields
{
PyObject* const __pyx_imported_names[] = {__pyx_mstate_global->__pyx_n_u_MISSING_TYPE,__pyx_mstate_global->__pyx_n_u_FIELDS,__pyx_mstate_global->__pyx_n_u_fields};
__pyx_t_1 = __Pyx_Import(__pyx_mstate_global->__pyx_n_u_dataclasses, __pyx_imported_names, 3, NULL, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 8, __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_MISSING_TYPE,__pyx_mstate_global->__pyx_n_u_FIELDS,__pyx_mstate_global->__pyx_n_u_fields};
for (__pyx_t_3=0; __pyx_t_3 < 3; __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, 8, __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, 8, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
}
}
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+0009: import ciso8601
__pyx_t_1 = __Pyx_Import(__pyx_mstate_global->__pyx_n_u_ciso8601, 0, 0, NULL, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 9, __pyx_L1_error) __pyx_t_2 = __pyx_t_1; __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ciso8601, __pyx_t_2) < (0)) __PYX_ERR(0, 9, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+0010: import orjson
__pyx_t_1 = __Pyx_Import(__pyx_mstate_global->__pyx_n_u_orjson, 0, 0, NULL, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 10, __pyx_L1_error) __pyx_t_2 = __pyx_t_1; __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_orjson, __pyx_t_2) < (0)) __PYX_ERR(0, 10, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+0011: from pathlib import PurePath, Path
{
PyObject* const __pyx_imported_names[] = {__pyx_mstate_global->__pyx_n_u_PurePath,__pyx_mstate_global->__pyx_n_u_Path};
__pyx_t_1 = __Pyx_Import(__pyx_mstate_global->__pyx_n_u_pathlib, __pyx_imported_names, 2, NULL, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 11, __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_PurePath,__pyx_mstate_global->__pyx_n_u_Path};
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, 11, __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, 11, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
}
}
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+0012: from decimal import Decimal, InvalidOperation
{
PyObject* const __pyx_imported_names[] = {__pyx_mstate_global->__pyx_n_u_Decimal,__pyx_mstate_global->__pyx_n_u_InvalidOperation};
__pyx_t_1 = __Pyx_Import(__pyx_mstate_global->__pyx_n_u_decimal, __pyx_imported_names, 2, NULL, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 12, __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_Decimal,__pyx_mstate_global->__pyx_n_u_InvalidOperation};
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, 12, __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, 12, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
}
}
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
0013: from libc.stdio cimport sprintf, snprintf
0014: from libc.stdlib cimport malloc, free
0015: from cpython.mem cimport PyMem_Malloc, PyMem_Free
0016: cimport cython
0017: from cpython cimport datetime
0018: from cpython.object cimport (
0019: PyObject_IsInstance,
0020: PyObject_IsSubclass,
0021: PyObject_HasAttr,
0022: PyObject_GetAttr,
0023: PyObject_SetAttr,
0024: PyObject_Call,
0025: PyObject_TypeCheck,
0026: PyCallable_Check
0027: )
0028: from cpython.ref cimport PyObject
+0029: from uuid import UUID
{
PyObject* const __pyx_imported_names[] = {__pyx_mstate_global->__pyx_n_u_UUID};
__pyx_t_1 = __Pyx_Import(__pyx_mstate_global->__pyx_n_u_uuid, __pyx_imported_names, 1, NULL, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 29, __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_UUID};
__pyx_t_3 = 0; {
__pyx_t_4 = __Pyx_ImportFrom(__pyx_t_2, __pyx_imported_names[__pyx_t_3]); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 29, __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, 29, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
}
}
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+0030: import asyncpg.pgproto.pgproto as pgproto
__pyx_t_1 = __Pyx_Import(__pyx_mstate_global->__pyx_n_u_asyncpg_pgproto_pgproto, 0, 0, NULL, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 30, __pyx_L1_error) __pyx_t_5 = __Pyx_ImportFrom(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_pgproto); Py_DECREF(__pyx_t_1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 30, __pyx_L1_error) __pyx_t_1 = __pyx_t_5; __pyx_t_5 = __Pyx_ImportFrom(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_pgproto); Py_DECREF(__pyx_t_1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 30, __pyx_L1_error) __pyx_t_1 = __pyx_t_5; __pyx_t_2 = __pyx_t_1; __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_pgproto, __pyx_t_2) < (0)) __PYX_ERR(0, 30, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+0031: from .functions import is_iterable, is_primitive
{
PyObject* const __pyx_imported_names[] = {__pyx_mstate_global->__pyx_n_u_is_iterable,__pyx_mstate_global->__pyx_n_u_is_primitive};
__pyx_t_1 = __Pyx_Import(__pyx_mstate_global->__pyx_n_u_functions, __pyx_imported_names, 2, __pyx_mstate_global->__pyx_kp_u_datamodel_functions, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 31, __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_is_iterable,__pyx_mstate_global->__pyx_n_u_is_primitive};
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_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)
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
}
}
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+0032: from .validation import _validation
{
PyObject* const __pyx_imported_names[] = {__pyx_mstate_global->__pyx_n_u_validation};
__pyx_t_1 = __Pyx_Import(__pyx_mstate_global->__pyx_n_u_validation_2, __pyx_imported_names, 1, __pyx_mstate_global->__pyx_kp_u_datamodel_validation, 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_validation};
__pyx_t_3 = 0; {
__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, 32, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
}
}
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
0033: from .validation cimport _validate_constraints
+0034: from .fields import Field
{
PyObject* const __pyx_imported_names[] = {__pyx_mstate_global->__pyx_n_u_Field};
__pyx_t_1 = __Pyx_Import(__pyx_mstate_global->__pyx_n_u_fields, __pyx_imported_names, 1, __pyx_mstate_global->__pyx_kp_u_datamodel_fields, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 34, __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_Field};
__pyx_t_3 = 0; {
__pyx_t_4 = __Pyx_ImportFrom(__pyx_t_2, __pyx_imported_names[__pyx_t_3]); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 34, __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, 34, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
}
}
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
0035: # New converter:
+0036: import datamodel.rs_parsers as rc
__pyx_t_1 = __Pyx_Import(__pyx_mstate_global->__pyx_n_u_datamodel_rs_parsers, 0, 0, NULL, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 36, __pyx_L1_error) __pyx_t_5 = __Pyx_ImportFrom(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_rs_parsers); Py_DECREF(__pyx_t_1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 36, __pyx_L1_error) __pyx_t_1 = __pyx_t_5; __pyx_t_2 = __pyx_t_1; __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_rc, __pyx_t_2) < (0)) __PYX_ERR(0, 36, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
0037:
+0038: cdef struct ColumnDef:
struct __pyx_t_9datamodel_10converters_ColumnDef {
char const *name;
PyObject *field;
};
0039: const char* name
0040: PyObject* field
0041:
+0042: cdef bint is_dc(object obj):
static int __pyx_f_9datamodel_10converters_is_dc(PyObject *__pyx_v_obj) {
PyObject *__pyx_v_cls = NULL;
int __pyx_r;
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_4);
__Pyx_XDECREF(__pyx_t_5);
__Pyx_AddTraceback("datamodel.converters.is_dc", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = -1;
__pyx_L0:;
__Pyx_XDECREF(__pyx_v_cls);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
0043: """Returns True if obj is a dataclass or an instance of a
0044: dataclass."""
+0045: cls = obj if isinstance(obj, type) and not isinstance(obj, types.GenericAlias) else type(obj)
__pyx_t_3 = PyType_Check(__pyx_v_obj); if (__pyx_t_3) { } else { __pyx_t_2 = __pyx_t_3; goto __pyx_L3_bool_binop_done; } __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_types); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 45, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_GenericAlias); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 45, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_3 = PyObject_IsInstance(__pyx_v_obj, __pyx_t_5); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(0, 45, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_6 = (!__pyx_t_3); __pyx_t_2 = __pyx_t_6; __pyx_L3_bool_binop_done:; if (__pyx_t_2) { __Pyx_INCREF(__pyx_v_obj); __pyx_t_1 = __pyx_v_obj; } else { __Pyx_INCREF(((PyObject *)Py_TYPE(__pyx_v_obj))); __pyx_t_1 = ((PyObject *)Py_TYPE(__pyx_v_obj)); } __pyx_v_cls = __pyx_t_1; __pyx_t_1 = 0;
+0046: return PyObject_HasAttr(cls, '__dataclass_fields__')
{
__pyx_r = PyObject_HasAttr(__pyx_v_cls, __pyx_mstate_global->__pyx_n_u_dataclass_fields);
}
goto __pyx_L0;
0047:
+0048: cdef bint is_typing(object obj):
static int __pyx_f_9datamodel_10converters_is_typing(PyObject *__pyx_v_obj) {
int __pyx_r;
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_3);
__Pyx_AddTraceback("datamodel.converters.is_typing", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = -1;
__pyx_L0:;
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
+0049: return PyObject_HasAttr(obj, '__module__') and obj.__module__ == 'typing'
__pyx_t_2 = PyObject_HasAttr(__pyx_v_obj, __pyx_mstate_global->__pyx_n_u_module); if (__pyx_t_2) { } else { __pyx_t_1 = __pyx_t_2; goto __pyx_L3_bool_binop_done; } __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_obj, __pyx_mstate_global->__pyx_n_u_module); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 49, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_2 = __Pyx_PyObject_CompareBoolEq_object_str(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_typing, Py_EQ); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 49, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_1 = __pyx_t_2; __pyx_L3_bool_binop_done:; { __pyx_r = __pyx_t_1; } goto __pyx_L0;
0050:
+0051: cdef bint is_empty(object value):
static int __pyx_f_9datamodel_10converters_is_empty(PyObject *__pyx_v_value) {
int __pyx_r;
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_2);
__Pyx_AddTraceback("datamodel.converters.is_empty", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = -1;
__pyx_L0:;
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
0052: """
0053: Determines if a value should be considered empty.
0054:
0055: Enhanced to handle different container types properly, including:
0056: - None
0057: - Empty strings
0058: - Empty lists, tuples, sets
0059: - _MISSING_TYPE (used in default value checks)
0060:
0061: Returns True if the value is considered empty, False otherwise.
0062: """
0063: # None is always empty
+0064: if value is None:
__pyx_t_1 = (__pyx_v_value == Py_None);
if (__pyx_t_1) {
/* … */
}
+0065: return True
{
__pyx_r = 1;
}
goto __pyx_L0;
0066:
0067: # Field default missing markers
+0068: if PyObject_IsInstance(value, _MISSING_TYPE) or value == _MISSING_TYPE:
__Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_MISSING_TYPE); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 68, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = PyObject_IsInstance(__pyx_v_value, __pyx_t_2); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(0, 68, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (!__pyx_t_3) { } else { __pyx_t_1 = __pyx_t_3; goto __pyx_L5_bool_binop_done; } __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_MISSING_TYPE); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 68, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = __Pyx_PyObject_CompareBoolEq_object_object(__pyx_v_value, __pyx_t_2, Py_EQ); if (unlikely((__pyx_t_3 < 0))) __PYX_ERR(0, 68, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_1 = __pyx_t_3; __pyx_L5_bool_binop_done:; if (__pyx_t_1) { /* … */ }
+0069: return True
{
__pyx_r = 1;
}
goto __pyx_L0;
0070:
0071: # Empty strings are considered empty
+0072: if PyObject_IsInstance(value, str) and value == '':
__pyx_t_3 = PyObject_IsInstance(__pyx_v_value, ((PyObject *)(&PyUnicode_Type))); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(0, 72, __pyx_L1_error) if (__pyx_t_3) { } else { __pyx_t_1 = __pyx_t_3; goto __pyx_L8_bool_binop_done; } __pyx_t_3 = __Pyx_PyObject_CompareBoolEq_object_str(__pyx_v_value, __pyx_mstate_global->__pyx_kp_u__2, Py_EQ); if (unlikely((__pyx_t_3 < 0))) __PYX_ERR(0, 72, __pyx_L1_error) __pyx_t_1 = __pyx_t_3; __pyx_L8_bool_binop_done:; if (__pyx_t_1) { /* … */ }
+0073: return True
{
__pyx_r = 1;
}
goto __pyx_L0;
0074:
+0075: if PyObject_IsInstance(value, dict) and value == {}:
__pyx_t_3 = PyObject_IsInstance(__pyx_v_value, ((PyObject *)(&PyDict_Type))); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(0, 75, __pyx_L1_error) if (__pyx_t_3) { } else { __pyx_t_1 = __pyx_t_3; goto __pyx_L11_bool_binop_done; } __pyx_t_2 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 75, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = __Pyx_PyObject_RichCompareBool(__pyx_v_value, __pyx_t_2, Py_EQ); if (unlikely((__pyx_t_3 < 0))) __PYX_ERR(0, 75, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_1 = __pyx_t_3; __pyx_L11_bool_binop_done:; if (__pyx_t_1) { /* … */ }
+0076: return False
{
__pyx_r = 0;
}
goto __pyx_L0;
0077:
+0078: if PyObject_IsInstance(value, (tuple, list, set)) and len(value) == 0:
__pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 78, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF((PyObject *)(&PyTuple_Type)); __Pyx_GIVEREF((PyObject *)(&PyTuple_Type)); if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)(&PyTuple_Type))) != (0)) __PYX_ERR(0, 78, __pyx_L1_error); __Pyx_INCREF((PyObject *)(&PyList_Type)); __Pyx_GIVEREF((PyObject *)(&PyList_Type)); if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, ((PyObject *)(&PyList_Type))) != (0)) __PYX_ERR(0, 78, __pyx_L1_error); __Pyx_INCREF((PyObject *)(&PySet_Type)); __Pyx_GIVEREF((PyObject *)(&PySet_Type)); if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 2, ((PyObject *)(&PySet_Type))) != (0)) __PYX_ERR(0, 78, __pyx_L1_error); __pyx_t_3 = PyObject_IsInstance(__pyx_v_value, __pyx_t_2); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(0, 78, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (__pyx_t_3) { } else { __pyx_t_1 = __pyx_t_3; goto __pyx_L14_bool_binop_done; } __pyx_t_4 = PyObject_Length(__pyx_v_value); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(0, 78, __pyx_L1_error) __pyx_t_3 = (__pyx_t_4 == 0); __pyx_t_1 = __pyx_t_3; __pyx_L14_bool_binop_done:; if (__pyx_t_1) { /* … */ }
+0079: return True
{
__pyx_r = 1;
}
goto __pyx_L0;
0080:
0081: # Special case for containers: empty containers are NOT considered empty
0082: # because they are valid initialized values
+0083: if PyObject_IsInstance(value, (list, tuple, set)):
__pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 83, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF((PyObject *)(&PyList_Type)); __Pyx_GIVEREF((PyObject *)(&PyList_Type)); if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)(&PyList_Type))) != (0)) __PYX_ERR(0, 83, __pyx_L1_error); __Pyx_INCREF((PyObject *)(&PyTuple_Type)); __Pyx_GIVEREF((PyObject *)(&PyTuple_Type)); if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, ((PyObject *)(&PyTuple_Type))) != (0)) __PYX_ERR(0, 83, __pyx_L1_error); __Pyx_INCREF((PyObject *)(&PySet_Type)); __Pyx_GIVEREF((PyObject *)(&PySet_Type)); if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 2, ((PyObject *)(&PySet_Type))) != (0)) __PYX_ERR(0, 83, __pyx_L1_error); __pyx_t_1 = PyObject_IsInstance(__pyx_v_value, __pyx_t_2); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(0, 83, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (__pyx_t_1) { /* … */ }
+0084: return False # Return False even for empty containers
{
__pyx_r = 0;
}
goto __pyx_L0;
0085:
0086: # Numeric values of 0 are not considered empty
+0087: if PyObject_IsInstance(value, (int, float)) and value == 0:
__pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 87, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF((PyObject *)(&PyLong_Type)); __Pyx_GIVEREF((PyObject *)(&PyLong_Type)); if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)(&PyLong_Type))) != (0)) __PYX_ERR(0, 87, __pyx_L1_error); __Pyx_INCREF((PyObject *)(&PyFloat_Type)); __Pyx_GIVEREF((PyObject *)(&PyFloat_Type)); if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, ((PyObject *)(&PyFloat_Type))) != (0)) __PYX_ERR(0, 87, __pyx_L1_error); __pyx_t_3 = PyObject_IsInstance(__pyx_v_value, __pyx_t_2); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(0, 87, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (__pyx_t_3) { } else { __pyx_t_1 = __pyx_t_3; goto __pyx_L18_bool_binop_done; } __pyx_t_3 = (__Pyx_PyLong_BoolEqObjC(__pyx_v_value, __pyx_mstate_global->__pyx_int_0, 0, 0)); if (unlikely((__pyx_t_3 < 0))) __PYX_ERR(0, 87, __pyx_L1_error) __pyx_t_1 = __pyx_t_3; __pyx_L18_bool_binop_done:; if (__pyx_t_1) { /* … */ }
+0088: return False
{
__pyx_r = 0;
}
goto __pyx_L0;
0089:
0090: # Objects with explicit "empty" attribute
+0091: if PyObject_HasAttr(value, 'empty') and PyObject_GetAttr(value, 'empty') == False:
__pyx_t_3 = PyObject_HasAttr(__pyx_v_value, __pyx_mstate_global->__pyx_n_u_empty); if (__pyx_t_3) { } else { __pyx_t_1 = __pyx_t_3; goto __pyx_L21_bool_binop_done; } __pyx_t_2 = PyObject_GetAttr(__pyx_v_value, __pyx_mstate_global->__pyx_n_u_empty); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 91, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = __Pyx_PyObject_RichCompareBool(__pyx_t_2, Py_False, Py_EQ); if (unlikely((__pyx_t_3 < 0))) __PYX_ERR(0, 91, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_1 = __pyx_t_3; __pyx_L21_bool_binop_done:; if (__pyx_t_1) { /* … */ }
+0092: return False
{
__pyx_r = 0;
}
goto __pyx_L0;
0093:
0094: # Fallback to Python's truthiness
+0095: if not value:
__pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_value); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 95, __pyx_L1_error) __pyx_t_3 = (!__pyx_t_1); if (__pyx_t_3) { /* … */ }
+0096: return True
{
__pyx_r = 1;
}
goto __pyx_L0;
0097:
0098: # Default: not empty
+0099: return False
{
__pyx_r = 0;
}
goto __pyx_L0;
0100:
+0101: cpdef bint has_attribute(object obj, object attr):
static PyObject *__pyx_pw_9datamodel_10converters_1has_attribute(PyObject *__pyx_self,
#if CYTHON_VECTORCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static int __pyx_f_9datamodel_10converters_has_attribute(PyObject *__pyx_v_obj, PyObject *__pyx_v_attr, CYTHON_UNUSED int __pyx_skip_dispatch) {
int __pyx_r;
/* … */
/* function exit code */
__pyx_L0:;
return __pyx_r;
}
/* Python wrapper */
static PyObject *__pyx_pw_9datamodel_10converters_1has_attribute(PyObject *__pyx_self,
#if CYTHON_VECTORCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_9datamodel_10converters_has_attribute, "has_attribute(obj, attr) -> bool\n\nReturns True if obj has the attribute attr.");
static PyMethodDef __pyx_mdef_9datamodel_10converters_1has_attribute = {"has_attribute", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9datamodel_10converters_1has_attribute, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_9datamodel_10converters_has_attribute};
static PyObject *__pyx_pw_9datamodel_10converters_1has_attribute(PyObject *__pyx_self,
#if CYTHON_VECTORCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
PyObject *__pyx_v_obj = 0;
PyObject *__pyx_v_attr = 0;
#if !CYTHON_VECTORCALL
CYTHON_UNUSED Py_ssize_t __pyx_nargs;
#endif
CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("has_attribute (wrapper)", 0);
#if !CYTHON_VECTORCALL
#if CYTHON_ASSUME_SAFE_SIZE
__pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
#else
__pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
#endif
#endif
__pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
{
PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_obj,&__pyx_mstate_global->__pyx_n_u_attr,0};
PyObject* values[2] = {0,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, 101, __pyx_L3_error)
if (__pyx_kwds_len > 0) {
switch (__pyx_nargs) {
case 2:
values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 101, __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, 101, __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, "has_attribute", 0) < (0)) __PYX_ERR(0, 101, __pyx_L3_error)
for (Py_ssize_t i = __pyx_nargs; i < 2; i++) {
if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("has_attribute", 1, 2, 2, i); __PYX_ERR(0, 101, __pyx_L3_error) }
}
} else if (unlikely(__pyx_nargs != 2)) {
goto __pyx_L5_argtuple_error;
} else {
values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 101, __pyx_L3_error)
values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 101, __pyx_L3_error)
}
__pyx_v_obj = values[0];
__pyx_v_attr = values[1];
}
goto __pyx_L6_skip;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("has_attribute", 1, 2, 2, __pyx_nargs); __PYX_ERR(0, 101, __pyx_L3_error)
__pyx_L6_skip:;
goto __pyx_L4_argument_unpacking_done;
__pyx_L3_error:;
for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
Py_XDECREF(values[__pyx_temp]);
}
__Pyx_AddTraceback("datamodel.converters.has_attribute", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
__pyx_r = __pyx_pf_9datamodel_10converters_has_attribute(__pyx_self, __pyx_v_obj, __pyx_v_attr);
int __pyx_lineno = 0;
const char *__pyx_filename = NULL;
int __pyx_clineno = 0;
/* function exit code */
for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
Py_XDECREF(values[__pyx_temp]);
}
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_9datamodel_10converters_has_attribute(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_obj, PyObject *__pyx_v_attr) {
PyObject *__pyx_r = NULL;
__pyx_t_1 = __pyx_f_9datamodel_10converters_has_attribute(__pyx_v_obj, __pyx_v_attr, 1); if (unlikely(__pyx_t_1 == ((int)-1) && PyErr_Occurred())) __PYX_ERR(0, 101, __pyx_L1_error)
__pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 101, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
{
PyObject *__pyx_temp;
{
__pyx_temp = __pyx_r;
__pyx_r = __pyx_t_2;
}
__Pyx_XDECREF(__pyx_temp);
}
__pyx_t_2 = 0;
goto __pyx_L0;
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_2);
__Pyx_AddTraceback("datamodel.converters.has_attribute", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
__pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_9datamodel_10converters_1has_attribute, 0, __pyx_mstate_global->__pyx_n_u_has_attribute, NULL, __pyx_mstate_global->__pyx_n_u_datamodel_converters, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[5])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 101, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
#endif
if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_has_attribute, __pyx_t_2) < (0)) __PYX_ERR(0, 101, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
0102: """Returns True if obj has the attribute attr."""
+0103: return PyObject_HasAttr(obj, attr)
{
__pyx_r = PyObject_HasAttr(__pyx_v_obj, __pyx_v_attr);
}
goto __pyx_L0;
0104:
+0105: cpdef str to_string(object obj):
static PyObject *__pyx_pw_9datamodel_10converters_3to_string(PyObject *__pyx_self,
#if CYTHON_VECTORCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyObject *__pyx_f_9datamodel_10converters_to_string(PyObject *__pyx_v_obj, CYTHON_UNUSED int __pyx_skip_dispatch) {
PyObject *__pyx_v_e = NULL;
PyObject *__pyx_v_val = NULL;
PyObject *__pyx_r = NULL;
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_2);
__Pyx_XDECREF(__pyx_t_6);
__Pyx_XDECREF(__pyx_t_9);
__Pyx_XDECREF(__pyx_t_10);
__Pyx_XDECREF(__pyx_t_11);
__Pyx_XDECREF(__pyx_t_12);
__Pyx_XDECREF(__pyx_t_13);
__Pyx_AddTraceback("datamodel.converters.to_string", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = 0;
__pyx_L0:;
__Pyx_XDECREF(__pyx_v_e);
__Pyx_XDECREF(__pyx_v_val);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* Python wrapper */
static PyObject *__pyx_pw_9datamodel_10converters_3to_string(PyObject *__pyx_self,
#if CYTHON_VECTORCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_9datamodel_10converters_2to_string, "to_string(obj) -> str\n\nReturns a string version of an object.");
static PyMethodDef __pyx_mdef_9datamodel_10converters_3to_string = {"to_string", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9datamodel_10converters_3to_string, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_9datamodel_10converters_2to_string};
static PyObject *__pyx_pw_9datamodel_10converters_3to_string(PyObject *__pyx_self,
#if CYTHON_VECTORCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
PyObject *__pyx_v_obj = 0;
#if !CYTHON_VECTORCALL
CYTHON_UNUSED Py_ssize_t __pyx_nargs;
#endif
CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("to_string (wrapper)", 0);
#if !CYTHON_VECTORCALL
#if CYTHON_ASSUME_SAFE_SIZE
__pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
#else
__pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
#endif
#endif
__pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
{
PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_obj,0};
PyObject* values[1] = {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, 105, __pyx_L3_error)
if (__pyx_kwds_len > 0) {
switch (__pyx_nargs) {
case 1:
values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 105, __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, "to_string", 0) < (0)) __PYX_ERR(0, 105, __pyx_L3_error)
for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("to_string", 1, 1, 1, i); __PYX_ERR(0, 105, __pyx_L3_error) }
}
} else if (unlikely(__pyx_nargs != 1)) {
goto __pyx_L5_argtuple_error;
} else {
values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 105, __pyx_L3_error)
}
__pyx_v_obj = values[0];
}
goto __pyx_L6_skip;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("to_string", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 105, __pyx_L3_error)
__pyx_L6_skip:;
goto __pyx_L4_argument_unpacking_done;
__pyx_L3_error:;
for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
Py_XDECREF(values[__pyx_temp]);
}
__Pyx_AddTraceback("datamodel.converters.to_string", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
__pyx_r = __pyx_pf_9datamodel_10converters_2to_string(__pyx_self, __pyx_v_obj);
int __pyx_lineno = 0;
const char *__pyx_filename = NULL;
int __pyx_clineno = 0;
/* function exit code */
for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
Py_XDECREF(values[__pyx_temp]);
}
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_9datamodel_10converters_2to_string(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_obj) {
PyObject *__pyx_r = NULL;
__pyx_t_1 = __pyx_f_9datamodel_10converters_to_string(__pyx_v_obj, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 105, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
{
PyObject *__pyx_temp;
{
__pyx_temp = __pyx_r;
__pyx_r = __pyx_t_1;
}
__Pyx_XDECREF(__pyx_temp);
}
__pyx_t_1 = 0;
goto __pyx_L0;
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_AddTraceback("datamodel.converters.to_string", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
__pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_9datamodel_10converters_3to_string, 0, __pyx_mstate_global->__pyx_n_u_to_string_2, NULL, __pyx_mstate_global->__pyx_n_u_datamodel_converters, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[6])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 105, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
#endif
if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_to_string_2, __pyx_t_2) < (0)) __PYX_ERR(0, 105, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
0106: """
0107: Returns a string version of an object.
0108: """
+0109: if obj is None:
__pyx_t_1 = (__pyx_v_obj == Py_None);
if (__pyx_t_1) {
/* … */
}
+0110: return None
{
PyObject *__pyx_temp;
{
__pyx_temp = __pyx_r;
__pyx_r = ((PyObject*)Py_None); __Pyx_INCREF(Py_None);
}
__Pyx_XDECREF(__pyx_temp);
}
goto __pyx_L0;
+0111: if isinstance(obj, str):
__pyx_t_1 = PyUnicode_Check(__pyx_v_obj);
if (__pyx_t_1) {
/* … */
}
+0112: return obj
__pyx_t_2 = __pyx_v_obj;
__Pyx_INCREF(__pyx_t_2);
if (!(likely(PyUnicode_CheckExact(__pyx_t_2))||((__pyx_t_2) == Py_None) || __Pyx_RaiseUnexpectedTypeError("str", __pyx_t_2))) __PYX_ERR(0, 112, __pyx_L1_error)
{
PyObject *__pyx_temp;
{
__pyx_temp = __pyx_r;
__pyx_r = ((PyObject*)__pyx_t_2);
}
__Pyx_XDECREF(__pyx_temp);
}
__pyx_t_2 = 0;
goto __pyx_L0;
+0113: if isinstance(obj, bytes):
__pyx_t_1 = PyBytes_Check(__pyx_v_obj);
if (__pyx_t_1) {
/* … */
}
+0114: try:
{
/*try:*/ {
/* … */
}
__pyx_L6_error:;
__Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
/* … */
__pyx_L8_except_error:;
__Pyx_XGIVEREF(__pyx_t_3);
__Pyx_XGIVEREF(__pyx_t_4);
__Pyx_XGIVEREF(__pyx_t_5);
__Pyx_ExceptionReset(__pyx_t_3, __pyx_t_4, __pyx_t_5);
goto __pyx_L1_error;
__pyx_L10_try_return:;
__Pyx_XGIVEREF(__pyx_t_3);
__Pyx_XGIVEREF(__pyx_t_4);
__Pyx_XGIVEREF(__pyx_t_5);
__Pyx_ExceptionReset(__pyx_t_3, __pyx_t_4, __pyx_t_5);
goto __pyx_L0;
}
+0115: return obj.decode()
__pyx_t_6 = __pyx_v_obj;
__Pyx_INCREF(__pyx_t_6);
__pyx_t_7 = 0;
{
PyObject *__pyx_callargs[2] = {__pyx_t_6, NULL};
__pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_decode, __pyx_callargs+__pyx_t_7, (1-__pyx_t_7) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
__Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 115, __pyx_L6_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, 115, __pyx_L6_error)
{
PyObject *__pyx_temp;
{
__pyx_temp = __pyx_r;
__pyx_r = ((PyObject*)__pyx_t_2);
}
__Pyx_XDECREF(__pyx_temp);
}
__pyx_t_2 = 0;
goto __pyx_L10_try_return;
+0116: except UnicodeDecodeError as e:
__pyx_t_8 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(((PyTypeObject*)PyExc_UnicodeDecodeError)))); if (__pyx_t_8) { __Pyx_AddTraceback("datamodel.converters.to_string", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_2, &__pyx_t_6, &__pyx_t_9) < 0) __PYX_ERR(0, 116, __pyx_L8_except_error) __Pyx_XGOTREF(__pyx_t_2); __Pyx_XGOTREF(__pyx_t_6); __Pyx_XGOTREF(__pyx_t_9); __Pyx_INCREF(__pyx_t_6); __pyx_v_e = __pyx_t_6; /*try:*/ { /* … */ /*finally:*/ { __pyx_L17_error:; /*exception exit:*/{ __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign __pyx_t_16 = 0; __pyx_t_17 = 0; __pyx_t_18 = 0; __pyx_t_19 = 0; __pyx_t_20 = 0; __pyx_t_21 = 0; __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0; __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0; __Pyx_ExceptionSwap(&__pyx_t_19, &__pyx_t_20, &__pyx_t_21); if ( unlikely(__Pyx_GetException(&__pyx_t_16, &__pyx_t_17, &__pyx_t_18) < 0)) __Pyx_ErrFetch(&__pyx_t_16, &__pyx_t_17, &__pyx_t_18); __Pyx_XGOTREF(__pyx_t_16); __Pyx_XGOTREF(__pyx_t_17); __Pyx_XGOTREF(__pyx_t_18); __Pyx_XGOTREF(__pyx_t_19); __Pyx_XGOTREF(__pyx_t_20); __Pyx_XGOTREF(__pyx_t_21); __pyx_t_8 = __pyx_lineno; __pyx_t_14 = __pyx_clineno; __pyx_t_15 = __pyx_filename; { __Pyx_DECREF(__pyx_v_e); __pyx_v_e = 0; } __Pyx_XGIVEREF(__pyx_t_19); __Pyx_XGIVEREF(__pyx_t_20); __Pyx_XGIVEREF(__pyx_t_21); __Pyx_ExceptionReset(__pyx_t_19, __pyx_t_20, __pyx_t_21); __Pyx_XGIVEREF(__pyx_t_16); __Pyx_XGIVEREF(__pyx_t_17); __Pyx_XGIVEREF(__pyx_t_18); __Pyx_ErrRestore(__pyx_t_16, __pyx_t_17, __pyx_t_18); __pyx_t_16 = 0; __pyx_t_17 = 0; __pyx_t_18 = 0; __pyx_t_19 = 0; __pyx_t_20 = 0; __pyx_t_21 = 0; __pyx_lineno = __pyx_t_8; __pyx_clineno = __pyx_t_14; __pyx_filename = __pyx_t_15; goto __pyx_L8_except_error; } } } goto __pyx_L8_except_error;
+0117: raise ValueError(f"Cannot decode bytes: {e}") from e
__pyx_t_11 = NULL;
__pyx_t_12 = __Pyx_PyObject_FormatSimple(__pyx_v_e, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 117, __pyx_L17_error)
__Pyx_GOTREF(__pyx_t_12);
__pyx_t_13 = __Pyx_PyUnicode_Concat(__pyx_mstate_global->__pyx_kp_u_Cannot_decode_bytes, __pyx_t_12); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 117, __pyx_L17_error)
__Pyx_GOTREF(__pyx_t_13);
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
__pyx_t_7 = 1;
{
PyObject *__pyx_callargs[2] = {__pyx_t_11, __pyx_t_13};
__pyx_t_10 = __Pyx_PyObject_FastCall((PyObject*)(((PyTypeObject*)PyExc_ValueError)), __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__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, 117, __pyx_L17_error)
__Pyx_GOTREF(__pyx_t_10);
}
__Pyx_Raise(__pyx_t_10, 0, 0, __pyx_v_e);
__Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
__PYX_ERR(0, 117, __pyx_L17_error)
}
+0118: if isinstance(obj, (int, float, Decimal)):
__Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_Decimal); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 118, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_22 = PyLong_Check(__pyx_v_obj); if (!__pyx_t_22) { } else { __pyx_t_1 = __pyx_t_22; goto __pyx_L24_bool_binop_done; } __pyx_t_22 = PyFloat_Check(__pyx_v_obj); if (!__pyx_t_22) { } else { __pyx_t_1 = __pyx_t_22; goto __pyx_L24_bool_binop_done; } __pyx_t_22 = PyObject_IsInstance(__pyx_v_obj, __pyx_t_9); __pyx_t_1 = __pyx_t_22; __pyx_L24_bool_binop_done:; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; if (__pyx_t_1) { /* … */ }
0119: # its a number
+0120: return str(obj)
__pyx_t_9 = __Pyx_PyObject_Unicode(__pyx_v_obj); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 120, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; __pyx_r = ((PyObject*)__pyx_t_9); } __Pyx_XDECREF(__pyx_temp); } __pyx_t_9 = 0; goto __pyx_L0;
+0121: if callable(obj):
__pyx_t_1 = __Pyx_PyCallable_Check(__pyx_v_obj); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(0, 121, __pyx_L1_error) if (__pyx_t_1) { /* … */ }
0122: # its a function callable returning a value
+0123: try:
{
/*try:*/ {
/* … */
}
__pyx_L28_error:;
__Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
__Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
__Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
__Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
__Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
__Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
__pyx_L30_except_error:;
__Pyx_XGIVEREF(__pyx_t_5);
__Pyx_XGIVEREF(__pyx_t_4);
__Pyx_XGIVEREF(__pyx_t_3);
__Pyx_ExceptionReset(__pyx_t_5, __pyx_t_4, __pyx_t_3);
goto __pyx_L1_error;
__pyx_L32_try_return:;
__Pyx_XGIVEREF(__pyx_t_5);
__Pyx_XGIVEREF(__pyx_t_4);
__Pyx_XGIVEREF(__pyx_t_3);
__Pyx_ExceptionReset(__pyx_t_5, __pyx_t_4, __pyx_t_3);
goto __pyx_L0;
__pyx_L29_exception_handled:;
__Pyx_XGIVEREF(__pyx_t_5);
__Pyx_XGIVEREF(__pyx_t_4);
__Pyx_XGIVEREF(__pyx_t_3);
__Pyx_ExceptionReset(__pyx_t_5, __pyx_t_4, __pyx_t_3);
}
+0124: val = obj()
__pyx_t_6 = NULL;
__Pyx_INCREF(__pyx_v_obj);
__pyx_t_2 = __pyx_v_obj;
__pyx_t_7 = 1;
#if CYTHON_UNPACK_METHODS
if (unlikely(PyMethod_Check(__pyx_t_2))) {
__pyx_t_6 = PyMethod_GET_SELF(__pyx_t_2);
assert(__pyx_t_6);
PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_2);
__Pyx_INCREF(__pyx_t_6);
__Pyx_INCREF(__pyx__function);
__Pyx_DECREF_SET(__pyx_t_2, __pyx__function);
__pyx_t_7 = 0;
}
#endif
{
PyObject *__pyx_callargs[2] = {__pyx_t_6, NULL};
__pyx_t_9 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_2, __pyx_callargs+__pyx_t_7, (1-__pyx_t_7) | (__pyx_t_7*__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_9)) __PYX_ERR(0, 124, __pyx_L28_error)
__Pyx_GOTREF(__pyx_t_9);
}
__pyx_v_val = __pyx_t_9;
__pyx_t_9 = 0;
0125: # Recursively call to_string on that result:
+0126: return to_string(val)
__pyx_t_9 = __pyx_f_9datamodel_10converters_to_string(__pyx_v_val, 0); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 126, __pyx_L28_error) __Pyx_GOTREF(__pyx_t_9); { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; __pyx_r = ((PyObject*)__pyx_t_9); } __Pyx_XDECREF(__pyx_temp); } __pyx_t_9 = 0; goto __pyx_L32_try_return;
+0127: except Exception:
__pyx_t_14 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(((PyTypeObject*)PyExc_Exception)))); if (__pyx_t_14) { __Pyx_ErrRestore(0,0,0); goto __pyx_L29_exception_handled; } goto __pyx_L30_except_error;
0128: pass
0129: # For any other arbitrary type, explicitly fail:
+0130: raise ValueError(
__pyx_t_2 = NULL;
+0131: f"Cannot convert object of type {type(obj).__name__} to string."
__pyx_t_6 = __Pyx_PyObject_GetAttrStr(((PyObject *)Py_TYPE(__pyx_v_obj)), __pyx_mstate_global->__pyx_n_u_name); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 131, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_10 = __Pyx_PyObject_FormatSimple(__pyx_t_6, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 131, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_23[0] = __pyx_mstate_global->__pyx_kp_u_Cannot_convert_object_of_type; __pyx_t_23[1] = __pyx_t_10; __pyx_t_23[2] = __pyx_mstate_global->__pyx_kp_u_to_string; __pyx_t_24 = 41; #if __Pyx_PyUnicode_Join_CAN_USE_KIND_AND_LENGTH __pyx_t_24 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_23[1]); #endif __pyx_t_14 = 0; #if __Pyx_PyUnicode_Join_CAN_USE_KIND_AND_LENGTH __pyx_t_14 |= __Pyx_PyUnicode_KIND_04(__pyx_t_23[1]); #endif __pyx_t_6 = __Pyx_PyUnicode_Join(__pyx_t_23, 3, __pyx_t_24, __pyx_t_14); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 131, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_t_7 = 1; { PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_6}; __pyx_t_9 = __Pyx_PyObject_FastCall((PyObject*)(((PyTypeObject*)PyExc_ValueError)), __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__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_9)) __PYX_ERR(0, 130, __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, 130, __pyx_L1_error)
0132: )
0133:
+0134: cpdef object to_uuid(object obj):
static PyObject *__pyx_pw_9datamodel_10converters_5to_uuid(PyObject *__pyx_self,
#if CYTHON_VECTORCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyObject *__pyx_f_9datamodel_10converters_to_uuid(PyObject *__pyx_v_obj, CYTHON_UNUSED int __pyx_skip_dispatch) {
PyObject *__pyx_r = NULL;
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_2);
__Pyx_XDECREF(__pyx_t_4);
__Pyx_XDECREF(__pyx_t_5);
__Pyx_XDECREF(__pyx_t_10);
__Pyx_XDECREF(__pyx_t_11);
__Pyx_AddTraceback("datamodel.converters.to_uuid", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = 0;
__pyx_L0:;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* Python wrapper */
static PyObject *__pyx_pw_9datamodel_10converters_5to_uuid(PyObject *__pyx_self,
#if CYTHON_VECTORCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_9datamodel_10converters_4to_uuid, "to_uuid(obj)\n\nReturns a UUID version of a str column.\n ");
static PyMethodDef __pyx_mdef_9datamodel_10converters_5to_uuid = {"to_uuid", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9datamodel_10converters_5to_uuid, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_9datamodel_10converters_4to_uuid};
static PyObject *__pyx_pw_9datamodel_10converters_5to_uuid(PyObject *__pyx_self,
#if CYTHON_VECTORCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
PyObject *__pyx_v_obj = 0;
#if !CYTHON_VECTORCALL
CYTHON_UNUSED Py_ssize_t __pyx_nargs;
#endif
CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("to_uuid (wrapper)", 0);
#if !CYTHON_VECTORCALL
#if CYTHON_ASSUME_SAFE_SIZE
__pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
#else
__pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
#endif
#endif
__pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
{
PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_obj,0};
PyObject* values[1] = {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, 134, __pyx_L3_error)
if (__pyx_kwds_len > 0) {
switch (__pyx_nargs) {
case 1:
values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 134, __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, "to_uuid", 0) < (0)) __PYX_ERR(0, 134, __pyx_L3_error)
for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("to_uuid", 1, 1, 1, i); __PYX_ERR(0, 134, __pyx_L3_error) }
}
} else if (unlikely(__pyx_nargs != 1)) {
goto __pyx_L5_argtuple_error;
} else {
values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 134, __pyx_L3_error)
}
__pyx_v_obj = values[0];
}
goto __pyx_L6_skip;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("to_uuid", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 134, __pyx_L3_error)
__pyx_L6_skip:;
goto __pyx_L4_argument_unpacking_done;
__pyx_L3_error:;
for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
Py_XDECREF(values[__pyx_temp]);
}
__Pyx_AddTraceback("datamodel.converters.to_uuid", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
__pyx_r = __pyx_pf_9datamodel_10converters_4to_uuid(__pyx_self, __pyx_v_obj);
int __pyx_lineno = 0;
const char *__pyx_filename = NULL;
int __pyx_clineno = 0;
/* function exit code */
for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
Py_XDECREF(values[__pyx_temp]);
}
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_9datamodel_10converters_4to_uuid(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_obj) {
PyObject *__pyx_r = NULL;
__pyx_t_1 = __pyx_f_9datamodel_10converters_to_uuid(__pyx_v_obj, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 134, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
{
PyObject *__pyx_temp;
{
__pyx_temp = __pyx_r;
__pyx_r = __pyx_t_1;
}
__Pyx_XDECREF(__pyx_temp);
}
__pyx_t_1 = 0;
goto __pyx_L0;
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_AddTraceback("datamodel.converters.to_uuid", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
__pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_9datamodel_10converters_5to_uuid, 0, __pyx_mstate_global->__pyx_n_u_to_uuid, NULL, __pyx_mstate_global->__pyx_n_u_datamodel_converters, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[7])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 134, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
#endif
if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_to_uuid, __pyx_t_2) < (0)) __PYX_ERR(0, 134, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
0135: """Returns a UUID version of a str column.
0136: """
+0137: if isinstance(obj, pgproto.UUID):
__Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_pgproto); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 137, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_UUID); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 137, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_3 = PyObject_IsInstance(__pyx_v_obj, __pyx_t_2); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(0, 137, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (__pyx_t_3) { /* … */ }
0138: # If it's asyncpg's UUID, convert by casting to string first
+0139: return UUID(str(obj))
__pyx_t_1 = NULL;
__Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_UUID); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 139, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__pyx_t_5 = __Pyx_PyObject_Unicode(__pyx_v_obj); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 139, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__pyx_t_6 = 1;
#if CYTHON_UNPACK_METHODS
if (unlikely(PyMethod_Check(__pyx_t_4))) {
__pyx_t_1 = PyMethod_GET_SELF(__pyx_t_4);
assert(__pyx_t_1);
PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4);
__Pyx_INCREF(__pyx_t_1);
__Pyx_INCREF(__pyx__function);
__Pyx_DECREF_SET(__pyx_t_4, __pyx__function);
__pyx_t_6 = 0;
}
#endif
{
PyObject *__pyx_callargs[2] = {__pyx_t_1, __pyx_t_5};
__pyx_t_2 = __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_1); __pyx_t_1 = 0;
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 139, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
}
{
PyObject *__pyx_temp;
{
__pyx_temp = __pyx_r;
__pyx_r = __pyx_t_2;
}
__Pyx_XDECREF(__pyx_temp);
}
__pyx_t_2 = 0;
goto __pyx_L0;
+0140: if isinstance(obj, UUID):
__Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_UUID); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 140, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = PyObject_IsInstance(__pyx_v_obj, __pyx_t_2); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(0, 140, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (__pyx_t_3) { /* … */ }
0141: # already an uuid
+0142: return obj
{
PyObject *__pyx_temp;
{
__pyx_temp = __pyx_r;
__Pyx_INCREF(__pyx_v_obj);
__pyx_r = __pyx_v_obj;
}
__Pyx_XDECREF(__pyx_temp);
}
goto __pyx_L0;
+0143: elif callable(obj):
__pyx_t_3 = __Pyx_PyCallable_Check(__pyx_v_obj); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(0, 143, __pyx_L1_error) if (__pyx_t_3) { /* … */ }
0144: # its a function callable returning a value
+0145: try:
{
/*try:*/ {
/* … */
}
__pyx_L5_error:;
__Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
__Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
__Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
__Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
/* … */
__pyx_L9_try_return:;
__Pyx_XGIVEREF(__pyx_t_7);
__Pyx_XGIVEREF(__pyx_t_8);
__Pyx_XGIVEREF(__pyx_t_9);
__Pyx_ExceptionReset(__pyx_t_7, __pyx_t_8, __pyx_t_9);
goto __pyx_L0;
__pyx_L6_exception_handled:;
__Pyx_XGIVEREF(__pyx_t_7);
__Pyx_XGIVEREF(__pyx_t_8);
__Pyx_XGIVEREF(__pyx_t_9);
__Pyx_ExceptionReset(__pyx_t_7, __pyx_t_8, __pyx_t_9);
}
+0146: return UUID(obj())
__pyx_t_4 = NULL;
__Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_UUID); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 146, __pyx_L5_error)
__Pyx_GOTREF(__pyx_t_5);
__pyx_t_10 = NULL;
__Pyx_INCREF(__pyx_v_obj);
__pyx_t_11 = __pyx_v_obj;
__pyx_t_6 = 1;
#if CYTHON_UNPACK_METHODS
if (unlikely(PyMethod_Check(__pyx_t_11))) {
__pyx_t_10 = PyMethod_GET_SELF(__pyx_t_11);
assert(__pyx_t_10);
PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_11);
__Pyx_INCREF(__pyx_t_10);
__Pyx_INCREF(__pyx__function);
__Pyx_DECREF_SET(__pyx_t_11, __pyx__function);
__pyx_t_6 = 0;
}
#endif
{
PyObject *__pyx_callargs[2] = {__pyx_t_10, NULL};
__pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_11, __pyx_callargs+__pyx_t_6, (1-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
__Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
__Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 146, __pyx_L5_error)
__Pyx_GOTREF(__pyx_t_1);
}
__pyx_t_6 = 1;
#if CYTHON_UNPACK_METHODS
if (unlikely(PyMethod_Check(__pyx_t_5))) {
__pyx_t_4 = PyMethod_GET_SELF(__pyx_t_5);
assert(__pyx_t_4);
PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_5);
__Pyx_INCREF(__pyx_t_4);
__Pyx_INCREF(__pyx__function);
__Pyx_DECREF_SET(__pyx_t_5, __pyx__function);
__pyx_t_6 = 0;
}
#endif
{
PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_1};
__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_4); __pyx_t_4 = 0;
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 146, __pyx_L5_error)
__Pyx_GOTREF(__pyx_t_2);
}
{
PyObject *__pyx_temp;
{
__pyx_temp = __pyx_r;
__pyx_r = __pyx_t_2;
}
__Pyx_XDECREF(__pyx_temp);
}
__pyx_t_2 = 0;
goto __pyx_L9_try_return;
+0147: except:
/*except:*/ {
__Pyx_ErrRestore(0,0,0);
goto __pyx_L6_exception_handled;
}
0148: pass
+0149: try:
{
/*try:*/ {
/* … */
}
__pyx_L13_error:;
__Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
__Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
__Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
__Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
/* … */
__pyx_L15_except_error:;
__Pyx_XGIVEREF(__pyx_t_9);
__Pyx_XGIVEREF(__pyx_t_8);
__Pyx_XGIVEREF(__pyx_t_7);
__Pyx_ExceptionReset(__pyx_t_9, __pyx_t_8, __pyx_t_7);
goto __pyx_L1_error;
__pyx_L17_try_return:;
__Pyx_XGIVEREF(__pyx_t_9);
__Pyx_XGIVEREF(__pyx_t_8);
__Pyx_XGIVEREF(__pyx_t_7);
__Pyx_ExceptionReset(__pyx_t_9, __pyx_t_8, __pyx_t_7);
goto __pyx_L0;
__pyx_L16_except_return:;
__Pyx_XGIVEREF(__pyx_t_9);
__Pyx_XGIVEREF(__pyx_t_8);
__Pyx_XGIVEREF(__pyx_t_7);
__Pyx_ExceptionReset(__pyx_t_9, __pyx_t_8, __pyx_t_7);
goto __pyx_L0;
}
+0150: return UUID(str(obj))
__pyx_t_5 = NULL;
__Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_UUID); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 150, __pyx_L13_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_4 = __Pyx_PyObject_Unicode(__pyx_v_obj); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 150, __pyx_L13_error)
__Pyx_GOTREF(__pyx_t_4);
__pyx_t_6 = 1;
#if CYTHON_UNPACK_METHODS
if (unlikely(PyMethod_Check(__pyx_t_1))) {
__pyx_t_5 = PyMethod_GET_SELF(__pyx_t_1);
assert(__pyx_t_5);
PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_1);
__Pyx_INCREF(__pyx_t_5);
__Pyx_INCREF(__pyx__function);
__Pyx_DECREF_SET(__pyx_t_1, __pyx__function);
__pyx_t_6 = 0;
}
#endif
{
PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_4};
__pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_1, __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;
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 150, __pyx_L13_error)
__Pyx_GOTREF(__pyx_t_2);
}
{
PyObject *__pyx_temp;
{
__pyx_temp = __pyx_r;
__pyx_r = __pyx_t_2;
}
__Pyx_XDECREF(__pyx_temp);
}
__pyx_t_2 = 0;
goto __pyx_L17_try_return;
+0151: except ValueError:
__pyx_t_12 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(((PyTypeObject*)PyExc_ValueError)))); if (__pyx_t_12) { __Pyx_ErrRestore(0,0,0);
+0152: return None
{
PyObject *__pyx_temp;
{
__pyx_temp = __pyx_r;
__pyx_r = Py_None; __Pyx_INCREF(Py_None);
}
__Pyx_XDECREF(__pyx_temp);
}
goto __pyx_L16_except_return;
}
goto __pyx_L15_except_error;
0153:
0154:
+0155: cpdef str slugify_camelcase(str obj):
static PyObject *__pyx_pw_9datamodel_10converters_7slugify_camelcase(PyObject *__pyx_self,
#if CYTHON_VECTORCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyObject *__pyx_f_9datamodel_10converters_slugify_camelcase(PyObject *__pyx_v_obj, CYTHON_UNUSED int __pyx_skip_dispatch) {
PyObject *__pyx_v_slugified = NULL;
Py_ssize_t __pyx_v_i;
Py_UCS4 __pyx_v_c;
PyObject *__pyx_r = NULL;
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_4);
__Pyx_XDECREF(__pyx_t_5);
__Pyx_XDECREF(__pyx_t_9);
__Pyx_AddTraceback("datamodel.converters.slugify_camelcase", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = 0;
__pyx_L0:;
__Pyx_XDECREF(__pyx_v_slugified);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* Python wrapper */
static PyObject *__pyx_pw_9datamodel_10converters_7slugify_camelcase(PyObject *__pyx_self,
#if CYTHON_VECTORCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_9datamodel_10converters_6slugify_camelcase, "slugify_camelcase(str obj) -> str\n\nslugify_camelcase.\n\nConverting CamelCase into a spaced version, but don\342\200\231t double-space\nif the string already contains spaces or uppercase letters follow\nexisting spaces.");
static PyMethodDef __pyx_mdef_9datamodel_10converters_7slugify_camelcase = {"slugify_camelcase", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9datamodel_10converters_7slugify_camelcase, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_9datamodel_10converters_6slugify_camelcase};
static PyObject *__pyx_pw_9datamodel_10converters_7slugify_camelcase(PyObject *__pyx_self,
#if CYTHON_VECTORCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
PyObject *__pyx_v_obj = 0;
#if !CYTHON_VECTORCALL
CYTHON_UNUSED Py_ssize_t __pyx_nargs;
#endif
CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("slugify_camelcase (wrapper)", 0);
#if !CYTHON_VECTORCALL
#if CYTHON_ASSUME_SAFE_SIZE
__pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
#else
__pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
#endif
#endif
__pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
{
PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_obj,0};
PyObject* values[1] = {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, 155, __pyx_L3_error)
if (__pyx_kwds_len > 0) {
switch (__pyx_nargs) {
case 1:
values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 155, __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, "slugify_camelcase", 0) < (0)) __PYX_ERR(0, 155, __pyx_L3_error)
for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("slugify_camelcase", 1, 1, 1, i); __PYX_ERR(0, 155, __pyx_L3_error) }
}
} else if (unlikely(__pyx_nargs != 1)) {
goto __pyx_L5_argtuple_error;
} else {
values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 155, __pyx_L3_error)
}
__pyx_v_obj = ((PyObject*)values[0]);
}
goto __pyx_L6_skip;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("slugify_camelcase", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 155, __pyx_L3_error)
__pyx_L6_skip:;
goto __pyx_L4_argument_unpacking_done;
__pyx_L3_error:;
for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
Py_XDECREF(values[__pyx_temp]);
}
__Pyx_AddTraceback("datamodel.converters.slugify_camelcase", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_obj), (&PyUnicode_Type), 1, "obj", 1))) __PYX_ERR(0, 155, __pyx_L1_error)
__pyx_r = __pyx_pf_9datamodel_10converters_6slugify_camelcase(__pyx_self, __pyx_v_obj);
int __pyx_lineno = 0;
const char *__pyx_filename = NULL;
int __pyx_clineno = 0;
/* function exit code */
goto __pyx_L0;
__pyx_L1_error:;
__pyx_r = NULL;
for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
Py_XDECREF(values[__pyx_temp]);
}
goto __pyx_L7_cleaned_up;
__pyx_L0:;
for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
Py_XDECREF(values[__pyx_temp]);
}
__pyx_L7_cleaned_up:;
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_9datamodel_10converters_6slugify_camelcase(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_obj) {
PyObject *__pyx_r = NULL;
__pyx_t_1 = __pyx_f_9datamodel_10converters_slugify_camelcase(__pyx_v_obj, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 155, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
{
PyObject *__pyx_temp;
{
__pyx_temp = __pyx_r;
__pyx_r = __pyx_t_1;
}
__Pyx_XDECREF(__pyx_temp);
}
__pyx_t_1 = 0;
goto __pyx_L0;
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_AddTraceback("datamodel.converters.slugify_camelcase", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
__pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_9datamodel_10converters_7slugify_camelcase, 0, __pyx_mstate_global->__pyx_n_u_slugify_camelcase, NULL, __pyx_mstate_global->__pyx_n_u_datamodel_converters, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[8])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 155, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
#endif
if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_slugify_camelcase, __pyx_t_2) < (0)) __PYX_ERR(0, 155, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
0156: """slugify_camelcase.
0157:
0158: Converting CamelCase into a spaced version, but don’t double-space
0159: if the string already contains spaces or uppercase letters follow
0160: existing spaces.
0161: """
+0162: if not obj:
if (__pyx_v_obj == Py_None) __pyx_t_1 = 0;
else
{
Py_ssize_t __pyx_temp = __Pyx_PyUnicode_IS_TRUE(__pyx_v_obj);
if (unlikely(((!CYTHON_ASSUME_SAFE_SIZE) && __pyx_temp < 0))) __PYX_ERR(0, 162, __pyx_L1_error)
__pyx_t_1 = (__pyx_temp != 0);
}
__pyx_t_2 = (!__pyx_t_1);
if (__pyx_t_2) {
/* … */
}
+0163: return obj
{
PyObject *__pyx_temp;
{
__pyx_temp = __pyx_r;
__Pyx_INCREF(__pyx_v_obj);
__pyx_r = __pyx_v_obj;
}
__Pyx_XDECREF(__pyx_temp);
}
goto __pyx_L0;
0164:
+0165: slugified = [obj[0]]
__pyx_t_3 = __Pyx_GetItemInt_Unicode(__pyx_v_obj, 0, long, 1, __Pyx_PyLong_From_long, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(__pyx_t_3 == (Py_UCS4)-1)) __PYX_ERR(0, 165, __pyx_L1_error) __pyx_t_4 = __Pyx_PyUnicode_FromOrdinal(__pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 165, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = PyList_New(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 165, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_GIVEREF(__pyx_t_4); if (__Pyx_PyList_SET_ITEM(__pyx_t_5, 0, __pyx_t_4) != (0)) __PYX_ERR(0, 165, __pyx_L1_error); __pyx_t_4 = 0; __pyx_v_slugified = ((PyObject*)__pyx_t_5); __pyx_t_5 = 0;
+0166: for i in range(1, len(obj)):
if (unlikely(__pyx_v_obj == Py_None)) {
PyErr_SetString(PyExc_TypeError, "object of type \047NoneType\047 has no len()");
__PYX_ERR(0, 166, __pyx_L1_error)
}
__pyx_t_6 = __Pyx_PyUnicode_GET_LENGTH(__pyx_v_obj); if (unlikely(__pyx_t_6 == ((Py_ssize_t)-1))) __PYX_ERR(0, 166, __pyx_L1_error)
__pyx_t_7 = __pyx_t_6;
for (__pyx_t_8 = 1; __pyx_t_8 < __pyx_t_7; __pyx_t_8+=1) {
__pyx_v_i = __pyx_t_8;
+0167: c = obj[i]
__pyx_t_3 = __Pyx_GetItemInt_Unicode(__pyx_v_obj, __pyx_v_i, Py_ssize_t, 1, PyLong_FromSsize_t, 1, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(__pyx_t_3 == (Py_UCS4)-1)) __PYX_ERR(0, 167, __pyx_L1_error) __pyx_v_c = __pyx_t_3;
0168: # Condition: if c is uppercase AND the previous character isn't a space,
0169: # insert a space before it.
+0170: if c.isupper() and not slugified[-1].isspace():
__pyx_t_1 = __Pyx_Py_UNICODE_ISUPPER(__pyx_v_c); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(0, 170, __pyx_L1_error) if (__pyx_t_1) { } else { __pyx_t_2 = __pyx_t_1; goto __pyx_L7_bool_binop_done; } __pyx_t_9 = __Pyx_GetItemInt_List(__pyx_v_slugified, -1L, long, 1, __Pyx_PyLong_From_long, 1, 1, 1, __Pyx_ReferenceSharing_OwnStrongReference); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 170, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_4 = __pyx_t_9; __Pyx_INCREF(__pyx_t_4); __pyx_t_10 = 0; { PyObject *__pyx_callargs[2] = {__pyx_t_4, NULL}; __pyx_t_5 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_isspace, __pyx_callargs+__pyx_t_10, (1-__pyx_t_10) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 170, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); } __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 170, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_11 = (!__pyx_t_1); __pyx_t_2 = __pyx_t_11; __pyx_L7_bool_binop_done:; if (__pyx_t_2) { /* … */ }
+0171: slugified.append(' ')
__pyx_t_12 = __Pyx_PyList_Append(__pyx_v_slugified, __pyx_mstate_global->__pyx_kp_u__3); if (unlikely(__pyx_t_12 == ((int)-1))) __PYX_ERR(0, 171, __pyx_L1_error)
+0172: slugified.append(c)
__pyx_t_5 = __Pyx_PyUnicode_FromOrdinal(__pyx_v_c); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 172, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_12 = __Pyx_PyList_Append(__pyx_v_slugified, __pyx_t_5); if (unlikely(__pyx_t_12 == ((int)-1))) __PYX_ERR(0, 172, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; }
+0173: return ''.join(slugified)
__pyx_t_5 = PyUnicode_Join(__pyx_mstate_global->__pyx_kp_u__2, __pyx_v_slugified); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 173, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; __pyx_r = ((PyObject*)__pyx_t_5); } __Pyx_XDECREF(__pyx_temp); } __pyx_t_5 = 0; goto __pyx_L0;
0174:
0175:
+0176: cpdef datetime.date to_date(object obj):
static PyObject *__pyx_pw_9datamodel_10converters_9to_date(PyObject *__pyx_self,
#if CYTHON_VECTORCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyDateTime_Date *__pyx_f_9datamodel_10converters_to_date(PyObject *__pyx_v_obj, CYTHON_UNUSED int __pyx_skip_dispatch) {
PyDateTime_Date *__pyx_r = NULL;
__Pyx_INCREF(__pyx_v_obj);
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_2);
__Pyx_XDECREF(__pyx_t_4);
__Pyx_XDECREF(__pyx_t_9);
__Pyx_XDECREF(__pyx_t_10);
__Pyx_XDECREF(__pyx_t_11);
__Pyx_XDECREF(__pyx_t_12);
__Pyx_XDECREF(__pyx_t_16);
__Pyx_AddTraceback("datamodel.converters.to_date", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = 0;
__pyx_L0:;
__Pyx_XDECREF(__pyx_v_obj);
__Pyx_XGIVEREF((PyObject *)__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* Python wrapper */
static PyObject *__pyx_pw_9datamodel_10converters_9to_date(PyObject *__pyx_self,
#if CYTHON_VECTORCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_9datamodel_10converters_8to_date, "to_date(obj) -> date\n\nto_date.\n\nReturns obj converted to date.");
static PyMethodDef __pyx_mdef_9datamodel_10converters_9to_date = {"to_date", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9datamodel_10converters_9to_date, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_9datamodel_10converters_8to_date};
static PyObject *__pyx_pw_9datamodel_10converters_9to_date(PyObject *__pyx_self,
#if CYTHON_VECTORCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
PyObject *__pyx_v_obj = 0;
#if !CYTHON_VECTORCALL
CYTHON_UNUSED Py_ssize_t __pyx_nargs;
#endif
CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("to_date (wrapper)", 0);
#if !CYTHON_VECTORCALL
#if CYTHON_ASSUME_SAFE_SIZE
__pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
#else
__pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
#endif
#endif
__pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
{
PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_obj,0};
PyObject* values[1] = {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, 176, __pyx_L3_error)
if (__pyx_kwds_len > 0) {
switch (__pyx_nargs) {
case 1:
values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 176, __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, "to_date", 0) < (0)) __PYX_ERR(0, 176, __pyx_L3_error)
for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("to_date", 1, 1, 1, i); __PYX_ERR(0, 176, __pyx_L3_error) }
}
} else if (unlikely(__pyx_nargs != 1)) {
goto __pyx_L5_argtuple_error;
} else {
values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 176, __pyx_L3_error)
}
__pyx_v_obj = values[0];
}
goto __pyx_L6_skip;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("to_date", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 176, __pyx_L3_error)
__pyx_L6_skip:;
goto __pyx_L4_argument_unpacking_done;
__pyx_L3_error:;
for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
Py_XDECREF(values[__pyx_temp]);
}
__Pyx_AddTraceback("datamodel.converters.to_date", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
__pyx_r = __pyx_pf_9datamodel_10converters_8to_date(__pyx_self, __pyx_v_obj);
int __pyx_lineno = 0;
const char *__pyx_filename = NULL;
int __pyx_clineno = 0;
/* function exit code */
for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
Py_XDECREF(values[__pyx_temp]);
}
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_9datamodel_10converters_8to_date(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_obj) {
PyObject *__pyx_r = NULL;
__pyx_t_1 = ((PyObject *)__pyx_f_9datamodel_10converters_to_date(__pyx_v_obj, 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 176, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
{
PyObject *__pyx_temp;
{
__pyx_temp = __pyx_r;
__pyx_r = __pyx_t_1;
}
__Pyx_XDECREF(__pyx_temp);
}
__pyx_t_1 = 0;
goto __pyx_L0;
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_AddTraceback("datamodel.converters.to_date", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
__pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_9datamodel_10converters_9to_date, 0, __pyx_mstate_global->__pyx_n_u_to_date, NULL, __pyx_mstate_global->__pyx_n_u_datamodel_converters, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[9])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 176, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
#endif
if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_to_date, __pyx_t_2) < (0)) __PYX_ERR(0, 176, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
0177: """to_date.
0178:
0179: Returns obj converted to date.
0180: """
+0181: if obj is None:
__pyx_t_1 = (__pyx_v_obj == Py_None);
if (__pyx_t_1) {
/* … */
}
+0182: return None
{
PyDateTime_Date *__pyx_temp;
{
__pyx_temp = __pyx_r;
__pyx_r = ((PyDateTime_Date *)Py_None); __Pyx_INCREF(Py_None);
}
__Pyx_XDECREF((PyObject *)__pyx_temp);
}
goto __pyx_L0;
+0183: elif obj == _MISSING_TYPE:
__Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_MISSING_TYPE); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 183, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_1 = __Pyx_PyObject_CompareBoolEq_object_object(__pyx_v_obj, __pyx_t_2, Py_EQ); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 183, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (__pyx_t_1) { /* … */ }
+0184: return None
{
PyDateTime_Date *__pyx_temp;
{
__pyx_temp = __pyx_r;
__pyx_r = ((PyDateTime_Date *)Py_None); __Pyx_INCREF(Py_None);
}
__Pyx_XDECREF((PyObject *)__pyx_temp);
}
goto __pyx_L0;
+0185: if isinstance(obj, datetime.date):
__pyx_t_1 = __Pyx_TypeCheck(__pyx_v_obj, __pyx_mstate_global->__pyx_ptype_7cpython_8datetime_date);
if (__pyx_t_1) {
/* … */
}
+0186: return obj
if (!(likely(((__pyx_v_obj) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_obj, __pyx_mstate_global->__pyx_ptype_7cpython_8datetime_date))))) __PYX_ERR(0, 186, __pyx_L1_error) { PyDateTime_Date *__pyx_temp; { __pyx_temp = __pyx_r; __Pyx_INCREF(__pyx_v_obj); __pyx_r = ((PyDateTime_Date *)__pyx_v_obj); } __Pyx_XDECREF((PyObject *)__pyx_temp); } goto __pyx_L0;
+0187: elif isinstance(obj, (datetime.datetime, datetime.timedelta)):
__pyx_t_3 = __Pyx_TypeCheck(__pyx_v_obj, __pyx_mstate_global->__pyx_ptype_7cpython_8datetime_datetime); if (!__pyx_t_3) { } else { __pyx_t_1 = __pyx_t_3; goto __pyx_L5_bool_binop_done; } __pyx_t_3 = __Pyx_TypeCheck(__pyx_v_obj, __pyx_mstate_global->__pyx_ptype_7cpython_8datetime_timedelta); __pyx_t_1 = __pyx_t_3; __pyx_L5_bool_binop_done:; if (__pyx_t_1) { /* … */ }
+0188: return obj.date()
__pyx_t_4 = __pyx_v_obj;
__Pyx_INCREF(__pyx_t_4);
__pyx_t_5 = 0;
{
PyObject *__pyx_callargs[2] = {__pyx_t_4, NULL};
__pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_date, __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, 188, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
}
if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_7cpython_8datetime_date))))) __PYX_ERR(0, 188, __pyx_L1_error)
{
PyDateTime_Date *__pyx_temp;
{
__pyx_temp = __pyx_r;
__pyx_r = ((PyDateTime_Date *)__pyx_t_2);
}
__Pyx_XDECREF((PyObject *)__pyx_temp);
}
__pyx_t_2 = 0;
goto __pyx_L0;
+0189: if isinstance(obj, (bytes, bytearray)):
__pyx_t_3 = PyBytes_Check(__pyx_v_obj);
if (!__pyx_t_3) {
} else {
__pyx_t_1 = __pyx_t_3;
goto __pyx_L8_bool_binop_done;
}
__pyx_t_3 = PyByteArray_Check(__pyx_v_obj);
__pyx_t_1 = __pyx_t_3;
__pyx_L8_bool_binop_done:;
if (__pyx_t_1) {
/* … */
}
+0190: obj = obj.decode("ascii")
__pyx_t_4 = __pyx_v_obj;
__Pyx_INCREF(__pyx_t_4);
__pyx_t_5 = 0;
{
PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_mstate_global->__pyx_n_u_ascii};
__pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_decode, __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_2)) __PYX_ERR(0, 190, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
}
__Pyx_DECREF_SET(__pyx_v_obj, __pyx_t_2);
__pyx_t_2 = 0;
0191: # Handle Unix epoch via Rust's `to_timestamp`
+0192: if isinstance(obj, (int, float)):
__pyx_t_3 = PyLong_Check(__pyx_v_obj); if (!__pyx_t_3) { } else { __pyx_t_1 = __pyx_t_3; goto __pyx_L11_bool_binop_done; } __pyx_t_3 = PyFloat_Check(__pyx_v_obj); __pyx_t_1 = __pyx_t_3; __pyx_L11_bool_binop_done:; if (__pyx_t_1) { /* … */ }
+0193: try:
{
/*try:*/ {
/* … */
}
__pyx_L13_error:;
__Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
__Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
__Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
__Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
__Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
__pyx_L15_except_error:;
__Pyx_XGIVEREF(__pyx_t_6);
__Pyx_XGIVEREF(__pyx_t_7);
__Pyx_XGIVEREF(__pyx_t_8);
__Pyx_ExceptionReset(__pyx_t_6, __pyx_t_7, __pyx_t_8);
goto __pyx_L1_error;
__pyx_L17_try_return:;
__Pyx_XGIVEREF(__pyx_t_6);
__Pyx_XGIVEREF(__pyx_t_7);
__Pyx_XGIVEREF(__pyx_t_8);
__Pyx_ExceptionReset(__pyx_t_6, __pyx_t_7, __pyx_t_8);
goto __pyx_L0;
__pyx_L14_exception_handled:;
__Pyx_XGIVEREF(__pyx_t_6);
__Pyx_XGIVEREF(__pyx_t_7);
__Pyx_XGIVEREF(__pyx_t_8);
__Pyx_ExceptionReset(__pyx_t_6, __pyx_t_7, __pyx_t_8);
}
+0194: return rc.to_timestamp(obj).date()
__pyx_t_10 = NULL;
__Pyx_GetModuleGlobalName(__pyx_t_11, __pyx_mstate_global->__pyx_n_u_rc); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 194, __pyx_L13_error)
__Pyx_GOTREF(__pyx_t_11);
__pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_t_11, __pyx_mstate_global->__pyx_n_u_to_timestamp); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 194, __pyx_L13_error)
__Pyx_GOTREF(__pyx_t_12);
__Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
__pyx_t_5 = 1;
#if CYTHON_UNPACK_METHODS
if (unlikely(PyMethod_Check(__pyx_t_12))) {
__pyx_t_10 = PyMethod_GET_SELF(__pyx_t_12);
assert(__pyx_t_10);
PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_12);
__Pyx_INCREF(__pyx_t_10);
__Pyx_INCREF(__pyx__function);
__Pyx_DECREF_SET(__pyx_t_12, __pyx__function);
__pyx_t_5 = 0;
}
#endif
{
PyObject *__pyx_callargs[2] = {__pyx_t_10, __pyx_v_obj};
__pyx_t_9 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_12, __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_12); __pyx_t_12 = 0;
if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 194, __pyx_L13_error)
__Pyx_GOTREF(__pyx_t_9);
}
__pyx_t_4 = __pyx_t_9;
__Pyx_INCREF(__pyx_t_4);
__pyx_t_5 = 0;
{
PyObject *__pyx_callargs[2] = {__pyx_t_4, NULL};
__pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_date, __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_9); __pyx_t_9 = 0;
if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 194, __pyx_L13_error)
__Pyx_GOTREF(__pyx_t_2);
}
if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_7cpython_8datetime_date))))) __PYX_ERR(0, 194, __pyx_L13_error)
{
PyDateTime_Date *__pyx_temp;
{
__pyx_temp = __pyx_r;
__pyx_r = ((PyDateTime_Date *)__pyx_t_2);
}
__Pyx_XDECREF((PyObject *)__pyx_temp);
}
__pyx_t_2 = 0;
goto __pyx_L17_try_return;
+0195: except ValueError:
__pyx_t_13 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(((PyTypeObject*)PyExc_ValueError)))); if (__pyx_t_13) { __Pyx_ErrRestore(0,0,0); goto __pyx_L14_exception_handled; } goto __pyx_L15_except_error;
0196: pass
0197: # using rust todate function
+0198: try:
{
/*try:*/ {
/* … */
}
__pyx_L21_error:;
__Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
__Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
__Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
__Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
__Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
__pyx_L23_except_error:;
__Pyx_XGIVEREF(__pyx_t_8);
__Pyx_XGIVEREF(__pyx_t_7);
__Pyx_XGIVEREF(__pyx_t_6);
__Pyx_ExceptionReset(__pyx_t_8, __pyx_t_7, __pyx_t_6);
goto __pyx_L1_error;
__pyx_L25_try_return:;
__Pyx_XGIVEREF(__pyx_t_8);
__Pyx_XGIVEREF(__pyx_t_7);
__Pyx_XGIVEREF(__pyx_t_6);
__Pyx_ExceptionReset(__pyx_t_8, __pyx_t_7, __pyx_t_6);
goto __pyx_L0;
__pyx_L22_exception_handled:;
__Pyx_XGIVEREF(__pyx_t_8);
__Pyx_XGIVEREF(__pyx_t_7);
__Pyx_XGIVEREF(__pyx_t_6);
__Pyx_ExceptionReset(__pyx_t_8, __pyx_t_7, __pyx_t_6);
}
+0199: return rc.to_date(obj)
__pyx_t_9 = NULL;
__Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_rc); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 199, __pyx_L21_error)
__Pyx_GOTREF(__pyx_t_4);
__pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_to_date); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 199, __pyx_L21_error)
__Pyx_GOTREF(__pyx_t_12);
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__pyx_t_5 = 1;
#if CYTHON_UNPACK_METHODS
if (unlikely(PyMethod_Check(__pyx_t_12))) {
__pyx_t_9 = PyMethod_GET_SELF(__pyx_t_12);
assert(__pyx_t_9);
PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_12);
__Pyx_INCREF(__pyx_t_9);
__Pyx_INCREF(__pyx__function);
__Pyx_DECREF_SET(__pyx_t_12, __pyx__function);
__pyx_t_5 = 0;
}
#endif
{
PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_v_obj};
__pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_12, __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_12); __pyx_t_12 = 0;
if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 199, __pyx_L21_error)
__Pyx_GOTREF(__pyx_t_2);
}
if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_7cpython_8datetime_date))))) __PYX_ERR(0, 199, __pyx_L21_error)
{
PyDateTime_Date *__pyx_temp;
{
__pyx_temp = __pyx_r;
__pyx_r = ((PyDateTime_Date *)__pyx_t_2);
}
__Pyx_XDECREF((PyObject *)__pyx_temp);
}
__pyx_t_2 = 0;
goto __pyx_L25_try_return;
+0200: except ValueError:
__pyx_t_13 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(((PyTypeObject*)PyExc_ValueError)))); if (__pyx_t_13) { __Pyx_ErrRestore(0,0,0); goto __pyx_L22_exception_handled; } goto __pyx_L23_except_error;
0201: pass
0202: # Fallback to Cython-native ciso8601 parsing
+0203: try:
{
/*try:*/ {
/* … */
}
__pyx_L29_error:;
__Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
__Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
__Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
__Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
__Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
__pyx_L31_except_error:;
__Pyx_XGIVEREF(__pyx_t_6);
__Pyx_XGIVEREF(__pyx_t_7);
__Pyx_XGIVEREF(__pyx_t_8);
__Pyx_ExceptionReset(__pyx_t_6, __pyx_t_7, __pyx_t_8);
goto __pyx_L1_error;
__pyx_L33_try_return:;
__Pyx_XGIVEREF(__pyx_t_6);
__Pyx_XGIVEREF(__pyx_t_7);
__Pyx_XGIVEREF(__pyx_t_8);
__Pyx_ExceptionReset(__pyx_t_6, __pyx_t_7, __pyx_t_8);
goto __pyx_L0;
}
+0204: return ciso8601.parse_datetime(obj).date()
__pyx_t_4 = NULL;
__Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_mstate_global->__pyx_n_u_ciso8601); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 204, __pyx_L29_error)
__Pyx_GOTREF(__pyx_t_10);
__pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_mstate_global->__pyx_n_u_parse_datetime); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 204, __pyx_L29_error)
__Pyx_GOTREF(__pyx_t_11);
__Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
__pyx_t_5 = 1;
#if CYTHON_UNPACK_METHODS
if (unlikely(PyMethod_Check(__pyx_t_11))) {
__pyx_t_4 = PyMethod_GET_SELF(__pyx_t_11);
assert(__pyx_t_4);
PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_11);
__Pyx_INCREF(__pyx_t_4);
__Pyx_INCREF(__pyx__function);
__Pyx_DECREF_SET(__pyx_t_11, __pyx__function);
__pyx_t_5 = 0;
}
#endif
{
PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_v_obj};
__pyx_t_9 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_11, __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_11); __pyx_t_11 = 0;
if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 204, __pyx_L29_error)
__Pyx_GOTREF(__pyx_t_9);
}
__pyx_t_12 = __pyx_t_9;
__Pyx_INCREF(__pyx_t_12);
__pyx_t_5 = 0;
{
PyObject *__pyx_callargs[2] = {__pyx_t_12, NULL};
__pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_date, __pyx_callargs+__pyx_t_5, (1-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
__Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 204, __pyx_L29_error)
__Pyx_GOTREF(__pyx_t_2);
}
if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_7cpython_8datetime_date))))) __PYX_ERR(0, 204, __pyx_L29_error)
{
PyDateTime_Date *__pyx_temp;
{
__pyx_temp = __pyx_r;
__pyx_r = ((PyDateTime_Date *)__pyx_t_2);
}
__Pyx_XDECREF((PyObject *)__pyx_temp);
}
__pyx_t_2 = 0;
goto __pyx_L33_try_return;
+0205: except ValueError:
__pyx_t_13 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(((PyTypeObject*)PyExc_ValueError)))); if (__pyx_t_13) { __Pyx_AddTraceback("datamodel.converters.to_date", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_2, &__pyx_t_9, &__pyx_t_12) < 0) __PYX_ERR(0, 205, __pyx_L31_except_error) __Pyx_XGOTREF(__pyx_t_2); __Pyx_XGOTREF(__pyx_t_9); __Pyx_XGOTREF(__pyx_t_12);
0206: pass
+0207: raise ValueError(
__pyx_t_4 = NULL;
+0208: f"Can't convert invalid data *{obj}* to date"
__pyx_t_10 = __Pyx_PyObject_FormatSimple(__pyx_v_obj, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 208, __pyx_L31_except_error) __Pyx_GOTREF(__pyx_t_10); __pyx_t_14[0] = __pyx_mstate_global->__pyx_kp_u_Can_t_convert_invalid_data; __pyx_t_14[1] = __pyx_t_10; __pyx_t_14[2] = __pyx_mstate_global->__pyx_kp_u_to_date_2; __pyx_t_15 = 37; #if __Pyx_PyUnicode_Join_CAN_USE_KIND_AND_LENGTH __pyx_t_15 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_14[1]); #endif __pyx_t_13 = 0; #if __Pyx_PyUnicode_Join_CAN_USE_KIND_AND_LENGTH __pyx_t_13 |= __Pyx_PyUnicode_KIND_04(__pyx_t_14[1]); #endif __pyx_t_16 = __Pyx_PyUnicode_Join(__pyx_t_14, 3, __pyx_t_15, __pyx_t_13); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 208, __pyx_L31_except_error) __Pyx_GOTREF(__pyx_t_16); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_t_5 = 1; { PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_16}; __pyx_t_11 = __Pyx_PyObject_FastCall((PyObject*)(((PyTypeObject*)PyExc_ValueError)), __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_16); __pyx_t_16 = 0; if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 207, __pyx_L31_except_error) __Pyx_GOTREF(__pyx_t_11); } __Pyx_Raise(__pyx_t_11, 0, 0, 0); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __PYX_ERR(0, 207, __pyx_L31_except_error) } goto __pyx_L31_except_error;
0209: )
0210:
0211:
+0212: cpdef datetime.datetime to_datetime(object obj):
static PyObject *__pyx_pw_9datamodel_10converters_11to_datetime(PyObject *__pyx_self,
#if CYTHON_VECTORCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyDateTime_DateTime *__pyx_f_9datamodel_10converters_to_datetime(PyObject *__pyx_v_obj, CYTHON_UNUSED int __pyx_skip_dispatch) {
PyDateTime_DateTime *__pyx_r = NULL;
__Pyx_INCREF(__pyx_v_obj);
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_2);
__Pyx_XDECREF(__pyx_t_4);
__Pyx_XDECREF(__pyx_t_9);
__Pyx_XDECREF(__pyx_t_10);
__Pyx_XDECREF(__pyx_t_12);
__Pyx_XDECREF(__pyx_t_13);
__Pyx_XDECREF(__pyx_t_16);
__Pyx_AddTraceback("datamodel.converters.to_datetime", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = 0;
__pyx_L0:;
__Pyx_XDECREF(__pyx_v_obj);
__Pyx_XGIVEREF((PyObject *)__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* Python wrapper */
static PyObject *__pyx_pw_9datamodel_10converters_11to_datetime(PyObject *__pyx_self,
#if CYTHON_VECTORCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_9datamodel_10converters_10to_datetime, "to_datetime(obj) -> datetime\n\nto_datetime.\n\nReturns obj converted to datetime.");
static PyMethodDef __pyx_mdef_9datamodel_10converters_11to_datetime = {"to_datetime", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9datamodel_10converters_11to_datetime, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_9datamodel_10converters_10to_datetime};
static PyObject *__pyx_pw_9datamodel_10converters_11to_datetime(PyObject *__pyx_self,
#if CYTHON_VECTORCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
PyObject *__pyx_v_obj = 0;
#if !CYTHON_VECTORCALL
CYTHON_UNUSED Py_ssize_t __pyx_nargs;
#endif
CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("to_datetime (wrapper)", 0);
#if !CYTHON_VECTORCALL
#if CYTHON_ASSUME_SAFE_SIZE
__pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
#else
__pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
#endif
#endif
__pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
{
PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_obj,0};
PyObject* values[1] = {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, 212, __pyx_L3_error)
if (__pyx_kwds_len > 0) {
switch (__pyx_nargs) {
case 1:
values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 212, __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, "to_datetime", 0) < (0)) __PYX_ERR(0, 212, __pyx_L3_error)
for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("to_datetime", 1, 1, 1, i); __PYX_ERR(0, 212, __pyx_L3_error) }
}
} else if (unlikely(__pyx_nargs != 1)) {
goto __pyx_L5_argtuple_error;
} else {
values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 212, __pyx_L3_error)
}
__pyx_v_obj = values[0];
}
goto __pyx_L6_skip;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("to_datetime", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 212, __pyx_L3_error)
__pyx_L6_skip:;
goto __pyx_L4_argument_unpacking_done;
__pyx_L3_error:;
for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
Py_XDECREF(values[__pyx_temp]);
}
__Pyx_AddTraceback("datamodel.converters.to_datetime", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
__pyx_r = __pyx_pf_9datamodel_10converters_10to_datetime(__pyx_self, __pyx_v_obj);
int __pyx_lineno = 0;
const char *__pyx_filename = NULL;
int __pyx_clineno = 0;
/* function exit code */
for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
Py_XDECREF(values[__pyx_temp]);
}
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_9datamodel_10converters_10to_datetime(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_obj) {
PyObject *__pyx_r = NULL;
__pyx_t_1 = ((PyObject *)__pyx_f_9datamodel_10converters_to_datetime(__pyx_v_obj, 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 212, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
{
PyObject *__pyx_temp;
{
__pyx_temp = __pyx_r;
__pyx_r = __pyx_t_1;
}
__Pyx_XDECREF(__pyx_temp);
}
__pyx_t_1 = 0;
goto __pyx_L0;
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_AddTraceback("datamodel.converters.to_datetime", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
__pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_9datamodel_10converters_11to_datetime, 0, __pyx_mstate_global->__pyx_n_u_to_datetime, NULL, __pyx_mstate_global->__pyx_n_u_datamodel_converters, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[10])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 212, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
#endif
if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_to_datetime, __pyx_t_2) < (0)) __PYX_ERR(0, 212, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
0213: """to_datetime.
0214:
0215: Returns obj converted to datetime.
0216: """
+0217: if obj is None:
__pyx_t_1 = (__pyx_v_obj == Py_None);
if (__pyx_t_1) {
/* … */
}
+0218: return None
{
PyDateTime_DateTime *__pyx_temp;
{
__pyx_temp = __pyx_r;
__pyx_r = ((PyDateTime_DateTime *)Py_None); __Pyx_INCREF(Py_None);
}
__Pyx_XDECREF((PyObject *)__pyx_temp);
}
goto __pyx_L0;
+0219: elif obj == _MISSING_TYPE:
__Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_MISSING_TYPE); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 219, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_1 = __Pyx_PyObject_CompareBoolEq_object_object(__pyx_v_obj, __pyx_t_2, Py_EQ); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 219, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (__pyx_t_1) { /* … */ }
+0220: return None
{
PyDateTime_DateTime *__pyx_temp;
{
__pyx_temp = __pyx_r;
__pyx_r = ((PyDateTime_DateTime *)Py_None); __Pyx_INCREF(Py_None);
}
__Pyx_XDECREF((PyObject *)__pyx_temp);
}
goto __pyx_L0;
+0221: if isinstance(obj, datetime.datetime):
__pyx_t_1 = __Pyx_TypeCheck(__pyx_v_obj, __pyx_mstate_global->__pyx_ptype_7cpython_8datetime_datetime);
if (__pyx_t_1) {
/* … */
}
+0222: return obj
if (!(likely(((__pyx_v_obj) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_obj, __pyx_mstate_global->__pyx_ptype_7cpython_8datetime_datetime))))) __PYX_ERR(0, 222, __pyx_L1_error) { PyDateTime_DateTime *__pyx_temp; { __pyx_temp = __pyx_r; __Pyx_INCREF(__pyx_v_obj); __pyx_r = ((PyDateTime_DateTime *)__pyx_v_obj); } __Pyx_XDECREF((PyObject *)__pyx_temp); } goto __pyx_L0;
+0223: if isinstance(obj, (bytes, bytearray)):
__pyx_t_3 = PyBytes_Check(__pyx_v_obj);
if (!__pyx_t_3) {
} else {
__pyx_t_1 = __pyx_t_3;
goto __pyx_L6_bool_binop_done;
}
__pyx_t_3 = PyByteArray_Check(__pyx_v_obj);
__pyx_t_1 = __pyx_t_3;
__pyx_L6_bool_binop_done:;
if (__pyx_t_1) {
/* … */
}
+0224: obj = obj.decode("ascii")
__pyx_t_4 = __pyx_v_obj;
__Pyx_INCREF(__pyx_t_4);
__pyx_t_5 = 0;
{
PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_mstate_global->__pyx_n_u_ascii};
__pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_decode, __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_2)) __PYX_ERR(0, 224, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
}
__Pyx_DECREF_SET(__pyx_v_obj, __pyx_t_2);
__pyx_t_2 = 0;
0225: # Handle Unix epoch via Rust's `to_timestamp`
+0226: if isinstance(obj, (int, float)):
__pyx_t_3 = PyLong_Check(__pyx_v_obj); if (!__pyx_t_3) { } else { __pyx_t_1 = __pyx_t_3; goto __pyx_L9_bool_binop_done; } __pyx_t_3 = PyFloat_Check(__pyx_v_obj); __pyx_t_1 = __pyx_t_3; __pyx_L9_bool_binop_done:; if (__pyx_t_1) { /* … */ }
+0227: try:
{
/*try:*/ {
/* … */
}
__pyx_L11_error:;
__Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
__Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
__Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
__pyx_L13_except_error:;
__Pyx_XGIVEREF(__pyx_t_6);
__Pyx_XGIVEREF(__pyx_t_7);
__Pyx_XGIVEREF(__pyx_t_8);
__Pyx_ExceptionReset(__pyx_t_6, __pyx_t_7, __pyx_t_8);
goto __pyx_L1_error;
__pyx_L15_try_return:;
__Pyx_XGIVEREF(__pyx_t_6);
__Pyx_XGIVEREF(__pyx_t_7);
__Pyx_XGIVEREF(__pyx_t_8);
__Pyx_ExceptionReset(__pyx_t_6, __pyx_t_7, __pyx_t_8);
goto __pyx_L0;
__pyx_L12_exception_handled:;
__Pyx_XGIVEREF(__pyx_t_6);
__Pyx_XGIVEREF(__pyx_t_7);
__Pyx_XGIVEREF(__pyx_t_8);
__Pyx_ExceptionReset(__pyx_t_6, __pyx_t_7, __pyx_t_8);
}
+0228: return rc.to_timestamp(obj)
__pyx_t_4 = NULL;
__Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_rc); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 228, __pyx_L11_error)
__Pyx_GOTREF(__pyx_t_9);
__pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_to_timestamp); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 228, __pyx_L11_error)
__Pyx_GOTREF(__pyx_t_10);
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
__pyx_t_5 = 1;
#if CYTHON_UNPACK_METHODS
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_10, __pyx__function);
__pyx_t_5 = 0;
}
#endif
{
PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_v_obj};
__pyx_t_2 = __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_10); __pyx_t_10 = 0;
if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 228, __pyx_L11_error)
__Pyx_GOTREF(__pyx_t_2);
}
if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_7cpython_8datetime_datetime))))) __PYX_ERR(0, 228, __pyx_L11_error)
{
PyDateTime_DateTime *__pyx_temp;
{
__pyx_temp = __pyx_r;
__pyx_r = ((PyDateTime_DateTime *)__pyx_t_2);
}
__Pyx_XDECREF((PyObject *)__pyx_temp);
}
__pyx_t_2 = 0;
goto __pyx_L15_try_return;
+0229: except ValueError:
__pyx_t_11 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(((PyTypeObject*)PyExc_ValueError)))); if (__pyx_t_11) { __Pyx_ErrRestore(0,0,0); goto __pyx_L12_exception_handled; } goto __pyx_L13_except_error;
0230: pass
+0231: try:
{
/*try:*/ {
/* … */
}
__pyx_L19_error:;
__Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
__Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
__Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
__pyx_L21_except_error:;
__Pyx_XGIVEREF(__pyx_t_8);
__Pyx_XGIVEREF(__pyx_t_7);
__Pyx_XGIVEREF(__pyx_t_6);
__Pyx_ExceptionReset(__pyx_t_8, __pyx_t_7, __pyx_t_6);
goto __pyx_L1_error;
__pyx_L23_try_return:;
__Pyx_XGIVEREF(__pyx_t_8);
__Pyx_XGIVEREF(__pyx_t_7);
__Pyx_XGIVEREF(__pyx_t_6);
__Pyx_ExceptionReset(__pyx_t_8, __pyx_t_7, __pyx_t_6);
goto __pyx_L0;
__pyx_L20_exception_handled:;
__Pyx_XGIVEREF(__pyx_t_8);
__Pyx_XGIVEREF(__pyx_t_7);
__Pyx_XGIVEREF(__pyx_t_6);
__Pyx_ExceptionReset(__pyx_t_8, __pyx_t_7, __pyx_t_6);
}
+0232: return ciso8601.parse_datetime(obj)
__pyx_t_10 = NULL;
__Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_ciso8601); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 232, __pyx_L19_error)
__Pyx_GOTREF(__pyx_t_4);
__pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_parse_datetime); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 232, __pyx_L19_error)
__Pyx_GOTREF(__pyx_t_9);
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__pyx_t_5 = 1;
#if CYTHON_UNPACK_METHODS
if (unlikely(PyMethod_Check(__pyx_t_9))) {
__pyx_t_10 = PyMethod_GET_SELF(__pyx_t_9);
assert(__pyx_t_10);
PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_9);
__Pyx_INCREF(__pyx_t_10);
__Pyx_INCREF(__pyx__function);
__Pyx_DECREF_SET(__pyx_t_9, __pyx__function);
__pyx_t_5 = 0;
}
#endif
{
PyObject *__pyx_callargs[2] = {__pyx_t_10, __pyx_v_obj};
__pyx_t_2 = __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_10); __pyx_t_10 = 0;
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 232, __pyx_L19_error)
__Pyx_GOTREF(__pyx_t_2);
}
if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_7cpython_8datetime_datetime))))) __PYX_ERR(0, 232, __pyx_L19_error)
{
PyDateTime_DateTime *__pyx_temp;
{
__pyx_temp = __pyx_r;
__pyx_r = ((PyDateTime_DateTime *)__pyx_t_2);
}
__Pyx_XDECREF((PyObject *)__pyx_temp);
}
__pyx_t_2 = 0;
goto __pyx_L23_try_return;
+0233: except ValueError:
__pyx_t_11 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(((PyTypeObject*)PyExc_ValueError)))); if (__pyx_t_11) { __Pyx_ErrRestore(0,0,0); goto __pyx_L20_exception_handled; } goto __pyx_L21_except_error;
0234: pass
+0235: try:
{
/*try:*/ {
/* … */
}
__pyx_L27_error:;
__Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
__Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
__Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
__pyx_L29_except_error:;
__Pyx_XGIVEREF(__pyx_t_6);
__Pyx_XGIVEREF(__pyx_t_7);
__Pyx_XGIVEREF(__pyx_t_8);
__Pyx_ExceptionReset(__pyx_t_6, __pyx_t_7, __pyx_t_8);
goto __pyx_L1_error;
__pyx_L31_try_return:;
__Pyx_XGIVEREF(__pyx_t_6);
__Pyx_XGIVEREF(__pyx_t_7);
__Pyx_XGIVEREF(__pyx_t_8);
__Pyx_ExceptionReset(__pyx_t_6, __pyx_t_7, __pyx_t_8);
goto __pyx_L0;
}
+0236: return rc.to_datetime(obj)
__pyx_t_9 = NULL;
__Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_mstate_global->__pyx_n_u_rc); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 236, __pyx_L27_error)
__Pyx_GOTREF(__pyx_t_10);
__pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_mstate_global->__pyx_n_u_to_datetime); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 236, __pyx_L27_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
__pyx_t_5 = 1;
#if CYTHON_UNPACK_METHODS
if (unlikely(PyMethod_Check(__pyx_t_4))) {
__pyx_t_9 = PyMethod_GET_SELF(__pyx_t_4);
assert(__pyx_t_9);
PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4);
__Pyx_INCREF(__pyx_t_9);
__Pyx_INCREF(__pyx__function);
__Pyx_DECREF_SET(__pyx_t_4, __pyx__function);
__pyx_t_5 = 0;
}
#endif
{
PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_v_obj};
__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_9); __pyx_t_9 = 0;
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 236, __pyx_L27_error)
__Pyx_GOTREF(__pyx_t_2);
}
if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_7cpython_8datetime_datetime))))) __PYX_ERR(0, 236, __pyx_L27_error)
{
PyDateTime_DateTime *__pyx_temp;
{
__pyx_temp = __pyx_r;
__pyx_r = ((PyDateTime_DateTime *)__pyx_t_2);
}
__Pyx_XDECREF((PyObject *)__pyx_temp);
}
__pyx_t_2 = 0;
goto __pyx_L31_try_return;
+0237: except ValueError:
__pyx_t_11 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(((PyTypeObject*)PyExc_ValueError)))); if (__pyx_t_11) { __Pyx_AddTraceback("datamodel.converters.to_datetime", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_2, &__pyx_t_4, &__pyx_t_9) < 0) __PYX_ERR(0, 237, __pyx_L29_except_error) __Pyx_XGOTREF(__pyx_t_2); __Pyx_XGOTREF(__pyx_t_4); __Pyx_XGOTREF(__pyx_t_9);
+0238: raise ValueError(
__pyx_t_12 = NULL;
+0239: f"Can't convert invalid data *{obj}* to datetime"
__pyx_t_13 = __Pyx_PyObject_FormatSimple(__pyx_v_obj, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 239, __pyx_L29_except_error) __Pyx_GOTREF(__pyx_t_13); __pyx_t_14[0] = __pyx_mstate_global->__pyx_kp_u_Can_t_convert_invalid_data; __pyx_t_14[1] = __pyx_t_13; __pyx_t_14[2] = __pyx_mstate_global->__pyx_kp_u_to_datetime_2; __pyx_t_15 = 41; #if __Pyx_PyUnicode_Join_CAN_USE_KIND_AND_LENGTH __pyx_t_15 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_14[1]); #endif __pyx_t_11 = 0; #if __Pyx_PyUnicode_Join_CAN_USE_KIND_AND_LENGTH __pyx_t_11 |= __Pyx_PyUnicode_KIND_04(__pyx_t_14[1]); #endif __pyx_t_16 = __Pyx_PyUnicode_Join(__pyx_t_14, 3, __pyx_t_15, __pyx_t_11); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 239, __pyx_L29_except_error) __Pyx_GOTREF(__pyx_t_16); __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; __pyx_t_5 = 1; { PyObject *__pyx_callargs[2] = {__pyx_t_12, __pyx_t_16}; __pyx_t_10 = __Pyx_PyObject_FastCall((PyObject*)(((PyTypeObject*)PyExc_ValueError)), __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 238, __pyx_L29_except_error) __Pyx_GOTREF(__pyx_t_10); } __Pyx_Raise(__pyx_t_10, 0, 0, 0); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __PYX_ERR(0, 238, __pyx_L29_except_error) } goto __pyx_L29_except_error;
0240: )
0241:
0242:
+0243: cpdef object to_integer(object obj):
static PyObject *__pyx_pw_9datamodel_10converters_13to_integer(PyObject *__pyx_self,
#if CYTHON_VECTORCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyObject *__pyx_f_9datamodel_10converters_to_integer(PyObject *__pyx_v_obj, CYTHON_UNUSED int __pyx_skip_dispatch) {
PyObject *__pyx_v_e = NULL;
PyObject *__pyx_r = NULL;
__Pyx_INCREF(__pyx_v_obj);
/* … */
/* function exit code */
__pyx_r = Py_None; __Pyx_INCREF(Py_None);
goto __pyx_L0;
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_2);
__Pyx_XDECREF(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_9);
__Pyx_XDECREF(__pyx_t_10);
__Pyx_XDECREF(__pyx_t_11);
__Pyx_XDECREF(__pyx_t_12);
__Pyx_XDECREF(__pyx_t_13);
__Pyx_AddTraceback("datamodel.converters.to_integer", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = 0;
__pyx_L0:;
__Pyx_XDECREF(__pyx_v_e);
__Pyx_XDECREF(__pyx_v_obj);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* Python wrapper */
static PyObject *__pyx_pw_9datamodel_10converters_13to_integer(PyObject *__pyx_self,
#if CYTHON_VECTORCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_9datamodel_10converters_12to_integer, "to_integer(obj)\n\nto_integer.\n\nReturns object converted to integer.");
static PyMethodDef __pyx_mdef_9datamodel_10converters_13to_integer = {"to_integer", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9datamodel_10converters_13to_integer, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_9datamodel_10converters_12to_integer};
static PyObject *__pyx_pw_9datamodel_10converters_13to_integer(PyObject *__pyx_self,
#if CYTHON_VECTORCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
PyObject *__pyx_v_obj = 0;
#if !CYTHON_VECTORCALL
CYTHON_UNUSED Py_ssize_t __pyx_nargs;
#endif
CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("to_integer (wrapper)", 0);
#if !CYTHON_VECTORCALL
#if CYTHON_ASSUME_SAFE_SIZE
__pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
#else
__pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
#endif
#endif
__pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
{
PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_obj,0};
PyObject* values[1] = {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, 243, __pyx_L3_error)
if (__pyx_kwds_len > 0) {
switch (__pyx_nargs) {
case 1:
values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 243, __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, "to_integer", 0) < (0)) __PYX_ERR(0, 243, __pyx_L3_error)
for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("to_integer", 1, 1, 1, i); __PYX_ERR(0, 243, __pyx_L3_error) }
}
} else if (unlikely(__pyx_nargs != 1)) {
goto __pyx_L5_argtuple_error;
} else {
values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 243, __pyx_L3_error)
}
__pyx_v_obj = values[0];
}
goto __pyx_L6_skip;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("to_integer", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 243, __pyx_L3_error)
__pyx_L6_skip:;
goto __pyx_L4_argument_unpacking_done;
__pyx_L3_error:;
for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
Py_XDECREF(values[__pyx_temp]);
}
__Pyx_AddTraceback("datamodel.converters.to_integer", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
__pyx_r = __pyx_pf_9datamodel_10converters_12to_integer(__pyx_self, __pyx_v_obj);
int __pyx_lineno = 0;
const char *__pyx_filename = NULL;
int __pyx_clineno = 0;
/* function exit code */
for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
Py_XDECREF(values[__pyx_temp]);
}
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_9datamodel_10converters_12to_integer(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_obj) {
PyObject *__pyx_r = NULL;
__pyx_t_1 = __pyx_f_9datamodel_10converters_to_integer(__pyx_v_obj, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 243, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
{
PyObject *__pyx_temp;
{
__pyx_temp = __pyx_r;
__pyx_r = __pyx_t_1;
}
__Pyx_XDECREF(__pyx_temp);
}
__pyx_t_1 = 0;
goto __pyx_L0;
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_AddTraceback("datamodel.converters.to_integer", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
__pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_9datamodel_10converters_13to_integer, 0, __pyx_mstate_global->__pyx_n_u_to_integer, NULL, __pyx_mstate_global->__pyx_n_u_datamodel_converters, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[11])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 243, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
#endif
if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_to_integer, __pyx_t_2) < (0)) __PYX_ERR(0, 243, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
0244: """to_integer.
0245:
0246: Returns object converted to integer.
0247: """
+0248: if obj is None:
__pyx_t_1 = (__pyx_v_obj == Py_None);
if (__pyx_t_1) {
/* … */
}
+0249: return None
{
PyObject *__pyx_temp;
{
__pyx_temp = __pyx_r;
__pyx_r = Py_None; __Pyx_INCREF(Py_None);
}
__Pyx_XDECREF(__pyx_temp);
}
goto __pyx_L0;
+0250: if isinstance(obj, int):
__pyx_t_1 = PyLong_Check(__pyx_v_obj);
if (__pyx_t_1) {
/* … */
}
+0251: return obj
{
PyObject *__pyx_temp;
{
__pyx_temp = __pyx_r;
__Pyx_INCREF(__pyx_v_obj);
__pyx_r = __pyx_v_obj;
}
__Pyx_XDECREF(__pyx_temp);
}
goto __pyx_L0;
+0252: if isinstance(obj, unicode):
__pyx_t_1 = PyUnicode_Check(__pyx_v_obj);
if (__pyx_t_1) {
/* … */
}
+0253: obj = obj.encode("ascii")
__pyx_t_3 = __pyx_v_obj;
__Pyx_INCREF(__pyx_t_3);
__pyx_t_4 = 0;
{
PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_mstate_global->__pyx_n_u_ascii};
__pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_encode, __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, 253, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
}
__Pyx_DECREF_SET(__pyx_v_obj, __pyx_t_2);
__pyx_t_2 = 0;
+0254: if isinstance(obj, bytes):
__pyx_t_1 = PyBytes_Check(__pyx_v_obj);
if (__pyx_t_1) {
/* … */
}
+0255: try:
{
/*try:*/ {
/* … */
}
__pyx_L7_error:;
__Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
/* … */
__pyx_L9_except_error:;
__Pyx_XGIVEREF(__pyx_t_5);
__Pyx_XGIVEREF(__pyx_t_6);
__Pyx_XGIVEREF(__pyx_t_7);
__Pyx_ExceptionReset(__pyx_t_5, __pyx_t_6, __pyx_t_7);
goto __pyx_L1_error;
__pyx_L11_try_return:;
__Pyx_XGIVEREF(__pyx_t_5);
__Pyx_XGIVEREF(__pyx_t_6);
__Pyx_XGIVEREF(__pyx_t_7);
__Pyx_ExceptionReset(__pyx_t_5, __pyx_t_6, __pyx_t_7);
goto __pyx_L0;
}
+0256: return int(obj)
__pyx_t_2 = __Pyx_PyNumber_Int(__pyx_v_obj); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 256, __pyx_L7_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; __pyx_r = __pyx_t_2; } __Pyx_XDECREF(__pyx_temp); } __pyx_t_2 = 0; goto __pyx_L11_try_return;
+0257: except (TypeError, ValueError) as e:
__pyx_t_8 = __Pyx_PyErr_ExceptionMatches2(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), ((PyObject *)(((PyTypeObject*)PyExc_ValueError))));
if (__pyx_t_8) {
__Pyx_AddTraceback("datamodel.converters.to_integer", __pyx_clineno, __pyx_lineno, __pyx_filename);
if (__Pyx_GetException(&__pyx_t_2, &__pyx_t_3, &__pyx_t_9) < 0) __PYX_ERR(0, 257, __pyx_L9_except_error)
__Pyx_XGOTREF(__pyx_t_2);
__Pyx_XGOTREF(__pyx_t_3);
__Pyx_XGOTREF(__pyx_t_9);
__Pyx_INCREF(__pyx_t_3);
__pyx_v_e = __pyx_t_3;
/*try:*/ {
/* … */
/*finally:*/ {
__pyx_L18_error:;
/*exception exit:*/{
__Pyx_PyThreadState_declare
__Pyx_PyThreadState_assign
__pyx_t_16 = 0; __pyx_t_17 = 0; __pyx_t_18 = 0; __pyx_t_19 = 0; __pyx_t_20 = 0; __pyx_t_21 = 0;
__Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
__Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
__Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
__Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
__Pyx_ExceptionSwap(&__pyx_t_19, &__pyx_t_20, &__pyx_t_21);
if ( unlikely(__Pyx_GetException(&__pyx_t_16, &__pyx_t_17, &__pyx_t_18) < 0)) __Pyx_ErrFetch(&__pyx_t_16, &__pyx_t_17, &__pyx_t_18);
__Pyx_XGOTREF(__pyx_t_16);
__Pyx_XGOTREF(__pyx_t_17);
__Pyx_XGOTREF(__pyx_t_18);
__Pyx_XGOTREF(__pyx_t_19);
__Pyx_XGOTREF(__pyx_t_20);
__Pyx_XGOTREF(__pyx_t_21);
__pyx_t_8 = __pyx_lineno; __pyx_t_14 = __pyx_clineno; __pyx_t_15 = __pyx_filename;
{
__Pyx_DECREF(__pyx_v_e); __pyx_v_e = 0;
}
__Pyx_XGIVEREF(__pyx_t_19);
__Pyx_XGIVEREF(__pyx_t_20);
__Pyx_XGIVEREF(__pyx_t_21);
__Pyx_ExceptionReset(__pyx_t_19, __pyx_t_20, __pyx_t_21);
__Pyx_XGIVEREF(__pyx_t_16);
__Pyx_XGIVEREF(__pyx_t_17);
__Pyx_XGIVEREF(__pyx_t_18);
__Pyx_ErrRestore(__pyx_t_16, __pyx_t_17, __pyx_t_18);
__pyx_t_16 = 0; __pyx_t_17 = 0; __pyx_t_18 = 0; __pyx_t_19 = 0; __pyx_t_20 = 0; __pyx_t_21 = 0;
__pyx_lineno = __pyx_t_8; __pyx_clineno = __pyx_t_14; __pyx_filename = __pyx_t_15;
goto __pyx_L9_except_error;
}
}
}
goto __pyx_L9_except_error;
+0258: raise ValueError(
__pyx_t_11 = NULL;
+0259: f"Invalid conversion to Integer of {obj}"
__pyx_t_12 = __Pyx_PyObject_FormatSimple(__pyx_v_obj, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 259, __pyx_L18_error) __Pyx_GOTREF(__pyx_t_12); __pyx_t_13 = __Pyx_PyUnicode_Concat(__pyx_mstate_global->__pyx_kp_u_Invalid_conversion_to_Integer_of, __pyx_t_12); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 259, __pyx_L18_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __pyx_t_4 = 1; { PyObject *__pyx_callargs[2] = {__pyx_t_11, __pyx_t_13}; __pyx_t_10 = __Pyx_PyObject_FastCall((PyObject*)(((PyTypeObject*)PyExc_ValueError)), __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (__pyx_t_4*__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, 258, __pyx_L18_error) __Pyx_GOTREF(__pyx_t_10); }
+0260: ) from e
__Pyx_Raise(__pyx_t_10, 0, 0, __pyx_v_e); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __PYX_ERR(0, 258, __pyx_L18_error) }
+0261: elif callable(obj):
__pyx_t_1 = __Pyx_PyCallable_Check(__pyx_v_obj); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(0, 261, __pyx_L1_error) if (__pyx_t_1) { /* … */ goto __pyx_L6; }
0262: # its a function callable returning a value
+0263: try:
{
/*try:*/ {
/* … */
}
__pyx_L24_error:;
__Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
__Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
__Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 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_9); __pyx_t_9 = 0;
/* … */
__pyx_L28_try_return:;
__Pyx_XGIVEREF(__pyx_t_7);
__Pyx_XGIVEREF(__pyx_t_6);
__Pyx_XGIVEREF(__pyx_t_5);
__Pyx_ExceptionReset(__pyx_t_7, __pyx_t_6, __pyx_t_5);
goto __pyx_L0;
__pyx_L25_exception_handled:;
__Pyx_XGIVEREF(__pyx_t_7);
__Pyx_XGIVEREF(__pyx_t_6);
__Pyx_XGIVEREF(__pyx_t_5);
__Pyx_ExceptionReset(__pyx_t_7, __pyx_t_6, __pyx_t_5);
}
+0264: return obj()
__pyx_t_3 = NULL;
__Pyx_INCREF(__pyx_v_obj);
__pyx_t_2 = __pyx_v_obj;
__pyx_t_4 = 1;
#if CYTHON_UNPACK_METHODS
if (unlikely(PyMethod_Check(__pyx_t_2))) {
__pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
assert(__pyx_t_3);
PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_2);
__Pyx_INCREF(__pyx_t_3);
__Pyx_INCREF(__pyx__function);
__Pyx_DECREF_SET(__pyx_t_2, __pyx__function);
__pyx_t_4 = 0;
}
#endif
{
PyObject *__pyx_callargs[2] = {__pyx_t_3, NULL};
__pyx_t_9 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_2, __pyx_callargs+__pyx_t_4, (1-__pyx_t_4) | (__pyx_t_4*__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_9)) __PYX_ERR(0, 264, __pyx_L24_error)
__Pyx_GOTREF(__pyx_t_9);
}
{
PyObject *__pyx_temp;
{
__pyx_temp = __pyx_r;
__pyx_r = __pyx_t_9;
}
__Pyx_XDECREF(__pyx_temp);
}
__pyx_t_9 = 0;
goto __pyx_L28_try_return;
+0265: except:
/*except:*/ {
__Pyx_ErrRestore(0,0,0);
goto __pyx_L25_exception_handled;
}
0266: pass
0267: else:
+0268: try:
/*else*/ {
{
/*try:*/ {
/* … */
}
__pyx_L32_error:;
__Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
__Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
__Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 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_9); __pyx_t_9 = 0;
/* … */
__pyx_L34_except_error:;
__Pyx_XGIVEREF(__pyx_t_5);
__Pyx_XGIVEREF(__pyx_t_6);
__Pyx_XGIVEREF(__pyx_t_7);
__Pyx_ExceptionReset(__pyx_t_5, __pyx_t_6, __pyx_t_7);
goto __pyx_L1_error;
__pyx_L36_try_return:;
__Pyx_XGIVEREF(__pyx_t_5);
__Pyx_XGIVEREF(__pyx_t_6);
__Pyx_XGIVEREF(__pyx_t_7);
__Pyx_ExceptionReset(__pyx_t_5, __pyx_t_6, __pyx_t_7);
goto __pyx_L0;
}
}
__pyx_L6:;
+0269: return int(obj)
__pyx_t_9 = __Pyx_PyNumber_Int(__pyx_v_obj); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 269, __pyx_L32_error) __Pyx_GOTREF(__pyx_t_9); { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; __pyx_r = __pyx_t_9; } __Pyx_XDECREF(__pyx_temp); } __pyx_t_9 = 0; goto __pyx_L36_try_return;
+0270: except (TypeError, ValueError) as e:
__pyx_t_14 = __Pyx_PyErr_ExceptionMatches2(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), ((PyObject *)(((PyTypeObject*)PyExc_ValueError))));
if (__pyx_t_14) {
__Pyx_AddTraceback("datamodel.converters.to_integer", __pyx_clineno, __pyx_lineno, __pyx_filename);
if (__Pyx_GetException(&__pyx_t_9, &__pyx_t_2, &__pyx_t_3) < 0) __PYX_ERR(0, 270, __pyx_L34_except_error)
__Pyx_XGOTREF(__pyx_t_9);
__Pyx_XGOTREF(__pyx_t_2);
__Pyx_XGOTREF(__pyx_t_3);
__Pyx_INCREF(__pyx_t_2);
__pyx_v_e = __pyx_t_2;
/*try:*/ {
/* … */
/*finally:*/ {
__pyx_L43_error:;
/*exception exit:*/{
__Pyx_PyThreadState_declare
__Pyx_PyThreadState_assign
__pyx_t_21 = 0; __pyx_t_20 = 0; __pyx_t_19 = 0; __pyx_t_18 = 0; __pyx_t_17 = 0; __pyx_t_16 = 0;
__Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
__Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
__Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
__Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
__Pyx_ExceptionSwap(&__pyx_t_18, &__pyx_t_17, &__pyx_t_16);
if ( unlikely(__Pyx_GetException(&__pyx_t_21, &__pyx_t_20, &__pyx_t_19) < 0)) __Pyx_ErrFetch(&__pyx_t_21, &__pyx_t_20, &__pyx_t_19);
__Pyx_XGOTREF(__pyx_t_21);
__Pyx_XGOTREF(__pyx_t_20);
__Pyx_XGOTREF(__pyx_t_19);
__Pyx_XGOTREF(__pyx_t_18);
__Pyx_XGOTREF(__pyx_t_17);
__Pyx_XGOTREF(__pyx_t_16);
__pyx_t_14 = __pyx_lineno; __pyx_t_8 = __pyx_clineno; __pyx_t_15 = __pyx_filename;
{
__Pyx_DECREF(__pyx_v_e); __pyx_v_e = 0;
}
__Pyx_XGIVEREF(__pyx_t_18);
__Pyx_XGIVEREF(__pyx_t_17);
__Pyx_XGIVEREF(__pyx_t_16);
__Pyx_ExceptionReset(__pyx_t_18, __pyx_t_17, __pyx_t_16);
__Pyx_XGIVEREF(__pyx_t_21);
__Pyx_XGIVEREF(__pyx_t_20);
__Pyx_XGIVEREF(__pyx_t_19);
__Pyx_ErrRestore(__pyx_t_21, __pyx_t_20, __pyx_t_19);
__pyx_t_21 = 0; __pyx_t_20 = 0; __pyx_t_19 = 0; __pyx_t_18 = 0; __pyx_t_17 = 0; __pyx_t_16 = 0;
__pyx_lineno = __pyx_t_14; __pyx_clineno = __pyx_t_8; __pyx_filename = __pyx_t_15;
goto __pyx_L34_except_error;
}
}
}
goto __pyx_L34_except_error;
+0271: raise ValueError(
__pyx_t_13 = NULL;
+0272: f"Invalid conversion to Integer of {obj}"
__pyx_t_11 = __Pyx_PyObject_FormatSimple(__pyx_v_obj, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 272, __pyx_L43_error) __Pyx_GOTREF(__pyx_t_11); __pyx_t_12 = __Pyx_PyUnicode_Concat(__pyx_mstate_global->__pyx_kp_u_Invalid_conversion_to_Integer_of, __pyx_t_11); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 272, __pyx_L43_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __pyx_t_4 = 1; { PyObject *__pyx_callargs[2] = {__pyx_t_13, __pyx_t_12}; __pyx_t_10 = __Pyx_PyObject_FastCall((PyObject*)(((PyTypeObject*)PyExc_ValueError)), __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0; __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 271, __pyx_L43_error) __Pyx_GOTREF(__pyx_t_10); }
+0273: ) from e
__Pyx_Raise(__pyx_t_10, 0, 0, __pyx_v_e); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __PYX_ERR(0, 271, __pyx_L43_error) }
0274:
+0275: cpdef object to_float(object obj):
static PyObject *__pyx_pw_9datamodel_10converters_15to_float(PyObject *__pyx_self,
#if CYTHON_VECTORCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyObject *__pyx_f_9datamodel_10converters_to_float(PyObject *__pyx_v_obj, CYTHON_UNUSED int __pyx_skip_dispatch) {
PyObject *__pyx_r = NULL;
/* … */
/* function exit code */
__pyx_r = Py_None; __Pyx_INCREF(Py_None);
goto __pyx_L0;
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_7);
__Pyx_XDECREF(__pyx_t_8);
__Pyx_AddTraceback("datamodel.converters.to_float", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = 0;
__pyx_L0:;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* Python wrapper */
static PyObject *__pyx_pw_9datamodel_10converters_15to_float(PyObject *__pyx_self,
#if CYTHON_VECTORCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_9datamodel_10converters_14to_float, "to_float(obj)\n\nto_float.\n\nReturns object converted to float.");
static PyMethodDef __pyx_mdef_9datamodel_10converters_15to_float = {"to_float", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9datamodel_10converters_15to_float, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_9datamodel_10converters_14to_float};
static PyObject *__pyx_pw_9datamodel_10converters_15to_float(PyObject *__pyx_self,
#if CYTHON_VECTORCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
PyObject *__pyx_v_obj = 0;
#if !CYTHON_VECTORCALL
CYTHON_UNUSED Py_ssize_t __pyx_nargs;
#endif
CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("to_float (wrapper)", 0);
#if !CYTHON_VECTORCALL
#if CYTHON_ASSUME_SAFE_SIZE
__pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
#else
__pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
#endif
#endif
__pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
{
PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_obj,0};
PyObject* values[1] = {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, 275, __pyx_L3_error)
if (__pyx_kwds_len > 0) {
switch (__pyx_nargs) {
case 1:
values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 275, __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, "to_float", 0) < (0)) __PYX_ERR(0, 275, __pyx_L3_error)
for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("to_float", 1, 1, 1, i); __PYX_ERR(0, 275, __pyx_L3_error) }
}
} else if (unlikely(__pyx_nargs != 1)) {
goto __pyx_L5_argtuple_error;
} else {
values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 275, __pyx_L3_error)
}
__pyx_v_obj = values[0];
}
goto __pyx_L6_skip;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("to_float", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 275, __pyx_L3_error)
__pyx_L6_skip:;
goto __pyx_L4_argument_unpacking_done;
__pyx_L3_error:;
for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
Py_XDECREF(values[__pyx_temp]);
}
__Pyx_AddTraceback("datamodel.converters.to_float", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
__pyx_r = __pyx_pf_9datamodel_10converters_14to_float(__pyx_self, __pyx_v_obj);
int __pyx_lineno = 0;
const char *__pyx_filename = NULL;
int __pyx_clineno = 0;
/* function exit code */
for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
Py_XDECREF(values[__pyx_temp]);
}
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_9datamodel_10converters_14to_float(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_obj) {
PyObject *__pyx_r = NULL;
__pyx_t_1 = __pyx_f_9datamodel_10converters_to_float(__pyx_v_obj, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 275, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
{
PyObject *__pyx_temp;
{
__pyx_temp = __pyx_r;
__pyx_r = __pyx_t_1;
}
__Pyx_XDECREF(__pyx_temp);
}
__pyx_t_1 = 0;
goto __pyx_L0;
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_AddTraceback("datamodel.converters.to_float", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
__pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_9datamodel_10converters_15to_float, 0, __pyx_mstate_global->__pyx_n_u_to_float, NULL, __pyx_mstate_global->__pyx_n_u_datamodel_converters, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[12])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 275, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
#endif
if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_to_float, __pyx_t_2) < (0)) __PYX_ERR(0, 275, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
0276: """to_float.
0277:
0278: Returns object converted to float.
0279: """
+0280: if isinstance(obj, (float, Decimal)):
__Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_Decimal); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 280, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = PyFloat_Check(__pyx_v_obj); if (!__pyx_t_3) { } else { __pyx_t_2 = __pyx_t_3; goto __pyx_L4_bool_binop_done; } __pyx_t_3 = PyObject_IsInstance(__pyx_v_obj, __pyx_t_1); __pyx_t_2 = __pyx_t_3; __pyx_L4_bool_binop_done:; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_2) { /* … */ }
+0281: return obj
{
PyObject *__pyx_temp;
{
__pyx_temp = __pyx_r;
__Pyx_INCREF(__pyx_v_obj);
__pyx_r = __pyx_v_obj;
}
__Pyx_XDECREF(__pyx_temp);
}
goto __pyx_L0;
+0282: elif isinstance(obj, _MISSING_TYPE):
__Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_MISSING_TYPE); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 282, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = PyObject_IsInstance(__pyx_v_obj, __pyx_t_1); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(0, 282, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_2) { /* … */ }
+0283: return None
{
PyObject *__pyx_temp;
{
__pyx_temp = __pyx_r;
__pyx_r = Py_None; __Pyx_INCREF(Py_None);
}
__Pyx_XDECREF(__pyx_temp);
}
goto __pyx_L0;
+0284: elif callable(obj):
__pyx_t_2 = __Pyx_PyCallable_Check(__pyx_v_obj); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(0, 284, __pyx_L1_error) if (__pyx_t_2) { /* … */ goto __pyx_L3; }
0285: # its a function callable returning a value
+0286: try:
{
/*try:*/ {
/* … */
}
__pyx_L6_error:;
__Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
__Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
/* … */
__pyx_L10_try_return:;
__Pyx_XGIVEREF(__pyx_t_4);
__Pyx_XGIVEREF(__pyx_t_5);
__Pyx_XGIVEREF(__pyx_t_6);
__Pyx_ExceptionReset(__pyx_t_4, __pyx_t_5, __pyx_t_6);
goto __pyx_L0;
__pyx_L7_exception_handled:;
__Pyx_XGIVEREF(__pyx_t_4);
__Pyx_XGIVEREF(__pyx_t_5);
__Pyx_XGIVEREF(__pyx_t_6);
__Pyx_ExceptionReset(__pyx_t_4, __pyx_t_5, __pyx_t_6);
}
+0287: return obj()
__pyx_t_7 = NULL;
__Pyx_INCREF(__pyx_v_obj);
__pyx_t_8 = __pyx_v_obj;
__pyx_t_9 = 1;
#if CYTHON_UNPACK_METHODS
if (unlikely(PyMethod_Check(__pyx_t_8))) {
__pyx_t_7 = PyMethod_GET_SELF(__pyx_t_8);
assert(__pyx_t_7);
PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_8);
__Pyx_INCREF(__pyx_t_7);
__Pyx_INCREF(__pyx__function);
__Pyx_DECREF_SET(__pyx_t_8, __pyx__function);
__pyx_t_9 = 0;
}
#endif
{
PyObject *__pyx_callargs[2] = {__pyx_t_7, NULL};
__pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_8, __pyx_callargs+__pyx_t_9, (1-__pyx_t_9) | (__pyx_t_9*__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, 287, __pyx_L6_error)
__Pyx_GOTREF(__pyx_t_1);
}
{
PyObject *__pyx_temp;
{
__pyx_temp = __pyx_r;
__pyx_r = __pyx_t_1;
}
__Pyx_XDECREF(__pyx_temp);
}
__pyx_t_1 = 0;
goto __pyx_L10_try_return;
+0288: except:
/*except:*/ {
__Pyx_ErrRestore(0,0,0);
goto __pyx_L7_exception_handled;
}
0289: pass
0290: else:
+0291: try:
/*else*/ {
{
/*try:*/ {
/* … */
}
__pyx_L14_error:;
__Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
__Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
/* … */
__pyx_L16_except_error:;
__Pyx_XGIVEREF(__pyx_t_6);
__Pyx_XGIVEREF(__pyx_t_5);
__Pyx_XGIVEREF(__pyx_t_4);
__Pyx_ExceptionReset(__pyx_t_6, __pyx_t_5, __pyx_t_4);
goto __pyx_L1_error;
__pyx_L18_try_return:;
__Pyx_XGIVEREF(__pyx_t_6);
__Pyx_XGIVEREF(__pyx_t_5);
__Pyx_XGIVEREF(__pyx_t_4);
__Pyx_ExceptionReset(__pyx_t_6, __pyx_t_5, __pyx_t_4);
goto __pyx_L0;
__pyx_L17_except_return:;
__Pyx_XGIVEREF(__pyx_t_6);
__Pyx_XGIVEREF(__pyx_t_5);
__Pyx_XGIVEREF(__pyx_t_4);
__Pyx_ExceptionReset(__pyx_t_6, __pyx_t_5, __pyx_t_4);
goto __pyx_L0;
}
}
__pyx_L3:;
+0292: return float(obj)
__pyx_t_1 = __Pyx_PyNumber_Float(__pyx_v_obj); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 292, __pyx_L14_error) __Pyx_GOTREF(__pyx_t_1); if (__Pyx_PyFloat_FromNumber(&__pyx_t_1, NULL, 0) < (0)) __PYX_ERR(0, 292, __pyx_L14_error) { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; __pyx_r = __pyx_t_1; } __Pyx_XDECREF(__pyx_temp); } __pyx_t_1 = 0; goto __pyx_L18_try_return;
+0293: except (TypeError, ValueError):
__pyx_t_10 = __Pyx_PyErr_ExceptionMatches2(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), ((PyObject *)(((PyTypeObject*)PyExc_ValueError))));
if (__pyx_t_10) {
__Pyx_ErrRestore(0,0,0);
+0294: return None
{
PyObject *__pyx_temp;
{
__pyx_temp = __pyx_r;
__pyx_r = Py_None; __Pyx_INCREF(Py_None);
}
__Pyx_XDECREF(__pyx_temp);
}
goto __pyx_L17_except_return;
}
goto __pyx_L16_except_error;
0295:
+0296: cpdef object to_decimal(object obj):
static PyObject *__pyx_pw_9datamodel_10converters_17to_decimal(PyObject *__pyx_self,
#if CYTHON_VECTORCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyObject *__pyx_f_9datamodel_10converters_to_decimal(PyObject *__pyx_v_obj, CYTHON_UNUSED int __pyx_skip_dispatch) {
PyObject *__pyx_v_ex = NULL;
PyObject *__pyx_r = NULL;
/* … */
/* function exit code */
__pyx_r = Py_None; __Pyx_INCREF(Py_None);
goto __pyx_L0;
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_2);
__Pyx_XDECREF(__pyx_t_6);
__Pyx_XDECREF(__pyx_t_7);
__Pyx_XDECREF(__pyx_t_9);
__Pyx_XDECREF(__pyx_t_11);
__Pyx_XDECREF(__pyx_t_12);
__Pyx_XDECREF(__pyx_t_13);
__Pyx_AddTraceback("datamodel.converters.to_decimal", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = 0;
__pyx_L0:;
__Pyx_XDECREF(__pyx_v_ex);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* Python wrapper */
static PyObject *__pyx_pw_9datamodel_10converters_17to_decimal(PyObject *__pyx_self,
#if CYTHON_VECTORCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_9datamodel_10converters_16to_decimal, "to_decimal(obj)\n\nto_decimal.\n\nReturns a Decimal version of object.");
static PyMethodDef __pyx_mdef_9datamodel_10converters_17to_decimal = {"to_decimal", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9datamodel_10converters_17to_decimal, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_9datamodel_10converters_16to_decimal};
static PyObject *__pyx_pw_9datamodel_10converters_17to_decimal(PyObject *__pyx_self,
#if CYTHON_VECTORCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
PyObject *__pyx_v_obj = 0;
#if !CYTHON_VECTORCALL
CYTHON_UNUSED Py_ssize_t __pyx_nargs;
#endif
CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("to_decimal (wrapper)", 0);
#if !CYTHON_VECTORCALL
#if CYTHON_ASSUME_SAFE_SIZE
__pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
#else
__pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
#endif
#endif
__pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
{
PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_obj,0};
PyObject* values[1] = {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, 296, __pyx_L3_error)
if (__pyx_kwds_len > 0) {
switch (__pyx_nargs) {
case 1:
values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 296, __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, "to_decimal", 0) < (0)) __PYX_ERR(0, 296, __pyx_L3_error)
for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("to_decimal", 1, 1, 1, i); __PYX_ERR(0, 296, __pyx_L3_error) }
}
} else if (unlikely(__pyx_nargs != 1)) {
goto __pyx_L5_argtuple_error;
} else {
values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 296, __pyx_L3_error)
}
__pyx_v_obj = values[0];
}
goto __pyx_L6_skip;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("to_decimal", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 296, __pyx_L3_error)
__pyx_L6_skip:;
goto __pyx_L4_argument_unpacking_done;
__pyx_L3_error:;
for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
Py_XDECREF(values[__pyx_temp]);
}
__Pyx_AddTraceback("datamodel.converters.to_decimal", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
__pyx_r = __pyx_pf_9datamodel_10converters_16to_decimal(__pyx_self, __pyx_v_obj);
int __pyx_lineno = 0;
const char *__pyx_filename = NULL;
int __pyx_clineno = 0;
/* function exit code */
for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
Py_XDECREF(values[__pyx_temp]);
}
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_9datamodel_10converters_16to_decimal(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_obj) {
PyObject *__pyx_r = NULL;
__pyx_t_1 = __pyx_f_9datamodel_10converters_to_decimal(__pyx_v_obj, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 296, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
{
PyObject *__pyx_temp;
{
__pyx_temp = __pyx_r;
__pyx_r = __pyx_t_1;
}
__Pyx_XDECREF(__pyx_temp);
}
__pyx_t_1 = 0;
goto __pyx_L0;
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_AddTraceback("datamodel.converters.to_decimal", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
__pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_9datamodel_10converters_17to_decimal, 0, __pyx_mstate_global->__pyx_n_u_to_decimal, NULL, __pyx_mstate_global->__pyx_n_u_datamodel_converters, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[13])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 296, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
#endif
if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_to_decimal, __pyx_t_2) < (0)) __PYX_ERR(0, 296, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
0297: """to_decimal.
0298:
0299: Returns a Decimal version of object.
0300: """
+0301: if obj is None:
__pyx_t_1 = (__pyx_v_obj == Py_None);
if (__pyx_t_1) {
/* … */
}
+0302: return None
{
PyObject *__pyx_temp;
{
__pyx_temp = __pyx_r;
__pyx_r = Py_None; __Pyx_INCREF(Py_None);
}
__Pyx_XDECREF(__pyx_temp);
}
goto __pyx_L0;
+0303: if isinstance(obj, Decimal):
__Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_Decimal); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 303, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_1 = PyObject_IsInstance(__pyx_v_obj, __pyx_t_2); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(0, 303, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (__pyx_t_1) { /* … */ }
+0304: return obj
{
PyObject *__pyx_temp;
{
__pyx_temp = __pyx_r;
__Pyx_INCREF(__pyx_v_obj);
__pyx_r = __pyx_v_obj;
}
__Pyx_XDECREF(__pyx_temp);
}
goto __pyx_L0;
+0305: elif callable(obj):
__pyx_t_1 = __Pyx_PyCallable_Check(__pyx_v_obj); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(0, 305, __pyx_L1_error) if (__pyx_t_1) { /* … */ goto __pyx_L4; }
0306: # its a function callable returning a value
+0307: try:
{
/*try:*/ {
/* … */
}
__pyx_L5_error:;
__Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
__Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
/* … */
__pyx_L9_try_return:;
__Pyx_XGIVEREF(__pyx_t_3);
__Pyx_XGIVEREF(__pyx_t_4);
__Pyx_XGIVEREF(__pyx_t_5);
__Pyx_ExceptionReset(__pyx_t_3, __pyx_t_4, __pyx_t_5);
goto __pyx_L0;
__pyx_L6_exception_handled:;
__Pyx_XGIVEREF(__pyx_t_3);
__Pyx_XGIVEREF(__pyx_t_4);
__Pyx_XGIVEREF(__pyx_t_5);
__Pyx_ExceptionReset(__pyx_t_3, __pyx_t_4, __pyx_t_5);
}
+0308: return obj()
__pyx_t_6 = NULL;
__Pyx_INCREF(__pyx_v_obj);
__pyx_t_7 = __pyx_v_obj;
__pyx_t_8 = 1;
#if CYTHON_UNPACK_METHODS
if (unlikely(PyMethod_Check(__pyx_t_7))) {
__pyx_t_6 = PyMethod_GET_SELF(__pyx_t_7);
assert(__pyx_t_6);
PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_7);
__Pyx_INCREF(__pyx_t_6);
__Pyx_INCREF(__pyx__function);
__Pyx_DECREF_SET(__pyx_t_7, __pyx__function);
__pyx_t_8 = 0;
}
#endif
{
PyObject *__pyx_callargs[2] = {__pyx_t_6, NULL};
__pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_7, __pyx_callargs+__pyx_t_8, (1-__pyx_t_8) | (__pyx_t_8*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
__Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 308, __pyx_L5_error)
__Pyx_GOTREF(__pyx_t_2);
}
{
PyObject *__pyx_temp;
{
__pyx_temp = __pyx_r;
__pyx_r = __pyx_t_2;
}
__Pyx_XDECREF(__pyx_temp);
}
__pyx_t_2 = 0;
goto __pyx_L9_try_return;
+0309: except:
/*except:*/ {
__Pyx_ErrRestore(0,0,0);
goto __pyx_L6_exception_handled;
}
0310: pass
0311: else:
+0312: try:
/*else*/ {
{
/*try:*/ {
/* … */
}
__pyx_L13_error:;
__Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
__Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
/* … */
__pyx_L15_except_error:;
__Pyx_XGIVEREF(__pyx_t_5);
__Pyx_XGIVEREF(__pyx_t_4);
__Pyx_XGIVEREF(__pyx_t_3);
__Pyx_ExceptionReset(__pyx_t_5, __pyx_t_4, __pyx_t_3);
goto __pyx_L1_error;
__pyx_L17_try_return:;
__Pyx_XGIVEREF(__pyx_t_5);
__Pyx_XGIVEREF(__pyx_t_4);
__Pyx_XGIVEREF(__pyx_t_3);
__Pyx_ExceptionReset(__pyx_t_5, __pyx_t_4, __pyx_t_3);
goto __pyx_L0;
__pyx_L16_except_return:;
__Pyx_XGIVEREF(__pyx_t_5);
__Pyx_XGIVEREF(__pyx_t_4);
__Pyx_XGIVEREF(__pyx_t_3);
__Pyx_ExceptionReset(__pyx_t_5, __pyx_t_4, __pyx_t_3);
goto __pyx_L0;
}
}
__pyx_L4:;
+0313: return Decimal(obj)
__pyx_t_7 = NULL;
__Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_Decimal); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 313, __pyx_L13_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_t_8 = 1;
#if CYTHON_UNPACK_METHODS
if (unlikely(PyMethod_Check(__pyx_t_6))) {
__pyx_t_7 = PyMethod_GET_SELF(__pyx_t_6);
assert(__pyx_t_7);
PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_6);
__Pyx_INCREF(__pyx_t_7);
__Pyx_INCREF(__pyx__function);
__Pyx_DECREF_SET(__pyx_t_6, __pyx__function);
__pyx_t_8 = 0;
}
#endif
{
PyObject *__pyx_callargs[2] = {__pyx_t_7, __pyx_v_obj};
__pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_6, __pyx_callargs+__pyx_t_8, (2-__pyx_t_8) | (__pyx_t_8*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
__Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 313, __pyx_L13_error)
__Pyx_GOTREF(__pyx_t_2);
}
{
PyObject *__pyx_temp;
{
__pyx_temp = __pyx_r;
__pyx_r = __pyx_t_2;
}
__Pyx_XDECREF(__pyx_temp);
}
__pyx_t_2 = 0;
goto __pyx_L17_try_return;
+0314: except InvalidOperation as ex:
__Pyx_ErrFetch(&__pyx_t_2, &__pyx_t_6, &__pyx_t_7); __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_InvalidOperation); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 314, __pyx_L15_except_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_10 = __Pyx_PyErr_GivenExceptionMatches(__pyx_t_2, __pyx_t_9); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_ErrRestore(__pyx_t_2, __pyx_t_6, __pyx_t_7); __pyx_t_2 = 0; __pyx_t_6 = 0; __pyx_t_7 = 0; if (__pyx_t_10) { __Pyx_AddTraceback("datamodel.converters.to_decimal", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_7, &__pyx_t_6, &__pyx_t_2) < 0) __PYX_ERR(0, 314, __pyx_L15_except_error) __Pyx_XGOTREF(__pyx_t_7); __Pyx_XGOTREF(__pyx_t_6); __Pyx_XGOTREF(__pyx_t_2); __Pyx_INCREF(__pyx_t_6); __pyx_v_ex = __pyx_t_6; /*try:*/ { /* … */ /*finally:*/ { __pyx_L24_error:; /*exception exit:*/{ __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign __pyx_t_16 = 0; __pyx_t_17 = 0; __pyx_t_18 = 0; __pyx_t_19 = 0; __pyx_t_20 = 0; __pyx_t_21 = 0; __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0; __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0; __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_ExceptionSwap(&__pyx_t_19, &__pyx_t_20, &__pyx_t_21); if ( unlikely(__Pyx_GetException(&__pyx_t_16, &__pyx_t_17, &__pyx_t_18) < 0)) __Pyx_ErrFetch(&__pyx_t_16, &__pyx_t_17, &__pyx_t_18); __Pyx_XGOTREF(__pyx_t_16); __Pyx_XGOTREF(__pyx_t_17); __Pyx_XGOTREF(__pyx_t_18); __Pyx_XGOTREF(__pyx_t_19); __Pyx_XGOTREF(__pyx_t_20); __Pyx_XGOTREF(__pyx_t_21); __pyx_t_10 = __pyx_lineno; __pyx_t_14 = __pyx_clineno; __pyx_t_15 = __pyx_filename; { __Pyx_DECREF(__pyx_v_ex); __pyx_v_ex = 0; } __Pyx_XGIVEREF(__pyx_t_19); __Pyx_XGIVEREF(__pyx_t_20); __Pyx_XGIVEREF(__pyx_t_21); __Pyx_ExceptionReset(__pyx_t_19, __pyx_t_20, __pyx_t_21); __Pyx_XGIVEREF(__pyx_t_16); __Pyx_XGIVEREF(__pyx_t_17); __Pyx_XGIVEREF(__pyx_t_18); __Pyx_ErrRestore(__pyx_t_16, __pyx_t_17, __pyx_t_18); __pyx_t_16 = 0; __pyx_t_17 = 0; __pyx_t_18 = 0; __pyx_t_19 = 0; __pyx_t_20 = 0; __pyx_t_21 = 0; __pyx_lineno = __pyx_t_10; __pyx_clineno = __pyx_t_14; __pyx_filename = __pyx_t_15; goto __pyx_L15_except_error; } } }
+0315: raise ValueError(
__pyx_t_11 = NULL;
+0316: f"Invalid Decimal conversion of {obj}"
__pyx_t_12 = __Pyx_PyObject_FormatSimple(__pyx_v_obj, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 316, __pyx_L24_error) __Pyx_GOTREF(__pyx_t_12); __pyx_t_13 = __Pyx_PyUnicode_Concat(__pyx_mstate_global->__pyx_kp_u_Invalid_Decimal_conversion_of, __pyx_t_12); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 316, __pyx_L24_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __pyx_t_8 = 1; { PyObject *__pyx_callargs[2] = {__pyx_t_11, __pyx_t_13}; __pyx_t_9 = __Pyx_PyObject_FastCall((PyObject*)(((PyTypeObject*)PyExc_ValueError)), __pyx_callargs+__pyx_t_8, (2-__pyx_t_8) | (__pyx_t_8*__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_9)) __PYX_ERR(0, 315, __pyx_L24_error) __Pyx_GOTREF(__pyx_t_9); }
+0317: ) from ex
__Pyx_Raise(__pyx_t_9, 0, 0, __pyx_v_ex); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __PYX_ERR(0, 315, __pyx_L24_error) }
+0318: except (TypeError, ValueError):
__pyx_t_14 = __Pyx_PyErr_ExceptionMatches2(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), ((PyObject *)(((PyTypeObject*)PyExc_ValueError))));
if (__pyx_t_14) {
__Pyx_ErrRestore(0,0,0);
+0319: return None
{
PyObject *__pyx_temp;
{
__pyx_temp = __pyx_r;
__pyx_r = Py_None; __Pyx_INCREF(Py_None);
}
__Pyx_XDECREF(__pyx_temp);
}
goto __pyx_L16_except_return;
}
goto __pyx_L15_except_error;
0320:
+0321: TIMEDELTA_RE = re.compile(r"(-)?(\d{1,3}):(\d{1,2}):(\d{1,2})(?:.(\d{1,6}))?")
__pyx_t_4 = NULL; __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_re); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 321, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_compile); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 321, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_8 = 1; { PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_mstate_global->__pyx_kp_u_d_1_3_d_1_2_d_1_2_d_1_6}; __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_7, __pyx_callargs+__pyx_t_8, (2-__pyx_t_8) | (__pyx_t_8*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 321, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_TIMEDELTA_RE, __pyx_t_2) < (0)) __PYX_ERR(0, 321, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
0322:
+0323: cdef int _convert_second_fraction(s):
static int __pyx_f_9datamodel_10converters__convert_second_fraction(PyObject *__pyx_v_s) {
int __pyx_r;
__Pyx_INCREF(__pyx_v_s);
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_4);
__Pyx_AddTraceback("datamodel.converters._convert_second_fraction", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = -1;
__pyx_L0:;
__Pyx_XDECREF(__pyx_v_s);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
+0324: if not s:
__pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_s); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 324, __pyx_L1_error) __pyx_t_2 = (!__pyx_t_1); if (__pyx_t_2) { /* … */ }
+0325: return 0
{
__pyx_r = 0;
}
goto __pyx_L0;
0326: # Pad zeros to ensure the fraction length in microseconds
+0327: s = s.ljust(6, "0")
__pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_s, __pyx_mstate_global->__pyx_n_u_ljust); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 327, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_mstate_global->__pyx_tuple[0], NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 327, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF_SET(__pyx_v_s, __pyx_t_4); __pyx_t_4 = 0; /* … */ { PyObject* __pyx_temp[2] = {__pyx_mstate_global->__pyx_int_6, __pyx_mstate_global->__pyx_kp_u_0}; __pyx_mstate_global->__pyx_tuple[0] = __Pyx_PyTuple_FromArray(__pyx_temp, 2); if (unlikely(!__pyx_mstate_global->__pyx_tuple[0])) __PYX_ERR(0, 327, __pyx_L1_error) __Pyx_GOTREF(__pyx_mstate_global->__pyx_tuple[0]); } __Pyx_GIVEREF(__pyx_mstate_global->__pyx_tuple[0]);
+0328: return int(s[:6])
__pyx_t_4 = __Pyx_PyObject_GetSlice(__pyx_v_s, 0, 6, NULL, NULL, &__pyx_mstate_global->__pyx_slice[0], 0, 1, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 328, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_3 = __Pyx_PyNumber_Int(__pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 328, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_5 = __Pyx_PyLong_As_int(__pyx_t_3); if (unlikely((__pyx_t_5 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 328, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; { __pyx_r = __pyx_t_5; } goto __pyx_L0; /* … */ __pyx_mstate_global->__pyx_slice[0] = PySlice_New(Py_None, __pyx_mstate_global->__pyx_int_6, Py_None); if (unlikely(!__pyx_mstate_global->__pyx_slice[0])) __PYX_ERR(0, 328, __pyx_L1_error) __Pyx_GOTREF(__pyx_mstate_global->__pyx_slice[0]); __Pyx_GIVEREF(__pyx_mstate_global->__pyx_slice[0]);
0329:
+0330: cpdef object to_timedelta(object obj):
static PyObject *__pyx_pw_9datamodel_10converters_19to_timedelta(PyObject *__pyx_self,
#if CYTHON_VECTORCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyObject *__pyx_f_9datamodel_10converters_to_timedelta(PyObject *__pyx_v_obj, CYTHON_UNUSED int __pyx_skip_dispatch) {
PyObject *__pyx_v_m = NULL;
PyObject *__pyx_v_groups = NULL;
PyObject *__pyx_v_negate = NULL;
PyObject *__pyx_v_hours = NULL;
PyObject *__pyx_v_minutes = NULL;
PyObject *__pyx_v_seconds = NULL;
PyObject *__pyx_v_microseconds = NULL;
PyObject *__pyx_v_tdelta = NULL;
PyObject *__pyx_r = NULL;
__Pyx_INCREF(__pyx_v_obj);
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_4);
__Pyx_XDECREF(__pyx_t_6);
__Pyx_XDECREF(__pyx_t_7);
__Pyx_XDECREF(__pyx_t_12);
__Pyx_XDECREF(__pyx_t_13);
__Pyx_XDECREF(__pyx_t_14);
__Pyx_AddTraceback("datamodel.converters.to_timedelta", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = 0;
__pyx_L0:;
__Pyx_XDECREF(__pyx_v_m);
__Pyx_XDECREF(__pyx_v_groups);
__Pyx_XDECREF(__pyx_v_negate);
__Pyx_XDECREF(__pyx_v_hours);
__Pyx_XDECREF(__pyx_v_minutes);
__Pyx_XDECREF(__pyx_v_seconds);
__Pyx_XDECREF(__pyx_v_microseconds);
__Pyx_XDECREF(__pyx_v_tdelta);
__Pyx_XDECREF(__pyx_v_obj);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* Python wrapper */
static PyObject *__pyx_pw_9datamodel_10converters_19to_timedelta(PyObject *__pyx_self,
#if CYTHON_VECTORCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_9datamodel_10converters_18to_timedelta, "to_timedelta(obj)");
static PyMethodDef __pyx_mdef_9datamodel_10converters_19to_timedelta = {"to_timedelta", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9datamodel_10converters_19to_timedelta, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_9datamodel_10converters_18to_timedelta};
static PyObject *__pyx_pw_9datamodel_10converters_19to_timedelta(PyObject *__pyx_self,
#if CYTHON_VECTORCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
PyObject *__pyx_v_obj = 0;
#if !CYTHON_VECTORCALL
CYTHON_UNUSED Py_ssize_t __pyx_nargs;
#endif
CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("to_timedelta (wrapper)", 0);
#if !CYTHON_VECTORCALL
#if CYTHON_ASSUME_SAFE_SIZE
__pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
#else
__pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
#endif
#endif
__pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
{
PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_obj,0};
PyObject* values[1] = {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, 330, __pyx_L3_error)
if (__pyx_kwds_len > 0) {
switch (__pyx_nargs) {
case 1:
values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 330, __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, "to_timedelta", 0) < (0)) __PYX_ERR(0, 330, __pyx_L3_error)
for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("to_timedelta", 1, 1, 1, i); __PYX_ERR(0, 330, __pyx_L3_error) }
}
} else if (unlikely(__pyx_nargs != 1)) {
goto __pyx_L5_argtuple_error;
} else {
values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 330, __pyx_L3_error)
}
__pyx_v_obj = values[0];
}
goto __pyx_L6_skip;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("to_timedelta", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 330, __pyx_L3_error)
__pyx_L6_skip:;
goto __pyx_L4_argument_unpacking_done;
__pyx_L3_error:;
for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
Py_XDECREF(values[__pyx_temp]);
}
__Pyx_AddTraceback("datamodel.converters.to_timedelta", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
__pyx_r = __pyx_pf_9datamodel_10converters_18to_timedelta(__pyx_self, __pyx_v_obj);
int __pyx_lineno = 0;
const char *__pyx_filename = NULL;
int __pyx_clineno = 0;
/* function exit code */
for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
Py_XDECREF(values[__pyx_temp]);
}
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_9datamodel_10converters_18to_timedelta(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_obj) {
PyObject *__pyx_r = NULL;
__pyx_t_1 = __pyx_f_9datamodel_10converters_to_timedelta(__pyx_v_obj, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 330, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
{
PyObject *__pyx_temp;
{
__pyx_temp = __pyx_r;
__pyx_r = __pyx_t_1;
}
__Pyx_XDECREF(__pyx_temp);
}
__pyx_t_1 = 0;
goto __pyx_L0;
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_AddTraceback("datamodel.converters.to_timedelta", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
__pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_9datamodel_10converters_19to_timedelta, 0, __pyx_mstate_global->__pyx_n_u_to_timedelta, NULL, __pyx_mstate_global->__pyx_n_u_datamodel_converters, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[14])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 330, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
#endif
if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_to_timedelta, __pyx_t_2) < (0)) __PYX_ERR(0, 330, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
0331:
+0332: if obj is None:
__pyx_t_1 = (__pyx_v_obj == Py_None);
if (__pyx_t_1) {
/* … */
}
+0333: return None
{
PyObject *__pyx_temp;
{
__pyx_temp = __pyx_r;
__pyx_r = Py_None; __Pyx_INCREF(Py_None);
}
__Pyx_XDECREF(__pyx_temp);
}
goto __pyx_L0;
+0334: if isinstance(obj, datetime.timedelta):
__pyx_t_1 = __Pyx_TypeCheck(__pyx_v_obj, __pyx_mstate_global->__pyx_ptype_7cpython_8datetime_timedelta);
if (__pyx_t_1) {
/* … */
}
+0335: return obj
{
PyObject *__pyx_temp;
{
__pyx_temp = __pyx_r;
__Pyx_INCREF(__pyx_v_obj);
__pyx_r = __pyx_v_obj;
}
__Pyx_XDECREF(__pyx_temp);
}
goto __pyx_L0;
0336:
+0337: if isinstance(obj, (bytes, bytearray)):
__pyx_t_2 = PyBytes_Check(__pyx_v_obj);
if (!__pyx_t_2) {
} else {
__pyx_t_1 = __pyx_t_2;
goto __pyx_L6_bool_binop_done;
}
__pyx_t_2 = PyByteArray_Check(__pyx_v_obj);
__pyx_t_1 = __pyx_t_2;
__pyx_L6_bool_binop_done:;
if (__pyx_t_1) {
/* … */
}
+0338: obj = obj.decode("ascii")
__pyx_t_4 = __pyx_v_obj;
__Pyx_INCREF(__pyx_t_4);
__pyx_t_5 = 0;
{
PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_mstate_global->__pyx_n_u_ascii};
__pyx_t_3 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_decode, __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, 338, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
}
__Pyx_DECREF_SET(__pyx_v_obj, __pyx_t_3);
__pyx_t_3 = 0;
0339:
+0340: m = TIMEDELTA_RE.match(obj)
__pyx_t_4 = NULL; __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_TIMEDELTA_RE); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 340, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_match); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 340, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_5 = 1; #if CYTHON_UNPACK_METHODS if (unlikely(PyMethod_Check(__pyx_t_7))) { __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_7); assert(__pyx_t_4); PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_7); __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(__pyx__function); __Pyx_DECREF_SET(__pyx_t_7, __pyx__function); __pyx_t_5 = 0; } #endif { PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_v_obj}; __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_7, __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_7); __pyx_t_7 = 0; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 340, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); } __pyx_v_m = __pyx_t_3; __pyx_t_3 = 0;
+0341: if not m:
__pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_m); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 341, __pyx_L1_error) __pyx_t_2 = (!__pyx_t_1); if (__pyx_t_2) { /* … */ }
+0342: return obj
{
PyObject *__pyx_temp;
{
__pyx_temp = __pyx_r;
__Pyx_INCREF(__pyx_v_obj);
__pyx_r = __pyx_v_obj;
}
__Pyx_XDECREF(__pyx_temp);
}
goto __pyx_L0;
0343:
+0344: try:
{
/*try:*/ {
/* … */
}
__pyx_L9_error:;
__Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
__Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
__Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
__Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
__Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
__Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
/* … */
__pyx_L11_except_error:;
__Pyx_XGIVEREF(__pyx_t_8);
__Pyx_XGIVEREF(__pyx_t_9);
__Pyx_XGIVEREF(__pyx_t_10);
__Pyx_ExceptionReset(__pyx_t_8, __pyx_t_9, __pyx_t_10);
goto __pyx_L1_error;
__pyx_L13_try_return:;
__Pyx_XGIVEREF(__pyx_t_8);
__Pyx_XGIVEREF(__pyx_t_9);
__Pyx_XGIVEREF(__pyx_t_10);
__Pyx_ExceptionReset(__pyx_t_8, __pyx_t_9, __pyx_t_10);
goto __pyx_L0;
}
+0345: groups = list(m.groups())
__pyx_t_7 = __pyx_v_m;
__Pyx_INCREF(__pyx_t_7);
__pyx_t_5 = 0;
{
PyObject *__pyx_callargs[2] = {__pyx_t_7, NULL};
__pyx_t_3 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_groups, __pyx_callargs+__pyx_t_5, (1-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
__Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 345, __pyx_L9_error)
__Pyx_GOTREF(__pyx_t_3);
}
__pyx_t_7 = __Pyx_PySequence_ListKeepNew(__pyx_t_3); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 345, __pyx_L9_error)
__Pyx_GOTREF(__pyx_t_7);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__pyx_v_groups = ((PyObject*)__pyx_t_7);
__pyx_t_7 = 0;
+0346: groups[-1] = _convert_second_fraction(groups[-1])
__pyx_t_7 = __Pyx_GetItemInt_List(__pyx_v_groups, -1L, long, 1, __Pyx_PyLong_From_long, 1, 1, 1, __Pyx_ReferenceSharing_OwnStrongReference); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 346, __pyx_L9_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_11 = __pyx_f_9datamodel_10converters__convert_second_fraction(__pyx_t_7); if (unlikely(__pyx_t_11 == ((int)-1) && PyErr_Occurred())) __PYX_ERR(0, 346, __pyx_L9_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_7 = __Pyx_PyLong_From_int(__pyx_t_11); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 346, __pyx_L9_error) __Pyx_GOTREF(__pyx_t_7); if (unlikely((__Pyx_SetItemInt(__pyx_v_groups, -1L, __pyx_t_7, long, 1, __Pyx_PyLong_From_long, 1, 1, 1, __Pyx_ReferenceSharing_OwnStrongReference) < 0))) __PYX_ERR(0, 346, __pyx_L9_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
+0347: negate = -1 if groups[0] else 1
__pyx_t_3 = __Pyx_GetItemInt_List(__pyx_v_groups, 0, long, 1, __Pyx_PyLong_From_long, 0, 1, 1, __Pyx_ReferenceSharing_OwnStrongReference); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 347, __pyx_L9_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 347, __pyx_L9_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (__pyx_t_2) { __Pyx_INCREF(__pyx_mstate_global->__pyx_int_neg_1); __pyx_t_7 = __pyx_mstate_global->__pyx_int_neg_1; } else { __Pyx_INCREF(__pyx_mstate_global->__pyx_int_1); __pyx_t_7 = __pyx_mstate_global->__pyx_int_1; } __pyx_v_negate = ((PyObject*)__pyx_t_7); __pyx_t_7 = 0;
+0348: hours, minutes, seconds, microseconds = groups[1:]
__pyx_t_7 = __Pyx_PyList_GetSlice(__pyx_v_groups, 1, PY_SSIZE_T_MAX); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 348, __pyx_L9_error) __Pyx_GOTREF(__pyx_t_7); if (1) { PyObject* sequence = __pyx_t_7; Py_ssize_t size = __Pyx_PyList_GET_SIZE(sequence); if (unlikely(size != 4)) { if (size > 4) __Pyx_RaiseTooManyValuesError(4); else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); __PYX_ERR(0, 348, __pyx_L9_error) } #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_3 = __Pyx_PyList_GET_ITEM_REF(sequence, 0, __Pyx_ReferenceSharing_SharedReference); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 348, __pyx_L9_error) __Pyx_XGOTREF(__pyx_t_3); __pyx_t_4 = __Pyx_PyList_GET_ITEM_REF(sequence, 1, __Pyx_ReferenceSharing_SharedReference); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 348, __pyx_L9_error) __Pyx_XGOTREF(__pyx_t_4); __pyx_t_6 = __Pyx_PyList_GET_ITEM_REF(sequence, 2, __Pyx_ReferenceSharing_SharedReference); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 348, __pyx_L9_error) __Pyx_XGOTREF(__pyx_t_6); __pyx_t_12 = __Pyx_PyList_GET_ITEM_REF(sequence, 3, __Pyx_ReferenceSharing_SharedReference); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 348, __pyx_L9_error) __Pyx_XGOTREF(__pyx_t_12); #else { Py_ssize_t i; PyObject** temps[4] = {&__pyx_t_3,&__pyx_t_4,&__pyx_t_6,&__pyx_t_12}; for (i=0; i < 4; i++) { PyObject* item = __Pyx_PySequence_ITEM(sequence, i); if (unlikely(!item)) __PYX_ERR(0, 348, __pyx_L9_error) __Pyx_GOTREF(item); *(temps[i]) = item; } } #endif __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; } __pyx_v_hours = __pyx_t_3; __pyx_t_3 = 0; __pyx_v_minutes = __pyx_t_4; __pyx_t_4 = 0; __pyx_v_seconds = __pyx_t_6; __pyx_t_6 = 0; __pyx_v_microseconds = __pyx_t_12; __pyx_t_12 = 0;
0349: tdelta = (
+0350: datetime.timedelta(
__pyx_t_12 = NULL;
/* … */
{
PyObject* __pyx_temp[4] = {__pyx_mstate_global->__pyx_n_u_hours, __pyx_mstate_global->__pyx_n_u_minutes, __pyx_mstate_global->__pyx_n_u_seconds, __pyx_mstate_global->__pyx_n_u_microseconds};
__pyx_mstate_global->__pyx_tuple[1] = __Pyx_PyTuple_FromArray(__pyx_temp, 4); if (unlikely(!__pyx_mstate_global->__pyx_tuple[1])) __PYX_ERR(0, 350, __pyx_L1_error)
__Pyx_GOTREF(__pyx_mstate_global->__pyx_tuple[1]);
}
__Pyx_GIVEREF(__pyx_mstate_global->__pyx_tuple[1]);
+0351: hours=int(hours),
__pyx_t_6 = __Pyx_PyNumber_Int(__pyx_v_hours); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 351, __pyx_L9_error) __Pyx_GOTREF(__pyx_t_6);
+0352: minutes=int(minutes),
__pyx_t_4 = __Pyx_PyNumber_Int(__pyx_v_minutes); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 352, __pyx_L9_error) __Pyx_GOTREF(__pyx_t_4);
+0353: seconds=int(seconds),
__pyx_t_3 = __Pyx_PyNumber_Int(__pyx_v_seconds); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 353, __pyx_L9_error) __Pyx_GOTREF(__pyx_t_3);
+0354: microseconds=int(microseconds),
__pyx_t_13 = __Pyx_PyNumber_Int(__pyx_v_microseconds); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 354, __pyx_L9_error) __Pyx_GOTREF(__pyx_t_13); __pyx_t_5 = 1; { PyObject *__pyx_callargs[5] = {__pyx_t_12, __pyx_t_6, __pyx_t_4, __pyx_t_3, __pyx_t_13}; #if CYTHON_VECTORCALL __pyx_t_14 = __pyx_mstate_global->__pyx_tuple[1]; if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 350, __pyx_L9_error) __Pyx_INCREF(__pyx_t_14); #else { PyObject *__pyx_temp[4] = {__pyx_mstate_global->__pyx_n_u_hours, __pyx_mstate_global->__pyx_n_u_minutes, __pyx_mstate_global->__pyx_n_u_seconds, __pyx_mstate_global->__pyx_n_u_microseconds}; __pyx_t_14 = __Pyx_MakeKwargDict(__pyx_temp, __pyx_callargs+1, 4); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 350, __pyx_L9_error) __Pyx_GOTREF(__pyx_t_14); } #endif __pyx_t_7 = __Pyx_Object_VectorcallKwds((PyObject*)__pyx_mstate_global->__pyx_ptype_7cpython_8datetime_timedelta, __pyx_callargs+__pyx_t_5, (1-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET), __pyx_t_14); __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 350, __pyx_L9_error) __Pyx_GOTREF((PyObject *)__pyx_t_7); }
0355: )
+0356: * negate
__pyx_t_14 = PyNumber_Multiply(((PyObject *)__pyx_t_7), __pyx_v_negate); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 356, __pyx_L9_error) __Pyx_GOTREF(__pyx_t_14); __Pyx_DECREF((PyObject *)__pyx_t_7); __pyx_t_7 = 0; __pyx_v_tdelta = __pyx_t_14; __pyx_t_14 = 0;
0357: )
+0358: return tdelta
{
PyObject *__pyx_temp;
{
__pyx_temp = __pyx_r;
__Pyx_INCREF(__pyx_v_tdelta);
__pyx_r = __pyx_v_tdelta;
}
__Pyx_XDECREF(__pyx_temp);
}
goto __pyx_L13_try_return;
+0359: except ValueError:
__pyx_t_11 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(((PyTypeObject*)PyExc_ValueError)))); if (__pyx_t_11) { __Pyx_AddTraceback("datamodel.converters.to_timedelta", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_14, &__pyx_t_7, &__pyx_t_13) < 0) __PYX_ERR(0, 359, __pyx_L11_except_error) __Pyx_XGOTREF(__pyx_t_14); __Pyx_XGOTREF(__pyx_t_7); __Pyx_XGOTREF(__pyx_t_13);
+0360: raise ValueError(
__pyx_t_4 = NULL;
+0361: f"Invalid timedelta Object: {obj}"
__pyx_t_6 = __Pyx_PyObject_FormatSimple(__pyx_v_obj, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 361, __pyx_L11_except_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_12 = __Pyx_PyUnicode_Concat(__pyx_mstate_global->__pyx_kp_u_Invalid_timedelta_Object, __pyx_t_6); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 361, __pyx_L11_except_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_5 = 1; { PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_12}; __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)(((PyTypeObject*)PyExc_ValueError)), __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_12); __pyx_t_12 = 0; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 360, __pyx_L11_except_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, 360, __pyx_L11_except_error) } goto __pyx_L11_except_error;
0362: )
0363:
+0364: TIME_RE = re.compile(r"(\d{1,2}):(\d{1,2}):(\d{1,2})(?:.(\d{1,6}))?")
__pyx_t_7 = NULL; __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_re); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 364, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_compile); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 364, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_8 = 1; { PyObject *__pyx_callargs[2] = {__pyx_t_7, __pyx_mstate_global->__pyx_kp_u_d_1_2_d_1_2_d_1_2_d_1_6}; __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_6, __pyx_callargs+__pyx_t_8, (2-__pyx_t_8) | (__pyx_t_8*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 364, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_TIME_RE, __pyx_t_2) < (0)) __PYX_ERR(0, 364, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
0365:
+0366: cpdef object to_time(object obj):
static PyObject *__pyx_pw_9datamodel_10converters_21to_time(PyObject *__pyx_self,
#if CYTHON_VECTORCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyObject *__pyx_f_9datamodel_10converters_to_time(PyObject *__pyx_v_obj, CYTHON_UNUSED int __pyx_skip_dispatch) {
PyObject *__pyx_v_m = NULL;
PyObject *__pyx_v_groups = NULL;
PyObject *__pyx_v_hours = NULL;
PyObject *__pyx_v_minutes = NULL;
PyObject *__pyx_v_seconds = NULL;
PyObject *__pyx_v_microseconds = NULL;
PyObject *__pyx_v_e = NULL;
PyObject *__pyx_r = NULL;
/* … */
/* function exit code */
__pyx_r = Py_None; __Pyx_INCREF(Py_None);
goto __pyx_L0;
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_5);
__Pyx_XDECREF(__pyx_t_6);
__Pyx_XDECREF(__pyx_t_7);
__Pyx_XDECREF(__pyx_t_9);
__Pyx_XDECREF(__pyx_t_12);
__Pyx_XDECREF(__pyx_t_13);
__Pyx_XDECREF(__pyx_t_14);
__Pyx_XDECREF(__pyx_t_17);
__Pyx_AddTraceback("datamodel.converters.to_time", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = 0;
__pyx_L0:;
__Pyx_XDECREF(__pyx_v_m);
__Pyx_XDECREF(__pyx_v_groups);
__Pyx_XDECREF(__pyx_v_hours);
__Pyx_XDECREF(__pyx_v_minutes);
__Pyx_XDECREF(__pyx_v_seconds);
__Pyx_XDECREF(__pyx_v_microseconds);
__Pyx_XDECREF(__pyx_v_e);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* Python wrapper */
static PyObject *__pyx_pw_9datamodel_10converters_21to_time(PyObject *__pyx_self,
#if CYTHON_VECTORCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_9datamodel_10converters_20to_time, "to_time(obj)\n\nto_time.\n\nReturns obj converted to datetime.time.");
static PyMethodDef __pyx_mdef_9datamodel_10converters_21to_time = {"to_time", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9datamodel_10converters_21to_time, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_9datamodel_10converters_20to_time};
static PyObject *__pyx_pw_9datamodel_10converters_21to_time(PyObject *__pyx_self,
#if CYTHON_VECTORCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
PyObject *__pyx_v_obj = 0;
#if !CYTHON_VECTORCALL
CYTHON_UNUSED Py_ssize_t __pyx_nargs;
#endif
CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("to_time (wrapper)", 0);
#if !CYTHON_VECTORCALL
#if CYTHON_ASSUME_SAFE_SIZE
__pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
#else
__pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
#endif
#endif
__pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
{
PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_obj,0};
PyObject* values[1] = {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, 366, __pyx_L3_error)
if (__pyx_kwds_len > 0) {
switch (__pyx_nargs) {
case 1:
values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 366, __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, "to_time", 0) < (0)) __PYX_ERR(0, 366, __pyx_L3_error)
for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("to_time", 1, 1, 1, i); __PYX_ERR(0, 366, __pyx_L3_error) }
}
} else if (unlikely(__pyx_nargs != 1)) {
goto __pyx_L5_argtuple_error;
} else {
values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 366, __pyx_L3_error)
}
__pyx_v_obj = values[0];
}
goto __pyx_L6_skip;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("to_time", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 366, __pyx_L3_error)
__pyx_L6_skip:;
goto __pyx_L4_argument_unpacking_done;
__pyx_L3_error:;
for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
Py_XDECREF(values[__pyx_temp]);
}
__Pyx_AddTraceback("datamodel.converters.to_time", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
__pyx_r = __pyx_pf_9datamodel_10converters_20to_time(__pyx_self, __pyx_v_obj);
int __pyx_lineno = 0;
const char *__pyx_filename = NULL;
int __pyx_clineno = 0;
/* function exit code */
for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
Py_XDECREF(values[__pyx_temp]);
}
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_9datamodel_10converters_20to_time(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_obj) {
PyObject *__pyx_r = NULL;
__pyx_t_1 = __pyx_f_9datamodel_10converters_to_time(__pyx_v_obj, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 366, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
{
PyObject *__pyx_temp;
{
__pyx_temp = __pyx_r;
__pyx_r = __pyx_t_1;
}
__Pyx_XDECREF(__pyx_temp);
}
__pyx_t_1 = 0;
goto __pyx_L0;
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_AddTraceback("datamodel.converters.to_time", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
__pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_9datamodel_10converters_21to_time, 0, __pyx_mstate_global->__pyx_n_u_to_time, NULL, __pyx_mstate_global->__pyx_n_u_datamodel_converters, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[15])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 366, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
#endif
if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_to_time, __pyx_t_2) < (0)) __PYX_ERR(0, 366, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
0367: """to_time.
0368:
0369: Returns obj converted to datetime.time.
0370: """
+0371: if obj is None:
__pyx_t_1 = (__pyx_v_obj == Py_None);
if (__pyx_t_1) {
/* … */
}
+0372: return None
{
PyObject *__pyx_temp;
{
__pyx_temp = __pyx_r;
__pyx_r = Py_None; __Pyx_INCREF(Py_None);
}
__Pyx_XDECREF(__pyx_temp);
}
goto __pyx_L0;
+0373: if isinstance(obj, datetime.time):
__pyx_t_1 = __Pyx_TypeCheck(__pyx_v_obj, __pyx_mstate_global->__pyx_ptype_7cpython_8datetime_time);
if (__pyx_t_1) {
/* … */
}
+0374: return obj
{
PyObject *__pyx_temp;
{
__pyx_temp = __pyx_r;
__Pyx_INCREF(__pyx_v_obj);
__pyx_r = __pyx_v_obj;
}
__Pyx_XDECREF(__pyx_temp);
}
goto __pyx_L0;
+0375: elif callable(obj):
__pyx_t_1 = __Pyx_PyCallable_Check(__pyx_v_obj); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(0, 375, __pyx_L1_error) if (__pyx_t_1) { /* … */ goto __pyx_L4; }
0376: # its a function callable returning a value
+0377: try:
{
/*try:*/ {
/* … */
}
__pyx_L5_error:;
__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;
/* … */
__pyx_L9_try_return:;
__Pyx_XGIVEREF(__pyx_t_2);
__Pyx_XGIVEREF(__pyx_t_3);
__Pyx_XGIVEREF(__pyx_t_4);
__Pyx_ExceptionReset(__pyx_t_2, __pyx_t_3, __pyx_t_4);
goto __pyx_L0;
__pyx_L6_exception_handled:;
__Pyx_XGIVEREF(__pyx_t_2);
__Pyx_XGIVEREF(__pyx_t_3);
__Pyx_XGIVEREF(__pyx_t_4);
__Pyx_ExceptionReset(__pyx_t_2, __pyx_t_3, __pyx_t_4);
}
+0378: return obj()
__pyx_t_6 = NULL;
__Pyx_INCREF(__pyx_v_obj);
__pyx_t_7 = __pyx_v_obj;
__pyx_t_8 = 1;
#if CYTHON_UNPACK_METHODS
if (unlikely(PyMethod_Check(__pyx_t_7))) {
__pyx_t_6 = PyMethod_GET_SELF(__pyx_t_7);
assert(__pyx_t_6);
PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_7);
__Pyx_INCREF(__pyx_t_6);
__Pyx_INCREF(__pyx__function);
__Pyx_DECREF_SET(__pyx_t_7, __pyx__function);
__pyx_t_8 = 0;
}
#endif
{
PyObject *__pyx_callargs[2] = {__pyx_t_6, NULL};
__pyx_t_5 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_7, __pyx_callargs+__pyx_t_8, (1-__pyx_t_8) | (__pyx_t_8*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
__Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 378, __pyx_L5_error)
__Pyx_GOTREF(__pyx_t_5);
}
{
PyObject *__pyx_temp;
{
__pyx_temp = __pyx_r;
__pyx_r = __pyx_t_5;
}
__Pyx_XDECREF(__pyx_temp);
}
__pyx_t_5 = 0;
goto __pyx_L9_try_return;
+0379: except:
/*except:*/ {
__Pyx_ErrRestore(0,0,0);
goto __pyx_L6_exception_handled;
}
0380: pass
0381: else:
+0382: try:
/*else*/ {
{
/*try:*/ {
/* … */
}
__pyx_L13_error:;
__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;
__Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
__pyx_L15_except_error:;
__Pyx_XGIVEREF(__pyx_t_4);
__Pyx_XGIVEREF(__pyx_t_3);
__Pyx_XGIVEREF(__pyx_t_2);
__Pyx_ExceptionReset(__pyx_t_4, __pyx_t_3, __pyx_t_2);
goto __pyx_L1_error;
__pyx_L17_try_return:;
__Pyx_XGIVEREF(__pyx_t_4);
__Pyx_XGIVEREF(__pyx_t_3);
__Pyx_XGIVEREF(__pyx_t_2);
__Pyx_ExceptionReset(__pyx_t_4, __pyx_t_3, __pyx_t_2);
goto __pyx_L0;
__pyx_L14_exception_handled:;
__Pyx_XGIVEREF(__pyx_t_4);
__Pyx_XGIVEREF(__pyx_t_3);
__Pyx_XGIVEREF(__pyx_t_2);
__Pyx_ExceptionReset(__pyx_t_4, __pyx_t_3, __pyx_t_2);
}
+0383: return datetime.time(*map(int, obj.split(':')))
__pyx_t_7 = NULL;
__pyx_t_9 = __pyx_v_obj;
__Pyx_INCREF(__pyx_t_9);
__pyx_t_8 = 0;
{
PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_mstate_global->__pyx_kp_u__4};
__pyx_t_6 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_split, __pyx_callargs+__pyx_t_8, (2-__pyx_t_8) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
__Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 383, __pyx_L13_error)
__Pyx_GOTREF(__pyx_t_6);
}
__pyx_t_8 = 1;
{
PyObject *__pyx_callargs[3] = {__pyx_t_7, ((PyObject *)(&PyLong_Type)), __pyx_t_6};
__pyx_t_5 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_map, __pyx_callargs+__pyx_t_8, (3-__pyx_t_8) | (__pyx_t_8*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
__Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 383, __pyx_L13_error)
__Pyx_GOTREF(__pyx_t_5);
}
__pyx_t_6 = __Pyx_PySequence_Tuple(__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 383, __pyx_L13_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
__pyx_t_5 = __Pyx_PyObject_Call(((PyObject *)__pyx_mstate_global->__pyx_ptype_7cpython_8datetime_time), __pyx_t_6, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 383, __pyx_L13_error)
__Pyx_GOTREF(__pyx_t_5);
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
{
PyObject *__pyx_temp;
{
__pyx_temp = __pyx_r;
__pyx_r = __pyx_t_5;
}
__Pyx_XDECREF(__pyx_temp);
}
__pyx_t_5 = 0;
goto __pyx_L17_try_return;
+0384: except (ValueError, TypeError):
__pyx_t_10 = __Pyx_PyErr_ExceptionMatches2(((PyObject *)(((PyTypeObject*)PyExc_ValueError))), ((PyObject *)(((PyTypeObject*)PyExc_TypeError))));
if (__pyx_t_10) {
__Pyx_ErrRestore(0,0,0);
goto __pyx_L14_exception_handled;
}
goto __pyx_L15_except_error;
0385: pass
+0386: m = TIME_RE.match(obj)
__pyx_t_6 = NULL;
__Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_mstate_global->__pyx_n_u_TIME_RE); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 386, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_mstate_global->__pyx_n_u_match); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 386, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
__pyx_t_8 = 1;
#if CYTHON_UNPACK_METHODS
if (unlikely(PyMethod_Check(__pyx_t_9))) {
__pyx_t_6 = PyMethod_GET_SELF(__pyx_t_9);
assert(__pyx_t_6);
PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_9);
__Pyx_INCREF(__pyx_t_6);
__Pyx_INCREF(__pyx__function);
__Pyx_DECREF_SET(__pyx_t_9, __pyx__function);
__pyx_t_8 = 0;
}
#endif
{
PyObject *__pyx_callargs[2] = {__pyx_t_6, __pyx_v_obj};
__pyx_t_5 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_9, __pyx_callargs+__pyx_t_8, (2-__pyx_t_8) | (__pyx_t_8*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
__Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 386, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
}
__pyx_v_m = __pyx_t_5;
__pyx_t_5 = 0;
+0387: if not m:
__pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_m); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 387, __pyx_L1_error) __pyx_t_11 = (!__pyx_t_1); if (__pyx_t_11) { /* … */ }
+0388: return obj
{
PyObject *__pyx_temp;
{
__pyx_temp = __pyx_r;
__Pyx_INCREF(__pyx_v_obj);
__pyx_r = __pyx_v_obj;
}
__Pyx_XDECREF(__pyx_temp);
}
goto __pyx_L0;
+0389: try:
{
/*try:*/ {
/* … */
}
__pyx_L22_error:;
__Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
__Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
__Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 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;
__Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
__pyx_L24_except_error:;
__Pyx_XGIVEREF(__pyx_t_2);
__Pyx_XGIVEREF(__pyx_t_3);
__Pyx_XGIVEREF(__pyx_t_4);
__Pyx_ExceptionReset(__pyx_t_2, __pyx_t_3, __pyx_t_4);
goto __pyx_L1_error;
__pyx_L26_try_return:;
__Pyx_XGIVEREF(__pyx_t_2);
__Pyx_XGIVEREF(__pyx_t_3);
__Pyx_XGIVEREF(__pyx_t_4);
__Pyx_ExceptionReset(__pyx_t_2, __pyx_t_3, __pyx_t_4);
goto __pyx_L0;
}
}
__pyx_L4:;
+0390: groups = list(m.groups())
__pyx_t_9 = __pyx_v_m;
__Pyx_INCREF(__pyx_t_9);
__pyx_t_8 = 0;
{
PyObject *__pyx_callargs[2] = {__pyx_t_9, NULL};
__pyx_t_5 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_groups, __pyx_callargs+__pyx_t_8, (1-__pyx_t_8) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
__Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 390, __pyx_L22_error)
__Pyx_GOTREF(__pyx_t_5);
}
__pyx_t_9 = __Pyx_PySequence_ListKeepNew(__pyx_t_5); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 390, __pyx_L22_error)
__Pyx_GOTREF(__pyx_t_9);
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
__pyx_v_groups = ((PyObject*)__pyx_t_9);
__pyx_t_9 = 0;
+0391: groups[-1] = _convert_second_fraction(groups[-1])
__pyx_t_9 = __Pyx_GetItemInt_List(__pyx_v_groups, -1L, long, 1, __Pyx_PyLong_From_long, 1, 1, 1, __Pyx_ReferenceSharing_OwnStrongReference); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 391, __pyx_L22_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_10 = __pyx_f_9datamodel_10converters__convert_second_fraction(__pyx_t_9); if (unlikely(__pyx_t_10 == ((int)-1) && PyErr_Occurred())) __PYX_ERR(0, 391, __pyx_L22_error) __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_9 = __Pyx_PyLong_From_int(__pyx_t_10); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 391, __pyx_L22_error) __Pyx_GOTREF(__pyx_t_9); if (unlikely((__Pyx_SetItemInt(__pyx_v_groups, -1L, __pyx_t_9, long, 1, __Pyx_PyLong_From_long, 1, 1, 1, __Pyx_ReferenceSharing_OwnStrongReference) < 0))) __PYX_ERR(0, 391, __pyx_L22_error) __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
+0392: hours, minutes, seconds, microseconds = groups
if (1) {
PyObject* sequence = __pyx_v_groups;
Py_ssize_t size = __Pyx_PyList_GET_SIZE(sequence);
if (unlikely(size != 4)) {
if (size > 4) __Pyx_RaiseTooManyValuesError(4);
else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
__PYX_ERR(0, 392, __pyx_L22_error)
}
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_9 = __Pyx_PyList_GET_ITEM_REF(sequence, 0, __Pyx_ReferenceSharing_SharedReference);
if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 392, __pyx_L22_error)
__Pyx_XGOTREF(__pyx_t_9);
__pyx_t_5 = __Pyx_PyList_GET_ITEM_REF(sequence, 1, __Pyx_ReferenceSharing_SharedReference);
if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 392, __pyx_L22_error)
__Pyx_XGOTREF(__pyx_t_5);
__pyx_t_6 = __Pyx_PyList_GET_ITEM_REF(sequence, 2, __Pyx_ReferenceSharing_SharedReference);
if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 392, __pyx_L22_error)
__Pyx_XGOTREF(__pyx_t_6);
__pyx_t_7 = __Pyx_PyList_GET_ITEM_REF(sequence, 3, __Pyx_ReferenceSharing_SharedReference);
if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 392, __pyx_L22_error)
__Pyx_XGOTREF(__pyx_t_7);
#else
{
Py_ssize_t i;
PyObject** temps[4] = {&__pyx_t_9,&__pyx_t_5,&__pyx_t_6,&__pyx_t_7};
for (i=0; i < 4; i++) {
PyObject* item = __Pyx_PySequence_ITEM(sequence, i); if (unlikely(!item)) __PYX_ERR(0, 392, __pyx_L22_error)
__Pyx_GOTREF(item);
*(temps[i]) = item;
}
}
#endif
}
__pyx_v_hours = __pyx_t_9;
__pyx_t_9 = 0;
__pyx_v_minutes = __pyx_t_5;
__pyx_t_5 = 0;
__pyx_v_seconds = __pyx_t_6;
__pyx_t_6 = 0;
__pyx_v_microseconds = __pyx_t_7;
__pyx_t_7 = 0;
+0393: return datetime.time(
__pyx_t_6 = NULL;
/* … */
{
PyObject* __pyx_temp[4] = {__pyx_mstate_global->__pyx_n_u_hour, __pyx_mstate_global->__pyx_n_u_minute, __pyx_mstate_global->__pyx_n_u_second, __pyx_mstate_global->__pyx_n_u_microsecond};
__pyx_mstate_global->__pyx_tuple[2] = __Pyx_PyTuple_FromArray(__pyx_temp, 4); if (unlikely(!__pyx_mstate_global->__pyx_tuple[2])) __PYX_ERR(0, 393, __pyx_L1_error)
__Pyx_GOTREF(__pyx_mstate_global->__pyx_tuple[2]);
}
__Pyx_GIVEREF(__pyx_mstate_global->__pyx_tuple[2]);
+0394: hour=int(hours),
__pyx_t_5 = __Pyx_PyNumber_Int(__pyx_v_hours); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 394, __pyx_L22_error) __Pyx_GOTREF(__pyx_t_5);
+0395: minute=int(minutes),
__pyx_t_9 = __Pyx_PyNumber_Int(__pyx_v_minutes); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 395, __pyx_L22_error) __Pyx_GOTREF(__pyx_t_9);
+0396: second=int(seconds),
__pyx_t_12 = __Pyx_PyNumber_Int(__pyx_v_seconds); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 396, __pyx_L22_error) __Pyx_GOTREF(__pyx_t_12);
+0397: microsecond=int(microseconds),
__pyx_t_13 = __Pyx_PyNumber_Int(__pyx_v_microseconds); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 397, __pyx_L22_error) __Pyx_GOTREF(__pyx_t_13); __pyx_t_8 = 1; { PyObject *__pyx_callargs[5] = {__pyx_t_6, __pyx_t_5, __pyx_t_9, __pyx_t_12, __pyx_t_13}; #if CYTHON_VECTORCALL __pyx_t_14 = __pyx_mstate_global->__pyx_tuple[2]; if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 393, __pyx_L22_error) __Pyx_INCREF(__pyx_t_14); #else { PyObject *__pyx_temp[4] = {__pyx_mstate_global->__pyx_n_u_hour, __pyx_mstate_global->__pyx_n_u_minute, __pyx_mstate_global->__pyx_n_u_second, __pyx_mstate_global->__pyx_n_u_microsecond}; __pyx_t_14 = __Pyx_MakeKwargDict(__pyx_temp, __pyx_callargs+1, 4); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 393, __pyx_L22_error) __Pyx_GOTREF(__pyx_t_14); } #endif __pyx_t_7 = __Pyx_Object_VectorcallKwds((PyObject*)__pyx_mstate_global->__pyx_ptype_7cpython_8datetime_time, __pyx_callargs+__pyx_t_8, (1-__pyx_t_8) | (__pyx_t_8*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET), __pyx_t_14); __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 393, __pyx_L22_error) __Pyx_GOTREF((PyObject *)__pyx_t_7); } { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; __pyx_r = ((PyObject *)__pyx_t_7); } __Pyx_XDECREF(__pyx_temp); } __pyx_t_7 = 0; goto __pyx_L26_try_return;
0398: )
+0399: except (TypeError, ValueError) as e:
__pyx_t_10 = __Pyx_PyErr_ExceptionMatches2(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), ((PyObject *)(((PyTypeObject*)PyExc_ValueError))));
if (__pyx_t_10) {
__Pyx_AddTraceback("datamodel.converters.to_time", __pyx_clineno, __pyx_lineno, __pyx_filename);
if (__Pyx_GetException(&__pyx_t_7, &__pyx_t_14, &__pyx_t_13) < 0) __PYX_ERR(0, 399, __pyx_L24_except_error)
__Pyx_XGOTREF(__pyx_t_7);
__Pyx_XGOTREF(__pyx_t_14);
__Pyx_XGOTREF(__pyx_t_13);
__Pyx_INCREF(__pyx_t_14);
__pyx_v_e = __pyx_t_14;
/*try:*/ {
/* … */
/*finally:*/ {
__pyx_L33_error:;
/*exception exit:*/{
__Pyx_PyThreadState_declare
__Pyx_PyThreadState_assign
__pyx_t_20 = 0; __pyx_t_21 = 0; __pyx_t_22 = 0; __pyx_t_23 = 0; __pyx_t_24 = 0; __pyx_t_25 = 0;
__Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
__Pyx_XDECREF(__pyx_t_17); __pyx_t_17 = 0;
__Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
__Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
__Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
__Pyx_ExceptionSwap(&__pyx_t_23, &__pyx_t_24, &__pyx_t_25);
if ( unlikely(__Pyx_GetException(&__pyx_t_20, &__pyx_t_21, &__pyx_t_22) < 0)) __Pyx_ErrFetch(&__pyx_t_20, &__pyx_t_21, &__pyx_t_22);
__Pyx_XGOTREF(__pyx_t_20);
__Pyx_XGOTREF(__pyx_t_21);
__Pyx_XGOTREF(__pyx_t_22);
__Pyx_XGOTREF(__pyx_t_23);
__Pyx_XGOTREF(__pyx_t_24);
__Pyx_XGOTREF(__pyx_t_25);
__pyx_t_10 = __pyx_lineno; __pyx_t_18 = __pyx_clineno; __pyx_t_19 = __pyx_filename;
{
__Pyx_DECREF(__pyx_v_e); __pyx_v_e = 0;
}
__Pyx_XGIVEREF(__pyx_t_23);
__Pyx_XGIVEREF(__pyx_t_24);
__Pyx_XGIVEREF(__pyx_t_25);
__Pyx_ExceptionReset(__pyx_t_23, __pyx_t_24, __pyx_t_25);
__Pyx_XGIVEREF(__pyx_t_20);
__Pyx_XGIVEREF(__pyx_t_21);
__Pyx_XGIVEREF(__pyx_t_22);
__Pyx_ErrRestore(__pyx_t_20, __pyx_t_21, __pyx_t_22);
__pyx_t_20 = 0; __pyx_t_21 = 0; __pyx_t_22 = 0; __pyx_t_23 = 0; __pyx_t_24 = 0; __pyx_t_25 = 0;
__pyx_lineno = __pyx_t_10; __pyx_clineno = __pyx_t_18; __pyx_filename = __pyx_t_19;
goto __pyx_L24_except_error;
}
}
}
goto __pyx_L24_except_error;
+0400: raise ValueError(
__pyx_t_9 = NULL;
+0401: f"Invalid Time/Timestamp Object {obj}: {e}"
__pyx_t_5 = __Pyx_PyObject_FormatSimple(__pyx_v_obj, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 401, __pyx_L33_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_6 = __Pyx_PyObject_FormatSimple(__pyx_v_e, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 401, __pyx_L33_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_15[0] = __pyx_mstate_global->__pyx_kp_u_Invalid_Time_Timestamp_Object; __pyx_t_15[1] = __pyx_t_5; __pyx_t_15[2] = __pyx_mstate_global->__pyx_kp_u__5; __pyx_t_15[3] = __pyx_t_6; __pyx_t_16 = 32; #if __Pyx_PyUnicode_Join_CAN_USE_KIND_AND_LENGTH __pyx_t_16 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_15[1]) + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_15[3]); #endif __pyx_t_10 = 0; #if __Pyx_PyUnicode_Join_CAN_USE_KIND_AND_LENGTH __pyx_t_10 |= __Pyx_PyUnicode_KIND_04(__pyx_t_15[1]) | __Pyx_PyUnicode_KIND_04(__pyx_t_15[3]); #endif __pyx_t_17 = __Pyx_PyUnicode_Join(__pyx_t_15, 4, __pyx_t_16, __pyx_t_10); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 401, __pyx_L33_error) __Pyx_GOTREF(__pyx_t_17); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_8 = 1; { PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_17}; __pyx_t_12 = __Pyx_PyObject_FastCall((PyObject*)(((PyTypeObject*)PyExc_ValueError)), __pyx_callargs+__pyx_t_8, (2-__pyx_t_8) | (__pyx_t_8*__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_12)) __PYX_ERR(0, 400, __pyx_L33_error) __Pyx_GOTREF(__pyx_t_12); } __Pyx_Raise(__pyx_t_12, 0, 0, 0); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __PYX_ERR(0, 400, __pyx_L33_error) }
0402: )
0403:
0404:
+0405: cpdef object strtobool(str val):
static PyObject *__pyx_pw_9datamodel_10converters_23strtobool(PyObject *__pyx_self,
#if CYTHON_VECTORCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyObject *__pyx_f_9datamodel_10converters_strtobool(PyObject *__pyx_v_val, CYTHON_UNUSED int __pyx_skip_dispatch) {
PyObject *__pyx_r = NULL;
__Pyx_INCREF(__pyx_v_val);
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_2);
__Pyx_XDECREF(__pyx_t_5);
__Pyx_XDECREF(__pyx_t_9);
__Pyx_AddTraceback("datamodel.converters.strtobool", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = 0;
__pyx_L0:;
__Pyx_XDECREF(__pyx_v_val);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* Python wrapper */
static PyObject *__pyx_pw_9datamodel_10converters_23strtobool(PyObject *__pyx_self,
#if CYTHON_VECTORCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_9datamodel_10converters_22strtobool, "strtobool(str val)\n\nConvert a string representation of truth to true (1) or false (0).\n\nTrue values are \047y\047, \047yes\047, \047t\047, \047true\047, \047on\047, and \0471\047; false values\nare \047n\047, \047no\047, \047f\047, \047false\047, \047off\047, and \0470\047. Raises ValueError if\n\047val\047 is anything else.");
static PyMethodDef __pyx_mdef_9datamodel_10converters_23strtobool = {"strtobool", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9datamodel_10converters_23strtobool, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_9datamodel_10converters_22strtobool};
static PyObject *__pyx_pw_9datamodel_10converters_23strtobool(PyObject *__pyx_self,
#if CYTHON_VECTORCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
PyObject *__pyx_v_val = 0;
#if !CYTHON_VECTORCALL
CYTHON_UNUSED Py_ssize_t __pyx_nargs;
#endif
CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("strtobool (wrapper)", 0);
#if !CYTHON_VECTORCALL
#if CYTHON_ASSUME_SAFE_SIZE
__pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
#else
__pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
#endif
#endif
__pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
{
PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_val,0};
PyObject* values[1] = {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, 405, __pyx_L3_error)
if (__pyx_kwds_len > 0) {
switch (__pyx_nargs) {
case 1:
values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 405, __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, "strtobool", 0) < (0)) __PYX_ERR(0, 405, __pyx_L3_error)
for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("strtobool", 1, 1, 1, i); __PYX_ERR(0, 405, __pyx_L3_error) }
}
} else if (unlikely(__pyx_nargs != 1)) {
goto __pyx_L5_argtuple_error;
} else {
values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 405, __pyx_L3_error)
}
__pyx_v_val = ((PyObject*)values[0]);
}
goto __pyx_L6_skip;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("strtobool", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 405, __pyx_L3_error)
__pyx_L6_skip:;
goto __pyx_L4_argument_unpacking_done;
__pyx_L3_error:;
for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
Py_XDECREF(values[__pyx_temp]);
}
__Pyx_AddTraceback("datamodel.converters.strtobool", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_val), (&PyUnicode_Type), 1, "val", 1))) __PYX_ERR(0, 405, __pyx_L1_error)
__pyx_r = __pyx_pf_9datamodel_10converters_22strtobool(__pyx_self, __pyx_v_val);
int __pyx_lineno = 0;
const char *__pyx_filename = NULL;
int __pyx_clineno = 0;
/* function exit code */
goto __pyx_L0;
__pyx_L1_error:;
__pyx_r = NULL;
for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
Py_XDECREF(values[__pyx_temp]);
}
goto __pyx_L7_cleaned_up;
__pyx_L0:;
for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
Py_XDECREF(values[__pyx_temp]);
}
__pyx_L7_cleaned_up:;
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_9datamodel_10converters_22strtobool(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_val) {
PyObject *__pyx_r = NULL;
__pyx_t_1 = __pyx_f_9datamodel_10converters_strtobool(__pyx_v_val, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 405, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
{
PyObject *__pyx_temp;
{
__pyx_temp = __pyx_r;
__pyx_r = __pyx_t_1;
}
__Pyx_XDECREF(__pyx_temp);
}
__pyx_t_1 = 0;
goto __pyx_L0;
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_AddTraceback("datamodel.converters.strtobool", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
__pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_9datamodel_10converters_23strtobool, 0, __pyx_mstate_global->__pyx_n_u_strtobool, NULL, __pyx_mstate_global->__pyx_n_u_datamodel_converters, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[16])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 405, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
#endif
if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_strtobool, __pyx_t_2) < (0)) __PYX_ERR(0, 405, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
0406: """Convert a string representation of truth to true (1) or false (0).
0407:
0408: True values are 'y', 'yes', 't', 'true', 'on', and '1'; false values
0409: are 'n', 'no', 'f', 'false', 'off', and '0'. Raises ValueError if
0410: 'val' is anything else.
0411: """
+0412: val = val.lower()
__pyx_t_1 = __Pyx_CallUnboundCMethod0(&__pyx_mstate_global->__pyx_umethod_PyUnicode_Type__lower, __pyx_v_val); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 412, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (!(likely(PyUnicode_CheckExact(__pyx_t_1)) || __Pyx_RaiseUnexpectedTypeError("str", __pyx_t_1))) __PYX_ERR(0, 412, __pyx_L1_error) __Pyx_DECREF_SET(__pyx_v_val, ((PyObject*)__pyx_t_1)); __pyx_t_1 = 0;
+0413: if val in ('y', 'yes', 't', 'true', 'on', '1', 'T'):
__Pyx_INCREF(__pyx_v_val); __pyx_t_2 = __pyx_v_val; __pyx_t_4 = (__Pyx_PyObject_Equals_str_ch121(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_y, Py_EQ)); if (unlikely((__pyx_t_4 < 0))) __PYX_ERR(0, 413, __pyx_L1_error) if (!__pyx_t_4) { } else { __pyx_t_3 = __pyx_t_4; goto __pyx_L4_bool_binop_done; } __pyx_t_4 = __Pyx_PyObject_CompareBoolEq_str_str(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_yes, Py_EQ); if (unlikely((__pyx_t_4 < 0))) __PYX_ERR(0, 413, __pyx_L1_error) if (!__pyx_t_4) { } else { __pyx_t_3 = __pyx_t_4; goto __pyx_L4_bool_binop_done; } __pyx_t_4 = (__Pyx_PyObject_Equals_str_ch116(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_t, Py_EQ)); if (unlikely((__pyx_t_4 < 0))) __PYX_ERR(0, 413, __pyx_L1_error) if (!__pyx_t_4) { } else { __pyx_t_3 = __pyx_t_4; goto __pyx_L4_bool_binop_done; } __pyx_t_4 = __Pyx_PyObject_CompareBoolEq_str_str(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_true, Py_EQ); if (unlikely((__pyx_t_4 < 0))) __PYX_ERR(0, 413, __pyx_L1_error) if (!__pyx_t_4) { } else { __pyx_t_3 = __pyx_t_4; goto __pyx_L4_bool_binop_done; } __pyx_t_4 = __Pyx_PyObject_CompareBoolEq_str_str(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_on, Py_EQ); if (unlikely((__pyx_t_4 < 0))) __PYX_ERR(0, 413, __pyx_L1_error) if (!__pyx_t_4) { } else { __pyx_t_3 = __pyx_t_4; goto __pyx_L4_bool_binop_done; } __pyx_t_4 = (__Pyx_PyObject_Equals_str_ch49(__pyx_t_2, __pyx_mstate_global->__pyx_kp_u_1, Py_EQ)); if (unlikely((__pyx_t_4 < 0))) __PYX_ERR(0, 413, __pyx_L1_error) if (!__pyx_t_4) { } else { __pyx_t_3 = __pyx_t_4; goto __pyx_L4_bool_binop_done; } __pyx_t_4 = (__Pyx_PyObject_Equals_str_ch84(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_T, Py_EQ)); if (unlikely((__pyx_t_4 < 0))) __PYX_ERR(0, 413, __pyx_L1_error) __pyx_t_3 = __pyx_t_4; __pyx_L4_bool_binop_done:; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_4 = __pyx_t_3; if (__pyx_t_4) { /* … */ }
+0414: return True
{
PyObject *__pyx_temp;
{
__pyx_temp = __pyx_r;
__Pyx_INCREF(Py_True);
__pyx_r = Py_True;
}
__Pyx_XDECREF(__pyx_temp);
}
goto __pyx_L0;
+0415: elif val in ('n', 'no', 'f', 'false', 'off', '0', 'none', 'null'):
__Pyx_INCREF(__pyx_v_val); __pyx_t_2 = __pyx_v_val; __pyx_t_3 = (__Pyx_PyObject_Equals_str_ch110(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_n, Py_EQ)); if (unlikely((__pyx_t_3 < 0))) __PYX_ERR(0, 415, __pyx_L1_error) if (!__pyx_t_3) { } else { __pyx_t_4 = __pyx_t_3; goto __pyx_L11_bool_binop_done; } __pyx_t_3 = __Pyx_PyObject_CompareBoolEq_str_str(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_no, Py_EQ); if (unlikely((__pyx_t_3 < 0))) __PYX_ERR(0, 415, __pyx_L1_error) if (!__pyx_t_3) { } else { __pyx_t_4 = __pyx_t_3; goto __pyx_L11_bool_binop_done; } __pyx_t_3 = (__Pyx_PyObject_Equals_str_ch102(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_f, Py_EQ)); if (unlikely((__pyx_t_3 < 0))) __PYX_ERR(0, 415, __pyx_L1_error) if (!__pyx_t_3) { } else { __pyx_t_4 = __pyx_t_3; goto __pyx_L11_bool_binop_done; } __pyx_t_3 = __Pyx_PyObject_CompareBoolEq_str_str(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_false, Py_EQ); if (unlikely((__pyx_t_3 < 0))) __PYX_ERR(0, 415, __pyx_L1_error) if (!__pyx_t_3) { } else { __pyx_t_4 = __pyx_t_3; goto __pyx_L11_bool_binop_done; } __pyx_t_3 = __Pyx_PyObject_CompareBoolEq_str_str(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_off, Py_EQ); if (unlikely((__pyx_t_3 < 0))) __PYX_ERR(0, 415, __pyx_L1_error) if (!__pyx_t_3) { } else { __pyx_t_4 = __pyx_t_3; goto __pyx_L11_bool_binop_done; } __pyx_t_3 = (__Pyx_PyObject_Equals_str_ch48(__pyx_t_2, __pyx_mstate_global->__pyx_kp_u_0, Py_EQ)); if (unlikely((__pyx_t_3 < 0))) __PYX_ERR(0, 415, __pyx_L1_error) if (!__pyx_t_3) { } else { __pyx_t_4 = __pyx_t_3; goto __pyx_L11_bool_binop_done; } __pyx_t_3 = __Pyx_PyObject_CompareBoolEq_str_str(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_none, Py_EQ); if (unlikely((__pyx_t_3 < 0))) __PYX_ERR(0, 415, __pyx_L1_error) if (!__pyx_t_3) { } else { __pyx_t_4 = __pyx_t_3; goto __pyx_L11_bool_binop_done; } __pyx_t_3 = __Pyx_PyObject_CompareBoolEq_str_str(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_null, Py_EQ); if (unlikely((__pyx_t_3 < 0))) __PYX_ERR(0, 415, __pyx_L1_error) __pyx_t_4 = __pyx_t_3; __pyx_L11_bool_binop_done:; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_3 = __pyx_t_4; if (likely(__pyx_t_3)) { /* … */ }
+0416: return False
{
PyObject *__pyx_temp;
{
__pyx_temp = __pyx_r;
__Pyx_INCREF(Py_False);
__pyx_r = Py_False;
}
__Pyx_XDECREF(__pyx_temp);
}
goto __pyx_L0;
0417: else:
+0418: raise ValueError(
/*else*/ {
__pyx_t_5 = NULL;
+0419: f"Invalid truth value for **'{val}'**"
__pyx_t_6[0] = __pyx_mstate_global->__pyx_kp_u_Invalid_truth_value_for;
__pyx_t_6[1] = __pyx_v_val;
__pyx_t_6[2] = __pyx_mstate_global->__pyx_kp_u__6;
__pyx_t_7 = 30;
#if __Pyx_PyUnicode_Join_CAN_USE_KIND_AND_LENGTH
__pyx_t_7 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_6[1]);
#endif
__pyx_t_8 = 0;
#if __Pyx_PyUnicode_Join_CAN_USE_KIND_AND_LENGTH
__pyx_t_8 |= __Pyx_PyUnicode_KIND_04(__pyx_t_6[1]);
#endif
__pyx_t_9 = __Pyx_PyUnicode_Join(__pyx_t_6, 3, __pyx_t_7, __pyx_t_8);
if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 419, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__pyx_t_10 = 1;
{
PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_9};
__pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)(((PyTypeObject*)PyExc_ValueError)), __pyx_callargs+__pyx_t_10, (2-__pyx_t_10) | (__pyx_t_10*__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_1)) __PYX_ERR(0, 418, __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, 418, __pyx_L1_error)
}
0420: )
0421:
+0422: cpdef object to_boolean(object obj):
static PyObject *__pyx_pw_9datamodel_10converters_25to_boolean(PyObject *__pyx_self,
#if CYTHON_VECTORCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyObject *__pyx_f_9datamodel_10converters_to_boolean(PyObject *__pyx_v_obj, CYTHON_UNUSED int __pyx_skip_dispatch) {
PyObject *__pyx_r = NULL;
__Pyx_INCREF(__pyx_v_obj);
/* … */
/* function exit code */
__pyx_r = Py_None; __Pyx_INCREF(Py_None);
goto __pyx_L0;
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_4);
__Pyx_XDECREF(__pyx_t_9);
__Pyx_AddTraceback("datamodel.converters.to_boolean", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = 0;
__pyx_L0:;
__Pyx_XDECREF(__pyx_v_obj);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* Python wrapper */
static PyObject *__pyx_pw_9datamodel_10converters_25to_boolean(PyObject *__pyx_self,
#if CYTHON_VECTORCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_9datamodel_10converters_24to_boolean, "to_boolean(obj)\n\nto_boolean.\n\nConvert and returns any object value to boolean version.");
static PyMethodDef __pyx_mdef_9datamodel_10converters_25to_boolean = {"to_boolean", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9datamodel_10converters_25to_boolean, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_9datamodel_10converters_24to_boolean};
static PyObject *__pyx_pw_9datamodel_10converters_25to_boolean(PyObject *__pyx_self,
#if CYTHON_VECTORCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
PyObject *__pyx_v_obj = 0;
#if !CYTHON_VECTORCALL
CYTHON_UNUSED Py_ssize_t __pyx_nargs;
#endif
CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("to_boolean (wrapper)", 0);
#if !CYTHON_VECTORCALL
#if CYTHON_ASSUME_SAFE_SIZE
__pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
#else
__pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
#endif
#endif
__pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
{
PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_obj,0};
PyObject* values[1] = {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, 422, __pyx_L3_error)
if (__pyx_kwds_len > 0) {
switch (__pyx_nargs) {
case 1:
values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 422, __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, "to_boolean", 0) < (0)) __PYX_ERR(0, 422, __pyx_L3_error)
for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("to_boolean", 1, 1, 1, i); __PYX_ERR(0, 422, __pyx_L3_error) }
}
} else if (unlikely(__pyx_nargs != 1)) {
goto __pyx_L5_argtuple_error;
} else {
values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 422, __pyx_L3_error)
}
__pyx_v_obj = values[0];
}
goto __pyx_L6_skip;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("to_boolean", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 422, __pyx_L3_error)
__pyx_L6_skip:;
goto __pyx_L4_argument_unpacking_done;
__pyx_L3_error:;
for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
Py_XDECREF(values[__pyx_temp]);
}
__Pyx_AddTraceback("datamodel.converters.to_boolean", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
__pyx_r = __pyx_pf_9datamodel_10converters_24to_boolean(__pyx_self, __pyx_v_obj);
int __pyx_lineno = 0;
const char *__pyx_filename = NULL;
int __pyx_clineno = 0;
/* function exit code */
for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
Py_XDECREF(values[__pyx_temp]);
}
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_9datamodel_10converters_24to_boolean(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_obj) {
PyObject *__pyx_r = NULL;
__pyx_t_1 = __pyx_f_9datamodel_10converters_to_boolean(__pyx_v_obj, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 422, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
{
PyObject *__pyx_temp;
{
__pyx_temp = __pyx_r;
__pyx_r = __pyx_t_1;
}
__Pyx_XDECREF(__pyx_temp);
}
__pyx_t_1 = 0;
goto __pyx_L0;
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_AddTraceback("datamodel.converters.to_boolean", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
__pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_9datamodel_10converters_25to_boolean, 0, __pyx_mstate_global->__pyx_n_u_to_boolean, NULL, __pyx_mstate_global->__pyx_n_u_datamodel_converters, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[17])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 422, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
#endif
if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_to_boolean, __pyx_t_2) < (0)) __PYX_ERR(0, 422, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
0423: """to_boolean.
0424:
0425: Convert and returns any object value to boolean version.
0426: """
+0427: if obj is None:
__pyx_t_1 = (__pyx_v_obj == Py_None);
if (__pyx_t_1) {
/* … */
}
+0428: return None
{
PyObject *__pyx_temp;
{
__pyx_temp = __pyx_r;
__pyx_r = Py_None; __Pyx_INCREF(Py_None);
}
__Pyx_XDECREF(__pyx_temp);
}
goto __pyx_L0;
+0429: if isinstance(obj, bool):
__pyx_t_1 = PyBool_Check(__pyx_v_obj);
if (__pyx_t_1) {
/* … */
}
+0430: return obj
{
PyObject *__pyx_temp;
{
__pyx_temp = __pyx_r;
__Pyx_INCREF(__pyx_v_obj);
__pyx_r = __pyx_v_obj;
}
__Pyx_XDECREF(__pyx_temp);
}
goto __pyx_L0;
+0431: if isinstance(obj, (bytes, bytearray)):
__pyx_t_2 = PyBytes_Check(__pyx_v_obj);
if (!__pyx_t_2) {
} else {
__pyx_t_1 = __pyx_t_2;
goto __pyx_L6_bool_binop_done;
}
__pyx_t_2 = PyByteArray_Check(__pyx_v_obj);
__pyx_t_1 = __pyx_t_2;
__pyx_L6_bool_binop_done:;
if (__pyx_t_1) {
/* … */
}
+0432: obj = obj.decode("ascii")
__pyx_t_4 = __pyx_v_obj;
__Pyx_INCREF(__pyx_t_4);
__pyx_t_5 = 0;
{
PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_mstate_global->__pyx_n_u_ascii};
__pyx_t_3 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_decode, __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, 432, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
}
__Pyx_DECREF_SET(__pyx_v_obj, __pyx_t_3);
__pyx_t_3 = 0;
+0433: if isinstance(obj, str):
__pyx_t_1 = PyUnicode_Check(__pyx_v_obj);
if (__pyx_t_1) {
/* … */
}
+0434: return strtobool(obj)
__pyx_t_3 = __pyx_v_obj;
__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, 434, __pyx_L1_error)
__pyx_t_4 = __pyx_f_9datamodel_10converters_strtobool(((PyObject*)__pyx_t_3), 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 434, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
{
PyObject *__pyx_temp;
{
__pyx_temp = __pyx_r;
__pyx_r = __pyx_t_4;
}
__Pyx_XDECREF(__pyx_temp);
}
__pyx_t_4 = 0;
goto __pyx_L0;
+0435: elif callable(obj):
__pyx_t_1 = __Pyx_PyCallable_Check(__pyx_v_obj); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(0, 435, __pyx_L1_error) if (__pyx_t_1) { /* … */ goto __pyx_L8; }
0436: # its a function callable returning a value
+0437: try:
{
/*try:*/ {
/* … */
}
__pyx_L9_error:;
__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_L13_try_return:;
__Pyx_XGIVEREF(__pyx_t_6);
__Pyx_XGIVEREF(__pyx_t_7);
__Pyx_XGIVEREF(__pyx_t_8);
__Pyx_ExceptionReset(__pyx_t_6, __pyx_t_7, __pyx_t_8);
goto __pyx_L0;
__pyx_L10_exception_handled:;
__Pyx_XGIVEREF(__pyx_t_6);
__Pyx_XGIVEREF(__pyx_t_7);
__Pyx_XGIVEREF(__pyx_t_8);
__Pyx_ExceptionReset(__pyx_t_6, __pyx_t_7, __pyx_t_8);
}
+0438: return obj()
__pyx_t_3 = NULL;
__Pyx_INCREF(__pyx_v_obj);
__pyx_t_9 = __pyx_v_obj;
__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);
__Pyx_INCREF(__pyx__function);
__Pyx_DECREF_SET(__pyx_t_9, __pyx__function);
__pyx_t_5 = 0;
}
#endif
{
PyObject *__pyx_callargs[2] = {__pyx_t_3, NULL};
__pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_9, __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_9); __pyx_t_9 = 0;
if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 438, __pyx_L9_error)
__Pyx_GOTREF(__pyx_t_4);
}
{
PyObject *__pyx_temp;
{
__pyx_temp = __pyx_r;
__pyx_r = __pyx_t_4;
}
__Pyx_XDECREF(__pyx_temp);
}
__pyx_t_4 = 0;
goto __pyx_L13_try_return;
+0439: except:
/*except:*/ {
__Pyx_ErrRestore(0,0,0);
goto __pyx_L10_exception_handled;
}
0440: pass
0441: else:
+0442: return bool(obj)
/*else*/ {
__pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_obj); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 442, __pyx_L1_error)
__pyx_t_4 = __Pyx_PyBool_FromLong((!(!__pyx_t_1))); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 442, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
{
PyObject *__pyx_temp;
{
__pyx_temp = __pyx_r;
__pyx_r = __pyx_t_4;
}
__Pyx_XDECREF(__pyx_temp);
}
__pyx_t_4 = 0;
goto __pyx_L0;
}
__pyx_L8:;
0443:
+0444: cpdef object to_object(object obj):
static PyObject *__pyx_pw_9datamodel_10converters_27to_object(PyObject *__pyx_self,
#if CYTHON_VECTORCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyObject *__pyx_f_9datamodel_10converters_to_object(PyObject *__pyx_v_obj, CYTHON_UNUSED int __pyx_skip_dispatch) {
PyObject *__pyx_r = NULL;
/* … */
/* function exit code */
__pyx_r = Py_None; __Pyx_INCREF(Py_None);
goto __pyx_L0;
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_6);
__Pyx_XDECREF(__pyx_t_7);
__Pyx_XDECREF(__pyx_t_8);
__Pyx_XDECREF(__pyx_t_10);
__Pyx_AddTraceback("datamodel.converters.to_object", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = 0;
__pyx_L0:;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* Python wrapper */
static PyObject *__pyx_pw_9datamodel_10converters_27to_object(PyObject *__pyx_self,
#if CYTHON_VECTORCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_9datamodel_10converters_26to_object, "to_object(obj)");
static PyMethodDef __pyx_mdef_9datamodel_10converters_27to_object = {"to_object", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9datamodel_10converters_27to_object, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_9datamodel_10converters_26to_object};
static PyObject *__pyx_pw_9datamodel_10converters_27to_object(PyObject *__pyx_self,
#if CYTHON_VECTORCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
PyObject *__pyx_v_obj = 0;
#if !CYTHON_VECTORCALL
CYTHON_UNUSED Py_ssize_t __pyx_nargs;
#endif
CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("to_object (wrapper)", 0);
#if !CYTHON_VECTORCALL
#if CYTHON_ASSUME_SAFE_SIZE
__pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
#else
__pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
#endif
#endif
__pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
{
PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_obj,0};
PyObject* values[1] = {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, 444, __pyx_L3_error)
if (__pyx_kwds_len > 0) {
switch (__pyx_nargs) {
case 1:
values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 444, __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, "to_object", 0) < (0)) __PYX_ERR(0, 444, __pyx_L3_error)
for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("to_object", 1, 1, 1, i); __PYX_ERR(0, 444, __pyx_L3_error) }
}
} else if (unlikely(__pyx_nargs != 1)) {
goto __pyx_L5_argtuple_error;
} else {
values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 444, __pyx_L3_error)
}
__pyx_v_obj = values[0];
}
goto __pyx_L6_skip;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("to_object", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 444, __pyx_L3_error)
__pyx_L6_skip:;
goto __pyx_L4_argument_unpacking_done;
__pyx_L3_error:;
for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
Py_XDECREF(values[__pyx_temp]);
}
__Pyx_AddTraceback("datamodel.converters.to_object", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
__pyx_r = __pyx_pf_9datamodel_10converters_26to_object(__pyx_self, __pyx_v_obj);
int __pyx_lineno = 0;
const char *__pyx_filename = NULL;
int __pyx_clineno = 0;
/* function exit code */
for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
Py_XDECREF(values[__pyx_temp]);
}
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_9datamodel_10converters_26to_object(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_obj) {
PyObject *__pyx_r = NULL;
__pyx_t_1 = __pyx_f_9datamodel_10converters_to_object(__pyx_v_obj, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 444, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
{
PyObject *__pyx_temp;
{
__pyx_temp = __pyx_r;
__pyx_r = __pyx_t_1;
}
__Pyx_XDECREF(__pyx_temp);
}
__pyx_t_1 = 0;
goto __pyx_L0;
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_AddTraceback("datamodel.converters.to_object", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
__pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_9datamodel_10converters_27to_object, 0, __pyx_mstate_global->__pyx_n_u_to_object, NULL, __pyx_mstate_global->__pyx_n_u_datamodel_converters, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[18])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 444, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
#endif
if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_to_object, __pyx_t_2) < (0)) __PYX_ERR(0, 444, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+0445: if obj is None:
__pyx_t_1 = (__pyx_v_obj == Py_None);
if (__pyx_t_1) {
/* … */
}
+0446: return None
{
PyObject *__pyx_temp;
{
__pyx_temp = __pyx_r;
__pyx_r = Py_None; __Pyx_INCREF(Py_None);
}
__Pyx_XDECREF(__pyx_temp);
}
goto __pyx_L0;
+0447: if isinstance(obj, (list, dict,tuple)):
__pyx_t_2 = PyList_Check(__pyx_v_obj); if (!__pyx_t_2) { } else { __pyx_t_1 = __pyx_t_2; goto __pyx_L5_bool_binop_done; } __pyx_t_2 = PyDict_Check(__pyx_v_obj); if (!__pyx_t_2) { } else { __pyx_t_1 = __pyx_t_2; goto __pyx_L5_bool_binop_done; } __pyx_t_2 = PyTuple_Check(__pyx_v_obj); __pyx_t_1 = __pyx_t_2; __pyx_L5_bool_binop_done:; if (__pyx_t_1) { /* … */ }
+0448: return obj
{
PyObject *__pyx_temp;
{
__pyx_temp = __pyx_r;
__Pyx_INCREF(__pyx_v_obj);
__pyx_r = __pyx_v_obj;
}
__Pyx_XDECREF(__pyx_temp);
}
goto __pyx_L0;
+0449: elif callable(obj):
__pyx_t_1 = __Pyx_PyCallable_Check(__pyx_v_obj); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(0, 449, __pyx_L1_error) if (__pyx_t_1) { /* … */ goto __pyx_L4; }
0450: # its a function callable returning a value
+0451: try:
{
/*try:*/ {
/* … */
}
__pyx_L8_error:;
__Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
__Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
__Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
/* … */
__pyx_L12_try_return:;
__Pyx_XGIVEREF(__pyx_t_3);
__Pyx_XGIVEREF(__pyx_t_4);
__Pyx_XGIVEREF(__pyx_t_5);
__Pyx_ExceptionReset(__pyx_t_3, __pyx_t_4, __pyx_t_5);
goto __pyx_L0;
__pyx_L9_exception_handled:;
__Pyx_XGIVEREF(__pyx_t_3);
__Pyx_XGIVEREF(__pyx_t_4);
__Pyx_XGIVEREF(__pyx_t_5);
__Pyx_ExceptionReset(__pyx_t_3, __pyx_t_4, __pyx_t_5);
}
+0452: return obj()
__pyx_t_7 = NULL;
__Pyx_INCREF(__pyx_v_obj);
__pyx_t_8 = __pyx_v_obj;
__pyx_t_9 = 1;
#if CYTHON_UNPACK_METHODS
if (unlikely(PyMethod_Check(__pyx_t_8))) {
__pyx_t_7 = PyMethod_GET_SELF(__pyx_t_8);
assert(__pyx_t_7);
PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_8);
__Pyx_INCREF(__pyx_t_7);
__Pyx_INCREF(__pyx__function);
__Pyx_DECREF_SET(__pyx_t_8, __pyx__function);
__pyx_t_9 = 0;
}
#endif
{
PyObject *__pyx_callargs[2] = {__pyx_t_7, NULL};
__pyx_t_6 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_8, __pyx_callargs+__pyx_t_9, (1-__pyx_t_9) | (__pyx_t_9*__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_6)) __PYX_ERR(0, 452, __pyx_L8_error)
__Pyx_GOTREF(__pyx_t_6);
}
{
PyObject *__pyx_temp;
{
__pyx_temp = __pyx_r;
__pyx_r = __pyx_t_6;
}
__Pyx_XDECREF(__pyx_temp);
}
__pyx_t_6 = 0;
goto __pyx_L12_try_return;
+0453: except:
/*except:*/ {
__Pyx_ErrRestore(0,0,0);
goto __pyx_L9_exception_handled;
}
0454: pass
+0455: elif isinstance(obj, str):
__pyx_t_1 = PyUnicode_Check(__pyx_v_obj);
if (likely(__pyx_t_1)) {
/* … */
}
+0456: try:
{
/*try:*/ {
/* … */
}
__pyx_L16_error:;
__Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
__Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
__Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
__Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
/* … */
__pyx_L18_except_error:;
__Pyx_XGIVEREF(__pyx_t_5);
__Pyx_XGIVEREF(__pyx_t_4);
__Pyx_XGIVEREF(__pyx_t_3);
__Pyx_ExceptionReset(__pyx_t_5, __pyx_t_4, __pyx_t_3);
goto __pyx_L1_error;
__pyx_L20_try_return:;
__Pyx_XGIVEREF(__pyx_t_5);
__Pyx_XGIVEREF(__pyx_t_4);
__Pyx_XGIVEREF(__pyx_t_3);
__Pyx_ExceptionReset(__pyx_t_5, __pyx_t_4, __pyx_t_3);
goto __pyx_L0;
__pyx_L19_except_return:;
__Pyx_XGIVEREF(__pyx_t_5);
__Pyx_XGIVEREF(__pyx_t_4);
__Pyx_XGIVEREF(__pyx_t_3);
__Pyx_ExceptionReset(__pyx_t_5, __pyx_t_4, __pyx_t_3);
goto __pyx_L0;
}
+0457: return orjson.loads(obj)
__pyx_t_8 = NULL;
__Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_mstate_global->__pyx_n_u_orjson); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 457, __pyx_L16_error)
__Pyx_GOTREF(__pyx_t_7);
__pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_mstate_global->__pyx_n_u_loads); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 457, __pyx_L16_error)
__Pyx_GOTREF(__pyx_t_10);
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
__pyx_t_9 = 1;
#if CYTHON_UNPACK_METHODS
if (unlikely(PyMethod_Check(__pyx_t_10))) {
__pyx_t_8 = PyMethod_GET_SELF(__pyx_t_10);
assert(__pyx_t_8);
PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_10);
__Pyx_INCREF(__pyx_t_8);
__Pyx_INCREF(__pyx__function);
__Pyx_DECREF_SET(__pyx_t_10, __pyx__function);
__pyx_t_9 = 0;
}
#endif
{
PyObject *__pyx_callargs[2] = {__pyx_t_8, __pyx_v_obj};
__pyx_t_6 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_10, __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_10); __pyx_t_10 = 0;
if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 457, __pyx_L16_error)
__Pyx_GOTREF(__pyx_t_6);
}
{
PyObject *__pyx_temp;
{
__pyx_temp = __pyx_r;
__pyx_r = __pyx_t_6;
}
__Pyx_XDECREF(__pyx_temp);
}
__pyx_t_6 = 0;
goto __pyx_L20_try_return;
+0458: except (TypeError, ValueError):
__pyx_t_11 = __Pyx_PyErr_ExceptionMatches2(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), ((PyObject *)(((PyTypeObject*)PyExc_ValueError))));
if (__pyx_t_11) {
__Pyx_ErrRestore(0,0,0);
+0459: return None
{
PyObject *__pyx_temp;
{
__pyx_temp = __pyx_r;
__pyx_r = Py_None; __Pyx_INCREF(Py_None);
}
__Pyx_XDECREF(__pyx_temp);
}
goto __pyx_L19_except_return;
}
goto __pyx_L18_except_error;
0460: else:
+0461: raise ValueError(
/*else*/ {
__pyx_t_10 = NULL;
+0462: f"Can't convert invalid data {obj} to Object"
__pyx_t_8 = __Pyx_PyObject_FormatSimple(__pyx_v_obj, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 462, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_12[0] = __pyx_mstate_global->__pyx_kp_u_Can_t_convert_invalid_data_2; __pyx_t_12[1] = __pyx_t_8; __pyx_t_12[2] = __pyx_mstate_global->__pyx_kp_u_to_Object; __pyx_t_13 = 37; #if __Pyx_PyUnicode_Join_CAN_USE_KIND_AND_LENGTH __pyx_t_13 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_12[1]); #endif __pyx_t_11 = 0; #if __Pyx_PyUnicode_Join_CAN_USE_KIND_AND_LENGTH __pyx_t_11 |= __Pyx_PyUnicode_KIND_04(__pyx_t_12[1]); #endif __pyx_t_7 = __Pyx_PyUnicode_Join(__pyx_t_12, 3, __pyx_t_13, __pyx_t_11); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 462, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_t_9 = 1; { PyObject *__pyx_callargs[2] = {__pyx_t_10, __pyx_t_7}; __pyx_t_6 = __Pyx_PyObject_FastCall((PyObject*)(((PyTypeObject*)PyExc_ValueError)), __pyx_callargs+__pyx_t_9, (2-__pyx_t_9) | (__pyx_t_9*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 461, __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, 461, __pyx_L1_error) } __pyx_L4:;
0463: )
0464:
+0465: cpdef bytes to_bytes(object obj):
static PyObject *__pyx_pw_9datamodel_10converters_29to_bytes(PyObject *__pyx_self,
#if CYTHON_VECTORCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyObject *__pyx_f_9datamodel_10converters_to_bytes(PyObject *__pyx_v_obj, CYTHON_UNUSED int __pyx_skip_dispatch) {
PyObject *__pyx_v_result = NULL;
PyObject *__pyx_v_e = NULL;
PyObject *__pyx_r = NULL;
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_2);
__Pyx_XDECREF(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_8);
__Pyx_XDECREF(__pyx_t_10);
__Pyx_XDECREF(__pyx_t_11);
__Pyx_XDECREF(__pyx_t_12);
__Pyx_AddTraceback("datamodel.converters.to_bytes", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = 0;
__pyx_L0:;
__Pyx_XDECREF(__pyx_v_result);
__Pyx_XDECREF(__pyx_v_e);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* Python wrapper */
static PyObject *__pyx_pw_9datamodel_10converters_29to_bytes(PyObject *__pyx_self,
#if CYTHON_VECTORCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_9datamodel_10converters_28to_bytes, "to_bytes(obj) -> bytes\n\nConvert the given object to bytes.\n\n- If the object is already bytes, return it directly.\n- If the object is a string, encode it (using UTF-8).\n- If the object is callable, call it and convert its result.\n- Otherwise, attempt to convert the object to bytes.\nIf conversion fails, raise a ValueError.");
static PyMethodDef __pyx_mdef_9datamodel_10converters_29to_bytes = {"to_bytes", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9datamodel_10converters_29to_bytes, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_9datamodel_10converters_28to_bytes};
static PyObject *__pyx_pw_9datamodel_10converters_29to_bytes(PyObject *__pyx_self,
#if CYTHON_VECTORCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
PyObject *__pyx_v_obj = 0;
#if !CYTHON_VECTORCALL
CYTHON_UNUSED Py_ssize_t __pyx_nargs;
#endif
CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("to_bytes (wrapper)", 0);
#if !CYTHON_VECTORCALL
#if CYTHON_ASSUME_SAFE_SIZE
__pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
#else
__pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
#endif
#endif
__pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
{
PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_obj,0};
PyObject* values[1] = {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, 465, __pyx_L3_error)
if (__pyx_kwds_len > 0) {
switch (__pyx_nargs) {
case 1:
values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 465, __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, "to_bytes", 0) < (0)) __PYX_ERR(0, 465, __pyx_L3_error)
for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("to_bytes", 1, 1, 1, i); __PYX_ERR(0, 465, __pyx_L3_error) }
}
} else if (unlikely(__pyx_nargs != 1)) {
goto __pyx_L5_argtuple_error;
} else {
values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 465, __pyx_L3_error)
}
__pyx_v_obj = values[0];
}
goto __pyx_L6_skip;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("to_bytes", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 465, __pyx_L3_error)
__pyx_L6_skip:;
goto __pyx_L4_argument_unpacking_done;
__pyx_L3_error:;
for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
Py_XDECREF(values[__pyx_temp]);
}
__Pyx_AddTraceback("datamodel.converters.to_bytes", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
__pyx_r = __pyx_pf_9datamodel_10converters_28to_bytes(__pyx_self, __pyx_v_obj);
int __pyx_lineno = 0;
const char *__pyx_filename = NULL;
int __pyx_clineno = 0;
/* function exit code */
for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
Py_XDECREF(values[__pyx_temp]);
}
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_9datamodel_10converters_28to_bytes(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_obj) {
PyObject *__pyx_r = NULL;
__pyx_t_1 = __pyx_f_9datamodel_10converters_to_bytes(__pyx_v_obj, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 465, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
{
PyObject *__pyx_temp;
{
__pyx_temp = __pyx_r;
__pyx_r = __pyx_t_1;
}
__Pyx_XDECREF(__pyx_temp);
}
__pyx_t_1 = 0;
goto __pyx_L0;
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_AddTraceback("datamodel.converters.to_bytes", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
__pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_9datamodel_10converters_29to_bytes, 0, __pyx_mstate_global->__pyx_n_u_to_bytes, NULL, __pyx_mstate_global->__pyx_n_u_datamodel_converters, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[19])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 465, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
#endif
if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_to_bytes, __pyx_t_2) < (0)) __PYX_ERR(0, 465, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
0466: """
0467: Convert the given object to bytes.
0468:
0469: - If the object is already bytes, return it directly.
0470: - If the object is a string, encode it (using UTF-8).
0471: - If the object is callable, call it and convert its result.
0472: - Otherwise, attempt to convert the object to bytes.
0473: If conversion fails, raise a ValueError.
0474: """
+0475: if obj is None:
__pyx_t_1 = (__pyx_v_obj == Py_None);
if (unlikely(__pyx_t_1)) {
/* … */
}
+0476: raise ValueError("Cannot convert None to bytes")
__pyx_t_3 = NULL;
__pyx_t_4 = 1;
{
PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_mstate_global->__pyx_kp_u_Cannot_convert_None_to_bytes};
__pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)(((PyTypeObject*)PyExc_ValueError)), __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;
if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 476, __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, 476, __pyx_L1_error)
0477:
0478: # 1. If already bytes, return as is.
+0479: if isinstance(obj, bytes):
__pyx_t_1 = PyBytes_Check(__pyx_v_obj);
if (__pyx_t_1) {
/* … */
}
+0480: return obj
__pyx_t_2 = __pyx_v_obj;
__Pyx_INCREF(__pyx_t_2);
if (!(likely(PyBytes_CheckExact(__pyx_t_2))||((__pyx_t_2) == Py_None) || __Pyx_RaiseUnexpectedTypeError("bytes", __pyx_t_2))) __PYX_ERR(0, 480, __pyx_L1_error)
{
PyObject *__pyx_temp;
{
__pyx_temp = __pyx_r;
__pyx_r = ((PyObject*)__pyx_t_2);
}
__Pyx_XDECREF(__pyx_temp);
}
__pyx_t_2 = 0;
goto __pyx_L0;
0481:
0482: # 2. If it's a string, encode it to bytes.
+0483: elif isinstance(obj, str):
__pyx_t_1 = PyUnicode_Check(__pyx_v_obj);
if (__pyx_t_1) {
/* … */
}
+0484: return obj.encode("utf-8")
__pyx_t_3 = __pyx_v_obj;
__Pyx_INCREF(__pyx_t_3);
__pyx_t_4 = 0;
{
PyObject *__pyx_callargs[2] = {__pyx_t_3, __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_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, 484, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
}
if (!(likely(PyBytes_CheckExact(__pyx_t_2))||((__pyx_t_2) == Py_None) || __Pyx_RaiseUnexpectedTypeError("bytes", __pyx_t_2))) __PYX_ERR(0, 484, __pyx_L1_error)
{
PyObject *__pyx_temp;
{
__pyx_temp = __pyx_r;
__pyx_r = ((PyObject*)__pyx_t_2);
}
__Pyx_XDECREF(__pyx_temp);
}
__pyx_t_2 = 0;
goto __pyx_L0;
0485:
0486: # 3. If it's callable, attempt to call it and convert its result.
+0487: elif callable(obj):
__pyx_t_1 = __Pyx_PyCallable_Check(__pyx_v_obj); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(0, 487, __pyx_L1_error) if (__pyx_t_1) { /* … */ }
+0488: try:
{
/*try:*/ {
/* … */
}
__pyx_L5_error:;
__Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
/* … */
__pyx_L7_except_error:;
__Pyx_XGIVEREF(__pyx_t_5);
__Pyx_XGIVEREF(__pyx_t_6);
__Pyx_XGIVEREF(__pyx_t_7);
__Pyx_ExceptionReset(__pyx_t_5, __pyx_t_6, __pyx_t_7);
goto __pyx_L1_error;
__pyx_L9_try_return:;
__Pyx_XGIVEREF(__pyx_t_5);
__Pyx_XGIVEREF(__pyx_t_6);
__Pyx_XGIVEREF(__pyx_t_7);
__Pyx_ExceptionReset(__pyx_t_5, __pyx_t_6, __pyx_t_7);
goto __pyx_L0;
}
+0489: result = obj()
__pyx_t_3 = NULL;
__Pyx_INCREF(__pyx_v_obj);
__pyx_t_8 = __pyx_v_obj;
__pyx_t_4 = 1;
#if CYTHON_UNPACK_METHODS
if (unlikely(PyMethod_Check(__pyx_t_8))) {
__pyx_t_3 = PyMethod_GET_SELF(__pyx_t_8);
assert(__pyx_t_3);
PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_8);
__Pyx_INCREF(__pyx_t_3);
__Pyx_INCREF(__pyx__function);
__Pyx_DECREF_SET(__pyx_t_8, __pyx__function);
__pyx_t_4 = 0;
}
#endif
{
PyObject *__pyx_callargs[2] = {__pyx_t_3, NULL};
__pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_8, __pyx_callargs+__pyx_t_4, (1-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
__Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 489, __pyx_L5_error)
__Pyx_GOTREF(__pyx_t_2);
}
__pyx_v_result = __pyx_t_2;
__pyx_t_2 = 0;
0490: # Recursively convert the result.
+0491: return to_bytes(result)
__pyx_t_2 = __pyx_f_9datamodel_10converters_to_bytes(__pyx_v_result, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 491, __pyx_L5_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; __pyx_r = ((PyObject*)__pyx_t_2); } __Pyx_XDECREF(__pyx_temp); } __pyx_t_2 = 0; goto __pyx_L9_try_return;
+0492: except Exception as e:
__pyx_t_9 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(((PyTypeObject*)PyExc_Exception)))); if (__pyx_t_9) { __Pyx_AddTraceback("datamodel.converters.to_bytes", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_2, &__pyx_t_8, &__pyx_t_3) < 0) __PYX_ERR(0, 492, __pyx_L7_except_error) __Pyx_XGOTREF(__pyx_t_2); __Pyx_XGOTREF(__pyx_t_8); __Pyx_XGOTREF(__pyx_t_3); __Pyx_INCREF(__pyx_t_8); __pyx_v_e = __pyx_t_8; /*try:*/ { /* … */ /*finally:*/ { __pyx_L16_error:; /*exception exit:*/{ __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign __pyx_t_15 = 0; __pyx_t_16 = 0; __pyx_t_17 = 0; __pyx_t_18 = 0; __pyx_t_19 = 0; __pyx_t_20 = 0; __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0; __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_ExceptionSwap(&__pyx_t_18, &__pyx_t_19, &__pyx_t_20); if ( unlikely(__Pyx_GetException(&__pyx_t_15, &__pyx_t_16, &__pyx_t_17) < 0)) __Pyx_ErrFetch(&__pyx_t_15, &__pyx_t_16, &__pyx_t_17); __Pyx_XGOTREF(__pyx_t_15); __Pyx_XGOTREF(__pyx_t_16); __Pyx_XGOTREF(__pyx_t_17); __Pyx_XGOTREF(__pyx_t_18); __Pyx_XGOTREF(__pyx_t_19); __Pyx_XGOTREF(__pyx_t_20); __pyx_t_9 = __pyx_lineno; __pyx_t_13 = __pyx_clineno; __pyx_t_14 = __pyx_filename; { __Pyx_DECREF(__pyx_v_e); __pyx_v_e = 0; } __Pyx_XGIVEREF(__pyx_t_18); __Pyx_XGIVEREF(__pyx_t_19); __Pyx_XGIVEREF(__pyx_t_20); __Pyx_ExceptionReset(__pyx_t_18, __pyx_t_19, __pyx_t_20); __Pyx_XGIVEREF(__pyx_t_15); __Pyx_XGIVEREF(__pyx_t_16); __Pyx_XGIVEREF(__pyx_t_17); __Pyx_ErrRestore(__pyx_t_15, __pyx_t_16, __pyx_t_17); __pyx_t_15 = 0; __pyx_t_16 = 0; __pyx_t_17 = 0; __pyx_t_18 = 0; __pyx_t_19 = 0; __pyx_t_20 = 0; __pyx_lineno = __pyx_t_9; __pyx_clineno = __pyx_t_13; __pyx_filename = __pyx_t_14; goto __pyx_L7_except_error; } } } goto __pyx_L7_except_error;
+0493: raise ValueError("Failed to convert callable to bytes: %s" % e)
__pyx_t_11 = NULL;
__pyx_t_12 = PyUnicode_Format(__pyx_mstate_global->__pyx_kp_u_Failed_to_convert_callable_to_by, __pyx_v_e); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 493, __pyx_L16_error)
__Pyx_GOTREF(__pyx_t_12);
__pyx_t_4 = 1;
{
PyObject *__pyx_callargs[2] = {__pyx_t_11, __pyx_t_12};
__pyx_t_10 = __Pyx_PyObject_FastCall((PyObject*)(((PyTypeObject*)PyExc_ValueError)), __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
__Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 493, __pyx_L16_error)
__Pyx_GOTREF(__pyx_t_10);
}
__Pyx_Raise(__pyx_t_10, 0, 0, 0);
__Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
__PYX_ERR(0, 493, __pyx_L16_error)
}
0494:
0495: # 4. Try converting the object into bytes using Python's built-in conversion.
+0496: try:
{
/*try:*/ {
/* … */
}
__pyx_L22_error:;
__Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
__Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
__Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
__Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
/* … */
__pyx_L24_except_error:;
__Pyx_XGIVEREF(__pyx_t_7);
__Pyx_XGIVEREF(__pyx_t_6);
__Pyx_XGIVEREF(__pyx_t_5);
__Pyx_ExceptionReset(__pyx_t_7, __pyx_t_6, __pyx_t_5);
goto __pyx_L1_error;
__pyx_L26_try_return:;
__Pyx_XGIVEREF(__pyx_t_7);
__Pyx_XGIVEREF(__pyx_t_6);
__Pyx_XGIVEREF(__pyx_t_5);
__Pyx_ExceptionReset(__pyx_t_7, __pyx_t_6, __pyx_t_5);
goto __pyx_L0;
}
+0497: return bytes(obj)
__pyx_t_8 = NULL;
__pyx_t_4 = 1;
{
PyObject *__pyx_callargs[2] = {__pyx_t_8, __pyx_v_obj};
__pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)(&PyBytes_Type), __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
__Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 497, __pyx_L22_error)
__Pyx_GOTREF(__pyx_t_3);
}
{
PyObject *__pyx_temp;
{
__pyx_temp = __pyx_r;
__pyx_r = ((PyObject*)__pyx_t_3);
}
__Pyx_XDECREF(__pyx_temp);
}
__pyx_t_3 = 0;
goto __pyx_L26_try_return;
+0498: except Exception as e:
__pyx_t_13 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(((PyTypeObject*)PyExc_Exception)))); if (__pyx_t_13) { __Pyx_AddTraceback("datamodel.converters.to_bytes", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_3, &__pyx_t_8, &__pyx_t_2) < 0) __PYX_ERR(0, 498, __pyx_L24_except_error) __Pyx_XGOTREF(__pyx_t_3); __Pyx_XGOTREF(__pyx_t_8); __Pyx_XGOTREF(__pyx_t_2); __Pyx_INCREF(__pyx_t_8); __pyx_v_e = __pyx_t_8; /*try:*/ { /* … */ /*finally:*/ { __pyx_L33_error:; /*exception exit:*/{ __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign __pyx_t_20 = 0; __pyx_t_19 = 0; __pyx_t_18 = 0; __pyx_t_17 = 0; __pyx_t_16 = 0; __pyx_t_15 = 0; __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0; __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_ExceptionSwap(&__pyx_t_17, &__pyx_t_16, &__pyx_t_15); if ( unlikely(__Pyx_GetException(&__pyx_t_20, &__pyx_t_19, &__pyx_t_18) < 0)) __Pyx_ErrFetch(&__pyx_t_20, &__pyx_t_19, &__pyx_t_18); __Pyx_XGOTREF(__pyx_t_20); __Pyx_XGOTREF(__pyx_t_19); __Pyx_XGOTREF(__pyx_t_18); __Pyx_XGOTREF(__pyx_t_17); __Pyx_XGOTREF(__pyx_t_16); __Pyx_XGOTREF(__pyx_t_15); __pyx_t_13 = __pyx_lineno; __pyx_t_9 = __pyx_clineno; __pyx_t_14 = __pyx_filename; { __Pyx_DECREF(__pyx_v_e); __pyx_v_e = 0; } __Pyx_XGIVEREF(__pyx_t_17); __Pyx_XGIVEREF(__pyx_t_16); __Pyx_XGIVEREF(__pyx_t_15); __Pyx_ExceptionReset(__pyx_t_17, __pyx_t_16, __pyx_t_15); __Pyx_XGIVEREF(__pyx_t_20); __Pyx_XGIVEREF(__pyx_t_19); __Pyx_XGIVEREF(__pyx_t_18); __Pyx_ErrRestore(__pyx_t_20, __pyx_t_19, __pyx_t_18); __pyx_t_20 = 0; __pyx_t_19 = 0; __pyx_t_18 = 0; __pyx_t_17 = 0; __pyx_t_16 = 0; __pyx_t_15 = 0; __pyx_lineno = __pyx_t_13; __pyx_clineno = __pyx_t_9; __pyx_filename = __pyx_t_14; goto __pyx_L24_except_error; } } } goto __pyx_L24_except_error;
+0499: raise ValueError("Invalid conversion to bytes: %s" % e)
__pyx_t_12 = NULL;
__pyx_t_11 = PyUnicode_Format(__pyx_mstate_global->__pyx_kp_u_Invalid_conversion_to_bytes_s, __pyx_v_e); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 499, __pyx_L33_error)
__Pyx_GOTREF(__pyx_t_11);
__pyx_t_4 = 1;
{
PyObject *__pyx_callargs[2] = {__pyx_t_12, __pyx_t_11};
__pyx_t_10 = __Pyx_PyObject_FastCall((PyObject*)(((PyTypeObject*)PyExc_ValueError)), __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
__Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
__Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 499, __pyx_L33_error)
__Pyx_GOTREF(__pyx_t_10);
}
__Pyx_Raise(__pyx_t_10, 0, 0, 0);
__Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
__PYX_ERR(0, 499, __pyx_L33_error)
}
0500:
+0501: cdef bint is_callable(object value) nogil:
static int __pyx_f_9datamodel_10converters_is_callable(PyObject *__pyx_v_value) {
int __pyx_r;
/* … */
/* function exit code */
__pyx_L1_error:;
__pyx_gilstate_save = __Pyx_PyGILState_Ensure();
__Pyx_AddTraceback("datamodel.converters.is_callable", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = -1;
__Pyx_PyGILState_Release(__pyx_gilstate_save);
__pyx_L0:;
return __pyx_r;
}
0502: """
0503: Check if `value` is callable by calling Python's callable(...)
0504: but reacquire the GIL inside.
0505: """
+0506: with gil:
{
PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure();
/*try:*/ {
/* … */
/*finally:*/ {
__pyx_L3_return: {
__Pyx_PyGILState_Release(__pyx_gilstate_save);
goto __pyx_L0;
}
__pyx_L4_error: {
__Pyx_PyGILState_Release(__pyx_gilstate_save);
goto __pyx_L1_error;
}
}
}
+0507: return callable(value)
__pyx_t_1 = __Pyx_PyCallable_Check(__pyx_v_value); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(0, 507, __pyx_L4_error) { __pyx_r = __pyx_t_1; } goto __pyx_L3_return; }
0508:
0509:
0510: # Encoder List:
0511: encoders = {
+0512: str: to_string,
__pyx_t_2 = __Pyx_PyDict_NewPresized(13); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 512, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_to_string_2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 512, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); if (PyDict_SetItem(__pyx_t_2, ((PyObject *)(&PyUnicode_Type)), __pyx_t_6) < (0)) __PYX_ERR(0, 512, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
+0513: UUID: to_uuid,
__Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_UUID); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 513, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_mstate_global->__pyx_n_u_to_uuid); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 513, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); if (PyDict_SetItem(__pyx_t_2, __pyx_t_6, __pyx_t_7) < (0)) __PYX_ERR(0, 512, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
+0514: pgproto.UUID: to_uuid,
__Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_mstate_global->__pyx_n_u_pgproto); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 514, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_mstate_global->__pyx_n_u_UUID); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 514, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_mstate_global->__pyx_n_u_to_uuid); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 514, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); if (PyDict_SetItem(__pyx_t_2, __pyx_t_6, __pyx_t_7) < (0)) __PYX_ERR(0, 512, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
+0515: bool: to_boolean,
__Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_mstate_global->__pyx_n_u_to_boolean); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 515, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); if (PyDict_SetItem(__pyx_t_2, ((PyObject *)(&PyBool_Type)), __pyx_t_7) < (0)) __PYX_ERR(0, 512, __pyx_L1_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
+0516: int: to_integer,
__Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_mstate_global->__pyx_n_u_to_integer); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 516, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); if (PyDict_SetItem(__pyx_t_2, ((PyObject *)(&PyLong_Type)), __pyx_t_7) < (0)) __PYX_ERR(0, 512, __pyx_L1_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
+0517: float: to_float,
__Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_mstate_global->__pyx_n_u_to_float); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 517, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); if (PyDict_SetItem(__pyx_t_2, ((PyObject *)(&PyFloat_Type)), __pyx_t_7) < (0)) __PYX_ERR(0, 512, __pyx_L1_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
+0518: datetime.date: to_date,
__Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_mstate_global->__pyx_n_u_to_date); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 518, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); if (PyDict_SetItem(__pyx_t_2, ((PyObject *)__pyx_mstate_global->__pyx_ptype_7cpython_8datetime_date), __pyx_t_7) < (0)) __PYX_ERR(0, 512, __pyx_L1_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
+0519: datetime.datetime: to_datetime,
__Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_mstate_global->__pyx_n_u_to_datetime); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 519, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); if (PyDict_SetItem(__pyx_t_2, ((PyObject *)__pyx_mstate_global->__pyx_ptype_7cpython_8datetime_datetime), __pyx_t_7) < (0)) __PYX_ERR(0, 512, __pyx_L1_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
+0520: datetime.timedelta: to_timedelta,
__Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_mstate_global->__pyx_n_u_to_timedelta); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 520, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); if (PyDict_SetItem(__pyx_t_2, ((PyObject *)__pyx_mstate_global->__pyx_ptype_7cpython_8datetime_timedelta), __pyx_t_7) < (0)) __PYX_ERR(0, 512, __pyx_L1_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
+0521: datetime.time: to_time,
__Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_mstate_global->__pyx_n_u_to_time); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 521, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); if (PyDict_SetItem(__pyx_t_2, ((PyObject *)__pyx_mstate_global->__pyx_ptype_7cpython_8datetime_time), __pyx_t_7) < (0)) __PYX_ERR(0, 512, __pyx_L1_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
+0522: Decimal: to_decimal,
__Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_mstate_global->__pyx_n_u_Decimal); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 522, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_to_decimal); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 522, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); if (PyDict_SetItem(__pyx_t_2, __pyx_t_7, __pyx_t_6) < (0)) __PYX_ERR(0, 512, __pyx_L1_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
+0523: bytes: to_bytes,
__Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_to_bytes); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 523, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); if (PyDict_SetItem(__pyx_t_2, ((PyObject *)(&PyBytes_Type)), __pyx_t_6) < (0)) __PYX_ERR(0, 512, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
+0524: Path: lambda obj: Path(obj) if isinstance(obj, str) else obj
/* Python wrapper */
static PyObject *__pyx_pw_9datamodel_10converters_38__pyx_lambda_funcdef_9datamodel_10converters_lambda(PyObject *__pyx_self,
#if CYTHON_VECTORCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_9datamodel_10converters_38__pyx_lambda_funcdef_9datamodel_10converters_lambda = {"lambda", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9datamodel_10converters_38__pyx_lambda_funcdef_9datamodel_10converters_lambda, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_9datamodel_10converters_38__pyx_lambda_funcdef_9datamodel_10converters_lambda(PyObject *__pyx_self,
#if CYTHON_VECTORCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
PyObject *__pyx_v_obj = 0;
#if !CYTHON_VECTORCALL
CYTHON_UNUSED Py_ssize_t __pyx_nargs;
#endif
CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("lambda (wrapper)", 0);
#if !CYTHON_VECTORCALL
#if CYTHON_ASSUME_SAFE_SIZE
__pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
#else
__pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
#endif
#endif
__pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
{
PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_obj,0};
PyObject* values[1] = {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, 524, __pyx_L3_error)
if (__pyx_kwds_len > 0) {
switch (__pyx_nargs) {
case 1:
values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 524, __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, "lambda", 0) < (0)) __PYX_ERR(0, 524, __pyx_L3_error)
for (Py_ssize_t i = __pyx_nargs; i < 1; i++) {
if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("lambda", 1, 1, 1, i); __PYX_ERR(0, 524, __pyx_L3_error) }
}
} else if (unlikely(__pyx_nargs != 1)) {
goto __pyx_L5_argtuple_error;
} else {
values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 524, __pyx_L3_error)
}
__pyx_v_obj = values[0];
}
goto __pyx_L6_skip;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("lambda", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 524, __pyx_L3_error)
__pyx_L6_skip:;
goto __pyx_L4_argument_unpacking_done;
__pyx_L3_error:;
for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
Py_XDECREF(values[__pyx_temp]);
}
__Pyx_AddTraceback("datamodel.converters.lambda", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
__pyx_r = __pyx_lambda_funcdef_9datamodel_10converters_lambda(__pyx_self, __pyx_v_obj);
int __pyx_lineno = 0;
const char *__pyx_filename = NULL;
int __pyx_clineno = 0;
/* function exit code */
for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
Py_XDECREF(values[__pyx_temp]);
}
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_lambda_funcdef_9datamodel_10converters_lambda(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_obj) {
PyObject *__pyx_r = NULL;
__pyx_t_2 = PyUnicode_Check(__pyx_v_obj);
if (__pyx_t_2) {
__pyx_t_4 = NULL;
__Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_Path); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 524, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__pyx_t_6 = 1;
#if CYTHON_UNPACK_METHODS
if (unlikely(PyMethod_Check(__pyx_t_5))) {
__pyx_t_4 = PyMethod_GET_SELF(__pyx_t_5);
assert(__pyx_t_4);
PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_5);
__Pyx_INCREF(__pyx_t_4);
__Pyx_INCREF(__pyx__function);
__Pyx_DECREF_SET(__pyx_t_5, __pyx__function);
__pyx_t_6 = 0;
}
#endif
{
PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_v_obj};
__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, 524, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
}
__pyx_t_1 = __pyx_t_3;
__pyx_t_3 = 0;
} else {
__Pyx_INCREF(__pyx_v_obj);
__pyx_t_1 = __pyx_v_obj;
}
{
PyObject *__pyx_temp;
{
__pyx_temp = __pyx_r;
__pyx_r = __pyx_t_1;
}
__Pyx_XDECREF(__pyx_temp);
}
__pyx_t_1 = 0;
goto __pyx_L0;
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_4);
__Pyx_XDECREF(__pyx_t_5);
__Pyx_AddTraceback("datamodel.converters.lambda", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
__Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_Path); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 524, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_9datamodel_10converters_38__pyx_lambda_funcdef_9datamodel_10converters_lambda, 0, __pyx_mstate_global->__pyx_n_u_lambda, NULL, __pyx_mstate_global->__pyx_n_u_datamodel_converters, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[20])); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 524, __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_t_2, __pyx_t_6, __pyx_t_7) < (0)) __PYX_ERR(0, 512, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_encoders, __pyx_t_2) < (0)) __PYX_ERR(0, 511, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
0525: }
0526:
0527:
0528: # Maps a type to a conversion callable
+0529: cdef dict TYPE_PARSERS = {}
__pyx_t_2 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 529, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_XGOTREF(__pyx_v_9datamodel_10converters_TYPE_PARSERS); __Pyx_DECREF_SET(__pyx_v_9datamodel_10converters_TYPE_PARSERS, ((PyObject*)__pyx_t_2)); __Pyx_GIVEREF(__pyx_t_2); __pyx_t_2 = 0;
0530:
0531:
+0532: cpdef object register_parser(object _type, object parser_func):
static PyObject *__pyx_pw_9datamodel_10converters_31register_parser(PyObject *__pyx_self,
#if CYTHON_VECTORCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyObject *__pyx_f_9datamodel_10converters_register_parser(PyObject *__pyx_v__type, PyObject *__pyx_v_parser_func, CYTHON_UNUSED int __pyx_skip_dispatch) {
PyObject *__pyx_r = NULL;
/* … */
/* function exit code */
__pyx_r = Py_None; __Pyx_INCREF(Py_None);
goto __pyx_L0;
__pyx_L1_error:;
__Pyx_AddTraceback("datamodel.converters.register_parser", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = 0;
__pyx_L0:;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* Python wrapper */
static PyObject *__pyx_pw_9datamodel_10converters_31register_parser(PyObject *__pyx_self,
#if CYTHON_VECTORCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_9datamodel_10converters_30register_parser, "register_parser(_type, parser_func)\n\nregister_parser.\n\nRegister a new Parser function for a given type.\n\nParameters:\n_type (type): The type for which the parser function is registered.\nparser_func (function): The parser function to convert the given type.");
static PyMethodDef __pyx_mdef_9datamodel_10converters_31register_parser = {"register_parser", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9datamodel_10converters_31register_parser, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_9datamodel_10converters_30register_parser};
static PyObject *__pyx_pw_9datamodel_10converters_31register_parser(PyObject *__pyx_self,
#if CYTHON_VECTORCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
PyObject *__pyx_v__type = 0;
PyObject *__pyx_v_parser_func = 0;
#if !CYTHON_VECTORCALL
CYTHON_UNUSED Py_ssize_t __pyx_nargs;
#endif
CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("register_parser (wrapper)", 0);
#if !CYTHON_VECTORCALL
#if CYTHON_ASSUME_SAFE_SIZE
__pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
#else
__pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
#endif
#endif
__pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
{
PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_type,&__pyx_mstate_global->__pyx_n_u_parser_func,0};
PyObject* values[2] = {0,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, 532, __pyx_L3_error)
if (__pyx_kwds_len > 0) {
switch (__pyx_nargs) {
case 2:
values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 532, __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, 532, __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, "register_parser", 0) < (0)) __PYX_ERR(0, 532, __pyx_L3_error)
for (Py_ssize_t i = __pyx_nargs; i < 2; i++) {
if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("register_parser", 1, 2, 2, i); __PYX_ERR(0, 532, __pyx_L3_error) }
}
} else if (unlikely(__pyx_nargs != 2)) {
goto __pyx_L5_argtuple_error;
} else {
values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 532, __pyx_L3_error)
values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 532, __pyx_L3_error)
}
__pyx_v__type = values[0];
__pyx_v_parser_func = values[1];
}
goto __pyx_L6_skip;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("register_parser", 1, 2, 2, __pyx_nargs); __PYX_ERR(0, 532, __pyx_L3_error)
__pyx_L6_skip:;
goto __pyx_L4_argument_unpacking_done;
__pyx_L3_error:;
for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
Py_XDECREF(values[__pyx_temp]);
}
__Pyx_AddTraceback("datamodel.converters.register_parser", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
__pyx_r = __pyx_pf_9datamodel_10converters_30register_parser(__pyx_self, __pyx_v__type, __pyx_v_parser_func);
int __pyx_lineno = 0;
const char *__pyx_filename = NULL;
int __pyx_clineno = 0;
/* function exit code */
for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
Py_XDECREF(values[__pyx_temp]);
}
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_9datamodel_10converters_30register_parser(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v__type, PyObject *__pyx_v_parser_func) {
PyObject *__pyx_r = NULL;
__pyx_t_1 = __pyx_f_9datamodel_10converters_register_parser(__pyx_v__type, __pyx_v_parser_func, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 532, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
{
PyObject *__pyx_temp;
{
__pyx_temp = __pyx_r;
__pyx_r = __pyx_t_1;
}
__Pyx_XDECREF(__pyx_temp);
}
__pyx_t_1 = 0;
goto __pyx_L0;
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_AddTraceback("datamodel.converters.register_parser", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
__pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_9datamodel_10converters_31register_parser, 0, __pyx_mstate_global->__pyx_n_u_register_parser, NULL, __pyx_mstate_global->__pyx_n_u_datamodel_converters, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[21])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 532, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
#endif
if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_register_parser, __pyx_t_2) < (0)) __PYX_ERR(0, 532, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
0533: """register_parser.
0534:
0535: Register a new Parser function for a given type.
0536:
0537: Parameters:
0538: _type (type): The type for which the parser function is registered.
0539: parser_func (function): The parser function to convert the given type.
0540: """
+0541: TYPE_PARSERS[_type] = parser_func
if (unlikely(__pyx_v_9datamodel_10converters_TYPE_PARSERS == Py_None)) {
PyErr_SetString(PyExc_TypeError, "\047NoneType\047 object is not subscriptable");
__PYX_ERR(0, 541, __pyx_L1_error)
}
if (unlikely((PyDict_SetItem(__pyx_v_9datamodel_10converters_TYPE_PARSERS, __pyx_v__type, __pyx_v_parser_func) < 0))) __PYX_ERR(0, 541, __pyx_L1_error)
0542:
0543:
0544: ## Parsing Functions
+0545: cdef object _parse_set_type(
static PyObject *__pyx_f_9datamodel_10converters__parse_set_type(PyObject *__pyx_v_field, CYTHON_UNUSED PyObject *__pyx_v_T, PyObject *__pyx_v_data, PyObject *__pyx_v_encoder, PyObject *__pyx_v_args, struct __pyx_opt_args_9datamodel_10converters__parse_set_type *__pyx_optional_args) {
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_8);
__Pyx_XDECREF(__pyx_t_9);
__Pyx_XDECREF(__pyx_t_10);
__Pyx_XDECREF(__pyx_t_18);
__Pyx_XDECREF(__pyx_t_20);
__Pyx_XDECREF(__pyx_t_22);
__Pyx_XDECREF(__pyx_t_31);
__Pyx_AddTraceback("datamodel.converters._parse_set_type", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = 0;
__pyx_L0:;
__Pyx_XDECREF(__pyx_v_arg_type);
__Pyx_XDECREF(__pyx_v_result);
__Pyx_XDECREF(__pyx_v_key);
__Pyx_XDECREF(__pyx_v_converter);
__Pyx_XDECREF(__pyx_v_inner_type);
__Pyx_XDECREF(__pyx_v_d);
__Pyx_XDECREF(__pyx_v_inner_element_type);
__Pyx_XDECREF(__pyx_v_item);
__Pyx_XDECREF(__pyx_v_element);
__Pyx_XDECREF(__pyx_v_converted);
__Pyx_XDECREF(__pyx_v_e);
__Pyx_XDECREF(__pyx_v_processed_item);
__Pyx_XDECREF(__pyx_v_data);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
struct __pyx_opt_args_9datamodel_10converters__parse_set_type {
int __pyx_n;
PyObject *_parent;
};
0546: object field,
0547: object T,
0548: object data,
0549: object encoder,
0550: object args,
+0551: object _parent = None
PyObject *__pyx_v__parent = ((PyObject *)Py_None);
PyObject *__pyx_v_arg_type = 0;
PyObject *__pyx_v_result = 0;
PyObject *__pyx_v_key = 0;
PyObject *__pyx_v_converter = 0;
PyObject *__pyx_v_inner_type = 0;
int __pyx_v_is_typing_set;
PyObject *__pyx_v_d = NULL;
PyObject *__pyx_v_inner_element_type = NULL;
PyObject *__pyx_v_item = NULL;
PyObject *__pyx_v_element = NULL;
PyObject *__pyx_v_converted = NULL;
PyObject *__pyx_v_e = NULL;
PyObject *__pyx_v_processed_item = NULL;
PyObject *__pyx_r = NULL;
if (__pyx_optional_args) {
if (__pyx_optional_args->__pyx_n > 0) {
__pyx_v__parent = __pyx_optional_args->_parent;
}
}
__Pyx_INCREF(__pyx_v_data);
0552: ):
0553: """
0554: Parse a set of items to a typing type.
0555: """
+0556: cdef object arg_type = args[0] if args else Any
__pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_args); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 556, __pyx_L1_error) if (__pyx_t_2) { __pyx_t_3 = __Pyx_GetItemInt(__pyx_v_args, 0, long, 1, __Pyx_PyLong_From_long, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 556, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_1 = __pyx_t_3; __pyx_t_3 = 0; } else { __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_Any); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 556, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_1 = __pyx_t_3; __pyx_t_3 = 0; } __pyx_v_arg_type = __pyx_t_1; __pyx_t_1 = 0;
+0557: cdef set result = set()
__pyx_t_1 = PySet_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 557, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_result = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0;
+0558: cdef tuple key = (arg_type, field.name)
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_field, __pyx_mstate_global->__pyx_n_u_name_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 558, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 558, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_INCREF(__pyx_v_arg_type); __Pyx_GIVEREF(__pyx_v_arg_type); if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_arg_type) != (0)) __PYX_ERR(0, 558, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_1); if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_1) != (0)) __PYX_ERR(0, 558, __pyx_L1_error); __pyx_t_1 = 0; __pyx_v_key = ((PyObject*)__pyx_t_3); __pyx_t_3 = 0;
+0559: cdef object converter = TYPE_PARSERS.get(key) or TYPE_PARSERS.get(arg_type)
if (unlikely(__pyx_v_9datamodel_10converters_TYPE_PARSERS == Py_None)) {
PyErr_Format(PyExc_AttributeError, "\047NoneType\047 object has no attribute \047%.30s\047", "get");
__PYX_ERR(0, 559, __pyx_L1_error)
}
__pyx_t_1 = __Pyx_PyDict_GetItemDefault(__pyx_v_9datamodel_10converters_TYPE_PARSERS, __pyx_v_key, Py_None); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 559, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 559, __pyx_L1_error)
if (!__pyx_t_2) {
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
} else {
__Pyx_INCREF(__pyx_t_1);
__pyx_t_3 = __pyx_t_1;
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
goto __pyx_L3_bool_binop_done;
}
if (unlikely(__pyx_v_9datamodel_10converters_TYPE_PARSERS == Py_None)) {
PyErr_Format(PyExc_AttributeError, "\047NoneType\047 object has no attribute \047%.30s\047", "get");
__PYX_ERR(0, 559, __pyx_L1_error)
}
__pyx_t_1 = __Pyx_PyDict_GetItemDefault(__pyx_v_9datamodel_10converters_TYPE_PARSERS, __pyx_v_arg_type, Py_None); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 559, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_INCREF(__pyx_t_1);
__pyx_t_3 = __pyx_t_1;
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_L3_bool_binop_done:;
__pyx_v_converter = __pyx_t_3;
__pyx_t_3 = 0;
+0560: cdef object inner_type = field._inner_type if hasattr(field, '_inner_type') else arg_type
__pyx_t_2 = __Pyx_HasAttr(__pyx_v_field, __pyx_mstate_global->__pyx_n_u_inner_type); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(0, 560, __pyx_L1_error) if (__pyx_t_2) { __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_field, __pyx_mstate_global->__pyx_n_u_inner_type); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 560, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = __pyx_t_1; __pyx_t_1 = 0; } else { __Pyx_INCREF(__pyx_v_arg_type); __pyx_t_3 = __pyx_v_arg_type; } __pyx_v_inner_type = __pyx_t_3; __pyx_t_3 = 0;
+0561: cdef bint is_typing_set = hasattr(inner_type, '__origin__') and inner_type.__origin__ is set
__pyx_t_4 = __Pyx_HasAttr(__pyx_v_inner_type, __pyx_mstate_global->__pyx_n_u_origin); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(0, 561, __pyx_L1_error) if (__pyx_t_4) { } else { __pyx_t_2 = __pyx_t_4; goto __pyx_L5_bool_binop_done; } __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_inner_type, __pyx_mstate_global->__pyx_n_u_origin); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 561, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = (__pyx_t_3 == ((PyObject *)(&PySet_Type))); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_2 = __pyx_t_4; __pyx_L5_bool_binop_done:; __pyx_v_is_typing_set = __pyx_t_2;
0562:
+0563: if data is None:
__pyx_t_2 = (__pyx_v_data == Py_None);
if (__pyx_t_2) {
/* … */
}
+0564: return set() # short-circuit
__pyx_t_3 = PySet_New(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 564, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; __pyx_r = __pyx_t_3; } __Pyx_XDECREF(__pyx_temp); } __pyx_t_3 = 0; goto __pyx_L0;
0565:
0566: # If data is not already a collection, put it in a list for processing
+0567: if not isinstance(data, (list, tuple, set)):
__pyx_t_4 = PyList_Check(__pyx_v_data); if (!__pyx_t_4) { } else { __pyx_t_2 = __pyx_t_4; goto __pyx_L9_bool_binop_done; } __pyx_t_4 = PyTuple_Check(__pyx_v_data); if (!__pyx_t_4) { } else { __pyx_t_2 = __pyx_t_4; goto __pyx_L9_bool_binop_done; } __pyx_t_4 = PySet_Check(__pyx_v_data); __pyx_t_2 = __pyx_t_4; __pyx_L9_bool_binop_done:; __pyx_t_4 = (!__pyx_t_2); if (__pyx_t_4) { /* … */ }
+0568: data = [data]
__pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 568, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_INCREF(__pyx_v_data); __Pyx_GIVEREF(__pyx_v_data); if (__Pyx_PyList_SET_ITEM(__pyx_t_3, 0, __pyx_v_data) != (0)) __PYX_ERR(0, 568, __pyx_L1_error); __Pyx_DECREF_SET(__pyx_v_data, __pyx_t_3); __pyx_t_3 = 0;
0569:
0570: # If it's a dataclass
+0571: if is_dc(inner_type):
__pyx_t_4 = __pyx_f_9datamodel_10converters_is_dc(__pyx_v_inner_type); if (unlikely(__pyx_t_4 == ((int)-1) && PyErr_Occurred())) __PYX_ERR(0, 571, __pyx_L1_error) if (__pyx_t_4) { /* … */ }
+0572: for d in data:
if (likely(PyList_CheckExact(__pyx_v_data)) || PyTuple_CheckExact(__pyx_v_data)) { __pyx_t_3 = __pyx_v_data; __Pyx_INCREF(__pyx_t_3); __pyx_t_5 = 0; __pyx_t_6 = NULL; } else { __pyx_t_5 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_v_data); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 572, __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, 572, __pyx_L1_error) } for (;;) { if (likely(!__pyx_t_6)) { if (likely(PyList_CheckExact(__pyx_t_3))) { { 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, 572, __pyx_L1_error) #endif if (__pyx_t_5 >= __pyx_temp) break; } __pyx_t_1 = __Pyx_PyList_GET_ITEM_REF(__pyx_t_3, __pyx_t_5, __Pyx_ReferenceSharing_OwnStrongReference); ++__pyx_t_5; } else { { 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, 572, __pyx_L1_error) #endif if (__pyx_t_5 >= __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_5)); #else __pyx_t_1 = __Pyx_PySequence_ITEM(__pyx_t_3, __pyx_t_5); #endif ++__pyx_t_5; } if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 572, __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, 572, __pyx_L1_error) PyErr_Clear(); } break; } } __Pyx_GOTREF(__pyx_t_1); __Pyx_XDECREF_SET(__pyx_v_d, __pyx_t_1); __pyx_t_1 = 0; /* … */ } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+0573: if is_dc(d):
__pyx_t_4 = __pyx_f_9datamodel_10converters_is_dc(__pyx_v_d); if (unlikely(__pyx_t_4 == ((int)-1) && PyErr_Occurred())) __PYX_ERR(0, 573, __pyx_L1_error) if (__pyx_t_4) { /* … */ goto __pyx_L15; }
+0574: result.add(d)
__pyx_t_7 = PySet_Add(__pyx_v_result, __pyx_v_d); if (unlikely(__pyx_t_7 == ((int)-1))) __PYX_ERR(0, 574, __pyx_L1_error)
+0575: elif converter:
__pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_v_converter); if (unlikely((__pyx_t_4 < 0))) __PYX_ERR(0, 575, __pyx_L1_error) if (__pyx_t_4) { /* … */ goto __pyx_L15; }
+0576: result.add(
__pyx_t_7 = PySet_Add(__pyx_v_result, __pyx_t_1); if (unlikely(__pyx_t_7 == ((int)-1))) __PYX_ERR(0, 576, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+0577: converter(field.name, d, inner_type, _parent)
__pyx_t_8 = NULL;
__Pyx_INCREF(__pyx_v_converter);
__pyx_t_9 = __pyx_v_converter;
__pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_field, __pyx_mstate_global->__pyx_n_u_name_2); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 577, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_10);
__pyx_t_11 = 1;
#if CYTHON_UNPACK_METHODS
if (unlikely(PyMethod_Check(__pyx_t_9))) {
__pyx_t_8 = PyMethod_GET_SELF(__pyx_t_9);
assert(__pyx_t_8);
PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_9);
__Pyx_INCREF(__pyx_t_8);
__Pyx_INCREF(__pyx__function);
__Pyx_DECREF_SET(__pyx_t_9, __pyx__function);
__pyx_t_11 = 0;
}
#endif
{
PyObject *__pyx_callargs[5] = {__pyx_t_8, __pyx_t_10, __pyx_v_d, __pyx_v_inner_type, __pyx_v__parent};
__pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_9, __pyx_callargs+__pyx_t_11, (5-__pyx_t_11) | (__pyx_t_11*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
__Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
__Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 577, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
}
0578: )
+0579: elif isinstance(d, dict):
__pyx_t_4 = PyDict_Check(__pyx_v_d);
if (__pyx_t_4) {
/* … */
goto __pyx_L15;
}
+0580: result.add(inner_type(**d))
if (unlikely(__pyx_v_d == Py_None)) {
PyErr_SetString(PyExc_TypeError, "argument after ** must be a mapping, not NoneType");
__PYX_ERR(0, 580, __pyx_L1_error)
}
if (likely(PyDict_CheckExact(__pyx_v_d))) {
__pyx_t_1 = PyDict_Copy(__pyx_v_d); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 580, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
} else {
__pyx_t_1 = __Pyx_PyObject_CallOneArg((PyObject*)&PyDict_Type, __pyx_v_d); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 580, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
}
__pyx_t_9 = __Pyx_PyObject_Call(__pyx_v_inner_type, __pyx_mstate_global->__pyx_empty_tuple, __pyx_t_1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 580, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_t_7 = PySet_Add(__pyx_v_result, __pyx_t_9); if (unlikely(__pyx_t_7 == ((int)-1))) __PYX_ERR(0, 580, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
+0581: elif isinstance(d, (list, tuple)):
__pyx_t_2 = PyList_Check(__pyx_v_d); if (!__pyx_t_2) { } else { __pyx_t_4 = __pyx_t_2; goto __pyx_L16_bool_binop_done; } __pyx_t_2 = PyTuple_Check(__pyx_v_d); __pyx_t_4 = __pyx_t_2; __pyx_L16_bool_binop_done:; if (__pyx_t_4) { /* … */ goto __pyx_L15; }
+0582: result.add(inner_type(*d))
__pyx_t_9 = __Pyx_PySequence_Tuple(__pyx_v_d); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 582, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_1 = __Pyx_PyObject_Call(__pyx_v_inner_type, __pyx_t_9, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 582, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_7 = PySet_Add(__pyx_v_result, __pyx_t_1); if (unlikely(__pyx_t_7 == ((int)-1))) __PYX_ERR(0, 582, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
0583: else:
+0584: result.add(inner_type(d))
/*else*/ {
__pyx_t_9 = NULL;
__Pyx_INCREF(__pyx_v_inner_type);
__pyx_t_10 = __pyx_v_inner_type;
__pyx_t_11 = 1;
#if CYTHON_UNPACK_METHODS
if (unlikely(PyMethod_Check(__pyx_t_10))) {
__pyx_t_9 = PyMethod_GET_SELF(__pyx_t_10);
assert(__pyx_t_9);
PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_10);
__Pyx_INCREF(__pyx_t_9);
__Pyx_INCREF(__pyx__function);
__Pyx_DECREF_SET(__pyx_t_10, __pyx__function);
__pyx_t_11 = 0;
}
#endif
{
PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_v_d};
__pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_10, __pyx_callargs+__pyx_t_11, (2-__pyx_t_11) | (__pyx_t_11*__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_1)) __PYX_ERR(0, 584, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
}
__pyx_t_7 = PySet_Add(__pyx_v_result, __pyx_t_1); if (unlikely(__pyx_t_7 == ((int)-1))) __PYX_ERR(0, 584, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
}
__pyx_L15:;
+0585: return result
{
PyObject *__pyx_temp;
{
__pyx_temp = __pyx_r;
__Pyx_INCREF(__pyx_v_result);
__pyx_r = __pyx_v_result;
}
__Pyx_XDECREF(__pyx_temp);
}
goto __pyx_L0;
+0586: elif is_typing_set:
if (__pyx_v_is_typing_set) {
/* … */
goto __pyx_L12;
}
0587: # If we're dealing with typing.Set[str] or similar
+0588: inner_element_type = get_args(inner_type)[0] if get_args(inner_type) else Any
__pyx_t_10 = NULL;
__Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_get_args); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 588, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__pyx_t_11 = 1;
#if CYTHON_UNPACK_METHODS
if (unlikely(PyMethod_Check(__pyx_t_9))) {
__pyx_t_10 = PyMethod_GET_SELF(__pyx_t_9);
assert(__pyx_t_10);
PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_9);
__Pyx_INCREF(__pyx_t_10);
__Pyx_INCREF(__pyx__function);
__Pyx_DECREF_SET(__pyx_t_9, __pyx__function);
__pyx_t_11 = 0;
}
#endif
{
PyObject *__pyx_callargs[2] = {__pyx_t_10, __pyx_v_inner_type};
__pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_9, __pyx_callargs+__pyx_t_11, (2-__pyx_t_11) | (__pyx_t_11*__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, 588, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
}
__pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_4 < 0))) __PYX_ERR(0, 588, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
if (__pyx_t_4) {
__pyx_t_9 = NULL;
__Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_mstate_global->__pyx_n_u_get_args); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 588, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_10);
__pyx_t_11 = 1;
#if CYTHON_UNPACK_METHODS
if (unlikely(PyMethod_Check(__pyx_t_10))) {
__pyx_t_9 = PyMethod_GET_SELF(__pyx_t_10);
assert(__pyx_t_9);
PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_10);
__Pyx_INCREF(__pyx_t_9);
__Pyx_INCREF(__pyx__function);
__Pyx_DECREF_SET(__pyx_t_10, __pyx__function);
__pyx_t_11 = 0;
}
#endif
{
PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_v_inner_type};
__pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_10, __pyx_callargs+__pyx_t_11, (2-__pyx_t_11) | (__pyx_t_11*__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_1)) __PYX_ERR(0, 588, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
}
__pyx_t_10 = __Pyx_GetItemInt(__pyx_t_1, 0, long, 1, __Pyx_PyLong_From_long, 0, 1, 1, __Pyx_ReferenceSharing_OwnStrongReference); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 588, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_10);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_t_3 = __pyx_t_10;
__pyx_t_10 = 0;
} else {
__Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_mstate_global->__pyx_n_u_Any); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 588, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_10);
__pyx_t_3 = __pyx_t_10;
__pyx_t_10 = 0;
}
__pyx_v_inner_element_type = __pyx_t_3;
__pyx_t_3 = 0;
0589: # If the inner type is a set, we need to process it differently
+0590: try:
{
/*try:*/ {
/* … */
}
__Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
__Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
__Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
goto __pyx_L24_try_end;
__pyx_L19_error:;
__Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
__Pyx_XDECREF(__pyx_t_18); __pyx_t_18 = 0;
__Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
__Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
__pyx_L21_except_error:;
__Pyx_XGIVEREF(__pyx_t_12);
__Pyx_XGIVEREF(__pyx_t_13);
__Pyx_XGIVEREF(__pyx_t_14);
__Pyx_ExceptionReset(__pyx_t_12, __pyx_t_13, __pyx_t_14);
goto __pyx_L1_error;
__pyx_L24_try_end:;
}
+0591: for item in data:
if (likely(PyList_CheckExact(__pyx_v_data)) || PyTuple_CheckExact(__pyx_v_data)) { __pyx_t_3 = __pyx_v_data; __Pyx_INCREF(__pyx_t_3); __pyx_t_5 = 0; __pyx_t_6 = NULL; } else { __pyx_t_5 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_v_data); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 591, __pyx_L19_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, 591, __pyx_L19_error) } for (;;) { if (likely(!__pyx_t_6)) { if (likely(PyList_CheckExact(__pyx_t_3))) { { 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, 591, __pyx_L19_error) #endif if (__pyx_t_5 >= __pyx_temp) break; } __pyx_t_10 = __Pyx_PyList_GET_ITEM_REF(__pyx_t_3, __pyx_t_5, __Pyx_ReferenceSharing_OwnStrongReference); ++__pyx_t_5; } else { { 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, 591, __pyx_L19_error) #endif if (__pyx_t_5 >= __pyx_temp) break; } #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_10 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_5)); #else __pyx_t_10 = __Pyx_PySequence_ITEM(__pyx_t_3, __pyx_t_5); #endif ++__pyx_t_5; } if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 591, __pyx_L19_error) } else { __pyx_t_10 = __pyx_t_6(__pyx_t_3); if (unlikely(!__pyx_t_10)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(0, 591, __pyx_L19_error) PyErr_Clear(); } break; } } __Pyx_GOTREF(__pyx_t_10); __Pyx_XDECREF_SET(__pyx_v_item, __pyx_t_10); __pyx_t_10 = 0; /* … */ } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+0592: if isinstance(item, str):
__pyx_t_4 = PyUnicode_Check(__pyx_v_item);
if (__pyx_t_4) {
/* … */
goto __pyx_L27;
}
0593: # String items are individual elements
+0594: result.add(item)
__pyx_t_7 = PySet_Add(__pyx_v_result, __pyx_v_item); if (unlikely(__pyx_t_7 == ((int)-1))) __PYX_ERR(0, 594, __pyx_L19_error)
+0595: elif isinstance(item, (list, tuple, set)):
__pyx_t_2 = PyList_Check(__pyx_v_item); if (!__pyx_t_2) { } else { __pyx_t_4 = __pyx_t_2; goto __pyx_L28_bool_binop_done; } __pyx_t_2 = PyTuple_Check(__pyx_v_item); if (!__pyx_t_2) { } else { __pyx_t_4 = __pyx_t_2; goto __pyx_L28_bool_binop_done; } __pyx_t_2 = PySet_Check(__pyx_v_item); __pyx_t_4 = __pyx_t_2; __pyx_L28_bool_binop_done:; if (__pyx_t_4) { /* … */ goto __pyx_L27; }
0596: # Process each element in collections
+0597: for element in item:
if (likely(PyList_CheckExact(__pyx_v_item)) || PyTuple_CheckExact(__pyx_v_item)) { __pyx_t_10 = __pyx_v_item; __Pyx_INCREF(__pyx_t_10); __pyx_t_15 = 0; __pyx_t_16 = NULL; } else { __pyx_t_15 = -1; __pyx_t_10 = PyObject_GetIter(__pyx_v_item); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 597, __pyx_L19_error) __Pyx_GOTREF(__pyx_t_10); __pyx_t_16 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_10); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 597, __pyx_L19_error) } for (;;) { if (likely(!__pyx_t_16)) { if (likely(PyList_CheckExact(__pyx_t_10))) { { Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_10); #if !CYTHON_ASSUME_SAFE_SIZE if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 597, __pyx_L19_error) #endif if (__pyx_t_15 >= __pyx_temp) break; } __pyx_t_1 = __Pyx_PyList_GET_ITEM_REF(__pyx_t_10, __pyx_t_15, __Pyx_ReferenceSharing_OwnStrongReference); ++__pyx_t_15; } else { { Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_10); #if !CYTHON_ASSUME_SAFE_SIZE if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 597, __pyx_L19_error) #endif if (__pyx_t_15 >= __pyx_temp) break; } #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_1 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_10, __pyx_t_15)); #else __pyx_t_1 = __Pyx_PySequence_ITEM(__pyx_t_10, __pyx_t_15); #endif ++__pyx_t_15; } if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 597, __pyx_L19_error) } else { __pyx_t_1 = __pyx_t_16(__pyx_t_10); 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, 597, __pyx_L19_error) PyErr_Clear(); } break; } } __Pyx_GOTREF(__pyx_t_1); __Pyx_XDECREF_SET(__pyx_v_element, __pyx_t_1); __pyx_t_1 = 0; /* … */ } __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
0598: # Convert the element to the inner type if needed
+0599: if inner_element_type in encoders and not isinstance(element, inner_element_type):
__Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_encoders); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 599, __pyx_L19_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_v_inner_element_type, __pyx_t_1, Py_EQ)); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 599, __pyx_L19_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_2) { } else { __pyx_t_4 = __pyx_t_2; goto __pyx_L34_bool_binop_done; } __pyx_t_2 = PyObject_IsInstance(__pyx_v_element, __pyx_v_inner_element_type); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(0, 599, __pyx_L19_error) __pyx_t_17 = (!__pyx_t_2); __pyx_t_4 = __pyx_t_17; __pyx_L34_bool_binop_done:; if (__pyx_t_4) { /* … */ goto __pyx_L33; }
+0600: converted = encoders[inner_element_type](element)
__pyx_t_9 = NULL;
__Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_encoders); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 600, __pyx_L19_error)
__Pyx_GOTREF(__pyx_t_8);
__pyx_t_18 = __Pyx_PyObject_GetItem(__pyx_t_8, __pyx_v_inner_element_type); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 600, __pyx_L19_error)
__Pyx_GOTREF(__pyx_t_18);
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
__pyx_t_11 = 1;
#if CYTHON_UNPACK_METHODS
if (unlikely(PyMethod_Check(__pyx_t_18))) {
__pyx_t_9 = PyMethod_GET_SELF(__pyx_t_18);
assert(__pyx_t_9);
PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_18);
__Pyx_INCREF(__pyx_t_9);
__Pyx_INCREF(__pyx__function);
__Pyx_DECREF_SET(__pyx_t_18, __pyx__function);
__pyx_t_11 = 0;
}
#endif
{
PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_v_element};
__pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_18, __pyx_callargs+__pyx_t_11, (2-__pyx_t_11) | (__pyx_t_11*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
__Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
__Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 600, __pyx_L19_error)
__Pyx_GOTREF(__pyx_t_1);
}
__Pyx_XDECREF_SET(__pyx_v_converted, __pyx_t_1);
__pyx_t_1 = 0;
+0601: result.add(converted)
__pyx_t_7 = PySet_Add(__pyx_v_result, __pyx_v_converted); if (unlikely(__pyx_t_7 == ((int)-1))) __PYX_ERR(0, 601, __pyx_L19_error)
0602: else:
+0603: result.add(element)
/*else*/ {
__pyx_t_7 = PySet_Add(__pyx_v_result, __pyx_v_element); if (unlikely(__pyx_t_7 == ((int)-1))) __PYX_ERR(0, 603, __pyx_L19_error)
}
__pyx_L33:;
0604: else:
0605: # Single non-string item
+0606: result.add(item)
/*else*/ {
__pyx_t_7 = PySet_Add(__pyx_v_result, __pyx_v_item); if (unlikely(__pyx_t_7 == ((int)-1))) __PYX_ERR(0, 606, __pyx_L19_error)
}
__pyx_L27:;
+0607: except Exception as e:
__pyx_t_19 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(((PyTypeObject*)PyExc_Exception)))); if (__pyx_t_19) { __Pyx_AddTraceback("datamodel.converters._parse_set_type", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_3, &__pyx_t_10, &__pyx_t_1) < 0) __PYX_ERR(0, 607, __pyx_L21_except_error) __Pyx_XGOTREF(__pyx_t_3); __Pyx_XGOTREF(__pyx_t_10); __Pyx_XGOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_t_10); __pyx_v_e = __pyx_t_10; /*try:*/ { /* … */ /*finally:*/ { __pyx_L43_error:; /*exception exit:*/{ __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign __pyx_t_25 = 0; __pyx_t_26 = 0; __pyx_t_27 = 0; __pyx_t_28 = 0; __pyx_t_29 = 0; __pyx_t_30 = 0; __Pyx_XDECREF(__pyx_t_18); __pyx_t_18 = 0; __Pyx_XDECREF(__pyx_t_20); __pyx_t_20 = 0; __Pyx_XDECREF(__pyx_t_22); __pyx_t_22 = 0; __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_ExceptionSwap(&__pyx_t_28, &__pyx_t_29, &__pyx_t_30); if ( unlikely(__Pyx_GetException(&__pyx_t_25, &__pyx_t_26, &__pyx_t_27) < 0)) __Pyx_ErrFetch(&__pyx_t_25, &__pyx_t_26, &__pyx_t_27); __Pyx_XGOTREF(__pyx_t_25); __Pyx_XGOTREF(__pyx_t_26); __Pyx_XGOTREF(__pyx_t_27); __Pyx_XGOTREF(__pyx_t_28); __Pyx_XGOTREF(__pyx_t_29); __Pyx_XGOTREF(__pyx_t_30); __pyx_t_19 = __pyx_lineno; __pyx_t_23 = __pyx_clineno; __pyx_t_24 = __pyx_filename; { __Pyx_DECREF(__pyx_v_e); __pyx_v_e = 0; } __Pyx_XGIVEREF(__pyx_t_28); __Pyx_XGIVEREF(__pyx_t_29); __Pyx_XGIVEREF(__pyx_t_30); __Pyx_ExceptionReset(__pyx_t_28, __pyx_t_29, __pyx_t_30); __Pyx_XGIVEREF(__pyx_t_25); __Pyx_XGIVEREF(__pyx_t_26); __Pyx_XGIVEREF(__pyx_t_27); __Pyx_ErrRestore(__pyx_t_25, __pyx_t_26, __pyx_t_27); __pyx_t_25 = 0; __pyx_t_26 = 0; __pyx_t_27 = 0; __pyx_t_28 = 0; __pyx_t_29 = 0; __pyx_t_30 = 0; __pyx_lineno = __pyx_t_19; __pyx_clineno = __pyx_t_23; __pyx_filename = __pyx_t_24; goto __pyx_L21_except_error; } } } goto __pyx_L21_except_error;
+0608: raise ValueError(
__pyx_t_9 = NULL;
+0609: f"Error parsing set item of {inner_type}: {e}"
__pyx_t_8 = __Pyx_PyObject_FormatSimple(__pyx_v_inner_type, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 609, __pyx_L43_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_20 = __Pyx_PyObject_FormatSimple(__pyx_v_e, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 609, __pyx_L43_error) __Pyx_GOTREF(__pyx_t_20); __pyx_t_21[0] = __pyx_mstate_global->__pyx_kp_u_Error_parsing_set_item_of; __pyx_t_21[1] = __pyx_t_8; __pyx_t_21[2] = __pyx_mstate_global->__pyx_kp_u__5; __pyx_t_21[3] = __pyx_t_20; __pyx_t_5 = 28; #if __Pyx_PyUnicode_Join_CAN_USE_KIND_AND_LENGTH __pyx_t_5 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_21[1]) + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_21[3]); #endif __pyx_t_19 = 0; #if __Pyx_PyUnicode_Join_CAN_USE_KIND_AND_LENGTH __pyx_t_19 |= __Pyx_PyUnicode_KIND_04(__pyx_t_21[1]) | __Pyx_PyUnicode_KIND_04(__pyx_t_21[3]); #endif __pyx_t_22 = __Pyx_PyUnicode_Join(__pyx_t_21, 4, __pyx_t_5, __pyx_t_19); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 609, __pyx_L43_error) __Pyx_GOTREF(__pyx_t_22); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0; __pyx_t_11 = 1; { PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_22}; __pyx_t_18 = __Pyx_PyObject_FastCall((PyObject*)(((PyTypeObject*)PyExc_ValueError)), __pyx_callargs+__pyx_t_11, (2-__pyx_t_11) | (__pyx_t_11*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0; if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 608, __pyx_L43_error) __Pyx_GOTREF(__pyx_t_18); }
+0610: ) from e
__Pyx_Raise(__pyx_t_18, 0, 0, __pyx_v_e); __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; __PYX_ERR(0, 608, __pyx_L43_error) }
+0611: elif converter:
__pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_v_converter); if (unlikely((__pyx_t_4 < 0))) __PYX_ERR(0, 611, __pyx_L1_error) if (__pyx_t_4) { /* … */ goto __pyx_L12; }
+0612: for item in data:
if (likely(PyList_CheckExact(__pyx_v_data)) || PyTuple_CheckExact(__pyx_v_data)) { __pyx_t_1 = __pyx_v_data; __Pyx_INCREF(__pyx_t_1); __pyx_t_5 = 0; __pyx_t_6 = NULL; } else { __pyx_t_5 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_v_data); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 612, __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, 612, __pyx_L1_error) } for (;;) { if (likely(!__pyx_t_6)) { if (likely(PyList_CheckExact(__pyx_t_1))) { { 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, 612, __pyx_L1_error) #endif if (__pyx_t_5 >= __pyx_temp) break; } __pyx_t_10 = __Pyx_PyList_GET_ITEM_REF(__pyx_t_1, __pyx_t_5, __Pyx_ReferenceSharing_OwnStrongReference); ++__pyx_t_5; } 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, 612, __pyx_L1_error) #endif if (__pyx_t_5 >= __pyx_temp) break; } #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_10 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_5)); #else __pyx_t_10 = __Pyx_PySequence_ITEM(__pyx_t_1, __pyx_t_5); #endif ++__pyx_t_5; } if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 612, __pyx_L1_error) } else { __pyx_t_10 = __pyx_t_6(__pyx_t_1); if (unlikely(!__pyx_t_10)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(0, 612, __pyx_L1_error) PyErr_Clear(); } break; } } __Pyx_GOTREF(__pyx_t_10); __Pyx_XDECREF_SET(__pyx_v_item, __pyx_t_10); __pyx_t_10 = 0; /* … */ } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+0613: result.add(
__pyx_t_7 = PySet_Add(__pyx_v_result, __pyx_t_10); if (unlikely(__pyx_t_7 == ((int)-1))) __PYX_ERR(0, 613, __pyx_L1_error) __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
+0614: converter(field.name, item, inner_type, _parent)
__pyx_t_3 = NULL;
__Pyx_INCREF(__pyx_v_converter);
__pyx_t_18 = __pyx_v_converter;
__pyx_t_22 = __Pyx_PyObject_GetAttrStr(__pyx_v_field, __pyx_mstate_global->__pyx_n_u_name_2); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 614, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_22);
__pyx_t_11 = 1;
#if CYTHON_UNPACK_METHODS
if (unlikely(PyMethod_Check(__pyx_t_18))) {
__pyx_t_3 = PyMethod_GET_SELF(__pyx_t_18);
assert(__pyx_t_3);
PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_18);
__Pyx_INCREF(__pyx_t_3);
__Pyx_INCREF(__pyx__function);
__Pyx_DECREF_SET(__pyx_t_18, __pyx__function);
__pyx_t_11 = 0;
}
#endif
{
PyObject *__pyx_callargs[5] = {__pyx_t_3, __pyx_t_22, __pyx_v_item, __pyx_v_inner_type, __pyx_v__parent};
__pyx_t_10 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_18, __pyx_callargs+__pyx_t_11, (5-__pyx_t_11) | (__pyx_t_11*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
__Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
__Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 614, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_10);
}
0615: )
+0616: elif is_primitive(inner_type):
__pyx_t_10 = NULL; __Pyx_GetModuleGlobalName(__pyx_t_18, __pyx_mstate_global->__pyx_n_u_is_primitive); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 616, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_18); __pyx_t_11 = 1; #if CYTHON_UNPACK_METHODS if (unlikely(PyMethod_Check(__pyx_t_18))) { __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_18); assert(__pyx_t_10); PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_18); __Pyx_INCREF(__pyx_t_10); __Pyx_INCREF(__pyx__function); __Pyx_DECREF_SET(__pyx_t_18, __pyx__function); __pyx_t_11 = 0; } #endif { PyObject *__pyx_callargs[2] = {__pyx_t_10, __pyx_v_inner_type}; __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_18, __pyx_callargs+__pyx_t_11, (2-__pyx_t_11) | (__pyx_t_11*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 616, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_4 < 0))) __PYX_ERR(0, 616, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_4) { /* … */ goto __pyx_L12; }
0617: # Process each item with appropriate converters
+0618: for item in data:
if (likely(PyList_CheckExact(__pyx_v_data)) || PyTuple_CheckExact(__pyx_v_data)) { __pyx_t_1 = __pyx_v_data; __Pyx_INCREF(__pyx_t_1); __pyx_t_5 = 0; __pyx_t_6 = NULL; } else { __pyx_t_5 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_v_data); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 618, __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, 618, __pyx_L1_error) } for (;;) { if (likely(!__pyx_t_6)) { if (likely(PyList_CheckExact(__pyx_t_1))) { { 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, 618, __pyx_L1_error) #endif if (__pyx_t_5 >= __pyx_temp) break; } __pyx_t_18 = __Pyx_PyList_GET_ITEM_REF(__pyx_t_1, __pyx_t_5, __Pyx_ReferenceSharing_OwnStrongReference); ++__pyx_t_5; } 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, 618, __pyx_L1_error) #endif if (__pyx_t_5 >= __pyx_temp) break; } #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_18 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_5)); #else __pyx_t_18 = __Pyx_PySequence_ITEM(__pyx_t_1, __pyx_t_5); #endif ++__pyx_t_5; } if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 618, __pyx_L1_error) } else { __pyx_t_18 = __pyx_t_6(__pyx_t_1); if (unlikely(!__pyx_t_18)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(0, 618, __pyx_L1_error) PyErr_Clear(); } break; } } __Pyx_GOTREF(__pyx_t_18); __Pyx_XDECREF_SET(__pyx_v_item, __pyx_t_18); __pyx_t_18 = 0; /* … */ } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+0619: try:
{
/*try:*/ {
/* … */
}
__Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
__Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
__Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
goto __pyx_L61_try_end;
__pyx_L54_error:;
__Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
__Pyx_XDECREF(__pyx_t_18); __pyx_t_18 = 0;
__Pyx_XDECREF(__pyx_t_20); __pyx_t_20 = 0;
__Pyx_XDECREF(__pyx_t_22); __pyx_t_22 = 0;
__Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
__Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
__pyx_L56_except_error:;
__Pyx_XGIVEREF(__pyx_t_14);
__Pyx_XGIVEREF(__pyx_t_13);
__Pyx_XGIVEREF(__pyx_t_12);
__Pyx_ExceptionReset(__pyx_t_14, __pyx_t_13, __pyx_t_12);
goto __pyx_L1_error;
__pyx_L61_try_end:;
}
0620: # If a specific encoder exists for this type, use it
+0621: if encoder:
__pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_v_encoder); if (unlikely((__pyx_t_4 < 0))) __PYX_ERR(0, 621, __pyx_L54_error) if (__pyx_t_4) { /* … */ goto __pyx_L62; }
+0622: processed_item = encoder(item)
__pyx_t_10 = NULL;
__Pyx_INCREF(__pyx_v_encoder);
__pyx_t_22 = __pyx_v_encoder;
__pyx_t_11 = 1;
#if CYTHON_UNPACK_METHODS
if (unlikely(PyMethod_Check(__pyx_t_22))) {
__pyx_t_10 = PyMethod_GET_SELF(__pyx_t_22);
assert(__pyx_t_10);
PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_22);
__Pyx_INCREF(__pyx_t_10);
__Pyx_INCREF(__pyx__function);
__Pyx_DECREF_SET(__pyx_t_22, __pyx__function);
__pyx_t_11 = 0;
}
#endif
{
PyObject *__pyx_callargs[2] = {__pyx_t_10, __pyx_v_item};
__pyx_t_18 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_22, __pyx_callargs+__pyx_t_11, (2-__pyx_t_11) | (__pyx_t_11*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
__Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
__Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 622, __pyx_L54_error)
__Pyx_GOTREF(__pyx_t_18);
}
__Pyx_XDECREF_SET(__pyx_v_processed_item, __pyx_t_18);
__pyx_t_18 = 0;
0623: else:
0624: # Otherwise try to use builtin converters
+0625: processed_item = _parse_builtin_type(field, inner_type, item, None)
/*else*/ {
__pyx_t_18 = __pyx_f_9datamodel_10converters__parse_builtin_type(__pyx_v_field, __pyx_v_inner_type, __pyx_v_item, Py_None); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 625, __pyx_L54_error)
__Pyx_GOTREF(__pyx_t_18);
__Pyx_XDECREF_SET(__pyx_v_processed_item, __pyx_t_18);
__pyx_t_18 = 0;
}
__pyx_L62:;
+0626: result.add(processed_item)
__pyx_t_7 = PySet_Add(__pyx_v_result, __pyx_v_processed_item); if (unlikely(__pyx_t_7 == ((int)-1))) __PYX_ERR(0, 626, __pyx_L54_error)
+0627: except Exception as e:
__pyx_t_23 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(((PyTypeObject*)PyExc_Exception)))); if (__pyx_t_23) { __Pyx_AddTraceback("datamodel.converters._parse_set_type", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_18, &__pyx_t_22, &__pyx_t_10) < 0) __PYX_ERR(0, 627, __pyx_L56_except_error) __Pyx_XGOTREF(__pyx_t_18); __Pyx_XGOTREF(__pyx_t_22); __Pyx_XGOTREF(__pyx_t_10); __Pyx_INCREF(__pyx_t_22); __pyx_v_e = __pyx_t_22; /*try:*/ { /* … */ /*finally:*/ { __pyx_L68_error:; /*exception exit:*/{ __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign __pyx_t_30 = 0; __pyx_t_29 = 0; __pyx_t_28 = 0; __pyx_t_27 = 0; __pyx_t_26 = 0; __pyx_t_25 = 0; __Pyx_XDECREF(__pyx_t_20); __pyx_t_20 = 0; __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_XDECREF(__pyx_t_31); __pyx_t_31 = 0; __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_ExceptionSwap(&__pyx_t_27, &__pyx_t_26, &__pyx_t_25); if ( unlikely(__Pyx_GetException(&__pyx_t_30, &__pyx_t_29, &__pyx_t_28) < 0)) __Pyx_ErrFetch(&__pyx_t_30, &__pyx_t_29, &__pyx_t_28); __Pyx_XGOTREF(__pyx_t_30); __Pyx_XGOTREF(__pyx_t_29); __Pyx_XGOTREF(__pyx_t_28); __Pyx_XGOTREF(__pyx_t_27); __Pyx_XGOTREF(__pyx_t_26); __Pyx_XGOTREF(__pyx_t_25); __pyx_t_23 = __pyx_lineno; __pyx_t_19 = __pyx_clineno; __pyx_t_24 = __pyx_filename; { __Pyx_DECREF(__pyx_v_e); __pyx_v_e = 0; } __Pyx_XGIVEREF(__pyx_t_27); __Pyx_XGIVEREF(__pyx_t_26); __Pyx_XGIVEREF(__pyx_t_25); __Pyx_ExceptionReset(__pyx_t_27, __pyx_t_26, __pyx_t_25); __Pyx_XGIVEREF(__pyx_t_30); __Pyx_XGIVEREF(__pyx_t_29); __Pyx_XGIVEREF(__pyx_t_28); __Pyx_ErrRestore(__pyx_t_30, __pyx_t_29, __pyx_t_28); __pyx_t_30 = 0; __pyx_t_29 = 0; __pyx_t_28 = 0; __pyx_t_27 = 0; __pyx_t_26 = 0; __pyx_t_25 = 0; __pyx_lineno = __pyx_t_23; __pyx_clineno = __pyx_t_19; __pyx_filename = __pyx_t_24; goto __pyx_L56_except_error; } } } goto __pyx_L56_except_error;
+0628: raise ValueError(
__pyx_t_9 = NULL;
+0629: f"Error parsing set item of {inner_type}: {e}"
__pyx_t_20 = __Pyx_PyObject_FormatSimple(__pyx_v_inner_type, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 629, __pyx_L68_error) __Pyx_GOTREF(__pyx_t_20); __pyx_t_8 = __Pyx_PyObject_FormatSimple(__pyx_v_e, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 629, __pyx_L68_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_21[0] = __pyx_mstate_global->__pyx_kp_u_Error_parsing_set_item_of; __pyx_t_21[1] = __pyx_t_20; __pyx_t_21[2] = __pyx_mstate_global->__pyx_kp_u__5; __pyx_t_21[3] = __pyx_t_8; __pyx_t_15 = 28; #if __Pyx_PyUnicode_Join_CAN_USE_KIND_AND_LENGTH __pyx_t_15 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_21[1]) + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_21[3]); #endif __pyx_t_23 = 0; #if __Pyx_PyUnicode_Join_CAN_USE_KIND_AND_LENGTH __pyx_t_23 |= __Pyx_PyUnicode_KIND_04(__pyx_t_21[1]) | __Pyx_PyUnicode_KIND_04(__pyx_t_21[3]); #endif __pyx_t_31 = __Pyx_PyUnicode_Join(__pyx_t_21, 4, __pyx_t_15, __pyx_t_23); if (unlikely(!__pyx_t_31)) __PYX_ERR(0, 629, __pyx_L68_error) __Pyx_GOTREF(__pyx_t_31); __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_t_11 = 1; { PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_31}; __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)(((PyTypeObject*)PyExc_ValueError)), __pyx_callargs+__pyx_t_11, (2-__pyx_t_11) | (__pyx_t_11*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_31); __pyx_t_31 = 0; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 628, __pyx_L68_error) __Pyx_GOTREF(__pyx_t_3); }
+0630: ) from e
__Pyx_Raise(__pyx_t_3, 0, 0, __pyx_v_e); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __PYX_ERR(0, 628, __pyx_L68_error) }
0631: else:
+0632: for item in data:
/*else*/ {
if (likely(PyList_CheckExact(__pyx_v_data)) || PyTuple_CheckExact(__pyx_v_data)) {
__pyx_t_1 = __pyx_v_data; __Pyx_INCREF(__pyx_t_1);
__pyx_t_5 = 0;
__pyx_t_6 = NULL;
} else {
__pyx_t_5 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_v_data); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 632, __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, 632, __pyx_L1_error)
}
for (;;) {
if (likely(!__pyx_t_6)) {
if (likely(PyList_CheckExact(__pyx_t_1))) {
{
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, 632, __pyx_L1_error)
#endif
if (__pyx_t_5 >= __pyx_temp) break;
}
__pyx_t_10 = __Pyx_PyList_GET_ITEM_REF(__pyx_t_1, __pyx_t_5, __Pyx_ReferenceSharing_OwnStrongReference);
++__pyx_t_5;
} 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, 632, __pyx_L1_error)
#endif
if (__pyx_t_5 >= __pyx_temp) break;
}
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_10 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_5));
#else
__pyx_t_10 = __Pyx_PySequence_ITEM(__pyx_t_1, __pyx_t_5);
#endif
++__pyx_t_5;
}
if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 632, __pyx_L1_error)
} else {
__pyx_t_10 = __pyx_t_6(__pyx_t_1);
if (unlikely(!__pyx_t_10)) {
PyObject* exc_type = PyErr_Occurred();
if (exc_type) {
if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(0, 632, __pyx_L1_error)
PyErr_Clear();
}
break;
}
}
__Pyx_GOTREF(__pyx_t_10);
__Pyx_XDECREF_SET(__pyx_v_item, __pyx_t_10);
__pyx_t_10 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
}
__pyx_L12:;
+0633: result.add(
__pyx_t_7 = PySet_Add(__pyx_v_result, __pyx_t_10); if (unlikely(__pyx_t_7 == ((int)-1))) __PYX_ERR(0, 633, __pyx_L1_error) __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
+0634: _parse_typing(field, T=inner_type, data=item, encoder=encoder, as_objects=False)
__pyx_t_32.__pyx_n = 2;
__pyx_t_32.encoder = __pyx_v_encoder;
__pyx_t_32.as_objects = Py_False;
__pyx_t_10 = __pyx_f_9datamodel_10converters__parse_typing(__pyx_v_field, __pyx_v_inner_type, __pyx_v_item, &__pyx_t_32); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 634, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_10);
0635: )
+0636: return result
{
PyObject *__pyx_temp;
{
__pyx_temp = __pyx_r;
__Pyx_INCREF(__pyx_v_result);
__pyx_r = __pyx_v_result;
}
__Pyx_XDECREF(__pyx_temp);
}
goto __pyx_L0;
0637:
+0638: cdef object _parse_dict_type(
static PyObject *__pyx_f_9datamodel_10converters__parse_dict_type(PyObject *__pyx_v_field, CYTHON_UNUSED PyObject *__pyx_v_T, PyObject *__pyx_v_data, PyObject *__pyx_v_encoder, PyObject *__pyx_v_args) {
PyObject *__pyx_v_key_type = 0;
PyObject *__pyx_v_val_type = 0;
PyObject *__pyx_v_new_dict = 0;
PyObject *__pyx_v_val_origin = 0;
PyObject *__pyx_v_val_args = 0;
PyObject *__pyx_v_k = NULL;
PyObject *__pyx_v_v = NULL;
PyObject *__pyx_r = NULL;
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_6);
__Pyx_XDECREF(__pyx_t_7);
__Pyx_XDECREF(__pyx_t_15);
__Pyx_XDECREF(__pyx_t_16);
__Pyx_AddTraceback("datamodel.converters._parse_dict_type", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = 0;
__pyx_L0:;
__Pyx_XDECREF(__pyx_v_key_type);
__Pyx_XDECREF(__pyx_v_val_type);
__Pyx_XDECREF(__pyx_v_new_dict);
__Pyx_XDECREF(__pyx_v_val_origin);
__Pyx_XDECREF(__pyx_v_val_args);
__Pyx_XDECREF(__pyx_v_k);
__Pyx_XDECREF(__pyx_v_v);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
0639: object field,
0640: object T,
0641: object data,
0642: object encoder,
0643: object args
0644: ):
+0645: cdef object key_type = args[0] # First arg is key type
__pyx_t_1 = __Pyx_GetItemInt(__pyx_v_args, 0, long, 1, __Pyx_PyLong_From_long, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 645, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_key_type = __pyx_t_1; __pyx_t_1 = 0;
+0646: cdef object val_type = args[1] # Second arg is value type
__pyx_t_1 = __Pyx_GetItemInt(__pyx_v_args, 1, long, 1, __Pyx_PyLong_From_long, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 646, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_val_type = __pyx_t_1; __pyx_t_1 = 0;
+0647: cdef dict new_dict = {}
__pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 647, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_new_dict = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0;
0648: cdef object val_origin, val_args
0649:
0650: # Check if we have type args (Dict[K, V])
+0651: if not args or len(args) < 2:
__pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_v_args); if (unlikely((__pyx_t_3 < 0))) __PYX_ERR(0, 651, __pyx_L1_error) __pyx_t_4 = (!__pyx_t_3); if (!__pyx_t_4) { } else { __pyx_t_2 = __pyx_t_4; goto __pyx_L4_bool_binop_done; } __pyx_t_5 = PyObject_Length(__pyx_v_args); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 651, __pyx_L1_error) __pyx_t_4 = (__pyx_t_5 < 2); __pyx_t_2 = __pyx_t_4; __pyx_L4_bool_binop_done:; if (__pyx_t_2) { /* … */ }
+0652: return data # If no type arguments, return as is
{
PyObject *__pyx_temp;
{
__pyx_temp = __pyx_r;
__Pyx_INCREF(__pyx_v_data);
__pyx_r = __pyx_v_data;
}
__Pyx_XDECREF(__pyx_temp);
}
goto __pyx_L0;
0653:
0654: # Get origin and args of value type to check if it's a nested Dict
+0655: val_origin = get_origin(val_type)
__pyx_t_6 = NULL; __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_mstate_global->__pyx_n_u_get_origin); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 655, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_8 = 1; #if CYTHON_UNPACK_METHODS if (unlikely(PyMethod_Check(__pyx_t_7))) { __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_7); assert(__pyx_t_6); PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_7); __Pyx_INCREF(__pyx_t_6); __Pyx_INCREF(__pyx__function); __Pyx_DECREF_SET(__pyx_t_7, __pyx__function); __pyx_t_8 = 0; } #endif { PyObject *__pyx_callargs[2] = {__pyx_t_6, __pyx_v_val_type}; __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_7, __pyx_callargs+__pyx_t_8, (2-__pyx_t_8) | (__pyx_t_8*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 655, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } __pyx_v_val_origin = __pyx_t_1; __pyx_t_1 = 0;
+0656: val_args = get_args(val_type)
__pyx_t_7 = NULL; __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_get_args); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 656, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_8 = 1; #if CYTHON_UNPACK_METHODS if (unlikely(PyMethod_Check(__pyx_t_6))) { __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_6); assert(__pyx_t_7); PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_6); __Pyx_INCREF(__pyx_t_7); __Pyx_INCREF(__pyx__function); __Pyx_DECREF_SET(__pyx_t_6, __pyx__function); __pyx_t_8 = 0; } #endif { PyObject *__pyx_callargs[2] = {__pyx_t_7, __pyx_v_val_type}; __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_6, __pyx_callargs+__pyx_t_8, (2-__pyx_t_8) | (__pyx_t_8*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 656, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } __pyx_v_val_args = __pyx_t_1; __pyx_t_1 = 0;
0657:
0658: # Process each key-value pair
+0659: for k, v in data.items():
__pyx_t_5 = 0;
if (unlikely(__pyx_v_data == Py_None)) {
PyErr_Format(PyExc_AttributeError, "\047NoneType\047 object has no attribute \047%.30s\047", "items");
__PYX_ERR(0, 659, __pyx_L1_error)
}
__pyx_t_6 = __Pyx_dict_iterator(__pyx_v_data, 0, __pyx_mstate_global->__pyx_n_u_items, (&__pyx_t_9), (&__pyx_t_10)); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 659, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_XDECREF(__pyx_t_1);
__pyx_t_1 = __pyx_t_6;
__pyx_t_6 = 0;
while (1) {
__pyx_t_11 = __Pyx_dict_iter_next(__pyx_t_1, __pyx_t_9, &__pyx_t_5, &__pyx_t_6, &__pyx_t_7, NULL, __pyx_t_10);
if (unlikely(__pyx_t_11 == 0)) break;
if (unlikely(__pyx_t_11 == -1)) __PYX_ERR(0, 659, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_GOTREF(__pyx_t_7);
__Pyx_XDECREF_SET(__pyx_v_k, __pyx_t_6);
__pyx_t_6 = 0;
__Pyx_XDECREF_SET(__pyx_v_v, __pyx_t_7);
__pyx_t_7 = 0;
0660: # Convert the key if needed
+0661: if key_type == str and not isinstance(k, str):
__pyx_t_4 = __Pyx_PyObject_RichCompareBool(__pyx_v_key_type, ((PyObject *)(&PyUnicode_Type)), Py_EQ); if (unlikely((__pyx_t_4 < 0))) __PYX_ERR(0, 661, __pyx_L1_error) if (__pyx_t_4) { } else { __pyx_t_2 = __pyx_t_4; goto __pyx_L9_bool_binop_done; } __pyx_t_4 = PyUnicode_Check(__pyx_v_k); __pyx_t_3 = (!__pyx_t_4); __pyx_t_2 = __pyx_t_3; __pyx_L9_bool_binop_done:; if (__pyx_t_2) { /* … */ goto __pyx_L8; }
+0662: k = str(k)
__pyx_t_7 = __Pyx_PyObject_Unicode(__pyx_v_k); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 662, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF_SET(__pyx_v_k, __pyx_t_7); __pyx_t_7 = 0;
+0663: elif key_type == int and isinstance(k, str):
__pyx_t_3 = __Pyx_PyObject_RichCompareBool(__pyx_v_key_type, ((PyObject *)(&PyLong_Type)), Py_EQ); if (unlikely((__pyx_t_3 < 0))) __PYX_ERR(0, 663, __pyx_L1_error) if (__pyx_t_3) { } else { __pyx_t_2 = __pyx_t_3; goto __pyx_L11_bool_binop_done; } __pyx_t_3 = PyUnicode_Check(__pyx_v_k); __pyx_t_2 = __pyx_t_3; __pyx_L11_bool_binop_done:; if (__pyx_t_2) { /* … */ } __pyx_L8:;
+0664: try:
{
/*try:*/ {
/* … */
}
__Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
__Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
__Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
goto __pyx_L20_try_end;
__pyx_L13_error:;
__Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
__Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
/* … */
__pyx_L15_except_error:;
__Pyx_XGIVEREF(__pyx_t_12);
__Pyx_XGIVEREF(__pyx_t_13);
__Pyx_XGIVEREF(__pyx_t_14);
__Pyx_ExceptionReset(__pyx_t_12, __pyx_t_13, __pyx_t_14);
goto __pyx_L1_error;
__pyx_L14_exception_handled:;
__Pyx_XGIVEREF(__pyx_t_12);
__Pyx_XGIVEREF(__pyx_t_13);
__Pyx_XGIVEREF(__pyx_t_14);
__Pyx_ExceptionReset(__pyx_t_12, __pyx_t_13, __pyx_t_14);
__pyx_L20_try_end:;
}
+0665: k = int(k)
__pyx_t_7 = __Pyx_PyNumber_Int(__pyx_v_k); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 665, __pyx_L13_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF_SET(__pyx_v_k, __pyx_t_7); __pyx_t_7 = 0;
+0666: except (ValueError, TypeError):
__pyx_t_11 = __Pyx_PyErr_ExceptionMatches2(((PyObject *)(((PyTypeObject*)PyExc_ValueError))), ((PyObject *)(((PyTypeObject*)PyExc_TypeError))));
if (__pyx_t_11) {
__Pyx_ErrRestore(0,0,0);
goto __pyx_L14_exception_handled;
}
goto __pyx_L15_except_error;
0667: pass
0668:
0669: # If value type is a nested Dict
+0670: if val_origin is dict and val_args:
__pyx_t_3 = (__pyx_v_val_origin == ((PyObject *)(&PyDict_Type)));
if (__pyx_t_3) {
} else {
__pyx_t_2 = __pyx_t_3;
goto __pyx_L24_bool_binop_done;
}
__pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_v_val_args); if (unlikely((__pyx_t_3 < 0))) __PYX_ERR(0, 670, __pyx_L1_error)
__pyx_t_2 = __pyx_t_3;
__pyx_L24_bool_binop_done:;
if (__pyx_t_2) {
/* … */
goto __pyx_L23;
}
+0671: if isinstance(v, dict):
__pyx_t_2 = PyDict_Check(__pyx_v_v);
if (__pyx_t_2) {
/* … */
goto __pyx_L26;
}
0672: # Recursively process nested dict
+0673: new_dict[k] = _parse_dict_type(field, val_type, v, encoder, val_args)
__pyx_t_7 = __pyx_f_9datamodel_10converters__parse_dict_type(__pyx_v_field, __pyx_v_val_type, __pyx_v_v, __pyx_v_encoder, __pyx_v_val_args); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 673, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); if (unlikely((PyDict_SetItem(__pyx_v_new_dict, __pyx_v_k, __pyx_t_7) < 0))) __PYX_ERR(0, 673, __pyx_L1_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
0674: else:
0675: # Not a dict but should be - create empty dict
+0676: new_dict[k] = {}
/*else*/ {
__pyx_t_7 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 676, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
if (unlikely((PyDict_SetItem(__pyx_v_new_dict, __pyx_v_k, __pyx_t_7) < 0))) __PYX_ERR(0, 676, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
}
__pyx_L26:;
0677: # If value type is a primitive type
+0678: elif is_primitive(val_type):
__pyx_t_6 = NULL;
__Pyx_GetModuleGlobalName(__pyx_t_15, __pyx_mstate_global->__pyx_n_u_is_primitive); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 678, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_15);
__pyx_t_8 = 1;
#if CYTHON_UNPACK_METHODS
if (unlikely(PyMethod_Check(__pyx_t_15))) {
__pyx_t_6 = PyMethod_GET_SELF(__pyx_t_15);
assert(__pyx_t_6);
PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_15);
__Pyx_INCREF(__pyx_t_6);
__Pyx_INCREF(__pyx__function);
__Pyx_DECREF_SET(__pyx_t_15, __pyx__function);
__pyx_t_8 = 0;
}
#endif
{
PyObject *__pyx_callargs[2] = {__pyx_t_6, __pyx_v_val_type};
__pyx_t_7 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_15, __pyx_callargs+__pyx_t_8, (2-__pyx_t_8) | (__pyx_t_8*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
__Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
__Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 678, __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, 678, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
if (__pyx_t_2) {
/* … */
goto __pyx_L23;
}
+0679: if val_type == int and isinstance(v, str):
__pyx_t_3 = __Pyx_PyObject_RichCompareBool(__pyx_v_val_type, ((PyObject *)(&PyLong_Type)), Py_EQ); if (unlikely((__pyx_t_3 < 0))) __PYX_ERR(0, 679, __pyx_L1_error) if (__pyx_t_3) { } else { __pyx_t_2 = __pyx_t_3; goto __pyx_L28_bool_binop_done; } __pyx_t_3 = PyUnicode_Check(__pyx_v_v); __pyx_t_2 = __pyx_t_3; __pyx_L28_bool_binop_done:; if (__pyx_t_2) { /* … */ goto __pyx_L27; }
+0680: try:
{
/*try:*/ {
/* … */
}
__Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
__Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
__Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
goto __pyx_L37_try_end;
__pyx_L30_error:;
__Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0;
__Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
__Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
/* … */
__pyx_L32_except_error:;
__Pyx_XGIVEREF(__pyx_t_14);
__Pyx_XGIVEREF(__pyx_t_13);
__Pyx_XGIVEREF(__pyx_t_12);
__Pyx_ExceptionReset(__pyx_t_14, __pyx_t_13, __pyx_t_12);
goto __pyx_L1_error;
__pyx_L31_exception_handled:;
__Pyx_XGIVEREF(__pyx_t_14);
__Pyx_XGIVEREF(__pyx_t_13);
__Pyx_XGIVEREF(__pyx_t_12);
__Pyx_ExceptionReset(__pyx_t_14, __pyx_t_13, __pyx_t_12);
__pyx_L37_try_end:;
}
+0681: new_dict[k] = int(v)
__pyx_t_7 = __Pyx_PyNumber_Int(__pyx_v_v); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 681, __pyx_L30_error) __Pyx_GOTREF(__pyx_t_7); if (unlikely((PyDict_SetItem(__pyx_v_new_dict, __pyx_v_k, __pyx_t_7) < 0))) __PYX_ERR(0, 681, __pyx_L30_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
+0682: except (ValueError, TypeError):
__pyx_t_11 = __Pyx_PyErr_ExceptionMatches2(((PyObject *)(((PyTypeObject*)PyExc_ValueError))), ((PyObject *)(((PyTypeObject*)PyExc_TypeError))));
if (__pyx_t_11) {
__Pyx_AddTraceback("datamodel.converters._parse_dict_type", __pyx_clineno, __pyx_lineno, __pyx_filename);
if (__Pyx_GetException(&__pyx_t_7, &__pyx_t_15, &__pyx_t_6) < 0) __PYX_ERR(0, 682, __pyx_L32_except_error)
__Pyx_XGOTREF(__pyx_t_7);
__Pyx_XGOTREF(__pyx_t_15);
__Pyx_XGOTREF(__pyx_t_6);
+0683: new_dict[k] = v
if (unlikely((PyDict_SetItem(__pyx_v_new_dict, __pyx_v_k, __pyx_v_v) < 0))) __PYX_ERR(0, 683, __pyx_L32_except_error) __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0; __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; goto __pyx_L31_exception_handled; } goto __pyx_L32_except_error;
+0684: elif val_type == float and isinstance(v, str):
__pyx_t_3 = __Pyx_PyObject_RichCompareBool(__pyx_v_val_type, ((PyObject *)(&PyFloat_Type)), Py_EQ); if (unlikely((__pyx_t_3 < 0))) __PYX_ERR(0, 684, __pyx_L1_error) if (__pyx_t_3) { } else { __pyx_t_2 = __pyx_t_3; goto __pyx_L40_bool_binop_done; } __pyx_t_3 = PyUnicode_Check(__pyx_v_v); __pyx_t_2 = __pyx_t_3; __pyx_L40_bool_binop_done:; if (__pyx_t_2) { /* … */ goto __pyx_L27; }
+0685: try:
{
/*try:*/ {
/* … */
}
__Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
__Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
__Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
goto __pyx_L49_try_end;
__pyx_L42_error:;
__Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0;
__Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
__Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
/* … */
__pyx_L44_except_error:;
__Pyx_XGIVEREF(__pyx_t_12);
__Pyx_XGIVEREF(__pyx_t_13);
__Pyx_XGIVEREF(__pyx_t_14);
__Pyx_ExceptionReset(__pyx_t_12, __pyx_t_13, __pyx_t_14);
goto __pyx_L1_error;
__pyx_L43_exception_handled:;
__Pyx_XGIVEREF(__pyx_t_12);
__Pyx_XGIVEREF(__pyx_t_13);
__Pyx_XGIVEREF(__pyx_t_14);
__Pyx_ExceptionReset(__pyx_t_12, __pyx_t_13, __pyx_t_14);
__pyx_L49_try_end:;
}
+0686: new_dict[k] = float(v)
__pyx_t_6 = __Pyx_PyNumber_Float(__pyx_v_v); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 686, __pyx_L42_error) __Pyx_GOTREF(__pyx_t_6); if (__Pyx_PyFloat_FromNumber(&__pyx_t_6, NULL, 0) < (0)) __PYX_ERR(0, 686, __pyx_L42_error) if (unlikely((PyDict_SetItem(__pyx_v_new_dict, __pyx_v_k, __pyx_t_6) < 0))) __PYX_ERR(0, 686, __pyx_L42_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
+0687: except (ValueError, TypeError):
__pyx_t_11 = __Pyx_PyErr_ExceptionMatches2(((PyObject *)(((PyTypeObject*)PyExc_ValueError))), ((PyObject *)(((PyTypeObject*)PyExc_TypeError))));
if (__pyx_t_11) {
__Pyx_AddTraceback("datamodel.converters._parse_dict_type", __pyx_clineno, __pyx_lineno, __pyx_filename);
if (__Pyx_GetException(&__pyx_t_6, &__pyx_t_15, &__pyx_t_7) < 0) __PYX_ERR(0, 687, __pyx_L44_except_error)
__Pyx_XGOTREF(__pyx_t_6);
__Pyx_XGOTREF(__pyx_t_15);
__Pyx_XGOTREF(__pyx_t_7);
+0688: new_dict[k] = v
if (unlikely((PyDict_SetItem(__pyx_v_new_dict, __pyx_v_k, __pyx_v_v) < 0))) __PYX_ERR(0, 688, __pyx_L44_except_error) __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0; __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; goto __pyx_L43_exception_handled; } goto __pyx_L44_except_error;
+0689: elif val_type == bool and isinstance(v, str):
__pyx_t_3 = __Pyx_PyObject_RichCompareBool(__pyx_v_val_type, ((PyObject *)(&PyBool_Type)), Py_EQ); if (unlikely((__pyx_t_3 < 0))) __PYX_ERR(0, 689, __pyx_L1_error) if (__pyx_t_3) { } else { __pyx_t_2 = __pyx_t_3; goto __pyx_L52_bool_binop_done; } __pyx_t_3 = PyUnicode_Check(__pyx_v_v); __pyx_t_2 = __pyx_t_3; __pyx_L52_bool_binop_done:; if (__pyx_t_2) { /* … */ goto __pyx_L27; }
+0690: try:
{
/*try:*/ {
/* … */
}
__Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
__Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
__Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
goto __pyx_L61_try_end;
__pyx_L54_error:;
__Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0;
__Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
__Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
/* … */
__pyx_L56_except_error:;
__Pyx_XGIVEREF(__pyx_t_14);
__Pyx_XGIVEREF(__pyx_t_13);
__Pyx_XGIVEREF(__pyx_t_12);
__Pyx_ExceptionReset(__pyx_t_14, __pyx_t_13, __pyx_t_12);
goto __pyx_L1_error;
__pyx_L55_exception_handled:;
__Pyx_XGIVEREF(__pyx_t_14);
__Pyx_XGIVEREF(__pyx_t_13);
__Pyx_XGIVEREF(__pyx_t_12);
__Pyx_ExceptionReset(__pyx_t_14, __pyx_t_13, __pyx_t_12);
__pyx_L61_try_end:;
}
+0691: new_dict[k] = to_boolean(v)
__pyx_t_7 = __pyx_f_9datamodel_10converters_to_boolean(__pyx_v_v, 0); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 691, __pyx_L54_error) __Pyx_GOTREF(__pyx_t_7); if (unlikely((PyDict_SetItem(__pyx_v_new_dict, __pyx_v_k, __pyx_t_7) < 0))) __PYX_ERR(0, 691, __pyx_L54_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
+0692: except (ValueError, TypeError):
__pyx_t_11 = __Pyx_PyErr_ExceptionMatches2(((PyObject *)(((PyTypeObject*)PyExc_ValueError))), ((PyObject *)(((PyTypeObject*)PyExc_TypeError))));
if (__pyx_t_11) {
__Pyx_AddTraceback("datamodel.converters._parse_dict_type", __pyx_clineno, __pyx_lineno, __pyx_filename);
if (__Pyx_GetException(&__pyx_t_7, &__pyx_t_15, &__pyx_t_6) < 0) __PYX_ERR(0, 692, __pyx_L56_except_error)
__Pyx_XGOTREF(__pyx_t_7);
__Pyx_XGOTREF(__pyx_t_15);
__Pyx_XGOTREF(__pyx_t_6);
+0693: new_dict[k] = v
if (unlikely((PyDict_SetItem(__pyx_v_new_dict, __pyx_v_k, __pyx_v_v) < 0))) __PYX_ERR(0, 693, __pyx_L56_except_error) __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0; __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; goto __pyx_L55_exception_handled; } goto __pyx_L56_except_error;
+0694: elif val_type in encoders:
__Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_encoders); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 694, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_v_val_type, __pyx_t_6, Py_EQ)); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 694, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (__pyx_t_2) { /* … */ goto __pyx_L27; }
+0695: try:
{
/*try:*/ {
/* … */
}
__Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
__Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
__Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
goto __pyx_L71_try_end;
__pyx_L64_error:;
__Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0;
__Pyx_XDECREF(__pyx_t_16); __pyx_t_16 = 0;
__Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
__Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
/* … */
__pyx_L66_except_error:;
__Pyx_XGIVEREF(__pyx_t_12);
__Pyx_XGIVEREF(__pyx_t_13);
__Pyx_XGIVEREF(__pyx_t_14);
__Pyx_ExceptionReset(__pyx_t_12, __pyx_t_13, __pyx_t_14);
goto __pyx_L1_error;
__pyx_L65_exception_handled:;
__Pyx_XGIVEREF(__pyx_t_12);
__Pyx_XGIVEREF(__pyx_t_13);
__Pyx_XGIVEREF(__pyx_t_14);
__Pyx_ExceptionReset(__pyx_t_12, __pyx_t_13, __pyx_t_14);
__pyx_L71_try_end:;
}
+0696: new_dict[k] = encoders[val_type](v)
__pyx_t_15 = NULL;
__Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_mstate_global->__pyx_n_u_encoders); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 696, __pyx_L64_error)
__Pyx_GOTREF(__pyx_t_7);
__pyx_t_16 = __Pyx_PyObject_GetItem(__pyx_t_7, __pyx_v_val_type); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 696, __pyx_L64_error)
__Pyx_GOTREF(__pyx_t_16);
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
__pyx_t_8 = 1;
#if CYTHON_UNPACK_METHODS
if (unlikely(PyMethod_Check(__pyx_t_16))) {
__pyx_t_15 = PyMethod_GET_SELF(__pyx_t_16);
assert(__pyx_t_15);
PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_16);
__Pyx_INCREF(__pyx_t_15);
__Pyx_INCREF(__pyx__function);
__Pyx_DECREF_SET(__pyx_t_16, __pyx__function);
__pyx_t_8 = 0;
}
#endif
{
PyObject *__pyx_callargs[2] = {__pyx_t_15, __pyx_v_v};
__pyx_t_6 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_16, __pyx_callargs+__pyx_t_8, (2-__pyx_t_8) | (__pyx_t_8*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
__Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0;
__Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 696, __pyx_L64_error)
__Pyx_GOTREF(__pyx_t_6);
}
if (unlikely((PyDict_SetItem(__pyx_v_new_dict, __pyx_v_k, __pyx_t_6) < 0))) __PYX_ERR(0, 696, __pyx_L64_error)
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
+0697: except (ValueError, TypeError):
__pyx_t_11 = __Pyx_PyErr_ExceptionMatches2(((PyObject *)(((PyTypeObject*)PyExc_ValueError))), ((PyObject *)(((PyTypeObject*)PyExc_TypeError))));
if (__pyx_t_11) {
__Pyx_AddTraceback("datamodel.converters._parse_dict_type", __pyx_clineno, __pyx_lineno, __pyx_filename);
if (__Pyx_GetException(&__pyx_t_6, &__pyx_t_16, &__pyx_t_15) < 0) __PYX_ERR(0, 697, __pyx_L66_except_error)
__Pyx_XGOTREF(__pyx_t_6);
__Pyx_XGOTREF(__pyx_t_16);
__Pyx_XGOTREF(__pyx_t_15);
+0698: new_dict[k] = v
if (unlikely((PyDict_SetItem(__pyx_v_new_dict, __pyx_v_k, __pyx_v_v) < 0))) __PYX_ERR(0, 698, __pyx_L66_except_error) __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_XDECREF(__pyx_t_16); __pyx_t_16 = 0; __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0; goto __pyx_L65_exception_handled; } goto __pyx_L66_except_error;
0699: else:
+0700: new_dict[k] = v
/*else*/ {
if (unlikely((PyDict_SetItem(__pyx_v_new_dict, __pyx_v_k, __pyx_v_v) < 0))) __PYX_ERR(0, 700, __pyx_L1_error)
}
__pyx_L27:;
0701: # Other non-primitive types
0702: else:
+0703: new_dict[k] = _parse_typing(field, val_type, v, encoder, False)
/*else*/ {
__pyx_t_17.__pyx_n = 2;
__pyx_t_17.encoder = __pyx_v_encoder;
__pyx_t_17.as_objects = Py_False;
__pyx_t_15 = __pyx_f_9datamodel_10converters__parse_typing(__pyx_v_field, __pyx_v_val_type, __pyx_v_v, &__pyx_t_17); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 703, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_15);
if (unlikely((PyDict_SetItem(__pyx_v_new_dict, __pyx_v_k, __pyx_t_15) < 0))) __PYX_ERR(0, 703, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
}
__pyx_L23:;
}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
0704:
+0705: return new_dict
{
PyObject *__pyx_temp;
{
__pyx_temp = __pyx_r;
__Pyx_INCREF(__pyx_v_new_dict);
__pyx_r = __pyx_v_new_dict;
}
__Pyx_XDECREF(__pyx_temp);
}
goto __pyx_L0;
0706:
+0707: cdef object _parse_list_type(
static PyObject *__pyx_f_9datamodel_10converters__parse_list_type(PyObject *__pyx_v_field, PyObject *__pyx_v_T, PyObject *__pyx_v_data, PyObject *__pyx_v_encoder, PyObject *__pyx_v_args, struct __pyx_opt_args_9datamodel_10converters__parse_list_type *__pyx_optional_args) {
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_2);
__Pyx_XDECREF(__pyx_t_4);
__Pyx_XDECREF(__pyx_t_5);
__Pyx_XDECREF(__pyx_t_15);
__Pyx_XDECREF(__pyx_t_17);
__Pyx_XDECREF(__pyx_t_18);
__Pyx_XDECREF(__pyx_t_19);
__Pyx_XDECREF(__pyx_t_20);
__Pyx_XDECREF(__pyx_t_23);
__Pyx_XDECREF(__pyx_t_34);
__Pyx_AddTraceback("datamodel.converters._parse_list_type", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = 0;
__pyx_L0:;
__Pyx_XDECREF(__pyx_v_arg_type);
__Pyx_XDECREF(__pyx_v_result);
__Pyx_XDECREF(__pyx_v_key);
__Pyx_XDECREF(__pyx_v_converter);
__Pyx_XDECREF(__pyx_v_inner_type);
__Pyx_XDECREF(__pyx_v_origin);
__Pyx_XDECREF(__pyx_v_type_args);
__Pyx_XDECREF(__pyx_v_d);
__Pyx_XDECREF(__pyx_v_e);
__Pyx_XDECREF(__pyx_v_item);
__Pyx_XDECREF(__pyx_v_data);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_gb_9datamodel_10converters_17_parse_tuple_type_2generator(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */
/* … */
struct __pyx_opt_args_9datamodel_10converters__parse_list_type {
int __pyx_n;
PyObject *_parent;
};
0708: object field,
0709: object T,
0710: object data,
0711: object encoder,
0712: object args,
+0713: object _parent = None
PyObject *__pyx_v__parent = ((PyObject *)Py_None);
PyObject *__pyx_v_arg_type = 0;
PyObject *__pyx_v_result = 0;
PyObject *__pyx_v_key = 0;
PyObject *__pyx_v_converter = 0;
PyObject *__pyx_v_inner_type = 0;
CYTHON_UNUSED int __pyx_v_is_optional;
PyObject *__pyx_v_origin = 0;
PyObject *__pyx_v_type_args = 0;
PyObject *__pyx_v_d = NULL;
PyObject *__pyx_v_e = NULL;
PyObject *__pyx_v_item = NULL;
PyObject *__pyx_r = NULL;
if (__pyx_optional_args) {
if (__pyx_optional_args->__pyx_n > 0) {
__pyx_v__parent = __pyx_optional_args->_parent;
}
}
__Pyx_INCREF(__pyx_v_data);
0714: ):
0715: """
0716: Parse a list of items to a typing type.
0717: """
+0718: cdef object arg_type = args[0]
__pyx_t_1 = __Pyx_GetItemInt(__pyx_v_args, 0, long, 1, __Pyx_PyLong_From_long, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 718, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_arg_type = __pyx_t_1; __pyx_t_1 = 0;
+0719: cdef list result = []
__pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 719, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_result = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0;
+0720: cdef tuple key = (arg_type, field.name)
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_field, __pyx_mstate_global->__pyx_n_u_name_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 720, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 720, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(__pyx_v_arg_type); __Pyx_GIVEREF(__pyx_v_arg_type); if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_arg_type) != (0)) __PYX_ERR(0, 720, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_1); if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_1) != (0)) __PYX_ERR(0, 720, __pyx_L1_error); __pyx_t_1 = 0; __pyx_v_key = ((PyObject*)__pyx_t_2); __pyx_t_2 = 0;
0721: cdef object converter
+0722: cdef object inner_type = field._inner_type or arg_type
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_field, __pyx_mstate_global->__pyx_n_u_inner_type); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 722, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_3 < 0))) __PYX_ERR(0, 722, __pyx_L1_error) if (!__pyx_t_3) { __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } else { __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = __pyx_t_1; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; goto __pyx_L3_bool_binop_done; } __Pyx_INCREF(__pyx_v_arg_type); __pyx_t_2 = __pyx_v_arg_type; __pyx_L3_bool_binop_done:; __pyx_v_inner_type = __pyx_t_2; __pyx_t_2 = 0;
+0723: cdef bint is_optional = False
__pyx_v_is_optional = 0;
+0724: cdef object origin = field._inner_origin or get_origin(T)
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_field, __pyx_mstate_global->__pyx_n_u_inner_origin); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 724, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_3 < 0))) __PYX_ERR(0, 724, __pyx_L1_error) if (!__pyx_t_3) { __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } else { __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = __pyx_t_1; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; goto __pyx_L5_bool_binop_done; } __pyx_t_4 = NULL; __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_get_origin); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 724, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_6 = 1; #if CYTHON_UNPACK_METHODS if (unlikely(PyMethod_Check(__pyx_t_5))) { __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_5); assert(__pyx_t_4); PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_5); __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(__pyx__function); __Pyx_DECREF_SET(__pyx_t_5, __pyx__function); __pyx_t_6 = 0; } #endif { PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_v_T}; __pyx_t_1 = __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_1)) __PYX_ERR(0, 724, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = __pyx_t_1; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_L5_bool_binop_done:; __pyx_v_origin = __pyx_t_2; __pyx_t_2 = 0;
+0725: cdef tuple type_args = field._typing_args or get_args(T)
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_field, __pyx_mstate_global->__pyx_n_u_typing_args); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 725, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_3 < 0))) __PYX_ERR(0, 725, __pyx_L1_error) if (!__pyx_t_3) { __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } else { __pyx_t_5 = __pyx_t_1; __Pyx_INCREF(__pyx_t_5); if (!(likely(PyTuple_CheckExact(__pyx_t_5))||((__pyx_t_5) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_t_5))) __PYX_ERR(0, 725, __pyx_L1_error) __pyx_t_2 = __pyx_t_5; __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; goto __pyx_L7_bool_binop_done; } __pyx_t_5 = NULL; __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_get_args); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 725, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_6 = 1; #if CYTHON_UNPACK_METHODS if (unlikely(PyMethod_Check(__pyx_t_4))) { __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4); assert(__pyx_t_5); PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4); __Pyx_INCREF(__pyx_t_5); __Pyx_INCREF(__pyx__function); __Pyx_DECREF_SET(__pyx_t_4, __pyx__function); __pyx_t_6 = 0; } #endif { PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_v_T}; __pyx_t_1 = __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_1)) __PYX_ERR(0, 725, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } __pyx_t_4 = __pyx_t_1; __Pyx_INCREF(__pyx_t_4); if (!(likely(PyTuple_CheckExact(__pyx_t_4))||((__pyx_t_4) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_t_4))) __PYX_ERR(0, 725, __pyx_L1_error) __pyx_t_2 = __pyx_t_4; __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_L7_bool_binop_done:; __pyx_v_type_args = ((PyObject*)__pyx_t_2); __pyx_t_2 = 0;
0726:
0727: # Debug information if needed
0728: # print(f"_parse_list_type: field={field.name}, T={T}, data={data}, args={args}")
0729:
+0730: if data is None:
__pyx_t_3 = (__pyx_v_data == Py_None);
if (__pyx_t_3) {
/* … */
}
+0731: return [] # short-circuit
__pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 731, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; __pyx_r = __pyx_t_2; } __Pyx_XDECREF(__pyx_temp); } __pyx_t_2 = 0; goto __pyx_L0;
0732:
0733: # Compute the Inner Type:
+0734: if hasattr(field, '_inner_type') and field._inner_type is not None:
__pyx_t_7 = __Pyx_HasAttr(__pyx_v_field, __pyx_mstate_global->__pyx_n_u_inner_type); if (unlikely(__pyx_t_7 == ((int)-1))) __PYX_ERR(0, 734, __pyx_L1_error) if (__pyx_t_7) { } else { __pyx_t_3 = __pyx_t_7; goto __pyx_L11_bool_binop_done; } __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_field, __pyx_mstate_global->__pyx_n_u_inner_type); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 734, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_7 = (__pyx_t_2 != Py_None); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_3 = __pyx_t_7; __pyx_L11_bool_binop_done:; if (__pyx_t_3) { /* … */ goto __pyx_L10; }
+0735: inner_type = field._inner_type
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_field, __pyx_mstate_global->__pyx_n_u_inner_type); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 735, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF_SET(__pyx_v_inner_type, __pyx_t_2); __pyx_t_2 = 0;
0736: # Then try to get it from the type's args
+0737: elif type_args and len(type_args) > 0:
if (__pyx_v_type_args == Py_None) __pyx_t_7 = 0;
else
{
Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_v_type_args);
if (unlikely(((!CYTHON_ASSUME_SAFE_SIZE) && __pyx_temp < 0))) __PYX_ERR(0, 737, __pyx_L1_error)
__pyx_t_7 = (__pyx_temp != 0);
}
if (__pyx_t_7) {
} else {
__pyx_t_3 = __pyx_t_7;
goto __pyx_L13_bool_binop_done;
}
if (unlikely(__pyx_v_type_args == Py_None)) {
PyErr_SetString(PyExc_TypeError, "object of type \047NoneType\047 has no len()");
__PYX_ERR(0, 737, __pyx_L1_error)
}
__pyx_t_8 = __Pyx_PyTuple_GET_SIZE(__pyx_v_type_args); if (unlikely(__pyx_t_8 == ((Py_ssize_t)-1))) __PYX_ERR(0, 737, __pyx_L1_error)
__pyx_t_7 = (__pyx_t_8 > 0);
__pyx_t_3 = __pyx_t_7;
__pyx_L13_bool_binop_done:;
if (__pyx_t_3) {
/* … */
goto __pyx_L10;
}
+0738: inner_type = type_args[0]
if (unlikely(__pyx_v_type_args == Py_None)) {
PyErr_SetString(PyExc_TypeError, "\047NoneType\047 object is not subscriptable");
__PYX_ERR(0, 738, __pyx_L1_error)
}
__pyx_t_2 = __Pyx_GetItemInt_Tuple(__pyx_v_type_args, 0, long, 1, __Pyx_PyLong_From_long, 0, 1, 1, __Pyx_ReferenceSharing_OwnStrongReference); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 738, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF_SET(__pyx_v_inner_type, __pyx_t_2);
__pyx_t_2 = 0;
0739: # Finally try to get it from args parameter
+0740: elif args and isinstance(args, (list, tuple)) and len(args) > 0:
__pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_v_args); if (unlikely((__pyx_t_7 < 0))) __PYX_ERR(0, 740, __pyx_L1_error) if (__pyx_t_7) { } else { __pyx_t_3 = __pyx_t_7; goto __pyx_L15_bool_binop_done; } __pyx_t_9 = PyList_Check(__pyx_v_args); if (!__pyx_t_9) { } else { __pyx_t_7 = __pyx_t_9; goto __pyx_L18_bool_binop_done; } __pyx_t_9 = PyTuple_Check(__pyx_v_args); __pyx_t_7 = __pyx_t_9; __pyx_L18_bool_binop_done:; if (__pyx_t_7) { } else { __pyx_t_3 = __pyx_t_7; goto __pyx_L15_bool_binop_done; } __pyx_t_8 = PyObject_Length(__pyx_v_args); if (unlikely(__pyx_t_8 == ((Py_ssize_t)-1))) __PYX_ERR(0, 740, __pyx_L1_error) __pyx_t_7 = (__pyx_t_8 > 0); __pyx_t_3 = __pyx_t_7; __pyx_L15_bool_binop_done:; if (__pyx_t_3) { /* … */ goto __pyx_L10; }
+0741: if hasattr(args[0], '__origin__') and args[0].__origin__ is list and hasattr(args[0], '__args__'):
__pyx_t_2 = __Pyx_GetItemInt(__pyx_v_args, 0, long, 1, __Pyx_PyLong_From_long, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 741, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_7 = __Pyx_HasAttr(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_origin); if (unlikely(__pyx_t_7 == ((int)-1))) __PYX_ERR(0, 741, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (__pyx_t_7) { } else { __pyx_t_3 = __pyx_t_7; goto __pyx_L21_bool_binop_done; } __pyx_t_2 = __Pyx_GetItemInt(__pyx_v_args, 0, long, 1, __Pyx_PyLong_From_long, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 741, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_origin); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 741, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_7 = (__pyx_t_1 == ((PyObject *)(&PyList_Type))); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_7) { } else { __pyx_t_3 = __pyx_t_7; goto __pyx_L21_bool_binop_done; } __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_args, 0, long, 1, __Pyx_PyLong_From_long, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 741, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_7 = __Pyx_HasAttr(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_args); if (unlikely(__pyx_t_7 == ((int)-1))) __PYX_ERR(0, 741, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_3 = __pyx_t_7; __pyx_L21_bool_binop_done:; if (__pyx_t_3) { /* … */ goto __pyx_L20; }
0742: # This is typing.List[T]
+0743: arg_type = args[0]
__pyx_t_1 = __Pyx_GetItemInt(__pyx_v_args, 0, long, 1, __Pyx_PyLong_From_long, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 743, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_arg_type, __pyx_t_1); __pyx_t_1 = 0;
+0744: inner_type = arg_type.__args__[0] if arg_type.__args__ else Any
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg_type, __pyx_mstate_global->__pyx_n_u_args); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 744, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely((__pyx_t_3 < 0))) __PYX_ERR(0, 744, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (__pyx_t_3) { __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg_type, __pyx_mstate_global->__pyx_n_u_args); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 744, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_4 = __Pyx_GetItemInt(__pyx_t_2, 0, long, 1, __Pyx_PyLong_From_long, 0, 1, 1, __Pyx_ReferenceSharing_OwnStrongReference); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 744, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_1 = __pyx_t_4; __pyx_t_4 = 0; } else { __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_Any); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 744, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_1 = __pyx_t_4; __pyx_t_4 = 0; } __Pyx_DECREF_SET(__pyx_v_inner_type, __pyx_t_1); __pyx_t_1 = 0;
0745: else:
+0746: inner_type = args[0]
/*else*/ {
__pyx_t_1 = __Pyx_GetItemInt(__pyx_v_args, 0, long, 1, __Pyx_PyLong_From_long, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 746, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF_SET(__pyx_v_inner_type, __pyx_t_1);
__pyx_t_1 = 0;
}
__pyx_L20:;
0747: else:
+0748: inner_type = Any
/*else*/ {
__Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_Any); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 748, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF_SET(__pyx_v_inner_type, __pyx_t_1);
__pyx_t_1 = 0;
}
__pyx_L10:;
0749:
+0750: if not isinstance(data, (list, tuple)):
__pyx_t_7 = PyList_Check(__pyx_v_data); if (!__pyx_t_7) { } else { __pyx_t_3 = __pyx_t_7; goto __pyx_L25_bool_binop_done; } __pyx_t_7 = PyTuple_Check(__pyx_v_data); __pyx_t_3 = __pyx_t_7; __pyx_L25_bool_binop_done:; __pyx_t_7 = (!__pyx_t_3); if (__pyx_t_7) { /* … */ }
+0751: data = [data]
__pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 751, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_data); __Pyx_GIVEREF(__pyx_v_data); if (__Pyx_PyList_SET_ITEM(__pyx_t_1, 0, __pyx_v_data) != (0)) __PYX_ERR(0, 751, __pyx_L1_error); __Pyx_DECREF_SET(__pyx_v_data, __pyx_t_1); __pyx_t_1 = 0;
0752:
0753: # Get the converter if available
+0754: key = (inner_type, field.name)
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_field, __pyx_mstate_global->__pyx_n_u_name_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 754, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 754, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_INCREF(__pyx_v_inner_type); __Pyx_GIVEREF(__pyx_v_inner_type); if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_inner_type) != (0)) __PYX_ERR(0, 754, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_1); if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_1) != (0)) __PYX_ERR(0, 754, __pyx_L1_error); __pyx_t_1 = 0; __Pyx_DECREF_SET(__pyx_v_key, ((PyObject*)__pyx_t_4)); __pyx_t_4 = 0;
+0755: converter = TYPE_PARSERS.get(key) or TYPE_PARSERS.get(arg_type)
if (unlikely(__pyx_v_9datamodel_10converters_TYPE_PARSERS == Py_None)) {
PyErr_Format(PyExc_AttributeError, "\047NoneType\047 object has no attribute \047%.30s\047", "get");
__PYX_ERR(0, 755, __pyx_L1_error)
}
__pyx_t_1 = __Pyx_PyDict_GetItemDefault(__pyx_v_9datamodel_10converters_TYPE_PARSERS, __pyx_v_key, Py_None); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 755, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_7 < 0))) __PYX_ERR(0, 755, __pyx_L1_error)
if (!__pyx_t_7) {
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
} else {
__Pyx_INCREF(__pyx_t_1);
__pyx_t_4 = __pyx_t_1;
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
goto __pyx_L27_bool_binop_done;
}
if (unlikely(__pyx_v_9datamodel_10converters_TYPE_PARSERS == Py_None)) {
PyErr_Format(PyExc_AttributeError, "\047NoneType\047 object has no attribute \047%.30s\047", "get");
__PYX_ERR(0, 755, __pyx_L1_error)
}
__pyx_t_1 = __Pyx_PyDict_GetItemDefault(__pyx_v_9datamodel_10converters_TYPE_PARSERS, __pyx_v_arg_type, Py_None); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 755, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_INCREF(__pyx_t_1);
__pyx_t_4 = __pyx_t_1;
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_L27_bool_binop_done:;
__pyx_v_converter = __pyx_t_4;
__pyx_t_4 = 0;
0756:
0757: # If it's a dataclass
+0758: if is_dc(inner_type):
__pyx_t_7 = __pyx_f_9datamodel_10converters_is_dc(__pyx_v_inner_type); if (unlikely(__pyx_t_7 == ((int)-1) && PyErr_Occurred())) __PYX_ERR(0, 758, __pyx_L1_error) if (__pyx_t_7) { /* … */ }
+0759: for d in data:
if (likely(PyList_CheckExact(__pyx_v_data)) || PyTuple_CheckExact(__pyx_v_data)) { __pyx_t_4 = __pyx_v_data; __Pyx_INCREF(__pyx_t_4); __pyx_t_8 = 0; __pyx_t_10 = NULL; } else { __pyx_t_8 = -1; __pyx_t_4 = PyObject_GetIter(__pyx_v_data); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 759, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_10 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_4); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 759, __pyx_L1_error) } for (;;) { if (likely(!__pyx_t_10)) { if (likely(PyList_CheckExact(__pyx_t_4))) { { 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, 759, __pyx_L1_error) #endif if (__pyx_t_8 >= __pyx_temp) break; } __pyx_t_1 = __Pyx_PyList_GET_ITEM_REF(__pyx_t_4, __pyx_t_8, __Pyx_ReferenceSharing_OwnStrongReference); ++__pyx_t_8; } else { { 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, 759, __pyx_L1_error) #endif if (__pyx_t_8 >= __pyx_temp) break; } #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_1 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_4, __pyx_t_8)); #else __pyx_t_1 = __Pyx_PySequence_ITEM(__pyx_t_4, __pyx_t_8); #endif ++__pyx_t_8; } if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 759, __pyx_L1_error) } else { __pyx_t_1 = __pyx_t_10(__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, 759, __pyx_L1_error) PyErr_Clear(); } break; } } __Pyx_GOTREF(__pyx_t_1); __Pyx_XDECREF_SET(__pyx_v_d, __pyx_t_1); __pyx_t_1 = 0; /* … */ } __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+0760: try:
{
/*try:*/ {
/* … */
}
__Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
__Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
__Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
goto __pyx_L39_try_end;
__pyx_L32_error:;
__Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0;
__Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
/* … */
__pyx_L34_except_error:;
__Pyx_XGIVEREF(__pyx_t_11);
__Pyx_XGIVEREF(__pyx_t_12);
__Pyx_XGIVEREF(__pyx_t_13);
__Pyx_ExceptionReset(__pyx_t_11, __pyx_t_12, __pyx_t_13);
goto __pyx_L1_error;
__pyx_L39_try_end:;
}
+0761: if is_dc(d):
__pyx_t_7 = __pyx_f_9datamodel_10converters_is_dc(__pyx_v_d); if (unlikely(__pyx_t_7 == ((int)-1) && PyErr_Occurred())) __PYX_ERR(0, 761, __pyx_L32_error) if (__pyx_t_7) { /* … */ goto __pyx_L40; }
+0762: result.append(d)
__pyx_t_14 = __Pyx_PyList_Append(__pyx_v_result, __pyx_v_d); if (unlikely(__pyx_t_14 == ((int)-1))) __PYX_ERR(0, 762, __pyx_L32_error)
+0763: elif converter:
__pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_v_converter); if (unlikely((__pyx_t_7 < 0))) __PYX_ERR(0, 763, __pyx_L32_error) if (__pyx_t_7) { /* … */ goto __pyx_L40; }
+0764: result.append(
__pyx_t_14 = __Pyx_PyList_Append(__pyx_v_result, __pyx_t_1); if (unlikely(__pyx_t_14 == ((int)-1))) __PYX_ERR(0, 764, __pyx_L32_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+0765: converter(field.name, d, inner_type, _parent)
__pyx_t_2 = NULL;
__Pyx_INCREF(__pyx_v_converter);
__pyx_t_5 = __pyx_v_converter;
__pyx_t_15 = __Pyx_PyObject_GetAttrStr(__pyx_v_field, __pyx_mstate_global->__pyx_n_u_name_2); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 765, __pyx_L32_error)
__Pyx_GOTREF(__pyx_t_15);
__pyx_t_6 = 1;
#if CYTHON_UNPACK_METHODS
if (unlikely(PyMethod_Check(__pyx_t_5))) {
__pyx_t_2 = PyMethod_GET_SELF(__pyx_t_5);
assert(__pyx_t_2);
PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_5);
__Pyx_INCREF(__pyx_t_2);
__Pyx_INCREF(__pyx__function);
__Pyx_DECREF_SET(__pyx_t_5, __pyx__function);
__pyx_t_6 = 0;
}
#endif
{
PyObject *__pyx_callargs[5] = {__pyx_t_2, __pyx_t_15, __pyx_v_d, __pyx_v_inner_type, __pyx_v__parent};
__pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_5, __pyx_callargs+__pyx_t_6, (5-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
__Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 765, __pyx_L32_error)
__Pyx_GOTREF(__pyx_t_1);
}
0766: )
+0767: elif isinstance(d, dict):
__pyx_t_7 = PyDict_Check(__pyx_v_d);
if (__pyx_t_7) {
/* … */
goto __pyx_L40;
}
+0768: result.append(inner_type(**d))
if (unlikely(__pyx_v_d == Py_None)) {
PyErr_SetString(PyExc_TypeError, "argument after ** must be a mapping, not NoneType");
__PYX_ERR(0, 768, __pyx_L32_error)
}
if (likely(PyDict_CheckExact(__pyx_v_d))) {
__pyx_t_1 = PyDict_Copy(__pyx_v_d); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 768, __pyx_L32_error)
__Pyx_GOTREF(__pyx_t_1);
} else {
__pyx_t_1 = __Pyx_PyObject_CallOneArg((PyObject*)&PyDict_Type, __pyx_v_d); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 768, __pyx_L32_error)
__Pyx_GOTREF(__pyx_t_1);
}
__pyx_t_5 = __Pyx_PyObject_Call(__pyx_v_inner_type, __pyx_mstate_global->__pyx_empty_tuple, __pyx_t_1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 768, __pyx_L32_error)
__Pyx_GOTREF(__pyx_t_5);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_t_14 = __Pyx_PyList_Append(__pyx_v_result, __pyx_t_5); if (unlikely(__pyx_t_14 == ((int)-1))) __PYX_ERR(0, 768, __pyx_L32_error)
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+0769: elif isinstance(d, (list, tuple)):
__pyx_t_3 = PyList_Check(__pyx_v_d); if (!__pyx_t_3) { } else { __pyx_t_7 = __pyx_t_3; goto __pyx_L41_bool_binop_done; } __pyx_t_3 = PyTuple_Check(__pyx_v_d); __pyx_t_7 = __pyx_t_3; __pyx_L41_bool_binop_done:; if (__pyx_t_7) { /* … */ goto __pyx_L40; }
+0770: result.append(inner_type(*d))
__pyx_t_5 = __Pyx_PySequence_Tuple(__pyx_v_d); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 770, __pyx_L32_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_1 = __Pyx_PyObject_Call(__pyx_v_inner_type, __pyx_t_5, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 770, __pyx_L32_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_14 = __Pyx_PyList_Append(__pyx_v_result, __pyx_t_1); if (unlikely(__pyx_t_14 == ((int)-1))) __PYX_ERR(0, 770, __pyx_L32_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
0771: else:
+0772: result.append(inner_type(d))
/*else*/ {
__pyx_t_5 = NULL;
__Pyx_INCREF(__pyx_v_inner_type);
__pyx_t_15 = __pyx_v_inner_type;
__pyx_t_6 = 1;
#if CYTHON_UNPACK_METHODS
if (likely(PyMethod_Check(__pyx_t_15))) {
__pyx_t_5 = PyMethod_GET_SELF(__pyx_t_15);
assert(__pyx_t_5);
PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_15);
__Pyx_INCREF(__pyx_t_5);
__Pyx_INCREF(__pyx__function);
__Pyx_DECREF_SET(__pyx_t_15, __pyx__function);
__pyx_t_6 = 0;
}
#endif
{
PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_v_d};
__pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_15, __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_15); __pyx_t_15 = 0;
if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 772, __pyx_L32_error)
__Pyx_GOTREF(__pyx_t_1);
}
__pyx_t_14 = __Pyx_PyList_Append(__pyx_v_result, __pyx_t_1); if (unlikely(__pyx_t_14 == ((int)-1))) __PYX_ERR(0, 772, __pyx_L32_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
}
__pyx_L40:;
+0773: except Exception as e:
__pyx_t_16 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(((PyTypeObject*)PyExc_Exception)))); if (__pyx_t_16) { __Pyx_AddTraceback("datamodel.converters._parse_list_type", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_1, &__pyx_t_15, &__pyx_t_5) < 0) __PYX_ERR(0, 773, __pyx_L34_except_error) __Pyx_XGOTREF(__pyx_t_1); __Pyx_XGOTREF(__pyx_t_15); __Pyx_XGOTREF(__pyx_t_5); __Pyx_INCREF(__pyx_t_15); __pyx_v_e = __pyx_t_15; /*try:*/ { /* … */ /*finally:*/ { __pyx_L48_error:; /*exception exit:*/{ __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign __pyx_t_26 = 0; __pyx_t_27 = 0; __pyx_t_28 = 0; __pyx_t_29 = 0; __pyx_t_30 = 0; __pyx_t_31 = 0; __Pyx_XDECREF(__pyx_t_17); __pyx_t_17 = 0; __Pyx_XDECREF(__pyx_t_18); __pyx_t_18 = 0; __Pyx_XDECREF(__pyx_t_19); __pyx_t_19 = 0; __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_XDECREF(__pyx_t_20); __pyx_t_20 = 0; __Pyx_XDECREF(__pyx_t_23); __pyx_t_23 = 0; __Pyx_ExceptionSwap(&__pyx_t_29, &__pyx_t_30, &__pyx_t_31); if ( unlikely(__Pyx_GetException(&__pyx_t_26, &__pyx_t_27, &__pyx_t_28) < 0)) __Pyx_ErrFetch(&__pyx_t_26, &__pyx_t_27, &__pyx_t_28); __Pyx_XGOTREF(__pyx_t_26); __Pyx_XGOTREF(__pyx_t_27); __Pyx_XGOTREF(__pyx_t_28); __Pyx_XGOTREF(__pyx_t_29); __Pyx_XGOTREF(__pyx_t_30); __Pyx_XGOTREF(__pyx_t_31); __pyx_t_16 = __pyx_lineno; __pyx_t_24 = __pyx_clineno; __pyx_t_25 = __pyx_filename; { __Pyx_DECREF(__pyx_v_e); __pyx_v_e = 0; } __Pyx_XGIVEREF(__pyx_t_29); __Pyx_XGIVEREF(__pyx_t_30); __Pyx_XGIVEREF(__pyx_t_31); __Pyx_ExceptionReset(__pyx_t_29, __pyx_t_30, __pyx_t_31); __Pyx_XGIVEREF(__pyx_t_26); __Pyx_XGIVEREF(__pyx_t_27); __Pyx_XGIVEREF(__pyx_t_28); __Pyx_ErrRestore(__pyx_t_26, __pyx_t_27, __pyx_t_28); __pyx_t_26 = 0; __pyx_t_27 = 0; __pyx_t_28 = 0; __pyx_t_29 = 0; __pyx_t_30 = 0; __pyx_t_31 = 0; __pyx_lineno = __pyx_t_16; __pyx_clineno = __pyx_t_24; __pyx_filename = __pyx_t_25; goto __pyx_L34_except_error; } } } goto __pyx_L34_except_error;
0774: # Propagate the error with more context
+0775: raise ValueError(
__pyx_t_17 = NULL;
+0776: f"Error creating {inner_type.__name__} from {d}: {e}"
__pyx_t_18 = __Pyx_PyObject_GetAttrStr(__pyx_v_inner_type, __pyx_mstate_global->__pyx_n_u_name); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 776, __pyx_L48_error) __Pyx_GOTREF(__pyx_t_18); __pyx_t_19 = __Pyx_PyObject_FormatSimple(__pyx_t_18, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 776, __pyx_L48_error) __Pyx_GOTREF(__pyx_t_19); __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; __pyx_t_18 = __Pyx_PyObject_FormatSimple(__pyx_v_d, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 776, __pyx_L48_error) __Pyx_GOTREF(__pyx_t_18); __pyx_t_20 = __Pyx_PyObject_FormatSimple(__pyx_v_e, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 776, __pyx_L48_error) __Pyx_GOTREF(__pyx_t_20); __pyx_t_21[0] = __pyx_mstate_global->__pyx_kp_u_Error_creating; __pyx_t_21[1] = __pyx_t_19; __pyx_t_21[2] = __pyx_mstate_global->__pyx_kp_u_from; __pyx_t_21[3] = __pyx_t_18; __pyx_t_21[4] = __pyx_mstate_global->__pyx_kp_u__5; __pyx_t_21[5] = __pyx_t_20; __pyx_t_22 = 23; #if __Pyx_PyUnicode_Join_CAN_USE_KIND_AND_LENGTH __pyx_t_22 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_21[1]) + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_21[3]) + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_21[5]); #endif __pyx_t_16 = 0; #if __Pyx_PyUnicode_Join_CAN_USE_KIND_AND_LENGTH __pyx_t_16 |= __Pyx_PyUnicode_KIND_04(__pyx_t_21[1]) | __Pyx_PyUnicode_KIND_04(__pyx_t_21[3]) | __Pyx_PyUnicode_KIND_04(__pyx_t_21[5]); #endif __pyx_t_23 = __Pyx_PyUnicode_Join(__pyx_t_21, 6, __pyx_t_22, __pyx_t_16); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 776, __pyx_L48_error) __Pyx_GOTREF(__pyx_t_23); __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0; __pyx_t_6 = 1; { PyObject *__pyx_callargs[2] = {__pyx_t_17, __pyx_t_23}; __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)(((PyTypeObject*)PyExc_ValueError)), __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_17); __pyx_t_17 = 0; __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 775, __pyx_L48_error) __Pyx_GOTREF(__pyx_t_2); }
+0777: ) from e
__Pyx_Raise(__pyx_t_2, 0, 0, __pyx_v_e); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __PYX_ERR(0, 775, __pyx_L48_error) }
+0778: return result
{
PyObject *__pyx_temp;
{
__pyx_temp = __pyx_r;
__Pyx_INCREF(__pyx_v_result);
__pyx_r = __pyx_v_result;
}
__Pyx_XDECREF(__pyx_temp);
}
goto __pyx_L0;
+0779: elif is_typing(inner_type):
__pyx_t_7 = __pyx_f_9datamodel_10converters_is_typing(__pyx_v_inner_type); if (unlikely(__pyx_t_7 == ((int)-1) && PyErr_Occurred())) __PYX_ERR(0, 779, __pyx_L1_error) if (__pyx_t_7) { /* … */ goto __pyx_L29; }
+0780: if isinstance(data, list):
__pyx_t_7 = PyList_Check(__pyx_v_data);
if (__pyx_t_7) {
/* … */
}
+0781: result = _parse_list_typing(
__pyx_t_32.__pyx_n = 1;
__pyx_t_32.as_objects = Py_None;
__pyx_t_4 = __pyx_f_9datamodel_10converters__parse_list_typing(__pyx_v_field, __pyx_v_type_args, __pyx_v_data, __pyx_v_encoder, __pyx_v_origin, __pyx_v_args, &__pyx_t_32); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 781, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
if (!(likely(PyList_CheckExact(__pyx_t_4))||((__pyx_t_4) == Py_None) || __Pyx_RaiseUnexpectedTypeError("list", __pyx_t_4))) __PYX_ERR(0, 781, __pyx_L1_error)
__Pyx_DECREF_SET(__pyx_v_result, ((PyObject*)__pyx_t_4));
__pyx_t_4 = 0;
0782: field,
0783: type_args,
0784: data,
0785: encoder,
0786: origin,
0787: args,
0788: None
0789: )
+0790: elif converter:
__pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_v_converter); if (unlikely((__pyx_t_7 < 0))) __PYX_ERR(0, 790, __pyx_L1_error) if (__pyx_t_7) { /* … */ goto __pyx_L29; }
+0791: for item in data:
if (likely(PyList_CheckExact(__pyx_v_data)) || PyTuple_CheckExact(__pyx_v_data)) { __pyx_t_4 = __pyx_v_data; __Pyx_INCREF(__pyx_t_4); __pyx_t_8 = 0; __pyx_t_10 = NULL; } else { __pyx_t_8 = -1; __pyx_t_4 = PyObject_GetIter(__pyx_v_data); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 791, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_10 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_4); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 791, __pyx_L1_error) } for (;;) { if (likely(!__pyx_t_10)) { if (likely(PyList_CheckExact(__pyx_t_4))) { { 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, 791, __pyx_L1_error) #endif if (__pyx_t_8 >= __pyx_temp) break; } __pyx_t_5 = __Pyx_PyList_GET_ITEM_REF(__pyx_t_4, __pyx_t_8, __Pyx_ReferenceSharing_OwnStrongReference); ++__pyx_t_8; } else { { 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, 791, __pyx_L1_error) #endif if (__pyx_t_8 >= __pyx_temp) break; } #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_5 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_4, __pyx_t_8)); #else __pyx_t_5 = __Pyx_PySequence_ITEM(__pyx_t_4, __pyx_t_8); #endif ++__pyx_t_8; } if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 791, __pyx_L1_error) } else { __pyx_t_5 = __pyx_t_10(__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, 791, __pyx_L1_error) PyErr_Clear(); } break; } } __Pyx_GOTREF(__pyx_t_5); __Pyx_XDECREF_SET(__pyx_v_item, __pyx_t_5); __pyx_t_5 = 0; /* … */ } __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+0792: result.append(
__pyx_t_14 = __Pyx_PyList_Append(__pyx_v_result, __pyx_t_5); if (unlikely(__pyx_t_14 == ((int)-1))) __PYX_ERR(0, 792, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+0793: converter(field.name, item, inner_type, _parent)
__pyx_t_15 = NULL;
__Pyx_INCREF(__pyx_v_converter);
__pyx_t_1 = __pyx_v_converter;
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_field, __pyx_mstate_global->__pyx_n_u_name_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 793, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_6 = 1;
#if CYTHON_UNPACK_METHODS
if (unlikely(PyMethod_Check(__pyx_t_1))) {
__pyx_t_15 = PyMethod_GET_SELF(__pyx_t_1);
assert(__pyx_t_15);
PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_1);
__Pyx_INCREF(__pyx_t_15);
__Pyx_INCREF(__pyx__function);
__Pyx_DECREF_SET(__pyx_t_1, __pyx__function);
__pyx_t_6 = 0;
}
#endif
{
PyObject *__pyx_callargs[5] = {__pyx_t_15, __pyx_t_2, __pyx_v_item, __pyx_v_inner_type, __pyx_v__parent};
__pyx_t_5 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_1, __pyx_callargs+__pyx_t_6, (5-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
__Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0;
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 793, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
}
0794: )
+0795: elif is_primitive(inner_type):
__pyx_t_5 = NULL; __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_is_primitive); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 795, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_6 = 1; #if CYTHON_UNPACK_METHODS if (unlikely(PyMethod_Check(__pyx_t_1))) { __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_1); assert(__pyx_t_5); PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_1); __Pyx_INCREF(__pyx_t_5); __Pyx_INCREF(__pyx__function); __Pyx_DECREF_SET(__pyx_t_1, __pyx__function); __pyx_t_6 = 0; } #endif { PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_v_inner_type}; __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_1, __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_1); __pyx_t_1 = 0; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 795, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); } __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely((__pyx_t_7 < 0))) __PYX_ERR(0, 795, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (__pyx_t_7) { /* … */ goto __pyx_L29; }
+0796: try:
{
/*try:*/ {
/* … */
}
__Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
__Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
__Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
goto __pyx_L64_try_end;
__pyx_L59_error:;
__Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0;
__Pyx_XDECREF(__pyx_t_17); __pyx_t_17 = 0;
__Pyx_XDECREF(__pyx_t_18); __pyx_t_18 = 0;
__Pyx_XDECREF(__pyx_t_19); __pyx_t_19 = 0;
__Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_XDECREF(__pyx_t_20); __pyx_t_20 = 0;
__Pyx_XDECREF(__pyx_t_23); __pyx_t_23 = 0;
__Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
__Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
/* … */
__pyx_L61_except_error:;
__Pyx_XGIVEREF(__pyx_t_13);
__Pyx_XGIVEREF(__pyx_t_12);
__Pyx_XGIVEREF(__pyx_t_11);
__Pyx_ExceptionReset(__pyx_t_13, __pyx_t_12, __pyx_t_11);
goto __pyx_L1_error;
__pyx_L60_exception_handled:;
__Pyx_XGIVEREF(__pyx_t_13);
__Pyx_XGIVEREF(__pyx_t_12);
__Pyx_XGIVEREF(__pyx_t_11);
__Pyx_ExceptionReset(__pyx_t_13, __pyx_t_12, __pyx_t_11);
__pyx_L64_try_end:;
}
+0797: for item in data:
if (likely(PyList_CheckExact(__pyx_v_data)) || PyTuple_CheckExact(__pyx_v_data)) { __pyx_t_4 = __pyx_v_data; __Pyx_INCREF(__pyx_t_4); __pyx_t_8 = 0; __pyx_t_10 = NULL; } else { __pyx_t_8 = -1; __pyx_t_4 = PyObject_GetIter(__pyx_v_data); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 797, __pyx_L59_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_10 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_4); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 797, __pyx_L59_error) } for (;;) { if (likely(!__pyx_t_10)) { if (likely(PyList_CheckExact(__pyx_t_4))) { { 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, 797, __pyx_L59_error) #endif if (__pyx_t_8 >= __pyx_temp) break; } __pyx_t_1 = __Pyx_PyList_GET_ITEM_REF(__pyx_t_4, __pyx_t_8, __Pyx_ReferenceSharing_OwnStrongReference); ++__pyx_t_8; } else { { 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, 797, __pyx_L59_error) #endif if (__pyx_t_8 >= __pyx_temp) break; } #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_1 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_4, __pyx_t_8)); #else __pyx_t_1 = __Pyx_PySequence_ITEM(__pyx_t_4, __pyx_t_8); #endif ++__pyx_t_8; } if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 797, __pyx_L59_error) } else { __pyx_t_1 = __pyx_t_10(__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, 797, __pyx_L59_error) PyErr_Clear(); } break; } } __Pyx_GOTREF(__pyx_t_1); __Pyx_XDECREF_SET(__pyx_v_item, __pyx_t_1); __pyx_t_1 = 0; /* … */ } __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+0798: if encoder:
__pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_v_encoder); if (unlikely((__pyx_t_7 < 0))) __PYX_ERR(0, 798, __pyx_L59_error) if (__pyx_t_7) { /* … */ }
+0799: result.append(encoder(item))
__pyx_t_5 = NULL;
__Pyx_INCREF(__pyx_v_encoder);
__pyx_t_2 = __pyx_v_encoder;
__pyx_t_6 = 1;
#if CYTHON_UNPACK_METHODS
if (unlikely(PyMethod_Check(__pyx_t_2))) {
__pyx_t_5 = PyMethod_GET_SELF(__pyx_t_2);
assert(__pyx_t_5);
PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_2);
__Pyx_INCREF(__pyx_t_5);
__Pyx_INCREF(__pyx__function);
__Pyx_DECREF_SET(__pyx_t_2, __pyx__function);
__pyx_t_6 = 0;
}
#endif
{
PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_v_item};
__pyx_t_1 = __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_5); __pyx_t_5 = 0;
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 799, __pyx_L59_error)
__Pyx_GOTREF(__pyx_t_1);
}
__pyx_t_14 = __Pyx_PyList_Append(__pyx_v_result, __pyx_t_1); if (unlikely(__pyx_t_14 == ((int)-1))) __PYX_ERR(0, 799, __pyx_L59_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+0800: if inner_type == int and isinstance(item, str):
__pyx_t_3 = __Pyx_PyObject_RichCompareBool(__pyx_v_inner_type, ((PyObject *)(&PyLong_Type)), Py_EQ); if (unlikely((__pyx_t_3 < 0))) __PYX_ERR(0, 800, __pyx_L59_error) if (__pyx_t_3) { } else { __pyx_t_7 = __pyx_t_3; goto __pyx_L69_bool_binop_done; } __pyx_t_3 = PyUnicode_Check(__pyx_v_item); __pyx_t_7 = __pyx_t_3; __pyx_L69_bool_binop_done:; if (__pyx_t_7) { /* … */ goto __pyx_L68; }
+0801: result.append(int(item))
__pyx_t_1 = __Pyx_PyNumber_Int(__pyx_v_item); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 801, __pyx_L59_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_14 = __Pyx_PyList_Append(__pyx_v_result, __pyx_t_1); if (unlikely(__pyx_t_14 == ((int)-1))) __PYX_ERR(0, 801, __pyx_L59_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+0802: elif inner_type == float and isinstance(item, str):
__pyx_t_3 = __Pyx_PyObject_RichCompareBool(__pyx_v_inner_type, ((PyObject *)(&PyFloat_Type)), Py_EQ); if (unlikely((__pyx_t_3 < 0))) __PYX_ERR(0, 802, __pyx_L59_error) if (__pyx_t_3) { } else { __pyx_t_7 = __pyx_t_3; goto __pyx_L71_bool_binop_done; } __pyx_t_3 = PyUnicode_Check(__pyx_v_item); __pyx_t_7 = __pyx_t_3; __pyx_L71_bool_binop_done:; if (__pyx_t_7) { /* … */ goto __pyx_L68; }
+0803: result.append(float(item))
__pyx_t_1 = __Pyx_PyNumber_Float(__pyx_v_item); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 803, __pyx_L59_error) __Pyx_GOTREF(__pyx_t_1); if (__Pyx_PyFloat_FromNumber(&__pyx_t_1, NULL, 0) < (0)) __PYX_ERR(0, 803, __pyx_L59_error) __pyx_t_14 = __Pyx_PyList_Append(__pyx_v_result, __pyx_t_1); if (unlikely(__pyx_t_14 == ((int)-1))) __PYX_ERR(0, 803, __pyx_L59_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
0804: else:
+0805: if inner_type in encoders:
/*else*/ {
__Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_encoders); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 805, __pyx_L59_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_7 = (__Pyx_PySequence_ContainsTF(__pyx_v_inner_type, __pyx_t_1, Py_EQ)); if (unlikely((__pyx_t_7 < 0))) __PYX_ERR(0, 805, __pyx_L59_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
if (__pyx_t_7) {
/* … */
goto __pyx_L73;
}
+0806: result.append(encoders[inner_type](item))
__pyx_t_2 = NULL;
__Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_encoders); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 806, __pyx_L59_error)
__Pyx_GOTREF(__pyx_t_5);
__pyx_t_15 = __Pyx_PyObject_GetItem(__pyx_t_5, __pyx_v_inner_type); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 806, __pyx_L59_error)
__Pyx_GOTREF(__pyx_t_15);
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
__pyx_t_6 = 1;
#if CYTHON_UNPACK_METHODS
if (unlikely(PyMethod_Check(__pyx_t_15))) {
__pyx_t_2 = PyMethod_GET_SELF(__pyx_t_15);
assert(__pyx_t_2);
PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_15);
__Pyx_INCREF(__pyx_t_2);
__Pyx_INCREF(__pyx__function);
__Pyx_DECREF_SET(__pyx_t_15, __pyx__function);
__pyx_t_6 = 0;
}
#endif
{
PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_v_item};
__pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_15, __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
__Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 806, __pyx_L59_error)
__Pyx_GOTREF(__pyx_t_1);
}
__pyx_t_14 = __Pyx_PyList_Append(__pyx_v_result, __pyx_t_1); if (unlikely(__pyx_t_14 == ((int)-1))) __PYX_ERR(0, 806, __pyx_L59_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
0807: else:
+0808: result.append(
/*else*/ {
/* … */
__pyx_t_14 = __Pyx_PyList_Append(__pyx_v_result, __pyx_t_1); if (unlikely(__pyx_t_14 == ((int)-1))) __PYX_ERR(0, 808, __pyx_L59_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
}
__pyx_L73:;
}
__pyx_L68:;
+0809: _parse_builtin_type(field, inner_type, item, None)
__pyx_t_1 = __pyx_f_9datamodel_10converters__parse_builtin_type(__pyx_v_field, __pyx_v_inner_type, __pyx_v_item, Py_None); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 809, __pyx_L59_error) __Pyx_GOTREF(__pyx_t_1);
0810: )
+0811: except Exception as e:
__pyx_t_24 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(((PyTypeObject*)PyExc_Exception)))); if (__pyx_t_24) { __Pyx_AddTraceback("datamodel.converters._parse_list_type", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_4, &__pyx_t_1, &__pyx_t_15) < 0) __PYX_ERR(0, 811, __pyx_L61_except_error) __Pyx_XGOTREF(__pyx_t_4); __Pyx_XGOTREF(__pyx_t_1); __Pyx_XGOTREF(__pyx_t_15); __Pyx_INCREF(__pyx_t_1); __pyx_v_e = __pyx_t_1; /*try:*/ { /* … */ /*finally:*/ { /*normal exit:*/{ __Pyx_DECREF(__pyx_v_e); __pyx_v_e = 0; goto __pyx_L81; } __pyx_L80_error:; /*exception exit:*/{ __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign __pyx_t_29 = 0; __pyx_t_30 = 0; __pyx_t_31 = 0; __pyx_t_37 = 0; __pyx_t_36 = 0; __pyx_t_35 = 0; __Pyx_XDECREF(__pyx_t_17); __pyx_t_17 = 0; __Pyx_XDECREF(__pyx_t_18); __pyx_t_18 = 0; __Pyx_XDECREF(__pyx_t_19); __pyx_t_19 = 0; __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_XDECREF(__pyx_t_20); __pyx_t_20 = 0; __Pyx_XDECREF(__pyx_t_23); __pyx_t_23 = 0; __Pyx_XDECREF(__pyx_t_34); __pyx_t_34 = 0; __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_ExceptionSwap(&__pyx_t_37, &__pyx_t_36, &__pyx_t_35); if ( unlikely(__Pyx_GetException(&__pyx_t_29, &__pyx_t_30, &__pyx_t_31) < 0)) __Pyx_ErrFetch(&__pyx_t_29, &__pyx_t_30, &__pyx_t_31); __Pyx_XGOTREF(__pyx_t_29); __Pyx_XGOTREF(__pyx_t_30); __Pyx_XGOTREF(__pyx_t_31); __Pyx_XGOTREF(__pyx_t_37); __Pyx_XGOTREF(__pyx_t_36); __Pyx_XGOTREF(__pyx_t_35); __pyx_t_16 = __pyx_lineno; __pyx_t_24 = __pyx_clineno; __pyx_t_25 = __pyx_filename; { __Pyx_XDECREF(__pyx_v_e); __pyx_v_e = 0; } __Pyx_XGIVEREF(__pyx_t_37); __Pyx_XGIVEREF(__pyx_t_36); __Pyx_XGIVEREF(__pyx_t_35); __Pyx_ExceptionReset(__pyx_t_37, __pyx_t_36, __pyx_t_35); __Pyx_XGIVEREF(__pyx_t_29); __Pyx_XGIVEREF(__pyx_t_30); __Pyx_XGIVEREF(__pyx_t_31); __Pyx_ErrRestore(__pyx_t_29, __pyx_t_30, __pyx_t_31); __pyx_t_29 = 0; __pyx_t_30 = 0; __pyx_t_31 = 0; __pyx_t_37 = 0; __pyx_t_36 = 0; __pyx_t_35 = 0; __pyx_lineno = __pyx_t_16; __pyx_clineno = __pyx_t_24; __pyx_filename = __pyx_t_25; goto __pyx_L61_except_error; } __pyx_L81:; } __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0; goto __pyx_L60_exception_handled; } goto __pyx_L61_except_error;
+0812: try:
{
/*try:*/ {
/* … */
}
__Pyx_XDECREF(__pyx_t_31); __pyx_t_31 = 0;
__Pyx_XDECREF(__pyx_t_30); __pyx_t_30 = 0;
__Pyx_XDECREF(__pyx_t_29); __pyx_t_29 = 0;
goto __pyx_L89_try_end;
__pyx_L82_error:;
__Pyx_XDECREF(__pyx_t_17); __pyx_t_17 = 0;
__Pyx_XDECREF(__pyx_t_18); __pyx_t_18 = 0;
__Pyx_XDECREF(__pyx_t_19); __pyx_t_19 = 0;
__Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_XDECREF(__pyx_t_20); __pyx_t_20 = 0;
__Pyx_XDECREF(__pyx_t_23); __pyx_t_23 = 0;
__Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
/* … */
__pyx_L84_except_error:;
__Pyx_XGIVEREF(__pyx_t_31);
__Pyx_XGIVEREF(__pyx_t_30);
__Pyx_XGIVEREF(__pyx_t_29);
__Pyx_ExceptionReset(__pyx_t_31, __pyx_t_30, __pyx_t_29);
goto __pyx_L80_error;
__pyx_L89_try_end:;
}
}
+0813: result = rc.to_list(inner_type, data)
__pyx_t_5 = NULL;
__Pyx_GetModuleGlobalName(__pyx_t_23, __pyx_mstate_global->__pyx_n_u_rc); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 813, __pyx_L82_error)
__Pyx_GOTREF(__pyx_t_23);
__pyx_t_17 = __Pyx_PyObject_GetAttrStr(__pyx_t_23, __pyx_mstate_global->__pyx_n_u_to_list); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 813, __pyx_L82_error)
__Pyx_GOTREF(__pyx_t_17);
__Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
__pyx_t_6 = 1;
#if CYTHON_UNPACK_METHODS
if (unlikely(PyMethod_Check(__pyx_t_17))) {
__pyx_t_5 = PyMethod_GET_SELF(__pyx_t_17);
assert(__pyx_t_5);
PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_17);
__Pyx_INCREF(__pyx_t_5);
__Pyx_INCREF(__pyx__function);
__Pyx_DECREF_SET(__pyx_t_17, __pyx__function);
__pyx_t_6 = 0;
}
#endif
{
PyObject *__pyx_callargs[3] = {__pyx_t_5, __pyx_v_inner_type, __pyx_v_data};
__pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_17, __pyx_callargs+__pyx_t_6, (3-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
__Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
__Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 813, __pyx_L82_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, 813, __pyx_L82_error)
__Pyx_DECREF_SET(__pyx_v_result, ((PyObject*)__pyx_t_2));
__pyx_t_2 = 0;
0814: # return data
+0815: except Exception as e:
__pyx_t_24 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(((PyTypeObject*)PyExc_Exception)))); if (__pyx_t_24) { __Pyx_AddTraceback("datamodel.converters._parse_list_type", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_2, &__pyx_t_17, &__pyx_t_5) < 0) __PYX_ERR(0, 815, __pyx_L84_except_error) __Pyx_XGOTREF(__pyx_t_2); __Pyx_XGOTREF(__pyx_t_17); __Pyx_XGOTREF(__pyx_t_5); __Pyx_INCREF(__pyx_t_17); __Pyx_DECREF_SET(__pyx_v_e, __pyx_t_17); /*try:*/ { /* … */ /*finally:*/ { __pyx_L95_error:; /*exception exit:*/{ __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign __pyx_t_28 = 0; __pyx_t_27 = 0; __pyx_t_26 = 0; __pyx_t_35 = 0; __pyx_t_36 = 0; __pyx_t_37 = 0; __Pyx_XDECREF(__pyx_t_18); __pyx_t_18 = 0; __Pyx_XDECREF(__pyx_t_19); __pyx_t_19 = 0; __Pyx_XDECREF(__pyx_t_20); __pyx_t_20 = 0; __Pyx_XDECREF(__pyx_t_23); __pyx_t_23 = 0; __Pyx_XDECREF(__pyx_t_34); __pyx_t_34 = 0; __Pyx_ExceptionSwap(&__pyx_t_35, &__pyx_t_36, &__pyx_t_37); if ( unlikely(__Pyx_GetException(&__pyx_t_28, &__pyx_t_27, &__pyx_t_26) < 0)) __Pyx_ErrFetch(&__pyx_t_28, &__pyx_t_27, &__pyx_t_26); __Pyx_XGOTREF(__pyx_t_28); __Pyx_XGOTREF(__pyx_t_27); __Pyx_XGOTREF(__pyx_t_26); __Pyx_XGOTREF(__pyx_t_35); __Pyx_XGOTREF(__pyx_t_36); __Pyx_XGOTREF(__pyx_t_37); __pyx_t_24 = __pyx_lineno; __pyx_t_16 = __pyx_clineno; __pyx_t_25 = __pyx_filename; { __Pyx_DECREF(__pyx_v_e); __pyx_v_e = 0; } __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_28); __Pyx_XGIVEREF(__pyx_t_27); __Pyx_XGIVEREF(__pyx_t_26); __Pyx_ErrRestore(__pyx_t_28, __pyx_t_27, __pyx_t_26); __pyx_t_28 = 0; __pyx_t_27 = 0; __pyx_t_26 = 0; __pyx_t_35 = 0; __pyx_t_36 = 0; __pyx_t_37 = 0; __pyx_lineno = __pyx_t_24; __pyx_clineno = __pyx_t_16; __pyx_filename = __pyx_t_25; goto __pyx_L84_except_error; } } } goto __pyx_L84_except_error;
+0816: raise ValueError(
__pyx_t_20 = NULL;
+0817: f"Error parsing list of {inner_type}: {e}"
__pyx_t_18 = __Pyx_PyObject_FormatSimple(__pyx_v_inner_type, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 817, __pyx_L95_error) __Pyx_GOTREF(__pyx_t_18); __pyx_t_19 = __Pyx_PyObject_FormatSimple(__pyx_v_e, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 817, __pyx_L95_error) __Pyx_GOTREF(__pyx_t_19); __pyx_t_33[0] = __pyx_mstate_global->__pyx_kp_u_Error_parsing_list_of; __pyx_t_33[1] = __pyx_t_18; __pyx_t_33[2] = __pyx_mstate_global->__pyx_kp_u__5; __pyx_t_33[3] = __pyx_t_19; __pyx_t_8 = 24; #if __Pyx_PyUnicode_Join_CAN_USE_KIND_AND_LENGTH __pyx_t_8 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_33[1]) + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_33[3]); #endif __pyx_t_24 = 0; #if __Pyx_PyUnicode_Join_CAN_USE_KIND_AND_LENGTH __pyx_t_24 |= __Pyx_PyUnicode_KIND_04(__pyx_t_33[1]) | __Pyx_PyUnicode_KIND_04(__pyx_t_33[3]); #endif __pyx_t_34 = __Pyx_PyUnicode_Join(__pyx_t_33, 4, __pyx_t_8, __pyx_t_24); if (unlikely(!__pyx_t_34)) __PYX_ERR(0, 817, __pyx_L95_error) __Pyx_GOTREF(__pyx_t_34); __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; __pyx_t_6 = 1; { PyObject *__pyx_callargs[2] = {__pyx_t_20, __pyx_t_34}; __pyx_t_23 = __Pyx_PyObject_FastCall((PyObject*)(((PyTypeObject*)PyExc_ValueError)), __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_20); __pyx_t_20 = 0; __Pyx_DECREF(__pyx_t_34); __pyx_t_34 = 0; if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 816, __pyx_L95_error) __Pyx_GOTREF(__pyx_t_23); }
+0818: ) from e
__Pyx_Raise(__pyx_t_23, 0, 0, __pyx_v_e); __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0; __PYX_ERR(0, 816, __pyx_L95_error) }
+0819: elif inner_type is Any:
__Pyx_GetModuleGlobalName(__pyx_t_15, __pyx_mstate_global->__pyx_n_u_Any); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 819, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __pyx_t_7 = (__pyx_v_inner_type == __pyx_t_15); __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; if (__pyx_t_7) { /* … */ }
0820: # If no type is specified, return the list as-is
+0821: return data
{
PyObject *__pyx_temp;
{
__pyx_temp = __pyx_r;
__Pyx_INCREF(__pyx_v_data);
__pyx_r = __pyx_v_data;
}
__Pyx_XDECREF(__pyx_temp);
}
goto __pyx_L0;
0822: else:
0823: # Default: process each item with _parse_typing
+0824: for item in data:
/*else*/ {
if (likely(PyList_CheckExact(__pyx_v_data)) || PyTuple_CheckExact(__pyx_v_data)) {
__pyx_t_15 = __pyx_v_data; __Pyx_INCREF(__pyx_t_15);
__pyx_t_8 = 0;
__pyx_t_10 = NULL;
} else {
__pyx_t_8 = -1; __pyx_t_15 = PyObject_GetIter(__pyx_v_data); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 824, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_15);
__pyx_t_10 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_15); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 824, __pyx_L1_error)
}
for (;;) {
if (likely(!__pyx_t_10)) {
if (likely(PyList_CheckExact(__pyx_t_15))) {
{
Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_15);
#if !CYTHON_ASSUME_SAFE_SIZE
if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 824, __pyx_L1_error)
#endif
if (__pyx_t_8 >= __pyx_temp) break;
}
__pyx_t_1 = __Pyx_PyList_GET_ITEM_REF(__pyx_t_15, __pyx_t_8, __Pyx_ReferenceSharing_OwnStrongReference);
++__pyx_t_8;
} else {
{
Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_15);
#if !CYTHON_ASSUME_SAFE_SIZE
if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 824, __pyx_L1_error)
#endif
if (__pyx_t_8 >= __pyx_temp) break;
}
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_1 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_15, __pyx_t_8));
#else
__pyx_t_1 = __Pyx_PySequence_ITEM(__pyx_t_15, __pyx_t_8);
#endif
++__pyx_t_8;
}
if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 824, __pyx_L1_error)
} else {
__pyx_t_1 = __pyx_t_10(__pyx_t_15);
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, 824, __pyx_L1_error)
PyErr_Clear();
}
break;
}
}
__Pyx_GOTREF(__pyx_t_1);
__Pyx_XDECREF_SET(__pyx_v_item, __pyx_t_1);
__pyx_t_1 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
}
__pyx_L29:;
+0825: result.append(
__pyx_t_14 = __Pyx_PyList_Append(__pyx_v_result, __pyx_t_1); if (unlikely(__pyx_t_14 == ((int)-1))) __PYX_ERR(0, 825, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+0826: _parse_typing(field, T=inner_type, data=item, encoder=encoder, as_objects=False)
__pyx_t_38.__pyx_n = 2;
__pyx_t_38.encoder = __pyx_v_encoder;
__pyx_t_38.as_objects = Py_False;
__pyx_t_1 = __pyx_f_9datamodel_10converters__parse_typing(__pyx_v_field, __pyx_v_inner_type, __pyx_v_item, &__pyx_t_38); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 826, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
0827: )
+0828: return result
{
PyObject *__pyx_temp;
{
__pyx_temp = __pyx_r;
__Pyx_INCREF(__pyx_v_result);
__pyx_r = __pyx_v_result;
}
__Pyx_XDECREF(__pyx_temp);
}
goto __pyx_L0;
0829:
+0830: cdef object _parse_tuple_type(
static PyObject *__pyx_f_9datamodel_10converters__parse_tuple_type(PyObject *__pyx_v_field, CYTHON_UNUSED PyObject *__pyx_v_T, PyObject *__pyx_v_data, PyObject *__pyx_v_encoder, PyObject *__pyx_v_args) {
struct __pyx_obj_9datamodel_10converters___pyx_scope_struct____pyx_f_9datamodel_10converters__parse_tuple_type *__pyx_cur_scope;
PyObject *__pyx_v_result = 0;
PyObject *__pyx_v_converted_elements = NULL;
PyObject *__pyx_v_i = NULL;
PyObject *__pyx_v_item_type = NULL;
PyObject *__pyx_v_item = NULL;
PyObject *__pyx_v_e = NULL;
PyObject *__pyx_gb_9datamodel_10converters_17_parse_tuple_type_2generator = 0;
PyObject *__pyx_r = NULL;
__pyx_cur_scope = (struct __pyx_obj_9datamodel_10converters___pyx_scope_struct____pyx_f_9datamodel_10converters__parse_tuple_type *)__pyx_tp_new_9datamodel_10converters___pyx_scope_struct____pyx_f_9datamodel_10converters__parse_tuple_type(__pyx_mstate_global->__pyx_ptype_9datamodel_10converters___pyx_scope_struct____pyx_f_9datamodel_10converters__parse_tuple_type, __pyx_mstate_global->__pyx_empty_tuple, NULL);
if (unlikely(!__pyx_cur_scope)) {
__pyx_cur_scope = ((struct __pyx_obj_9datamodel_10converters___pyx_scope_struct____pyx_f_9datamodel_10converters__parse_tuple_type *)Py_None);
__Pyx_INCREF(Py_None);
__PYX_ERR(0, 830, __pyx_L1_error)
} else {
__Pyx_GOTREF((PyObject *)__pyx_cur_scope);
}
__pyx_cur_scope->__pyx_v_field = __pyx_v_field;
__Pyx_INCREF(__pyx_cur_scope->__pyx_v_field);
__Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_field);
__pyx_cur_scope->__pyx_v_encoder = __pyx_v_encoder;
__Pyx_INCREF(__pyx_cur_scope->__pyx_v_encoder);
__Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_encoder);
__Pyx_INCREF(__pyx_v_data);
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_5);
__Pyx_XDECREF(__pyx_t_7);
__Pyx_XDECREF(__pyx_t_8);
__Pyx_XDECREF(__pyx_t_9);
__Pyx_XDECREF(__pyx_t_12);
__Pyx_XDECREF(__pyx_t_21);
__Pyx_XDECREF(__pyx_t_22);
__Pyx_XDECREF(__pyx_t_23);
__Pyx_XDECREF(__pyx_t_24);
__Pyx_XDECREF(__pyx_t_25);
__Pyx_AddTraceback("datamodel.converters._parse_tuple_type", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = 0;
__pyx_L0:;
__Pyx_XDECREF(__pyx_v_result);
__Pyx_XDECREF(__pyx_v_converted_elements);
__Pyx_XDECREF(__pyx_v_i);
__Pyx_XDECREF(__pyx_v_item_type);
__Pyx_XDECREF(__pyx_v_item);
__Pyx_XDECREF(__pyx_v_e);
__Pyx_XDECREF(__pyx_gb_9datamodel_10converters_17_parse_tuple_type_2generator);
__Pyx_XDECREF(__pyx_v_data);
__Pyx_DECREF((PyObject *)__pyx_cur_scope);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
struct __pyx_obj_9datamodel_10converters___pyx_scope_struct____pyx_f_9datamodel_10converters__parse_tuple_type {
PyObject_HEAD
PyObject *__pyx_v_element_type;
PyObject *__pyx_v_encoder;
PyObject *__pyx_v_field;
};
0831: object field,
0832: object T,
0833: object data,
0834: object encoder,
0835: object args
0836: ):
0837: """
0838: Parse a tuple of items to their respective types.
0839: Handles both heterogeneous tuples (Tuple[T1, T2, ...]) and
0840: homogeneous tuples (Tuple[T, ...])
0841: """
+0842: cdef tuple result = ()
__Pyx_INCREF(__pyx_mstate_global->__pyx_empty_tuple);
__pyx_v_result = __pyx_mstate_global->__pyx_empty_tuple;
0843:
0844: # Handle empty data
+0845: if data is None:
__pyx_t_1 = (__pyx_v_data == Py_None);
if (__pyx_t_1) {
/* … */
}
+0846: return None
{
PyObject *__pyx_temp;
{
__pyx_temp = __pyx_r;
__pyx_r = Py_None; __Pyx_INCREF(Py_None);
}
__Pyx_XDECREF(__pyx_temp);
}
goto __pyx_L0;
0847:
0848: # Ensure data is in tuple form
+0849: if not isinstance(data, (list, tuple)):
__pyx_t_2 = PyList_Check(__pyx_v_data); if (!__pyx_t_2) { } else { __pyx_t_1 = __pyx_t_2; goto __pyx_L5_bool_binop_done; } __pyx_t_2 = PyTuple_Check(__pyx_v_data); __pyx_t_1 = __pyx_t_2; __pyx_L5_bool_binop_done:; __pyx_t_2 = (!__pyx_t_1); if (__pyx_t_2) { /* … */ }
+0850: data = (data,)
__pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 850, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_INCREF(__pyx_v_data); __Pyx_GIVEREF(__pyx_v_data); if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_data) != (0)) __PYX_ERR(0, 850, __pyx_L1_error); __Pyx_DECREF_SET(__pyx_v_data, __pyx_t_3); __pyx_t_3 = 0;
0851:
0852: # Check for homogeneous tuple with ellipsis: Tuple[T, ...]
+0853: if len(args) == 2 and args[1] is Ellipsis:
__pyx_t_4 = PyObject_Length(__pyx_v_args); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(0, 853, __pyx_L1_error) __pyx_t_1 = (__pyx_t_4 == 2); if (__pyx_t_1) { } else { __pyx_t_2 = __pyx_t_1; goto __pyx_L8_bool_binop_done; } __pyx_t_3 = __Pyx_GetItemInt(__pyx_v_args, 1, long, 1, __Pyx_PyLong_From_long, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 853, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_1 = (__pyx_t_3 == __pyx_builtin_Ellipsis); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_2 = __pyx_t_1; __pyx_L8_bool_binop_done:; if (__pyx_t_2) { /* … */ goto __pyx_L7; }
0854: # All elements should be of type args[0]
+0855: element_type = args[0]
__pyx_t_3 = __Pyx_GetItemInt(__pyx_v_args, 0, long, 1, __Pyx_PyLong_From_long, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 855, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_3); __pyx_cur_scope->__pyx_v_element_type = __pyx_t_3; __pyx_t_3 = 0;
+0856: result = tuple(
__pyx_t_5 = __Pyx_PySequence_Tuple(__pyx_t_3); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 856, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF_SET(__pyx_v_result, ((PyObject*)__pyx_t_5)); __pyx_t_5 = 0;
+0857: _parse_builtin_type(field, element_type, item, encoder)
static PyObject *__pyx_pf_9datamodel_10converters_17_parse_tuple_type_genexpr(PyObject *__pyx_self, PyObject *__pyx_genexpr_arg_0) {
struct __pyx_obj_9datamodel_10converters___pyx_scope_struct_1_genexpr *__pyx_cur_scope;
PyObject *__pyx_r = NULL;
__pyx_cur_scope = (struct __pyx_obj_9datamodel_10converters___pyx_scope_struct_1_genexpr *)__pyx_tp_new_9datamodel_10converters___pyx_scope_struct_1_genexpr(__pyx_mstate_global->__pyx_ptype_9datamodel_10converters___pyx_scope_struct_1_genexpr, __pyx_mstate_global->__pyx_empty_tuple, NULL);
if (unlikely(!__pyx_cur_scope)) {
__pyx_cur_scope = ((struct __pyx_obj_9datamodel_10converters___pyx_scope_struct_1_genexpr *)Py_None);
__Pyx_INCREF(Py_None);
__PYX_ERR(0, 857, __pyx_L1_error)
} else {
__Pyx_GOTREF((PyObject *)__pyx_cur_scope);
}
__pyx_cur_scope->__pyx_outer_scope = (struct __pyx_obj_9datamodel_10converters___pyx_scope_struct____pyx_f_9datamodel_10converters__parse_tuple_type *) __pyx_self;
__Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_outer_scope);
__Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_outer_scope);
__pyx_cur_scope->__pyx_genexpr_arg_0 = __pyx_genexpr_arg_0;
__Pyx_INCREF(__pyx_cur_scope->__pyx_genexpr_arg_0);
__Pyx_GIVEREF(__pyx_cur_scope->__pyx_genexpr_arg_0);
{
__pyx_CoroutineObject *gen = __Pyx_Generator_New((__pyx_coroutine_body_t) __pyx_gb_9datamodel_10converters_17_parse_tuple_type_2generator, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[0]), (PyObject *) __pyx_cur_scope, __pyx_mstate_global->__pyx_n_u_genexpr, __pyx_mstate_global->__pyx_n_u_parse_tuple_type_locals_genexpr, __pyx_mstate_global->__pyx_n_u_datamodel_converters); if (unlikely(!gen)) __PYX_ERR(0, 857, __pyx_L1_error)
__Pyx_DECREF(__pyx_cur_scope);
__Pyx_RefNannyFinishContext();
return (PyObject *) gen;
}
/* function exit code */
__pyx_L1_error:;
__Pyx_AddTraceback("datamodel.converters._parse_tuple_type.genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__Pyx_DECREF((PyObject *)__pyx_cur_scope);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_gb_9datamodel_10converters_17_parse_tuple_type_2generator(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("genexpr", 0);
__pyx_L3_first_run:;
if (unlikely(__pyx_sent_value != Py_None)) {
if (unlikely(__pyx_sent_value)) PyErr_SetString(PyExc_TypeError, "can't send non-None value to a just-started generator");
__PYX_ERR(0, 857, __pyx_L1_error)
}
/* … */
if (unlikely(!__pyx_cur_scope->__pyx_outer_scope->__pyx_v_field)) { __Pyx_RaiseClosureNameError("field"); __PYX_ERR(0, 857, __pyx_L1_error) }
__pyx_t_5 = __pyx_cur_scope->__pyx_outer_scope->__pyx_v_field;
__Pyx_INCREF(__pyx_t_5);
if (unlikely(!__pyx_cur_scope->__pyx_outer_scope->__pyx_v_element_type)) { __Pyx_RaiseClosureNameError("element_type"); __PYX_ERR(0, 857, __pyx_L1_error) }
__pyx_t_7 = __pyx_cur_scope->__pyx_outer_scope->__pyx_v_element_type;
__Pyx_INCREF(__pyx_t_7);
if (unlikely(!__pyx_cur_scope->__pyx_outer_scope->__pyx_v_encoder)) { __Pyx_RaiseClosureNameError("encoder"); __PYX_ERR(0, 857, __pyx_L1_error) }
__pyx_t_6 = __pyx_cur_scope->__pyx_outer_scope->__pyx_v_encoder;
__Pyx_INCREF(__pyx_t_6);
__pyx_t_10 = __pyx_f_9datamodel_10converters__parse_builtin_type(__pyx_t_5, __pyx_t_7, __pyx_cur_scope->__pyx_v_item, __pyx_t_6); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 857, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_10);
__Pyx_DECREF(__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;
__pyx_t_4 = __pyx_t_10;
__pyx_t_10 = 0;
} else {
/* … */
/* function exit code */
__pyx_r = Py_None; __Pyx_INCREF(Py_None);
goto __pyx_L0;
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_4);
__Pyx_XDECREF(__pyx_t_5);
__Pyx_XDECREF(__pyx_t_6);
__Pyx_XDECREF(__pyx_t_7);
__Pyx_XDECREF(__pyx_t_10);
if (__Pyx_PyErr_Occurred()) {
__Pyx_Generator_Replace_StopIteration(0);
__Pyx_AddTraceback("genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);
}
__pyx_L0:;
__Pyx_XGIVEREF(__pyx_r);
#if !CYTHON_USE_EXC_INFO_STACK
__Pyx_Coroutine_ResetAndClearException(__pyx_generator);
#endif
__pyx_generator->resume_label = -1;
__Pyx_Coroutine_clear((PyObject*)__pyx_generator);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
__pyx_t_3 = __pyx_pf_9datamodel_10converters_17_parse_tuple_type_genexpr(((PyObject*)__pyx_cur_scope), __pyx_v_data); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 857, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
/* … */
struct __pyx_obj_9datamodel_10converters___pyx_scope_struct_1_genexpr {
PyObject_HEAD
struct __pyx_obj_9datamodel_10converters___pyx_scope_struct____pyx_f_9datamodel_10converters__parse_tuple_type *__pyx_outer_scope;
PyObject *__pyx_genexpr_arg_0;
PyObject *__pyx_v_item;
PyObject *__pyx_t_0;
Py_ssize_t __pyx_t_1;
PyObject *(*__pyx_t_2)(PyObject *);
};
+0858: if is_primitive(element_type) else
__pyx_t_6 = NULL;
__Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_mstate_global->__pyx_n_u_is_primitive); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 858, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
if (unlikely(!__pyx_cur_scope->__pyx_outer_scope->__pyx_v_element_type)) { __Pyx_RaiseClosureNameError("element_type"); __PYX_ERR(0, 858, __pyx_L1_error) }
__pyx_t_8 = 1;
#if CYTHON_UNPACK_METHODS
if (unlikely(PyMethod_Check(__pyx_t_7))) {
__pyx_t_6 = PyMethod_GET_SELF(__pyx_t_7);
assert(__pyx_t_6);
PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_7);
__Pyx_INCREF(__pyx_t_6);
__Pyx_INCREF(__pyx__function);
__Pyx_DECREF_SET(__pyx_t_7, __pyx__function);
__pyx_t_8 = 0;
}
#endif
{
PyObject *__pyx_callargs[2] = {__pyx_t_6, __pyx_cur_scope->__pyx_outer_scope->__pyx_v_element_type};
__pyx_t_5 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_7, __pyx_callargs+__pyx_t_8, (2-__pyx_t_8) | (__pyx_t_8*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
__Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 858, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
}
__pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely((__pyx_t_9 < 0))) __PYX_ERR(0, 858, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
if (__pyx_t_9) {
+0859: _parse_type(field, element_type, item, encoder, False)
if (unlikely(!__pyx_cur_scope->__pyx_outer_scope->__pyx_v_field)) { __Pyx_RaiseClosureNameError("field"); __PYX_ERR(0, 859, __pyx_L1_error) }
__pyx_t_10 = __pyx_cur_scope->__pyx_outer_scope->__pyx_v_field;
__Pyx_INCREF(__pyx_t_10);
if (unlikely(!__pyx_cur_scope->__pyx_outer_scope->__pyx_v_element_type)) { __Pyx_RaiseClosureNameError("element_type"); __PYX_ERR(0, 859, __pyx_L1_error) }
__pyx_t_6 = __pyx_cur_scope->__pyx_outer_scope->__pyx_v_element_type;
__Pyx_INCREF(__pyx_t_6);
if (unlikely(!__pyx_cur_scope->__pyx_outer_scope->__pyx_v_encoder)) { __Pyx_RaiseClosureNameError("encoder"); __PYX_ERR(0, 859, __pyx_L1_error) }
__pyx_t_7 = __pyx_cur_scope->__pyx_outer_scope->__pyx_v_encoder;
__Pyx_INCREF(__pyx_t_7);
__pyx_t_11.__pyx_n = 2;
__pyx_t_11.encoder = __pyx_t_7;
__pyx_t_11.as_objects = Py_False;
__pyx_t_5 = __pyx_f_9datamodel_10converters__parse_type(__pyx_t_10, __pyx_t_6, __pyx_cur_scope->__pyx_v_item, &__pyx_t_11); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 859, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
__pyx_t_4 = __pyx_t_5;
__pyx_t_5 = 0;
}
__pyx_r = __pyx_t_4;
__pyx_t_4 = 0;
__Pyx_XGIVEREF(__pyx_t_1);
__pyx_cur_scope->__pyx_t_0 = __pyx_t_1;
__pyx_cur_scope->__pyx_t_1 = __pyx_t_2;
__pyx_cur_scope->__pyx_t_2 = __pyx_t_3;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
__Pyx_Coroutine_ResetAndClearException(__pyx_generator);
/* return from generator, yielding value */
__pyx_generator->resume_label = 1;
return __pyx_r;
__pyx_L6_resume_from_yield:;
__pyx_t_1 = __pyx_cur_scope->__pyx_t_0;
__pyx_cur_scope->__pyx_t_0 = 0;
__Pyx_XGOTREF(__pyx_t_1);
__pyx_t_2 = __pyx_cur_scope->__pyx_t_1;
__pyx_t_3 = __pyx_cur_scope->__pyx_t_2;
if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 857, __pyx_L1_error)
+0860: for item in data
if (unlikely(!__pyx_cur_scope->__pyx_genexpr_arg_0)) { __Pyx_RaiseUnboundLocalError(".0"); __PYX_ERR(0, 860, __pyx_L1_error) }
if (likely(PyList_CheckExact(__pyx_cur_scope->__pyx_genexpr_arg_0)) || PyTuple_CheckExact(__pyx_cur_scope->__pyx_genexpr_arg_0)) {
__pyx_t_1 = __pyx_cur_scope->__pyx_genexpr_arg_0; __Pyx_INCREF(__pyx_t_1);
__pyx_t_2 = 0;
__pyx_t_3 = NULL;
} else {
__pyx_t_2 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_cur_scope->__pyx_genexpr_arg_0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 860, __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, 860, __pyx_L1_error)
}
for (;;) {
if (likely(!__pyx_t_3)) {
if (likely(PyList_CheckExact(__pyx_t_1))) {
{
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, 860, __pyx_L1_error)
#endif
if (__pyx_t_2 >= __pyx_temp) break;
}
__pyx_t_4 = __Pyx_PyList_GET_ITEM_REF(__pyx_t_1, __pyx_t_2, __Pyx_ReferenceSharing_OwnStrongReference);
++__pyx_t_2;
} 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, 860, __pyx_L1_error)
#endif
if (__pyx_t_2 >= __pyx_temp) break;
}
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_4 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_2));
#else
__pyx_t_4 = __Pyx_PySequence_ITEM(__pyx_t_1, __pyx_t_2);
#endif
++__pyx_t_2;
}
if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 860, __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, 860, __pyx_L1_error)
PyErr_Clear();
}
break;
}
}
__Pyx_GOTREF(__pyx_t_4);
__Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_item);
__Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_item, __pyx_t_4);
__Pyx_GIVEREF(__pyx_t_4);
__pyx_t_4 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);
0861: )
0862: # Handle heterogeneous tuple: Tuple[T1, T2, ...]
+0863: elif len(args) > 0:
__pyx_t_4 = PyObject_Length(__pyx_v_args); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(0, 863, __pyx_L1_error) __pyx_t_2 = (__pyx_t_4 > 0); if (__pyx_t_2) { /* … */ goto __pyx_L7; }
0864: # Validate tuple length
+0865: if len(data) != len(args):
__pyx_t_4 = PyObject_Length(__pyx_v_data); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(0, 865, __pyx_L1_error) __pyx_t_6 = PyObject_Length(__pyx_v_args); if (unlikely(__pyx_t_6 == ((Py_ssize_t)-1))) __PYX_ERR(0, 865, __pyx_L1_error) __pyx_t_2 = (__pyx_t_4 != __pyx_t_6); if (unlikely(__pyx_t_2)) { /* … */ }
+0866: raise ValueError(
__pyx_t_3 = NULL;
+0867: f"Tuple length mismatch for {field.name}: expected {len(args)}, got {len(data)}"
__pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_field, __pyx_mstate_global->__pyx_n_u_name_2); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 867, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_8 = __Pyx_PyObject_FormatSimple(__pyx_t_7, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 867, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_6 = PyObject_Length(__pyx_v_args); if (unlikely(__pyx_t_6 == ((Py_ssize_t)-1))) __PYX_ERR(0, 867, __pyx_L1_error) __pyx_t_7 = __Pyx_PyUnicode_From_Py_ssize_t(__pyx_t_6, 0, ' ', 'd'); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 867, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_6 = PyObject_Length(__pyx_v_data); if (unlikely(__pyx_t_6 == ((Py_ssize_t)-1))) __PYX_ERR(0, 867, __pyx_L1_error) __pyx_t_9 = __Pyx_PyUnicode_From_Py_ssize_t(__pyx_t_6, 0, ' ', 'd'); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 867, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_10[0] = __pyx_mstate_global->__pyx_kp_u_Tuple_length_mismatch_for; __pyx_t_10[1] = __pyx_t_8; __pyx_t_10[2] = __pyx_mstate_global->__pyx_kp_u_expected; __pyx_t_10[3] = __pyx_t_7; __pyx_t_10[4] = __pyx_mstate_global->__pyx_kp_u_got; __pyx_t_10[5] = __pyx_t_9; __pyx_t_6 = 43; #if __Pyx_PyUnicode_Join_CAN_USE_KIND_AND_LENGTH __pyx_t_6 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_10[1]) + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_10[3]) + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_10[5]); #endif __pyx_t_11 = 0; #if __Pyx_PyUnicode_Join_CAN_USE_KIND_AND_LENGTH __pyx_t_11 |= __Pyx_PyUnicode_KIND_04(__pyx_t_10[1]); #endif __pyx_t_12 = __Pyx_PyUnicode_Join(__pyx_t_10, 6, __pyx_t_6, __pyx_t_11); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 867, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_13 = 1; { PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_t_12}; __pyx_t_5 = __Pyx_PyObject_FastCall((PyObject*)(((PyTypeObject*)PyExc_ValueError)), __pyx_callargs+__pyx_t_13, (2-__pyx_t_13) | (__pyx_t_13*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 866, __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, 866, __pyx_L1_error)
0868: )
0869:
0870: # Convert each element according to its type
+0871: converted_elements = []
__pyx_t_5 = PyList_New(0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 871, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_v_converted_elements = ((PyObject*)__pyx_t_5); __pyx_t_5 = 0;
+0872: for i, (item_type, item) in enumerate(zip(args, data)):
__Pyx_INCREF(__pyx_mstate_global->__pyx_int_0); __pyx_t_5 = __pyx_mstate_global->__pyx_int_0; __pyx_t_3 = NULL; __pyx_t_13 = 1; { PyObject *__pyx_callargs[3] = {__pyx_t_3, __pyx_v_args, __pyx_v_data}; __pyx_t_12 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_zip, __pyx_callargs+__pyx_t_13, (3-__pyx_t_13) | (__pyx_t_13*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 872, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); } if (likely(PyList_CheckExact(__pyx_t_12)) || PyTuple_CheckExact(__pyx_t_12)) { __pyx_t_3 = __pyx_t_12; __Pyx_INCREF(__pyx_t_3); __pyx_t_6 = 0; __pyx_t_14 = NULL; } else { __pyx_t_6 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_t_12); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 872, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_14 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_3); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 872, __pyx_L1_error) } __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; for (;;) { if (likely(!__pyx_t_14)) { if (likely(PyList_CheckExact(__pyx_t_3))) { { 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, 872, __pyx_L1_error) #endif if (__pyx_t_6 >= __pyx_temp) break; } __pyx_t_12 = __Pyx_PyList_GET_ITEM_REF(__pyx_t_3, __pyx_t_6, __Pyx_ReferenceSharing_OwnStrongReference); ++__pyx_t_6; } else { { 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, 872, __pyx_L1_error) #endif if (__pyx_t_6 >= __pyx_temp) break; } #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_12 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_6)); #else __pyx_t_12 = __Pyx_PySequence_ITEM(__pyx_t_3, __pyx_t_6); #endif ++__pyx_t_6; } if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 872, __pyx_L1_error) } else { __pyx_t_12 = __pyx_t_14(__pyx_t_3); if (unlikely(!__pyx_t_12)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(0, 872, __pyx_L1_error) PyErr_Clear(); } break; } } __Pyx_GOTREF(__pyx_t_12); if ((likely(PyTuple_CheckExact(__pyx_t_12))) || (PyList_CheckExact(__pyx_t_12))) { PyObject* sequence = __pyx_t_12; Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); if (unlikely(size != 2)) { if (size > 2) __Pyx_RaiseTooManyValuesError(2); else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); __PYX_ERR(0, 872, __pyx_L1_error) } #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS if (likely(PyTuple_CheckExact(sequence))) { __pyx_t_9 = PyTuple_GET_ITEM(sequence, 0); __Pyx_INCREF(__pyx_t_9); __pyx_t_7 = PyTuple_GET_ITEM(sequence, 1); __Pyx_INCREF(__pyx_t_7); } else { __pyx_t_9 = __Pyx_PyList_GET_ITEM_REF(sequence, 0, __Pyx_ReferenceSharing_SharedReference); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 872, __pyx_L1_error) __Pyx_XGOTREF(__pyx_t_9); __pyx_t_7 = __Pyx_PyList_GET_ITEM_REF(sequence, 1, __Pyx_ReferenceSharing_SharedReference); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 872, __pyx_L1_error) __Pyx_XGOTREF(__pyx_t_7); } #else __pyx_t_9 = __Pyx_PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 872, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_7 = __Pyx_PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 872, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); #endif __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; } else { Py_ssize_t index = -1; __pyx_t_8 = PyObject_GetIter(__pyx_t_12); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 872, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __pyx_t_15 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_8); index = 0; __pyx_t_9 = __pyx_t_15(__pyx_t_8); if (unlikely(!__pyx_t_9)) goto __pyx_L13_unpacking_failed; __Pyx_GOTREF(__pyx_t_9); index = 1; __pyx_t_7 = __pyx_t_15(__pyx_t_8); if (unlikely(!__pyx_t_7)) goto __pyx_L13_unpacking_failed; __Pyx_GOTREF(__pyx_t_7); if (__Pyx_IternextUnpackEndCheck(__pyx_t_15(__pyx_t_8), 2) < (0)) __PYX_ERR(0, 872, __pyx_L1_error) __pyx_t_15 = NULL; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; goto __pyx_L14_unpacking_done; __pyx_L13_unpacking_failed:; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_t_15 = NULL; if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); __PYX_ERR(0, 872, __pyx_L1_error) __pyx_L14_unpacking_done:; } __Pyx_XDECREF_SET(__pyx_v_item_type, __pyx_t_9); __pyx_t_9 = 0; __Pyx_XDECREF_SET(__pyx_v_item, __pyx_t_7); __pyx_t_7 = 0; __Pyx_INCREF(__pyx_t_5); __Pyx_XDECREF_SET(__pyx_v_i, __pyx_t_5); __pyx_t_12 = __Pyx_PyLong_AddObjC(__pyx_t_5, __pyx_mstate_global->__pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 872, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = __pyx_t_12; __pyx_t_12 = 0; /* … */ } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+0873: try:
{
/*try:*/ {
/* … */
}
__Pyx_XDECREF(__pyx_t_16); __pyx_t_16 = 0;
__Pyx_XDECREF(__pyx_t_17); __pyx_t_17 = 0;
__Pyx_XDECREF(__pyx_t_18); __pyx_t_18 = 0;
goto __pyx_L22_try_end;
__pyx_L15_error:;
__Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
__Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
__Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
__Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
__pyx_L17_except_error:;
__Pyx_XGIVEREF(__pyx_t_16);
__Pyx_XGIVEREF(__pyx_t_17);
__Pyx_XGIVEREF(__pyx_t_18);
__Pyx_ExceptionReset(__pyx_t_16, __pyx_t_17, __pyx_t_18);
goto __pyx_L1_error;
__pyx_L22_try_end:;
}
+0874: if is_primitive(item_type):
__pyx_t_7 = NULL;
__Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_is_primitive); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 874, __pyx_L15_error)
__Pyx_GOTREF(__pyx_t_9);
__pyx_t_13 = 1;
#if CYTHON_UNPACK_METHODS
if (unlikely(PyMethod_Check(__pyx_t_9))) {
__pyx_t_7 = PyMethod_GET_SELF(__pyx_t_9);
assert(__pyx_t_7);
PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_9);
__Pyx_INCREF(__pyx_t_7);
__Pyx_INCREF(__pyx__function);
__Pyx_DECREF_SET(__pyx_t_9, __pyx__function);
__pyx_t_13 = 0;
}
#endif
{
PyObject *__pyx_callargs[2] = {__pyx_t_7, __pyx_v_item_type};
__pyx_t_12 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_9, __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_9); __pyx_t_9 = 0;
if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 874, __pyx_L15_error)
__Pyx_GOTREF(__pyx_t_12);
}
__pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_12); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 874, __pyx_L15_error)
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
if (__pyx_t_2) {
/* … */
goto __pyx_L23;
}
+0875: converted_elements.append(_parse_builtin_type(field, item_type, item, encoder))
__pyx_t_12 = __pyx_cur_scope->__pyx_v_field;
__Pyx_INCREF(__pyx_t_12);
__pyx_t_9 = __pyx_cur_scope->__pyx_v_encoder;
__Pyx_INCREF(__pyx_t_9);
__pyx_t_7 = __pyx_f_9datamodel_10converters__parse_builtin_type(__pyx_t_12, __pyx_v_item_type, __pyx_v_item, __pyx_t_9); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 875, __pyx_L15_error)
__Pyx_GOTREF(__pyx_t_7);
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
__pyx_t_19 = __Pyx_PyList_Append(__pyx_v_converted_elements, __pyx_t_7); if (unlikely(__pyx_t_19 == ((int)-1))) __PYX_ERR(0, 875, __pyx_L15_error)
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
0876: else:
+0877: converted_elements.append(_parse_type(field, item_type, item, encoder, False))
/*else*/ {
__pyx_t_7 = __pyx_cur_scope->__pyx_v_field;
__Pyx_INCREF(__pyx_t_7);
__pyx_t_9 = __pyx_cur_scope->__pyx_v_encoder;
__Pyx_INCREF(__pyx_t_9);
__pyx_t_20.__pyx_n = 2;
__pyx_t_20.encoder = __pyx_t_9;
__pyx_t_20.as_objects = Py_False;
__pyx_t_12 = __pyx_f_9datamodel_10converters__parse_type(__pyx_t_7, __pyx_v_item_type, __pyx_v_item, &__pyx_t_20); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 877, __pyx_L15_error)
__Pyx_GOTREF(__pyx_t_12);
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
__pyx_t_19 = __Pyx_PyList_Append(__pyx_v_converted_elements, __pyx_t_12); if (unlikely(__pyx_t_19 == ((int)-1))) __PYX_ERR(0, 877, __pyx_L15_error)
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
}
__pyx_L23:;
+0878: except Exception as e:
__pyx_t_11 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(((PyTypeObject*)PyExc_Exception)))); if (__pyx_t_11) { __Pyx_AddTraceback("datamodel.converters._parse_tuple_type", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_12, &__pyx_t_9, &__pyx_t_7) < 0) __PYX_ERR(0, 878, __pyx_L17_except_error) __Pyx_XGOTREF(__pyx_t_12); __Pyx_XGOTREF(__pyx_t_9); __Pyx_XGOTREF(__pyx_t_7); __Pyx_INCREF(__pyx_t_9); __pyx_v_e = __pyx_t_9; /*try:*/ { /* … */ /*finally:*/ { __pyx_L29_error:; /*exception exit:*/{ __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign __pyx_t_28 = 0; __pyx_t_29 = 0; __pyx_t_30 = 0; __pyx_t_31 = 0; __pyx_t_32 = 0; __pyx_t_33 = 0; __Pyx_XDECREF(__pyx_t_21); __pyx_t_21 = 0; __Pyx_XDECREF(__pyx_t_22); __pyx_t_22 = 0; __Pyx_XDECREF(__pyx_t_23); __pyx_t_23 = 0; __Pyx_XDECREF(__pyx_t_24); __pyx_t_24 = 0; __Pyx_XDECREF(__pyx_t_25); __pyx_t_25 = 0; __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_ExceptionSwap(&__pyx_t_31, &__pyx_t_32, &__pyx_t_33); if ( unlikely(__Pyx_GetException(&__pyx_t_28, &__pyx_t_29, &__pyx_t_30) < 0)) __Pyx_ErrFetch(&__pyx_t_28, &__pyx_t_29, &__pyx_t_30); __Pyx_XGOTREF(__pyx_t_28); __Pyx_XGOTREF(__pyx_t_29); __Pyx_XGOTREF(__pyx_t_30); __Pyx_XGOTREF(__pyx_t_31); __Pyx_XGOTREF(__pyx_t_32); __Pyx_XGOTREF(__pyx_t_33); __pyx_t_11 = __pyx_lineno; __pyx_t_26 = __pyx_clineno; __pyx_t_27 = __pyx_filename; { __Pyx_DECREF(__pyx_v_e); __pyx_v_e = 0; } __Pyx_XGIVEREF(__pyx_t_31); __Pyx_XGIVEREF(__pyx_t_32); __Pyx_XGIVEREF(__pyx_t_33); __Pyx_ExceptionReset(__pyx_t_31, __pyx_t_32, __pyx_t_33); __Pyx_XGIVEREF(__pyx_t_28); __Pyx_XGIVEREF(__pyx_t_29); __Pyx_XGIVEREF(__pyx_t_30); __Pyx_ErrRestore(__pyx_t_28, __pyx_t_29, __pyx_t_30); __pyx_t_28 = 0; __pyx_t_29 = 0; __pyx_t_30 = 0; __pyx_t_31 = 0; __pyx_t_32 = 0; __pyx_t_33 = 0; __pyx_lineno = __pyx_t_11; __pyx_clineno = __pyx_t_26; __pyx_filename = __pyx_t_27; goto __pyx_L17_except_error; } } } goto __pyx_L17_except_error;
+0879: raise ValueError(
__pyx_t_21 = NULL;
+0880: f"Error parsing tuple element {i} of {field.name}: {e}"
__pyx_t_22 = __Pyx_PyObject_FormatSimple(__pyx_v_i, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 880, __pyx_L29_error) __Pyx_GOTREF(__pyx_t_22); __pyx_t_23 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_field, __pyx_mstate_global->__pyx_n_u_name_2); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 880, __pyx_L29_error) __Pyx_GOTREF(__pyx_t_23); __pyx_t_24 = __Pyx_PyObject_FormatSimple(__pyx_t_23, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_24)) __PYX_ERR(0, 880, __pyx_L29_error) __Pyx_GOTREF(__pyx_t_24); __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0; __pyx_t_23 = __Pyx_PyObject_FormatSimple(__pyx_v_e, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 880, __pyx_L29_error) __Pyx_GOTREF(__pyx_t_23); __pyx_t_10[0] = __pyx_mstate_global->__pyx_kp_u_Error_parsing_tuple_element; __pyx_t_10[1] = __pyx_t_22; __pyx_t_10[2] = __pyx_mstate_global->__pyx_kp_u_of; __pyx_t_10[3] = __pyx_t_24; __pyx_t_10[4] = __pyx_mstate_global->__pyx_kp_u__5; __pyx_t_10[5] = __pyx_t_23; __pyx_t_4 = 34; #if __Pyx_PyUnicode_Join_CAN_USE_KIND_AND_LENGTH __pyx_t_4 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_10[1]) + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_10[3]) + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_10[5]); #endif __pyx_t_11 = 0; #if __Pyx_PyUnicode_Join_CAN_USE_KIND_AND_LENGTH __pyx_t_11 |= __Pyx_PyUnicode_KIND_04(__pyx_t_10[1]) | __Pyx_PyUnicode_KIND_04(__pyx_t_10[3]) | __Pyx_PyUnicode_KIND_04(__pyx_t_10[5]); #endif __pyx_t_25 = __Pyx_PyUnicode_Join(__pyx_t_10, 6, __pyx_t_4, __pyx_t_11); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 880, __pyx_L29_error) __Pyx_GOTREF(__pyx_t_25); __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0; __Pyx_DECREF(__pyx_t_24); __pyx_t_24 = 0; __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0; __pyx_t_13 = 1; { PyObject *__pyx_callargs[2] = {__pyx_t_21, __pyx_t_25}; __pyx_t_8 = __Pyx_PyObject_FastCall((PyObject*)(((PyTypeObject*)PyExc_ValueError)), __pyx_callargs+__pyx_t_13, (2-__pyx_t_13) | (__pyx_t_13*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_21); __pyx_t_21 = 0; __Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0; if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 879, __pyx_L29_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, 879, __pyx_L29_error) }
0881: )
0882:
+0883: result = tuple(converted_elements)
__pyx_t_5 = PyList_AsTuple(__pyx_v_converted_elements); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 883, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF_SET(__pyx_v_result, ((PyObject*)__pyx_t_5)); __pyx_t_5 = 0;
0884: else:
0885: # No type args, just return the tuple
+0886: result = tuple(data)
/*else*/ {
__pyx_t_5 = __Pyx_PySequence_Tuple(__pyx_v_data); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 886, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__Pyx_DECREF_SET(__pyx_v_result, ((PyObject*)__pyx_t_5));
__pyx_t_5 = 0;
}
__pyx_L7:;
0887:
+0888: return result
{
PyObject *__pyx_temp;
{
__pyx_temp = __pyx_r;
__Pyx_INCREF(__pyx_v_result);
__pyx_r = __pyx_v_result;
}
__Pyx_XDECREF(__pyx_temp);
}
goto __pyx_L0;
0889:
+0890: cdef object _parse_dataclass_type(object T, object data):
static PyObject *__pyx_f_9datamodel_10converters__parse_dataclass_type(PyObject *__pyx_v_T, PyObject *__pyx_v_data) {
PyObject *__pyx_r = NULL;
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_2);
__Pyx_XDECREF(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_5);
__Pyx_AddTraceback("datamodel.converters._parse_dataclass_type", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = 0;
__pyx_L0:;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
+0891: if isinstance(data, dict):
__pyx_t_1 = PyDict_Check(__pyx_v_data);
if (__pyx_t_1) {
/* … */
}
+0892: return T(**data)
if (unlikely(__pyx_v_data == Py_None)) {
PyErr_SetString(PyExc_TypeError, "argument after ** must be a mapping, not NoneType");
__PYX_ERR(0, 892, __pyx_L1_error)
}
if (likely(PyDict_CheckExact(__pyx_v_data))) {
__pyx_t_2 = PyDict_Copy(__pyx_v_data); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 892, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
} else {
__pyx_t_2 = __Pyx_PyObject_CallOneArg((PyObject*)&PyDict_Type, __pyx_v_data); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 892, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
}
__pyx_t_3 = __Pyx_PyObject_Call(__pyx_v_T, __pyx_mstate_global->__pyx_empty_tuple, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 892, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
{
PyObject *__pyx_temp;
{
__pyx_temp = __pyx_r;
__pyx_r = __pyx_t_3;
}
__Pyx_XDECREF(__pyx_temp);
}
__pyx_t_3 = 0;
goto __pyx_L0;
+0893: elif isinstance(data, (list, tuple)):
__pyx_t_4 = PyList_Check(__pyx_v_data); if (!__pyx_t_4) { } else { __pyx_t_1 = __pyx_t_4; goto __pyx_L4_bool_binop_done; } __pyx_t_4 = PyTuple_Check(__pyx_v_data); __pyx_t_1 = __pyx_t_4; __pyx_L4_bool_binop_done:; if (__pyx_t_1) { /* … */ }
+0894: return T(*data)
__pyx_t_3 = __Pyx_PySequence_Tuple(__pyx_v_data); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 894, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_2 = __Pyx_PyObject_Call(__pyx_v_T, __pyx_t_3, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 894, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; __pyx_r = __pyx_t_2; } __Pyx_XDECREF(__pyx_temp); } __pyx_t_2 = 0; goto __pyx_L0;
0895: else:
+0896: return T(data)
/*else*/ {
__pyx_t_3 = NULL;
__Pyx_INCREF(__pyx_v_T);
__pyx_t_5 = __pyx_v_T;
__pyx_t_6 = 1;
#if CYTHON_UNPACK_METHODS
if (unlikely(PyMethod_Check(__pyx_t_5))) {
__pyx_t_3 = PyMethod_GET_SELF(__pyx_t_5);
assert(__pyx_t_3);
PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_5);
__Pyx_INCREF(__pyx_t_3);
__Pyx_INCREF(__pyx__function);
__Pyx_DECREF_SET(__pyx_t_5, __pyx__function);
__pyx_t_6 = 0;
}
#endif
{
PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_v_data};
__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_3); __pyx_t_3 = 0;
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 896, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
}
{
PyObject *__pyx_temp;
{
__pyx_temp = __pyx_r;
__pyx_r = __pyx_t_2;
}
__Pyx_XDECREF(__pyx_temp);
}
__pyx_t_2 = 0;
goto __pyx_L0;
}
0897:
+0898: cdef object _parse_builtin_type(object field, object T, object data, object encoder):
static PyObject *__pyx_f_9datamodel_10converters__parse_builtin_type(PyObject *__pyx_v_field, PyObject *__pyx_v_T, PyObject *__pyx_v_data, PyObject *__pyx_v_encoder) {
PyObject *__pyx_v_e = NULL;
PyObject *__pyx_r = NULL;
__Pyx_INCREF(__pyx_v_data);
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_5);
__Pyx_XDECREF(__pyx_t_6);
__Pyx_XDECREF(__pyx_t_7);
__Pyx_XDECREF(__pyx_t_10);
__Pyx_XDECREF(__pyx_t_11);
__Pyx_XDECREF(__pyx_t_12);
__Pyx_XDECREF(__pyx_t_13);
__Pyx_XDECREF(__pyx_t_16);
__Pyx_AddTraceback("datamodel.converters._parse_builtin_type", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = 0;
__pyx_L0:;
__Pyx_XDECREF(__pyx_v_e);
__Pyx_XDECREF(__pyx_v_data);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
+0899: if encoder is not None:
__pyx_t_1 = (__pyx_v_encoder != Py_None);
if (__pyx_t_1) {
/* … */
}
+0900: try:
{
/*try:*/ {
/* … */
}
__pyx_L4_error:;
__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;
/* … */
__pyx_L6_except_error:;
__Pyx_XGIVEREF(__pyx_t_2);
__Pyx_XGIVEREF(__pyx_t_3);
__Pyx_XGIVEREF(__pyx_t_4);
__Pyx_ExceptionReset(__pyx_t_2, __pyx_t_3, __pyx_t_4);
goto __pyx_L1_error;
__pyx_L8_try_return:;
__Pyx_XGIVEREF(__pyx_t_2);
__Pyx_XGIVEREF(__pyx_t_3);
__Pyx_XGIVEREF(__pyx_t_4);
__Pyx_ExceptionReset(__pyx_t_2, __pyx_t_3, __pyx_t_4);
goto __pyx_L0;
}
+0901: return encoder(data)
__pyx_t_6 = NULL;
__Pyx_INCREF(__pyx_v_encoder);
__pyx_t_7 = __pyx_v_encoder;
__pyx_t_8 = 1;
#if CYTHON_UNPACK_METHODS
if (unlikely(PyMethod_Check(__pyx_t_7))) {
__pyx_t_6 = PyMethod_GET_SELF(__pyx_t_7);
assert(__pyx_t_6);
PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_7);
__Pyx_INCREF(__pyx_t_6);
__Pyx_INCREF(__pyx__function);
__Pyx_DECREF_SET(__pyx_t_7, __pyx__function);
__pyx_t_8 = 0;
}
#endif
{
PyObject *__pyx_callargs[2] = {__pyx_t_6, __pyx_v_data};
__pyx_t_5 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_7, __pyx_callargs+__pyx_t_8, (2-__pyx_t_8) | (__pyx_t_8*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
__Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 901, __pyx_L4_error)
__Pyx_GOTREF(__pyx_t_5);
}
{
PyObject *__pyx_temp;
{
__pyx_temp = __pyx_r;
__pyx_r = __pyx_t_5;
}
__Pyx_XDECREF(__pyx_temp);
}
__pyx_t_5 = 0;
goto __pyx_L8_try_return;
+0902: except ValueError as e:
__pyx_t_9 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(((PyTypeObject*)PyExc_ValueError)))); if (__pyx_t_9) { __Pyx_AddTraceback("datamodel.converters._parse_builtin_type", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_7, &__pyx_t_6) < 0) __PYX_ERR(0, 902, __pyx_L6_except_error) __Pyx_XGOTREF(__pyx_t_5); __Pyx_XGOTREF(__pyx_t_7); __Pyx_XGOTREF(__pyx_t_6); __Pyx_INCREF(__pyx_t_7); __pyx_v_e = ((PyObject*)__pyx_t_7); /*try:*/ { /* … */ /*finally:*/ { __pyx_L15_error:; /*exception exit:*/{ __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign __pyx_t_19 = 0; __pyx_t_20 = 0; __pyx_t_21 = 0; __pyx_t_22 = 0; __pyx_t_23 = 0; __pyx_t_24 = 0; __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0; __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0; __Pyx_XDECREF(__pyx_t_16); __pyx_t_16 = 0; __Pyx_ExceptionSwap(&__pyx_t_22, &__pyx_t_23, &__pyx_t_24); if ( unlikely(__Pyx_GetException(&__pyx_t_19, &__pyx_t_20, &__pyx_t_21) < 0)) __Pyx_ErrFetch(&__pyx_t_19, &__pyx_t_20, &__pyx_t_21); __Pyx_XGOTREF(__pyx_t_19); __Pyx_XGOTREF(__pyx_t_20); __Pyx_XGOTREF(__pyx_t_21); __Pyx_XGOTREF(__pyx_t_22); __Pyx_XGOTREF(__pyx_t_23); __Pyx_XGOTREF(__pyx_t_24); __pyx_t_9 = __pyx_lineno; __pyx_t_17 = __pyx_clineno; __pyx_t_18 = __pyx_filename; { __Pyx_DECREF(__pyx_v_e); __pyx_v_e = 0; } __Pyx_XGIVEREF(__pyx_t_22); __Pyx_XGIVEREF(__pyx_t_23); __Pyx_XGIVEREF(__pyx_t_24); __Pyx_ExceptionReset(__pyx_t_22, __pyx_t_23, __pyx_t_24); __Pyx_XGIVEREF(__pyx_t_19); __Pyx_XGIVEREF(__pyx_t_20); __Pyx_XGIVEREF(__pyx_t_21); __Pyx_ErrRestore(__pyx_t_19, __pyx_t_20, __pyx_t_21); __pyx_t_19 = 0; __pyx_t_20 = 0; __pyx_t_21 = 0; __pyx_t_22 = 0; __pyx_t_23 = 0; __pyx_t_24 = 0; __pyx_lineno = __pyx_t_9; __pyx_clineno = __pyx_t_17; __pyx_filename = __pyx_t_18; goto __pyx_L6_except_error; } } } goto __pyx_L6_except_error;
+0903: raise ValueError(f"Error parsing type {T}, {e}")
__pyx_t_11 = NULL;
__pyx_t_12 = __Pyx_PyObject_FormatSimple(__pyx_v_T, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 903, __pyx_L15_error)
__Pyx_GOTREF(__pyx_t_12);
__pyx_t_13 = __Pyx_PyObject_FormatSimple(__pyx_v_e, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 903, __pyx_L15_error)
__Pyx_GOTREF(__pyx_t_13);
__pyx_t_14[0] = __pyx_mstate_global->__pyx_kp_u_Error_parsing_type;
__pyx_t_14[1] = __pyx_t_12;
__pyx_t_14[2] = __pyx_mstate_global->__pyx_kp_u__7;
__pyx_t_14[3] = __pyx_t_13;
__pyx_t_15 = 21;
#if __Pyx_PyUnicode_Join_CAN_USE_KIND_AND_LENGTH
__pyx_t_15 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_14[1]) + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_14[3]);
#endif
__pyx_t_9 = 0;
#if __Pyx_PyUnicode_Join_CAN_USE_KIND_AND_LENGTH
__pyx_t_9 |= __Pyx_PyUnicode_KIND_04(__pyx_t_14[1]) | __Pyx_PyUnicode_KIND_04(__pyx_t_14[3]);
#endif
__pyx_t_16 = __Pyx_PyUnicode_Join(__pyx_t_14, 4, __pyx_t_15, __pyx_t_9);
if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 903, __pyx_L15_error)
__Pyx_GOTREF(__pyx_t_16);
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
__Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
__pyx_t_8 = 1;
{
PyObject *__pyx_callargs[2] = {__pyx_t_11, __pyx_t_16};
__pyx_t_10 = __Pyx_PyObject_FastCall((PyObject*)(((PyTypeObject*)PyExc_ValueError)), __pyx_callargs+__pyx_t_8, (2-__pyx_t_8) | (__pyx_t_8*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
__Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
__Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 903, __pyx_L15_error)
__Pyx_GOTREF(__pyx_t_10);
}
__Pyx_Raise(__pyx_t_10, 0, 0, 0);
__Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
__PYX_ERR(0, 903, __pyx_L15_error)
}
+0904: if T == str:
__pyx_t_1 = __Pyx_PyObject_RichCompareBool(__pyx_v_T, ((PyObject *)(&PyUnicode_Type)), Py_EQ); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 904, __pyx_L1_error) if (__pyx_t_1) { /* … */ }
+0905: return to_string(data)
__pyx_t_6 = __pyx_f_9datamodel_10converters_to_string(__pyx_v_data, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 905, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; __pyx_r = __pyx_t_6; } __Pyx_XDECREF(__pyx_temp); } __pyx_t_6 = 0; goto __pyx_L0;
+0906: if T == int:
__pyx_t_1 = __Pyx_PyObject_RichCompareBool(__pyx_v_T, ((PyObject *)(&PyLong_Type)), Py_EQ); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 906, __pyx_L1_error) if (__pyx_t_1) { /* … */ }
+0907: return to_integer(data)
__pyx_t_6 = __pyx_f_9datamodel_10converters_to_integer(__pyx_v_data, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 907, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; __pyx_r = __pyx_t_6; } __Pyx_XDECREF(__pyx_temp); } __pyx_t_6 = 0; goto __pyx_L0;
+0908: if T == float:
__pyx_t_1 = __Pyx_PyObject_RichCompareBool(__pyx_v_T, ((PyObject *)(&PyFloat_Type)), Py_EQ); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 908, __pyx_L1_error) if (__pyx_t_1) { /* … */ }
+0909: return to_float(data)
__pyx_t_6 = __pyx_f_9datamodel_10converters_to_float(__pyx_v_data, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 909, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; __pyx_r = __pyx_t_6; } __Pyx_XDECREF(__pyx_temp); } __pyx_t_6 = 0; goto __pyx_L0;
+0910: if T == datetime.date:
__pyx_t_1 = __Pyx_PyObject_RichCompareBool(__pyx_v_T, ((PyObject *)__pyx_mstate_global->__pyx_ptype_7cpython_8datetime_date), Py_EQ); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 910, __pyx_L1_error) if (__pyx_t_1) { /* … */ }
+0911: return to_date(data)
__pyx_t_6 = ((PyObject *)__pyx_f_9datamodel_10converters_to_date(__pyx_v_data, 0)); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 911, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; __pyx_r = __pyx_t_6; } __Pyx_XDECREF(__pyx_temp); } __pyx_t_6 = 0; goto __pyx_L0;
+0912: if T == datetime.datetime:
__pyx_t_1 = __Pyx_PyObject_RichCompareBool(__pyx_v_T, ((PyObject *)__pyx_mstate_global->__pyx_ptype_7cpython_8datetime_datetime), Py_EQ); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 912, __pyx_L1_error) if (__pyx_t_1) { /* … */ }
+0913: return to_datetime(data)
__pyx_t_6 = ((PyObject *)__pyx_f_9datamodel_10converters_to_datetime(__pyx_v_data, 0)); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 913, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; __pyx_r = __pyx_t_6; } __Pyx_XDECREF(__pyx_temp); } __pyx_t_6 = 0; goto __pyx_L0;
+0914: if T == UUID:
__Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_UUID); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 914, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_1 = __Pyx_PyObject_CompareBoolEq_object_object(__pyx_v_T, __pyx_t_6, Py_EQ); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 914, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (__pyx_t_1) { /* … */ }
+0915: return to_uuid(data)
__pyx_t_6 = __pyx_f_9datamodel_10converters_to_uuid(__pyx_v_data, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 915, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; __pyx_r = __pyx_t_6; } __Pyx_XDECREF(__pyx_temp); } __pyx_t_6 = 0; goto __pyx_L0;
+0916: elif is_dc(T):
__pyx_t_1 = __pyx_f_9datamodel_10converters_is_dc(__pyx_v_T); if (unlikely(__pyx_t_1 == ((int)-1) && PyErr_Occurred())) __PYX_ERR(0, 916, __pyx_L1_error) if (__pyx_t_1) { /* … */ }
+0917: return _parse_dataclass_type(T, data)
__pyx_t_6 = __pyx_f_9datamodel_10converters__parse_dataclass_type(__pyx_v_T, __pyx_v_data); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 917, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; __pyx_r = __pyx_t_6; } __Pyx_XDECREF(__pyx_temp); } __pyx_t_6 = 0; goto __pyx_L0;
+0918: elif T == Path:
__Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_Path); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 918, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_1 = __Pyx_PyObject_CompareBoolEq_object_object(__pyx_v_T, __pyx_t_6, Py_EQ); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 918, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (__pyx_t_1) { /* … */ }
+0919: if isinstance(data, str):
__pyx_t_1 = PyUnicode_Check(__pyx_v_data);
if (__pyx_t_1) {
/* … */
}
+0920: return Path(data)
__pyx_t_7 = NULL;
__Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_Path); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 920, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__pyx_t_8 = 1;
#if CYTHON_UNPACK_METHODS
if (unlikely(PyMethod_Check(__pyx_t_5))) {
__pyx_t_7 = PyMethod_GET_SELF(__pyx_t_5);
assert(__pyx_t_7);
PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_5);
__Pyx_INCREF(__pyx_t_7);
__Pyx_INCREF(__pyx__function);
__Pyx_DECREF_SET(__pyx_t_5, __pyx__function);
__pyx_t_8 = 0;
}
#endif
{
PyObject *__pyx_callargs[2] = {__pyx_t_7, __pyx_v_data};
__pyx_t_6 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_5, __pyx_callargs+__pyx_t_8, (2-__pyx_t_8) | (__pyx_t_8*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
__Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 920, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
}
{
PyObject *__pyx_temp;
{
__pyx_temp = __pyx_r;
__pyx_r = __pyx_t_6;
}
__Pyx_XDECREF(__pyx_temp);
}
__pyx_t_6 = 0;
goto __pyx_L0;
+0921: elif isinstance(data, Path):
__Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_Path); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 921, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_1 = PyObject_IsInstance(__pyx_v_data, __pyx_t_6); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(0, 921, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (__pyx_t_1) { /* … */ }
+0922: return data
{
PyObject *__pyx_temp;
{
__pyx_temp = __pyx_r;
__Pyx_INCREF(__pyx_v_data);
__pyx_r = __pyx_v_data;
}
__Pyx_XDECREF(__pyx_temp);
}
goto __pyx_L0;
0923: else:
+0924: try:
/*else*/ {
{
/*try:*/ {
/* … */
}
__pyx_L28_error:;
__Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
__Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
__Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
__Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
__Pyx_XDECREF(__pyx_t_16); __pyx_t_16 = 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;
/* … */
__pyx_L30_except_error:;
__Pyx_XGIVEREF(__pyx_t_4);
__Pyx_XGIVEREF(__pyx_t_3);
__Pyx_XGIVEREF(__pyx_t_2);
__Pyx_ExceptionReset(__pyx_t_4, __pyx_t_3, __pyx_t_2);
goto __pyx_L1_error;
__pyx_L32_try_return:;
__Pyx_XGIVEREF(__pyx_t_4);
__Pyx_XGIVEREF(__pyx_t_3);
__Pyx_XGIVEREF(__pyx_t_2);
__Pyx_ExceptionReset(__pyx_t_4, __pyx_t_3, __pyx_t_2);
goto __pyx_L0;
}
}
+0925: return Path(str(data))
__pyx_t_5 = NULL;
__Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_mstate_global->__pyx_n_u_Path); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 925, __pyx_L28_error)
__Pyx_GOTREF(__pyx_t_7);
__pyx_t_10 = __Pyx_PyObject_Unicode(__pyx_v_data); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 925, __pyx_L28_error)
__Pyx_GOTREF(__pyx_t_10);
__pyx_t_8 = 1;
#if CYTHON_UNPACK_METHODS
if (unlikely(PyMethod_Check(__pyx_t_7))) {
__pyx_t_5 = PyMethod_GET_SELF(__pyx_t_7);
assert(__pyx_t_5);
PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_7);
__Pyx_INCREF(__pyx_t_5);
__Pyx_INCREF(__pyx__function);
__Pyx_DECREF_SET(__pyx_t_7, __pyx__function);
__pyx_t_8 = 0;
}
#endif
{
PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_10};
__pyx_t_6 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_7, __pyx_callargs+__pyx_t_8, (2-__pyx_t_8) | (__pyx_t_8*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
__Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
__Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 925, __pyx_L28_error)
__Pyx_GOTREF(__pyx_t_6);
}
{
PyObject *__pyx_temp;
{
__pyx_temp = __pyx_r;
__pyx_r = __pyx_t_6;
}
__Pyx_XDECREF(__pyx_temp);
}
__pyx_t_6 = 0;
goto __pyx_L32_try_return;
+0926: except:
/*except:*/ {
__Pyx_AddTraceback("datamodel.converters._parse_builtin_type", __pyx_clineno, __pyx_lineno, __pyx_filename);
if (__Pyx_GetException(&__pyx_t_6, &__pyx_t_7, &__pyx_t_10) < 0) __PYX_ERR(0, 926, __pyx_L30_except_error)
__Pyx_XGOTREF(__pyx_t_6);
__Pyx_XGOTREF(__pyx_t_7);
__Pyx_XGOTREF(__pyx_t_10);
+0927: raise ValueError(f"Cannot convert {data} to Path")
__pyx_t_16 = NULL;
__pyx_t_11 = __Pyx_PyObject_FormatSimple(__pyx_v_data, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 927, __pyx_L30_except_error)
__Pyx_GOTREF(__pyx_t_11);
__pyx_t_25[0] = __pyx_mstate_global->__pyx_kp_u_Cannot_convert;
__pyx_t_25[1] = __pyx_t_11;
__pyx_t_25[2] = __pyx_mstate_global->__pyx_kp_u_to_Path;
__pyx_t_15 = 23;
#if __Pyx_PyUnicode_Join_CAN_USE_KIND_AND_LENGTH
__pyx_t_15 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_25[1]);
#endif
__pyx_t_17 = 0;
#if __Pyx_PyUnicode_Join_CAN_USE_KIND_AND_LENGTH
__pyx_t_17 |= __Pyx_PyUnicode_KIND_04(__pyx_t_25[1]);
#endif
__pyx_t_13 = __Pyx_PyUnicode_Join(__pyx_t_25, 3, __pyx_t_15, __pyx_t_17);
if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 927, __pyx_L30_except_error)
__Pyx_GOTREF(__pyx_t_13);
__Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
__pyx_t_8 = 1;
{
PyObject *__pyx_callargs[2] = {__pyx_t_16, __pyx_t_13};
__pyx_t_5 = __Pyx_PyObject_FastCall((PyObject*)(((PyTypeObject*)PyExc_ValueError)), __pyx_callargs+__pyx_t_8, (2-__pyx_t_8) | (__pyx_t_8*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
__Pyx_XDECREF(__pyx_t_16); __pyx_t_16 = 0;
__Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 927, __pyx_L30_except_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, 927, __pyx_L30_except_error)
}
+0928: elif T == dict:
__pyx_t_1 = __Pyx_PyObject_RichCompareBool(__pyx_v_T, ((PyObject *)(&PyDict_Type)), Py_EQ); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 928, __pyx_L1_error) if (__pyx_t_1) { /* … */ }
+0929: if not isinstance(data, dict):
__pyx_t_1 = PyDict_Check(__pyx_v_data);
__pyx_t_26 = (!__pyx_t_1);
if (unlikely(__pyx_t_26)) {
/* … */
}
+0930: raise ValueError(
__pyx_t_7 = NULL;
+0931: f"Expected dict, got {type(data).__name__}"
__pyx_t_6 = __Pyx_PyObject_GetAttrStr(((PyObject *)Py_TYPE(__pyx_v_data)), __pyx_mstate_global->__pyx_n_u_name); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 931, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_5 = __Pyx_PyObject_FormatSimple(__pyx_t_6, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 931, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = __Pyx_PyUnicode_Concat(__pyx_mstate_global->__pyx_kp_u_Expected_dict_got, __pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 931, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_8 = 1; { PyObject *__pyx_callargs[2] = {__pyx_t_7, __pyx_t_6}; __pyx_t_10 = __Pyx_PyObject_FastCall((PyObject*)(((PyTypeObject*)PyExc_ValueError)), __pyx_callargs+__pyx_t_8, (2-__pyx_t_8) | (__pyx_t_8*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 930, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); } __Pyx_Raise(__pyx_t_10, 0, 0, 0); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __PYX_ERR(0, 930, __pyx_L1_error)
0932: )
+0933: return data
{
PyObject *__pyx_temp;
{
__pyx_temp = __pyx_r;
__Pyx_INCREF(__pyx_v_data);
__pyx_r = __pyx_v_data;
}
__Pyx_XDECREF(__pyx_temp);
}
goto __pyx_L0;
+0934: elif T == list:
__pyx_t_26 = __Pyx_PyObject_RichCompareBool(__pyx_v_T, ((PyObject *)(&PyList_Type)), Py_EQ); if (unlikely((__pyx_t_26 < 0))) __PYX_ERR(0, 934, __pyx_L1_error) if (__pyx_t_26) { /* … */ }
+0935: if not isinstance(data, (list, tuple)):
__pyx_t_1 = PyList_Check(__pyx_v_data); if (!__pyx_t_1) { } else { __pyx_t_26 = __pyx_t_1; goto __pyx_L38_bool_binop_done; } __pyx_t_1 = PyTuple_Check(__pyx_v_data); __pyx_t_26 = __pyx_t_1; __pyx_L38_bool_binop_done:; __pyx_t_1 = (!__pyx_t_26); if (__pyx_t_1) { /* … */ }
+0936: data = [data]
__pyx_t_10 = PyList_New(1); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 936, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_INCREF(__pyx_v_data); __Pyx_GIVEREF(__pyx_v_data); if (__Pyx_PyList_SET_ITEM(__pyx_t_10, 0, __pyx_v_data) != (0)) __PYX_ERR(0, 936, __pyx_L1_error); __Pyx_DECREF_SET(__pyx_v_data, __pyx_t_10); __pyx_t_10 = 0;
+0937: return data
{
PyObject *__pyx_temp;
{
__pyx_temp = __pyx_r;
__Pyx_INCREF(__pyx_v_data);
__pyx_r = __pyx_v_data;
}
__Pyx_XDECREF(__pyx_temp);
}
goto __pyx_L0;
0938: else:
0939: # Try encoders dict:
+0940: try:
/*else*/ {
{
/*try:*/ {
/* … */
}
__pyx_L40_error:;
__Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
__Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
__Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
__Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
__Pyx_XDECREF(__pyx_t_16); __pyx_t_16 = 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;
/* … */
__pyx_L42_except_error:;
__Pyx_XGIVEREF(__pyx_t_2);
__Pyx_XGIVEREF(__pyx_t_3);
__Pyx_XGIVEREF(__pyx_t_4);
__Pyx_ExceptionReset(__pyx_t_2, __pyx_t_3, __pyx_t_4);
goto __pyx_L1_error;
__pyx_L44_try_return:;
__Pyx_XGIVEREF(__pyx_t_2);
__Pyx_XGIVEREF(__pyx_t_3);
__Pyx_XGIVEREF(__pyx_t_4);
__Pyx_ExceptionReset(__pyx_t_2, __pyx_t_3, __pyx_t_4);
goto __pyx_L0;
__pyx_L43_except_return:;
__Pyx_XGIVEREF(__pyx_t_2);
__Pyx_XGIVEREF(__pyx_t_3);
__Pyx_XGIVEREF(__pyx_t_4);
__Pyx_ExceptionReset(__pyx_t_2, __pyx_t_3, __pyx_t_4);
goto __pyx_L0;
}
}
+0941: if field._encoder_fn is None:
__pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_field, __pyx_mstate_global->__pyx_n_u_encoder_fn); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 941, __pyx_L40_error) __Pyx_GOTREF(__pyx_t_10); __pyx_t_1 = (__pyx_t_10 == Py_None); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; if (__pyx_t_1) { /* … */ }
+0942: field._encoder_fn = encoders[T]
__Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_mstate_global->__pyx_n_u_encoders); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 942, __pyx_L40_error) __Pyx_GOTREF(__pyx_t_10); __pyx_t_6 = __Pyx_PyObject_GetItem(__pyx_t_10, __pyx_v_T); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 942, __pyx_L40_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; if (__Pyx_PyObject_SetAttrStr(__pyx_v_field, __pyx_mstate_global->__pyx_n_u_encoder_fn, __pyx_t_6) < (0)) __PYX_ERR(0, 942, __pyx_L40_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
+0943: return field._encoder_fn(data)
__pyx_t_10 = __pyx_v_field;
__Pyx_INCREF(__pyx_t_10);
__pyx_t_8 = 0;
{
PyObject *__pyx_callargs[2] = {__pyx_t_10, __pyx_v_data};
__pyx_t_6 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_encoder_fn, __pyx_callargs+__pyx_t_8, (2-__pyx_t_8) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
__Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 943, __pyx_L40_error)
__Pyx_GOTREF(__pyx_t_6);
}
{
PyObject *__pyx_temp;
{
__pyx_temp = __pyx_r;
__pyx_r = __pyx_t_6;
}
__Pyx_XDECREF(__pyx_temp);
}
__pyx_t_6 = 0;
goto __pyx_L44_try_return;
+0944: except KeyError:
__pyx_t_17 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(((PyTypeObject*)PyExc_KeyError)))); if (__pyx_t_17) { __Pyx_AddTraceback("datamodel.converters._parse_builtin_type", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_6, &__pyx_t_10, &__pyx_t_7) < 0) __PYX_ERR(0, 944, __pyx_L42_except_error) __Pyx_XGOTREF(__pyx_t_6); __Pyx_XGOTREF(__pyx_t_10); __Pyx_XGOTREF(__pyx_t_7);
0945: # attempt direct construction:
+0946: if isinstance(T, type):
__pyx_t_1 = PyType_Check(__pyx_v_T);
if (__pyx_t_1) {
/* … */
}
+0947: try:
{
/*try:*/ {
/* … */
}
__Pyx_XDECREF(__pyx_t_24); __pyx_t_24 = 0;
__Pyx_XDECREF(__pyx_t_23); __pyx_t_23 = 0;
__Pyx_XDECREF(__pyx_t_22); __pyx_t_22 = 0;
goto __pyx_L57_try_end;
__pyx_L50_error:;
__Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
__Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
__Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
__Pyx_XDECREF(__pyx_t_16); __pyx_t_16 = 0;
__Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
/* … */
__pyx_L52_except_error:;
__Pyx_XGIVEREF(__pyx_t_24);
__Pyx_XGIVEREF(__pyx_t_23);
__Pyx_XGIVEREF(__pyx_t_22);
__Pyx_ExceptionReset(__pyx_t_24, __pyx_t_23, __pyx_t_22);
goto __pyx_L42_except_error;
__pyx_L54_try_return:;
__Pyx_XGIVEREF(__pyx_t_24);
__Pyx_XGIVEREF(__pyx_t_23);
__Pyx_XGIVEREF(__pyx_t_22);
__Pyx_ExceptionReset(__pyx_t_24, __pyx_t_23, __pyx_t_22);
goto __pyx_L43_except_return;
__pyx_L51_exception_handled:;
__Pyx_XGIVEREF(__pyx_t_24);
__Pyx_XGIVEREF(__pyx_t_23);
__Pyx_XGIVEREF(__pyx_t_22);
__Pyx_ExceptionReset(__pyx_t_24, __pyx_t_23, __pyx_t_22);
__pyx_L57_try_end:;
}
+0948: if isinstance(data, dict):
__pyx_t_1 = PyDict_Check(__pyx_v_data);
if (__pyx_t_1) {
/* … */
}
+0949: return T(**data)
if (unlikely(__pyx_v_data == Py_None)) {
PyErr_SetString(PyExc_TypeError, "argument after ** must be a mapping, not NoneType");
__PYX_ERR(0, 949, __pyx_L50_error)
}
if (likely(PyDict_CheckExact(__pyx_v_data))) {
__pyx_t_5 = PyDict_Copy(__pyx_v_data); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 949, __pyx_L50_error)
__Pyx_GOTREF(__pyx_t_5);
} else {
__pyx_t_5 = __Pyx_PyObject_CallOneArg((PyObject*)&PyDict_Type, __pyx_v_data); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 949, __pyx_L50_error)
__Pyx_GOTREF(__pyx_t_5);
}
__pyx_t_13 = __Pyx_PyObject_Call(__pyx_v_T, __pyx_mstate_global->__pyx_empty_tuple, __pyx_t_5); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 949, __pyx_L50_error)
__Pyx_GOTREF(__pyx_t_13);
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
{
PyObject *__pyx_temp;
{
__pyx_temp = __pyx_r;
__pyx_r = __pyx_t_13;
}
__Pyx_XDECREF(__pyx_temp);
}
__pyx_t_13 = 0;
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
__Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
goto __pyx_L54_try_return;
+0950: elif isinstance(data, (list, tuple)):
__pyx_t_26 = PyList_Check(__pyx_v_data); if (!__pyx_t_26) { } else { __pyx_t_1 = __pyx_t_26; goto __pyx_L59_bool_binop_done; } __pyx_t_26 = PyTuple_Check(__pyx_v_data); __pyx_t_1 = __pyx_t_26; __pyx_L59_bool_binop_done:; if (__pyx_t_1) { /* … */ }
+0951: return T(*data)
__pyx_t_13 = __Pyx_PySequence_Tuple(__pyx_v_data); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 951, __pyx_L50_error) __Pyx_GOTREF(__pyx_t_13); __pyx_t_5 = __Pyx_PyObject_Call(__pyx_v_T, __pyx_t_13, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 951, __pyx_L50_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; __pyx_r = __pyx_t_5; } __Pyx_XDECREF(__pyx_temp); } __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; goto __pyx_L54_try_return;
+0952: elif isinstance(data, str):
__pyx_t_1 = PyUnicode_Check(__pyx_v_data);
if (__pyx_t_1) {
/* … */
}
+0953: return T(data)
__pyx_t_13 = NULL;
__Pyx_INCREF(__pyx_v_T);
__pyx_t_16 = __pyx_v_T;
__pyx_t_8 = 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_8 = 0;
}
#endif
{
PyObject *__pyx_callargs[2] = {__pyx_t_13, __pyx_v_data};
__pyx_t_5 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_16, __pyx_callargs+__pyx_t_8, (2-__pyx_t_8) | (__pyx_t_8*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
__Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
__Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 953, __pyx_L50_error)
__Pyx_GOTREF(__pyx_t_5);
}
{
PyObject *__pyx_temp;
{
__pyx_temp = __pyx_r;
__pyx_r = __pyx_t_5;
}
__Pyx_XDECREF(__pyx_temp);
}
__pyx_t_5 = 0;
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
__Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
goto __pyx_L54_try_return;
+0954: except (TypeError, ValueError):
__pyx_t_17 = __Pyx_PyErr_ExceptionMatches2(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), ((PyObject *)(((PyTypeObject*)PyExc_ValueError))));
if (__pyx_t_17) {
__Pyx_ErrRestore(0,0,0);
goto __pyx_L51_exception_handled;
}
goto __pyx_L52_except_error;
0955: pass
+0956: return data
{
PyObject *__pyx_temp;
{
__pyx_temp = __pyx_r;
__Pyx_INCREF(__pyx_v_data);
__pyx_r = __pyx_v_data;
}
__Pyx_XDECREF(__pyx_temp);
}
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
__Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
goto __pyx_L43_except_return;
}
+0957: except (TypeError) as e:
__pyx_t_17 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(((PyTypeObject*)PyExc_TypeError)))); if (__pyx_t_17) { __Pyx_AddTraceback("datamodel.converters._parse_builtin_type", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_7, &__pyx_t_10, &__pyx_t_6) < 0) __PYX_ERR(0, 957, __pyx_L42_except_error) __Pyx_XGOTREF(__pyx_t_7); __Pyx_XGOTREF(__pyx_t_10); __Pyx_XGOTREF(__pyx_t_6); __Pyx_INCREF(__pyx_t_10); __pyx_v_e = ((PyObject*)__pyx_t_10); /*try:*/ { /* … */ /*finally:*/ { __pyx_L68_error:; /*exception exit:*/{ __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign __pyx_t_22 = 0; __pyx_t_23 = 0; __pyx_t_24 = 0; __pyx_t_21 = 0; __pyx_t_20 = 0; __pyx_t_19 = 0; __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0; __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0; __Pyx_XDECREF(__pyx_t_16); __pyx_t_16 = 0; __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_ExceptionSwap(&__pyx_t_21, &__pyx_t_20, &__pyx_t_19); if ( unlikely(__Pyx_GetException(&__pyx_t_22, &__pyx_t_23, &__pyx_t_24) < 0)) __Pyx_ErrFetch(&__pyx_t_22, &__pyx_t_23, &__pyx_t_24); __Pyx_XGOTREF(__pyx_t_22); __Pyx_XGOTREF(__pyx_t_23); __Pyx_XGOTREF(__pyx_t_24); __Pyx_XGOTREF(__pyx_t_21); __Pyx_XGOTREF(__pyx_t_20); __Pyx_XGOTREF(__pyx_t_19); __pyx_t_17 = __pyx_lineno; __pyx_t_9 = __pyx_clineno; __pyx_t_18 = __pyx_filename; { __Pyx_DECREF(__pyx_v_e); __pyx_v_e = 0; } __Pyx_XGIVEREF(__pyx_t_21); __Pyx_XGIVEREF(__pyx_t_20); __Pyx_XGIVEREF(__pyx_t_19); __Pyx_ExceptionReset(__pyx_t_21, __pyx_t_20, __pyx_t_19); __Pyx_XGIVEREF(__pyx_t_22); __Pyx_XGIVEREF(__pyx_t_23); __Pyx_XGIVEREF(__pyx_t_24); __Pyx_ErrRestore(__pyx_t_22, __pyx_t_23, __pyx_t_24); __pyx_t_22 = 0; __pyx_t_23 = 0; __pyx_t_24 = 0; __pyx_t_21 = 0; __pyx_t_20 = 0; __pyx_t_19 = 0; __pyx_lineno = __pyx_t_17; __pyx_clineno = __pyx_t_9; __pyx_filename = __pyx_t_18; goto __pyx_L42_except_error; } } }
+0958: raise TypeError(f"Error type {T}: {e}") from e
__pyx_t_16 = NULL;
__pyx_t_13 = __Pyx_PyObject_FormatSimple(__pyx_v_T, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 958, __pyx_L68_error)
__Pyx_GOTREF(__pyx_t_13);
__pyx_t_11 = __Pyx_PyObject_FormatSimple(__pyx_v_e, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 958, __pyx_L68_error)
__Pyx_GOTREF(__pyx_t_11);
__pyx_t_14[0] = __pyx_mstate_global->__pyx_kp_u_Error_type;
__pyx_t_14[1] = __pyx_t_13;
__pyx_t_14[2] = __pyx_mstate_global->__pyx_kp_u__5;
__pyx_t_14[3] = __pyx_t_11;
__pyx_t_15 = 13;
#if __Pyx_PyUnicode_Join_CAN_USE_KIND_AND_LENGTH
__pyx_t_15 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_14[1]) + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_14[3]);
#endif
__pyx_t_17 = 0;
#if __Pyx_PyUnicode_Join_CAN_USE_KIND_AND_LENGTH
__pyx_t_17 |= __Pyx_PyUnicode_KIND_04(__pyx_t_14[1]) | __Pyx_PyUnicode_KIND_04(__pyx_t_14[3]);
#endif
__pyx_t_12 = __Pyx_PyUnicode_Join(__pyx_t_14, 4, __pyx_t_15, __pyx_t_17);
if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 958, __pyx_L68_error)
__Pyx_GOTREF(__pyx_t_12);
__Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
__Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
__pyx_t_8 = 1;
{
PyObject *__pyx_callargs[2] = {__pyx_t_16, __pyx_t_12};
__pyx_t_5 = __Pyx_PyObject_FastCall((PyObject*)(((PyTypeObject*)PyExc_TypeError)), __pyx_callargs+__pyx_t_8, (2-__pyx_t_8) | (__pyx_t_8*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
__Pyx_XDECREF(__pyx_t_16); __pyx_t_16 = 0;
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 958, __pyx_L68_error)
__Pyx_GOTREF(__pyx_t_5);
}
__Pyx_Raise(__pyx_t_5, 0, 0, __pyx_v_e);
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
__PYX_ERR(0, 958, __pyx_L68_error)
}
+0959: except (ValueError) as e:
__pyx_t_9 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(((PyTypeObject*)PyExc_ValueError)))); if (__pyx_t_9) { __Pyx_AddTraceback("datamodel.converters._parse_builtin_type", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_6, &__pyx_t_10, &__pyx_t_7) < 0) __PYX_ERR(0, 959, __pyx_L42_except_error) __Pyx_XGOTREF(__pyx_t_6); __Pyx_XGOTREF(__pyx_t_10); __Pyx_XGOTREF(__pyx_t_7); __Pyx_INCREF(__pyx_t_10); __pyx_v_e = ((PyObject*)__pyx_t_10); /*try:*/ { /* … */ /*finally:*/ { __pyx_L79_error:; /*exception exit:*/{ __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign __pyx_t_19 = 0; __pyx_t_20 = 0; __pyx_t_21 = 0; __pyx_t_24 = 0; __pyx_t_23 = 0; __pyx_t_22 = 0; __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0; __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0; __Pyx_XDECREF(__pyx_t_16); __pyx_t_16 = 0; __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_ExceptionSwap(&__pyx_t_24, &__pyx_t_23, &__pyx_t_22); if ( unlikely(__Pyx_GetException(&__pyx_t_19, &__pyx_t_20, &__pyx_t_21) < 0)) __Pyx_ErrFetch(&__pyx_t_19, &__pyx_t_20, &__pyx_t_21); __Pyx_XGOTREF(__pyx_t_19); __Pyx_XGOTREF(__pyx_t_20); __Pyx_XGOTREF(__pyx_t_21); __Pyx_XGOTREF(__pyx_t_24); __Pyx_XGOTREF(__pyx_t_23); __Pyx_XGOTREF(__pyx_t_22); __pyx_t_9 = __pyx_lineno; __pyx_t_17 = __pyx_clineno; __pyx_t_18 = __pyx_filename; { __Pyx_DECREF(__pyx_v_e); __pyx_v_e = 0; } __Pyx_XGIVEREF(__pyx_t_24); __Pyx_XGIVEREF(__pyx_t_23); __Pyx_XGIVEREF(__pyx_t_22); __Pyx_ExceptionReset(__pyx_t_24, __pyx_t_23, __pyx_t_22); __Pyx_XGIVEREF(__pyx_t_19); __Pyx_XGIVEREF(__pyx_t_20); __Pyx_XGIVEREF(__pyx_t_21); __Pyx_ErrRestore(__pyx_t_19, __pyx_t_20, __pyx_t_21); __pyx_t_19 = 0; __pyx_t_20 = 0; __pyx_t_21 = 0; __pyx_t_24 = 0; __pyx_t_23 = 0; __pyx_t_22 = 0; __pyx_lineno = __pyx_t_9; __pyx_clineno = __pyx_t_17; __pyx_filename = __pyx_t_18; goto __pyx_L42_except_error; } } } goto __pyx_L42_except_error;
+0960: raise ValueError(
__pyx_t_12 = NULL;
+0961: f"Error parsing type {T}: {e}"
__pyx_t_16 = __Pyx_PyObject_FormatSimple(__pyx_v_T, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 961, __pyx_L79_error) __Pyx_GOTREF(__pyx_t_16); __pyx_t_11 = __Pyx_PyObject_FormatSimple(__pyx_v_e, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 961, __pyx_L79_error) __Pyx_GOTREF(__pyx_t_11); __pyx_t_14[0] = __pyx_mstate_global->__pyx_kp_u_Error_parsing_type; __pyx_t_14[1] = __pyx_t_16; __pyx_t_14[2] = __pyx_mstate_global->__pyx_kp_u__5; __pyx_t_14[3] = __pyx_t_11; __pyx_t_15 = 21; #if __Pyx_PyUnicode_Join_CAN_USE_KIND_AND_LENGTH __pyx_t_15 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_14[1]) + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_14[3]); #endif __pyx_t_9 = 0; #if __Pyx_PyUnicode_Join_CAN_USE_KIND_AND_LENGTH __pyx_t_9 |= __Pyx_PyUnicode_KIND_04(__pyx_t_14[1]) | __Pyx_PyUnicode_KIND_04(__pyx_t_14[3]); #endif __pyx_t_13 = __Pyx_PyUnicode_Join(__pyx_t_14, 4, __pyx_t_15, __pyx_t_9); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 961, __pyx_L79_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __pyx_t_8 = 1; { PyObject *__pyx_callargs[2] = {__pyx_t_12, __pyx_t_13}; __pyx_t_5 = __Pyx_PyObject_FastCall((PyObject*)(((PyTypeObject*)PyExc_ValueError)), __pyx_callargs+__pyx_t_8, (2-__pyx_t_8) | (__pyx_t_8*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 960, __pyx_L79_error) __Pyx_GOTREF(__pyx_t_5); }
+0962: ) from e
__Pyx_Raise(__pyx_t_5, 0, 0, __pyx_v_e); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __PYX_ERR(0, 960, __pyx_L79_error) }
0963:
+0964: cpdef object parse_basic(object T, object data, object encoder = None):
static PyObject *__pyx_pw_9datamodel_10converters_33parse_basic(PyObject *__pyx_self,
#if CYTHON_VECTORCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyObject *__pyx_f_9datamodel_10converters_parse_basic(PyObject *__pyx_v_T, PyObject *__pyx_v_data, CYTHON_UNUSED int __pyx_skip_dispatch, struct __pyx_opt_args_9datamodel_10converters_parse_basic *__pyx_optional_args) {
PyObject *__pyx_v_encoder = ((PyObject *)Py_None);
PyObject *__pyx_v_e = NULL;
PyObject *__pyx_r = NULL;
if (__pyx_optional_args) {
if (__pyx_optional_args->__pyx_n > 0) {
__pyx_v_encoder = __pyx_optional_args->encoder;
}
}
/* … */
/* function exit code */
__pyx_r = Py_None; __Pyx_INCREF(Py_None);
goto __pyx_L0;
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_2);
__Pyx_XDECREF(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_9);
__Pyx_XDECREF(__pyx_t_11);
__Pyx_XDECREF(__pyx_t_12);
__Pyx_XDECREF(__pyx_t_13);
__Pyx_XDECREF(__pyx_t_14);
__Pyx_XDECREF(__pyx_t_15);
__Pyx_XDECREF(__pyx_t_18);
__Pyx_AddTraceback("datamodel.converters.parse_basic", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = 0;
__pyx_L0:;
__Pyx_XDECREF(__pyx_v_e);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* Python wrapper */
static PyObject *__pyx_pw_9datamodel_10converters_33parse_basic(PyObject *__pyx_self,
#if CYTHON_VECTORCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_9datamodel_10converters_32parse_basic, "parse_basic(T, data, encoder=None)\n\nparse_basic.\n\nParse a value to primitive types as str or int.\n--- (int, float, str, bool, bytes)");
static PyMethodDef __pyx_mdef_9datamodel_10converters_33parse_basic = {"parse_basic", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9datamodel_10converters_33parse_basic, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_9datamodel_10converters_32parse_basic};
static PyObject *__pyx_pw_9datamodel_10converters_33parse_basic(PyObject *__pyx_self,
#if CYTHON_VECTORCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
PyObject *__pyx_v_T = 0;
PyObject *__pyx_v_data = 0;
PyObject *__pyx_v_encoder = 0;
#if !CYTHON_VECTORCALL
CYTHON_UNUSED Py_ssize_t __pyx_nargs;
#endif
CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("parse_basic (wrapper)", 0);
#if !CYTHON_VECTORCALL
#if CYTHON_ASSUME_SAFE_SIZE
__pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
#else
__pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
#endif
#endif
__pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
{
PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_T,&__pyx_mstate_global->__pyx_n_u_data,&__pyx_mstate_global->__pyx_n_u_encoder,0};
PyObject* values[3] = {0,0,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, 964, __pyx_L3_error)
if (__pyx_kwds_len > 0) {
switch (__pyx_nargs) {
case 3:
values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 964, __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, 964, __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, 964, __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, "parse_basic", 0) < (0)) __PYX_ERR(0, 964, __pyx_L3_error)
if (!values[2]) values[2] = __Pyx_NewRef(((PyObject *)Py_None));
for (Py_ssize_t i = __pyx_nargs; i < 2; i++) {
if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("parse_basic", 0, 2, 3, i); __PYX_ERR(0, 964, __pyx_L3_error) }
}
} else {
switch (__pyx_nargs) {
case 3:
values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2);
if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 964, __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, 964, __pyx_L3_error)
values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 964, __pyx_L3_error)
break;
default: goto __pyx_L5_argtuple_error;
}
if (!values[2]) values[2] = __Pyx_NewRef(((PyObject *)Py_None));
}
__pyx_v_T = values[0];
__pyx_v_data = values[1];
__pyx_v_encoder = values[2];
}
goto __pyx_L6_skip;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("parse_basic", 0, 2, 3, __pyx_nargs); __PYX_ERR(0, 964, __pyx_L3_error)
__pyx_L6_skip:;
goto __pyx_L4_argument_unpacking_done;
__pyx_L3_error:;
for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
Py_XDECREF(values[__pyx_temp]);
}
__Pyx_AddTraceback("datamodel.converters.parse_basic", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
__pyx_r = __pyx_pf_9datamodel_10converters_32parse_basic(__pyx_self, __pyx_v_T, __pyx_v_data, __pyx_v_encoder);
/* function exit code */
for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
Py_XDECREF(values[__pyx_temp]);
}
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_9datamodel_10converters_32parse_basic(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_T, PyObject *__pyx_v_data, PyObject *__pyx_v_encoder) {
PyObject *__pyx_r = NULL;
__pyx_t_2.__pyx_n = 1;
__pyx_t_2.encoder = __pyx_v_encoder;
__pyx_t_1 = __pyx_f_9datamodel_10converters_parse_basic(__pyx_v_T, __pyx_v_data, 1, &__pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 964, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
{
PyObject *__pyx_temp;
{
__pyx_temp = __pyx_r;
__pyx_r = __pyx_t_1;
}
__Pyx_XDECREF(__pyx_temp);
}
__pyx_t_1 = 0;
goto __pyx_L0;
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_AddTraceback("datamodel.converters.parse_basic", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_gb_9datamodel_10converters_18_parse_typing_type_2generator1(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */
/* … */
__pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_9datamodel_10converters_33parse_basic, 0, __pyx_mstate_global->__pyx_n_u_parse_basic, NULL, __pyx_mstate_global->__pyx_n_u_datamodel_converters, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[22])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 964, __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_mstate_global->__pyx_tuple[6]);
if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_parse_basic, __pyx_t_2) < (0)) __PYX_ERR(0, 964, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
/* … */
struct __pyx_opt_args_9datamodel_10converters_parse_basic {
int __pyx_n;
PyObject *encoder;
};
0965: """parse_basic.
0966:
0967: Parse a value to primitive types as str or int.
0968: --- (int, float, str, bool, bytes)
0969: """
+0970: if T == str:
__pyx_t_1 = __Pyx_PyObject_RichCompareBool(__pyx_v_T, ((PyObject *)(&PyUnicode_Type)), Py_EQ); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 970, __pyx_L1_error) if (__pyx_t_1) { /* … */ }
+0971: if isinstance(data, str):
__pyx_t_1 = PyUnicode_Check(__pyx_v_data);
if (__pyx_t_1) {
/* … */
}
+0972: return data
{
PyObject *__pyx_temp;
{
__pyx_temp = __pyx_r;
__Pyx_INCREF(__pyx_v_data);
__pyx_r = __pyx_v_data;
}
__Pyx_XDECREF(__pyx_temp);
}
goto __pyx_L0;
+0973: elif data is not None:
__pyx_t_1 = (__pyx_v_data != Py_None);
if (__pyx_t_1) {
/* … */
}
+0974: return str(data)
__pyx_t_2 = __Pyx_PyObject_Unicode(__pyx_v_data); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 974, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; __pyx_r = __pyx_t_2; } __Pyx_XDECREF(__pyx_temp); } __pyx_t_2 = 0; goto __pyx_L0;
+0975: if T == int:
__pyx_t_1 = __Pyx_PyObject_RichCompareBool(__pyx_v_T, ((PyObject *)(&PyLong_Type)), Py_EQ); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 975, __pyx_L1_error) if (__pyx_t_1) { /* … */ }
+0976: if isinstance(data, int):
__pyx_t_1 = PyLong_Check(__pyx_v_data);
if (__pyx_t_1) {
/* … */
}
+0977: return data
{
PyObject *__pyx_temp;
{
__pyx_temp = __pyx_r;
__Pyx_INCREF(__pyx_v_data);
__pyx_r = __pyx_v_data;
}
__Pyx_XDECREF(__pyx_temp);
}
goto __pyx_L0;
+0978: elif data is not None:
__pyx_t_1 = (__pyx_v_data != Py_None);
if (__pyx_t_1) {
/* … */
}
+0979: return int(data)
__pyx_t_2 = __Pyx_PyNumber_Int(__pyx_v_data); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 979, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; __pyx_r = __pyx_t_2; } __Pyx_XDECREF(__pyx_temp); } __pyx_t_2 = 0; goto __pyx_L0;
+0980: if T == bytes:
__pyx_t_1 = __Pyx_PyObject_RichCompareBool(__pyx_v_T, ((PyObject *)(&PyBytes_Type)), Py_EQ); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 980, __pyx_L1_error) if (__pyx_t_1) { /* … */ }
+0981: if data is not None:
__pyx_t_1 = (__pyx_v_data != Py_None);
if (__pyx_t_1) {
/* … */
}
+0982: return bytes(data)
__pyx_t_3 = NULL;
__pyx_t_4 = 1;
{
PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_v_data};
__pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)(&PyBytes_Type), __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;
if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 982, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
}
{
PyObject *__pyx_temp;
{
__pyx_temp = __pyx_r;
__pyx_r = __pyx_t_2;
}
__Pyx_XDECREF(__pyx_temp);
}
__pyx_t_2 = 0;
goto __pyx_L0;
+0983: if T == UUID or T == pgproto.UUID:
__Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_UUID); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 983, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_5 = __Pyx_PyObject_CompareBoolEq_object_object(__pyx_v_T, __pyx_t_2, Py_EQ); if (unlikely((__pyx_t_5 < 0))) __PYX_ERR(0, 983, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (!__pyx_t_5) { } else { __pyx_t_1 = __pyx_t_5; goto __pyx_L10_bool_binop_done; } __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_pgproto); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 983, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_UUID); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 983, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_5 = __Pyx_PyObject_CompareBoolEq_object_object(__pyx_v_T, __pyx_t_3, Py_EQ); if (unlikely((__pyx_t_5 < 0))) __PYX_ERR(0, 983, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_1 = __pyx_t_5; __pyx_L10_bool_binop_done:; if (__pyx_t_1) { /* … */ }
+0984: return to_uuid(data)
__pyx_t_3 = __pyx_f_9datamodel_10converters_to_uuid(__pyx_v_data, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 984, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; __pyx_r = __pyx_t_3; } __Pyx_XDECREF(__pyx_temp); } __pyx_t_3 = 0; goto __pyx_L0;
+0985: if T == bool:
__pyx_t_1 = __Pyx_PyObject_RichCompareBool(__pyx_v_T, ((PyObject *)(&PyBool_Type)), Py_EQ); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 985, __pyx_L1_error) if (__pyx_t_1) { /* … */ }
+0986: if isinstance(data, bool):
__pyx_t_1 = PyBool_Check(__pyx_v_data);
if (__pyx_t_1) {
/* … */
}
+0987: return data
{
PyObject *__pyx_temp;
{
__pyx_temp = __pyx_r;
__Pyx_INCREF(__pyx_v_data);
__pyx_r = __pyx_v_data;
}
__Pyx_XDECREF(__pyx_temp);
}
goto __pyx_L0;
0988: # function encoder:
+0989: if encoder:
__pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_encoder); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 989, __pyx_L1_error) if (__pyx_t_1) { /* … */ }
+0990: if is_callable(encoder):
__pyx_t_1 = __pyx_f_9datamodel_10converters_is_callable(__pyx_v_encoder); if (unlikely(__pyx_t_1 == ((int)-1) && PyErr_Occurred())) __PYX_ERR(0, 990, __pyx_L1_error) if (__pyx_t_1) { /* … */ }
0991: # using a function encoder:
+0992: try:
{
/*try:*/ {
/* … */
}
__pyx_L16_error:;
__Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
__pyx_L18_except_error:;
__Pyx_XGIVEREF(__pyx_t_6);
__Pyx_XGIVEREF(__pyx_t_7);
__Pyx_XGIVEREF(__pyx_t_8);
__Pyx_ExceptionReset(__pyx_t_6, __pyx_t_7, __pyx_t_8);
goto __pyx_L1_error;
__pyx_L20_try_return:;
__Pyx_XGIVEREF(__pyx_t_6);
__Pyx_XGIVEREF(__pyx_t_7);
__Pyx_XGIVEREF(__pyx_t_8);
__Pyx_ExceptionReset(__pyx_t_6, __pyx_t_7, __pyx_t_8);
goto __pyx_L0;
__pyx_L19_except_return:;
__Pyx_XGIVEREF(__pyx_t_6);
__Pyx_XGIVEREF(__pyx_t_7);
__Pyx_XGIVEREF(__pyx_t_8);
__Pyx_ExceptionReset(__pyx_t_6, __pyx_t_7, __pyx_t_8);
goto __pyx_L0;
}
+0993: return encoder(data)
__pyx_t_2 = NULL;
__Pyx_INCREF(__pyx_v_encoder);
__pyx_t_9 = __pyx_v_encoder;
__pyx_t_4 = 1;
#if CYTHON_UNPACK_METHODS
if (unlikely(PyMethod_Check(__pyx_t_9))) {
__pyx_t_2 = PyMethod_GET_SELF(__pyx_t_9);
assert(__pyx_t_2);
PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_9);
__Pyx_INCREF(__pyx_t_2);
__Pyx_INCREF(__pyx__function);
__Pyx_DECREF_SET(__pyx_t_9, __pyx__function);
__pyx_t_4 = 0;
}
#endif
{
PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_v_data};
__pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_9, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
__Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 993, __pyx_L16_error)
__Pyx_GOTREF(__pyx_t_3);
}
{
PyObject *__pyx_temp;
{
__pyx_temp = __pyx_r;
__pyx_r = __pyx_t_3;
}
__Pyx_XDECREF(__pyx_temp);
}
__pyx_t_3 = 0;
goto __pyx_L20_try_return;
+0994: except TypeError as e:
__pyx_t_10 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(((PyTypeObject*)PyExc_TypeError)))); if (__pyx_t_10) { __Pyx_AddTraceback("datamodel.converters.parse_basic", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_3, &__pyx_t_9, &__pyx_t_2) < 0) __PYX_ERR(0, 994, __pyx_L18_except_error) __Pyx_XGOTREF(__pyx_t_3); __Pyx_XGOTREF(__pyx_t_9); __Pyx_XGOTREF(__pyx_t_2); __Pyx_INCREF(__pyx_t_9); __pyx_v_e = ((PyObject*)__pyx_t_9); /*try:*/ { /* … */ /*finally:*/ { __pyx_L27_error:; /*exception exit:*/{ __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign __pyx_t_21 = 0; __pyx_t_22 = 0; __pyx_t_23 = 0; __pyx_t_24 = 0; __pyx_t_25 = 0; __pyx_t_26 = 0; __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0; __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; __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; __Pyx_XDECREF(__pyx_t_18); __pyx_t_18 = 0; __Pyx_ExceptionSwap(&__pyx_t_24, &__pyx_t_25, &__pyx_t_26); if ( unlikely(__Pyx_GetException(&__pyx_t_21, &__pyx_t_22, &__pyx_t_23) < 0)) __Pyx_ErrFetch(&__pyx_t_21, &__pyx_t_22, &__pyx_t_23); __Pyx_XGOTREF(__pyx_t_21); __Pyx_XGOTREF(__pyx_t_22); __Pyx_XGOTREF(__pyx_t_23); __Pyx_XGOTREF(__pyx_t_24); __Pyx_XGOTREF(__pyx_t_25); __Pyx_XGOTREF(__pyx_t_26); __pyx_t_10 = __pyx_lineno; __pyx_t_19 = __pyx_clineno; __pyx_t_20 = __pyx_filename; { __Pyx_DECREF(__pyx_v_e); __pyx_v_e = 0; } __Pyx_XGIVEREF(__pyx_t_24); __Pyx_XGIVEREF(__pyx_t_25); __Pyx_XGIVEREF(__pyx_t_26); __Pyx_ExceptionReset(__pyx_t_24, __pyx_t_25, __pyx_t_26); __Pyx_XGIVEREF(__pyx_t_21); __Pyx_XGIVEREF(__pyx_t_22); __Pyx_XGIVEREF(__pyx_t_23); __Pyx_ErrRestore(__pyx_t_21, __pyx_t_22, __pyx_t_23); __pyx_t_21 = 0; __pyx_t_22 = 0; __pyx_t_23 = 0; __pyx_t_24 = 0; __pyx_t_25 = 0; __pyx_t_26 = 0; __pyx_lineno = __pyx_t_10; __pyx_clineno = __pyx_t_19; __pyx_filename = __pyx_t_20; goto __pyx_L18_except_error; } } }
+0995: raise TypeError(
__pyx_t_12 = NULL;
+0996: f"Type Error for Encoder {encoder!s} for type {T}: {e}"
__pyx_t_13 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Str(__pyx_v_encoder), __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 996, __pyx_L27_error) __Pyx_GOTREF(__pyx_t_13); __pyx_t_14 = __Pyx_PyObject_FormatSimple(__pyx_v_T, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 996, __pyx_L27_error) __Pyx_GOTREF(__pyx_t_14); __pyx_t_15 = __Pyx_PyObject_FormatSimple(__pyx_v_e, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 996, __pyx_L27_error) __Pyx_GOTREF(__pyx_t_15); __pyx_t_16[0] = __pyx_mstate_global->__pyx_kp_u_Type_Error_for_Encoder; __pyx_t_16[1] = __pyx_t_13; __pyx_t_16[2] = __pyx_mstate_global->__pyx_kp_u_for_type; __pyx_t_16[3] = __pyx_t_14; __pyx_t_16[4] = __pyx_mstate_global->__pyx_kp_u__5; __pyx_t_16[5] = __pyx_t_15; __pyx_t_17 = 35; #if __Pyx_PyUnicode_Join_CAN_USE_KIND_AND_LENGTH __pyx_t_17 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_16[1]) + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_16[3]) + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_16[5]); #endif __pyx_t_10 = 0; #if __Pyx_PyUnicode_Join_CAN_USE_KIND_AND_LENGTH __pyx_t_10 |= __Pyx_PyUnicode_KIND_04(__pyx_t_16[1]) | __Pyx_PyUnicode_KIND_04(__pyx_t_16[3]) | __Pyx_PyUnicode_KIND_04(__pyx_t_16[5]); #endif __pyx_t_18 = __Pyx_PyUnicode_Join(__pyx_t_16, 6, __pyx_t_17, __pyx_t_10); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 996, __pyx_L27_error) __Pyx_GOTREF(__pyx_t_18); __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; __pyx_t_4 = 1; { PyObject *__pyx_callargs[2] = {__pyx_t_12, __pyx_t_18}; __pyx_t_11 = __Pyx_PyObject_FastCall((PyObject*)(((PyTypeObject*)PyExc_TypeError)), __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (__pyx_t_4*__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_11)) __PYX_ERR(0, 995, __pyx_L27_error) __Pyx_GOTREF(__pyx_t_11); }
+0997: ) from e
__Pyx_Raise(__pyx_t_11, 0, 0, __pyx_v_e); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __PYX_ERR(0, 995, __pyx_L27_error) }
+0998: except ValueError as e:
__pyx_t_19 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(((PyTypeObject*)PyExc_ValueError)))); if (__pyx_t_19) { __Pyx_AddTraceback("datamodel.converters.parse_basic", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_2, &__pyx_t_9, &__pyx_t_3) < 0) __PYX_ERR(0, 998, __pyx_L18_except_error) __Pyx_XGOTREF(__pyx_t_2); __Pyx_XGOTREF(__pyx_t_9); __Pyx_XGOTREF(__pyx_t_3); __Pyx_INCREF(__pyx_t_9); __pyx_v_e = ((PyObject*)__pyx_t_9); /*try:*/ { /* … */ /*finally:*/ { __pyx_L38_error:; /*exception exit:*/{ __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign __pyx_t_26 = 0; __pyx_t_25 = 0; __pyx_t_24 = 0; __pyx_t_23 = 0; __pyx_t_22 = 0; __pyx_t_21 = 0; __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0; __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; __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; __Pyx_XDECREF(__pyx_t_18); __pyx_t_18 = 0; __Pyx_ExceptionSwap(&__pyx_t_23, &__pyx_t_22, &__pyx_t_21); if ( unlikely(__Pyx_GetException(&__pyx_t_26, &__pyx_t_25, &__pyx_t_24) < 0)) __Pyx_ErrFetch(&__pyx_t_26, &__pyx_t_25, &__pyx_t_24); __Pyx_XGOTREF(__pyx_t_26); __Pyx_XGOTREF(__pyx_t_25); __Pyx_XGOTREF(__pyx_t_24); __Pyx_XGOTREF(__pyx_t_23); __Pyx_XGOTREF(__pyx_t_22); __Pyx_XGOTREF(__pyx_t_21); __pyx_t_19 = __pyx_lineno; __pyx_t_10 = __pyx_clineno; __pyx_t_20 = __pyx_filename; { __Pyx_DECREF(__pyx_v_e); __pyx_v_e = 0; } __Pyx_XGIVEREF(__pyx_t_23); __Pyx_XGIVEREF(__pyx_t_22); __Pyx_XGIVEREF(__pyx_t_21); __Pyx_ExceptionReset(__pyx_t_23, __pyx_t_22, __pyx_t_21); __Pyx_XGIVEREF(__pyx_t_26); __Pyx_XGIVEREF(__pyx_t_25); __Pyx_XGIVEREF(__pyx_t_24); __Pyx_ErrRestore(__pyx_t_26, __pyx_t_25, __pyx_t_24); __pyx_t_26 = 0; __pyx_t_25 = 0; __pyx_t_24 = 0; __pyx_t_23 = 0; __pyx_t_22 = 0; __pyx_t_21 = 0; __pyx_lineno = __pyx_t_19; __pyx_clineno = __pyx_t_10; __pyx_filename = __pyx_t_20; goto __pyx_L18_except_error; } } }
+0999: raise ValueError(
__pyx_t_18 = NULL;
+1000: f"Error parsing type {T}, {e}"
__pyx_t_12 = __Pyx_PyObject_FormatSimple(__pyx_v_T, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1000, __pyx_L38_error) __Pyx_GOTREF(__pyx_t_12); __pyx_t_15 = __Pyx_PyObject_FormatSimple(__pyx_v_e, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 1000, __pyx_L38_error) __Pyx_GOTREF(__pyx_t_15); __pyx_t_27[0] = __pyx_mstate_global->__pyx_kp_u_Error_parsing_type; __pyx_t_27[1] = __pyx_t_12; __pyx_t_27[2] = __pyx_mstate_global->__pyx_kp_u__7; __pyx_t_27[3] = __pyx_t_15; __pyx_t_17 = 21; #if __Pyx_PyUnicode_Join_CAN_USE_KIND_AND_LENGTH __pyx_t_17 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_27[1]) + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_27[3]); #endif __pyx_t_19 = 0; #if __Pyx_PyUnicode_Join_CAN_USE_KIND_AND_LENGTH __pyx_t_19 |= __Pyx_PyUnicode_KIND_04(__pyx_t_27[1]) | __Pyx_PyUnicode_KIND_04(__pyx_t_27[3]); #endif __pyx_t_14 = __Pyx_PyUnicode_Join(__pyx_t_27, 4, __pyx_t_17, __pyx_t_19); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 1000, __pyx_L38_error) __Pyx_GOTREF(__pyx_t_14); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; __pyx_t_4 = 1; { PyObject *__pyx_callargs[2] = {__pyx_t_18, __pyx_t_14}; __pyx_t_11 = __Pyx_PyObject_FastCall((PyObject*)(((PyTypeObject*)PyExc_ValueError)), __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_18); __pyx_t_18 = 0; __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 999, __pyx_L38_error) __Pyx_GOTREF(__pyx_t_11); } __Pyx_Raise(__pyx_t_11, 0, 0, 0); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __PYX_ERR(0, 999, __pyx_L38_error) }
1001: )
+1002: except AttributeError as e:
__pyx_t_10 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(((PyTypeObject*)PyExc_AttributeError)))); if (__pyx_t_10) { __Pyx_AddTraceback("datamodel.converters.parse_basic", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_3, &__pyx_t_9, &__pyx_t_2) < 0) __PYX_ERR(0, 1002, __pyx_L18_except_error) __Pyx_XGOTREF(__pyx_t_3); __Pyx_XGOTREF(__pyx_t_9); __Pyx_XGOTREF(__pyx_t_2); __Pyx_INCREF(__pyx_t_9); __pyx_v_e = ((PyObject*)__pyx_t_9); /*try:*/ { /* … */ /*finally:*/ { __pyx_L49_error:; /*exception exit:*/{ __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign __pyx_t_21 = 0; __pyx_t_22 = 0; __pyx_t_23 = 0; __pyx_t_24 = 0; __pyx_t_25 = 0; __pyx_t_26 = 0; __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0; __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; __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; __Pyx_XDECREF(__pyx_t_18); __pyx_t_18 = 0; __Pyx_ExceptionSwap(&__pyx_t_24, &__pyx_t_25, &__pyx_t_26); if ( unlikely(__Pyx_GetException(&__pyx_t_21, &__pyx_t_22, &__pyx_t_23) < 0)) __Pyx_ErrFetch(&__pyx_t_21, &__pyx_t_22, &__pyx_t_23); __Pyx_XGOTREF(__pyx_t_21); __Pyx_XGOTREF(__pyx_t_22); __Pyx_XGOTREF(__pyx_t_23); __Pyx_XGOTREF(__pyx_t_24); __Pyx_XGOTREF(__pyx_t_25); __Pyx_XGOTREF(__pyx_t_26); __pyx_t_10 = __pyx_lineno; __pyx_t_19 = __pyx_clineno; __pyx_t_20 = __pyx_filename; { __Pyx_DECREF(__pyx_v_e); __pyx_v_e = 0; } __Pyx_XGIVEREF(__pyx_t_24); __Pyx_XGIVEREF(__pyx_t_25); __Pyx_XGIVEREF(__pyx_t_26); __Pyx_ExceptionReset(__pyx_t_24, __pyx_t_25, __pyx_t_26); __Pyx_XGIVEREF(__pyx_t_21); __Pyx_XGIVEREF(__pyx_t_22); __Pyx_XGIVEREF(__pyx_t_23); __Pyx_ErrRestore(__pyx_t_21, __pyx_t_22, __pyx_t_23); __pyx_t_21 = 0; __pyx_t_22 = 0; __pyx_t_23 = 0; __pyx_t_24 = 0; __pyx_t_25 = 0; __pyx_t_26 = 0; __pyx_lineno = __pyx_t_10; __pyx_clineno = __pyx_t_19; __pyx_filename = __pyx_t_20; goto __pyx_L18_except_error; } __pyx_L48_return: { __pyx_t_26 = __pyx_r; __pyx_r = 0; __Pyx_DECREF(__pyx_v_e); __pyx_v_e = 0; __pyx_r = __pyx_t_26; __pyx_t_26 = 0; goto __pyx_L19_except_return; } } } goto __pyx_L18_except_error;
+1003: if data is None:
__pyx_t_1 = (__pyx_v_data == Py_None);
if (__pyx_t_1) {
/* … */
}
+1004: return None
{
PyObject *__pyx_temp;
{
__pyx_temp = __pyx_r;
__pyx_r = Py_None; __Pyx_INCREF(Py_None);
}
__Pyx_XDECREF(__pyx_temp);
}
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
goto __pyx_L48_return;
+1005: raise AttributeError(
__pyx_t_14 = NULL;
+1006: f"Attribute Error for Encoder {encoder!s} for type {T}: {e}"
__pyx_t_18 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Str(__pyx_v_encoder), __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 1006, __pyx_L49_error) __Pyx_GOTREF(__pyx_t_18); __pyx_t_15 = __Pyx_PyObject_FormatSimple(__pyx_v_T, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 1006, __pyx_L49_error) __Pyx_GOTREF(__pyx_t_15); __pyx_t_12 = __Pyx_PyObject_FormatSimple(__pyx_v_e, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1006, __pyx_L49_error) __Pyx_GOTREF(__pyx_t_12); __pyx_t_16[0] = __pyx_mstate_global->__pyx_kp_u_Attribute_Error_for_Encoder; __pyx_t_16[1] = __pyx_t_18; __pyx_t_16[2] = __pyx_mstate_global->__pyx_kp_u_for_type; __pyx_t_16[3] = __pyx_t_15; __pyx_t_16[4] = __pyx_mstate_global->__pyx_kp_u__5; __pyx_t_16[5] = __pyx_t_12; __pyx_t_17 = 40; #if __Pyx_PyUnicode_Join_CAN_USE_KIND_AND_LENGTH __pyx_t_17 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_16[1]) + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_16[3]) + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_16[5]); #endif __pyx_t_10 = 0; #if __Pyx_PyUnicode_Join_CAN_USE_KIND_AND_LENGTH __pyx_t_10 |= __Pyx_PyUnicode_KIND_04(__pyx_t_16[1]) | __Pyx_PyUnicode_KIND_04(__pyx_t_16[3]) | __Pyx_PyUnicode_KIND_04(__pyx_t_16[5]); #endif __pyx_t_13 = __Pyx_PyUnicode_Join(__pyx_t_16, 6, __pyx_t_17, __pyx_t_10); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1006, __pyx_L49_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __pyx_t_4 = 1; { PyObject *__pyx_callargs[2] = {__pyx_t_14, __pyx_t_13}; __pyx_t_11 = __Pyx_PyObject_FastCall((PyObject*)(((PyTypeObject*)PyExc_AttributeError)), __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0; __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1005, __pyx_L49_error) __Pyx_GOTREF(__pyx_t_11); }
+1007: ) from e
__Pyx_Raise(__pyx_t_11, 0, 0, __pyx_v_e); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __PYX_ERR(0, 1005, __pyx_L49_error) }
1008: # Using the encoders for basic types:
+1009: try:
{
/*try:*/ {
/* … */
}
__pyx_L56_error:;
__Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
__Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
__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;
__Pyx_XDECREF(__pyx_t_18); __pyx_t_18 = 0;
__Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
__pyx_L58_except_error:;
__Pyx_XGIVEREF(__pyx_t_8);
__Pyx_XGIVEREF(__pyx_t_7);
__Pyx_XGIVEREF(__pyx_t_6);
__Pyx_ExceptionReset(__pyx_t_8, __pyx_t_7, __pyx_t_6);
goto __pyx_L1_error;
__pyx_L60_try_return:;
__Pyx_XGIVEREF(__pyx_t_8);
__Pyx_XGIVEREF(__pyx_t_7);
__Pyx_XGIVEREF(__pyx_t_6);
__Pyx_ExceptionReset(__pyx_t_8, __pyx_t_7, __pyx_t_6);
goto __pyx_L0;
__pyx_L57_exception_handled:;
__Pyx_XGIVEREF(__pyx_t_8);
__Pyx_XGIVEREF(__pyx_t_7);
__Pyx_XGIVEREF(__pyx_t_6);
__Pyx_ExceptionReset(__pyx_t_8, __pyx_t_7, __pyx_t_6);
}
+1010: return encoders[T](data)
__pyx_t_9 = NULL;
__Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_encoders); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1010, __pyx_L56_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_11 = __Pyx_PyObject_GetItem(__pyx_t_3, __pyx_v_T); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1010, __pyx_L56_error)
__Pyx_GOTREF(__pyx_t_11);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__pyx_t_4 = 1;
#if CYTHON_UNPACK_METHODS
if (unlikely(PyMethod_Check(__pyx_t_11))) {
__pyx_t_9 = PyMethod_GET_SELF(__pyx_t_11);
assert(__pyx_t_9);
PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_11);
__Pyx_INCREF(__pyx_t_9);
__Pyx_INCREF(__pyx__function);
__Pyx_DECREF_SET(__pyx_t_11, __pyx__function);
__pyx_t_4 = 0;
}
#endif
{
PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_v_data};
__pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_11, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
__Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
__Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1010, __pyx_L56_error)
__Pyx_GOTREF(__pyx_t_2);
}
{
PyObject *__pyx_temp;
{
__pyx_temp = __pyx_r;
__pyx_r = __pyx_t_2;
}
__Pyx_XDECREF(__pyx_temp);
}
__pyx_t_2 = 0;
goto __pyx_L60_try_return;
+1011: except KeyError:
__pyx_t_19 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(((PyTypeObject*)PyExc_KeyError)))); if (__pyx_t_19) { __Pyx_ErrRestore(0,0,0); goto __pyx_L57_exception_handled; }
1012: pass
+1013: except TypeError as e:
__pyx_t_19 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(((PyTypeObject*)PyExc_TypeError)))); if (__pyx_t_19) { __Pyx_AddTraceback("datamodel.converters.parse_basic", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_2, &__pyx_t_11, &__pyx_t_9) < 0) __PYX_ERR(0, 1013, __pyx_L58_except_error) __Pyx_XGOTREF(__pyx_t_2); __Pyx_XGOTREF(__pyx_t_11); __Pyx_XGOTREF(__pyx_t_9); __Pyx_INCREF(__pyx_t_11); __pyx_v_e = ((PyObject*)__pyx_t_11); /*try:*/ { /* … */ /*finally:*/ { __pyx_L69_error:; /*exception exit:*/{ __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign __pyx_t_26 = 0; __pyx_t_25 = 0; __pyx_t_24 = 0; __pyx_t_23 = 0; __pyx_t_22 = 0; __pyx_t_21 = 0; __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; __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; __Pyx_XDECREF(__pyx_t_18); __pyx_t_18 = 0; __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_ExceptionSwap(&__pyx_t_23, &__pyx_t_22, &__pyx_t_21); if ( unlikely(__Pyx_GetException(&__pyx_t_26, &__pyx_t_25, &__pyx_t_24) < 0)) __Pyx_ErrFetch(&__pyx_t_26, &__pyx_t_25, &__pyx_t_24); __Pyx_XGOTREF(__pyx_t_26); __Pyx_XGOTREF(__pyx_t_25); __Pyx_XGOTREF(__pyx_t_24); __Pyx_XGOTREF(__pyx_t_23); __Pyx_XGOTREF(__pyx_t_22); __Pyx_XGOTREF(__pyx_t_21); __pyx_t_19 = __pyx_lineno; __pyx_t_10 = __pyx_clineno; __pyx_t_20 = __pyx_filename; { __Pyx_DECREF(__pyx_v_e); __pyx_v_e = 0; } __Pyx_XGIVEREF(__pyx_t_23); __Pyx_XGIVEREF(__pyx_t_22); __Pyx_XGIVEREF(__pyx_t_21); __Pyx_ExceptionReset(__pyx_t_23, __pyx_t_22, __pyx_t_21); __Pyx_XGIVEREF(__pyx_t_26); __Pyx_XGIVEREF(__pyx_t_25); __Pyx_XGIVEREF(__pyx_t_24); __Pyx_ErrRestore(__pyx_t_26, __pyx_t_25, __pyx_t_24); __pyx_t_26 = 0; __pyx_t_25 = 0; __pyx_t_24 = 0; __pyx_t_23 = 0; __pyx_t_22 = 0; __pyx_t_21 = 0; __pyx_lineno = __pyx_t_19; __pyx_clineno = __pyx_t_10; __pyx_filename = __pyx_t_20; goto __pyx_L58_except_error; } } }
+1014: raise TypeError(f"Error type {T}: {e}") from e
__pyx_t_13 = NULL;
__pyx_t_14 = __Pyx_PyObject_FormatSimple(__pyx_v_T, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 1014, __pyx_L69_error)
__Pyx_GOTREF(__pyx_t_14);
__pyx_t_12 = __Pyx_PyObject_FormatSimple(__pyx_v_e, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1014, __pyx_L69_error)
__Pyx_GOTREF(__pyx_t_12);
__pyx_t_27[0] = __pyx_mstate_global->__pyx_kp_u_Error_type;
__pyx_t_27[1] = __pyx_t_14;
__pyx_t_27[2] = __pyx_mstate_global->__pyx_kp_u__5;
__pyx_t_27[3] = __pyx_t_12;
__pyx_t_17 = 13;
#if __Pyx_PyUnicode_Join_CAN_USE_KIND_AND_LENGTH
__pyx_t_17 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_27[1]) + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_27[3]);
#endif
__pyx_t_19 = 0;
#if __Pyx_PyUnicode_Join_CAN_USE_KIND_AND_LENGTH
__pyx_t_19 |= __Pyx_PyUnicode_KIND_04(__pyx_t_27[1]) | __Pyx_PyUnicode_KIND_04(__pyx_t_27[3]);
#endif
__pyx_t_15 = __Pyx_PyUnicode_Join(__pyx_t_27, 4, __pyx_t_17, __pyx_t_19);
if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 1014, __pyx_L69_error)
__Pyx_GOTREF(__pyx_t_15);
__Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
__pyx_t_4 = 1;
{
PyObject *__pyx_callargs[2] = {__pyx_t_13, __pyx_t_15};
__pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)(((PyTypeObject*)PyExc_TypeError)), __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
__Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
__Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1014, __pyx_L69_error)
__Pyx_GOTREF(__pyx_t_3);
}
__Pyx_Raise(__pyx_t_3, 0, 0, __pyx_v_e);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__PYX_ERR(0, 1014, __pyx_L69_error)
}
+1015: except ValueError as e:
__pyx_t_10 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(((PyTypeObject*)PyExc_ValueError)))); if (__pyx_t_10) { __Pyx_AddTraceback("datamodel.converters.parse_basic", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_9, &__pyx_t_11, &__pyx_t_2) < 0) __PYX_ERR(0, 1015, __pyx_L58_except_error) __Pyx_XGOTREF(__pyx_t_9); __Pyx_XGOTREF(__pyx_t_11); __Pyx_XGOTREF(__pyx_t_2); __Pyx_INCREF(__pyx_t_11); __pyx_v_e = ((PyObject*)__pyx_t_11); /*try:*/ { /* … */ /*finally:*/ { __pyx_L80_error:; /*exception exit:*/{ __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign __pyx_t_21 = 0; __pyx_t_22 = 0; __pyx_t_23 = 0; __pyx_t_24 = 0; __pyx_t_25 = 0; __pyx_t_26 = 0; __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; __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; __Pyx_XDECREF(__pyx_t_18); __pyx_t_18 = 0; __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_ExceptionSwap(&__pyx_t_24, &__pyx_t_25, &__pyx_t_26); if ( unlikely(__Pyx_GetException(&__pyx_t_21, &__pyx_t_22, &__pyx_t_23) < 0)) __Pyx_ErrFetch(&__pyx_t_21, &__pyx_t_22, &__pyx_t_23); __Pyx_XGOTREF(__pyx_t_21); __Pyx_XGOTREF(__pyx_t_22); __Pyx_XGOTREF(__pyx_t_23); __Pyx_XGOTREF(__pyx_t_24); __Pyx_XGOTREF(__pyx_t_25); __Pyx_XGOTREF(__pyx_t_26); __pyx_t_10 = __pyx_lineno; __pyx_t_19 = __pyx_clineno; __pyx_t_20 = __pyx_filename; { __Pyx_DECREF(__pyx_v_e); __pyx_v_e = 0; } __Pyx_XGIVEREF(__pyx_t_24); __Pyx_XGIVEREF(__pyx_t_25); __Pyx_XGIVEREF(__pyx_t_26); __Pyx_ExceptionReset(__pyx_t_24, __pyx_t_25, __pyx_t_26); __Pyx_XGIVEREF(__pyx_t_21); __Pyx_XGIVEREF(__pyx_t_22); __Pyx_XGIVEREF(__pyx_t_23); __Pyx_ErrRestore(__pyx_t_21, __pyx_t_22, __pyx_t_23); __pyx_t_21 = 0; __pyx_t_22 = 0; __pyx_t_23 = 0; __pyx_t_24 = 0; __pyx_t_25 = 0; __pyx_t_26 = 0; __pyx_lineno = __pyx_t_10; __pyx_clineno = __pyx_t_19; __pyx_filename = __pyx_t_20; goto __pyx_L58_except_error; } } } goto __pyx_L58_except_error;
+1016: raise ValueError(
__pyx_t_15 = NULL;
+1017: f"Error parsing type {T}: {e}"
__pyx_t_13 = __Pyx_PyObject_FormatSimple(__pyx_v_T, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1017, __pyx_L80_error) __Pyx_GOTREF(__pyx_t_13); __pyx_t_12 = __Pyx_PyObject_FormatSimple(__pyx_v_e, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1017, __pyx_L80_error) __Pyx_GOTREF(__pyx_t_12); __pyx_t_27[0] = __pyx_mstate_global->__pyx_kp_u_Error_parsing_type; __pyx_t_27[1] = __pyx_t_13; __pyx_t_27[2] = __pyx_mstate_global->__pyx_kp_u__5; __pyx_t_27[3] = __pyx_t_12; __pyx_t_17 = 21; #if __Pyx_PyUnicode_Join_CAN_USE_KIND_AND_LENGTH __pyx_t_17 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_27[1]) + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_27[3]); #endif __pyx_t_10 = 0; #if __Pyx_PyUnicode_Join_CAN_USE_KIND_AND_LENGTH __pyx_t_10 |= __Pyx_PyUnicode_KIND_04(__pyx_t_27[1]) | __Pyx_PyUnicode_KIND_04(__pyx_t_27[3]); #endif __pyx_t_14 = __Pyx_PyUnicode_Join(__pyx_t_27, 4, __pyx_t_17, __pyx_t_10); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 1017, __pyx_L80_error) __Pyx_GOTREF(__pyx_t_14); __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __pyx_t_4 = 1; { PyObject *__pyx_callargs[2] = {__pyx_t_15, __pyx_t_14}; __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)(((PyTypeObject*)PyExc_ValueError)), __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0; __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1016, __pyx_L80_error) __Pyx_GOTREF(__pyx_t_3); }
+1018: ) from e
__Pyx_Raise(__pyx_t_3, 0, 0, __pyx_v_e); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __PYX_ERR(0, 1016, __pyx_L80_error) }
1019:
1020:
+1021: cdef object _parse_typing_type(
static PyObject *__pyx_f_9datamodel_10converters__parse_typing_type(PyObject *__pyx_v_field, PyObject *__pyx_v_T, PyObject *__pyx_v_name, PyObject *__pyx_v_data, PyObject *__pyx_v_encoder, PyObject *__pyx_v_origin, PyObject *__pyx_v_args, struct __pyx_opt_args_9datamodel_10converters__parse_typing_type *__pyx_optional_args) {
struct __pyx_obj_9datamodel_10converters___pyx_scope_struct_2___pyx_f_9datamodel_10converters__parse_typing_type *__pyx_cur_scope;
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_5);
__Pyx_XDECREF(__pyx_t_9);
__Pyx_XDECREF(__pyx_t_10);
__Pyx_XDECREF(__pyx_t_12);
__Pyx_AddTraceback("datamodel.converters._parse_typing_type", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = 0;
__pyx_L0:;
__Pyx_XDECREF(__pyx_v_error);
__Pyx_XDECREF(__pyx_8genexpr1__pyx_v_k);
__Pyx_XDECREF(__pyx_8genexpr1__pyx_v_v);
__Pyx_XDECREF(__pyx_gb_9datamodel_10converters_18_parse_typing_type_2generator1);
__Pyx_XDECREF(__pyx_gb_9datamodel_10converters_18_parse_typing_type_5generator2);
__Pyx_XDECREF(__pyx_v_data);
__Pyx_DECREF((PyObject *)__pyx_cur_scope);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
struct __pyx_opt_args_9datamodel_10converters__parse_typing_type {
int __pyx_n;
PyObject *as_objects;
};
/* … */
struct __pyx_obj_9datamodel_10converters___pyx_scope_struct_2___pyx_f_9datamodel_10converters__parse_typing_type {
PyObject_HEAD
PyObject *__pyx_v_encoder;
PyObject *__pyx_v_field;
PyObject *__pyx_v_type_args;
};
1022: object field,
1023: object T,
1024: object name,
1025: object data,
1026: object encoder,
1027: object origin,
1028: object args,
+1029: object as_objects=False
PyObject *__pyx_v_as_objects = ((PyObject *)Py_False);
PyObject *__pyx_v_error = NULL;
PyObject *__pyx_8genexpr1__pyx_v_k = NULL;
PyObject *__pyx_8genexpr1__pyx_v_v = NULL;
PyObject *__pyx_gb_9datamodel_10converters_18_parse_typing_type_2generator1 = 0;
PyObject *__pyx_gb_9datamodel_10converters_18_parse_typing_type_5generator2 = 0;
PyObject *__pyx_r = NULL;
__pyx_cur_scope = (struct __pyx_obj_9datamodel_10converters___pyx_scope_struct_2___pyx_f_9datamodel_10converters__parse_typing_type *)__pyx_tp_new_9datamodel_10converters___pyx_scope_struct_2___pyx_f_9datamodel_10converters__parse_typing_type(__pyx_mstate_global->__pyx_ptype_9datamodel_10converters___pyx_scope_struct_2___pyx_f_9datamodel_10converters__parse_typing_type, __pyx_mstate_global->__pyx_empty_tuple, NULL);
if (unlikely(!__pyx_cur_scope)) {
__pyx_cur_scope = ((struct __pyx_obj_9datamodel_10converters___pyx_scope_struct_2___pyx_f_9datamodel_10converters__parse_typing_type *)Py_None);
__Pyx_INCREF(Py_None);
__PYX_ERR(0, 1021, __pyx_L1_error)
} else {
__Pyx_GOTREF((PyObject *)__pyx_cur_scope);
}
if (__pyx_optional_args) {
if (__pyx_optional_args->__pyx_n > 0) {
__pyx_v_as_objects = __pyx_optional_args->as_objects;
}
}
__pyx_cur_scope->__pyx_v_field = __pyx_v_field;
__Pyx_INCREF(__pyx_cur_scope->__pyx_v_field);
__Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_field);
__pyx_cur_scope->__pyx_v_encoder = __pyx_v_encoder;
__Pyx_INCREF(__pyx_cur_scope->__pyx_v_encoder);
__Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_encoder);
__Pyx_INCREF(__pyx_v_data);
1030: ):
1031: """
1032: Handle field_type='typing' scenario.
1033: """
+1034: cdef tuple type_args = getattr(T, '__args__', ())
__pyx_t_1 = __Pyx_GetAttr3(__pyx_v_T, __pyx_mstate_global->__pyx_n_u_args, __pyx_mstate_global->__pyx_empty_tuple); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1034, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (!(likely(PyTuple_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_t_1))) __PYX_ERR(0, 1034, __pyx_L1_error) __Pyx_GIVEREF(__pyx_t_1); __pyx_cur_scope->__pyx_v_type_args = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0;
1035:
+1036: if field.origin in {dict, Mapping} or name in {'Dict', 'Mapping'}:
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_field, __pyx_mstate_global->__pyx_n_u_origin_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1036, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_4 = __Pyx_PyObject_RichCompareBool(__pyx_t_1, ((PyObject *)(&PyDict_Type)), Py_EQ); if (unlikely((__pyx_t_4 < 0))) __PYX_ERR(0, 1036, __pyx_L1_error) if (!__pyx_t_4) { } else { __pyx_t_3 = __pyx_t_4; goto __pyx_L6_bool_binop_done; } __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_Mapping); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1036, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_4 = __Pyx_PyObject_CompareBoolEq_object_object(__pyx_t_1, __pyx_t_5, Py_EQ); if (unlikely((__pyx_t_4 < 0))) __PYX_ERR(0, 1036, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_3 = __pyx_t_4; __pyx_L6_bool_binop_done:; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_4 = __pyx_t_3; if (!__pyx_t_4) { } else { __pyx_t_2 = __pyx_t_4; goto __pyx_L4_bool_binop_done; } __Pyx_INCREF(__pyx_v_name); __pyx_t_1 = __pyx_v_name; __pyx_t_3 = __Pyx_PyObject_CompareBoolEq_object_str(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_Dict, Py_EQ); if (unlikely((__pyx_t_3 < 0))) __PYX_ERR(0, 1036, __pyx_L1_error) if (!__pyx_t_3) { } else { __pyx_t_4 = __pyx_t_3; goto __pyx_L8_bool_binop_done; } __pyx_t_3 = __Pyx_PyObject_CompareBoolEq_object_str(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_Mapping, Py_EQ); if (unlikely((__pyx_t_3 < 0))) __PYX_ERR(0, 1036, __pyx_L1_error) __pyx_t_4 = __pyx_t_3; __pyx_L8_bool_binop_done:; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_3 = __pyx_t_4; __pyx_t_2 = __pyx_t_3; __pyx_L4_bool_binop_done:; if (__pyx_t_2) { /* … */ }
+1037: if isinstance(data, dict):
__pyx_t_2 = PyDict_Check(__pyx_v_data);
if (likely(__pyx_t_2)) {
/* … */
}
+1038: if type_args:
if (__pyx_cur_scope->__pyx_v_type_args == Py_None) __pyx_t_2 = 0;
else
{
Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_cur_scope->__pyx_v_type_args);
if (unlikely(((!CYTHON_ASSUME_SAFE_SIZE) && __pyx_temp < 0))) __PYX_ERR(0, 1038, __pyx_L1_error)
__pyx_t_2 = (__pyx_temp != 0);
}
if (__pyx_t_2) {
/* … */
}
1039: # e.g. Dict[K, V]
+1040: return {k: _parse_type(field, type_args[1], v, None, False) for k, v in data.items()}
{ /* enter inner scope */
__pyx_t_1 = PyDict_New(); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1040, __pyx_L14_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_6 = 0;
if (unlikely(__pyx_v_data == Py_None)) {
PyErr_Format(PyExc_AttributeError, "\047NoneType\047 object has no attribute \047%.30s\047", "items");
__PYX_ERR(0, 1040, __pyx_L14_error)
}
__pyx_t_9 = __Pyx_dict_iterator(__pyx_v_data, 0, __pyx_mstate_global->__pyx_n_u_items, (&__pyx_t_7), (&__pyx_t_8)); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1040, __pyx_L14_error)
__Pyx_GOTREF(__pyx_t_9);
__Pyx_XDECREF(__pyx_t_5);
__pyx_t_5 = __pyx_t_9;
__pyx_t_9 = 0;
while (1) {
__pyx_t_11 = __Pyx_dict_iter_next(__pyx_t_5, __pyx_t_7, &__pyx_t_6, &__pyx_t_9, &__pyx_t_10, NULL, __pyx_t_8);
if (unlikely(__pyx_t_11 == 0)) break;
if (unlikely(__pyx_t_11 == -1)) __PYX_ERR(0, 1040, __pyx_L14_error)
__Pyx_GOTREF(__pyx_t_9);
__Pyx_GOTREF(__pyx_t_10);
__Pyx_XDECREF_SET(__pyx_8genexpr1__pyx_v_k, __pyx_t_9);
__pyx_t_9 = 0;
__Pyx_XDECREF_SET(__pyx_8genexpr1__pyx_v_v, __pyx_t_10);
__pyx_t_10 = 0;
__pyx_t_10 = __pyx_cur_scope->__pyx_v_field;
__Pyx_INCREF(__pyx_t_10);
if (unlikely(__pyx_cur_scope->__pyx_v_type_args == Py_None)) {
PyErr_SetString(PyExc_TypeError, "\047NoneType\047 object is not subscriptable");
__PYX_ERR(0, 1040, __pyx_L14_error)
}
__pyx_t_9 = __Pyx_GetItemInt_Tuple(__pyx_cur_scope->__pyx_v_type_args, 1, long, 1, __Pyx_PyLong_From_long, 0, 1, 1, __Pyx_ReferenceSharing_SharedReference); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1040, __pyx_L14_error)
__Pyx_GOTREF(__pyx_t_9);
__pyx_t_13.__pyx_n = 2;
__pyx_t_13.encoder = Py_None;
__pyx_t_13.as_objects = Py_False;
__pyx_t_12 = __pyx_f_9datamodel_10converters__parse_type(__pyx_t_10, __pyx_t_9, __pyx_8genexpr1__pyx_v_v, &__pyx_t_13); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1040, __pyx_L14_error)
__Pyx_GOTREF(__pyx_t_12);
__Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
if (unlikely(PyDict_SetItem(__pyx_t_1, __pyx_8genexpr1__pyx_v_k, __pyx_t_12))) __PYX_ERR(0, 1040, __pyx_L14_error)
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
}
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
__Pyx_XDECREF(__pyx_8genexpr1__pyx_v_k); __pyx_8genexpr1__pyx_v_k = 0;
__Pyx_XDECREF(__pyx_8genexpr1__pyx_v_v); __pyx_8genexpr1__pyx_v_v = 0;
goto __pyx_L17_exit_scope;
__pyx_L14_error:;
__Pyx_XDECREF(__pyx_8genexpr1__pyx_v_k); __pyx_8genexpr1__pyx_v_k = 0;
__Pyx_XDECREF(__pyx_8genexpr1__pyx_v_v); __pyx_8genexpr1__pyx_v_v = 0;
goto __pyx_L1_error;
__pyx_L17_exit_scope:;
} /* exit inner scope */
{
PyObject *__pyx_temp;
{
__pyx_temp = __pyx_r;
__pyx_r = __pyx_t_1;
}
__Pyx_XDECREF(__pyx_temp);
}
__pyx_t_1 = 0;
goto __pyx_L0;
+1041: return data
{
PyObject *__pyx_temp;
{
__pyx_temp = __pyx_r;
__Pyx_INCREF(__pyx_v_data);
__pyx_r = __pyx_v_data;
}
__Pyx_XDECREF(__pyx_temp);
}
goto __pyx_L0;
1042: else:
+1043: raise TypeError(f"Expected dict, got {type(data).__name__}")
/*else*/ {
__pyx_t_5 = NULL;
__pyx_t_12 = __Pyx_PyObject_GetAttrStr(((PyObject *)Py_TYPE(__pyx_v_data)), __pyx_mstate_global->__pyx_n_u_name); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1043, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_12);
__pyx_t_9 = __Pyx_PyObject_FormatSimple(__pyx_t_12, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1043, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
__pyx_t_12 = __Pyx_PyUnicode_Concat(__pyx_mstate_global->__pyx_kp_u_Expected_dict_got, __pyx_t_9); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1043, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_12);
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
__pyx_t_14 = 1;
{
PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_12};
__pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)(((PyTypeObject*)PyExc_TypeError)), __pyx_callargs+__pyx_t_14, (2-__pyx_t_14) | (__pyx_t_14*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
__Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1043, __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, 1043, __pyx_L1_error)
}
1044:
+1045: if field.origin is tuple or name == 'Tuple' or field.origin == tuple:
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_field, __pyx_mstate_global->__pyx_n_u_origin_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1045, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = (__pyx_t_1 == ((PyObject *)(&PyTuple_Type))); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (!__pyx_t_3) { } else { __pyx_t_2 = __pyx_t_3; goto __pyx_L19_bool_binop_done; } __pyx_t_3 = __Pyx_PyObject_CompareBoolEq_object_str(__pyx_v_name, __pyx_mstate_global->__pyx_n_u_Tuple, Py_EQ); if (unlikely((__pyx_t_3 < 0))) __PYX_ERR(0, 1045, __pyx_L1_error) if (!__pyx_t_3) { } else { __pyx_t_2 = __pyx_t_3; goto __pyx_L19_bool_binop_done; } __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_field, __pyx_mstate_global->__pyx_n_u_origin_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1045, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = __Pyx_PyObject_RichCompareBool(__pyx_t_1, ((PyObject *)(&PyTuple_Type)), Py_EQ); if (unlikely((__pyx_t_3 < 0))) __PYX_ERR(0, 1045, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_2 = __pyx_t_3; __pyx_L19_bool_binop_done:; if (__pyx_t_2) { /* … */ }
+1046: if isinstance(data, (list, tuple)):
__pyx_t_3 = PyList_Check(__pyx_v_data); if (!__pyx_t_3) { } else { __pyx_t_2 = __pyx_t_3; goto __pyx_L23_bool_binop_done; } __pyx_t_3 = PyTuple_Check(__pyx_v_data); __pyx_t_2 = __pyx_t_3; __pyx_L23_bool_binop_done:; if (__pyx_t_2) { /* … */ }
+1047: if len(type_args) == 2 and type_args[1] is Ellipsis:
__pyx_t_1 = __pyx_cur_scope->__pyx_v_type_args;
__Pyx_INCREF(__pyx_t_1);
if (unlikely(__pyx_t_1 == Py_None)) {
PyErr_SetString(PyExc_TypeError, "object of type \047NoneType\047 has no len()");
__PYX_ERR(0, 1047, __pyx_L1_error)
}
__pyx_t_7 = __Pyx_PyTuple_GET_SIZE(__pyx_t_1); if (unlikely(__pyx_t_7 == ((Py_ssize_t)-1))) __PYX_ERR(0, 1047, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_t_3 = (__pyx_t_7 == 2);
if (__pyx_t_3) {
} else {
__pyx_t_2 = __pyx_t_3;
goto __pyx_L26_bool_binop_done;
}
if (unlikely(__pyx_cur_scope->__pyx_v_type_args == Py_None)) {
PyErr_SetString(PyExc_TypeError, "\047NoneType\047 object is not subscriptable");
__PYX_ERR(0, 1047, __pyx_L1_error)
}
__pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_cur_scope->__pyx_v_type_args, 1, long, 1, __Pyx_PyLong_From_long, 0, 1, 1, __Pyx_ReferenceSharing_SharedReference); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1047, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_3 = (__pyx_t_1 == __pyx_builtin_Ellipsis);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_t_2 = __pyx_t_3;
__pyx_L26_bool_binop_done:;
if (__pyx_t_2) {
/* … */
}
1048: # Homogeneous tuple: e.g. Tuple[float, ...]
+1049: return tuple(
__pyx_t_12 = __Pyx_PySequence_Tuple(__pyx_t_1); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1049, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; __pyx_r = __pyx_t_12; } __Pyx_XDECREF(__pyx_temp); } __pyx_t_12 = 0; goto __pyx_L0;
+1050: _parse_type(field, type_args[0], datum, None, False)
static PyObject *__pyx_pf_9datamodel_10converters_18_parse_typing_type_genexpr(PyObject *__pyx_self, PyObject *__pyx_genexpr_arg_0) {
struct __pyx_obj_9datamodel_10converters___pyx_scope_struct_3_genexpr *__pyx_cur_scope;
PyObject *__pyx_r = NULL;
__pyx_cur_scope = (struct __pyx_obj_9datamodel_10converters___pyx_scope_struct_3_genexpr *)__pyx_tp_new_9datamodel_10converters___pyx_scope_struct_3_genexpr(__pyx_mstate_global->__pyx_ptype_9datamodel_10converters___pyx_scope_struct_3_genexpr, __pyx_mstate_global->__pyx_empty_tuple, NULL);
if (unlikely(!__pyx_cur_scope)) {
__pyx_cur_scope = ((struct __pyx_obj_9datamodel_10converters___pyx_scope_struct_3_genexpr *)Py_None);
__Pyx_INCREF(Py_None);
__PYX_ERR(0, 1050, __pyx_L1_error)
} else {
__Pyx_GOTREF((PyObject *)__pyx_cur_scope);
}
__pyx_cur_scope->__pyx_outer_scope = (struct __pyx_obj_9datamodel_10converters___pyx_scope_struct_2___pyx_f_9datamodel_10converters__parse_typing_type *) __pyx_self;
__Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_outer_scope);
__Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_outer_scope);
__pyx_cur_scope->__pyx_genexpr_arg_0 = __pyx_genexpr_arg_0;
__Pyx_INCREF(__pyx_cur_scope->__pyx_genexpr_arg_0);
__Pyx_GIVEREF(__pyx_cur_scope->__pyx_genexpr_arg_0);
{
__pyx_CoroutineObject *gen = __Pyx_Generator_New((__pyx_coroutine_body_t) __pyx_gb_9datamodel_10converters_18_parse_typing_type_2generator1, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[1]), (PyObject *) __pyx_cur_scope, __pyx_mstate_global->__pyx_n_u_genexpr, __pyx_mstate_global->__pyx_n_u_parse_typing_type_locals_genexp, __pyx_mstate_global->__pyx_n_u_datamodel_converters); if (unlikely(!gen)) __PYX_ERR(0, 1050, __pyx_L1_error)
__Pyx_DECREF(__pyx_cur_scope);
__Pyx_RefNannyFinishContext();
return (PyObject *) gen;
}
/* function exit code */
__pyx_L1_error:;
__Pyx_AddTraceback("datamodel.converters._parse_typing_type.genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__Pyx_DECREF((PyObject *)__pyx_cur_scope);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_gb_9datamodel_10converters_18_parse_typing_type_2generator1(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("genexpr", 0);
__pyx_L3_first_run:;
if (unlikely(__pyx_sent_value != Py_None)) {
if (unlikely(__pyx_sent_value)) PyErr_SetString(PyExc_TypeError, "can't send non-None value to a just-started generator");
__PYX_ERR(0, 1050, __pyx_L1_error)
}
/* … */
if (unlikely(!__pyx_cur_scope->__pyx_outer_scope->__pyx_v_field)) { __Pyx_RaiseClosureNameError("field"); __PYX_ERR(0, 1050, __pyx_L1_error) }
__pyx_t_4 = __pyx_cur_scope->__pyx_outer_scope->__pyx_v_field;
__Pyx_INCREF(__pyx_t_4);
if (unlikely(!__pyx_cur_scope->__pyx_outer_scope->__pyx_v_type_args)) { __Pyx_RaiseClosureNameError("type_args"); __PYX_ERR(0, 1050, __pyx_L1_error) }
if (unlikely(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_type_args == Py_None)) {
PyErr_SetString(PyExc_TypeError, "\047NoneType\047 object is not subscriptable");
__PYX_ERR(0, 1050, __pyx_L1_error)
}
__pyx_t_5 = __Pyx_GetItemInt_Tuple(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_type_args, 0, long, 1, __Pyx_PyLong_From_long, 0, 1, 1, __Pyx_ReferenceSharing_SharedReference); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1050, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__pyx_t_7.__pyx_n = 2;
__pyx_t_7.encoder = Py_None;
__pyx_t_7.as_objects = Py_False;
__pyx_t_6 = __pyx_f_9datamodel_10converters__parse_type(__pyx_t_4, __pyx_t_5, __pyx_cur_scope->__pyx_v_datum, &__pyx_t_7); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1050, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
__pyx_r = __pyx_t_6;
__pyx_t_6 = 0;
__Pyx_XGIVEREF(__pyx_t_1);
__pyx_cur_scope->__pyx_t_0 = __pyx_t_1;
__pyx_cur_scope->__pyx_t_1 = __pyx_t_2;
__pyx_cur_scope->__pyx_t_2 = __pyx_t_3;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
__Pyx_Coroutine_ResetAndClearException(__pyx_generator);
/* return from generator, yielding value */
__pyx_generator->resume_label = 1;
return __pyx_r;
__pyx_L6_resume_from_yield:;
__pyx_t_1 = __pyx_cur_scope->__pyx_t_0;
__pyx_cur_scope->__pyx_t_0 = 0;
__Pyx_XGOTREF(__pyx_t_1);
__pyx_t_2 = __pyx_cur_scope->__pyx_t_1;
__pyx_t_3 = __pyx_cur_scope->__pyx_t_2;
if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 1050, __pyx_L1_error)
/* … */
/* function exit code */
__pyx_r = Py_None; __Pyx_INCREF(Py_None);
goto __pyx_L0;
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_4);
__Pyx_XDECREF(__pyx_t_5);
__Pyx_XDECREF(__pyx_t_6);
if (__Pyx_PyErr_Occurred()) {
__Pyx_Generator_Replace_StopIteration(0);
__Pyx_AddTraceback("genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);
}
__pyx_L0:;
__Pyx_XGIVEREF(__pyx_r);
#if !CYTHON_USE_EXC_INFO_STACK
__Pyx_Coroutine_ResetAndClearException(__pyx_generator);
#endif
__pyx_generator->resume_label = -1;
__Pyx_Coroutine_clear((PyObject*)__pyx_generator);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_gb_9datamodel_10converters_18_parse_typing_type_5generator2(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */
/* … */
__pyx_t_1 = __pyx_pf_9datamodel_10converters_18_parse_typing_type_genexpr(((PyObject*)__pyx_cur_scope), __pyx_v_data); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1050, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
/* … */
struct __pyx_obj_9datamodel_10converters___pyx_scope_struct_3_genexpr {
PyObject_HEAD
struct __pyx_obj_9datamodel_10converters___pyx_scope_struct_2___pyx_f_9datamodel_10converters__parse_typing_type *__pyx_outer_scope;
PyObject *__pyx_genexpr_arg_0;
PyObject *__pyx_v_datum;
PyObject *__pyx_t_0;
Py_ssize_t __pyx_t_1;
PyObject *(*__pyx_t_2)(PyObject *);
};
+1051: for datum in data
if (unlikely(!__pyx_cur_scope->__pyx_genexpr_arg_0)) { __Pyx_RaiseUnboundLocalError(".0"); __PYX_ERR(0, 1051, __pyx_L1_error) }
if (likely(PyList_CheckExact(__pyx_cur_scope->__pyx_genexpr_arg_0)) || PyTuple_CheckExact(__pyx_cur_scope->__pyx_genexpr_arg_0)) {
__pyx_t_1 = __pyx_cur_scope->__pyx_genexpr_arg_0; __Pyx_INCREF(__pyx_t_1);
__pyx_t_2 = 0;
__pyx_t_3 = NULL;
} else {
__pyx_t_2 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_cur_scope->__pyx_genexpr_arg_0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1051, __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, 1051, __pyx_L1_error)
}
for (;;) {
if (likely(!__pyx_t_3)) {
if (likely(PyList_CheckExact(__pyx_t_1))) {
{
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, 1051, __pyx_L1_error)
#endif
if (__pyx_t_2 >= __pyx_temp) break;
}
__pyx_t_4 = __Pyx_PyList_GET_ITEM_REF(__pyx_t_1, __pyx_t_2, __Pyx_ReferenceSharing_OwnStrongReference);
++__pyx_t_2;
} 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, 1051, __pyx_L1_error)
#endif
if (__pyx_t_2 >= __pyx_temp) break;
}
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_4 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_2));
#else
__pyx_t_4 = __Pyx_PySequence_ITEM(__pyx_t_1, __pyx_t_2);
#endif
++__pyx_t_2;
}
if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1051, __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, 1051, __pyx_L1_error)
PyErr_Clear();
}
break;
}
}
__Pyx_GOTREF(__pyx_t_4);
__Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_datum);
__Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_datum, __pyx_t_4);
__Pyx_GIVEREF(__pyx_t_4);
__pyx_t_4 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);
1052: )
+1053: elif len(data) == len(type_args):
__pyx_t_7 = PyObject_Length(__pyx_v_data); if (unlikely(__pyx_t_7 == ((Py_ssize_t)-1))) __PYX_ERR(0, 1053, __pyx_L1_error) __pyx_t_12 = __pyx_cur_scope->__pyx_v_type_args; __Pyx_INCREF(__pyx_t_12); if (unlikely(__pyx_t_12 == Py_None)) { PyErr_SetString(PyExc_TypeError, "object of type \047NoneType\047 has no len()"); __PYX_ERR(0, 1053, __pyx_L1_error) } __pyx_t_6 = __Pyx_PyTuple_GET_SIZE(__pyx_t_12); if (unlikely(__pyx_t_6 == ((Py_ssize_t)-1))) __PYX_ERR(0, 1053, __pyx_L1_error) __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __pyx_t_2 = (__pyx_t_7 == __pyx_t_6); if (__pyx_t_2) { /* … */ }
1054: # Heterogeneous tuple: Convert each element to its corresponding type
+1055: return tuple(
__pyx_t_12 = __Pyx_PySequence_Tuple(__pyx_t_1); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1055, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; __pyx_r = __pyx_t_12; } __Pyx_XDECREF(__pyx_temp); } __pyx_t_12 = 0; goto __pyx_L0;
+1056: _parse_type(field, typ, datum, encoder, False)
static PyObject *__pyx_pf_9datamodel_10converters_18_parse_typing_type_3genexpr(PyObject *__pyx_self, PyObject *__pyx_genexpr_arg_0) {
struct __pyx_obj_9datamodel_10converters___pyx_scope_struct_4_genexpr *__pyx_cur_scope;
PyObject *__pyx_r = NULL;
__pyx_cur_scope = (struct __pyx_obj_9datamodel_10converters___pyx_scope_struct_4_genexpr *)__pyx_tp_new_9datamodel_10converters___pyx_scope_struct_4_genexpr(__pyx_mstate_global->__pyx_ptype_9datamodel_10converters___pyx_scope_struct_4_genexpr, __pyx_mstate_global->__pyx_empty_tuple, NULL);
if (unlikely(!__pyx_cur_scope)) {
__pyx_cur_scope = ((struct __pyx_obj_9datamodel_10converters___pyx_scope_struct_4_genexpr *)Py_None);
__Pyx_INCREF(Py_None);
__PYX_ERR(0, 1056, __pyx_L1_error)
} else {
__Pyx_GOTREF((PyObject *)__pyx_cur_scope);
}
__pyx_cur_scope->__pyx_outer_scope = (struct __pyx_obj_9datamodel_10converters___pyx_scope_struct_2___pyx_f_9datamodel_10converters__parse_typing_type *) __pyx_self;
__Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_outer_scope);
__Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_outer_scope);
__pyx_cur_scope->__pyx_genexpr_arg_0 = __pyx_genexpr_arg_0;
__Pyx_INCREF(__pyx_cur_scope->__pyx_genexpr_arg_0);
__Pyx_GIVEREF(__pyx_cur_scope->__pyx_genexpr_arg_0);
{
__pyx_CoroutineObject *gen = __Pyx_Generator_New((__pyx_coroutine_body_t) __pyx_gb_9datamodel_10converters_18_parse_typing_type_5generator2, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[2]), (PyObject *) __pyx_cur_scope, __pyx_mstate_global->__pyx_n_u_genexpr, __pyx_mstate_global->__pyx_n_u_parse_typing_type_locals_genexp, __pyx_mstate_global->__pyx_n_u_datamodel_converters); if (unlikely(!gen)) __PYX_ERR(0, 1056, __pyx_L1_error)
__Pyx_DECREF(__pyx_cur_scope);
__Pyx_RefNannyFinishContext();
return (PyObject *) gen;
}
/* function exit code */
__pyx_L1_error:;
__Pyx_AddTraceback("datamodel.converters._parse_typing_type.genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__Pyx_DECREF((PyObject *)__pyx_cur_scope);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_gb_9datamodel_10converters_18_parse_typing_type_5generator2(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("genexpr", 0);
__pyx_L3_first_run:;
if (unlikely(__pyx_sent_value != Py_None)) {
if (unlikely(__pyx_sent_value)) PyErr_SetString(PyExc_TypeError, "can't send non-None value to a just-started generator");
__PYX_ERR(0, 1056, __pyx_L1_error)
}
/* … */
if (unlikely(!__pyx_cur_scope->__pyx_outer_scope->__pyx_v_field)) { __Pyx_RaiseClosureNameError("field"); __PYX_ERR(0, 1056, __pyx_L1_error) }
__pyx_t_4 = __pyx_cur_scope->__pyx_outer_scope->__pyx_v_field;
__Pyx_INCREF(__pyx_t_4);
if (unlikely(!__pyx_cur_scope->__pyx_outer_scope->__pyx_v_encoder)) { __Pyx_RaiseClosureNameError("encoder"); __PYX_ERR(0, 1056, __pyx_L1_error) }
__pyx_t_6 = __pyx_cur_scope->__pyx_outer_scope->__pyx_v_encoder;
__Pyx_INCREF(__pyx_t_6);
__pyx_t_9.__pyx_n = 2;
__pyx_t_9.encoder = __pyx_t_6;
__pyx_t_9.as_objects = Py_False;
__pyx_t_5 = __pyx_f_9datamodel_10converters__parse_type(__pyx_t_4, __pyx_cur_scope->__pyx_v_typ, __pyx_cur_scope->__pyx_v_datum, &__pyx_t_9); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1056, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__pyx_r = __pyx_t_5;
__pyx_t_5 = 0;
__Pyx_XGIVEREF(__pyx_t_1);
__pyx_cur_scope->__pyx_t_0 = __pyx_t_1;
__pyx_cur_scope->__pyx_t_1 = __pyx_t_2;
__pyx_cur_scope->__pyx_t_2 = __pyx_t_3;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
__Pyx_Coroutine_ResetAndClearException(__pyx_generator);
/* return from generator, yielding value */
__pyx_generator->resume_label = 1;
return __pyx_r;
__pyx_L8_resume_from_yield:;
__pyx_t_1 = __pyx_cur_scope->__pyx_t_0;
__pyx_cur_scope->__pyx_t_0 = 0;
__Pyx_XGOTREF(__pyx_t_1);
__pyx_t_2 = __pyx_cur_scope->__pyx_t_1;
__pyx_t_3 = __pyx_cur_scope->__pyx_t_2;
if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 1056, __pyx_L1_error)
/* … */
/* function exit code */
__pyx_r = Py_None; __Pyx_INCREF(Py_None);
goto __pyx_L0;
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_4);
__Pyx_XDECREF(__pyx_t_5);
__Pyx_XDECREF(__pyx_t_6);
__Pyx_XDECREF(__pyx_t_7);
if (__Pyx_PyErr_Occurred()) {
__Pyx_Generator_Replace_StopIteration(0);
__Pyx_AddTraceback("genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);
}
__pyx_L0:;
__Pyx_XGIVEREF(__pyx_r);
#if !CYTHON_USE_EXC_INFO_STACK
__Pyx_Coroutine_ResetAndClearException(__pyx_generator);
#endif
__pyx_generator->resume_label = -1;
__Pyx_Coroutine_clear((PyObject*)__pyx_generator);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
__pyx_t_1 = __pyx_pf_9datamodel_10converters_18_parse_typing_type_3genexpr(((PyObject*)__pyx_cur_scope), __pyx_t_12); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1056, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
/* … */
struct __pyx_obj_9datamodel_10converters___pyx_scope_struct_4_genexpr {
PyObject_HEAD
struct __pyx_obj_9datamodel_10converters___pyx_scope_struct_2___pyx_f_9datamodel_10converters__parse_typing_type *__pyx_outer_scope;
PyObject *__pyx_genexpr_arg_0;
PyObject *__pyx_v_datum;
PyObject *__pyx_v_typ;
PyObject *__pyx_t_0;
Py_ssize_t __pyx_t_1;
PyObject *(*__pyx_t_2)(PyObject *);
};
+1057: for typ, datum in zip(type_args, data)
if (unlikely(!__pyx_cur_scope->__pyx_genexpr_arg_0)) { __Pyx_RaiseUnboundLocalError(".0"); __PYX_ERR(0, 1057, __pyx_L1_error) }
if (likely(PyList_CheckExact(__pyx_cur_scope->__pyx_genexpr_arg_0)) || PyTuple_CheckExact(__pyx_cur_scope->__pyx_genexpr_arg_0)) {
__pyx_t_1 = __pyx_cur_scope->__pyx_genexpr_arg_0; __Pyx_INCREF(__pyx_t_1);
__pyx_t_2 = 0;
__pyx_t_3 = NULL;
} else {
__pyx_t_2 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_cur_scope->__pyx_genexpr_arg_0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1057, __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, 1057, __pyx_L1_error)
}
for (;;) {
if (likely(!__pyx_t_3)) {
if (likely(PyList_CheckExact(__pyx_t_1))) {
{
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, 1057, __pyx_L1_error)
#endif
if (__pyx_t_2 >= __pyx_temp) break;
}
__pyx_t_4 = __Pyx_PyList_GET_ITEM_REF(__pyx_t_1, __pyx_t_2, __Pyx_ReferenceSharing_OwnStrongReference);
++__pyx_t_2;
} 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, 1057, __pyx_L1_error)
#endif
if (__pyx_t_2 >= __pyx_temp) break;
}
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_4 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_2));
#else
__pyx_t_4 = __Pyx_PySequence_ITEM(__pyx_t_1, __pyx_t_2);
#endif
++__pyx_t_2;
}
if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1057, __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, 1057, __pyx_L1_error)
PyErr_Clear();
}
break;
}
}
__Pyx_GOTREF(__pyx_t_4);
if ((likely(PyTuple_CheckExact(__pyx_t_4))) || (PyList_CheckExact(__pyx_t_4))) {
PyObject* sequence = __pyx_t_4;
Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
if (unlikely(size != 2)) {
if (size > 2) __Pyx_RaiseTooManyValuesError(2);
else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
__PYX_ERR(0, 1057, __pyx_L1_error)
}
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
if (likely(PyTuple_CheckExact(sequence))) {
__pyx_t_5 = PyTuple_GET_ITEM(sequence, 0);
__Pyx_INCREF(__pyx_t_5);
__pyx_t_6 = PyTuple_GET_ITEM(sequence, 1);
__Pyx_INCREF(__pyx_t_6);
} else {
__pyx_t_5 = __Pyx_PyList_GET_ITEM_REF(sequence, 0, __Pyx_ReferenceSharing_SharedReference);
if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1057, __pyx_L1_error)
__Pyx_XGOTREF(__pyx_t_5);
__pyx_t_6 = __Pyx_PyList_GET_ITEM_REF(sequence, 1, __Pyx_ReferenceSharing_SharedReference);
if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1057, __pyx_L1_error)
__Pyx_XGOTREF(__pyx_t_6);
}
#else
__pyx_t_5 = __Pyx_PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1057, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__pyx_t_6 = __Pyx_PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1057, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
#endif
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
} else {
Py_ssize_t index = -1;
__pyx_t_7 = PyObject_GetIter(__pyx_t_4); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1057, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__pyx_t_8 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_7);
index = 0; __pyx_t_5 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_5)) goto __pyx_L6_unpacking_failed;
__Pyx_GOTREF(__pyx_t_5);
index = 1; __pyx_t_6 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_6)) goto __pyx_L6_unpacking_failed;
__Pyx_GOTREF(__pyx_t_6);
if (__Pyx_IternextUnpackEndCheck(__pyx_t_8(__pyx_t_7), 2) < (0)) __PYX_ERR(0, 1057, __pyx_L1_error)
__pyx_t_8 = NULL;
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
goto __pyx_L7_unpacking_done;
__pyx_L6_unpacking_failed:;
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
__pyx_t_8 = NULL;
if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
__PYX_ERR(0, 1057, __pyx_L1_error)
__pyx_L7_unpacking_done:;
}
__Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_typ);
__Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_typ, __pyx_t_5);
__Pyx_GIVEREF(__pyx_t_5);
__pyx_t_5 = 0;
__Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_datum);
__Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_datum, __pyx_t_6);
__Pyx_GIVEREF(__pyx_t_6);
__pyx_t_6 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);
/* … */
__pyx_t_1 = NULL;
__pyx_t_14 = 1;
{
PyObject *__pyx_callargs[3] = {__pyx_t_1, __pyx_cur_scope->__pyx_v_type_args, __pyx_v_data};
__pyx_t_12 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_zip, __pyx_callargs+__pyx_t_14, (3-__pyx_t_14) | (__pyx_t_14*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
__Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1057, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_12);
}
1058: )
+1059: elif len(type_args) > 0:
__pyx_t_12 = __pyx_cur_scope->__pyx_v_type_args;
__Pyx_INCREF(__pyx_t_12);
if (unlikely(__pyx_t_12 == Py_None)) {
PyErr_SetString(PyExc_TypeError, "object of type \047NoneType\047 has no len()");
__PYX_ERR(0, 1059, __pyx_L1_error)
}
__pyx_t_6 = __Pyx_PyTuple_GET_SIZE(__pyx_t_12); if (unlikely(__pyx_t_6 == ((Py_ssize_t)-1))) __PYX_ERR(0, 1059, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
__pyx_t_2 = (__pyx_t_6 > 0);
if (unlikely(__pyx_t_2)) {
/* … */
}
1060: # Length mismatch but we have type arguments - try to convert what we can
+1061: error = f"Tuple length mismatch for {field.name}: expected {len(type_args)}, got {len(data)}"
__pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_field, __pyx_mstate_global->__pyx_n_u_name_2); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1061, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __pyx_t_1 = __Pyx_PyObject_FormatSimple(__pyx_t_12, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1061, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __pyx_t_12 = __pyx_cur_scope->__pyx_v_type_args; __Pyx_INCREF(__pyx_t_12); if (unlikely(__pyx_t_12 == Py_None)) { PyErr_SetString(PyExc_TypeError, "object of type \047NoneType\047 has no len()"); __PYX_ERR(0, 1061, __pyx_L1_error) } __pyx_t_6 = __Pyx_PyTuple_GET_SIZE(__pyx_t_12); if (unlikely(__pyx_t_6 == ((Py_ssize_t)-1))) __PYX_ERR(0, 1061, __pyx_L1_error) __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __pyx_t_12 = __Pyx_PyUnicode_From_Py_ssize_t(__pyx_t_6, 0, ' ', 'd'); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1061, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __pyx_t_6 = PyObject_Length(__pyx_v_data); if (unlikely(__pyx_t_6 == ((Py_ssize_t)-1))) __PYX_ERR(0, 1061, __pyx_L1_error) __pyx_t_5 = __Pyx_PyUnicode_From_Py_ssize_t(__pyx_t_6, 0, ' ', 'd'); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1061, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_15[0] = __pyx_mstate_global->__pyx_kp_u_Tuple_length_mismatch_for; __pyx_t_15[1] = __pyx_t_1; __pyx_t_15[2] = __pyx_mstate_global->__pyx_kp_u_expected; __pyx_t_15[3] = __pyx_t_12; __pyx_t_15[4] = __pyx_mstate_global->__pyx_kp_u_got; __pyx_t_15[5] = __pyx_t_5; __pyx_t_6 = 43; #if __Pyx_PyUnicode_Join_CAN_USE_KIND_AND_LENGTH __pyx_t_6 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_15[1]) + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_15[3]) + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_15[5]); #endif __pyx_t_8 = 0; #if __Pyx_PyUnicode_Join_CAN_USE_KIND_AND_LENGTH __pyx_t_8 |= __Pyx_PyUnicode_KIND_04(__pyx_t_15[1]); #endif __pyx_t_9 = __Pyx_PyUnicode_Join(__pyx_t_15, 6, __pyx_t_6, __pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1061, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_v_error = ((PyObject*)__pyx_t_9); __pyx_t_9 = 0;
+1062: raise ValueError(error)
__pyx_t_5 = NULL;
__pyx_t_14 = 1;
{
PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_v_error};
__pyx_t_9 = __Pyx_PyObject_FastCall((PyObject*)(((PyTypeObject*)PyExc_ValueError)), __pyx_callargs+__pyx_t_14, (2-__pyx_t_14) | (__pyx_t_14*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
__Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1062, __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, 1062, __pyx_L1_error)
1063: # If we can't process it, just return as-is
+1064: return tuple(data) if not isinstance(data, tuple) else data
__pyx_t_2 = PyTuple_Check(__pyx_v_data); __pyx_t_3 = (!__pyx_t_2); if (__pyx_t_3) { __pyx_t_5 = __Pyx_PySequence_Tuple(__pyx_v_data); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1064, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_9 = __pyx_t_5; __pyx_t_5 = 0; } else { __Pyx_INCREF(__pyx_v_data); __pyx_t_9 = __pyx_v_data; } { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; __pyx_r = __pyx_t_9; } __Pyx_XDECREF(__pyx_temp); } __pyx_t_9 = 0; goto __pyx_L0;
1065:
+1066: if name in {'List', 'Sequence'} or field.origin in {list, Sequence}:
__Pyx_INCREF(__pyx_v_name); __pyx_t_9 = __pyx_v_name; __pyx_t_4 = __Pyx_PyObject_CompareBoolEq_object_str(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_List, Py_EQ); if (unlikely((__pyx_t_4 < 0))) __PYX_ERR(0, 1066, __pyx_L1_error) if (!__pyx_t_4) { } else { __pyx_t_2 = __pyx_t_4; goto __pyx_L31_bool_binop_done; } __pyx_t_4 = __Pyx_PyObject_CompareBoolEq_object_str(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_Sequence, Py_EQ); if (unlikely((__pyx_t_4 < 0))) __PYX_ERR(0, 1066, __pyx_L1_error) __pyx_t_2 = __pyx_t_4; __pyx_L31_bool_binop_done:; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_4 = __pyx_t_2; if (!__pyx_t_4) { } else { __pyx_t_3 = __pyx_t_4; goto __pyx_L29_bool_binop_done; } __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_field, __pyx_mstate_global->__pyx_n_u_origin_2); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1066, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_2 = __Pyx_PyObject_RichCompareBool(__pyx_t_9, ((PyObject *)(&PyList_Type)), Py_EQ); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 1066, __pyx_L1_error) if (!__pyx_t_2) { } else { __pyx_t_4 = __pyx_t_2; goto __pyx_L33_bool_binop_done; } __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_Sequence); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1066, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_2 = __Pyx_PyObject_CompareBoolEq_object_object(__pyx_t_9, __pyx_t_5, Py_EQ); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 1066, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_4 = __pyx_t_2; __pyx_L33_bool_binop_done:; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_2 = __pyx_t_4; __pyx_t_3 = __pyx_t_2; __pyx_L29_bool_binop_done:; if (__pyx_t_3) { /* … */ }
+1067: if not isinstance(data, (list, tuple)):
__pyx_t_2 = PyList_Check(__pyx_v_data); if (!__pyx_t_2) { } else { __pyx_t_3 = __pyx_t_2; goto __pyx_L36_bool_binop_done; } __pyx_t_2 = PyTuple_Check(__pyx_v_data); __pyx_t_3 = __pyx_t_2; __pyx_L36_bool_binop_done:; __pyx_t_2 = (!__pyx_t_3); if (__pyx_t_2) { /* … */ }
+1068: data = [data]
__pyx_t_9 = PyList_New(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1068, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_INCREF(__pyx_v_data); __Pyx_GIVEREF(__pyx_v_data); if (__Pyx_PyList_SET_ITEM(__pyx_t_9, 0, __pyx_v_data) != (0)) __PYX_ERR(0, 1068, __pyx_L1_error); __Pyx_DECREF_SET(__pyx_v_data, __pyx_t_9); __pyx_t_9 = 0;
+1069: return _parse_list_typing(
__pyx_t_16.__pyx_n = 1;
__pyx_t_16.as_objects = __pyx_v_as_objects;
__pyx_t_1 = __pyx_f_9datamodel_10converters__parse_list_typing(__pyx_t_9, ((PyObject*)__pyx_t_5), __pyx_v_data, __pyx_t_12, __pyx_v_origin, __pyx_v_args, &__pyx_t_16); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1069, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
{
PyObject *__pyx_temp;
{
__pyx_temp = __pyx_r;
__pyx_r = __pyx_t_1;
}
__Pyx_XDECREF(__pyx_temp);
}
__pyx_t_1 = 0;
goto __pyx_L0;
+1070: field,
__pyx_t_9 = __pyx_cur_scope->__pyx_v_field;
__Pyx_INCREF(__pyx_t_9);
+1071: type_args,
__pyx_t_5 = __pyx_cur_scope->__pyx_v_type_args;
__Pyx_INCREF(__pyx_t_5);
1072: data,
+1073: encoder,
__pyx_t_12 = __pyx_cur_scope->__pyx_v_encoder;
__Pyx_INCREF(__pyx_t_12);
1074: origin,
1075: args,
1076: as_objects=as_objects
1077: )
1078:
1079: # handle None, Optional, Union:
+1080: if name is None or name in ('Optional', 'Union'):
__pyx_t_3 = (__pyx_v_name == Py_None);
if (!__pyx_t_3) {
} else {
__pyx_t_2 = __pyx_t_3;
goto __pyx_L39_bool_binop_done;
}
__Pyx_INCREF(__pyx_v_name);
__pyx_t_1 = __pyx_v_name;
__pyx_t_4 = __Pyx_PyObject_CompareBoolEq_object_str(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_Optional, Py_EQ); if (unlikely((__pyx_t_4 < 0))) __PYX_ERR(0, 1080, __pyx_L1_error)
if (!__pyx_t_4) {
} else {
__pyx_t_3 = __pyx_t_4;
goto __pyx_L41_bool_binop_done;
}
__pyx_t_4 = __Pyx_PyObject_CompareBoolEq_object_str(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_Union, Py_EQ); if (unlikely((__pyx_t_4 < 0))) __PYX_ERR(0, 1080, __pyx_L1_error)
__pyx_t_3 = __pyx_t_4;
__pyx_L41_bool_binop_done:;
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_t_4 = __pyx_t_3;
__pyx_t_2 = __pyx_t_4;
__pyx_L39_bool_binop_done:;
if (__pyx_t_2) {
/* … */
}
+1081: return _parse_optional_union(field, T, data, encoder, origin, args)
__pyx_t_1 = __pyx_cur_scope->__pyx_v_field;
__Pyx_INCREF(__pyx_t_1);
__pyx_t_12 = __pyx_cur_scope->__pyx_v_encoder;
__Pyx_INCREF(__pyx_t_12);
__pyx_t_5 = __pyx_f_9datamodel_10converters__parse_optional_union(__pyx_t_1, __pyx_v_T, __pyx_v_data, __pyx_t_12, __pyx_v_origin, __pyx_v_args); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1081, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
{
PyObject *__pyx_temp;
{
__pyx_temp = __pyx_r;
__pyx_r = __pyx_t_5;
}
__Pyx_XDECREF(__pyx_temp);
}
__pyx_t_5 = 0;
goto __pyx_L0;
1082:
+1083: return data
{
PyObject *__pyx_temp;
{
__pyx_temp = __pyx_r;
__Pyx_INCREF(__pyx_v_data);
__pyx_r = __pyx_v_data;
}
__Pyx_XDECREF(__pyx_temp);
}
goto __pyx_L0;
1084:
+1085: cdef object _parse_list_typing(
static PyObject *__pyx_f_9datamodel_10converters__parse_list_typing(PyObject *__pyx_v_field, PyObject *__pyx_v_type_args, PyObject *__pyx_v_data, PyObject *__pyx_v_encoder, CYTHON_UNUSED PyObject *__pyx_v_origin, CYTHON_UNUSED PyObject *__pyx_v_args, struct __pyx_opt_args_9datamodel_10converters__parse_list_typing *__pyx_optional_args) {
PyObject *__pyx_v_result = 0;
PyObject *__pyx_v_processed_sublist = 0;
CYTHON_UNUSED PyObject *__pyx_v_out = 0;
PyObject *__pyx_v_arg_type = 0;
PyObject *__pyx_v_arg_module = 0;
int __pyx_v_is_nested_typing;
PyObject *__pyx_v_subT = NULL;
PyObject *__pyx_v_x = NULL;
PyObject *__pyx_v_inner_type = NULL;
PyObject *__pyx_v_sublist = NULL;
PyObject *__pyx_v_item = NULL;
PyObject *__pyx_v_processed_item = NULL;
PyObject *__pyx_v_d = NULL;
PyObject *__pyx_v_a = NULL;
PyObject *__pyx_r = NULL;
if (__pyx_optional_args) {
}
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_13);
__Pyx_XDECREF(__pyx_t_14);
__Pyx_XDECREF(__pyx_t_15);
__Pyx_AddTraceback("datamodel.converters._parse_list_typing", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = 0;
__pyx_L0:;
__Pyx_XDECREF(__pyx_v_result);
__Pyx_XDECREF(__pyx_v_processed_sublist);
__Pyx_XDECREF(__pyx_v_out);
__Pyx_XDECREF(__pyx_v_arg_type);
__Pyx_XDECREF(__pyx_v_arg_module);
__Pyx_XDECREF(__pyx_v_subT);
__Pyx_XDECREF(__pyx_v_x);
__Pyx_XDECREF(__pyx_v_inner_type);
__Pyx_XDECREF(__pyx_v_sublist);
__Pyx_XDECREF(__pyx_v_item);
__Pyx_XDECREF(__pyx_v_processed_item);
__Pyx_XDECREF(__pyx_v_d);
__Pyx_XDECREF(__pyx_v_a);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
struct __pyx_opt_args_9datamodel_10converters__parse_list_typing {
int __pyx_n;
PyObject *as_objects;
PyObject *typeinfo;
};
1086: object field,
1087: tuple type_args,
1088: object data,
1089: object encoder,
1090: object origin,
1091: object args,
1092: object as_objects=False,
1093: dict typeinfo=None
1094: ):
1095: """
1096: Handle List[T] logic, trying to reduce overhead from repeated lookups.
1097: """
+1098: cdef list result = []
__pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1098, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_result = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0;
+1099: cdef list processed_sublist = []
__pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1099, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_processed_sublist = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0;
+1100: cdef list out = []
__pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1100, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_out = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0;
+1101: cdef object arg_type = type_args[0] if type_args else None
if (__pyx_v_type_args == Py_None) __pyx_t_2 = 0;
else
{
Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_v_type_args);
if (unlikely(((!CYTHON_ASSUME_SAFE_SIZE) && __pyx_temp < 0))) __PYX_ERR(0, 1101, __pyx_L1_error)
__pyx_t_2 = (__pyx_temp != 0);
}
if (__pyx_t_2) {
if (unlikely(__pyx_v_type_args == Py_None)) {
PyErr_SetString(PyExc_TypeError, "\047NoneType\047 object is not subscriptable");
__PYX_ERR(0, 1101, __pyx_L1_error)
}
__pyx_t_3 = __Pyx_GetItemInt_Tuple(__pyx_v_type_args, 0, long, 1, __Pyx_PyLong_From_long, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1101, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_1 = __pyx_t_3;
__pyx_t_3 = 0;
} else {
__Pyx_INCREF(Py_None);
__pyx_t_1 = Py_None;
}
__pyx_v_arg_type = __pyx_t_1;
__pyx_t_1 = 0;
+1102: cdef object arg_module = getattr(arg_type, '__module__', None)
__pyx_t_1 = __Pyx_GetAttr3(__pyx_v_arg_type, __pyx_mstate_global->__pyx_n_u_module, Py_None); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1102, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_arg_module = __pyx_t_1; __pyx_t_1 = 0;
+1103: cdef bint is_nested_typing = (arg_module == 'typing')
__pyx_t_1 = __Pyx_PyObject_CompareEq_object_str(__pyx_v_arg_module, __pyx_mstate_global->__pyx_n_u_typing, Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1103, __pyx_L1_error) __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 1103, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_v_is_nested_typing = __pyx_t_2;
1104:
1105: # If no type args, we can't proceed with further logic
+1106: if not type_args:
if (__pyx_v_type_args == Py_None) __pyx_t_2 = 0;
else
{
Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_v_type_args);
if (unlikely(((!CYTHON_ASSUME_SAFE_SIZE) && __pyx_temp < 0))) __PYX_ERR(0, 1106, __pyx_L1_error)
__pyx_t_2 = (__pyx_temp != 0);
}
__pyx_t_4 = (!__pyx_t_2);
if (__pyx_t_4) {
/* … */
}
+1107: return data
{
PyObject *__pyx_temp;
{
__pyx_temp = __pyx_r;
__Pyx_INCREF(__pyx_v_data);
__pyx_r = __pyx_v_data;
}
__Pyx_XDECREF(__pyx_temp);
}
goto __pyx_L0;
1108:
+1109: if is_nested_typing:
if (__pyx_v_is_nested_typing) {
/* … */
}
1110: # nested typing: e.g. List[List[Foo]] or List[Optional[Foo]] etc.
+1111: try:
{
/*try:*/ {
/* … */
}
__pyx_L5_error:;
__Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
__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;
__Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
/* … */
__pyx_L7_except_error:;
__Pyx_XGIVEREF(__pyx_t_5);
__Pyx_XGIVEREF(__pyx_t_6);
__Pyx_XGIVEREF(__pyx_t_7);
__Pyx_ExceptionReset(__pyx_t_5, __pyx_t_6, __pyx_t_7);
goto __pyx_L1_error;
__pyx_L9_try_return:;
__Pyx_XGIVEREF(__pyx_t_5);
__Pyx_XGIVEREF(__pyx_t_6);
__Pyx_XGIVEREF(__pyx_t_7);
__Pyx_ExceptionReset(__pyx_t_5, __pyx_t_6, __pyx_t_7);
goto __pyx_L0;
__pyx_L8_except_return:;
__Pyx_XGIVEREF(__pyx_t_5);
__Pyx_XGIVEREF(__pyx_t_6);
__Pyx_XGIVEREF(__pyx_t_7);
__Pyx_ExceptionReset(__pyx_t_5, __pyx_t_6, __pyx_t_7);
goto __pyx_L0;
}
+1112: subT = arg_type.__args__[0]
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg_type, __pyx_mstate_global->__pyx_n_u_args); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1112, __pyx_L5_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = __Pyx_GetItemInt(__pyx_t_1, 0, long, 1, __Pyx_PyLong_From_long, 0, 1, 1, __Pyx_ReferenceSharing_OwnStrongReference); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1112, __pyx_L5_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_v_subT = __pyx_t_3; __pyx_t_3 = 0;
+1113: if is_dc(subT):
__pyx_t_4 = __pyx_f_9datamodel_10converters_is_dc(__pyx_v_subT); if (unlikely(__pyx_t_4 == ((int)-1) && PyErr_Occurred())) __PYX_ERR(0, 1113, __pyx_L5_error) if (__pyx_t_4) { /* … */ }
+1114: for x in data:
if (likely(PyList_CheckExact(__pyx_v_data)) || PyTuple_CheckExact(__pyx_v_data)) { __pyx_t_3 = __pyx_v_data; __Pyx_INCREF(__pyx_t_3); __pyx_t_8 = 0; __pyx_t_9 = NULL; } else { __pyx_t_8 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_v_data); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1114, __pyx_L5_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_9 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_3); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1114, __pyx_L5_error) } for (;;) { if (likely(!__pyx_t_9)) { if (likely(PyList_CheckExact(__pyx_t_3))) { { 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, 1114, __pyx_L5_error) #endif if (__pyx_t_8 >= __pyx_temp) break; } __pyx_t_1 = __Pyx_PyList_GET_ITEM_REF(__pyx_t_3, __pyx_t_8, __Pyx_ReferenceSharing_OwnStrongReference); ++__pyx_t_8; } else { { 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, 1114, __pyx_L5_error) #endif if (__pyx_t_8 >= __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_8)); #else __pyx_t_1 = __Pyx_PySequence_ITEM(__pyx_t_3, __pyx_t_8); #endif ++__pyx_t_8; } if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1114, __pyx_L5_error) } else { __pyx_t_1 = __pyx_t_9(__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, 1114, __pyx_L5_error) PyErr_Clear(); } break; } } __Pyx_GOTREF(__pyx_t_1); __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_1); __pyx_t_1 = 0; /* … */ } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+1115: result.append(_instantiate_dataclass(subT, x))
__pyx_t_1 = __pyx_f_9datamodel_10converters__instantiate_dataclass(__pyx_v_subT, __pyx_v_x); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1115, __pyx_L5_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_10 = __Pyx_PyList_Append(__pyx_v_result, __pyx_t_1); if (unlikely(__pyx_t_10 == ((int)-1))) __PYX_ERR(0, 1115, __pyx_L5_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+1116: return result
{
PyObject *__pyx_temp;
{
__pyx_temp = __pyx_r;
__Pyx_INCREF(__pyx_v_result);
__pyx_r = __pyx_v_result;
}
__Pyx_XDECREF(__pyx_temp);
}
goto __pyx_L9_try_return;
+1117: elif field._inner_origin is list:
__pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_field, __pyx_mstate_global->__pyx_n_u_inner_origin); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1117, __pyx_L5_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = (__pyx_t_3 == ((PyObject *)(&PyList_Type))); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (__pyx_t_4) { /* … */ }
+1118: inner_type = subT
__Pyx_INCREF(__pyx_v_subT);
__pyx_v_inner_type = __pyx_v_subT;
+1119: for sublist in data:
if (likely(PyList_CheckExact(__pyx_v_data)) || PyTuple_CheckExact(__pyx_v_data)) { __pyx_t_3 = __pyx_v_data; __Pyx_INCREF(__pyx_t_3); __pyx_t_8 = 0; __pyx_t_9 = NULL; } else { __pyx_t_8 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_v_data); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1119, __pyx_L5_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_9 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_3); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1119, __pyx_L5_error) } for (;;) { if (likely(!__pyx_t_9)) { if (likely(PyList_CheckExact(__pyx_t_3))) { { 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, 1119, __pyx_L5_error) #endif if (__pyx_t_8 >= __pyx_temp) break; } __pyx_t_1 = __Pyx_PyList_GET_ITEM_REF(__pyx_t_3, __pyx_t_8, __Pyx_ReferenceSharing_OwnStrongReference); ++__pyx_t_8; } else { { 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, 1119, __pyx_L5_error) #endif if (__pyx_t_8 >= __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_8)); #else __pyx_t_1 = __Pyx_PySequence_ITEM(__pyx_t_3, __pyx_t_8); #endif ++__pyx_t_8; } if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1119, __pyx_L5_error) } else { __pyx_t_1 = __pyx_t_9(__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, 1119, __pyx_L5_error) PyErr_Clear(); } break; } } __Pyx_GOTREF(__pyx_t_1); __Pyx_XDECREF_SET(__pyx_v_sublist, __pyx_t_1); __pyx_t_1 = 0; /* … */ } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+1120: if not isinstance(sublist, (list, tuple)):
__pyx_t_2 = PyList_Check(__pyx_v_sublist); if (!__pyx_t_2) { } else { __pyx_t_4 = __pyx_t_2; goto __pyx_L18_bool_binop_done; } __pyx_t_2 = PyTuple_Check(__pyx_v_sublist); __pyx_t_4 = __pyx_t_2; __pyx_L18_bool_binop_done:; __pyx_t_2 = (!__pyx_t_4); if (__pyx_t_2) { /* … */ }
1121: # Convert single items to lists if needed
+1122: sublist = [sublist]
__pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1122, __pyx_L5_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_sublist); __Pyx_GIVEREF(__pyx_v_sublist); if (__Pyx_PyList_SET_ITEM(__pyx_t_1, 0, __pyx_v_sublist) != (0)) __PYX_ERR(0, 1122, __pyx_L5_error); __Pyx_DECREF_SET(__pyx_v_sublist, __pyx_t_1); __pyx_t_1 = 0;
+1123: processed_sublist = []
__pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1123, __pyx_L5_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_processed_sublist, ((PyObject*)__pyx_t_1)); __pyx_t_1 = 0;
+1124: for item in sublist:
if (likely(PyList_CheckExact(__pyx_v_sublist)) || PyTuple_CheckExact(__pyx_v_sublist)) { __pyx_t_1 = __pyx_v_sublist; __Pyx_INCREF(__pyx_t_1); __pyx_t_11 = 0; __pyx_t_12 = NULL; } else { __pyx_t_11 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_v_sublist); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1124, __pyx_L5_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_12 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_1); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1124, __pyx_L5_error) } for (;;) { if (likely(!__pyx_t_12)) { if (likely(PyList_CheckExact(__pyx_t_1))) { { 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, 1124, __pyx_L5_error) #endif if (__pyx_t_11 >= __pyx_temp) break; } __pyx_t_13 = __Pyx_PyList_GET_ITEM_REF(__pyx_t_1, __pyx_t_11, __Pyx_ReferenceSharing_OwnStrongReference); ++__pyx_t_11; } 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, 1124, __pyx_L5_error) #endif if (__pyx_t_11 >= __pyx_temp) break; } #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_13 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_11)); #else __pyx_t_13 = __Pyx_PySequence_ITEM(__pyx_t_1, __pyx_t_11); #endif ++__pyx_t_11; } if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1124, __pyx_L5_error) } else { __pyx_t_13 = __pyx_t_12(__pyx_t_1); if (unlikely(!__pyx_t_13)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(0, 1124, __pyx_L5_error) PyErr_Clear(); } break; } } __Pyx_GOTREF(__pyx_t_13); __Pyx_XDECREF_SET(__pyx_v_item, __pyx_t_13); __pyx_t_13 = 0; /* … */ } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
1125: # Convert each item to the expected inner type
+1126: if is_primitive(inner_type):
__pyx_t_14 = NULL;
__Pyx_GetModuleGlobalName(__pyx_t_15, __pyx_mstate_global->__pyx_n_u_is_primitive); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 1126, __pyx_L5_error)
__Pyx_GOTREF(__pyx_t_15);
__pyx_t_16 = 1;
#if CYTHON_UNPACK_METHODS
if (unlikely(PyMethod_Check(__pyx_t_15))) {
__pyx_t_14 = PyMethod_GET_SELF(__pyx_t_15);
assert(__pyx_t_14);
PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_15);
__Pyx_INCREF(__pyx_t_14);
__Pyx_INCREF(__pyx__function);
__Pyx_DECREF_SET(__pyx_t_15, __pyx__function);
__pyx_t_16 = 0;
}
#endif
{
PyObject *__pyx_callargs[2] = {__pyx_t_14, __pyx_v_inner_type};
__pyx_t_13 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_15, __pyx_callargs+__pyx_t_16, (2-__pyx_t_16) | (__pyx_t_16*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
__Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
__Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1126, __pyx_L5_error)
__Pyx_GOTREF(__pyx_t_13);
}
__pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_13); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 1126, __pyx_L5_error)
__Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
if (__pyx_t_2) {
/* … */
goto __pyx_L22;
}
+1127: if inner_type == int and isinstance(item, str):
__pyx_t_4 = __Pyx_PyObject_RichCompareBool(__pyx_v_inner_type, ((PyObject *)(&PyLong_Type)), Py_EQ); if (unlikely((__pyx_t_4 < 0))) __PYX_ERR(0, 1127, __pyx_L5_error) if (__pyx_t_4) { } else { __pyx_t_2 = __pyx_t_4; goto __pyx_L24_bool_binop_done; } __pyx_t_4 = PyUnicode_Check(__pyx_v_item); __pyx_t_2 = __pyx_t_4; __pyx_L24_bool_binop_done:; if (__pyx_t_2) { /* … */ goto __pyx_L23; }
+1128: processed_sublist.append(int(item))
__pyx_t_13 = __Pyx_PyNumber_Int(__pyx_v_item); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1128, __pyx_L5_error) __Pyx_GOTREF(__pyx_t_13); __pyx_t_10 = __Pyx_PyList_Append(__pyx_v_processed_sublist, __pyx_t_13); if (unlikely(__pyx_t_10 == ((int)-1))) __PYX_ERR(0, 1128, __pyx_L5_error) __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
+1129: elif inner_type == float and isinstance(item, str):
__pyx_t_4 = __Pyx_PyObject_RichCompareBool(__pyx_v_inner_type, ((PyObject *)(&PyFloat_Type)), Py_EQ); if (unlikely((__pyx_t_4 < 0))) __PYX_ERR(0, 1129, __pyx_L5_error) if (__pyx_t_4) { } else { __pyx_t_2 = __pyx_t_4; goto __pyx_L26_bool_binop_done; } __pyx_t_4 = PyUnicode_Check(__pyx_v_item); __pyx_t_2 = __pyx_t_4; __pyx_L26_bool_binop_done:; if (__pyx_t_2) { /* … */ goto __pyx_L23; }
+1130: processed_sublist.append(float(item))
__pyx_t_13 = __Pyx_PyNumber_Float(__pyx_v_item); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1130, __pyx_L5_error) __Pyx_GOTREF(__pyx_t_13); if (__Pyx_PyFloat_FromNumber(&__pyx_t_13, NULL, 0) < (0)) __PYX_ERR(0, 1130, __pyx_L5_error) __pyx_t_10 = __Pyx_PyList_Append(__pyx_v_processed_sublist, __pyx_t_13); if (unlikely(__pyx_t_10 == ((int)-1))) __PYX_ERR(0, 1130, __pyx_L5_error) __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
1131: else:
+1132: processed_sublist.append(item)
/*else*/ {
__pyx_t_10 = __Pyx_PyList_Append(__pyx_v_processed_sublist, __pyx_v_item); if (unlikely(__pyx_t_10 == ((int)-1))) __PYX_ERR(0, 1132, __pyx_L5_error)
}
__pyx_L23:;
1133: else:
+1134: processed_sublist.append(_parse_type(field, inner_type, item, encoder, False))
/*else*/ {
__pyx_t_17.__pyx_n = 2;
__pyx_t_17.encoder = __pyx_v_encoder;
__pyx_t_17.as_objects = Py_False;
__pyx_t_13 = __pyx_f_9datamodel_10converters__parse_type(__pyx_v_field, __pyx_v_inner_type, __pyx_v_item, &__pyx_t_17); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1134, __pyx_L5_error)
__Pyx_GOTREF(__pyx_t_13);
__pyx_t_10 = __Pyx_PyList_Append(__pyx_v_processed_sublist, __pyx_t_13); if (unlikely(__pyx_t_10 == ((int)-1))) __PYX_ERR(0, 1134, __pyx_L5_error)
__Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
}
__pyx_L22:;
+1135: result.append(processed_sublist)
__pyx_t_10 = __Pyx_PyList_Append(__pyx_v_result, __pyx_v_processed_sublist); if (unlikely(__pyx_t_10 == ((int)-1))) __PYX_ERR(0, 1135, __pyx_L5_error)
+1136: return result
{
PyObject *__pyx_temp;
{
__pyx_temp = __pyx_r;
__Pyx_INCREF(__pyx_v_result);
__pyx_r = __pyx_v_result;
}
__Pyx_XDECREF(__pyx_temp);
}
goto __pyx_L9_try_return;
1137: # Handle List[Optional[T]] or List[Union[...]]
+1138: elif field._inner_origin is Union:
__pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_field, __pyx_mstate_global->__pyx_n_u_inner_origin); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1138, __pyx_L5_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_Union); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1138, __pyx_L5_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = (__pyx_t_3 == __pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_2) { /* … */ }
+1139: for item in data:
if (likely(PyList_CheckExact(__pyx_v_data)) || PyTuple_CheckExact(__pyx_v_data)) { __pyx_t_1 = __pyx_v_data; __Pyx_INCREF(__pyx_t_1); __pyx_t_8 = 0; __pyx_t_9 = NULL; } else { __pyx_t_8 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_v_data); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1139, __pyx_L5_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_9 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1139, __pyx_L5_error) } for (;;) { if (likely(!__pyx_t_9)) { if (likely(PyList_CheckExact(__pyx_t_1))) { { 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, 1139, __pyx_L5_error) #endif if (__pyx_t_8 >= __pyx_temp) break; } __pyx_t_3 = __Pyx_PyList_GET_ITEM_REF(__pyx_t_1, __pyx_t_8, __Pyx_ReferenceSharing_OwnStrongReference); ++__pyx_t_8; } 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, 1139, __pyx_L5_error) #endif if (__pyx_t_8 >= __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_8)); #else __pyx_t_3 = __Pyx_PySequence_ITEM(__pyx_t_1, __pyx_t_8); #endif ++__pyx_t_8; } if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1139, __pyx_L5_error) } else { __pyx_t_3 = __pyx_t_9(__pyx_t_1); 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, 1139, __pyx_L5_error) PyErr_Clear(); } break; } } __Pyx_GOTREF(__pyx_t_3); __Pyx_XDECREF_SET(__pyx_v_item, __pyx_t_3); __pyx_t_3 = 0; /* … */ } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+1140: processed_item = _parse_typing(field, arg_type, item, encoder, False)
__pyx_t_18.__pyx_n = 2;
__pyx_t_18.encoder = __pyx_v_encoder;
__pyx_t_18.as_objects = Py_False;
__pyx_t_3 = __pyx_f_9datamodel_10converters__parse_typing(__pyx_v_field, __pyx_v_arg_type, __pyx_v_item, &__pyx_t_18); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1140, __pyx_L5_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_XDECREF_SET(__pyx_v_processed_item, __pyx_t_3);
__pyx_t_3 = 0;
+1141: result.append(processed_item)
__pyx_t_10 = __Pyx_PyList_Append(__pyx_v_result, __pyx_v_processed_item); if (unlikely(__pyx_t_10 == ((int)-1))) __PYX_ERR(0, 1141, __pyx_L5_error)
+1142: return result
{
PyObject *__pyx_temp;
{
__pyx_temp = __pyx_r;
__Pyx_INCREF(__pyx_v_result);
__pyx_r = __pyx_v_result;
}
__Pyx_XDECREF(__pyx_temp);
}
goto __pyx_L9_try_return;
1143: else:
1144: # fallback
+1145: return data
/*else*/ {
{
PyObject *__pyx_temp;
{
__pyx_temp = __pyx_r;
__Pyx_INCREF(__pyx_v_data);
__pyx_r = __pyx_v_data;
}
__Pyx_XDECREF(__pyx_temp);
}
goto __pyx_L9_try_return;
}
+1146: except AttributeError:
__pyx_t_19 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(((PyTypeObject*)PyExc_AttributeError)))); if (__pyx_t_19) { __Pyx_ErrRestore(0,0,0);
+1147: return data
{
PyObject *__pyx_temp;
{
__pyx_temp = __pyx_r;
__Pyx_INCREF(__pyx_v_data);
__pyx_r = __pyx_v_data;
}
__Pyx_XDECREF(__pyx_temp);
}
goto __pyx_L8_except_return;
}
goto __pyx_L7_except_error;
+1148: elif arg_type is not None and is_dc(arg_type):
__pyx_t_4 = (__pyx_v_arg_type != Py_None);
if (__pyx_t_4) {
} else {
__pyx_t_2 = __pyx_t_4;
goto __pyx_L35_bool_binop_done;
}
__pyx_t_4 = __pyx_f_9datamodel_10converters_is_dc(__pyx_v_arg_type); if (unlikely(__pyx_t_4 == ((int)-1) && PyErr_Occurred())) __PYX_ERR(0, 1148, __pyx_L1_error)
__pyx_t_2 = __pyx_t_4;
__pyx_L35_bool_binop_done:;
if (__pyx_t_2) {
/* … */
}
1149: # build list of dataclasses
+1150: for d in data:
if (likely(PyList_CheckExact(__pyx_v_data)) || PyTuple_CheckExact(__pyx_v_data)) { __pyx_t_1 = __pyx_v_data; __Pyx_INCREF(__pyx_t_1); __pyx_t_8 = 0; __pyx_t_9 = NULL; } else { __pyx_t_8 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_v_data); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1150, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_9 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1150, __pyx_L1_error) } for (;;) { if (likely(!__pyx_t_9)) { if (likely(PyList_CheckExact(__pyx_t_1))) { { 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, 1150, __pyx_L1_error) #endif if (__pyx_t_8 >= __pyx_temp) break; } __pyx_t_3 = __Pyx_PyList_GET_ITEM_REF(__pyx_t_1, __pyx_t_8, __Pyx_ReferenceSharing_OwnStrongReference); ++__pyx_t_8; } 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, 1150, __pyx_L1_error) #endif if (__pyx_t_8 >= __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_8)); #else __pyx_t_3 = __Pyx_PySequence_ITEM(__pyx_t_1, __pyx_t_8); #endif ++__pyx_t_8; } if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1150, __pyx_L1_error) } else { __pyx_t_3 = __pyx_t_9(__pyx_t_1); 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, 1150, __pyx_L1_error) PyErr_Clear(); } break; } } __Pyx_GOTREF(__pyx_t_3); __Pyx_XDECREF_SET(__pyx_v_d, __pyx_t_3); __pyx_t_3 = 0; /* … */ } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+1151: result.append(_instantiate_dataclass(arg_type, d))
__pyx_t_3 = __pyx_f_9datamodel_10converters__instantiate_dataclass(__pyx_v_arg_type, __pyx_v_d); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1151, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_10 = __Pyx_PyList_Append(__pyx_v_result, __pyx_t_3); if (unlikely(__pyx_t_10 == ((int)-1))) __PYX_ERR(0, 1151, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+1152: return result
{
PyObject *__pyx_temp;
{
__pyx_temp = __pyx_r;
__Pyx_INCREF(__pyx_v_result);
__pyx_r = __pyx_v_result;
}
__Pyx_XDECREF(__pyx_temp);
}
goto __pyx_L0;
+1153: elif is_primitive(arg_type):
__pyx_t_3 = NULL; __Pyx_GetModuleGlobalName(__pyx_t_13, __pyx_mstate_global->__pyx_n_u_is_primitive); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1153, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __pyx_t_16 = 1; #if CYTHON_UNPACK_METHODS 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_13, __pyx__function); __pyx_t_16 = 0; } #endif { PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_v_arg_type}; __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_13, __pyx_callargs+__pyx_t_16, (2-__pyx_t_16) | (__pyx_t_16*__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, 1153, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 1153, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_2) { /* … */ }
1154: # For simple primitive types, don't create nested lists
+1155: result = []
__pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1155, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_result, ((PyObject*)__pyx_t_1)); __pyx_t_1 = 0;
+1156: for item in data:
if (likely(PyList_CheckExact(__pyx_v_data)) || PyTuple_CheckExact(__pyx_v_data)) { __pyx_t_1 = __pyx_v_data; __Pyx_INCREF(__pyx_t_1); __pyx_t_8 = 0; __pyx_t_9 = NULL; } else { __pyx_t_8 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_v_data); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1156, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_9 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1156, __pyx_L1_error) } for (;;) { if (likely(!__pyx_t_9)) { if (likely(PyList_CheckExact(__pyx_t_1))) { { 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, 1156, __pyx_L1_error) #endif if (__pyx_t_8 >= __pyx_temp) break; } __pyx_t_13 = __Pyx_PyList_GET_ITEM_REF(__pyx_t_1, __pyx_t_8, __Pyx_ReferenceSharing_OwnStrongReference); ++__pyx_t_8; } 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, 1156, __pyx_L1_error) #endif if (__pyx_t_8 >= __pyx_temp) break; } #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_13 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_8)); #else __pyx_t_13 = __Pyx_PySequence_ITEM(__pyx_t_1, __pyx_t_8); #endif ++__pyx_t_8; } if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1156, __pyx_L1_error) } else { __pyx_t_13 = __pyx_t_9(__pyx_t_1); if (unlikely(!__pyx_t_13)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(0, 1156, __pyx_L1_error) PyErr_Clear(); } break; } } __Pyx_GOTREF(__pyx_t_13); __Pyx_XDECREF_SET(__pyx_v_item, __pyx_t_13); __pyx_t_13 = 0; /* … */ } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
1157: # Convert the item to the expected type
+1158: if arg_type == int and isinstance(item, str):
__pyx_t_4 = __Pyx_PyObject_RichCompareBool(__pyx_v_arg_type, ((PyObject *)(&PyLong_Type)), Py_EQ); if (unlikely((__pyx_t_4 < 0))) __PYX_ERR(0, 1158, __pyx_L1_error) if (__pyx_t_4) { } else { __pyx_t_2 = __pyx_t_4; goto __pyx_L43_bool_binop_done; } __pyx_t_4 = PyUnicode_Check(__pyx_v_item); __pyx_t_2 = __pyx_t_4; __pyx_L43_bool_binop_done:; if (__pyx_t_2) { /* … */ goto __pyx_L42; }
+1159: result.append(int(item))
__pyx_t_13 = __Pyx_PyNumber_Int(__pyx_v_item); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1159, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __pyx_t_10 = __Pyx_PyList_Append(__pyx_v_result, __pyx_t_13); if (unlikely(__pyx_t_10 == ((int)-1))) __PYX_ERR(0, 1159, __pyx_L1_error) __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
+1160: elif arg_type == float and isinstance(item, str):
__pyx_t_4 = __Pyx_PyObject_RichCompareBool(__pyx_v_arg_type, ((PyObject *)(&PyFloat_Type)), Py_EQ); if (unlikely((__pyx_t_4 < 0))) __PYX_ERR(0, 1160, __pyx_L1_error) if (__pyx_t_4) { } else { __pyx_t_2 = __pyx_t_4; goto __pyx_L45_bool_binop_done; } __pyx_t_4 = PyUnicode_Check(__pyx_v_item); __pyx_t_2 = __pyx_t_4; __pyx_L45_bool_binop_done:; if (__pyx_t_2) { /* … */ goto __pyx_L42; }
+1161: result.append(float(item))
__pyx_t_13 = __Pyx_PyNumber_Float(__pyx_v_item); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1161, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); if (__Pyx_PyFloat_FromNumber(&__pyx_t_13, NULL, 0) < (0)) __PYX_ERR(0, 1161, __pyx_L1_error) __pyx_t_10 = __Pyx_PyList_Append(__pyx_v_result, __pyx_t_13); if (unlikely(__pyx_t_10 == ((int)-1))) __PYX_ERR(0, 1161, __pyx_L1_error) __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
+1162: elif arg_type == str:
__pyx_t_2 = __Pyx_PyObject_RichCompareBool(__pyx_v_arg_type, ((PyObject *)(&PyUnicode_Type)), Py_EQ); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 1162, __pyx_L1_error) if (__pyx_t_2) { /* … */ goto __pyx_L42; }
+1163: result.append(str(item))
__pyx_t_13 = __Pyx_PyObject_Unicode(__pyx_v_item); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1163, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __pyx_t_10 = __Pyx_PyList_Append(__pyx_v_result, __pyx_t_13); if (unlikely(__pyx_t_10 == ((int)-1))) __PYX_ERR(0, 1163, __pyx_L1_error) __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
+1164: elif arg_type == bool:
__pyx_t_2 = __Pyx_PyObject_RichCompareBool(__pyx_v_arg_type, ((PyObject *)(&PyBool_Type)), Py_EQ); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 1164, __pyx_L1_error) if (__pyx_t_2) { /* … */ goto __pyx_L42; }
+1165: result.append(to_boolean(item))
__pyx_t_13 = __pyx_f_9datamodel_10converters_to_boolean(__pyx_v_item, 0); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1165, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __pyx_t_10 = __Pyx_PyList_Append(__pyx_v_result, __pyx_t_13); if (unlikely(__pyx_t_10 == ((int)-1))) __PYX_ERR(0, 1165, __pyx_L1_error) __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
1166: else:
+1167: result.append(item)
/*else*/ {
__pyx_t_10 = __Pyx_PyList_Append(__pyx_v_result, __pyx_v_item); if (unlikely(__pyx_t_10 == ((int)-1))) __PYX_ERR(0, 1167, __pyx_L1_error)
}
__pyx_L42:;
+1168: return result
{
PyObject *__pyx_temp;
{
__pyx_temp = __pyx_r;
__Pyx_INCREF(__pyx_v_result);
__pyx_r = __pyx_v_result;
}
__Pyx_XDECREF(__pyx_temp);
}
goto __pyx_L0;
1169: else:
+1170: for item in data:
/*else*/ {
if (likely(PyList_CheckExact(__pyx_v_data)) || PyTuple_CheckExact(__pyx_v_data)) {
__pyx_t_1 = __pyx_v_data; __Pyx_INCREF(__pyx_t_1);
__pyx_t_8 = 0;
__pyx_t_9 = NULL;
} else {
__pyx_t_8 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_v_data); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1170, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_9 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1170, __pyx_L1_error)
}
for (;;) {
if (likely(!__pyx_t_9)) {
if (likely(PyList_CheckExact(__pyx_t_1))) {
{
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, 1170, __pyx_L1_error)
#endif
if (__pyx_t_8 >= __pyx_temp) break;
}
__pyx_t_13 = __Pyx_PyList_GET_ITEM_REF(__pyx_t_1, __pyx_t_8, __Pyx_ReferenceSharing_OwnStrongReference);
++__pyx_t_8;
} 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, 1170, __pyx_L1_error)
#endif
if (__pyx_t_8 >= __pyx_temp) break;
}
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_13 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_8));
#else
__pyx_t_13 = __Pyx_PySequence_ITEM(__pyx_t_1, __pyx_t_8);
#endif
++__pyx_t_8;
}
if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1170, __pyx_L1_error)
} else {
__pyx_t_13 = __pyx_t_9(__pyx_t_1);
if (unlikely(!__pyx_t_13)) {
PyObject* exc_type = PyErr_Occurred();
if (exc_type) {
if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(0, 1170, __pyx_L1_error)
PyErr_Clear();
}
break;
}
}
__Pyx_GOTREF(__pyx_t_13);
__Pyx_XDECREF_SET(__pyx_v_item, __pyx_t_13);
__pyx_t_13 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
}
+1171: if type(item) is arg_type:
__pyx_t_2 = (((PyObject *)Py_TYPE(__pyx_v_item)) == __pyx_v_arg_type);
if (__pyx_t_2) {
/* … */
goto __pyx_L50;
}
+1172: result.append(item)
__pyx_t_10 = __Pyx_PyList_Append(__pyx_v_result, __pyx_v_item); if (unlikely(__pyx_t_10 == ((int)-1))) __PYX_ERR(0, 1172, __pyx_L1_error)
1173: else:
1174: # Convert the item to the expected type
+1175: a = _parse_type(field, arg_type, item, encoder, False)
/*else*/ {
__pyx_t_17.__pyx_n = 2;
__pyx_t_17.encoder = __pyx_v_encoder;
__pyx_t_17.as_objects = Py_False;
__pyx_t_13 = __pyx_f_9datamodel_10converters__parse_type(__pyx_v_field, __pyx_v_arg_type, __pyx_v_item, &__pyx_t_17); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1175, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_13);
__Pyx_XDECREF_SET(__pyx_v_a, __pyx_t_13);
__pyx_t_13 = 0;
+1176: result.append(a)
__pyx_t_10 = __Pyx_PyList_Append(__pyx_v_result, __pyx_v_a); if (unlikely(__pyx_t_10 == ((int)-1))) __PYX_ERR(0, 1176, __pyx_L1_error) } __pyx_L50:;
+1177: return result
{
PyObject *__pyx_temp;
{
__pyx_temp = __pyx_r;
__Pyx_INCREF(__pyx_v_result);
__pyx_r = __pyx_v_result;
}
__Pyx_XDECREF(__pyx_temp);
}
goto __pyx_L0;
1178:
+1179: cdef object _instantiate_dataclass(object cls, object val):
static PyObject *__pyx_f_9datamodel_10converters__instantiate_dataclass(PyObject *__pyx_v_cls, PyObject *__pyx_v_val) {
PyObject *__pyx_r = NULL;
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_2);
__Pyx_XDECREF(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_5);
__Pyx_AddTraceback("datamodel.converters._instantiate_dataclass", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = 0;
__pyx_L0:;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_gb_9datamodel_10converters_21_parse_optional_union_2generator3(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */
1180: """
1181: Helper for instantiating a dataclass.
1182: """
+1183: if is_dc(val):
__pyx_t_1 = __pyx_f_9datamodel_10converters_is_dc(__pyx_v_val); if (unlikely(__pyx_t_1 == ((int)-1) && PyErr_Occurred())) __PYX_ERR(0, 1183, __pyx_L1_error) if (__pyx_t_1) { /* … */ }
+1184: return val
{
PyObject *__pyx_temp;
{
__pyx_temp = __pyx_r;
__Pyx_INCREF(__pyx_v_val);
__pyx_r = __pyx_v_val;
}
__Pyx_XDECREF(__pyx_temp);
}
goto __pyx_L0;
+1185: if isinstance(val, dict):
__pyx_t_1 = PyDict_Check(__pyx_v_val);
if (__pyx_t_1) {
/* … */
}
+1186: return cls(**val)
if (unlikely(__pyx_v_val == Py_None)) {
PyErr_SetString(PyExc_TypeError, "argument after ** must be a mapping, not NoneType");
__PYX_ERR(0, 1186, __pyx_L1_error)
}
if (likely(PyDict_CheckExact(__pyx_v_val))) {
__pyx_t_2 = PyDict_Copy(__pyx_v_val); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1186, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
} else {
__pyx_t_2 = __Pyx_PyObject_CallOneArg((PyObject*)&PyDict_Type, __pyx_v_val); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1186, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
}
__pyx_t_3 = __Pyx_PyObject_Call(__pyx_v_cls, __pyx_mstate_global->__pyx_empty_tuple, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1186, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
{
PyObject *__pyx_temp;
{
__pyx_temp = __pyx_r;
__pyx_r = __pyx_t_3;
}
__Pyx_XDECREF(__pyx_temp);
}
__pyx_t_3 = 0;
goto __pyx_L0;
+1187: elif isinstance(val, (list, tuple)):
__pyx_t_4 = PyList_Check(__pyx_v_val); if (!__pyx_t_4) { } else { __pyx_t_1 = __pyx_t_4; goto __pyx_L5_bool_binop_done; } __pyx_t_4 = PyTuple_Check(__pyx_v_val); __pyx_t_1 = __pyx_t_4; __pyx_L5_bool_binop_done:; if (__pyx_t_1) { /* … */ }
+1188: return cls(*val)
__pyx_t_3 = __Pyx_PySequence_Tuple(__pyx_v_val); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1188, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_2 = __Pyx_PyObject_Call(__pyx_v_cls, __pyx_t_3, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1188, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; __pyx_r = __pyx_t_2; } __Pyx_XDECREF(__pyx_temp); } __pyx_t_2 = 0; goto __pyx_L0;
1189: else:
+1190: return cls(val)
/*else*/ {
__pyx_t_3 = NULL;
__Pyx_INCREF(__pyx_v_cls);
__pyx_t_5 = __pyx_v_cls;
__pyx_t_6 = 1;
#if CYTHON_UNPACK_METHODS
if (unlikely(PyMethod_Check(__pyx_t_5))) {
__pyx_t_3 = PyMethod_GET_SELF(__pyx_t_5);
assert(__pyx_t_3);
PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_5);
__Pyx_INCREF(__pyx_t_3);
__Pyx_INCREF(__pyx__function);
__Pyx_DECREF_SET(__pyx_t_5, __pyx__function);
__pyx_t_6 = 0;
}
#endif
{
PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_v_val};
__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_3); __pyx_t_3 = 0;
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1190, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
}
{
PyObject *__pyx_temp;
{
__pyx_temp = __pyx_r;
__pyx_r = __pyx_t_2;
}
__Pyx_XDECREF(__pyx_temp);
}
__pyx_t_2 = 0;
goto __pyx_L0;
}
1191:
+1192: cdef object _parse_optional_union(
static PyObject *__pyx_f_9datamodel_10converters__parse_optional_union(PyObject *__pyx_v_field, PyObject *__pyx_v_T, PyObject *__pyx_v_data, PyObject *__pyx_v_encoder, PyObject *__pyx_v_origin, PyObject *__pyx_v_args) {
PyObject *__pyx_v_non_none_arg = 0;
PyObject *__pyx_v_t = 0;
int __pyx_v_matched;
PyObject *__pyx_v_non_none_origin = NULL;
PyObject *__pyx_gb_9datamodel_10converters_21_parse_optional_union_2generator3 = 0;
PyObject *__pyx_r = NULL;
__Pyx_INCREF(__pyx_v_args);
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_8);
__Pyx_XDECREF(__pyx_t_9);
__Pyx_XDECREF(__pyx_t_14);
__Pyx_XDECREF(__pyx_t_17);
__Pyx_AddTraceback("datamodel.converters._parse_optional_union", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = 0;
__pyx_L0:;
__Pyx_XDECREF(__pyx_v_non_none_arg);
__Pyx_XDECREF(__pyx_v_t);
__Pyx_XDECREF(__pyx_v_non_none_origin);
__Pyx_XDECREF(__pyx_gb_9datamodel_10converters_21_parse_optional_union_2generator3);
__Pyx_XDECREF(__pyx_v_args);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_gb_9datamodel_10converters_17_parse_union_type_2generator4(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */
1193: object field,
1194: object T,
1195: object data,
1196: object encoder,
1197: object origin,
1198: object args
1199: ):
1200: """
1201: Handle Optional or Union logic.
1202: """
1203: cdef object non_none_arg
+1204: cdef object t = args[0] if args else None
__pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_args); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 1204, __pyx_L1_error) if (__pyx_t_2) { __pyx_t_3 = __Pyx_GetItemInt(__pyx_v_args, 0, long, 1, __Pyx_PyLong_From_long, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1204, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_1 = __pyx_t_3; __pyx_t_3 = 0; } else { __Pyx_INCREF(Py_None); __pyx_t_1 = Py_None; } __pyx_v_t = __pyx_t_1; __pyx_t_1 = 0;
+1205: cdef bint matched = False
__pyx_v_matched = 0;
1206:
1207: # Safety check to avoid null pointer dereference
+1208: if args is None or len(args) == 0:
__pyx_t_4 = (__pyx_v_args == Py_None);
if (!__pyx_t_4) {
} else {
__pyx_t_2 = __pyx_t_4;
goto __pyx_L4_bool_binop_done;
}
__pyx_t_5 = PyObject_Length(__pyx_v_args); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 1208, __pyx_L1_error)
__pyx_t_4 = (__pyx_t_5 == 0);
__pyx_t_2 = __pyx_t_4;
__pyx_L4_bool_binop_done:;
if (__pyx_t_2) {
/* … */
}
+1209: return data
{
PyObject *__pyx_temp;
{
__pyx_temp = __pyx_r;
__Pyx_INCREF(__pyx_v_data);
__pyx_r = __pyx_v_data;
}
__Pyx_XDECREF(__pyx_temp);
}
goto __pyx_L0;
1210:
1211: # Early exit for None values in Optional types
+1212: if data is None and type(None) in args:
__pyx_t_4 = (__pyx_v_data == Py_None);
if (__pyx_t_4) {
} else {
__pyx_t_2 = __pyx_t_4;
goto __pyx_L7_bool_binop_done;
}
__pyx_t_4 = (__Pyx_PySequence_ContainsTF(((PyObject *)Py_TYPE(Py_None)), __pyx_v_args, Py_EQ)); if (unlikely((__pyx_t_4 < 0))) __PYX_ERR(0, 1212, __pyx_L1_error)
__pyx_t_2 = __pyx_t_4;
__pyx_L7_bool_binop_done:;
if (__pyx_t_2) {
/* … */
}
+1213: return None
{
PyObject *__pyx_temp;
{
__pyx_temp = __pyx_r;
__pyx_r = Py_None; __Pyx_INCREF(Py_None);
}
__Pyx_XDECREF(__pyx_temp);
}
goto __pyx_L0;
1214:
+1215: for t in args:
if (likely(PyList_CheckExact(__pyx_v_args)) || PyTuple_CheckExact(__pyx_v_args)) { __pyx_t_1 = __pyx_v_args; __Pyx_INCREF(__pyx_t_1); __pyx_t_5 = 0; __pyx_t_6 = NULL; } else { __pyx_t_5 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_v_args); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1215, __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, 1215, __pyx_L1_error) } for (;;) { if (likely(!__pyx_t_6)) { if (likely(PyList_CheckExact(__pyx_t_1))) { { 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, 1215, __pyx_L1_error) #endif if (__pyx_t_5 >= __pyx_temp) break; } __pyx_t_3 = __Pyx_PyList_GET_ITEM_REF(__pyx_t_1, __pyx_t_5, __Pyx_ReferenceSharing_OwnStrongReference); ++__pyx_t_5; } 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, 1215, __pyx_L1_error) #endif if (__pyx_t_5 >= __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_5)); #else __pyx_t_3 = __Pyx_PySequence_ITEM(__pyx_t_1, __pyx_t_5); #endif ++__pyx_t_5; } if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1215, __pyx_L1_error) } else { __pyx_t_3 = __pyx_t_6(__pyx_t_1); 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, 1215, __pyx_L1_error) PyErr_Clear(); } break; } } __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF_SET(__pyx_v_t, __pyx_t_3); __pyx_t_3 = 0; /* … */ } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+1216: if t is not type(None) and PyObject_IsInstance(data, t):
__pyx_t_4 = (__pyx_v_t != ((PyObject *)Py_TYPE(Py_None)));
if (__pyx_t_4) {
} else {
__pyx_t_2 = __pyx_t_4;
goto __pyx_L12_bool_binop_done;
}
__pyx_t_4 = PyObject_IsInstance(__pyx_v_data, __pyx_v_t); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(0, 1216, __pyx_L1_error)
__pyx_t_2 = __pyx_t_4;
__pyx_L12_bool_binop_done:;
if (__pyx_t_2) {
/* … */
}
1217: # For container types, we still need to process their contents
+1218: if t in (list, dict, set, tuple) or get_origin(t) in (list, dict, set, tuple):
__Pyx_INCREF(__pyx_v_t); __pyx_t_3 = __pyx_v_t; __pyx_t_7 = __Pyx_PyObject_RichCompareBool(__pyx_t_3, ((PyObject *)(&PyList_Type)), Py_EQ); if (unlikely((__pyx_t_7 < 0))) __PYX_ERR(0, 1218, __pyx_L1_error) if (!__pyx_t_7) { } else { __pyx_t_4 = __pyx_t_7; goto __pyx_L17_bool_binop_done; } __pyx_t_7 = __Pyx_PyObject_RichCompareBool(__pyx_t_3, ((PyObject *)(&PyDict_Type)), Py_EQ); if (unlikely((__pyx_t_7 < 0))) __PYX_ERR(0, 1218, __pyx_L1_error) if (!__pyx_t_7) { } else { __pyx_t_4 = __pyx_t_7; goto __pyx_L17_bool_binop_done; } __pyx_t_7 = __Pyx_PyObject_RichCompareBool(__pyx_t_3, ((PyObject *)(&PySet_Type)), Py_EQ); if (unlikely((__pyx_t_7 < 0))) __PYX_ERR(0, 1218, __pyx_L1_error) if (!__pyx_t_7) { } else { __pyx_t_4 = __pyx_t_7; goto __pyx_L17_bool_binop_done; } __pyx_t_7 = __Pyx_PyObject_RichCompareBool(__pyx_t_3, ((PyObject *)(&PyTuple_Type)), Py_EQ); if (unlikely((__pyx_t_7 < 0))) __PYX_ERR(0, 1218, __pyx_L1_error) __pyx_t_4 = __pyx_t_7; __pyx_L17_bool_binop_done:; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_7 = __pyx_t_4; if (!__pyx_t_7) { } else { __pyx_t_2 = __pyx_t_7; goto __pyx_L15_bool_binop_done; } __pyx_t_8 = NULL; __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_get_origin); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1218, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_10 = 1; #if CYTHON_UNPACK_METHODS if (unlikely(PyMethod_Check(__pyx_t_9))) { __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_9); assert(__pyx_t_8); PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_9); __Pyx_INCREF(__pyx_t_8); __Pyx_INCREF(__pyx__function); __Pyx_DECREF_SET(__pyx_t_9, __pyx__function); __pyx_t_10 = 0; } #endif { PyObject *__pyx_callargs[2] = {__pyx_t_8, __pyx_v_t}; __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_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1218, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); } __pyx_t_4 = __Pyx_PyObject_RichCompareBool(__pyx_t_3, ((PyObject *)(&PyList_Type)), Py_EQ); if (unlikely((__pyx_t_4 < 0))) __PYX_ERR(0, 1218, __pyx_L1_error) if (!__pyx_t_4) { } else { __pyx_t_7 = __pyx_t_4; goto __pyx_L21_bool_binop_done; } __pyx_t_4 = __Pyx_PyObject_RichCompareBool(__pyx_t_3, ((PyObject *)(&PyDict_Type)), Py_EQ); if (unlikely((__pyx_t_4 < 0))) __PYX_ERR(0, 1218, __pyx_L1_error) if (!__pyx_t_4) { } else { __pyx_t_7 = __pyx_t_4; goto __pyx_L21_bool_binop_done; } __pyx_t_4 = __Pyx_PyObject_RichCompareBool(__pyx_t_3, ((PyObject *)(&PySet_Type)), Py_EQ); if (unlikely((__pyx_t_4 < 0))) __PYX_ERR(0, 1218, __pyx_L1_error) if (!__pyx_t_4) { } else { __pyx_t_7 = __pyx_t_4; goto __pyx_L21_bool_binop_done; } __pyx_t_4 = __Pyx_PyObject_RichCompareBool(__pyx_t_3, ((PyObject *)(&PyTuple_Type)), Py_EQ); if (unlikely((__pyx_t_4 < 0))) __PYX_ERR(0, 1218, __pyx_L1_error) __pyx_t_7 = __pyx_t_4; __pyx_L21_bool_binop_done:; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_4 = __pyx_t_7; __pyx_t_2 = __pyx_t_4; __pyx_L15_bool_binop_done:; if (__pyx_t_2) { goto __pyx_L14; }
1219: # Continue to process contents
1220: pass
1221: else:
+1222: return data
/*else*/ {
{
PyObject *__pyx_temp;
{
__pyx_temp = __pyx_r;
__Pyx_INCREF(__pyx_v_data);
__pyx_r = __pyx_v_data;
}
__Pyx_XDECREF(__pyx_temp);
}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
goto __pyx_L0;
}
__pyx_L14:;
1223:
1224: # e.g. Optional[T] is Union[T, NoneType]
+1225: if origin == Union and type(None) in args:
__Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_Union); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1225, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_4 = __Pyx_PyObject_CompareBoolEq_object_object(__pyx_v_origin, __pyx_t_1, Py_EQ); if (unlikely((__pyx_t_4 < 0))) __PYX_ERR(0, 1225, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_4) { } else { __pyx_t_2 = __pyx_t_4; goto __pyx_L27_bool_binop_done; } __pyx_t_4 = (__Pyx_PySequence_ContainsTF(((PyObject *)Py_TYPE(Py_None)), __pyx_v_args, Py_EQ)); if (unlikely((__pyx_t_4 < 0))) __PYX_ERR(0, 1225, __pyx_L1_error) __pyx_t_2 = __pyx_t_4; __pyx_L27_bool_binop_done:; if (__pyx_t_2) { /* … */ }
1226: # Pick the non-None type (assumes only two types in the Union)
+1227: non_none_arg = args[0] if args[1] is type(None) else args[1]
__pyx_t_3 = __Pyx_GetItemInt(__pyx_v_args, 1, long, 1, __Pyx_PyLong_From_long, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1227, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_2 = (__pyx_t_3 == ((PyObject *)Py_TYPE(Py_None))); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (__pyx_t_2) { __pyx_t_3 = __Pyx_GetItemInt(__pyx_v_args, 0, long, 1, __Pyx_PyLong_From_long, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1227, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_1 = __pyx_t_3; __pyx_t_3 = 0; } else { __pyx_t_3 = __Pyx_GetItemInt(__pyx_v_args, 1, long, 1, __Pyx_PyLong_From_long, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1227, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_1 = __pyx_t_3; __pyx_t_3 = 0; } __pyx_v_non_none_arg = __pyx_t_1; __pyx_t_1 = 0;
+1228: if non_none_arg is None:
__pyx_t_2 = (__pyx_v_non_none_arg == Py_None);
if (__pyx_t_2) {
/* … */
}
1229: # If only None type is in the Union, return None
+1230: return None
{
PyObject *__pyx_temp;
{
__pyx_temp = __pyx_r;
__pyx_r = Py_None; __Pyx_INCREF(Py_None);
}
__Pyx_XDECREF(__pyx_temp);
}
goto __pyx_L0;
+1231: non_none_origin = get_origin(non_none_arg)
__pyx_t_3 = NULL;
__Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_get_origin); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1231, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__pyx_t_10 = 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);
__Pyx_INCREF(__pyx__function);
__Pyx_DECREF_SET(__pyx_t_9, __pyx__function);
__pyx_t_10 = 0;
}
#endif
{
PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_v_non_none_arg};
__pyx_t_1 = __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_1)) __PYX_ERR(0, 1231, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
}
__pyx_v_non_none_origin = __pyx_t_1;
__pyx_t_1 = 0;
+1232: if non_none_origin is list:
__pyx_t_2 = (__pyx_v_non_none_origin == ((PyObject *)(&PyList_Type)));
if (__pyx_t_2) {
/* … */
}
1233: # Distinguish between typing.List and list
+1234: if hasattr(non_none_arg, '__module__') and non_none_arg.__module__ == 'typing':
__pyx_t_4 = __Pyx_HasAttr(__pyx_v_non_none_arg, __pyx_mstate_global->__pyx_n_u_module); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(0, 1234, __pyx_L1_error) if (__pyx_t_4) { } else { __pyx_t_2 = __pyx_t_4; goto __pyx_L32_bool_binop_done; } __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_non_none_arg, __pyx_mstate_global->__pyx_n_u_module); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1234, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_4 = __Pyx_PyObject_CompareBoolEq_object_str(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_typing, Py_EQ); if (unlikely((__pyx_t_4 < 0))) __PYX_ERR(0, 1234, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_2 = __pyx_t_4; __pyx_L32_bool_binop_done:; if (__pyx_t_2) { /* … */ }
1235: # It's typing.List - use _parse_list_typing
+1236: return _parse_list_typing(
__pyx_t_11.__pyx_n = 1;
__pyx_t_11.as_objects = Py_None;
__pyx_t_8 = __pyx_f_9datamodel_10converters__parse_list_typing(__pyx_v_field, ((PyObject*)__pyx_t_1), __pyx_v_data, __pyx_v_encoder, __pyx_v_non_none_origin, __pyx_t_3, &__pyx_t_11); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1236, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_8);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
{
PyObject *__pyx_temp;
{
__pyx_temp = __pyx_r;
__pyx_r = __pyx_t_8;
}
__Pyx_XDECREF(__pyx_temp);
}
__pyx_t_8 = 0;
goto __pyx_L0;
1237: field,
+1238: get_args(non_none_arg),
__pyx_t_9 = NULL;
__Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_get_args); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1238, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_10 = 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);
__Pyx_INCREF(__pyx__function);
__Pyx_DECREF_SET(__pyx_t_3, __pyx__function);
__pyx_t_10 = 0;
}
#endif
{
PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_v_non_none_arg};
__pyx_t_1 = __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_1)) __PYX_ERR(0, 1238, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
}
if (!(likely(PyTuple_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_t_1))) __PYX_ERR(0, 1238, __pyx_L1_error)
1239: data,
1240: encoder,
1241: non_none_origin,
+1242: get_args(non_none_arg),
__pyx_t_9 = NULL;
__Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_get_args); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1242, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_8);
__pyx_t_10 = 1;
#if CYTHON_UNPACK_METHODS
if (unlikely(PyMethod_Check(__pyx_t_8))) {
__pyx_t_9 = PyMethod_GET_SELF(__pyx_t_8);
assert(__pyx_t_9);
PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_8);
__Pyx_INCREF(__pyx_t_9);
__Pyx_INCREF(__pyx__function);
__Pyx_DECREF_SET(__pyx_t_8, __pyx__function);
__pyx_t_10 = 0;
}
#endif
{
PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_v_non_none_arg};
__pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_8, __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_8); __pyx_t_8 = 0;
if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1242, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
}
1243: None
1244: )
1245: else:
1246: # It's a plain list - use _parse_list_type
+1247: return _parse_list_type(
/*else*/ {
/* … */
__pyx_t_12.__pyx_n = 1;
__pyx_t_12._parent = Py_None;
__pyx_t_1 = __pyx_f_9datamodel_10converters__parse_list_type(__pyx_v_field, __pyx_v_non_none_arg, __pyx_v_data, __pyx_v_encoder, __pyx_t_8, &__pyx_t_12); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1247, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
{
PyObject *__pyx_temp;
{
__pyx_temp = __pyx_r;
__pyx_r = __pyx_t_1;
}
__Pyx_XDECREF(__pyx_temp);
}
__pyx_t_1 = 0;
goto __pyx_L0;
}
1248: field,
1249: non_none_arg,
1250: data,
1251: encoder,
+1252: get_args(non_none_arg),
__pyx_t_3 = NULL;
__Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_get_args); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1252, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_10 = 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);
PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_1);
__Pyx_INCREF(__pyx_t_3);
__Pyx_INCREF(__pyx__function);
__Pyx_DECREF_SET(__pyx_t_1, __pyx__function);
__pyx_t_10 = 0;
}
#endif
{
PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_v_non_none_arg};
__pyx_t_8 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_1, __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_1); __pyx_t_1 = 0;
if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1252, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_8);
}
1253: None
1254: )
1255: else:
+1256: return _parse_type(
/*else*/ {
/* … */
__pyx_t_13.__pyx_n = 2;
__pyx_t_13.encoder = __pyx_v_encoder;
__pyx_t_13.as_objects = Py_False;
__pyx_t_1 = __pyx_f_9datamodel_10converters__parse_type(__pyx_v_field, __pyx_v_non_none_arg, __pyx_v_data, &__pyx_t_13); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1256, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
{
PyObject *__pyx_temp;
{
__pyx_temp = __pyx_r;
__pyx_r = __pyx_t_1;
}
__Pyx_XDECREF(__pyx_temp);
}
__pyx_t_1 = 0;
goto __pyx_L0;
}
1257: field,
1258: T=non_none_arg,
1259: data=data,
1260: encoder=encoder,
1261: as_objects=False
1262: )
1263: # Remove None from args.
+1264: args = tuple(t for t in args if t is not type(None))
static PyObject *__pyx_pf_9datamodel_10converters_21_parse_optional_union_genexpr(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_genexpr_arg_0) {
struct __pyx_obj_9datamodel_10converters___pyx_scope_struct_5_genexpr *__pyx_cur_scope;
PyObject *__pyx_r = NULL;
__pyx_cur_scope = (struct __pyx_obj_9datamodel_10converters___pyx_scope_struct_5_genexpr *)__pyx_tp_new_9datamodel_10converters___pyx_scope_struct_5_genexpr(__pyx_mstate_global->__pyx_ptype_9datamodel_10converters___pyx_scope_struct_5_genexpr, __pyx_mstate_global->__pyx_empty_tuple, NULL);
if (unlikely(!__pyx_cur_scope)) {
__pyx_cur_scope = ((struct __pyx_obj_9datamodel_10converters___pyx_scope_struct_5_genexpr *)Py_None);
__Pyx_INCREF(Py_None);
__PYX_ERR(0, 1264, __pyx_L1_error)
} else {
__Pyx_GOTREF((PyObject *)__pyx_cur_scope);
}
__pyx_cur_scope->__pyx_genexpr_arg_0 = __pyx_genexpr_arg_0;
__Pyx_INCREF(__pyx_cur_scope->__pyx_genexpr_arg_0);
__Pyx_GIVEREF(__pyx_cur_scope->__pyx_genexpr_arg_0);
{
__pyx_CoroutineObject *gen = __Pyx_Generator_New((__pyx_coroutine_body_t) __pyx_gb_9datamodel_10converters_21_parse_optional_union_2generator3, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[3]), (PyObject *) __pyx_cur_scope, __pyx_mstate_global->__pyx_n_u_genexpr, __pyx_mstate_global->__pyx_n_u_parse_optional_union_locals_gen, __pyx_mstate_global->__pyx_n_u_datamodel_converters); if (unlikely(!gen)) __PYX_ERR(0, 1264, __pyx_L1_error)
__Pyx_DECREF(__pyx_cur_scope);
__Pyx_RefNannyFinishContext();
return (PyObject *) gen;
}
/* function exit code */
__pyx_L1_error:;
__Pyx_AddTraceback("datamodel.converters._parse_optional_union.genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__Pyx_DECREF((PyObject *)__pyx_cur_scope);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_gb_9datamodel_10converters_21_parse_optional_union_2generator3(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("genexpr", 0);
__pyx_L3_first_run:;
if (unlikely(__pyx_sent_value != Py_None)) {
if (unlikely(__pyx_sent_value)) PyErr_SetString(PyExc_TypeError, "can't send non-None value to a just-started generator");
__PYX_ERR(0, 1264, __pyx_L1_error)
}
if (unlikely(!__pyx_cur_scope->__pyx_genexpr_arg_0)) { __Pyx_RaiseUnboundLocalError(".0"); __PYX_ERR(0, 1264, __pyx_L1_error) }
if (likely(PyList_CheckExact(__pyx_cur_scope->__pyx_genexpr_arg_0)) || PyTuple_CheckExact(__pyx_cur_scope->__pyx_genexpr_arg_0)) {
__pyx_t_1 = __pyx_cur_scope->__pyx_genexpr_arg_0; __Pyx_INCREF(__pyx_t_1);
__pyx_t_2 = 0;
__pyx_t_3 = NULL;
} else {
__pyx_t_2 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_cur_scope->__pyx_genexpr_arg_0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1264, __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, 1264, __pyx_L1_error)
}
for (;;) {
if (likely(!__pyx_t_3)) {
if (likely(PyList_CheckExact(__pyx_t_1))) {
{
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, 1264, __pyx_L1_error)
#endif
if (__pyx_t_2 >= __pyx_temp) break;
}
__pyx_t_4 = __Pyx_PyList_GET_ITEM_REF(__pyx_t_1, __pyx_t_2, __Pyx_ReferenceSharing_OwnStrongReference);
++__pyx_t_2;
} 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, 1264, __pyx_L1_error)
#endif
if (__pyx_t_2 >= __pyx_temp) break;
}
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_4 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_2));
#else
__pyx_t_4 = __Pyx_PySequence_ITEM(__pyx_t_1, __pyx_t_2);
#endif
++__pyx_t_2;
}
if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1264, __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, 1264, __pyx_L1_error)
PyErr_Clear();
}
break;
}
}
__Pyx_GOTREF(__pyx_t_4);
__Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_t);
__Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_t, __pyx_t_4);
__Pyx_GIVEREF(__pyx_t_4);
__pyx_t_4 = 0;
__pyx_t_5 = (__pyx_cur_scope->__pyx_v_t != ((PyObject *)Py_TYPE(Py_None)));
if (__pyx_t_5) {
__Pyx_INCREF(__pyx_cur_scope->__pyx_v_t);
__pyx_r = __pyx_cur_scope->__pyx_v_t;
__Pyx_XGIVEREF(__pyx_t_1);
__pyx_cur_scope->__pyx_t_0 = __pyx_t_1;
__pyx_cur_scope->__pyx_t_1 = __pyx_t_2;
__pyx_cur_scope->__pyx_t_2 = __pyx_t_3;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
__Pyx_Coroutine_ResetAndClearException(__pyx_generator);
/* return from generator, yielding value */
__pyx_generator->resume_label = 1;
return __pyx_r;
__pyx_L7_resume_from_yield:;
__pyx_t_1 = __pyx_cur_scope->__pyx_t_0;
__pyx_cur_scope->__pyx_t_0 = 0;
__Pyx_XGOTREF(__pyx_t_1);
__pyx_t_2 = __pyx_cur_scope->__pyx_t_1;
__pyx_t_3 = __pyx_cur_scope->__pyx_t_2;
if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 1264, __pyx_L1_error)
}
}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);
/* function exit code */
__pyx_r = Py_None; __Pyx_INCREF(Py_None);
goto __pyx_L0;
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_4);
if (__Pyx_PyErr_Occurred()) {
__Pyx_Generator_Replace_StopIteration(0);
__Pyx_AddTraceback("genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);
}
__pyx_L0:;
__Pyx_XGIVEREF(__pyx_r);
#if !CYTHON_USE_EXC_INFO_STACK
__Pyx_Coroutine_ResetAndClearException(__pyx_generator);
#endif
__pyx_generator->resume_label = -1;
__Pyx_Coroutine_clear((PyObject*)__pyx_generator);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
__pyx_t_1 = __pyx_pf_9datamodel_10converters_21_parse_optional_union_genexpr(NULL, __pyx_v_args); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1264, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_8 = __Pyx_PySequence_Tuple(__pyx_t_1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1264, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_8);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_DECREF_SET(__pyx_v_args, __pyx_t_8);
__pyx_t_8 = 0;
/* … */
struct __pyx_obj_9datamodel_10converters___pyx_scope_struct_5_genexpr {
PyObject_HEAD
PyObject *__pyx_genexpr_arg_0;
PyObject *__pyx_v_t;
PyObject *__pyx_t_0;
Py_ssize_t __pyx_t_1;
PyObject *(*__pyx_t_2)(PyObject *);
};
1265: # If there are no non-None types left, simply return data.
+1266: if not args:
__pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_args); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 1266, __pyx_L1_error) __pyx_t_4 = (!__pyx_t_2); if (__pyx_t_4) { /* … */ }
+1267: return data
{
PyObject *__pyx_temp;
{
__pyx_temp = __pyx_r;
__Pyx_INCREF(__pyx_v_data);
__pyx_r = __pyx_v_data;
}
__Pyx_XDECREF(__pyx_temp);
}
goto __pyx_L0;
1268:
+1269: for t in args:
if (likely(PyList_CheckExact(__pyx_v_args)) || PyTuple_CheckExact(__pyx_v_args)) { __pyx_t_8 = __pyx_v_args; __Pyx_INCREF(__pyx_t_8); __pyx_t_5 = 0; __pyx_t_6 = NULL; } else { __pyx_t_5 = -1; __pyx_t_8 = PyObject_GetIter(__pyx_v_args); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1269, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_6 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_8); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1269, __pyx_L1_error) } for (;;) { if (likely(!__pyx_t_6)) { if (likely(PyList_CheckExact(__pyx_t_8))) { { 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, 1269, __pyx_L1_error) #endif if (__pyx_t_5 >= __pyx_temp) break; } __pyx_t_1 = __Pyx_PyList_GET_ITEM_REF(__pyx_t_8, __pyx_t_5, __Pyx_ReferenceSharing_OwnStrongReference); ++__pyx_t_5; } else { { 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, 1269, __pyx_L1_error) #endif if (__pyx_t_5 >= __pyx_temp) break; } #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_1 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_8, __pyx_t_5)); #else __pyx_t_1 = __Pyx_PySequence_ITEM(__pyx_t_8, __pyx_t_5); #endif ++__pyx_t_5; } if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1269, __pyx_L1_error) } else { __pyx_t_1 = __pyx_t_6(__pyx_t_8); 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, 1269, __pyx_L1_error) PyErr_Clear(); } break; } } __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_t, __pyx_t_1); __pyx_t_1 = 0; /* … */ } __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; goto __pyx_L38_for_end; __pyx_L36_break:; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; goto __pyx_L38_for_end; __pyx_L38_for_end:;
+1270: if isinstance(data, t):
__pyx_t_4 = PyObject_IsInstance(__pyx_v_data, __pyx_v_t); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(0, 1270, __pyx_L1_error) if (__pyx_t_4) { /* … */ }
+1271: matched = True
__pyx_v_matched = 1;
+1272: break
goto __pyx_L36_break;
+1273: if not matched:
__pyx_t_4 = (!__pyx_v_matched);
if (unlikely(__pyx_t_4)) {
/* … */
}
+1274: raise ValueError(
__pyx_t_1 = NULL;
+1275: f"Invalid type for *{field.name}* with {type(data)}, expected {T}"
__pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_field, __pyx_mstate_global->__pyx_n_u_name_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1275, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_9 = __Pyx_PyObject_FormatSimple(__pyx_t_3, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1275, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __Pyx_PyObject_FormatSimple(((PyObject *)Py_TYPE(__pyx_v_data)), __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1275, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_14 = __Pyx_PyObject_FormatSimple(__pyx_v_T, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 1275, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __pyx_t_15[0] = __pyx_mstate_global->__pyx_kp_u_Invalid_type_for; __pyx_t_15[1] = __pyx_t_9; __pyx_t_15[2] = __pyx_mstate_global->__pyx_kp_u_with; __pyx_t_15[3] = __pyx_t_3; __pyx_t_15[4] = __pyx_mstate_global->__pyx_kp_u_expected_2; __pyx_t_15[5] = __pyx_t_14; __pyx_t_5 = 36; #if __Pyx_PyUnicode_Join_CAN_USE_KIND_AND_LENGTH __pyx_t_5 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_15[1]) + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_15[3]) + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_15[5]); #endif __pyx_t_16 = 0; #if __Pyx_PyUnicode_Join_CAN_USE_KIND_AND_LENGTH __pyx_t_16 |= __Pyx_PyUnicode_KIND_04(__pyx_t_15[1]) | __Pyx_PyUnicode_KIND_04(__pyx_t_15[3]) | __Pyx_PyUnicode_KIND_04(__pyx_t_15[5]); #endif __pyx_t_17 = __Pyx_PyUnicode_Join(__pyx_t_15, 6, __pyx_t_5, __pyx_t_16); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 1275, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_17); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; __pyx_t_10 = 1; { PyObject *__pyx_callargs[2] = {__pyx_t_1, __pyx_t_17}; __pyx_t_8 = __Pyx_PyObject_FastCall((PyObject*)(((PyTypeObject*)PyExc_ValueError)), __pyx_callargs+__pyx_t_10, (2-__pyx_t_10) | (__pyx_t_10*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0; if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1274, __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, 1274, __pyx_L1_error)
1276: )
+1277: try:
{
/*try:*/ {
/* … */
}
__pyx_L40_error:;
__Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
__Pyx_XDECREF(__pyx_t_17); __pyx_t_17 = 0;
__Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
__Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
__pyx_L42_except_error:;
__Pyx_XGIVEREF(__pyx_t_18);
__Pyx_XGIVEREF(__pyx_t_19);
__Pyx_XGIVEREF(__pyx_t_20);
__Pyx_ExceptionReset(__pyx_t_18, __pyx_t_19, __pyx_t_20);
goto __pyx_L1_error;
__pyx_L44_try_return:;
__Pyx_XGIVEREF(__pyx_t_18);
__Pyx_XGIVEREF(__pyx_t_19);
__Pyx_XGIVEREF(__pyx_t_20);
__Pyx_ExceptionReset(__pyx_t_18, __pyx_t_19, __pyx_t_20);
goto __pyx_L0;
__pyx_L41_exception_handled:;
__Pyx_XGIVEREF(__pyx_t_18);
__Pyx_XGIVEREF(__pyx_t_19);
__Pyx_XGIVEREF(__pyx_t_20);
__Pyx_ExceptionReset(__pyx_t_18, __pyx_t_19, __pyx_t_20);
}
+1278: if is_dc(t):
__pyx_t_4 = __pyx_f_9datamodel_10converters_is_dc(__pyx_v_t); if (unlikely(__pyx_t_4 == ((int)-1) && PyErr_Occurred())) __PYX_ERR(0, 1278, __pyx_L40_error) if (__pyx_t_4) { /* … */ }
+1279: if isinstance(data, dict):
__pyx_t_4 = PyDict_Check(__pyx_v_data);
if (__pyx_t_4) {
/* … */
}
+1280: return t(**data)
if (unlikely(__pyx_v_data == Py_None)) {
PyErr_SetString(PyExc_TypeError, "argument after ** must be a mapping, not NoneType");
__PYX_ERR(0, 1280, __pyx_L40_error)
}
if (likely(PyDict_CheckExact(__pyx_v_data))) {
__pyx_t_8 = PyDict_Copy(__pyx_v_data); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1280, __pyx_L40_error)
__Pyx_GOTREF(__pyx_t_8);
} else {
__pyx_t_8 = __Pyx_PyObject_CallOneArg((PyObject*)&PyDict_Type, __pyx_v_data); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1280, __pyx_L40_error)
__Pyx_GOTREF(__pyx_t_8);
}
__pyx_t_17 = __Pyx_PyObject_Call(__pyx_v_t, __pyx_mstate_global->__pyx_empty_tuple, __pyx_t_8); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 1280, __pyx_L40_error)
__Pyx_GOTREF(__pyx_t_17);
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
{
PyObject *__pyx_temp;
{
__pyx_temp = __pyx_r;
__pyx_r = __pyx_t_17;
}
__Pyx_XDECREF(__pyx_temp);
}
__pyx_t_17 = 0;
goto __pyx_L44_try_return;
+1281: elif isinstance(data, (list, tuple)):
__pyx_t_2 = PyList_Check(__pyx_v_data); if (!__pyx_t_2) { } else { __pyx_t_4 = __pyx_t_2; goto __pyx_L48_bool_binop_done; } __pyx_t_2 = PyTuple_Check(__pyx_v_data); __pyx_t_4 = __pyx_t_2; __pyx_L48_bool_binop_done:; if (__pyx_t_4) { /* … */ }
+1282: return t(*data)
__pyx_t_17 = __Pyx_PySequence_Tuple(__pyx_v_data); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 1282, __pyx_L40_error) __Pyx_GOTREF(__pyx_t_17); __pyx_t_8 = __Pyx_PyObject_Call(__pyx_v_t, __pyx_t_17, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1282, __pyx_L40_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; __pyx_r = __pyx_t_8; } __Pyx_XDECREF(__pyx_temp); } __pyx_t_8 = 0; goto __pyx_L44_try_return;
1283: else:
+1284: try:
/*else*/ {
{
/*try:*/ {
/* … */
}
__pyx_L50_error:;
__Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
__Pyx_XDECREF(__pyx_t_17); __pyx_t_17 = 0;
__Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
__Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
__pyx_L52_except_error:;
__Pyx_XGIVEREF(__pyx_t_21);
__Pyx_XGIVEREF(__pyx_t_22);
__Pyx_XGIVEREF(__pyx_t_23);
__Pyx_ExceptionReset(__pyx_t_21, __pyx_t_22, __pyx_t_23);
goto __pyx_L40_error;
__pyx_L54_try_return:;
__Pyx_XGIVEREF(__pyx_t_21);
__Pyx_XGIVEREF(__pyx_t_22);
__Pyx_XGIVEREF(__pyx_t_23);
__Pyx_ExceptionReset(__pyx_t_21, __pyx_t_22, __pyx_t_23);
goto __pyx_L44_try_return;
__pyx_L53_except_return:;
__Pyx_XGIVEREF(__pyx_t_21);
__Pyx_XGIVEREF(__pyx_t_22);
__Pyx_XGIVEREF(__pyx_t_23);
__Pyx_ExceptionReset(__pyx_t_21, __pyx_t_22, __pyx_t_23);
goto __pyx_L44_try_return;
}
}
+1285: return t(data)
__pyx_t_17 = NULL;
__Pyx_INCREF(__pyx_v_t);
__pyx_t_1 = __pyx_v_t;
__pyx_t_10 = 1;
#if CYTHON_UNPACK_METHODS
if (unlikely(PyMethod_Check(__pyx_t_1))) {
__pyx_t_17 = PyMethod_GET_SELF(__pyx_t_1);
assert(__pyx_t_17);
PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_1);
__Pyx_INCREF(__pyx_t_17);
__Pyx_INCREF(__pyx__function);
__Pyx_DECREF_SET(__pyx_t_1, __pyx__function);
__pyx_t_10 = 0;
}
#endif
{
PyObject *__pyx_callargs[2] = {__pyx_t_17, __pyx_v_data};
__pyx_t_8 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_1, __pyx_callargs+__pyx_t_10, (2-__pyx_t_10) | (__pyx_t_10*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
__Pyx_XDECREF(__pyx_t_17); __pyx_t_17 = 0;
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1285, __pyx_L50_error)
__Pyx_GOTREF(__pyx_t_8);
}
{
PyObject *__pyx_temp;
{
__pyx_temp = __pyx_r;
__pyx_r = __pyx_t_8;
}
__Pyx_XDECREF(__pyx_temp);
}
__pyx_t_8 = 0;
goto __pyx_L54_try_return;
+1286: except Exception:
__pyx_t_16 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(((PyTypeObject*)PyExc_Exception)))); if (__pyx_t_16) { __Pyx_ErrRestore(0,0,0);
+1287: return data
{
PyObject *__pyx_temp;
{
__pyx_temp = __pyx_r;
__Pyx_INCREF(__pyx_v_data);
__pyx_r = __pyx_v_data;
}
__Pyx_XDECREF(__pyx_temp);
}
goto __pyx_L53_except_return;
}
goto __pyx_L52_except_error;
+1288: elif callable(t):
__pyx_t_4 = __Pyx_PyCallable_Check(__pyx_v_t); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(0, 1288, __pyx_L40_error) if (__pyx_t_4) { /* … */ }
+1289: return data
{
PyObject *__pyx_temp;
{
__pyx_temp = __pyx_r;
__Pyx_INCREF(__pyx_v_data);
__pyx_r = __pyx_v_data;
}
__Pyx_XDECREF(__pyx_temp);
}
goto __pyx_L44_try_return;
+1290: return data
{
PyObject *__pyx_temp;
{
__pyx_temp = __pyx_r;
__Pyx_INCREF(__pyx_v_data);
__pyx_r = __pyx_v_data;
}
__Pyx_XDECREF(__pyx_temp);
}
goto __pyx_L44_try_return;
+1291: except KeyError:
__pyx_t_16 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(((PyTypeObject*)PyExc_KeyError)))); if (__pyx_t_16) { __Pyx_ErrRestore(0,0,0); goto __pyx_L41_exception_handled; } goto __pyx_L42_except_error;
1292: pass
+1293: return data
{
PyObject *__pyx_temp;
{
__pyx_temp = __pyx_r;
__Pyx_INCREF(__pyx_v_data);
__pyx_r = __pyx_v_data;
}
__Pyx_XDECREF(__pyx_temp);
}
goto __pyx_L0;
1294:
+1295: cdef object _parse_union_type(
static PyObject *__pyx_f_9datamodel_10converters__parse_union_type(PyObject *__pyx_v_field, PyObject *__pyx_v_T, PyObject *__pyx_v_name, PyObject *__pyx_v_data, PyObject *__pyx_v_encoder, PyObject *__pyx_v_origin, PyObject *__pyx_v_targs) {
PyObject *__pyx_v_field_name = 0;
CYTHON_UNUSED PyObject *__pyx_v_error = 0;
PyObject *__pyx_v_non_none_arg = 0;
CYTHON_UNUSED PyObject *__pyx_v_inner_targs = 0;
int __pyx_v_is_typing;
CYTHON_UNUSED int __pyx_v_has_list_type;
PyObject *__pyx_v_errors = 0;
PyObject *__pyx_v_arg = NULL;
PyObject *__pyx_v_arg_type = NULL;
PyObject *__pyx_v_subtype_origin = NULL;
PyObject *__pyx_v_exc = NULL;
PyObject *__pyx_v_error_msg = NULL;
PyObject *__pyx_gb_9datamodel_10converters_17_parse_union_type_2generator4 = 0;
PyObject *__pyx_r = NULL;
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_6);
__Pyx_XDECREF(__pyx_t_7);
__Pyx_XDECREF(__pyx_t_10);
__Pyx_XDECREF(__pyx_t_11);
__Pyx_XDECREF(__pyx_t_16);
__Pyx_XDECREF(__pyx_t_19);
__Pyx_XDECREF(__pyx_t_30);
__Pyx_AddTraceback("datamodel.converters._parse_union_type", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = 0;
__pyx_L0:;
__Pyx_XDECREF(__pyx_v_field_name);
__Pyx_XDECREF(__pyx_v_error);
__Pyx_XDECREF(__pyx_v_non_none_arg);
__Pyx_XDECREF(__pyx_v_inner_targs);
__Pyx_XDECREF(__pyx_v_errors);
__Pyx_XDECREF(__pyx_v_arg);
__Pyx_XDECREF(__pyx_v_arg_type);
__Pyx_XDECREF(__pyx_v_subtype_origin);
__Pyx_XDECREF(__pyx_v_exc);
__Pyx_XDECREF(__pyx_v_error_msg);
__Pyx_XDECREF(__pyx_gb_9datamodel_10converters_17_parse_union_type_2generator4);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
1296: object field,
1297: object T,
1298: object name,
1299: object data,
1300: object encoder,
1301: object origin,
1302: object targs
1303: ):
1304: """
1305: Attempt each type in the Union until one parses successfully
1306: or raise an error if all fail.
1307: If T is Optional[...] (i.e. a Union with NoneType), unwrap it.
1308: """
+1309: cdef str field_name = field.name
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_field, __pyx_mstate_global->__pyx_n_u_name_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1309, __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, 1309, __pyx_L1_error) __pyx_v_field_name = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0;
+1310: cdef str error = None
__Pyx_INCREF(Py_None);
__pyx_v_error = ((PyObject*)Py_None);
+1311: cdef object non_none_arg = None
__Pyx_INCREF(Py_None);
__pyx_v_non_none_arg = Py_None;
+1312: cdef tuple inner_targs = None
__Pyx_INCREF(Py_None);
__pyx_v_inner_targs = ((PyObject*)Py_None);
+1313: cdef bint is_typing = False
__pyx_v_is_typing = 0;
+1314: cdef bint has_list_type = False
__pyx_v_has_list_type = 0;
+1315: cdef list errors = [] # Collect all errors to report if all types fail
__pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1315, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_errors = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0;
1316:
1317:
1318: # First, check for None in Optional types
+1319: if type(None) in targs and data is None:
__pyx_t_3 = (__Pyx_PySequence_ContainsTF(((PyObject *)Py_TYPE(Py_None)), __pyx_v_targs, Py_EQ)); if (unlikely((__pyx_t_3 < 0))) __PYX_ERR(0, 1319, __pyx_L1_error) if (__pyx_t_3) { } else { __pyx_t_2 = __pyx_t_3; goto __pyx_L4_bool_binop_done; } __pyx_t_3 = (__pyx_v_data == Py_None); __pyx_t_2 = __pyx_t_3; __pyx_L4_bool_binop_done:; if (__pyx_t_2) { /* … */ }
+1320: return None
{
PyObject *__pyx_temp;
{
__pyx_temp = __pyx_r;
__pyx_r = Py_None; __Pyx_INCREF(Py_None);
}
__Pyx_XDECREF(__pyx_temp);
}
goto __pyx_L0;
1321:
1322: # If the union includes NoneType, unwrap it and use only the non-None type.
+1323: if origin == Union and type(None) in targs:
__Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_Union); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1323, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = __Pyx_PyObject_CompareBoolEq_object_object(__pyx_v_origin, __pyx_t_1, Py_EQ); if (unlikely((__pyx_t_3 < 0))) __PYX_ERR(0, 1323, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_3) { } else { __pyx_t_2 = __pyx_t_3; goto __pyx_L7_bool_binop_done; } __pyx_t_3 = (__Pyx_PySequence_ContainsTF(((PyObject *)Py_TYPE(Py_None)), __pyx_v_targs, Py_EQ)); if (unlikely((__pyx_t_3 < 0))) __PYX_ERR(0, 1323, __pyx_L1_error) __pyx_t_2 = __pyx_t_3; __pyx_L7_bool_binop_done:; if (__pyx_t_2) { /* … */ }
+1324: for arg in targs:
if (likely(PyList_CheckExact(__pyx_v_targs)) || PyTuple_CheckExact(__pyx_v_targs)) { __pyx_t_1 = __pyx_v_targs; __Pyx_INCREF(__pyx_t_1); __pyx_t_4 = 0; __pyx_t_5 = NULL; } else { __pyx_t_4 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_v_targs); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1324, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_5 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1324, __pyx_L1_error) } for (;;) { if (likely(!__pyx_t_5)) { if (likely(PyList_CheckExact(__pyx_t_1))) { { 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, 1324, __pyx_L1_error) #endif if (__pyx_t_4 >= __pyx_temp) break; } __pyx_t_6 = __Pyx_PyList_GET_ITEM_REF(__pyx_t_1, __pyx_t_4, __Pyx_ReferenceSharing_OwnStrongReference); ++__pyx_t_4; } 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, 1324, __pyx_L1_error) #endif if (__pyx_t_4 >= __pyx_temp) break; } #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_6 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_4)); #else __pyx_t_6 = __Pyx_PySequence_ITEM(__pyx_t_1, __pyx_t_4); #endif ++__pyx_t_4; } if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1324, __pyx_L1_error) } else { __pyx_t_6 = __pyx_t_5(__pyx_t_1); if (unlikely(!__pyx_t_6)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(0, 1324, __pyx_L1_error) PyErr_Clear(); } break; } } __Pyx_GOTREF(__pyx_t_6); __Pyx_XDECREF_SET(__pyx_v_arg, __pyx_t_6); __pyx_t_6 = 0; /* … */ } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; goto __pyx_L12_for_end; __pyx_L10_break:; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; goto __pyx_L12_for_end; __pyx_L12_for_end:;
+1325: if arg is not type(None):
__pyx_t_2 = (__pyx_v_arg != ((PyObject *)Py_TYPE(Py_None)));
if (__pyx_t_2) {
/* … */
}
+1326: non_none_arg = arg
__Pyx_INCREF(__pyx_v_arg); __Pyx_DECREF_SET(__pyx_v_non_none_arg, __pyx_v_arg);
+1327: break
goto __pyx_L10_break;
+1328: is_typing = hasattr(non_none_arg, '__module__') and non_none_arg.__module__ == 'typing'
__pyx_t_3 = __Pyx_HasAttr(__pyx_v_non_none_arg, __pyx_mstate_global->__pyx_n_u_module); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(0, 1328, __pyx_L1_error) if (__pyx_t_3) { } else { __pyx_t_2 = __pyx_t_3; goto __pyx_L13_bool_binop_done; } __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_non_none_arg, __pyx_mstate_global->__pyx_n_u_module); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1328, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = __Pyx_PyObject_CompareBoolEq_object_str(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_typing, Py_EQ); if (unlikely((__pyx_t_3 < 0))) __PYX_ERR(0, 1328, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_2 = __pyx_t_3; __pyx_L13_bool_binop_done:; __pyx_v_is_typing = __pyx_t_2;
1329:
+1330: if non_none_arg is not None and is_typing is True:
__pyx_t_3 = (__pyx_v_non_none_arg != Py_None);
if (__pyx_t_3) {
} else {
__pyx_t_2 = __pyx_t_3;
goto __pyx_L16_bool_binop_done;
}
__pyx_t_3 = (__pyx_v_is_typing == 1);
__pyx_t_2 = __pyx_t_3;
__pyx_L16_bool_binop_done:;
if (__pyx_t_2) {
/* … */
}
1331: # Invoke the parse_typing_type
+1332: field.args = get_args(non_none_arg)
__pyx_t_6 = NULL;
__Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_mstate_global->__pyx_n_u_get_args); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1332, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__pyx_t_8 = 1;
#if CYTHON_UNPACK_METHODS
if (unlikely(PyMethod_Check(__pyx_t_7))) {
__pyx_t_6 = PyMethod_GET_SELF(__pyx_t_7);
assert(__pyx_t_6);
PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_7);
__Pyx_INCREF(__pyx_t_6);
__Pyx_INCREF(__pyx__function);
__Pyx_DECREF_SET(__pyx_t_7, __pyx__function);
__pyx_t_8 = 0;
}
#endif
{
PyObject *__pyx_callargs[2] = {__pyx_t_6, __pyx_v_non_none_arg};
__pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_7, __pyx_callargs+__pyx_t_8, (2-__pyx_t_8) | (__pyx_t_8*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
__Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1332, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
}
if (__Pyx_PyObject_SetAttrStr(__pyx_v_field, __pyx_mstate_global->__pyx_n_u_args_2, __pyx_t_1) < (0)) __PYX_ERR(0, 1332, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+1333: field.origin = get_origin(non_none_arg)
__pyx_t_7 = NULL;
__Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_get_origin); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1333, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_t_8 = 1;
#if CYTHON_UNPACK_METHODS
if (unlikely(PyMethod_Check(__pyx_t_6))) {
__pyx_t_7 = PyMethod_GET_SELF(__pyx_t_6);
assert(__pyx_t_7);
PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_6);
__Pyx_INCREF(__pyx_t_7);
__Pyx_INCREF(__pyx__function);
__Pyx_DECREF_SET(__pyx_t_6, __pyx__function);
__pyx_t_8 = 0;
}
#endif
{
PyObject *__pyx_callargs[2] = {__pyx_t_7, __pyx_v_non_none_arg};
__pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_6, __pyx_callargs+__pyx_t_8, (2-__pyx_t_8) | (__pyx_t_8*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
__Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1333, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
}
if (__Pyx_PyObject_SetAttrStr(__pyx_v_field, __pyx_mstate_global->__pyx_n_u_origin_2, __pyx_t_1) < (0)) __PYX_ERR(0, 1333, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+1334: if isinstance(data, list):
__pyx_t_2 = PyList_Check(__pyx_v_data);
if (__pyx_t_2) {
/* … */
}
+1335: return _parse_typing(
__pyx_t_9.__pyx_n = 2;
__pyx_t_9.encoder = __pyx_v_encoder;
__pyx_t_9.as_objects = Py_False;
__pyx_t_1 = __pyx_f_9datamodel_10converters__parse_typing(__pyx_v_field, __pyx_v_non_none_arg, __pyx_v_data, &__pyx_t_9); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1335, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
{
PyObject *__pyx_temp;
{
__pyx_temp = __pyx_r;
__pyx_r = __pyx_t_1;
}
__Pyx_XDECREF(__pyx_temp);
}
__pyx_t_1 = 0;
goto __pyx_L0;
1336: field,
1337: non_none_arg,
1338: data,
1339: encoder,
1340: False
1341: )
1342:
1343: # First check for dataclasses in the union
+1344: for arg_type in targs:
if (likely(PyList_CheckExact(__pyx_v_targs)) || PyTuple_CheckExact(__pyx_v_targs)) { __pyx_t_1 = __pyx_v_targs; __Pyx_INCREF(__pyx_t_1); __pyx_t_4 = 0; __pyx_t_5 = NULL; } else { __pyx_t_4 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_v_targs); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1344, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_5 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1344, __pyx_L1_error) } for (;;) { if (likely(!__pyx_t_5)) { if (likely(PyList_CheckExact(__pyx_t_1))) { { 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, 1344, __pyx_L1_error) #endif if (__pyx_t_4 >= __pyx_temp) break; } __pyx_t_6 = __Pyx_PyList_GET_ITEM_REF(__pyx_t_1, __pyx_t_4, __Pyx_ReferenceSharing_OwnStrongReference); ++__pyx_t_4; } 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, 1344, __pyx_L1_error) #endif if (__pyx_t_4 >= __pyx_temp) break; } #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_6 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_4)); #else __pyx_t_6 = __Pyx_PySequence_ITEM(__pyx_t_1, __pyx_t_4); #endif ++__pyx_t_4; } if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1344, __pyx_L1_error) } else { __pyx_t_6 = __pyx_t_5(__pyx_t_1); if (unlikely(!__pyx_t_6)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(0, 1344, __pyx_L1_error) PyErr_Clear(); } break; } } __Pyx_GOTREF(__pyx_t_6); __Pyx_XDECREF_SET(__pyx_v_arg_type, __pyx_t_6); __pyx_t_6 = 0; /* … */ __pyx_L19_continue:; } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+1345: subtype_origin = field._inner_origin or get_origin(arg_type)
__pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_field, __pyx_mstate_global->__pyx_n_u_inner_origin); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1345, __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, 1345, __pyx_L1_error) if (!__pyx_t_2) { __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; } else { __Pyx_INCREF(__pyx_t_7); __pyx_t_6 = __pyx_t_7; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; goto __pyx_L21_bool_binop_done; } __pyx_t_10 = NULL; __Pyx_GetModuleGlobalName(__pyx_t_11, __pyx_mstate_global->__pyx_n_u_get_origin); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1345, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __pyx_t_8 = 1; #if CYTHON_UNPACK_METHODS if (unlikely(PyMethod_Check(__pyx_t_11))) { __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_11); assert(__pyx_t_10); PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_11); __Pyx_INCREF(__pyx_t_10); __Pyx_INCREF(__pyx__function); __Pyx_DECREF_SET(__pyx_t_11, __pyx__function); __pyx_t_8 = 0; } #endif { PyObject *__pyx_callargs[2] = {__pyx_t_10, __pyx_v_arg_type}; __pyx_t_7 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_11, __pyx_callargs+__pyx_t_8, (2-__pyx_t_8) | (__pyx_t_8*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1345, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); } __Pyx_INCREF(__pyx_t_7); __pyx_t_6 = __pyx_t_7; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_L21_bool_binop_done:; __Pyx_XDECREF_SET(__pyx_v_subtype_origin, __pyx_t_6); __pyx_t_6 = 0;
+1346: if is_dc(arg_type):
__pyx_t_2 = __pyx_f_9datamodel_10converters_is_dc(__pyx_v_arg_type); if (unlikely(__pyx_t_2 == ((int)-1) && PyErr_Occurred())) __PYX_ERR(0, 1346, __pyx_L1_error) if (__pyx_t_2) { /* … */ }
+1347: if isinstance(data, dict):
__pyx_t_2 = PyDict_Check(__pyx_v_data);
if (__pyx_t_2) {
/* … */
}
+1348: try:
{
/*try:*/ {
/* … */
}
__pyx_L25_error:;
__Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
__Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
__Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
__Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
/* … */
__pyx_L27_except_error:;
__Pyx_XGIVEREF(__pyx_t_12);
__Pyx_XGIVEREF(__pyx_t_13);
__Pyx_XGIVEREF(__pyx_t_14);
__Pyx_ExceptionReset(__pyx_t_12, __pyx_t_13, __pyx_t_14);
goto __pyx_L1_error;
__pyx_L31_try_continue:;
__Pyx_XGIVEREF(__pyx_t_12);
__Pyx_XGIVEREF(__pyx_t_13);
__Pyx_XGIVEREF(__pyx_t_14);
__Pyx_ExceptionReset(__pyx_t_12, __pyx_t_13, __pyx_t_14);
goto __pyx_L19_continue;
__pyx_L29_try_return:;
__Pyx_XGIVEREF(__pyx_t_12);
__Pyx_XGIVEREF(__pyx_t_13);
__Pyx_XGIVEREF(__pyx_t_14);
__Pyx_ExceptionReset(__pyx_t_12, __pyx_t_13, __pyx_t_14);
goto __pyx_L0;
}
+1349: return arg_type(**data)
if (unlikely(__pyx_v_data == Py_None)) {
PyErr_SetString(PyExc_TypeError, "argument after ** must be a mapping, not NoneType");
__PYX_ERR(0, 1349, __pyx_L25_error)
}
if (likely(PyDict_CheckExact(__pyx_v_data))) {
__pyx_t_6 = PyDict_Copy(__pyx_v_data); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1349, __pyx_L25_error)
__Pyx_GOTREF(__pyx_t_6);
} else {
__pyx_t_6 = __Pyx_PyObject_CallOneArg((PyObject*)&PyDict_Type, __pyx_v_data); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1349, __pyx_L25_error)
__Pyx_GOTREF(__pyx_t_6);
}
__pyx_t_7 = __Pyx_PyObject_Call(__pyx_v_arg_type, __pyx_mstate_global->__pyx_empty_tuple, __pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1349, __pyx_L25_error)
__Pyx_GOTREF(__pyx_t_7);
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
{
PyObject *__pyx_temp;
{
__pyx_temp = __pyx_r;
__pyx_r = __pyx_t_7;
}
__Pyx_XDECREF(__pyx_temp);
}
__pyx_t_7 = 0;
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
goto __pyx_L29_try_return;
+1350: except Exception as exc:
__pyx_t_15 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(((PyTypeObject*)PyExc_Exception)))); if (__pyx_t_15) { __Pyx_AddTraceback("datamodel.converters._parse_union_type", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_7, &__pyx_t_6, &__pyx_t_11) < 0) __PYX_ERR(0, 1350, __pyx_L27_except_error) __Pyx_XGOTREF(__pyx_t_7); __Pyx_XGOTREF(__pyx_t_6); __Pyx_XGOTREF(__pyx_t_11); __Pyx_INCREF(__pyx_t_6); __pyx_v_exc = __pyx_t_6; /*try:*/ { /* … */ /*finally:*/ { __pyx_L38_error:; /*exception exit:*/{ __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign __pyx_t_23 = 0; __pyx_t_24 = 0; __pyx_t_25 = 0; __pyx_t_26 = 0; __pyx_t_27 = 0; __pyx_t_28 = 0; __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_XDECREF(__pyx_t_16); __pyx_t_16 = 0; __Pyx_XDECREF(__pyx_t_19); __pyx_t_19 = 0; __Pyx_ExceptionSwap(&__pyx_t_26, &__pyx_t_27, &__pyx_t_28); if ( unlikely(__Pyx_GetException(&__pyx_t_23, &__pyx_t_24, &__pyx_t_25) < 0)) __Pyx_ErrFetch(&__pyx_t_23, &__pyx_t_24, &__pyx_t_25); __Pyx_XGOTREF(__pyx_t_23); __Pyx_XGOTREF(__pyx_t_24); __Pyx_XGOTREF(__pyx_t_25); __Pyx_XGOTREF(__pyx_t_26); __Pyx_XGOTREF(__pyx_t_27); __Pyx_XGOTREF(__pyx_t_28); __pyx_t_15 = __pyx_lineno; __pyx_t_21 = __pyx_clineno; __pyx_t_22 = __pyx_filename; { __Pyx_DECREF(__pyx_v_exc); __pyx_v_exc = 0; } __Pyx_XGIVEREF(__pyx_t_26); __Pyx_XGIVEREF(__pyx_t_27); __Pyx_XGIVEREF(__pyx_t_28); __Pyx_ExceptionReset(__pyx_t_26, __pyx_t_27, __pyx_t_28); __Pyx_XGIVEREF(__pyx_t_23); __Pyx_XGIVEREF(__pyx_t_24); __Pyx_XGIVEREF(__pyx_t_25); __Pyx_ErrRestore(__pyx_t_23, __pyx_t_24, __pyx_t_25); __pyx_t_23 = 0; __pyx_t_24 = 0; __pyx_t_25 = 0; __pyx_t_26 = 0; __pyx_t_27 = 0; __pyx_t_28 = 0; __pyx_lineno = __pyx_t_15; __pyx_clineno = __pyx_t_21; __pyx_filename = __pyx_t_22; goto __pyx_L27_except_error; } __pyx_L35_continue: { __Pyx_DECREF(__pyx_v_exc); __pyx_v_exc = 0; goto __pyx_L33_except_continue; } } __pyx_L33_except_continue:; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0; goto __pyx_L31_try_continue; } goto __pyx_L27_except_error;
+1351: errors.append(f"Failed to create dataclass {arg_type.__name__} from dict: {exc}")
__pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg_type, __pyx_mstate_global->__pyx_n_u_name); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1351, __pyx_L38_error) __Pyx_GOTREF(__pyx_t_10); __pyx_t_16 = __Pyx_PyObject_FormatSimple(__pyx_t_10, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 1351, __pyx_L38_error) __Pyx_GOTREF(__pyx_t_16); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_t_10 = __Pyx_PyObject_FormatSimple(__pyx_v_exc, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1351, __pyx_L38_error) __Pyx_GOTREF(__pyx_t_10); __pyx_t_17[0] = __pyx_mstate_global->__pyx_kp_u_Failed_to_create_dataclass; __pyx_t_17[1] = __pyx_t_16; __pyx_t_17[2] = __pyx_mstate_global->__pyx_kp_u_from_dict; __pyx_t_17[3] = __pyx_t_10; __pyx_t_18 = 39; #if __Pyx_PyUnicode_Join_CAN_USE_KIND_AND_LENGTH __pyx_t_18 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_17[1]) + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_17[3]); #endif __pyx_t_15 = 0; #if __Pyx_PyUnicode_Join_CAN_USE_KIND_AND_LENGTH __pyx_t_15 |= __Pyx_PyUnicode_KIND_04(__pyx_t_17[1]) | __Pyx_PyUnicode_KIND_04(__pyx_t_17[3]); #endif __pyx_t_19 = __Pyx_PyUnicode_Join(__pyx_t_17, 4, __pyx_t_18, __pyx_t_15); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 1351, __pyx_L38_error) __Pyx_GOTREF(__pyx_t_19); __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_t_20 = __Pyx_PyList_Append(__pyx_v_errors, __pyx_t_19); if (unlikely(__pyx_t_20 == ((int)-1))) __PYX_ERR(0, 1351, __pyx_L38_error) __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
+1352: continue
goto __pyx_L35_continue;
}
+1353: elif isinstance(data, arg_type):
__pyx_t_2 = PyObject_IsInstance(__pyx_v_data, __pyx_v_arg_type); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(0, 1353, __pyx_L1_error) if (__pyx_t_2) { /* … */ }
+1354: return data
{
PyObject *__pyx_temp;
{
__pyx_temp = __pyx_r;
__Pyx_INCREF(__pyx_v_data);
__pyx_r = __pyx_v_data;
}
__Pyx_XDECREF(__pyx_temp);
}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
goto __pyx_L0;
1355: else:
1356: # For string inputs, don't accept them as dataclasses
+1357: if isinstance(data, (str, int, float, bool)):
/*else*/ {
__pyx_t_3 = PyUnicode_Check(__pyx_v_data);
if (!__pyx_t_3) {
} else {
__pyx_t_2 = __pyx_t_3;
goto __pyx_L45_bool_binop_done;
}
__pyx_t_3 = PyLong_Check(__pyx_v_data);
if (!__pyx_t_3) {
} else {
__pyx_t_2 = __pyx_t_3;
goto __pyx_L45_bool_binop_done;
}
__pyx_t_3 = PyFloat_Check(__pyx_v_data);
if (!__pyx_t_3) {
} else {
__pyx_t_2 = __pyx_t_3;
goto __pyx_L45_bool_binop_done;
}
__pyx_t_3 = PyBool_Check(__pyx_v_data);
__pyx_t_2 = __pyx_t_3;
__pyx_L45_bool_binop_done:;
if (__pyx_t_2) {
/* … */
}
+1358: errors.append(f"Cannot convert {type(data).__name__} to {arg_type.__name__}")
__pyx_t_11 = __Pyx_PyObject_GetAttrStr(((PyObject *)Py_TYPE(__pyx_v_data)), __pyx_mstate_global->__pyx_n_u_name); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1358, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __pyx_t_6 = __Pyx_PyObject_FormatSimple(__pyx_t_11, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1358, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg_type, __pyx_mstate_global->__pyx_n_u_name); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1358, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __pyx_t_7 = __Pyx_PyObject_FormatSimple(__pyx_t_11, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1358, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __pyx_t_17[0] = __pyx_mstate_global->__pyx_kp_u_Cannot_convert; __pyx_t_17[1] = __pyx_t_6; __pyx_t_17[2] = __pyx_mstate_global->__pyx_kp_u_to; __pyx_t_17[3] = __pyx_t_7; __pyx_t_18 = 19; #if __Pyx_PyUnicode_Join_CAN_USE_KIND_AND_LENGTH __pyx_t_18 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_17[1]) + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_17[3]); #endif __pyx_t_21 = 0; #if __Pyx_PyUnicode_Join_CAN_USE_KIND_AND_LENGTH __pyx_t_21 |= __Pyx_PyUnicode_KIND_04(__pyx_t_17[1]) | __Pyx_PyUnicode_KIND_04(__pyx_t_17[3]); #endif __pyx_t_11 = __Pyx_PyUnicode_Join(__pyx_t_17, 4, __pyx_t_18, __pyx_t_21); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1358, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_20 = __Pyx_PyList_Append(__pyx_v_errors, __pyx_t_11); if (unlikely(__pyx_t_20 == ((int)-1))) __PYX_ERR(0, 1358, __pyx_L1_error) __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
+1359: continue
goto __pyx_L19_continue;
+1360: try:
{
/*try:*/ {
/* … */
}
__pyx_L49_error:;
__Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
__Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
__Pyx_XDECREF(__pyx_t_16); __pyx_t_16 = 0;
__Pyx_XDECREF(__pyx_t_19); __pyx_t_19 = 0;
__Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
__Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
/* … */
__pyx_L51_except_error:;
__Pyx_XGIVEREF(__pyx_t_14);
__Pyx_XGIVEREF(__pyx_t_13);
__Pyx_XGIVEREF(__pyx_t_12);
__Pyx_ExceptionReset(__pyx_t_14, __pyx_t_13, __pyx_t_12);
goto __pyx_L1_error;
__pyx_L55_try_continue:;
__Pyx_XGIVEREF(__pyx_t_14);
__Pyx_XGIVEREF(__pyx_t_13);
__Pyx_XGIVEREF(__pyx_t_12);
__Pyx_ExceptionReset(__pyx_t_14, __pyx_t_13, __pyx_t_12);
goto __pyx_L19_continue;
__pyx_L53_try_return:;
__Pyx_XGIVEREF(__pyx_t_14);
__Pyx_XGIVEREF(__pyx_t_13);
__Pyx_XGIVEREF(__pyx_t_12);
__Pyx_ExceptionReset(__pyx_t_14, __pyx_t_13, __pyx_t_12);
goto __pyx_L0;
}
}
+1361: return arg_type(data)
__pyx_t_7 = NULL;
__Pyx_INCREF(__pyx_v_arg_type);
__pyx_t_6 = __pyx_v_arg_type;
__pyx_t_8 = 1;
#if CYTHON_UNPACK_METHODS
if (unlikely(PyMethod_Check(__pyx_t_6))) {
__pyx_t_7 = PyMethod_GET_SELF(__pyx_t_6);
assert(__pyx_t_7);
PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_6);
__Pyx_INCREF(__pyx_t_7);
__Pyx_INCREF(__pyx__function);
__Pyx_DECREF_SET(__pyx_t_6, __pyx__function);
__pyx_t_8 = 0;
}
#endif
{
PyObject *__pyx_callargs[2] = {__pyx_t_7, __pyx_v_data};
__pyx_t_11 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_6, __pyx_callargs+__pyx_t_8, (2-__pyx_t_8) | (__pyx_t_8*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
__Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1361, __pyx_L49_error)
__Pyx_GOTREF(__pyx_t_11);
}
{
PyObject *__pyx_temp;
{
__pyx_temp = __pyx_r;
__pyx_r = __pyx_t_11;
}
__Pyx_XDECREF(__pyx_temp);
}
__pyx_t_11 = 0;
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
goto __pyx_L53_try_return;
+1362: except Exception as exc:
__pyx_t_21 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(((PyTypeObject*)PyExc_Exception)))); if (__pyx_t_21) { __Pyx_AddTraceback("datamodel.converters._parse_union_type", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_11, &__pyx_t_6, &__pyx_t_7) < 0) __PYX_ERR(0, 1362, __pyx_L51_except_error) __Pyx_XGOTREF(__pyx_t_11); __Pyx_XGOTREF(__pyx_t_6); __Pyx_XGOTREF(__pyx_t_7); __Pyx_INCREF(__pyx_t_6); __pyx_v_exc = __pyx_t_6; /*try:*/ { /* … */ /*finally:*/ { __pyx_L62_error:; /*exception exit:*/{ __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign __pyx_t_28 = 0; __pyx_t_27 = 0; __pyx_t_26 = 0; __pyx_t_25 = 0; __pyx_t_24 = 0; __pyx_t_23 = 0; __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_XDECREF(__pyx_t_16); __pyx_t_16 = 0; __Pyx_XDECREF(__pyx_t_19); __pyx_t_19 = 0; __Pyx_XDECREF(__pyx_t_30); __pyx_t_30 = 0; __Pyx_ExceptionSwap(&__pyx_t_25, &__pyx_t_24, &__pyx_t_23); if ( unlikely(__Pyx_GetException(&__pyx_t_28, &__pyx_t_27, &__pyx_t_26) < 0)) __Pyx_ErrFetch(&__pyx_t_28, &__pyx_t_27, &__pyx_t_26); __Pyx_XGOTREF(__pyx_t_28); __Pyx_XGOTREF(__pyx_t_27); __Pyx_XGOTREF(__pyx_t_26); __Pyx_XGOTREF(__pyx_t_25); __Pyx_XGOTREF(__pyx_t_24); __Pyx_XGOTREF(__pyx_t_23); __pyx_t_21 = __pyx_lineno; __pyx_t_15 = __pyx_clineno; __pyx_t_22 = __pyx_filename; { __Pyx_DECREF(__pyx_v_exc); __pyx_v_exc = 0; } __Pyx_XGIVEREF(__pyx_t_25); __Pyx_XGIVEREF(__pyx_t_24); __Pyx_XGIVEREF(__pyx_t_23); __Pyx_ExceptionReset(__pyx_t_25, __pyx_t_24, __pyx_t_23); __Pyx_XGIVEREF(__pyx_t_28); __Pyx_XGIVEREF(__pyx_t_27); __Pyx_XGIVEREF(__pyx_t_26); __Pyx_ErrRestore(__pyx_t_28, __pyx_t_27, __pyx_t_26); __pyx_t_28 = 0; __pyx_t_27 = 0; __pyx_t_26 = 0; __pyx_t_25 = 0; __pyx_t_24 = 0; __pyx_t_23 = 0; __pyx_lineno = __pyx_t_21; __pyx_clineno = __pyx_t_15; __pyx_filename = __pyx_t_22; goto __pyx_L51_except_error; } __pyx_L59_continue: { __Pyx_DECREF(__pyx_v_exc); __pyx_v_exc = 0; goto __pyx_L57_except_continue; } } __pyx_L57_except_continue:; __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; goto __pyx_L55_try_continue; } goto __pyx_L51_except_error;
+1363: errors.append(f"Failed to create {arg_type.__name__} from {type(data).__name__}: {exc}")
__pyx_t_19 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg_type, __pyx_mstate_global->__pyx_n_u_name); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 1363, __pyx_L62_error) __Pyx_GOTREF(__pyx_t_19); __pyx_t_10 = __Pyx_PyObject_FormatSimple(__pyx_t_19, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1363, __pyx_L62_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; __pyx_t_19 = __Pyx_PyObject_GetAttrStr(((PyObject *)Py_TYPE(__pyx_v_data)), __pyx_mstate_global->__pyx_n_u_name); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 1363, __pyx_L62_error) __Pyx_GOTREF(__pyx_t_19); __pyx_t_16 = __Pyx_PyObject_FormatSimple(__pyx_t_19, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 1363, __pyx_L62_error) __Pyx_GOTREF(__pyx_t_16); __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; __pyx_t_19 = __Pyx_PyObject_FormatSimple(__pyx_v_exc, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 1363, __pyx_L62_error) __Pyx_GOTREF(__pyx_t_19); __pyx_t_29[0] = __pyx_mstate_global->__pyx_kp_u_Failed_to_create; __pyx_t_29[1] = __pyx_t_10; __pyx_t_29[2] = __pyx_mstate_global->__pyx_kp_u_from; __pyx_t_29[3] = __pyx_t_16; __pyx_t_29[4] = __pyx_mstate_global->__pyx_kp_u__5; __pyx_t_29[5] = __pyx_t_19; __pyx_t_18 = 25; #if __Pyx_PyUnicode_Join_CAN_USE_KIND_AND_LENGTH __pyx_t_18 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_29[1]) + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_29[3]) + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_29[5]); #endif __pyx_t_21 = 0; #if __Pyx_PyUnicode_Join_CAN_USE_KIND_AND_LENGTH __pyx_t_21 |= __Pyx_PyUnicode_KIND_04(__pyx_t_29[1]) | __Pyx_PyUnicode_KIND_04(__pyx_t_29[3]) | __Pyx_PyUnicode_KIND_04(__pyx_t_29[5]); #endif __pyx_t_30 = __Pyx_PyUnicode_Join(__pyx_t_29, 6, __pyx_t_18, __pyx_t_21); if (unlikely(!__pyx_t_30)) __PYX_ERR(0, 1363, __pyx_L62_error) __Pyx_GOTREF(__pyx_t_30); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; __pyx_t_20 = __Pyx_PyList_Append(__pyx_v_errors, __pyx_t_30); if (unlikely(__pyx_t_20 == ((int)-1))) __PYX_ERR(0, 1363, __pyx_L62_error) __Pyx_DECREF(__pyx_t_30); __pyx_t_30 = 0;
+1364: continue
goto __pyx_L59_continue;
}
1365: else:
+1366: if is_primitive(arg_type):
/*else*/ {
__pyx_t_6 = NULL;
__Pyx_GetModuleGlobalName(__pyx_t_11, __pyx_mstate_global->__pyx_n_u_is_primitive); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1366, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_11);
__pyx_t_8 = 1;
#if CYTHON_UNPACK_METHODS
if (unlikely(PyMethod_Check(__pyx_t_11))) {
__pyx_t_6 = PyMethod_GET_SELF(__pyx_t_11);
assert(__pyx_t_6);
PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_11);
__Pyx_INCREF(__pyx_t_6);
__Pyx_INCREF(__pyx__function);
__Pyx_DECREF_SET(__pyx_t_11, __pyx__function);
__pyx_t_8 = 0;
}
#endif
{
PyObject *__pyx_callargs[2] = {__pyx_t_6, __pyx_v_arg_type};
__pyx_t_7 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_11, __pyx_callargs+__pyx_t_8, (2-__pyx_t_8) | (__pyx_t_8*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
__Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
__Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1366, __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, 1366, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
if (__pyx_t_2) {
/* … */
}
+1367: if isinstance(data, arg_type):
__pyx_t_2 = PyObject_IsInstance(__pyx_v_data, __pyx_v_arg_type); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(0, 1367, __pyx_L1_error) if (__pyx_t_2) { /* … */ }
+1368: return data
{
PyObject *__pyx_temp;
{
__pyx_temp = __pyx_r;
__Pyx_INCREF(__pyx_v_data);
__pyx_r = __pyx_v_data;
}
__Pyx_XDECREF(__pyx_temp);
}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
goto __pyx_L0;
+1369: continue
goto __pyx_L19_continue;
+1370: elif subtype_origin is list or subtype_origin is tuple:
__pyx_t_3 = (__pyx_v_subtype_origin == ((PyObject *)(&PyList_Type)));
if (!__pyx_t_3) {
} else {
__pyx_t_2 = __pyx_t_3;
goto __pyx_L70_bool_binop_done;
}
__pyx_t_3 = (__pyx_v_subtype_origin == ((PyObject *)(&PyTuple_Type)));
__pyx_t_2 = __pyx_t_3;
__pyx_L70_bool_binop_done:;
if (__pyx_t_2) {
/* … */
}
+1371: if isinstance(data, list):
__pyx_t_2 = PyList_Check(__pyx_v_data);
if (__pyx_t_2) {
/* … */
}
+1372: try:
{
/*try:*/ {
/* … */
}
__pyx_L73_error:;
__Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
__Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
__Pyx_XDECREF(__pyx_t_16); __pyx_t_16 = 0;
__Pyx_XDECREF(__pyx_t_19); __pyx_t_19 = 0;
__Pyx_XDECREF(__pyx_t_30); __pyx_t_30 = 0;
__Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
__Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
/* … */
__pyx_L75_except_error:;
__Pyx_XGIVEREF(__pyx_t_12);
__Pyx_XGIVEREF(__pyx_t_13);
__Pyx_XGIVEREF(__pyx_t_14);
__Pyx_ExceptionReset(__pyx_t_12, __pyx_t_13, __pyx_t_14);
goto __pyx_L1_error;
__pyx_L79_try_continue:;
__Pyx_XGIVEREF(__pyx_t_12);
__Pyx_XGIVEREF(__pyx_t_13);
__Pyx_XGIVEREF(__pyx_t_14);
__Pyx_ExceptionReset(__pyx_t_12, __pyx_t_13, __pyx_t_14);
goto __pyx_L19_continue;
__pyx_L77_try_return:;
__Pyx_XGIVEREF(__pyx_t_12);
__Pyx_XGIVEREF(__pyx_t_13);
__Pyx_XGIVEREF(__pyx_t_14);
__Pyx_ExceptionReset(__pyx_t_12, __pyx_t_13, __pyx_t_14);
goto __pyx_L0;
}
+1373: return _parse_list_type(field, arg_type, data, encoder, targs)
__pyx_t_7 = __pyx_f_9datamodel_10converters__parse_list_type(__pyx_v_field, __pyx_v_arg_type, __pyx_v_data, __pyx_v_encoder, __pyx_v_targs, NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1373, __pyx_L73_error) __Pyx_GOTREF(__pyx_t_7); { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; __pyx_r = __pyx_t_7; } __Pyx_XDECREF(__pyx_temp); } __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; goto __pyx_L77_try_return;
+1374: except ValueError as exc:
__pyx_t_15 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(((PyTypeObject*)PyExc_ValueError)))); if (__pyx_t_15) { __Pyx_AddTraceback("datamodel.converters._parse_union_type", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_7, &__pyx_t_11, &__pyx_t_6) < 0) __PYX_ERR(0, 1374, __pyx_L75_except_error) __Pyx_XGOTREF(__pyx_t_7); __Pyx_XGOTREF(__pyx_t_11); __Pyx_XGOTREF(__pyx_t_6); __Pyx_INCREF(__pyx_t_11); __pyx_v_exc = ((PyObject*)__pyx_t_11); /*try:*/ { /* … */ /*finally:*/ { __pyx_L86_error:; /*exception exit:*/{ __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign __pyx_t_23 = 0; __pyx_t_24 = 0; __pyx_t_25 = 0; __pyx_t_26 = 0; __pyx_t_27 = 0; __pyx_t_28 = 0; __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_XDECREF(__pyx_t_16); __pyx_t_16 = 0; __Pyx_XDECREF(__pyx_t_19); __pyx_t_19 = 0; __Pyx_XDECREF(__pyx_t_30); __pyx_t_30 = 0; __Pyx_ExceptionSwap(&__pyx_t_26, &__pyx_t_27, &__pyx_t_28); if ( unlikely(__Pyx_GetException(&__pyx_t_23, &__pyx_t_24, &__pyx_t_25) < 0)) __Pyx_ErrFetch(&__pyx_t_23, &__pyx_t_24, &__pyx_t_25); __Pyx_XGOTREF(__pyx_t_23); __Pyx_XGOTREF(__pyx_t_24); __Pyx_XGOTREF(__pyx_t_25); __Pyx_XGOTREF(__pyx_t_26); __Pyx_XGOTREF(__pyx_t_27); __Pyx_XGOTREF(__pyx_t_28); __pyx_t_15 = __pyx_lineno; __pyx_t_21 = __pyx_clineno; __pyx_t_22 = __pyx_filename; { __Pyx_DECREF(__pyx_v_exc); __pyx_v_exc = 0; } __Pyx_XGIVEREF(__pyx_t_26); __Pyx_XGIVEREF(__pyx_t_27); __Pyx_XGIVEREF(__pyx_t_28); __Pyx_ExceptionReset(__pyx_t_26, __pyx_t_27, __pyx_t_28); __Pyx_XGIVEREF(__pyx_t_23); __Pyx_XGIVEREF(__pyx_t_24); __Pyx_XGIVEREF(__pyx_t_25); __Pyx_ErrRestore(__pyx_t_23, __pyx_t_24, __pyx_t_25); __pyx_t_23 = 0; __pyx_t_24 = 0; __pyx_t_25 = 0; __pyx_t_26 = 0; __pyx_t_27 = 0; __pyx_t_28 = 0; __pyx_lineno = __pyx_t_15; __pyx_clineno = __pyx_t_21; __pyx_filename = __pyx_t_22; goto __pyx_L75_except_error; } __pyx_L83_continue: { __Pyx_DECREF(__pyx_v_exc); __pyx_v_exc = 0; goto __pyx_L81_except_continue; } } __pyx_L81_except_continue:; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; goto __pyx_L79_try_continue; } goto __pyx_L75_except_error;
+1375: errors.append(str(exc))
__pyx_t_30 = __Pyx_PyObject_Unicode(__pyx_v_exc); if (unlikely(!__pyx_t_30)) __PYX_ERR(0, 1375, __pyx_L86_error) __Pyx_GOTREF(__pyx_t_30); __pyx_t_20 = __Pyx_PyList_Append(__pyx_v_errors, __pyx_t_30); if (unlikely(__pyx_t_20 == ((int)-1))) __PYX_ERR(0, 1375, __pyx_L86_error) __Pyx_DECREF(__pyx_t_30); __pyx_t_30 = 0;
+1376: continue
goto __pyx_L83_continue;
}
1377: else:
+1378: errors.append(f"Invalid type for {field_name}: Expected a list, got {type(data).__name__}")
/*else*/ {
__pyx_t_6 = __Pyx_PyUnicode_Unicode(__pyx_v_field_name); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1378, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_t_11 = __Pyx_PyObject_GetAttrStr(((PyObject *)Py_TYPE(__pyx_v_data)), __pyx_mstate_global->__pyx_n_u_name); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1378, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_11);
__pyx_t_7 = __Pyx_PyObject_FormatSimple(__pyx_t_11, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1378, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
__pyx_t_17[0] = __pyx_mstate_global->__pyx_kp_u_Invalid_type_for_2;
__pyx_t_17[1] = __pyx_t_6;
__pyx_t_17[2] = __pyx_mstate_global->__pyx_kp_u_Expected_a_list_got;
__pyx_t_17[3] = __pyx_t_7;
__pyx_t_18 = 40;
#if __Pyx_PyUnicode_Join_CAN_USE_KIND_AND_LENGTH
__pyx_t_18 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_17[1]) + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_17[3]);
#endif
__pyx_t_21 = 0;
#if __Pyx_PyUnicode_Join_CAN_USE_KIND_AND_LENGTH
__pyx_t_21 |= __Pyx_PyUnicode_KIND_04(__pyx_t_17[1]) | __Pyx_PyUnicode_KIND_04(__pyx_t_17[3]);
#endif
__pyx_t_11 = __Pyx_PyUnicode_Join(__pyx_t_17, 4, __pyx_t_18, __pyx_t_21);
if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1378, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_11);
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
__pyx_t_20 = __Pyx_PyList_Append(__pyx_v_errors, __pyx_t_11); if (unlikely(__pyx_t_20 == ((int)-1))) __PYX_ERR(0, 1378, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
+1379: continue
goto __pyx_L19_continue;
}
+1380: elif subtype_origin is set:
__pyx_t_2 = (__pyx_v_subtype_origin == ((PyObject *)(&PySet_Type)));
if (__pyx_t_2) {
/* … */
}
+1381: if isinstance(data, (list, tuple)):
__pyx_t_3 = PyList_Check(__pyx_v_data); if (!__pyx_t_3) { } else { __pyx_t_2 = __pyx_t_3; goto __pyx_L93_bool_binop_done; } __pyx_t_3 = PyTuple_Check(__pyx_v_data); __pyx_t_2 = __pyx_t_3; __pyx_L93_bool_binop_done:; if (__pyx_t_2) { /* … */ }
+1382: return set(data)
__pyx_t_11 = PySet_New(__pyx_v_data); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1382, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; __pyx_r = __pyx_t_11; } __Pyx_XDECREF(__pyx_temp); } __pyx_t_11 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; goto __pyx_L0;
+1383: elif isinstance(data, set):
__pyx_t_2 = PySet_Check(__pyx_v_data);
if (__pyx_t_2) {
/* … */
}
+1384: return data
{
PyObject *__pyx_temp;
{
__pyx_temp = __pyx_r;
__Pyx_INCREF(__pyx_v_data);
__pyx_r = __pyx_v_data;
}
__Pyx_XDECREF(__pyx_temp);
}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
goto __pyx_L0;
1385: else:
+1386: try:
/*else*/ {
{
/*try:*/ {
/* … */
}
__pyx_L95_error:;
__Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
__Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
__Pyx_XDECREF(__pyx_t_16); __pyx_t_16 = 0;
__Pyx_XDECREF(__pyx_t_19); __pyx_t_19 = 0;
__Pyx_XDECREF(__pyx_t_30); __pyx_t_30 = 0;
__Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
__Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
/* … */
__pyx_L97_except_error:;
__Pyx_XGIVEREF(__pyx_t_14);
__Pyx_XGIVEREF(__pyx_t_13);
__Pyx_XGIVEREF(__pyx_t_12);
__Pyx_ExceptionReset(__pyx_t_14, __pyx_t_13, __pyx_t_12);
goto __pyx_L1_error;
__pyx_L101_try_continue:;
__Pyx_XGIVEREF(__pyx_t_14);
__Pyx_XGIVEREF(__pyx_t_13);
__Pyx_XGIVEREF(__pyx_t_12);
__Pyx_ExceptionReset(__pyx_t_14, __pyx_t_13, __pyx_t_12);
goto __pyx_L19_continue;
__pyx_L99_try_return:;
__Pyx_XGIVEREF(__pyx_t_14);
__Pyx_XGIVEREF(__pyx_t_13);
__Pyx_XGIVEREF(__pyx_t_12);
__Pyx_ExceptionReset(__pyx_t_14, __pyx_t_13, __pyx_t_12);
goto __pyx_L0;
}
}
+1387: return _parse_set_type(field, T, data, encoder, targs, None)
__pyx_t_31.__pyx_n = 1;
__pyx_t_31._parent = Py_None;
__pyx_t_11 = __pyx_f_9datamodel_10converters__parse_set_type(__pyx_v_field, __pyx_v_T, __pyx_v_data, __pyx_v_encoder, __pyx_v_targs, &__pyx_t_31); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1387, __pyx_L95_error)
__Pyx_GOTREF(__pyx_t_11);
{
PyObject *__pyx_temp;
{
__pyx_temp = __pyx_r;
__pyx_r = __pyx_t_11;
}
__Pyx_XDECREF(__pyx_temp);
}
__pyx_t_11 = 0;
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
goto __pyx_L99_try_return;
+1388: except Exception as exc:
__pyx_t_21 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(((PyTypeObject*)PyExc_Exception)))); if (__pyx_t_21) { __Pyx_AddTraceback("datamodel.converters._parse_union_type", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_11, &__pyx_t_7, &__pyx_t_6) < 0) __PYX_ERR(0, 1388, __pyx_L97_except_error) __Pyx_XGOTREF(__pyx_t_11); __Pyx_XGOTREF(__pyx_t_7); __Pyx_XGOTREF(__pyx_t_6); __Pyx_INCREF(__pyx_t_7); __pyx_v_exc = __pyx_t_7; /*try:*/ { /* … */ /*finally:*/ { __pyx_L108_error:; /*exception exit:*/{ __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign __pyx_t_28 = 0; __pyx_t_27 = 0; __pyx_t_26 = 0; __pyx_t_25 = 0; __pyx_t_24 = 0; __pyx_t_23 = 0; __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_XDECREF(__pyx_t_16); __pyx_t_16 = 0; __Pyx_XDECREF(__pyx_t_19); __pyx_t_19 = 0; __Pyx_XDECREF(__pyx_t_30); __pyx_t_30 = 0; __Pyx_ExceptionSwap(&__pyx_t_25, &__pyx_t_24, &__pyx_t_23); if ( unlikely(__Pyx_GetException(&__pyx_t_28, &__pyx_t_27, &__pyx_t_26) < 0)) __Pyx_ErrFetch(&__pyx_t_28, &__pyx_t_27, &__pyx_t_26); __Pyx_XGOTREF(__pyx_t_28); __Pyx_XGOTREF(__pyx_t_27); __Pyx_XGOTREF(__pyx_t_26); __Pyx_XGOTREF(__pyx_t_25); __Pyx_XGOTREF(__pyx_t_24); __Pyx_XGOTREF(__pyx_t_23); __pyx_t_21 = __pyx_lineno; __pyx_t_15 = __pyx_clineno; __pyx_t_22 = __pyx_filename; { __Pyx_DECREF(__pyx_v_exc); __pyx_v_exc = 0; } __Pyx_XGIVEREF(__pyx_t_25); __Pyx_XGIVEREF(__pyx_t_24); __Pyx_XGIVEREF(__pyx_t_23); __Pyx_ExceptionReset(__pyx_t_25, __pyx_t_24, __pyx_t_23); __Pyx_XGIVEREF(__pyx_t_28); __Pyx_XGIVEREF(__pyx_t_27); __Pyx_XGIVEREF(__pyx_t_26); __Pyx_ErrRestore(__pyx_t_28, __pyx_t_27, __pyx_t_26); __pyx_t_28 = 0; __pyx_t_27 = 0; __pyx_t_26 = 0; __pyx_t_25 = 0; __pyx_t_24 = 0; __pyx_t_23 = 0; __pyx_lineno = __pyx_t_21; __pyx_clineno = __pyx_t_15; __pyx_filename = __pyx_t_22; goto __pyx_L97_except_error; } __pyx_L105_continue: { __Pyx_DECREF(__pyx_v_exc); __pyx_v_exc = 0; goto __pyx_L103_except_continue; } } __pyx_L103_except_continue:; __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; goto __pyx_L101_try_continue; } goto __pyx_L97_except_error;
+1389: errors.append(f"Invalid type for {field_name}: Expected a set, got {type(data).__name__}")
__pyx_t_30 = __Pyx_PyUnicode_Unicode(__pyx_v_field_name); if (unlikely(!__pyx_t_30)) __PYX_ERR(0, 1389, __pyx_L108_error) __Pyx_GOTREF(__pyx_t_30); __pyx_t_19 = __Pyx_PyObject_GetAttrStr(((PyObject *)Py_TYPE(__pyx_v_data)), __pyx_mstate_global->__pyx_n_u_name); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 1389, __pyx_L108_error) __Pyx_GOTREF(__pyx_t_19); __pyx_t_16 = __Pyx_PyObject_FormatSimple(__pyx_t_19, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 1389, __pyx_L108_error) __Pyx_GOTREF(__pyx_t_16); __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; __pyx_t_17[0] = __pyx_mstate_global->__pyx_kp_u_Invalid_type_for_2; __pyx_t_17[1] = __pyx_t_30; __pyx_t_17[2] = __pyx_mstate_global->__pyx_kp_u_Expected_a_set_got; __pyx_t_17[3] = __pyx_t_16; __pyx_t_18 = 39; #if __Pyx_PyUnicode_Join_CAN_USE_KIND_AND_LENGTH __pyx_t_18 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_17[1]) + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_17[3]); #endif __pyx_t_21 = 0; #if __Pyx_PyUnicode_Join_CAN_USE_KIND_AND_LENGTH __pyx_t_21 |= __Pyx_PyUnicode_KIND_04(__pyx_t_17[1]) | __Pyx_PyUnicode_KIND_04(__pyx_t_17[3]); #endif __pyx_t_19 = __Pyx_PyUnicode_Join(__pyx_t_17, 4, __pyx_t_18, __pyx_t_21); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 1389, __pyx_L108_error) __Pyx_GOTREF(__pyx_t_19); __Pyx_DECREF(__pyx_t_30); __pyx_t_30 = 0; __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; __pyx_t_20 = __Pyx_PyList_Append(__pyx_v_errors, __pyx_t_19); if (unlikely(__pyx_t_20 == ((int)-1))) __PYX_ERR(0, 1389, __pyx_L108_error) __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
+1390: continue
goto __pyx_L105_continue;
}
+1391: elif subtype_origin is frozenset:
__pyx_t_2 = (__pyx_v_subtype_origin == ((PyObject *)(&PyFrozenSet_Type)));
if (__pyx_t_2) {
/* … */
}
+1392: if isinstance(data, (list, tuple)):
__pyx_t_3 = PyList_Check(__pyx_v_data); if (!__pyx_t_3) { } else { __pyx_t_2 = __pyx_t_3; goto __pyx_L115_bool_binop_done; } __pyx_t_3 = PyTuple_Check(__pyx_v_data); __pyx_t_2 = __pyx_t_3; __pyx_L115_bool_binop_done:; if (__pyx_t_2) { /* … */ }
+1393: return frozenset(data)
__pyx_t_6 = __Pyx_PyFrozenSet_New(__pyx_v_data); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1393, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; __pyx_r = __pyx_t_6; } __Pyx_XDECREF(__pyx_temp); } __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; goto __pyx_L0;
+1394: elif isinstance(data, frozenset):
__pyx_t_2 = PyFrozenSet_Check(__pyx_v_data);
if (__pyx_t_2) {
/* … */
}
+1395: return data
{
PyObject *__pyx_temp;
{
__pyx_temp = __pyx_r;
__Pyx_INCREF(__pyx_v_data);
__pyx_r = __pyx_v_data;
}
__Pyx_XDECREF(__pyx_temp);
}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
goto __pyx_L0;
1396: else:
+1397: errors.append(f"Invalid type for {field_name}: Expected a frozenset, got {type(data).__name__}")
/*else*/ {
__pyx_t_6 = __Pyx_PyUnicode_Unicode(__pyx_v_field_name); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1397, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_t_7 = __Pyx_PyObject_GetAttrStr(((PyObject *)Py_TYPE(__pyx_v_data)), __pyx_mstate_global->__pyx_n_u_name); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1397, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__pyx_t_11 = __Pyx_PyObject_FormatSimple(__pyx_t_7, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1397, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_11);
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
__pyx_t_17[0] = __pyx_mstate_global->__pyx_kp_u_Invalid_type_for_2;
__pyx_t_17[1] = __pyx_t_6;
__pyx_t_17[2] = __pyx_mstate_global->__pyx_kp_u_Expected_a_frozenset_got;
__pyx_t_17[3] = __pyx_t_11;
__pyx_t_18 = 45;
#if __Pyx_PyUnicode_Join_CAN_USE_KIND_AND_LENGTH
__pyx_t_18 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_17[1]) + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_17[3]);
#endif
__pyx_t_15 = 0;
#if __Pyx_PyUnicode_Join_CAN_USE_KIND_AND_LENGTH
__pyx_t_15 |= __Pyx_PyUnicode_KIND_04(__pyx_t_17[1]) | __Pyx_PyUnicode_KIND_04(__pyx_t_17[3]);
#endif
__pyx_t_7 = __Pyx_PyUnicode_Join(__pyx_t_17, 4, __pyx_t_18, __pyx_t_15);
if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1397, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
__pyx_t_20 = __Pyx_PyList_Append(__pyx_v_errors, __pyx_t_7); if (unlikely(__pyx_t_20 == ((int)-1))) __PYX_ERR(0, 1397, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
+1398: continue
goto __pyx_L19_continue;
}
+1399: elif subtype_origin is list and field._inner_is_dc == True and isinstance(data, list):
__pyx_t_3 = (__pyx_v_subtype_origin == ((PyObject *)(&PyList_Type)));
if (__pyx_t_3) {
} else {
__pyx_t_2 = __pyx_t_3;
goto __pyx_L117_bool_binop_done;
}
__pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_field, __pyx_mstate_global->__pyx_n_u_inner_is_dc); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1399, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__pyx_t_3 = __Pyx_PyObject_RichCompareBool(__pyx_t_7, Py_True, Py_EQ); if (unlikely((__pyx_t_3 < 0))) __PYX_ERR(0, 1399, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
if (__pyx_t_3) {
} else {
__pyx_t_2 = __pyx_t_3;
goto __pyx_L117_bool_binop_done;
}
__pyx_t_3 = PyList_Check(__pyx_v_data);
__pyx_t_2 = __pyx_t_3;
__pyx_L117_bool_binop_done:;
if (__pyx_t_2) {
/* … */
}
+1400: return _handle_list_of_dataclasses(field, field_name, data, T, None)
__pyx_t_32.__pyx_n = 1;
__pyx_t_32.parent = Py_None;
__pyx_t_7 = __pyx_f_9datamodel_10converters__handle_list_of_dataclasses(__pyx_v_field, __pyx_v_field_name, __pyx_v_data, __pyx_v_T, &__pyx_t_32); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1400, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
{
PyObject *__pyx_temp;
{
__pyx_temp = __pyx_r;
__pyx_r = __pyx_t_7;
}
__Pyx_XDECREF(__pyx_temp);
}
__pyx_t_7 = 0;
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
goto __pyx_L0;
+1401: elif subtype_origin is dict:
__pyx_t_2 = (__pyx_v_subtype_origin == ((PyObject *)(&PyDict_Type)));
if (__pyx_t_2) {
/* … */
}
+1402: if isinstance(data, dict):
__pyx_t_2 = PyDict_Check(__pyx_v_data);
if (__pyx_t_2) {
/* … */
}
+1403: return _parse_dict_type(field, arg_type, data, encoder, targs)
__pyx_t_7 = __pyx_f_9datamodel_10converters__parse_dict_type(__pyx_v_field, __pyx_v_arg_type, __pyx_v_data, __pyx_v_encoder, __pyx_v_targs); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1403, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; __pyx_r = __pyx_t_7; } __Pyx_XDECREF(__pyx_temp); } __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; goto __pyx_L0;
1404: else:
+1405: errors.append(
/*else*/ {
/* … */
__pyx_t_20 = __Pyx_PyList_Append(__pyx_v_errors, __pyx_t_11); if (unlikely(__pyx_t_20 == ((int)-1))) __PYX_ERR(0, 1405, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
+1406: f"Invalid type for {field_name} Expected a dict, got {type(data).__name__}"
__pyx_t_7 = __Pyx_PyUnicode_Unicode(__pyx_v_field_name); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1406, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_11 = __Pyx_PyObject_GetAttrStr(((PyObject *)Py_TYPE(__pyx_v_data)), __pyx_mstate_global->__pyx_n_u_name); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1406, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __pyx_t_6 = __Pyx_PyObject_FormatSimple(__pyx_t_11, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1406, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __pyx_t_17[0] = __pyx_mstate_global->__pyx_kp_u_Invalid_type_for_2; __pyx_t_17[1] = __pyx_t_7; __pyx_t_17[2] = __pyx_mstate_global->__pyx_kp_u_Expected_a_dict_got; __pyx_t_17[3] = __pyx_t_6; __pyx_t_18 = 39; #if __Pyx_PyUnicode_Join_CAN_USE_KIND_AND_LENGTH __pyx_t_18 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_17[1]) + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_17[3]); #endif __pyx_t_15 = 0; #if __Pyx_PyUnicode_Join_CAN_USE_KIND_AND_LENGTH __pyx_t_15 |= __Pyx_PyUnicode_KIND_04(__pyx_t_17[1]) | __Pyx_PyUnicode_KIND_04(__pyx_t_17[3]); #endif __pyx_t_11 = __Pyx_PyUnicode_Join(__pyx_t_17, 4, __pyx_t_18, __pyx_t_15); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1406, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
1407: )
+1408: continue
goto __pyx_L19_continue;
}
+1409: elif arg_type is list:
__pyx_t_2 = (__pyx_v_arg_type == ((PyObject *)(&PyList_Type)));
if (__pyx_t_2) {
/* … */
goto __pyx_L68;
}
+1410: if isinstance(data, list):
__pyx_t_2 = PyList_Check(__pyx_v_data);
if (__pyx_t_2) {
/* … */
goto __pyx_L121;
}
+1411: if arg_type is str:
__pyx_t_2 = (__pyx_v_arg_type == ((PyObject *)(&PyUnicode_Type)));
if (__pyx_t_2) {
/* … */
goto __pyx_L122;
}
1412: # Ensure all elements in the list are strings
+1413: if all(isinstance(item, str) for item in data):
static PyObject *__pyx_pf_9datamodel_10converters_17_parse_union_type_genexpr(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_genexpr_arg_0) {
struct __pyx_obj_9datamodel_10converters___pyx_scope_struct_6_genexpr *__pyx_cur_scope;
PyObject *__pyx_r = NULL;
__pyx_cur_scope = (struct __pyx_obj_9datamodel_10converters___pyx_scope_struct_6_genexpr *)__pyx_tp_new_9datamodel_10converters___pyx_scope_struct_6_genexpr(__pyx_mstate_global->__pyx_ptype_9datamodel_10converters___pyx_scope_struct_6_genexpr, __pyx_mstate_global->__pyx_empty_tuple, NULL);
if (unlikely(!__pyx_cur_scope)) {
__pyx_cur_scope = ((struct __pyx_obj_9datamodel_10converters___pyx_scope_struct_6_genexpr *)Py_None);
__Pyx_INCREF(Py_None);
__PYX_ERR(0, 1413, __pyx_L1_error)
} else {
__Pyx_GOTREF((PyObject *)__pyx_cur_scope);
}
__pyx_cur_scope->__pyx_genexpr_arg_0 = __pyx_genexpr_arg_0;
__Pyx_INCREF(__pyx_cur_scope->__pyx_genexpr_arg_0);
__Pyx_GIVEREF(__pyx_cur_scope->__pyx_genexpr_arg_0);
{
__pyx_CoroutineObject *gen = __Pyx_Generator_New((__pyx_coroutine_body_t) __pyx_gb_9datamodel_10converters_17_parse_union_type_2generator4, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[4]), (PyObject *) __pyx_cur_scope, __pyx_mstate_global->__pyx_n_u_genexpr, __pyx_mstate_global->__pyx_n_u_parse_union_type_locals_genexpr, __pyx_mstate_global->__pyx_n_u_datamodel_converters); if (unlikely(!gen)) __PYX_ERR(0, 1413, __pyx_L1_error)
__Pyx_DECREF(__pyx_cur_scope);
__Pyx_RefNannyFinishContext();
return (PyObject *) gen;
}
/* function exit code */
__pyx_L1_error:;
__Pyx_AddTraceback("datamodel.converters._parse_union_type.genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__Pyx_DECREF((PyObject *)__pyx_cur_scope);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_gb_9datamodel_10converters_17_parse_union_type_2generator4(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("genexpr", 0);
__pyx_L3_first_run:;
if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 1413, __pyx_L1_error)
if (unlikely(!__pyx_cur_scope->__pyx_genexpr_arg_0)) { __Pyx_RaiseUnboundLocalError(".0"); __PYX_ERR(0, 1413, __pyx_L1_error) }
if (likely(PyList_CheckExact(__pyx_cur_scope->__pyx_genexpr_arg_0)) || PyTuple_CheckExact(__pyx_cur_scope->__pyx_genexpr_arg_0)) {
__pyx_t_1 = __pyx_cur_scope->__pyx_genexpr_arg_0; __Pyx_INCREF(__pyx_t_1);
__pyx_t_2 = 0;
__pyx_t_3 = NULL;
} else {
__pyx_t_2 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_cur_scope->__pyx_genexpr_arg_0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1413, __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, 1413, __pyx_L1_error)
}
for (;;) {
if (likely(!__pyx_t_3)) {
if (likely(PyList_CheckExact(__pyx_t_1))) {
{
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, 1413, __pyx_L1_error)
#endif
if (__pyx_t_2 >= __pyx_temp) break;
}
__pyx_t_4 = __Pyx_PyList_GET_ITEM_REF(__pyx_t_1, __pyx_t_2, __Pyx_ReferenceSharing_OwnStrongReference);
++__pyx_t_2;
} 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, 1413, __pyx_L1_error)
#endif
if (__pyx_t_2 >= __pyx_temp) break;
}
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_4 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_2));
#else
__pyx_t_4 = __Pyx_PySequence_ITEM(__pyx_t_1, __pyx_t_2);
#endif
++__pyx_t_2;
}
if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1413, __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, 1413, __pyx_L1_error)
PyErr_Clear();
}
break;
}
}
__Pyx_GOTREF(__pyx_t_4);
__Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_item);
__Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_item, __pyx_t_4);
__Pyx_GIVEREF(__pyx_t_4);
__pyx_t_4 = 0;
__pyx_t_5 = PyUnicode_Check(__pyx_cur_scope->__pyx_v_item);
__pyx_t_6 = (!__pyx_t_5);
if (__pyx_t_6) {
{
PyObject *__pyx_temp;
{
__pyx_temp = __pyx_r;
__Pyx_INCREF(Py_False);
__pyx_r = Py_False;
}
__Pyx_XDECREF(__pyx_temp);
}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
goto __pyx_L0;
}
}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
/*else*/ {
{
PyObject *__pyx_temp;
{
__pyx_temp = __pyx_r;
__Pyx_INCREF(Py_True);
__pyx_r = Py_True;
}
__Pyx_XDECREF(__pyx_temp);
}
goto __pyx_L0;
}
CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);
/* function exit code */
goto __pyx_L0;
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_4);
if (__Pyx_PyErr_Occurred()) {
__Pyx_Generator_Replace_StopIteration(0);
__Pyx_AddTraceback("genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);
}
__pyx_L0:;
__Pyx_XGIVEREF(__pyx_r);
#if !CYTHON_USE_EXC_INFO_STACK
__Pyx_Coroutine_ResetAndClearException(__pyx_generator);
#endif
__pyx_generator->resume_label = -1;
__Pyx_Coroutine_clear((PyObject*)__pyx_generator);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
__pyx_t_11 = __pyx_pf_9datamodel_10converters_17_parse_union_type_genexpr(NULL, __pyx_v_data); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1413, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_11);
__pyx_t_6 = __Pyx_Generator_GetInlinedResult(__pyx_t_11); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1413, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
__pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 1413, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
if (__pyx_t_2) {
/* … */
}
+1414: return data
{
PyObject *__pyx_temp;
{
__pyx_temp = __pyx_r;
__Pyx_INCREF(__pyx_v_data);
__pyx_r = __pyx_v_data;
}
__Pyx_XDECREF(__pyx_temp);
}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
goto __pyx_L0;
1415: else:
+1416: return _parse_list_type(field, arg_type, data, encoder, targs)
/*else*/ {
__pyx_t_6 = __pyx_f_9datamodel_10converters__parse_list_type(__pyx_v_field, __pyx_v_arg_type, __pyx_v_data, __pyx_v_encoder, __pyx_v_targs, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1416, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
{
PyObject *__pyx_temp;
{
__pyx_temp = __pyx_r;
__pyx_r = __pyx_t_6;
}
__Pyx_XDECREF(__pyx_temp);
}
__pyx_t_6 = 0;
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
goto __pyx_L0;
}
__pyx_L122:;
1417: else:
+1418: errors.append(
/*else*/ {
/* … */
__pyx_t_20 = __Pyx_PyList_Append(__pyx_v_errors, __pyx_t_11); if (unlikely(__pyx_t_20 == ((int)-1))) __PYX_ERR(0, 1418, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
+1419: f"Invalid type for {field_name}: Expected a list, got {type(data).__name__}"
__pyx_t_6 = __Pyx_PyUnicode_Unicode(__pyx_v_field_name); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1419, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_11 = __Pyx_PyObject_GetAttrStr(((PyObject *)Py_TYPE(__pyx_v_data)), __pyx_mstate_global->__pyx_n_u_name); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1419, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __pyx_t_7 = __Pyx_PyObject_FormatSimple(__pyx_t_11, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1419, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __pyx_t_17[0] = __pyx_mstate_global->__pyx_kp_u_Invalid_type_for_2; __pyx_t_17[1] = __pyx_t_6; __pyx_t_17[2] = __pyx_mstate_global->__pyx_kp_u_Expected_a_list_got; __pyx_t_17[3] = __pyx_t_7; __pyx_t_18 = 40; #if __Pyx_PyUnicode_Join_CAN_USE_KIND_AND_LENGTH __pyx_t_18 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_17[1]) + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_17[3]); #endif __pyx_t_15 = 0; #if __Pyx_PyUnicode_Join_CAN_USE_KIND_AND_LENGTH __pyx_t_15 |= __Pyx_PyUnicode_KIND_04(__pyx_t_17[1]) | __Pyx_PyUnicode_KIND_04(__pyx_t_17[3]); #endif __pyx_t_11 = __Pyx_PyUnicode_Join(__pyx_t_17, 4, __pyx_t_18, __pyx_t_15); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1419, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
1420: )
+1421: continue
goto __pyx_L19_continue;
}
__pyx_L121:;
+1422: elif arg_type is dict:
__pyx_t_2 = (__pyx_v_arg_type == ((PyObject *)(&PyDict_Type)));
if (__pyx_t_2) {
/* … */
}
+1423: if isinstance(data, dict):
__pyx_t_2 = PyDict_Check(__pyx_v_data);
if (__pyx_t_2) {
/* … */
}
+1424: return _parse_dict_type(field, arg_type, data, encoder, targs)
__pyx_t_11 = __pyx_f_9datamodel_10converters__parse_dict_type(__pyx_v_field, __pyx_v_arg_type, __pyx_v_data, __pyx_v_encoder, __pyx_v_targs); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1424, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; __pyx_r = __pyx_t_11; } __Pyx_XDECREF(__pyx_temp); } __pyx_t_11 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; goto __pyx_L0;
1425: else:
+1426: errors.append(
/*else*/ {
/* … */
__pyx_t_20 = __Pyx_PyList_Append(__pyx_v_errors, __pyx_t_7); if (unlikely(__pyx_t_20 == ((int)-1))) __PYX_ERR(0, 1426, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
+1427: f"Invalid type for {field_name} Expected a dict, got {type(data).__name__}"
__pyx_t_11 = __Pyx_PyUnicode_Unicode(__pyx_v_field_name); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1427, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __pyx_t_7 = __Pyx_PyObject_GetAttrStr(((PyObject *)Py_TYPE(__pyx_v_data)), __pyx_mstate_global->__pyx_n_u_name); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1427, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_6 = __Pyx_PyObject_FormatSimple(__pyx_t_7, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1427, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_17[0] = __pyx_mstate_global->__pyx_kp_u_Invalid_type_for_2; __pyx_t_17[1] = __pyx_t_11; __pyx_t_17[2] = __pyx_mstate_global->__pyx_kp_u_Expected_a_dict_got; __pyx_t_17[3] = __pyx_t_6; __pyx_t_18 = 39; #if __Pyx_PyUnicode_Join_CAN_USE_KIND_AND_LENGTH __pyx_t_18 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_17[1]) + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_17[3]); #endif __pyx_t_15 = 0; #if __Pyx_PyUnicode_Join_CAN_USE_KIND_AND_LENGTH __pyx_t_15 |= __Pyx_PyUnicode_KIND_04(__pyx_t_17[1]) | __Pyx_PyUnicode_KIND_04(__pyx_t_17[3]); #endif __pyx_t_7 = __Pyx_PyUnicode_Join(__pyx_t_17, 4, __pyx_t_18, __pyx_t_15); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1427, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
1428: )
+1429: continue
goto __pyx_L19_continue;
}
+1430: elif subtype_origin is None:
__pyx_t_2 = (__pyx_v_subtype_origin == Py_None);
if (__pyx_t_2) {
/* … */
}
+1431: try:
{
/*try:*/ {
/* … */
}
__pyx_L125_error:;
__Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
__Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
__Pyx_XDECREF(__pyx_t_16); __pyx_t_16 = 0;
__Pyx_XDECREF(__pyx_t_19); __pyx_t_19 = 0;
__Pyx_XDECREF(__pyx_t_30); __pyx_t_30 = 0;
__Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
__Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
/* … */
__pyx_L127_except_error:;
__Pyx_XGIVEREF(__pyx_t_12);
__Pyx_XGIVEREF(__pyx_t_13);
__Pyx_XGIVEREF(__pyx_t_14);
__Pyx_ExceptionReset(__pyx_t_12, __pyx_t_13, __pyx_t_14);
goto __pyx_L1_error;
__pyx_L131_try_continue:;
__Pyx_XGIVEREF(__pyx_t_12);
__Pyx_XGIVEREF(__pyx_t_13);
__Pyx_XGIVEREF(__pyx_t_14);
__Pyx_ExceptionReset(__pyx_t_12, __pyx_t_13, __pyx_t_14);
goto __pyx_L19_continue;
__pyx_L129_try_return:;
__Pyx_XGIVEREF(__pyx_t_12);
__Pyx_XGIVEREF(__pyx_t_13);
__Pyx_XGIVEREF(__pyx_t_14);
__Pyx_ExceptionReset(__pyx_t_12, __pyx_t_13, __pyx_t_14);
goto __pyx_L0;
}
+1432: if is_dc(arg_type):
__pyx_t_2 = __pyx_f_9datamodel_10converters_is_dc(__pyx_v_arg_type); if (unlikely(__pyx_t_2 == ((int)-1) && PyErr_Occurred())) __PYX_ERR(0, 1432, __pyx_L125_error) if (__pyx_t_2) { /* … */ }
+1433: return _handle_dataclass_type(field, name, data, arg_type, False, None)
__pyx_t_7 = __pyx_v_name;
__Pyx_INCREF(__pyx_t_7);
if (!(likely(PyUnicode_CheckExact(__pyx_t_7))||((__pyx_t_7) == Py_None) || __Pyx_RaiseUnexpectedTypeError("str", __pyx_t_7))) __PYX_ERR(0, 1433, __pyx_L125_error)
__pyx_t_33.__pyx_n = 2;
__pyx_t_33.as_objects = Py_False;
__pyx_t_33.parent = Py_None;
__pyx_t_6 = __pyx_f_9datamodel_10converters__handle_dataclass_type(__pyx_v_field, ((PyObject*)__pyx_t_7), __pyx_v_data, __pyx_v_arg_type, &__pyx_t_33); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1433, __pyx_L125_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
{
PyObject *__pyx_temp;
{
__pyx_temp = __pyx_r;
__pyx_r = __pyx_t_6;
}
__Pyx_XDECREF(__pyx_temp);
}
__pyx_t_6 = 0;
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
goto __pyx_L129_try_return;
+1434: elif arg_type in encoders:
__Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_encoders); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1434, __pyx_L125_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_v_arg_type, __pyx_t_6, Py_EQ)); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 1434, __pyx_L125_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (__pyx_t_2) { /* … */ }
+1435: return _parse_builtin_type(field, arg_type, data, encoder)
__pyx_t_6 = __pyx_f_9datamodel_10converters__parse_builtin_type(__pyx_v_field, __pyx_v_arg_type, __pyx_v_data, __pyx_v_encoder); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1435, __pyx_L125_error) __Pyx_GOTREF(__pyx_t_6); { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; __pyx_r = __pyx_t_6; } __Pyx_XDECREF(__pyx_temp); } __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; goto __pyx_L129_try_return;
+1436: elif isinstance(data, arg_type):
__pyx_t_2 = PyObject_IsInstance(__pyx_v_data, __pyx_v_arg_type); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(0, 1436, __pyx_L125_error) if (__pyx_t_2) { /* … */ }
+1437: return data
{
PyObject *__pyx_temp;
{
__pyx_temp = __pyx_r;
__Pyx_INCREF(__pyx_v_data);
__pyx_r = __pyx_v_data;
}
__Pyx_XDECREF(__pyx_temp);
}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
goto __pyx_L129_try_return;
1438: else:
1439: # Not matching => record an error
+1440: errors.append(
/*else*/ {
/* … */
__pyx_t_20 = __Pyx_PyList_Append(__pyx_v_errors, __pyx_t_19); if (unlikely(__pyx_t_20 == ((int)-1))) __PYX_ERR(0, 1440, __pyx_L125_error)
__Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
+1441: f"Invalid type for {field_name}, Data {data!r} is not an instance of {arg_type}"
__pyx_t_6 = __Pyx_PyUnicode_Unicode(__pyx_v_field_name); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1441, __pyx_L125_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_7 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Repr(__pyx_v_data), __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1441, __pyx_L125_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_11 = __Pyx_PyObject_FormatSimple(__pyx_v_arg_type, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1441, __pyx_L125_error) __Pyx_GOTREF(__pyx_t_11); __pyx_t_29[0] = __pyx_mstate_global->__pyx_kp_u_Invalid_type_for_2; __pyx_t_29[1] = __pyx_t_6; __pyx_t_29[2] = __pyx_mstate_global->__pyx_kp_u_Data; __pyx_t_29[3] = __pyx_t_7; __pyx_t_29[4] = __pyx_mstate_global->__pyx_kp_u_is_not_an_instance_of; __pyx_t_29[5] = __pyx_t_11; __pyx_t_18 = 47; #if __Pyx_PyUnicode_Join_CAN_USE_KIND_AND_LENGTH __pyx_t_18 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_29[1]) + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_29[3]) + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_29[5]); #endif __pyx_t_15 = 0; #if __Pyx_PyUnicode_Join_CAN_USE_KIND_AND_LENGTH __pyx_t_15 |= __Pyx_PyUnicode_KIND_04(__pyx_t_29[1]) | __Pyx_PyUnicode_KIND_04(__pyx_t_29[3]) | __Pyx_PyUnicode_KIND_04(__pyx_t_29[5]); #endif __pyx_t_19 = __Pyx_PyUnicode_Join(__pyx_t_29, 6, __pyx_t_18, __pyx_t_15); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 1441, __pyx_L125_error) __Pyx_GOTREF(__pyx_t_19); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
1442: )
+1443: continue
goto __pyx_L131_try_continue;
}
+1444: except ValueError as exc:
__pyx_t_15 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(((PyTypeObject*)PyExc_ValueError)))); if (__pyx_t_15) { __Pyx_AddTraceback("datamodel.converters._parse_union_type", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_19, &__pyx_t_11, &__pyx_t_7) < 0) __PYX_ERR(0, 1444, __pyx_L127_except_error) __Pyx_XGOTREF(__pyx_t_19); __Pyx_XGOTREF(__pyx_t_11); __Pyx_XGOTREF(__pyx_t_7); __Pyx_INCREF(__pyx_t_11); __pyx_v_exc = ((PyObject*)__pyx_t_11); /*try:*/ { /* … */ /*finally:*/ { __pyx_L139_error:; /*exception exit:*/{ __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign __pyx_t_23 = 0; __pyx_t_24 = 0; __pyx_t_25 = 0; __pyx_t_26 = 0; __pyx_t_27 = 0; __pyx_t_28 = 0; __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_XDECREF(__pyx_t_16); __pyx_t_16 = 0; __Pyx_XDECREF(__pyx_t_30); __pyx_t_30 = 0; __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_ExceptionSwap(&__pyx_t_26, &__pyx_t_27, &__pyx_t_28); if ( unlikely(__Pyx_GetException(&__pyx_t_23, &__pyx_t_24, &__pyx_t_25) < 0)) __Pyx_ErrFetch(&__pyx_t_23, &__pyx_t_24, &__pyx_t_25); __Pyx_XGOTREF(__pyx_t_23); __Pyx_XGOTREF(__pyx_t_24); __Pyx_XGOTREF(__pyx_t_25); __Pyx_XGOTREF(__pyx_t_26); __Pyx_XGOTREF(__pyx_t_27); __Pyx_XGOTREF(__pyx_t_28); __pyx_t_15 = __pyx_lineno; __pyx_t_21 = __pyx_clineno; __pyx_t_22 = __pyx_filename; { __Pyx_DECREF(__pyx_v_exc); __pyx_v_exc = 0; } __Pyx_XGIVEREF(__pyx_t_26); __Pyx_XGIVEREF(__pyx_t_27); __Pyx_XGIVEREF(__pyx_t_28); __Pyx_ExceptionReset(__pyx_t_26, __pyx_t_27, __pyx_t_28); __Pyx_XGIVEREF(__pyx_t_23); __Pyx_XGIVEREF(__pyx_t_24); __Pyx_XGIVEREF(__pyx_t_25); __Pyx_ErrRestore(__pyx_t_23, __pyx_t_24, __pyx_t_25); __pyx_t_23 = 0; __pyx_t_24 = 0; __pyx_t_25 = 0; __pyx_t_26 = 0; __pyx_t_27 = 0; __pyx_t_28 = 0; __pyx_lineno = __pyx_t_15; __pyx_clineno = __pyx_t_21; __pyx_filename = __pyx_t_22; goto __pyx_L127_except_error; } __pyx_L136_continue: { __Pyx_DECREF(__pyx_v_exc); __pyx_v_exc = 0; goto __pyx_L134_except_continue; } } __pyx_L134_except_continue:; __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; goto __pyx_L131_try_continue; } goto __pyx_L127_except_error;
+1445: errors.append(f"{field.name}: {exc}")
__pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_field, __pyx_mstate_global->__pyx_n_u_name_2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1445, __pyx_L139_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_16 = __Pyx_PyObject_FormatSimple(__pyx_t_6, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 1445, __pyx_L139_error) __Pyx_GOTREF(__pyx_t_16); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = __Pyx_PyObject_FormatSimple(__pyx_v_exc, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1445, __pyx_L139_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_34[0] = __pyx_t_16; __pyx_t_34[1] = __pyx_mstate_global->__pyx_kp_u__5; __pyx_t_34[2] = __pyx_t_6; __pyx_t_18 = 2; #if __Pyx_PyUnicode_Join_CAN_USE_KIND_AND_LENGTH __pyx_t_18 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_34[0]) + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_34[2]); #endif __pyx_t_15 = 0; #if __Pyx_PyUnicode_Join_CAN_USE_KIND_AND_LENGTH __pyx_t_15 |= __Pyx_PyUnicode_KIND_04(__pyx_t_34[0]) | __Pyx_PyUnicode_KIND_04(__pyx_t_34[2]); #endif __pyx_t_30 = __Pyx_PyUnicode_Join(__pyx_t_34, 3, __pyx_t_18, __pyx_t_15); if (unlikely(!__pyx_t_30)) __PYX_ERR(0, 1445, __pyx_L139_error) __Pyx_GOTREF(__pyx_t_30); __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_20 = __Pyx_PyList_Append(__pyx_v_errors, __pyx_t_30); if (unlikely(__pyx_t_20 == ((int)-1))) __PYX_ERR(0, 1445, __pyx_L139_error) __Pyx_DECREF(__pyx_t_30); __pyx_t_30 = 0;
+1446: continue
goto __pyx_L136_continue;
}
1447: else:
+1448: try:
/*else*/ {
{
/*try:*/ {
/* … */
}
__pyx_L145_error:;
__Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
__Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
__Pyx_XDECREF(__pyx_t_16); __pyx_t_16 = 0;
__Pyx_XDECREF(__pyx_t_19); __pyx_t_19 = 0;
__Pyx_XDECREF(__pyx_t_30); __pyx_t_30 = 0;
__Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
__Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
/* … */
__pyx_L147_except_error:;
__Pyx_XGIVEREF(__pyx_t_14);
__Pyx_XGIVEREF(__pyx_t_13);
__Pyx_XGIVEREF(__pyx_t_12);
__Pyx_ExceptionReset(__pyx_t_14, __pyx_t_13, __pyx_t_12);
goto __pyx_L1_error;
__pyx_L151_try_continue:;
__Pyx_XGIVEREF(__pyx_t_14);
__Pyx_XGIVEREF(__pyx_t_13);
__Pyx_XGIVEREF(__pyx_t_12);
__Pyx_ExceptionReset(__pyx_t_14, __pyx_t_13, __pyx_t_12);
goto __pyx_L19_continue;
__pyx_L149_try_return:;
__Pyx_XGIVEREF(__pyx_t_14);
__Pyx_XGIVEREF(__pyx_t_13);
__Pyx_XGIVEREF(__pyx_t_12);
__Pyx_ExceptionReset(__pyx_t_14, __pyx_t_13, __pyx_t_12);
goto __pyx_L0;
}
}
__pyx_L68:;
}
1449: # fallback to builtin parse
+1450: return _parse_typing(
__pyx_t_9.__pyx_n = 2;
__pyx_t_9.encoder = __pyx_v_encoder;
__pyx_t_9.as_objects = Py_False;
__pyx_t_7 = __pyx_f_9datamodel_10converters__parse_typing(__pyx_v_field, __pyx_v_arg_type, __pyx_v_data, &__pyx_t_9); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1450, __pyx_L145_error)
__Pyx_GOTREF(__pyx_t_7);
{
PyObject *__pyx_temp;
{
__pyx_temp = __pyx_r;
__pyx_r = __pyx_t_7;
}
__Pyx_XDECREF(__pyx_temp);
}
__pyx_t_7 = 0;
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
goto __pyx_L149_try_return;
1451: field,
1452: arg_type,
1453: data,
1454: encoder,
1455: False
1456: )
+1457: except ValueError as exc:
__pyx_t_21 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(((PyTypeObject*)PyExc_ValueError)))); if (__pyx_t_21) { __Pyx_AddTraceback("datamodel.converters._parse_union_type", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_7, &__pyx_t_11, &__pyx_t_19) < 0) __PYX_ERR(0, 1457, __pyx_L147_except_error) __Pyx_XGOTREF(__pyx_t_7); __Pyx_XGOTREF(__pyx_t_11); __Pyx_XGOTREF(__pyx_t_19); __Pyx_INCREF(__pyx_t_11); __pyx_v_exc = ((PyObject*)__pyx_t_11); /*try:*/ { /* … */ /*finally:*/ { __pyx_L158_error:; /*exception exit:*/{ __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign __pyx_t_28 = 0; __pyx_t_27 = 0; __pyx_t_26 = 0; __pyx_t_25 = 0; __pyx_t_24 = 0; __pyx_t_23 = 0; __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_XDECREF(__pyx_t_16); __pyx_t_16 = 0; __Pyx_XDECREF(__pyx_t_30); __pyx_t_30 = 0; __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_ExceptionSwap(&__pyx_t_25, &__pyx_t_24, &__pyx_t_23); if ( unlikely(__Pyx_GetException(&__pyx_t_28, &__pyx_t_27, &__pyx_t_26) < 0)) __Pyx_ErrFetch(&__pyx_t_28, &__pyx_t_27, &__pyx_t_26); __Pyx_XGOTREF(__pyx_t_28); __Pyx_XGOTREF(__pyx_t_27); __Pyx_XGOTREF(__pyx_t_26); __Pyx_XGOTREF(__pyx_t_25); __Pyx_XGOTREF(__pyx_t_24); __Pyx_XGOTREF(__pyx_t_23); __pyx_t_21 = __pyx_lineno; __pyx_t_15 = __pyx_clineno; __pyx_t_22 = __pyx_filename; { __Pyx_DECREF(__pyx_v_exc); __pyx_v_exc = 0; } __Pyx_XGIVEREF(__pyx_t_25); __Pyx_XGIVEREF(__pyx_t_24); __Pyx_XGIVEREF(__pyx_t_23); __Pyx_ExceptionReset(__pyx_t_25, __pyx_t_24, __pyx_t_23); __Pyx_XGIVEREF(__pyx_t_28); __Pyx_XGIVEREF(__pyx_t_27); __Pyx_XGIVEREF(__pyx_t_26); __Pyx_ErrRestore(__pyx_t_28, __pyx_t_27, __pyx_t_26); __pyx_t_28 = 0; __pyx_t_27 = 0; __pyx_t_26 = 0; __pyx_t_25 = 0; __pyx_t_24 = 0; __pyx_t_23 = 0; __pyx_lineno = __pyx_t_21; __pyx_clineno = __pyx_t_15; __pyx_filename = __pyx_t_22; goto __pyx_L147_except_error; } __pyx_L155_continue: { __Pyx_DECREF(__pyx_v_exc); __pyx_v_exc = 0; goto __pyx_L153_except_continue; } } __pyx_L153_except_continue:; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __Pyx_XDECREF(__pyx_t_19); __pyx_t_19 = 0; goto __pyx_L151_try_continue; }
+1458: errors.append(f"{field.name}: {exc}")
__pyx_t_30 = __Pyx_PyObject_GetAttrStr(__pyx_v_field, __pyx_mstate_global->__pyx_n_u_name_2); if (unlikely(!__pyx_t_30)) __PYX_ERR(0, 1458, __pyx_L158_error) __Pyx_GOTREF(__pyx_t_30); __pyx_t_6 = __Pyx_PyObject_FormatSimple(__pyx_t_30, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1458, __pyx_L158_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_30); __pyx_t_30 = 0; __pyx_t_30 = __Pyx_PyObject_FormatSimple(__pyx_v_exc, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_30)) __PYX_ERR(0, 1458, __pyx_L158_error) __Pyx_GOTREF(__pyx_t_30); __pyx_t_34[0] = __pyx_t_6; __pyx_t_34[1] = __pyx_mstate_global->__pyx_kp_u__5; __pyx_t_34[2] = __pyx_t_30; __pyx_t_18 = 2; #if __Pyx_PyUnicode_Join_CAN_USE_KIND_AND_LENGTH __pyx_t_18 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_34[0]) + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_34[2]); #endif __pyx_t_21 = 0; #if __Pyx_PyUnicode_Join_CAN_USE_KIND_AND_LENGTH __pyx_t_21 |= __Pyx_PyUnicode_KIND_04(__pyx_t_34[0]) | __Pyx_PyUnicode_KIND_04(__pyx_t_34[2]); #endif __pyx_t_16 = __Pyx_PyUnicode_Join(__pyx_t_34, 3, __pyx_t_18, __pyx_t_21); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 1458, __pyx_L158_error) __Pyx_GOTREF(__pyx_t_16); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_30); __pyx_t_30 = 0; __pyx_t_20 = __Pyx_PyList_Append(__pyx_v_errors, __pyx_t_16); if (unlikely(__pyx_t_20 == ((int)-1))) __PYX_ERR(0, 1458, __pyx_L158_error) __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
+1459: continue
goto __pyx_L155_continue;
}
+1460: except Exception as exc:
__pyx_t_15 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(((PyTypeObject*)PyExc_Exception)))); if (__pyx_t_15) { __Pyx_AddTraceback("datamodel.converters._parse_union_type", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_19, &__pyx_t_11, &__pyx_t_7) < 0) __PYX_ERR(0, 1460, __pyx_L147_except_error) __Pyx_XGOTREF(__pyx_t_19); __Pyx_XGOTREF(__pyx_t_11); __Pyx_XGOTREF(__pyx_t_7); __Pyx_INCREF(__pyx_t_11); __pyx_v_exc = __pyx_t_11; /*try:*/ { /* … */ /*finally:*/ { __pyx_L169_error:; /*exception exit:*/{ __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign __pyx_t_23 = 0; __pyx_t_24 = 0; __pyx_t_25 = 0; __pyx_t_26 = 0; __pyx_t_27 = 0; __pyx_t_28 = 0; __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_XDECREF(__pyx_t_16); __pyx_t_16 = 0; __Pyx_XDECREF(__pyx_t_30); __pyx_t_30 = 0; __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_ExceptionSwap(&__pyx_t_26, &__pyx_t_27, &__pyx_t_28); if ( unlikely(__Pyx_GetException(&__pyx_t_23, &__pyx_t_24, &__pyx_t_25) < 0)) __Pyx_ErrFetch(&__pyx_t_23, &__pyx_t_24, &__pyx_t_25); __Pyx_XGOTREF(__pyx_t_23); __Pyx_XGOTREF(__pyx_t_24); __Pyx_XGOTREF(__pyx_t_25); __Pyx_XGOTREF(__pyx_t_26); __Pyx_XGOTREF(__pyx_t_27); __Pyx_XGOTREF(__pyx_t_28); __pyx_t_15 = __pyx_lineno; __pyx_t_21 = __pyx_clineno; __pyx_t_22 = __pyx_filename; { __Pyx_DECREF(__pyx_v_exc); __pyx_v_exc = 0; } __Pyx_XGIVEREF(__pyx_t_26); __Pyx_XGIVEREF(__pyx_t_27); __Pyx_XGIVEREF(__pyx_t_28); __Pyx_ExceptionReset(__pyx_t_26, __pyx_t_27, __pyx_t_28); __Pyx_XGIVEREF(__pyx_t_23); __Pyx_XGIVEREF(__pyx_t_24); __Pyx_XGIVEREF(__pyx_t_25); __Pyx_ErrRestore(__pyx_t_23, __pyx_t_24, __pyx_t_25); __pyx_t_23 = 0; __pyx_t_24 = 0; __pyx_t_25 = 0; __pyx_t_26 = 0; __pyx_t_27 = 0; __pyx_t_28 = 0; __pyx_lineno = __pyx_t_15; __pyx_clineno = __pyx_t_21; __pyx_filename = __pyx_t_22; goto __pyx_L147_except_error; } __pyx_L166_continue: { __Pyx_DECREF(__pyx_v_exc); __pyx_v_exc = 0; goto __pyx_L164_except_continue; } } __pyx_L164_except_continue:; __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; goto __pyx_L151_try_continue; } goto __pyx_L147_except_error;
+1461: errors.append(f"Parse Error on {field.name}, {arg_type}: {exc}")
__pyx_t_16 = __Pyx_PyObject_GetAttrStr(__pyx_v_field, __pyx_mstate_global->__pyx_n_u_name_2); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 1461, __pyx_L169_error) __Pyx_GOTREF(__pyx_t_16); __pyx_t_30 = __Pyx_PyObject_FormatSimple(__pyx_t_16, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_30)) __PYX_ERR(0, 1461, __pyx_L169_error) __Pyx_GOTREF(__pyx_t_30); __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; __pyx_t_16 = __Pyx_PyObject_FormatSimple(__pyx_v_arg_type, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 1461, __pyx_L169_error) __Pyx_GOTREF(__pyx_t_16); __pyx_t_6 = __Pyx_PyObject_FormatSimple(__pyx_v_exc, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1461, __pyx_L169_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_29[0] = __pyx_mstate_global->__pyx_kp_u_Parse_Error_on; __pyx_t_29[1] = __pyx_t_30; __pyx_t_29[2] = __pyx_mstate_global->__pyx_kp_u__7; __pyx_t_29[3] = __pyx_t_16; __pyx_t_29[4] = __pyx_mstate_global->__pyx_kp_u__5; __pyx_t_29[5] = __pyx_t_6; __pyx_t_18 = 19; #if __Pyx_PyUnicode_Join_CAN_USE_KIND_AND_LENGTH __pyx_t_18 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_29[1]) + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_29[3]) + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_29[5]); #endif __pyx_t_15 = 0; #if __Pyx_PyUnicode_Join_CAN_USE_KIND_AND_LENGTH __pyx_t_15 |= __Pyx_PyUnicode_KIND_04(__pyx_t_29[1]) | __Pyx_PyUnicode_KIND_04(__pyx_t_29[3]) | __Pyx_PyUnicode_KIND_04(__pyx_t_29[5]); #endif __pyx_t_10 = __Pyx_PyUnicode_Join(__pyx_t_29, 6, __pyx_t_18, __pyx_t_15); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1461, __pyx_L169_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_30); __pyx_t_30 = 0; __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_20 = __Pyx_PyList_Append(__pyx_v_errors, __pyx_t_10); if (unlikely(__pyx_t_20 == ((int)-1))) __PYX_ERR(0, 1461, __pyx_L169_error) __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
+1462: continue
goto __pyx_L166_continue;
}
1463:
1464: # If we get here, all union attempts failed
+1465: if errors:
{
Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_v_errors);
if (unlikely(((!CYTHON_ASSUME_SAFE_SIZE) && __pyx_temp < 0))) __PYX_ERR(0, 1465, __pyx_L1_error)
__pyx_t_2 = (__pyx_temp != 0);
}
if (unlikely(__pyx_t_2)) {
/* … */
}
+1466: error_msg = f"All Union types failed for {field_name}. Errors: " + "; ".join(errors)
__pyx_t_1 = __Pyx_PyUnicode_Unicode(__pyx_v_field_name); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1466, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_34[0] = __pyx_mstate_global->__pyx_kp_u_All_Union_types_failed_for; __pyx_t_34[1] = __pyx_t_1; __pyx_t_34[2] = __pyx_mstate_global->__pyx_kp_u_Errors; __pyx_t_4 = 37; #if __Pyx_PyUnicode_Join_CAN_USE_KIND_AND_LENGTH __pyx_t_4 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_34[1]); #endif __pyx_t_21 = 0; #if __Pyx_PyUnicode_Join_CAN_USE_KIND_AND_LENGTH __pyx_t_21 |= __Pyx_PyUnicode_KIND_04(__pyx_t_34[1]); #endif __pyx_t_7 = __Pyx_PyUnicode_Join(__pyx_t_34, 3, __pyx_t_4, __pyx_t_21); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1466, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = PyUnicode_Join(__pyx_mstate_global->__pyx_kp_u__8, __pyx_v_errors); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1466, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_11 = __Pyx_PyUnicode_Concat__Pyx_ReferenceSharing_OwnStrongReferenceInPlace(__pyx_t_7, __pyx_t_1); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1466, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_v_error_msg = ((PyObject*)__pyx_t_11); __pyx_t_11 = 0;
+1467: raise ValueError(error_msg)
__pyx_t_1 = NULL;
__pyx_t_8 = 1;
{
PyObject *__pyx_callargs[2] = {__pyx_t_1, __pyx_v_error_msg};
__pyx_t_11 = __Pyx_PyObject_FastCall((PyObject*)(((PyTypeObject*)PyExc_ValueError)), __pyx_callargs+__pyx_t_8, (2-__pyx_t_8) | (__pyx_t_8*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
__Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1467, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_11);
}
__Pyx_Raise(__pyx_t_11, 0, 0, 0);
__Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
__PYX_ERR(0, 1467, __pyx_L1_error)
1468: else:
+1469: raise ValueError(
/*else*/ {
__pyx_t_1 = NULL;
+1470: f"Invalid type for {field_name} with data={data}, no matching type found"
__pyx_t_7 = __Pyx_PyUnicode_Unicode(__pyx_v_field_name); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1470, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_19 = __Pyx_PyObject_FormatSimple(__pyx_v_data, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 1470, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_19); __pyx_t_35[0] = __pyx_mstate_global->__pyx_kp_u_Invalid_type_for_2; __pyx_t_35[1] = __pyx_t_7; __pyx_t_35[2] = __pyx_mstate_global->__pyx_kp_u_with_data; __pyx_t_35[3] = __pyx_t_19; __pyx_t_35[4] = __pyx_mstate_global->__pyx_kp_u_no_matching_type_found; __pyx_t_4 = 52; #if __Pyx_PyUnicode_Join_CAN_USE_KIND_AND_LENGTH __pyx_t_4 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_35[1]) + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_35[3]); #endif __pyx_t_21 = 0; #if __Pyx_PyUnicode_Join_CAN_USE_KIND_AND_LENGTH __pyx_t_21 |= __Pyx_PyUnicode_KIND_04(__pyx_t_35[1]) | __Pyx_PyUnicode_KIND_04(__pyx_t_35[3]); #endif __pyx_t_10 = __Pyx_PyUnicode_Join(__pyx_t_35, 5, __pyx_t_4, __pyx_t_21); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1470, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; __pyx_t_8 = 1; { PyObject *__pyx_callargs[2] = {__pyx_t_1, __pyx_t_10}; __pyx_t_11 = __Pyx_PyObject_FastCall((PyObject*)(((PyTypeObject*)PyExc_ValueError)), __pyx_callargs+__pyx_t_8, (2-__pyx_t_8) | (__pyx_t_8*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1469, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); } __Pyx_Raise(__pyx_t_11, 0, 0, 0); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __PYX_ERR(0, 1469, __pyx_L1_error) }
1471: )
1472:
+1473: cdef object _parse_type(
static PyObject *__pyx_f_9datamodel_10converters__parse_type(PyObject *__pyx_v_field, PyObject *__pyx_v_T, PyObject *__pyx_v_data, struct __pyx_opt_args_9datamodel_10converters__parse_type *__pyx_optional_args) {
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_2);
__Pyx_XDECREF(__pyx_t_3);
__Pyx_AddTraceback("datamodel.converters._parse_type", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = 0;
__pyx_L0:;
__Pyx_XDECREF(__pyx_v_origin);
__Pyx_XDECREF(__pyx_v_targs);
__Pyx_XDECREF(__pyx_v_name);
__Pyx_XDECREF(__pyx_v_sub);
__Pyx_XDECREF(__pyx_v_result);
__Pyx_XDECREF(__pyx_v_isdc);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
struct __pyx_opt_args_9datamodel_10converters__parse_type {
int __pyx_n;
PyObject *encoder;
PyObject *as_objects;
};
1474: object field,
1475: object T,
1476: object data,
+1477: object encoder=None,
PyObject *__pyx_v_encoder = ((PyObject *)Py_None);
+1478: object as_objects=False,
PyObject *__pyx_v_as_objects = ((PyObject *)Py_False);
PyObject *__pyx_v_origin = 0;
PyObject *__pyx_v_targs = 0;
PyObject *__pyx_v_name = 0;
CYTHON_UNUSED PyObject *__pyx_v_sub = 0;
PyObject *__pyx_v_result = 0;
PyObject *__pyx_v_isdc = 0;
PyObject *__pyx_r = NULL;
if (__pyx_optional_args) {
if (__pyx_optional_args->__pyx_n > 0) {
__pyx_v_encoder = __pyx_optional_args->encoder;
if (__pyx_optional_args->__pyx_n > 1) {
__pyx_v_as_objects = __pyx_optional_args->as_objects;
}
}
}
1479: ):
1480: """
1481: Parse a value to a typing type.
1482: """
1483: # local cdef variables:
+1484: cdef object origin = get_origin(T)
__pyx_t_2 = NULL; __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_get_origin); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1484, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = 1; #if CYTHON_UNPACK_METHODS if (unlikely(PyMethod_Check(__pyx_t_3))) { __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3); assert(__pyx_t_2); PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(__pyx__function); __Pyx_DECREF_SET(__pyx_t_3, __pyx__function); __pyx_t_4 = 0; } #endif { PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_v_T}; __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_3, __pyx_callargs+__pyx_t_4, (2-__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, 1484, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } __pyx_v_origin = __pyx_t_1; __pyx_t_1 = 0;
+1485: cdef object targs = get_args(T)
__pyx_t_3 = NULL; __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_get_args); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1485, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_4 = 1; #if CYTHON_UNPACK_METHODS if (unlikely(PyMethod_Check(__pyx_t_2))) { __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); assert(__pyx_t_3); PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(__pyx__function); __Pyx_DECREF_SET(__pyx_t_2, __pyx__function); __pyx_t_4 = 0; } #endif { PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_v_T}; __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_2, __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_2); __pyx_t_2 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1485, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } __pyx_v_targs = __pyx_t_1; __pyx_t_1 = 0;
+1486: cdef object name = getattr(T, '_name', None) # T._name or None if not present
__pyx_t_1 = __Pyx_GetAttr3(__pyx_v_T, __pyx_mstate_global->__pyx_n_u_name_3, Py_None); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1486, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_name = __pyx_t_1; __pyx_t_1 = 0;
+1487: cdef object sub = None # for subtypes, local cache
__Pyx_INCREF(Py_None);
__pyx_v_sub = Py_None;
+1488: cdef object result = None
__Pyx_INCREF(Py_None);
__pyx_v_result = Py_None;
+1489: cdef object isdc = is_dc(T)
__pyx_t_5 = __pyx_f_9datamodel_10converters_is_dc(__pyx_v_T); if (unlikely(__pyx_t_5 == ((int)-1) && PyErr_Occurred())) __PYX_ERR(0, 1489, __pyx_L1_error) __pyx_t_1 = __Pyx_PyBool_FromLong(__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1489, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_isdc = __pyx_t_1; __pyx_t_1 = 0;
1490:
+1491: if data is None:
__pyx_t_5 = (__pyx_v_data == Py_None);
if (__pyx_t_5) {
/* … */
}
+1492: return None
{
PyObject *__pyx_temp;
{
__pyx_temp = __pyx_r;
__pyx_r = Py_None; __Pyx_INCREF(Py_None);
}
__Pyx_XDECREF(__pyx_temp);
}
goto __pyx_L0;
1493:
+1494: if isdc:
__pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_v_isdc); if (unlikely((__pyx_t_5 < 0))) __PYX_ERR(0, 1494, __pyx_L1_error) if (__pyx_t_5) { /* … */ }
+1495: return _handle_dataclass_type(None, name, data, T, as_objects, None)
__pyx_t_1 = __pyx_v_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, 1495, __pyx_L1_error)
__pyx_t_6.__pyx_n = 2;
__pyx_t_6.as_objects = __pyx_v_as_objects;
__pyx_t_6.parent = Py_None;
__pyx_t_2 = __pyx_f_9datamodel_10converters__handle_dataclass_type(Py_None, ((PyObject*)__pyx_t_1), __pyx_v_data, __pyx_v_T, &__pyx_t_6); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1495, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
{
PyObject *__pyx_temp;
{
__pyx_temp = __pyx_r;
__pyx_r = __pyx_t_2;
}
__Pyx_XDECREF(__pyx_temp);
}
__pyx_t_2 = 0;
goto __pyx_L0;
1496: # Field type shortcuts
+1497: elif origin is dict and isinstance(data, dict):
__pyx_t_7 = (__pyx_v_origin == ((PyObject *)(&PyDict_Type)));
if (__pyx_t_7) {
} else {
__pyx_t_5 = __pyx_t_7;
goto __pyx_L5_bool_binop_done;
}
__pyx_t_7 = PyDict_Check(__pyx_v_data);
__pyx_t_5 = __pyx_t_7;
__pyx_L5_bool_binop_done:;
if (__pyx_t_5) {
/* … */
}
+1498: return _parse_dict_type(field, T, data, encoder, targs)
__pyx_t_2 = __pyx_f_9datamodel_10converters__parse_dict_type(__pyx_v_field, __pyx_v_T, __pyx_v_data, __pyx_v_encoder, __pyx_v_targs); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1498, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; __pyx_r = __pyx_t_2; } __Pyx_XDECREF(__pyx_temp); } __pyx_t_2 = 0; goto __pyx_L0;
+1499: elif origin is list:
__pyx_t_5 = (__pyx_v_origin == ((PyObject *)(&PyList_Type)));
if (__pyx_t_5) {
/* … */
}
+1500: return _parse_list_type(field, T, data, encoder, targs)
__pyx_t_2 = __pyx_f_9datamodel_10converters__parse_list_type(__pyx_v_field, __pyx_v_T, __pyx_v_data, __pyx_v_encoder, __pyx_v_targs, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1500, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; __pyx_r = __pyx_t_2; } __Pyx_XDECREF(__pyx_temp); } __pyx_t_2 = 0; goto __pyx_L0;
+1501: elif origin is tuple:
__pyx_t_5 = (__pyx_v_origin == ((PyObject *)(&PyTuple_Type)));
if (__pyx_t_5) {
/* … */
}
+1502: return _parse_tuple_type(field, T, data, encoder, targs)
__pyx_t_2 = __pyx_f_9datamodel_10converters__parse_tuple_type(__pyx_v_field, __pyx_v_T, __pyx_v_data, __pyx_v_encoder, __pyx_v_targs); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1502, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; __pyx_r = __pyx_t_2; } __Pyx_XDECREF(__pyx_temp); } __pyx_t_2 = 0; goto __pyx_L0;
+1503: elif origin is set:
__pyx_t_5 = (__pyx_v_origin == ((PyObject *)(&PySet_Type)));
if (__pyx_t_5) {
/* … */
}
1504: # Handle Sets - convert lists to sets
+1505: if isinstance(data, (list, tuple)):
__pyx_t_7 = PyList_Check(__pyx_v_data); if (!__pyx_t_7) { } else { __pyx_t_5 = __pyx_t_7; goto __pyx_L8_bool_binop_done; } __pyx_t_7 = PyTuple_Check(__pyx_v_data); __pyx_t_5 = __pyx_t_7; __pyx_L8_bool_binop_done:; if (__pyx_t_5) { /* … */ }
+1506: return set(data) # Convert list/tuple to set
__pyx_t_2 = PySet_New(__pyx_v_data); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1506, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; __pyx_r = __pyx_t_2; } __Pyx_XDECREF(__pyx_temp); } __pyx_t_2 = 0; goto __pyx_L0;
+1507: elif isinstance(data, set):
__pyx_t_5 = PySet_Check(__pyx_v_data);
if (__pyx_t_5) {
/* … */
}
+1508: return data
{
PyObject *__pyx_temp;
{
__pyx_temp = __pyx_r;
__Pyx_INCREF(__pyx_v_data);
__pyx_r = __pyx_v_data;
}
__Pyx_XDECREF(__pyx_temp);
}
goto __pyx_L0;
1509: else:
+1510: return {data} if data is not None else set() # Wrap single value in set
/*else*/ {
__pyx_t_5 = (__pyx_v_data != Py_None);
if (__pyx_t_5) {
__pyx_t_1 = PySet_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1510, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
if (PySet_Add(__pyx_t_1, __pyx_v_data) < (0)) __PYX_ERR(0, 1510, __pyx_L1_error)
__pyx_t_2 = __pyx_t_1;
__pyx_t_1 = 0;
} else {
__pyx_t_1 = PySet_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1510, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_2 = __pyx_t_1;
__pyx_t_1 = 0;
}
{
PyObject *__pyx_temp;
{
__pyx_temp = __pyx_r;
__pyx_r = __pyx_t_2;
}
__Pyx_XDECREF(__pyx_temp);
}
__pyx_t_2 = 0;
goto __pyx_L0;
}
+1511: elif origin is frozenset:
__pyx_t_5 = (__pyx_v_origin == ((PyObject *)(&PyFrozenSet_Type)));
if (__pyx_t_5) {
/* … */
}
1512: # Handle Frozensets - convert lists to frozensets
+1513: if isinstance(data, (list, tuple)):
__pyx_t_7 = PyList_Check(__pyx_v_data); if (!__pyx_t_7) { } else { __pyx_t_5 = __pyx_t_7; goto __pyx_L11_bool_binop_done; } __pyx_t_7 = PyTuple_Check(__pyx_v_data); __pyx_t_5 = __pyx_t_7; __pyx_L11_bool_binop_done:; if (__pyx_t_5) { /* … */ }
+1514: return frozenset(data) # Convert list/tuple to frozenset
__pyx_t_2 = __Pyx_PyFrozenSet_New(__pyx_v_data); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1514, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; __pyx_r = __pyx_t_2; } __Pyx_XDECREF(__pyx_temp); } __pyx_t_2 = 0; goto __pyx_L0;
+1515: elif isinstance(data, frozenset):
__pyx_t_5 = PyFrozenSet_Check(__pyx_v_data);
if (__pyx_t_5) {
/* … */
}
+1516: return data
{
PyObject *__pyx_temp;
{
__pyx_temp = __pyx_r;
__Pyx_INCREF(__pyx_v_data);
__pyx_r = __pyx_v_data;
}
__Pyx_XDECREF(__pyx_temp);
}
goto __pyx_L0;
1517: else:
+1518: return frozenset([data]) if data is not None else frozenset() # Wrap single value in frozenset
/*else*/ {
__pyx_t_5 = (__pyx_v_data != Py_None);
if (__pyx_t_5) {
{
PyObject* const __pyx_temp[] = {__pyx_v_data};
__pyx_t_1 = __Pyx_PyFrozenSet_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1518, __pyx_L1_error)
}
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_2 = __pyx_t_1;
__pyx_t_1 = 0;
} else {
__Pyx_INCREF(__pyx_mstate_global->__pyx_frozenset[0]);
__pyx_t_2 = __pyx_mstate_global->__pyx_frozenset[0];
}
{
PyObject *__pyx_temp;
{
__pyx_temp = __pyx_r;
__pyx_r = __pyx_t_2;
}
__Pyx_XDECREF(__pyx_temp);
}
__pyx_t_2 = 0;
goto __pyx_L0;
}
/* … */
__pyx_mstate_global->__pyx_frozenset[0] = PyFrozenSet_New(NULL); if (unlikely(!__pyx_mstate_global->__pyx_frozenset[0])) __PYX_ERR(0, 1518, __pyx_L1_error)
+1519: elif origin is not None:
__pyx_t_5 = (__pyx_v_origin != Py_None);
if (__pyx_t_5) {
/* … */
}
+1520: if T in (int, float, str, bool) or T in encoders:
__Pyx_INCREF(__pyx_v_T); __pyx_t_2 = __pyx_v_T; __pyx_t_8 = __Pyx_PyObject_RichCompareBool(__pyx_t_2, ((PyObject *)(&PyLong_Type)), Py_EQ); if (unlikely((__pyx_t_8 < 0))) __PYX_ERR(0, 1520, __pyx_L1_error) if (!__pyx_t_8) { } else { __pyx_t_7 = __pyx_t_8; goto __pyx_L16_bool_binop_done; } __pyx_t_8 = __Pyx_PyObject_RichCompareBool(__pyx_t_2, ((PyObject *)(&PyFloat_Type)), Py_EQ); if (unlikely((__pyx_t_8 < 0))) __PYX_ERR(0, 1520, __pyx_L1_error) if (!__pyx_t_8) { } else { __pyx_t_7 = __pyx_t_8; goto __pyx_L16_bool_binop_done; } __pyx_t_8 = __Pyx_PyObject_RichCompareBool(__pyx_t_2, ((PyObject *)(&PyUnicode_Type)), Py_EQ); if (unlikely((__pyx_t_8 < 0))) __PYX_ERR(0, 1520, __pyx_L1_error) if (!__pyx_t_8) { } else { __pyx_t_7 = __pyx_t_8; goto __pyx_L16_bool_binop_done; } __pyx_t_8 = __Pyx_PyObject_RichCompareBool(__pyx_t_2, ((PyObject *)(&PyBool_Type)), Py_EQ); if (unlikely((__pyx_t_8 < 0))) __PYX_ERR(0, 1520, __pyx_L1_error) __pyx_t_7 = __pyx_t_8; __pyx_L16_bool_binop_done:; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_8 = __pyx_t_7; if (!__pyx_t_8) { } else { __pyx_t_5 = __pyx_t_8; goto __pyx_L14_bool_binop_done; } __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_encoders); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1520, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_8 = (__Pyx_PySequence_ContainsTF(__pyx_v_T, __pyx_t_2, Py_EQ)); if (unlikely((__pyx_t_8 < 0))) __PYX_ERR(0, 1520, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_5 = __pyx_t_8; __pyx_L14_bool_binop_done:; if (__pyx_t_5) { /* … */ }
+1521: return _parse_builtin_type(field, T, data, encoder)
__pyx_t_2 = __pyx_f_9datamodel_10converters__parse_builtin_type(__pyx_v_field, __pyx_v_T, __pyx_v_data, __pyx_v_encoder); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1521, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; __pyx_r = __pyx_t_2; } __Pyx_XDECREF(__pyx_temp); } __pyx_t_2 = 0; goto __pyx_L0;
+1522: return data
{
PyObject *__pyx_temp;
{
__pyx_temp = __pyx_r;
__Pyx_INCREF(__pyx_v_data);
__pyx_r = __pyx_v_data;
}
__Pyx_XDECREF(__pyx_temp);
}
goto __pyx_L0;
+1523: elif T is set:
__pyx_t_5 = (__pyx_v_T == ((PyObject *)(&PySet_Type)));
if (__pyx_t_5) {
/* … */
}
1524: # Handle bare 'set' type
+1525: if isinstance(data, (list, tuple)):
__pyx_t_8 = PyList_Check(__pyx_v_data); if (!__pyx_t_8) { } else { __pyx_t_5 = __pyx_t_8; goto __pyx_L21_bool_binop_done; } __pyx_t_8 = PyTuple_Check(__pyx_v_data); __pyx_t_5 = __pyx_t_8; __pyx_L21_bool_binop_done:; if (__pyx_t_5) { /* … */ }
+1526: return set(data) # Convert list/tuple to set
__pyx_t_2 = PySet_New(__pyx_v_data); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1526, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; __pyx_r = __pyx_t_2; } __Pyx_XDECREF(__pyx_temp); } __pyx_t_2 = 0; goto __pyx_L0;
+1527: elif isinstance(data, set):
__pyx_t_5 = PySet_Check(__pyx_v_data);
if (__pyx_t_5) {
/* … */
}
+1528: return data
{
PyObject *__pyx_temp;
{
__pyx_temp = __pyx_r;
__Pyx_INCREF(__pyx_v_data);
__pyx_r = __pyx_v_data;
}
__Pyx_XDECREF(__pyx_temp);
}
goto __pyx_L0;
1529: else:
+1530: return {data} if data is not None else set()
/*else*/ {
__pyx_t_5 = (__pyx_v_data != Py_None);
if (__pyx_t_5) {
__pyx_t_1 = PySet_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1530, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
if (PySet_Add(__pyx_t_1, __pyx_v_data) < (0)) __PYX_ERR(0, 1530, __pyx_L1_error)
__pyx_t_2 = __pyx_t_1;
__pyx_t_1 = 0;
} else {
__pyx_t_1 = PySet_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1530, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_2 = __pyx_t_1;
__pyx_t_1 = 0;
}
{
PyObject *__pyx_temp;
{
__pyx_temp = __pyx_r;
__pyx_r = __pyx_t_2;
}
__Pyx_XDECREF(__pyx_temp);
}
__pyx_t_2 = 0;
goto __pyx_L0;
}
1531: else:
1532: # fallback to builtin parse
+1533: result = _parse_builtin_type(field, T, data, encoder)
/*else*/ {
__pyx_t_2 = __pyx_f_9datamodel_10converters__parse_builtin_type(__pyx_v_field, __pyx_v_T, __pyx_v_data, __pyx_v_encoder); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1533, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF_SET(__pyx_v_result, __pyx_t_2);
__pyx_t_2 = 0;
+1534: return result
{
PyObject *__pyx_temp;
{
__pyx_temp = __pyx_r;
__Pyx_INCREF(__pyx_v_result);
__pyx_r = __pyx_v_result;
}
__Pyx_XDECREF(__pyx_temp);
}
goto __pyx_L0;
}
1535:
+1536: cdef object _parse_typing(
static PyObject *__pyx_f_9datamodel_10converters__parse_typing(PyObject *__pyx_v_field, PyObject *__pyx_v_T, PyObject *__pyx_v_data, struct __pyx_opt_args_9datamodel_10converters__parse_typing *__pyx_optional_args) {
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_4);
__Pyx_XDECREF(__pyx_t_5);
__Pyx_XDECREF(__pyx_t_15);
__Pyx_XDECREF(__pyx_t_16);
__Pyx_XDECREF(__pyx_t_17);
__Pyx_XDECREF(__pyx_t_18);
__Pyx_XDECREF(__pyx_t_20);
__Pyx_AddTraceback("datamodel.converters._parse_typing", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = 0;
__pyx_L0:;
__Pyx_XDECREF(__pyx_v_origin);
__Pyx_XDECREF(__pyx_v_targs);
__Pyx_XDECREF(__pyx_v_name);
__Pyx_XDECREF(__pyx_v_sub);
__Pyx_XDECREF(__pyx_v_result);
__Pyx_XDECREF(__pyx_v_inner_type);
__Pyx_XDECREF(__pyx_v_inner_origin);
__Pyx_XDECREF(__pyx_v_real_type);
__Pyx_XDECREF(__pyx_v_e);
__Pyx_XDECREF(__pyx_v_item);
__Pyx_XDECREF(__pyx_v_converted_item);
__Pyx_XDECREF(__pyx_v_set_data);
__Pyx_XDECREF(__pyx_v_processed_set);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
struct __pyx_opt_args_9datamodel_10converters__parse_typing {
int __pyx_n;
PyObject *encoder;
PyObject *as_objects;
PyObject *parent;
};
1537: object field,
1538: object T,
1539: object data,
+1540: object encoder=None,
PyObject *__pyx_v_encoder = ((PyObject *)Py_None);
+1541: object as_objects=False,
PyObject *__pyx_v_as_objects = ((PyObject *)Py_False);
+1542: object parent=None,
PyObject *__pyx_v_parent = ((PyObject *)Py_None);
PyObject *__pyx_v_origin = 0;
PyObject *__pyx_v_targs = 0;
PyObject *__pyx_v_name = 0;
CYTHON_UNUSED PyObject *__pyx_v_sub = 0;
PyObject *__pyx_v_result = 0;
PyObject *__pyx_v_inner_type = 0;
int __pyx_v_inner_is_dc;
CYTHON_UNUSED PyObject *__pyx_v_inner_origin = NULL;
PyObject *__pyx_v_real_type = NULL;
PyObject *__pyx_v_e = NULL;
PyObject *__pyx_v_item = NULL;
PyObject *__pyx_v_converted_item = NULL;
PyObject *__pyx_v_set_data = NULL;
PyObject *__pyx_v_processed_set = NULL;
PyObject *__pyx_r = NULL;
if (__pyx_optional_args) {
if (__pyx_optional_args->__pyx_n > 0) {
__pyx_v_encoder = __pyx_optional_args->encoder;
if (__pyx_optional_args->__pyx_n > 1) {
__pyx_v_as_objects = __pyx_optional_args->as_objects;
if (__pyx_optional_args->__pyx_n > 2) {
__pyx_v_parent = __pyx_optional_args->parent;
}
}
}
}
1543: ):
1544: """
1545: Parse a value to a typing type.
1546: """
1547: # local cdef variables:
1548: cdef object origin, targs
+1549: cdef object name = getattr(T, '_name', None) # T._name or None if not present
__pyx_t_1 = __Pyx_GetAttr3(__pyx_v_T, __pyx_mstate_global->__pyx_n_u_name_3, Py_None); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1549, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_name = __pyx_t_1; __pyx_t_1 = 0;
+1550: cdef object sub = None # for subtypes, local cache
__Pyx_INCREF(Py_None);
__pyx_v_sub = Py_None;
+1551: cdef object result = None
__Pyx_INCREF(Py_None);
__pyx_v_result = Py_None;
+1552: cdef object inner_type = None
__Pyx_INCREF(Py_None);
__pyx_v_inner_type = Py_None;
+1553: cdef bint inner_is_dc = 0 # field._inner_is_dc or is_dataclass(inner_type)
__pyx_v_inner_is_dc = 0;
1554:
+1555: if data is None:
__pyx_t_2 = (__pyx_v_data == Py_None);
if (__pyx_t_2) {
/* … */
}
+1556: return None # no data, short-circuiting
{
PyObject *__pyx_temp;
{
__pyx_temp = __pyx_r;
__pyx_r = Py_None; __Pyx_INCREF(Py_None);
}
__Pyx_XDECREF(__pyx_temp);
}
goto __pyx_L0;
1557:
1558: # Use cached values only if T is exactly the field's declared type.
+1559: if T == field.type:
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_field, __pyx_mstate_global->__pyx_n_u_type_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1559, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_PyObject_CompareBoolEq_object_object(__pyx_v_T, __pyx_t_1, Py_EQ); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 1559, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_2) { /* … */ goto __pyx_L4; }
+1560: origin = field.origin
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_field, __pyx_mstate_global->__pyx_n_u_origin_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1560, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_origin = __pyx_t_1; __pyx_t_1 = 0;
+1561: targs = field.args
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_field, __pyx_mstate_global->__pyx_n_u_args_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1561, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_targs = __pyx_t_1; __pyx_t_1 = 0;
+1562: elif field._inner_type and field._inner_type == inner_type:
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_field, __pyx_mstate_global->__pyx_n_u_inner_type); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1562, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_3 < 0))) __PYX_ERR(0, 1562, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_3) { } else { __pyx_t_2 = __pyx_t_3; goto __pyx_L5_bool_binop_done; } __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_field, __pyx_mstate_global->__pyx_n_u_inner_type); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1562, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = __Pyx_PyObject_CompareBoolEq_object_object(__pyx_t_1, __pyx_v_inner_type, Py_EQ); if (unlikely((__pyx_t_3 < 0))) __PYX_ERR(0, 1562, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_2 = __pyx_t_3; __pyx_L5_bool_binop_done:; if (__pyx_t_2) { /* … */ goto __pyx_L4; }
+1563: origin = field._inner_origin
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_field, __pyx_mstate_global->__pyx_n_u_inner_origin); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1563, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_origin = __pyx_t_1; __pyx_t_1 = 0;
+1564: targs = field._inner_args
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_field, __pyx_mstate_global->__pyx_n_u_inner_args); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1564, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_targs = __pyx_t_1; __pyx_t_1 = 0;
1565: else:
+1566: origin = get_origin(T)
/*else*/ {
__pyx_t_4 = NULL;
__Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_get_origin); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1566, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__pyx_t_6 = 1;
#if CYTHON_UNPACK_METHODS
if (unlikely(PyMethod_Check(__pyx_t_5))) {
__pyx_t_4 = PyMethod_GET_SELF(__pyx_t_5);
assert(__pyx_t_4);
PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_5);
__Pyx_INCREF(__pyx_t_4);
__Pyx_INCREF(__pyx__function);
__Pyx_DECREF_SET(__pyx_t_5, __pyx__function);
__pyx_t_6 = 0;
}
#endif
{
PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_v_T};
__pyx_t_1 = __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_1)) __PYX_ERR(0, 1566, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
}
__pyx_v_origin = __pyx_t_1;
__pyx_t_1 = 0;
+1567: targs = get_args(T)
__pyx_t_5 = NULL;
__Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_get_args); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1567, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__pyx_t_6 = 1;
#if CYTHON_UNPACK_METHODS
if (unlikely(PyMethod_Check(__pyx_t_4))) {
__pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4);
assert(__pyx_t_5);
PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4);
__Pyx_INCREF(__pyx_t_5);
__Pyx_INCREF(__pyx__function);
__Pyx_DECREF_SET(__pyx_t_4, __pyx__function);
__pyx_t_6 = 0;
}
#endif
{
PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_v_T};
__pyx_t_1 = __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_1)) __PYX_ERR(0, 1567, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
}
__pyx_v_targs = __pyx_t_1;
__pyx_t_1 = 0;
}
__pyx_L4:;
1568:
1569: # For generic (typing) fields, reuse cached inner type info if available.
+1570: if origin in (list, set, frozenset) and targs:
__Pyx_INCREF(__pyx_v_origin); __pyx_t_1 = __pyx_v_origin; __pyx_t_7 = __Pyx_PyObject_RichCompareBool(__pyx_t_1, ((PyObject *)(&PyList_Type)), Py_EQ); if (unlikely((__pyx_t_7 < 0))) __PYX_ERR(0, 1570, __pyx_L1_error) if (!__pyx_t_7) { } else { __pyx_t_3 = __pyx_t_7; goto __pyx_L10_bool_binop_done; } __pyx_t_7 = __Pyx_PyObject_RichCompareBool(__pyx_t_1, ((PyObject *)(&PySet_Type)), Py_EQ); if (unlikely((__pyx_t_7 < 0))) __PYX_ERR(0, 1570, __pyx_L1_error) if (!__pyx_t_7) { } else { __pyx_t_3 = __pyx_t_7; goto __pyx_L10_bool_binop_done; } __pyx_t_7 = __Pyx_PyObject_RichCompareBool(__pyx_t_1, ((PyObject *)(&PyFrozenSet_Type)), Py_EQ); if (unlikely((__pyx_t_7 < 0))) __PYX_ERR(0, 1570, __pyx_L1_error) __pyx_t_3 = __pyx_t_7; __pyx_L10_bool_binop_done:; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_7 = __pyx_t_3; if (__pyx_t_7) { } else { __pyx_t_2 = __pyx_t_7; goto __pyx_L8_bool_binop_done; } __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_v_targs); if (unlikely((__pyx_t_7 < 0))) __PYX_ERR(0, 1570, __pyx_L1_error) __pyx_t_2 = __pyx_t_7; __pyx_L8_bool_binop_done:; if (__pyx_t_2) { /* … */ goto __pyx_L7; }
+1571: if field._inner_type is not None:
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_field, __pyx_mstate_global->__pyx_n_u_inner_type); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1571, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = (__pyx_t_1 != Py_None); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_2) { /* … */ goto __pyx_L13; }
+1572: inner_type = field._inner_type
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_field, __pyx_mstate_global->__pyx_n_u_inner_type); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1572, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_inner_type, __pyx_t_1); __pyx_t_1 = 0;
+1573: inner_origin = field._inner_origin
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_field, __pyx_mstate_global->__pyx_n_u_inner_origin); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1573, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_inner_origin = __pyx_t_1; __pyx_t_1 = 0;
1574: # Optionally, also use cached type arguments for the inner type.
1575: else:
+1576: inner_type = targs[0] if targs else Any
/*else*/ {
__pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_targs); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 1576, __pyx_L1_error)
if (__pyx_t_2) {
__pyx_t_4 = __Pyx_GetItemInt(__pyx_v_targs, 0, long, 1, __Pyx_PyLong_From_long, 0, 1, 1, __Pyx_ReferenceSharing_OwnStrongReference); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1576, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__pyx_t_1 = __pyx_t_4;
__pyx_t_4 = 0;
} else {
__Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_Any); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1576, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__pyx_t_1 = __pyx_t_4;
__pyx_t_4 = 0;
}
__Pyx_DECREF_SET(__pyx_v_inner_type, __pyx_t_1);
__pyx_t_1 = 0;
+1577: inner_origin = get_origin(inner_type)
__pyx_t_4 = NULL;
__Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_get_origin); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1577, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__pyx_t_6 = 1;
#if CYTHON_UNPACK_METHODS
if (unlikely(PyMethod_Check(__pyx_t_5))) {
__pyx_t_4 = PyMethod_GET_SELF(__pyx_t_5);
assert(__pyx_t_4);
PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_5);
__Pyx_INCREF(__pyx_t_4);
__Pyx_INCREF(__pyx__function);
__Pyx_DECREF_SET(__pyx_t_5, __pyx__function);
__pyx_t_6 = 0;
}
#endif
{
PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_v_inner_type};
__pyx_t_1 = __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_1)) __PYX_ERR(0, 1577, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
}
__pyx_v_inner_origin = __pyx_t_1;
__pyx_t_1 = 0;
}
__pyx_L13:;
1578: else:
+1579: inner_type = None
/*else*/ {
__Pyx_INCREF(Py_None);
__Pyx_DECREF_SET(__pyx_v_inner_type, Py_None);
+1580: inner_origin = None
__Pyx_INCREF(Py_None);
__pyx_v_inner_origin = Py_None;
}
__pyx_L7:;
1581:
+1582: inner_is_dc = field._inner_is_dc or is_dc(inner_type)
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_field, __pyx_mstate_global->__pyx_n_u_inner_is_dc); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1582, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_7 < 0))) __PYX_ERR(0, 1582, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (!__pyx_t_7) { } else { __pyx_t_2 = __pyx_t_7; goto __pyx_L14_bool_binop_done; } __pyx_t_7 = __pyx_f_9datamodel_10converters_is_dc(__pyx_v_inner_type); if (unlikely(__pyx_t_7 == ((int)-1) && PyErr_Occurred())) __PYX_ERR(0, 1582, __pyx_L1_error) __pyx_t_2 = __pyx_t_7; __pyx_L14_bool_binop_done:; __pyx_v_inner_is_dc = __pyx_t_2;
1583:
1584: # Put more frequently cases first:
+1585: if field.is_dc or is_dc(T):
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_field, __pyx_mstate_global->__pyx_n_u_is_dc); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1585, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_7 < 0))) __PYX_ERR(0, 1585, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (!__pyx_t_7) { } else { __pyx_t_2 = __pyx_t_7; goto __pyx_L17_bool_binop_done; } __pyx_t_7 = __pyx_f_9datamodel_10converters_is_dc(__pyx_v_T); if (unlikely(__pyx_t_7 == ((int)-1) && PyErr_Occurred())) __PYX_ERR(0, 1585, __pyx_L1_error) __pyx_t_2 = __pyx_t_7; __pyx_L17_bool_binop_done:; if (__pyx_t_2) { /* … */ }
+1586: return _handle_dataclass_type(None, name, data, T, as_objects, None)
__pyx_t_1 = __pyx_v_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, 1586, __pyx_L1_error)
__pyx_t_8.__pyx_n = 2;
__pyx_t_8.as_objects = __pyx_v_as_objects;
__pyx_t_8.parent = Py_None;
__pyx_t_5 = __pyx_f_9datamodel_10converters__handle_dataclass_type(Py_None, ((PyObject*)__pyx_t_1), __pyx_v_data, __pyx_v_T, &__pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1586, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
{
PyObject *__pyx_temp;
{
__pyx_temp = __pyx_r;
__pyx_r = __pyx_t_5;
}
__Pyx_XDECREF(__pyx_temp);
}
__pyx_t_5 = 0;
goto __pyx_L0;
1587:
1588: # If the field is a Union and data is a list, use _parse_union_type.
+1589: if origin is Union:
__Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_Union); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1589, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_2 = (__pyx_v_origin == __pyx_t_5); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (__pyx_t_2) { /* … */ }
1590: # e.g. Optional[...] or Union[A, B]
+1591: if len(targs) == 2 and type(None) in targs:
__pyx_t_9 = PyObject_Length(__pyx_v_targs); if (unlikely(__pyx_t_9 == ((Py_ssize_t)-1))) __PYX_ERR(0, 1591, __pyx_L1_error) __pyx_t_7 = (__pyx_t_9 == 2); if (__pyx_t_7) { } else { __pyx_t_2 = __pyx_t_7; goto __pyx_L21_bool_binop_done; } __pyx_t_7 = (__Pyx_PySequence_ContainsTF(((PyObject *)Py_TYPE(Py_None)), __pyx_v_targs, Py_EQ)); if (unlikely((__pyx_t_7 < 0))) __PYX_ERR(0, 1591, __pyx_L1_error) __pyx_t_2 = __pyx_t_7; __pyx_L21_bool_binop_done:; if (__pyx_t_2) { /* … */ }
1592: # Handle Optional[...] that is Union[..., None] cases first:
+1593: if field._inner_priv:
__pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_field, __pyx_mstate_global->__pyx_n_u_inner_priv); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1593, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 1593, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (__pyx_t_2) { /* … */ }
1594: # If Optional but non-None is a primitive
+1595: return _parse_builtin_type(field, field._inner_type, data, encoder)
__pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_field, __pyx_mstate_global->__pyx_n_u_inner_type); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1595, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_1 = __pyx_f_9datamodel_10converters__parse_builtin_type(__pyx_v_field, __pyx_t_5, __pyx_v_data, __pyx_v_encoder); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1595, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; __pyx_r = __pyx_t_1; } __Pyx_XDECREF(__pyx_temp); } __pyx_t_1 = 0; goto __pyx_L0;
+1596: elif field._inner_is_dc:
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_field, __pyx_mstate_global->__pyx_n_u_inner_is_dc); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1596, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 1596, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_2) { /* … */ }
1597: # non-None is a Optional Dataclass:
+1598: return _handle_dataclass_type(None, name, data, field._inner_type, as_objects, None)
__pyx_t_1 = __pyx_v_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, 1598, __pyx_L1_error)
__pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_field, __pyx_mstate_global->__pyx_n_u_inner_type); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1598, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__pyx_t_8.__pyx_n = 2;
__pyx_t_8.as_objects = __pyx_v_as_objects;
__pyx_t_8.parent = Py_None;
__pyx_t_4 = __pyx_f_9datamodel_10converters__handle_dataclass_type(Py_None, ((PyObject*)__pyx_t_1), __pyx_v_data, __pyx_t_5, &__pyx_t_8); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1598, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
{
PyObject *__pyx_temp;
{
__pyx_temp = __pyx_r;
__pyx_r = __pyx_t_4;
}
__Pyx_XDECREF(__pyx_temp);
}
__pyx_t_4 = 0;
goto __pyx_L0;
1599: else:
+1600: real_type = targs[0] if targs[1] is type(None) else targs[1]
/*else*/ {
__pyx_t_5 = __Pyx_GetItemInt(__pyx_v_targs, 1, long, 1, __Pyx_PyLong_From_long, 0, 1, 1, __Pyx_ReferenceSharing_OwnStrongReference); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1600, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__pyx_t_2 = (__pyx_t_5 == ((PyObject *)Py_TYPE(Py_None)));
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
if (__pyx_t_2) {
__pyx_t_5 = __Pyx_GetItemInt(__pyx_v_targs, 0, long, 1, __Pyx_PyLong_From_long, 0, 1, 1, __Pyx_ReferenceSharing_OwnStrongReference); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1600, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__pyx_t_4 = __pyx_t_5;
__pyx_t_5 = 0;
} else {
__pyx_t_5 = __Pyx_GetItemInt(__pyx_v_targs, 1, long, 1, __Pyx_PyLong_From_long, 0, 1, 1, __Pyx_ReferenceSharing_OwnStrongReference); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1600, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__pyx_t_4 = __pyx_t_5;
__pyx_t_5 = 0;
}
__pyx_v_real_type = __pyx_t_4;
__pyx_t_4 = 0;
1601: # Recursively parse the real_type exactly as if it weren't wrapped in Optional[…].
+1602: return _parse_typing(field, real_type, data, encoder, as_objects, parent)
__pyx_t_10.__pyx_n = 3;
__pyx_t_10.encoder = __pyx_v_encoder;
__pyx_t_10.as_objects = __pyx_v_as_objects;
__pyx_t_10.parent = __pyx_v_parent;
__pyx_t_4 = __pyx_f_9datamodel_10converters__parse_typing(__pyx_v_field, __pyx_v_real_type, __pyx_v_data, &__pyx_t_10); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1602, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
{
PyObject *__pyx_temp;
{
__pyx_temp = __pyx_r;
__pyx_r = __pyx_t_4;
}
__Pyx_XDECREF(__pyx_temp);
}
__pyx_t_4 = 0;
goto __pyx_L0;
}
1603: else:
+1604: try:
/*else*/ {
{
/*try:*/ {
/* … */
}
__pyx_L24_error:;
__Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
__Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
/* … */
__pyx_L26_except_error:;
__Pyx_XGIVEREF(__pyx_t_11);
__Pyx_XGIVEREF(__pyx_t_12);
__Pyx_XGIVEREF(__pyx_t_13);
__Pyx_ExceptionReset(__pyx_t_11, __pyx_t_12, __pyx_t_13);
goto __pyx_L1_error;
__pyx_L28_try_return:;
__Pyx_XGIVEREF(__pyx_t_11);
__Pyx_XGIVEREF(__pyx_t_12);
__Pyx_XGIVEREF(__pyx_t_13);
__Pyx_ExceptionReset(__pyx_t_11, __pyx_t_12, __pyx_t_13);
goto __pyx_L0;
}
}
+1605: return _parse_union_type(
__pyx_t_4 = __pyx_f_9datamodel_10converters__parse_union_type(__pyx_v_field, __pyx_v_T, __pyx_v_name, __pyx_v_data, __pyx_v_encoder, __pyx_v_origin, __pyx_v_targs); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1605, __pyx_L24_error) __Pyx_GOTREF(__pyx_t_4); { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; __pyx_r = __pyx_t_4; } __Pyx_XDECREF(__pyx_temp); } __pyx_t_4 = 0; goto __pyx_L28_try_return;
1606: field,
1607: T,
1608: name,
1609: data,
1610: encoder,
1611: origin,
1612: targs
1613: )
+1614: except Exception as e:
__pyx_t_14 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(((PyTypeObject*)PyExc_Exception)))); if (__pyx_t_14) { __Pyx_AddTraceback("datamodel.converters._parse_typing", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_4, &__pyx_t_5, &__pyx_t_1) < 0) __PYX_ERR(0, 1614, __pyx_L26_except_error) __Pyx_XGOTREF(__pyx_t_4); __Pyx_XGOTREF(__pyx_t_5); __Pyx_XGOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_t_5); __pyx_v_e = __pyx_t_5; /*try:*/ { /* … */ /*finally:*/ { __pyx_L35_error:; /*exception exit:*/{ __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign __pyx_t_23 = 0; __pyx_t_24 = 0; __pyx_t_25 = 0; __pyx_t_26 = 0; __pyx_t_27 = 0; __pyx_t_28 = 0; __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0; __Pyx_XDECREF(__pyx_t_16); __pyx_t_16 = 0; __Pyx_XDECREF(__pyx_t_17); __pyx_t_17 = 0; __Pyx_XDECREF(__pyx_t_18); __pyx_t_18 = 0; __Pyx_XDECREF(__pyx_t_20); __pyx_t_20 = 0; __Pyx_ExceptionSwap(&__pyx_t_26, &__pyx_t_27, &__pyx_t_28); if ( unlikely(__Pyx_GetException(&__pyx_t_23, &__pyx_t_24, &__pyx_t_25) < 0)) __Pyx_ErrFetch(&__pyx_t_23, &__pyx_t_24, &__pyx_t_25); __Pyx_XGOTREF(__pyx_t_23); __Pyx_XGOTREF(__pyx_t_24); __Pyx_XGOTREF(__pyx_t_25); __Pyx_XGOTREF(__pyx_t_26); __Pyx_XGOTREF(__pyx_t_27); __Pyx_XGOTREF(__pyx_t_28); __pyx_t_14 = __pyx_lineno; __pyx_t_21 = __pyx_clineno; __pyx_t_22 = __pyx_filename; { __Pyx_DECREF(__pyx_v_e); __pyx_v_e = 0; } __Pyx_XGIVEREF(__pyx_t_26); __Pyx_XGIVEREF(__pyx_t_27); __Pyx_XGIVEREF(__pyx_t_28); __Pyx_ExceptionReset(__pyx_t_26, __pyx_t_27, __pyx_t_28); __Pyx_XGIVEREF(__pyx_t_23); __Pyx_XGIVEREF(__pyx_t_24); __Pyx_XGIVEREF(__pyx_t_25); __Pyx_ErrRestore(__pyx_t_23, __pyx_t_24, __pyx_t_25); __pyx_t_23 = 0; __pyx_t_24 = 0; __pyx_t_25 = 0; __pyx_t_26 = 0; __pyx_t_27 = 0; __pyx_t_28 = 0; __pyx_lineno = __pyx_t_14; __pyx_clineno = __pyx_t_21; __pyx_filename = __pyx_t_22; goto __pyx_L26_except_error; } } } goto __pyx_L26_except_error;
+1615: raise ValueError(
__pyx_t_16 = NULL;
+1616: f"Union parsing error for {field.name}: {e}"
__pyx_t_17 = __Pyx_PyObject_GetAttrStr(__pyx_v_field, __pyx_mstate_global->__pyx_n_u_name_2); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 1616, __pyx_L35_error) __Pyx_GOTREF(__pyx_t_17); __pyx_t_18 = __Pyx_PyObject_FormatSimple(__pyx_t_17, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 1616, __pyx_L35_error) __Pyx_GOTREF(__pyx_t_18); __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0; __pyx_t_17 = __Pyx_PyObject_FormatSimple(__pyx_v_e, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 1616, __pyx_L35_error) __Pyx_GOTREF(__pyx_t_17); __pyx_t_19[0] = __pyx_mstate_global->__pyx_kp_u_Union_parsing_error_for; __pyx_t_19[1] = __pyx_t_18; __pyx_t_19[2] = __pyx_mstate_global->__pyx_kp_u__5; __pyx_t_19[3] = __pyx_t_17; __pyx_t_9 = 26; #if __Pyx_PyUnicode_Join_CAN_USE_KIND_AND_LENGTH __pyx_t_9 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_19[1]) + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_19[3]); #endif __pyx_t_14 = 0; #if __Pyx_PyUnicode_Join_CAN_USE_KIND_AND_LENGTH __pyx_t_14 |= __Pyx_PyUnicode_KIND_04(__pyx_t_19[1]) | __Pyx_PyUnicode_KIND_04(__pyx_t_19[3]); #endif __pyx_t_20 = __Pyx_PyUnicode_Join(__pyx_t_19, 4, __pyx_t_9, __pyx_t_14); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 1616, __pyx_L35_error) __Pyx_GOTREF(__pyx_t_20); __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0; __pyx_t_6 = 1; { PyObject *__pyx_callargs[2] = {__pyx_t_16, __pyx_t_20}; __pyx_t_15 = __Pyx_PyObject_FastCall((PyObject*)(((PyTypeObject*)PyExc_ValueError)), __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_16); __pyx_t_16 = 0; __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0; if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 1615, __pyx_L35_error) __Pyx_GOTREF(__pyx_t_15); }
+1617: ) from e
__Pyx_Raise(__pyx_t_15, 0, 0, __pyx_v_e); __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; __PYX_ERR(0, 1615, __pyx_L35_error) }
1618: # Other Field types
+1619: if field._type_category == 'typing':
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_field, __pyx_mstate_global->__pyx_n_u_type_category); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1619, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_PyObject_CompareBoolEq_object_str(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_typing, Py_EQ); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 1619, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_2) { /* … */ }
1620: # For example, if the origin is list and the inner type is a dataclass,
1621: # use _handle_dataclass_type on each element.
+1622: if origin is list:
__pyx_t_2 = (__pyx_v_origin == ((PyObject *)(&PyList_Type)));
if (__pyx_t_2) {
/* … */
}
+1623: if inner_is_dc:
if (__pyx_v_inner_is_dc) {
/* … */
}
+1624: return _parse_list_type(field, T, data, encoder, targs, parent)
__pyx_t_29.__pyx_n = 1;
__pyx_t_29._parent = __pyx_v_parent;
__pyx_t_1 = __pyx_f_9datamodel_10converters__parse_list_type(__pyx_v_field, __pyx_v_T, __pyx_v_data, __pyx_v_encoder, __pyx_v_targs, &__pyx_t_29); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1624, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
{
PyObject *__pyx_temp;
{
__pyx_temp = __pyx_r;
__pyx_r = __pyx_t_1;
}
__Pyx_XDECREF(__pyx_temp);
}
__pyx_t_1 = 0;
goto __pyx_L0;
1625: else:
+1626: return _parse_typing_type(
/*else*/ {
/* … */
__pyx_t_30.__pyx_n = 1;
__pyx_t_30.as_objects = __pyx_v_as_objects;
__pyx_t_1 = __pyx_f_9datamodel_10converters__parse_typing_type(__pyx_v_field, __pyx_v_T, __pyx_v_name, __pyx_v_data, __pyx_v_encoder, __pyx_v_origin, __pyx_v_targs, &__pyx_t_30); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1626, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
{
PyObject *__pyx_temp;
{
__pyx_temp = __pyx_r;
__pyx_r = __pyx_t_1;
}
__Pyx_XDECREF(__pyx_temp);
}
__pyx_t_1 = 0;
goto __pyx_L0;
}
1627: field, T, name, data, encoder, origin, targs, as_objects
1628: )
+1629: elif origin is set:
__pyx_t_2 = (__pyx_v_origin == ((PyObject *)(&PySet_Type)));
if (__pyx_t_2) {
/* … */
}
+1630: if targs and targs[0] is not Any:
__pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_v_targs); if (unlikely((__pyx_t_7 < 0))) __PYX_ERR(0, 1630, __pyx_L1_error) if (__pyx_t_7) { } else { __pyx_t_2 = __pyx_t_7; goto __pyx_L45_bool_binop_done; } __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_targs, 0, long, 1, __Pyx_PyLong_From_long, 0, 1, 1, __Pyx_ReferenceSharing_OwnStrongReference); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1630, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_Any); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1630, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_7 = (__pyx_t_1 != __pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_2 = __pyx_t_7; __pyx_L45_bool_binop_done:; if (__pyx_t_2) { /* … */ }
+1631: if isinstance(data, (list, tuple)):
__pyx_t_7 = PyList_Check(__pyx_v_data); if (!__pyx_t_7) { } else { __pyx_t_2 = __pyx_t_7; goto __pyx_L48_bool_binop_done; } __pyx_t_7 = PyTuple_Check(__pyx_v_data); __pyx_t_2 = __pyx_t_7; __pyx_L48_bool_binop_done:; if (__pyx_t_2) { /* … */ }
+1632: result = set()
__pyx_t_5 = PySet_New(0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1632, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF_SET(__pyx_v_result, __pyx_t_5); __pyx_t_5 = 0;
+1633: for item in data:
if (likely(PyList_CheckExact(__pyx_v_data)) || PyTuple_CheckExact(__pyx_v_data)) { __pyx_t_5 = __pyx_v_data; __Pyx_INCREF(__pyx_t_5); __pyx_t_9 = 0; __pyx_t_31 = NULL; } else { __pyx_t_9 = -1; __pyx_t_5 = PyObject_GetIter(__pyx_v_data); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1633, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_31 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_5); if (unlikely(!__pyx_t_31)) __PYX_ERR(0, 1633, __pyx_L1_error) } for (;;) { if (likely(!__pyx_t_31)) { if (likely(PyList_CheckExact(__pyx_t_5))) { { 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, 1633, __pyx_L1_error) #endif if (__pyx_t_9 >= __pyx_temp) break; } __pyx_t_1 = __Pyx_PyList_GET_ITEM_REF(__pyx_t_5, __pyx_t_9, __Pyx_ReferenceSharing_OwnStrongReference); ++__pyx_t_9; } else { { 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, 1633, __pyx_L1_error) #endif if (__pyx_t_9 >= __pyx_temp) break; } #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_1 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_5, __pyx_t_9)); #else __pyx_t_1 = __Pyx_PySequence_ITEM(__pyx_t_5, __pyx_t_9); #endif ++__pyx_t_9; } if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1633, __pyx_L1_error) } else { __pyx_t_1 = __pyx_t_31(__pyx_t_5); 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, 1633, __pyx_L1_error) PyErr_Clear(); } break; } } __Pyx_GOTREF(__pyx_t_1); __Pyx_XDECREF_SET(__pyx_v_item, __pyx_t_1); __pyx_t_1 = 0; /* … */ } __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+1634: converted_item = _parse_type(field, targs[0], item, encoder, False)
__pyx_t_1 = __Pyx_GetItemInt(__pyx_v_targs, 0, long, 1, __Pyx_PyLong_From_long, 0, 1, 1, __Pyx_ReferenceSharing_OwnStrongReference); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1634, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_32.__pyx_n = 2; __pyx_t_32.encoder = __pyx_v_encoder; __pyx_t_32.as_objects = Py_False; __pyx_t_4 = __pyx_f_9datamodel_10converters__parse_type(__pyx_v_field, __pyx_t_1, __pyx_v_item, &__pyx_t_32); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1634, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_XDECREF_SET(__pyx_v_converted_item, __pyx_t_4); __pyx_t_4 = 0;
+1635: result.add(converted_item)
__pyx_t_1 = __pyx_v_result;
__Pyx_INCREF(__pyx_t_1);
__pyx_t_6 = 0;
{
PyObject *__pyx_callargs[2] = {__pyx_t_1, __pyx_v_converted_item};
__pyx_t_4 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_add, __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
__Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1635, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
}
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+1636: return result
{
PyObject *__pyx_temp;
{
__pyx_temp = __pyx_r;
__Pyx_INCREF(__pyx_v_result);
__pyx_r = __pyx_v_result;
}
__Pyx_XDECREF(__pyx_temp);
}
goto __pyx_L0;
+1637: elif isinstance(data, set):
__pyx_t_2 = PySet_Check(__pyx_v_data);
if (__pyx_t_2) {
/* … */
}
1638: # Already a set, just validate/convert the elements
+1639: result = set()
__pyx_t_5 = PySet_New(0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1639, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF_SET(__pyx_v_result, __pyx_t_5); __pyx_t_5 = 0;
+1640: for item in data:
if (likely(PyList_CheckExact(__pyx_v_data)) || PyTuple_CheckExact(__pyx_v_data)) { __pyx_t_5 = __pyx_v_data; __Pyx_INCREF(__pyx_t_5); __pyx_t_9 = 0; __pyx_t_31 = NULL; } else { __pyx_t_9 = -1; __pyx_t_5 = PyObject_GetIter(__pyx_v_data); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1640, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_31 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_5); if (unlikely(!__pyx_t_31)) __PYX_ERR(0, 1640, __pyx_L1_error) } for (;;) { if (likely(!__pyx_t_31)) { if (likely(PyList_CheckExact(__pyx_t_5))) { { 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, 1640, __pyx_L1_error) #endif if (__pyx_t_9 >= __pyx_temp) break; } __pyx_t_4 = __Pyx_PyList_GET_ITEM_REF(__pyx_t_5, __pyx_t_9, __Pyx_ReferenceSharing_OwnStrongReference); ++__pyx_t_9; } else { { 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, 1640, __pyx_L1_error) #endif if (__pyx_t_9 >= __pyx_temp) break; } #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_4 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_5, __pyx_t_9)); #else __pyx_t_4 = __Pyx_PySequence_ITEM(__pyx_t_5, __pyx_t_9); #endif ++__pyx_t_9; } if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1640, __pyx_L1_error) } else { __pyx_t_4 = __pyx_t_31(__pyx_t_5); 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, 1640, __pyx_L1_error) PyErr_Clear(); } break; } } __Pyx_GOTREF(__pyx_t_4); __Pyx_XDECREF_SET(__pyx_v_item, __pyx_t_4); __pyx_t_4 = 0; /* … */ } __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+1641: converted_item = _parse_type(field, targs[0], item, encoder, False)
__pyx_t_4 = __Pyx_GetItemInt(__pyx_v_targs, 0, long, 1, __Pyx_PyLong_From_long, 0, 1, 1, __Pyx_ReferenceSharing_OwnStrongReference); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1641, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_32.__pyx_n = 2; __pyx_t_32.encoder = __pyx_v_encoder; __pyx_t_32.as_objects = Py_False; __pyx_t_1 = __pyx_f_9datamodel_10converters__parse_type(__pyx_v_field, __pyx_t_4, __pyx_v_item, &__pyx_t_32); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1641, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_XDECREF_SET(__pyx_v_converted_item, __pyx_t_1); __pyx_t_1 = 0;
+1642: result.add(converted_item)
__pyx_t_4 = __pyx_v_result;
__Pyx_INCREF(__pyx_t_4);
__pyx_t_6 = 0;
{
PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_v_converted_item};
__pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_add, __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
__Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1642, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+1643: return result
{
PyObject *__pyx_temp;
{
__pyx_temp = __pyx_r;
__Pyx_INCREF(__pyx_v_result);
__pyx_r = __pyx_v_result;
}
__Pyx_XDECREF(__pyx_temp);
}
goto __pyx_L0;
1644: else:
1645: # Single value, convert and wrap in a set
+1646: converted_item = _parse_type(field, targs[0], data, encoder, False)
/*else*/ {
__pyx_t_5 = __Pyx_GetItemInt(__pyx_v_targs, 0, long, 1, __Pyx_PyLong_From_long, 0, 1, 1, __Pyx_ReferenceSharing_OwnStrongReference); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1646, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__pyx_t_32.__pyx_n = 2;
__pyx_t_32.encoder = __pyx_v_encoder;
__pyx_t_32.as_objects = Py_False;
__pyx_t_1 = __pyx_f_9datamodel_10converters__parse_type(__pyx_v_field, __pyx_t_5, __pyx_v_data, &__pyx_t_32); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1646, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
__pyx_v_converted_item = __pyx_t_1;
__pyx_t_1 = 0;
+1647: return {converted_item} if data is not None else set()
__pyx_t_2 = (__pyx_v_data != Py_None);
if (__pyx_t_2) {
__pyx_t_5 = PySet_New(0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1647, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
if (PySet_Add(__pyx_t_5, __pyx_v_converted_item) < (0)) __PYX_ERR(0, 1647, __pyx_L1_error)
__pyx_t_1 = __pyx_t_5;
__pyx_t_5 = 0;
} else {
__pyx_t_5 = PySet_New(0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1647, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__pyx_t_1 = __pyx_t_5;
__pyx_t_5 = 0;
}
{
PyObject *__pyx_temp;
{
__pyx_temp = __pyx_r;
__pyx_r = __pyx_t_1;
}
__Pyx_XDECREF(__pyx_temp);
}
__pyx_t_1 = 0;
goto __pyx_L0;
}
1648: else:
1649: # Untyped set, just convert to a set without validating elements
+1650: if isinstance(data, (list, tuple)):
/*else*/ {
__pyx_t_7 = PyList_Check(__pyx_v_data);
if (!__pyx_t_7) {
} else {
__pyx_t_2 = __pyx_t_7;
goto __pyx_L57_bool_binop_done;
}
__pyx_t_7 = PyTuple_Check(__pyx_v_data);
__pyx_t_2 = __pyx_t_7;
__pyx_L57_bool_binop_done:;
if (__pyx_t_2) {
/* … */
}
+1651: return set(data)
__pyx_t_1 = PySet_New(__pyx_v_data); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1651, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; __pyx_r = __pyx_t_1; } __Pyx_XDECREF(__pyx_temp); } __pyx_t_1 = 0; goto __pyx_L0;
+1652: elif isinstance(data, set):
__pyx_t_2 = PySet_Check(__pyx_v_data);
if (__pyx_t_2) {
/* … */
}
+1653: return data
{
PyObject *__pyx_temp;
{
__pyx_temp = __pyx_r;
__Pyx_INCREF(__pyx_v_data);
__pyx_r = __pyx_v_data;
}
__Pyx_XDECREF(__pyx_temp);
}
goto __pyx_L0;
1654: else:
+1655: return {data} if data is not None else set()
/*else*/ {
__pyx_t_2 = (__pyx_v_data != Py_None);
if (__pyx_t_2) {
__pyx_t_5 = PySet_New(0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1655, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
if (PySet_Add(__pyx_t_5, __pyx_v_data) < (0)) __PYX_ERR(0, 1655, __pyx_L1_error)
__pyx_t_1 = __pyx_t_5;
__pyx_t_5 = 0;
} else {
__pyx_t_5 = PySet_New(0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1655, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__pyx_t_1 = __pyx_t_5;
__pyx_t_5 = 0;
}
{
PyObject *__pyx_temp;
{
__pyx_temp = __pyx_r;
__pyx_r = __pyx_t_1;
}
__Pyx_XDECREF(__pyx_temp);
}
__pyx_t_1 = 0;
goto __pyx_L0;
}
}
1656: else:
+1657: return _parse_typing_type(
/*else*/ {
/* … */
__pyx_t_30.__pyx_n = 1;
__pyx_t_30.as_objects = __pyx_v_as_objects;
__pyx_t_1 = __pyx_f_9datamodel_10converters__parse_typing_type(__pyx_v_field, __pyx_v_T, __pyx_v_name, __pyx_v_data, __pyx_v_encoder, __pyx_v_origin, __pyx_v_targs, &__pyx_t_30); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1657, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
{
PyObject *__pyx_temp;
{
__pyx_temp = __pyx_r;
__pyx_r = __pyx_t_1;
}
__Pyx_XDECREF(__pyx_temp);
}
__pyx_t_1 = 0;
goto __pyx_L0;
}
1658: field, T, name, data, encoder, origin, targs, as_objects
1659: )
1660: # Handle container types with proper recursive processing
1661: # List types
+1662: elif origin is list:
__pyx_t_2 = (__pyx_v_origin == ((PyObject *)(&PyList_Type)));
if (__pyx_t_2) {
/* … */
}
+1663: return _parse_list_type(field, T, data, encoder, targs, parent)
__pyx_t_29.__pyx_n = 1;
__pyx_t_29._parent = __pyx_v_parent;
__pyx_t_1 = __pyx_f_9datamodel_10converters__parse_list_type(__pyx_v_field, __pyx_v_T, __pyx_v_data, __pyx_v_encoder, __pyx_v_targs, &__pyx_t_29); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1663, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
{
PyObject *__pyx_temp;
{
__pyx_temp = __pyx_r;
__pyx_r = __pyx_t_1;
}
__Pyx_XDECREF(__pyx_temp);
}
__pyx_t_1 = 0;
goto __pyx_L0;
1664:
1665: # Set types
+1666: elif origin is set:
__pyx_t_2 = (__pyx_v_origin == ((PyObject *)(&PySet_Type)));
if (__pyx_t_2) {
/* … */
}
+1667: return _parse_set_type(field, T, data, encoder, targs, parent)
__pyx_t_33.__pyx_n = 1;
__pyx_t_33._parent = __pyx_v_parent;
__pyx_t_1 = __pyx_f_9datamodel_10converters__parse_set_type(__pyx_v_field, __pyx_v_T, __pyx_v_data, __pyx_v_encoder, __pyx_v_targs, &__pyx_t_33); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1667, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
{
PyObject *__pyx_temp;
{
__pyx_temp = __pyx_r;
__pyx_r = __pyx_t_1;
}
__Pyx_XDECREF(__pyx_temp);
}
__pyx_t_1 = 0;
goto __pyx_L0;
1668:
1669: # FrozenSet types - process as set, then convert to frozenset
+1670: elif origin is frozenset:
__pyx_t_2 = (__pyx_v_origin == ((PyObject *)(&PyFrozenSet_Type)));
if (__pyx_t_2) {
/* … */
}
+1671: try:
{
/*try:*/ {
/* … */
}
__pyx_L59_error:;
__Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0;
__Pyx_XDECREF(__pyx_t_16); __pyx_t_16 = 0;
__Pyx_XDECREF(__pyx_t_17); __pyx_t_17 = 0;
__Pyx_XDECREF(__pyx_t_18); __pyx_t_18 = 0;
__Pyx_XDECREF(__pyx_t_20); __pyx_t_20 = 0;
__Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
__Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
/* … */
__pyx_L61_except_error:;
__Pyx_XGIVEREF(__pyx_t_13);
__Pyx_XGIVEREF(__pyx_t_12);
__Pyx_XGIVEREF(__pyx_t_11);
__Pyx_ExceptionReset(__pyx_t_13, __pyx_t_12, __pyx_t_11);
goto __pyx_L1_error;
__pyx_L63_try_return:;
__Pyx_XGIVEREF(__pyx_t_13);
__Pyx_XGIVEREF(__pyx_t_12);
__Pyx_XGIVEREF(__pyx_t_11);
__Pyx_ExceptionReset(__pyx_t_13, __pyx_t_12, __pyx_t_11);
goto __pyx_L0;
__pyx_L62_except_return:;
__Pyx_XGIVEREF(__pyx_t_13);
__Pyx_XGIVEREF(__pyx_t_12);
__Pyx_XGIVEREF(__pyx_t_11);
__Pyx_ExceptionReset(__pyx_t_13, __pyx_t_12, __pyx_t_11);
goto __pyx_L0;
}
1672: # Convert to set first if needed
+1673: if isinstance(data, (list, tuple, set)):
__pyx_t_7 = PyList_Check(__pyx_v_data); if (!__pyx_t_7) { } else { __pyx_t_2 = __pyx_t_7; goto __pyx_L66_bool_binop_done; } __pyx_t_7 = PyTuple_Check(__pyx_v_data); if (!__pyx_t_7) { } else { __pyx_t_2 = __pyx_t_7; goto __pyx_L66_bool_binop_done; } __pyx_t_7 = PySet_Check(__pyx_v_data); __pyx_t_2 = __pyx_t_7; __pyx_L66_bool_binop_done:; if (__pyx_t_2) { /* … */ goto __pyx_L65; }
+1674: set_data = set(data)
__pyx_t_1 = PySet_New(__pyx_v_data); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1674, __pyx_L59_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_set_data = __pyx_t_1; __pyx_t_1 = 0;
+1675: elif isinstance(data, frozenset):
__pyx_t_2 = PyFrozenSet_Check(__pyx_v_data);
if (__pyx_t_2) {
/* … */
goto __pyx_L65;
}
+1676: set_data = data
__Pyx_INCREF(__pyx_v_data);
__pyx_v_set_data = __pyx_v_data;
1677: else:
+1678: set_data = {data} if data is not None else set()
/*else*/ {
__pyx_t_2 = (__pyx_v_data != Py_None);
if (__pyx_t_2) {
__pyx_t_5 = PySet_New(0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1678, __pyx_L59_error)
__Pyx_GOTREF(__pyx_t_5);
if (PySet_Add(__pyx_t_5, __pyx_v_data) < (0)) __PYX_ERR(0, 1678, __pyx_L59_error)
__pyx_t_1 = __pyx_t_5;
__pyx_t_5 = 0;
} else {
__pyx_t_5 = PySet_New(0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1678, __pyx_L59_error)
__Pyx_GOTREF(__pyx_t_5);
__pyx_t_1 = __pyx_t_5;
__pyx_t_5 = 0;
}
__pyx_v_set_data = __pyx_t_1;
__pyx_t_1 = 0;
}
__pyx_L65:;
1679:
1680: # Process as a set
+1681: processed_set = _parse_set_type(field, T, set_data, encoder, targs, parent)
__pyx_t_33.__pyx_n = 1;
__pyx_t_33._parent = __pyx_v_parent;
__pyx_t_1 = __pyx_f_9datamodel_10converters__parse_set_type(__pyx_v_field, __pyx_v_T, __pyx_v_set_data, __pyx_v_encoder, __pyx_v_targs, &__pyx_t_33); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1681, __pyx_L59_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_v_processed_set = __pyx_t_1;
__pyx_t_1 = 0;
1682:
1683: # Convert back to frozenset
+1684: return frozenset(processed_set)
__pyx_t_1 = __Pyx_PyFrozenSet_New(__pyx_v_processed_set); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1684, __pyx_L59_error) __Pyx_GOTREF(__pyx_t_1); { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; __pyx_r = __pyx_t_1; } __Pyx_XDECREF(__pyx_temp); } __pyx_t_1 = 0; goto __pyx_L63_try_return;
+1685: except Exception as e:
__pyx_t_21 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(((PyTypeObject*)PyExc_Exception)))); if (__pyx_t_21) { __Pyx_AddTraceback("datamodel.converters._parse_typing", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_1, &__pyx_t_5, &__pyx_t_4) < 0) __PYX_ERR(0, 1685, __pyx_L61_except_error) __Pyx_XGOTREF(__pyx_t_1); __Pyx_XGOTREF(__pyx_t_5); __Pyx_XGOTREF(__pyx_t_4); __Pyx_INCREF(__pyx_t_5); __pyx_v_e = __pyx_t_5; /*try:*/ { /* … */ /*finally:*/ { __pyx_L74_error:; /*exception exit:*/{ __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign __pyx_t_28 = 0; __pyx_t_27 = 0; __pyx_t_26 = 0; __pyx_t_25 = 0; __pyx_t_24 = 0; __pyx_t_23 = 0; __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0; __Pyx_XDECREF(__pyx_t_16); __pyx_t_16 = 0; __Pyx_XDECREF(__pyx_t_17); __pyx_t_17 = 0; __Pyx_XDECREF(__pyx_t_18); __pyx_t_18 = 0; __Pyx_XDECREF(__pyx_t_20); __pyx_t_20 = 0; __Pyx_ExceptionSwap(&__pyx_t_25, &__pyx_t_24, &__pyx_t_23); if ( unlikely(__Pyx_GetException(&__pyx_t_28, &__pyx_t_27, &__pyx_t_26) < 0)) __Pyx_ErrFetch(&__pyx_t_28, &__pyx_t_27, &__pyx_t_26); __Pyx_XGOTREF(__pyx_t_28); __Pyx_XGOTREF(__pyx_t_27); __Pyx_XGOTREF(__pyx_t_26); __Pyx_XGOTREF(__pyx_t_25); __Pyx_XGOTREF(__pyx_t_24); __Pyx_XGOTREF(__pyx_t_23); __pyx_t_21 = __pyx_lineno; __pyx_t_14 = __pyx_clineno; __pyx_t_22 = __pyx_filename; { __Pyx_DECREF(__pyx_v_e); __pyx_v_e = 0; } __Pyx_XGIVEREF(__pyx_t_25); __Pyx_XGIVEREF(__pyx_t_24); __Pyx_XGIVEREF(__pyx_t_23); __Pyx_ExceptionReset(__pyx_t_25, __pyx_t_24, __pyx_t_23); __Pyx_XGIVEREF(__pyx_t_28); __Pyx_XGIVEREF(__pyx_t_27); __Pyx_XGIVEREF(__pyx_t_26); __Pyx_ErrRestore(__pyx_t_28, __pyx_t_27, __pyx_t_26); __pyx_t_28 = 0; __pyx_t_27 = 0; __pyx_t_26 = 0; __pyx_t_25 = 0; __pyx_t_24 = 0; __pyx_t_23 = 0; __pyx_lineno = __pyx_t_21; __pyx_clineno = __pyx_t_14; __pyx_filename = __pyx_t_22; goto __pyx_L61_except_error; } __pyx_L73_return: { __pyx_t_23 = __pyx_r; __pyx_r = 0; __Pyx_DECREF(__pyx_v_e); __pyx_v_e = 0; __pyx_r = __pyx_t_23; __pyx_t_23 = 0; goto __pyx_L62_except_return; } } } goto __pyx_L61_except_error;
1686: # Be resilient to errors
+1687: if isinstance(data, frozenset):
__pyx_t_2 = PyFrozenSet_Check(__pyx_v_data);
if (__pyx_t_2) {
/* … */
}
+1688: return data
{
PyObject *__pyx_temp;
{
__pyx_temp = __pyx_r;
__Pyx_INCREF(__pyx_v_data);
__pyx_r = __pyx_v_data;
}
__Pyx_XDECREF(__pyx_temp);
}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
goto __pyx_L73_return;
+1689: elif isinstance(data, (set, list, tuple)):
__pyx_t_7 = PySet_Check(__pyx_v_data); if (!__pyx_t_7) { } else { __pyx_t_2 = __pyx_t_7; goto __pyx_L77_bool_binop_done; } __pyx_t_7 = PyList_Check(__pyx_v_data); if (!__pyx_t_7) { } else { __pyx_t_2 = __pyx_t_7; goto __pyx_L77_bool_binop_done; } __pyx_t_7 = PyTuple_Check(__pyx_v_data); __pyx_t_2 = __pyx_t_7; __pyx_L77_bool_binop_done:; if (__pyx_t_2) { /* … */ }
+1690: return frozenset(data)
__pyx_t_15 = __Pyx_PyFrozenSet_New(__pyx_v_data); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 1690, __pyx_L74_error) __Pyx_GOTREF(__pyx_t_15); { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; __pyx_r = __pyx_t_15; } __Pyx_XDECREF(__pyx_temp); } __pyx_t_15 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; goto __pyx_L73_return;
1691: else:
+1692: return frozenset({data}) if data is not None else frozenset()
/*else*/ {
__pyx_t_2 = (__pyx_v_data != Py_None);
if (__pyx_t_2) {
__pyx_t_20 = PySet_New(0); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 1692, __pyx_L74_error)
__Pyx_GOTREF(__pyx_t_20);
if (PySet_Add(__pyx_t_20, __pyx_v_data) < (0)) __PYX_ERR(0, 1692, __pyx_L74_error)
__pyx_t_16 = __Pyx_PyFrozenSet_New(__pyx_t_20); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 1692, __pyx_L74_error)
__Pyx_GOTREF(__pyx_t_16);
__Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
__pyx_t_15 = __pyx_t_16;
__pyx_t_16 = 0;
} else {
__Pyx_INCREF(__pyx_mstate_global->__pyx_frozenset[0]);
__pyx_t_15 = __pyx_mstate_global->__pyx_frozenset[0];
}
{
PyObject *__pyx_temp;
{
__pyx_temp = __pyx_r;
__pyx_r = __pyx_t_15;
}
__Pyx_XDECREF(__pyx_temp);
}
__pyx_t_15 = 0;
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
goto __pyx_L73_return;
}
}
1693: # Dict types
+1694: elif origin is dict and isinstance(data, dict):
__pyx_t_7 = (__pyx_v_origin == ((PyObject *)(&PyDict_Type)));
if (__pyx_t_7) {
} else {
__pyx_t_2 = __pyx_t_7;
goto __pyx_L84_bool_binop_done;
}
__pyx_t_7 = PyDict_Check(__pyx_v_data);
__pyx_t_2 = __pyx_t_7;
__pyx_L84_bool_binop_done:;
if (__pyx_t_2) {
/* … */
}
+1695: return _parse_dict_type(field, T, data, encoder, targs)
__pyx_t_4 = __pyx_f_9datamodel_10converters__parse_dict_type(__pyx_v_field, __pyx_v_T, __pyx_v_data, __pyx_v_encoder, __pyx_v_targs); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1695, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; __pyx_r = __pyx_t_4; } __Pyx_XDECREF(__pyx_temp); } __pyx_t_4 = 0; goto __pyx_L0;
+1696: elif origin is not None:
__pyx_t_2 = (__pyx_v_origin != Py_None);
if (__pyx_t_2) {
/* … */
}
1697: # other advanced generics
+1698: return data
{
PyObject *__pyx_temp;
{
__pyx_temp = __pyx_r;
__Pyx_INCREF(__pyx_v_data);
__pyx_r = __pyx_v_data;
}
__Pyx_XDECREF(__pyx_temp);
}
goto __pyx_L0;
1699: else:
1700: # fallback to builtin parse
+1701: return _parse_builtin_type(field, T, data, encoder)
/*else*/ {
__pyx_t_4 = __pyx_f_9datamodel_10converters__parse_builtin_type(__pyx_v_field, __pyx_v_T, __pyx_v_data, __pyx_v_encoder); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1701, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
{
PyObject *__pyx_temp;
{
__pyx_temp = __pyx_r;
__pyx_r = __pyx_t_4;
}
__Pyx_XDECREF(__pyx_temp);
}
__pyx_t_4 = 0;
goto __pyx_L0;
}
1702:
+1703: cdef object _parse_literal_type(
static PyObject *__pyx_f_9datamodel_10converters__parse_literal_type(PyObject *__pyx_v_field, CYTHON_UNUSED PyObject *__pyx_v_T, PyObject *__pyx_v_data, CYTHON_UNUSED PyObject *__pyx_v_encoder) {
PyObject *__pyx_v_targs = 0;
PyObject *__pyx_v_arg = NULL;
PyObject *__pyx_r = NULL;
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_5);
__Pyx_XDECREF(__pyx_t_6);
__Pyx_XDECREF(__pyx_t_7);
__Pyx_XDECREF(__pyx_t_10);
__Pyx_AddTraceback("datamodel.converters._parse_literal_type", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = 0;
__pyx_L0:;
__Pyx_XDECREF(__pyx_v_targs);
__Pyx_XDECREF(__pyx_v_arg);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
1704: object field,
1705: object T,
1706: object data,
1707: object encoder
1708: ):
1709: """
1710: _parse_literal_type parses a typing.Literal[...] annotation.
1711:
1712: :param field: A Field object (or similar) containing metadata
1713: :param T: The full annotated type (e.g. typing.Literal['text/plain', 'text/html']).
1714: :param data: The input value to check.
1715: :param encoder: Optional encoder (not usually used for literal).
1716: :return: Returns 'data' if it matches one of the literal choices, otherwise raises ValueError.
1717: """
1718:
1719: # Each element in `targs` is a valid literal value, e.g. a string, int, etc.
1720: # If data is exactly in that set, it's valid.
+1721: cdef tuple targs = field.args
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_field, __pyx_mstate_global->__pyx_n_u_args_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1721, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (!(likely(PyTuple_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_t_1))) __PYX_ERR(0, 1721, __pyx_L1_error) __pyx_v_targs = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0;
1722: cdef tuple i
+1723: for arg in targs:
if (unlikely(__pyx_v_targs == Py_None)) {
PyErr_SetString(PyExc_TypeError, "\047NoneType\047 object is not iterable");
__PYX_ERR(0, 1723, __pyx_L1_error)
}
__pyx_t_1 = __pyx_v_targs; __Pyx_INCREF(__pyx_t_1);
__pyx_t_2 = 0;
for (;;) {
{
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, 1723, __pyx_L1_error)
#endif
if (__pyx_t_2 >= __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_2));
#else
__pyx_t_3 = __Pyx_PySequence_ITEM(__pyx_t_1, __pyx_t_2);
#endif
++__pyx_t_2;
if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1723, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_XDECREF_SET(__pyx_v_arg, __pyx_t_3);
__pyx_t_3 = 0;
/* … */
}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+1724: if data == arg:
__pyx_t_4 = __Pyx_PyObject_CompareBoolEq_object_object(__pyx_v_data, __pyx_v_arg, Py_EQ); if (unlikely((__pyx_t_4 < 0))) __PYX_ERR(0, 1724, __pyx_L1_error) if (__pyx_t_4) { /* … */ }
+1725: return data
{
PyObject *__pyx_temp;
{
__pyx_temp = __pyx_r;
__Pyx_INCREF(__pyx_v_data);
__pyx_r = __pyx_v_data;
}
__Pyx_XDECREF(__pyx_temp);
}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
goto __pyx_L0;
1726:
1727: # If we get here, data didn't match any literal value
+1728: raise ValueError(
__pyx_t_3 = NULL;
+1729: f"Literal parse error for field '{field.name}': "
__pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_field, __pyx_mstate_global->__pyx_n_u_name_2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1729, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_6 = __Pyx_PyObject_FormatSimple(__pyx_t_5, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1729, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; /* … */ __pyx_t_2 = 55; #if __Pyx_PyUnicode_Join_CAN_USE_KIND_AND_LENGTH __pyx_t_2 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_8[1]) + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_8[3]) + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_8[5]); #endif __pyx_t_9 = 0; #if __Pyx_PyUnicode_Join_CAN_USE_KIND_AND_LENGTH __pyx_t_9 |= __Pyx_PyUnicode_KIND_04(__pyx_t_8[1]) | __Pyx_PyUnicode_KIND_04(__pyx_t_8[3]) | __Pyx_PyUnicode_KIND_04(__pyx_t_8[5]); #endif __pyx_t_10 = __Pyx_PyUnicode_Join(__pyx_t_8, 6, __pyx_t_2, __pyx_t_9); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1729, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_11 = 1; { PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_t_10}; __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)(((PyTypeObject*)PyExc_ValueError)), __pyx_callargs+__pyx_t_11, (2-__pyx_t_11) | (__pyx_t_11*__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_1)) __PYX_ERR(0, 1728, __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, 1728, __pyx_L1_error)
+1730: f"value={data!r} is not one of {targs}"
__pyx_t_5 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Repr(__pyx_v_data), __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1730, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_7 = __Pyx_PyObject_FormatSimple(__pyx_v_targs, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1730, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_8[0] = __pyx_mstate_global->__pyx_kp_u_Literal_parse_error_for_field; __pyx_t_8[1] = __pyx_t_6; __pyx_t_8[2] = __pyx_mstate_global->__pyx_kp_u_value; __pyx_t_8[3] = __pyx_t_5; __pyx_t_8[4] = __pyx_mstate_global->__pyx_kp_u_is_not_one_of; __pyx_t_8[5] = __pyx_t_7;
1731: )
1732:
+1733: cdef object _handle_dataclass_type(
static PyObject *__pyx_f_9datamodel_10converters__handle_dataclass_type(PyObject *__pyx_v_field, PyObject *__pyx_v_name, PyObject *__pyx_v_value, PyObject *__pyx_v__type, struct __pyx_opt_args_9datamodel_10converters__handle_dataclass_type *__pyx_optional_args) {
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_2);
__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_19);
__Pyx_XDECREF(__pyx_t_20);
__Pyx_XDECREF(__pyx_t_22);
__Pyx_AddTraceback("datamodel.converters._handle_dataclass_type", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = 0;
__pyx_L0:;
__Pyx_XDECREF(__pyx_v_key);
__Pyx_XDECREF(__pyx_v_converter);
__Pyx_XDECREF(__pyx_v_field_metadata);
__Pyx_XDECREF(__pyx_v_alias);
__Pyx_XDECREF(__pyx_v_exc);
__Pyx_XDECREF(__pyx_8genexpr6__pyx_v_k);
__Pyx_XDECREF(__pyx_8genexpr6__pyx_v_v);
__Pyx_XDECREF(__pyx_v_value);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
struct __pyx_opt_args_9datamodel_10converters__handle_dataclass_type {
int __pyx_n;
PyObject *as_objects;
PyObject *parent;
};
1734: object field,
1735: str name,
1736: object value,
1737: object _type,
+1738: object as_objects = False,
PyObject *__pyx_v_as_objects = ((PyObject *)Py_False);
+1739: object parent = None
PyObject *__pyx_v_parent = ((PyObject *)Py_None);
PyObject *__pyx_v_key = 0;
PyObject *__pyx_v_converter = 0;
int __pyx_v_isdc;
PyObject *__pyx_v_field_metadata = 0;
PyObject *__pyx_v_alias = 0;
PyObject *__pyx_v_exc = NULL;
PyObject *__pyx_8genexpr6__pyx_v_k = NULL;
PyObject *__pyx_8genexpr6__pyx_v_v = NULL;
PyObject *__pyx_r = NULL;
if (__pyx_optional_args) {
if (__pyx_optional_args->__pyx_n > 0) {
__pyx_v_as_objects = __pyx_optional_args->as_objects;
if (__pyx_optional_args->__pyx_n > 1) {
__pyx_v_parent = __pyx_optional_args->parent;
}
}
}
__Pyx_INCREF(__pyx_v_value);
1740: ):
1741: """
1742: _handle_dataclass_type.
1743:
1744: Process a field that is annotated as SomeDataclass.
1745: If there's a registered converter for the dataclass, call it;
1746: otherwise, build the dataclass using default logic.
1747: """
+1748: cdef tuple key = (_type, name)
__pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1748, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v__type); __Pyx_GIVEREF(__pyx_v__type); if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v__type) != (0)) __PYX_ERR(0, 1748, __pyx_L1_error); __Pyx_INCREF(__pyx_v_name); __Pyx_GIVEREF(__pyx_v_name); if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_name) != (0)) __PYX_ERR(0, 1748, __pyx_L1_error); __pyx_v_key = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0;
+1749: cdef object converter = TYPE_PARSERS.get(key) or TYPE_PARSERS.get(_type)
if (unlikely(__pyx_v_9datamodel_10converters_TYPE_PARSERS == Py_None)) {
PyErr_Format(PyExc_AttributeError, "\047NoneType\047 object has no attribute \047%.30s\047", "get");
__PYX_ERR(0, 1749, __pyx_L1_error)
}
__pyx_t_2 = __Pyx_PyDict_GetItemDefault(__pyx_v_9datamodel_10converters_TYPE_PARSERS, __pyx_v_key, Py_None); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1749, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely((__pyx_t_3 < 0))) __PYX_ERR(0, 1749, __pyx_L1_error)
if (!__pyx_t_3) {
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
} else {
__Pyx_INCREF(__pyx_t_2);
__pyx_t_1 = __pyx_t_2;
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
goto __pyx_L3_bool_binop_done;
}
if (unlikely(__pyx_v_9datamodel_10converters_TYPE_PARSERS == Py_None)) {
PyErr_Format(PyExc_AttributeError, "\047NoneType\047 object has no attribute \047%.30s\047", "get");
__PYX_ERR(0, 1749, __pyx_L1_error)
}
__pyx_t_2 = __Pyx_PyDict_GetItemDefault(__pyx_v_9datamodel_10converters_TYPE_PARSERS, __pyx_v__type, Py_None); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1749, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_INCREF(__pyx_t_2);
__pyx_t_1 = __pyx_t_2;
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_L3_bool_binop_done:;
__pyx_v_converter = __pyx_t_1;
__pyx_t_1 = 0;
+1750: cdef bint isdc = field.is_dc if field else is_dc(_type)
__pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_v_field); if (unlikely((__pyx_t_4 < 0))) __PYX_ERR(0, 1750, __pyx_L1_error) if (__pyx_t_4) { __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_field, __pyx_mstate_global->__pyx_n_u_is_dc); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1750, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_5 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 1750, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_3 = __pyx_t_5; } else { __pyx_t_5 = __pyx_f_9datamodel_10converters_is_dc(__pyx_v__type); if (unlikely(__pyx_t_5 == ((int)-1) && PyErr_Occurred())) __PYX_ERR(0, 1750, __pyx_L1_error) __pyx_t_3 = __pyx_t_5; } __pyx_v_isdc = __pyx_t_3;
+1751: cdef object field_metadata = field.metadata if field else {}
__pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_v_field); if (unlikely((__pyx_t_3 < 0))) __PYX_ERR(0, 1751, __pyx_L1_error) if (__pyx_t_3) { __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_field, __pyx_mstate_global->__pyx_n_u_metadata); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1751, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_1 = __pyx_t_2; __pyx_t_2 = 0; } else { __pyx_t_2 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1751, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_1 = __pyx_t_2; __pyx_t_2 = 0; } __pyx_v_field_metadata = __pyx_t_1; __pyx_t_1 = 0;
+1752: cdef str alias = field_metadata.get('alias')
__pyx_t_2 = __pyx_v_field_metadata; __Pyx_INCREF(__pyx_t_2); __pyx_t_6 = 0; { PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_mstate_global->__pyx_n_u_alias}; __pyx_t_1 = __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_2); __pyx_t_2 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1752, __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, 1752, __pyx_L1_error) __pyx_v_alias = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0;
1753:
+1754: if value is None or is_dc(value):
__pyx_t_4 = (__pyx_v_value == Py_None);
if (!__pyx_t_4) {
} else {
__pyx_t_3 = __pyx_t_4;
goto __pyx_L6_bool_binop_done;
}
__pyx_t_4 = __pyx_f_9datamodel_10converters_is_dc(__pyx_v_value); if (unlikely(__pyx_t_4 == ((int)-1) && PyErr_Occurred())) __PYX_ERR(0, 1754, __pyx_L1_error)
__pyx_t_3 = __pyx_t_4;
__pyx_L6_bool_binop_done:;
if (__pyx_t_3) {
/* … */
}
+1755: return value
{
PyObject *__pyx_temp;
{
__pyx_temp = __pyx_r;
__Pyx_INCREF(__pyx_v_value);
__pyx_r = __pyx_v_value;
}
__Pyx_XDECREF(__pyx_temp);
}
goto __pyx_L0;
+1756: if PyObject_IsInstance(value, dict):
__pyx_t_3 = PyObject_IsInstance(__pyx_v_value, ((PyObject *)(&PyDict_Type))); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(0, 1756, __pyx_L1_error) if (__pyx_t_3) { /* … */ }
+1757: try:
{
/*try:*/ {
/* … */
}
__pyx_L9_error:;
__Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
/* … */
__pyx_L11_except_error:;
__Pyx_XGIVEREF(__pyx_t_7);
__Pyx_XGIVEREF(__pyx_t_8);
__Pyx_XGIVEREF(__pyx_t_9);
__Pyx_ExceptionReset(__pyx_t_7, __pyx_t_8, __pyx_t_9);
goto __pyx_L1_error;
__pyx_L13_try_return:;
__Pyx_XGIVEREF(__pyx_t_7);
__Pyx_XGIVEREF(__pyx_t_8);
__Pyx_XGIVEREF(__pyx_t_9);
__Pyx_ExceptionReset(__pyx_t_7, __pyx_t_8, __pyx_t_9);
goto __pyx_L0;
__pyx_L12_except_return:;
__Pyx_XGIVEREF(__pyx_t_7);
__Pyx_XGIVEREF(__pyx_t_8);
__Pyx_XGIVEREF(__pyx_t_9);
__Pyx_ExceptionReset(__pyx_t_7, __pyx_t_8, __pyx_t_9);
goto __pyx_L0;
}
1758: # If alias exists, adjust the key passed to the dataclass
+1759: if alias:
if (__pyx_v_alias == Py_None) __pyx_t_3 = 0;
else
{
Py_ssize_t __pyx_temp = __Pyx_PyUnicode_IS_TRUE(__pyx_v_alias);
if (unlikely(((!CYTHON_ASSUME_SAFE_SIZE) && __pyx_temp < 0))) __PYX_ERR(0, 1759, __pyx_L9_error)
__pyx_t_3 = (__pyx_temp != 0);
}
if (__pyx_t_3) {
/* … */
}
1760: # if alias exists on type, preserve the alias:
+1761: if alias not in value and name in value:
__pyx_t_4 = (__Pyx_PySequence_ContainsTF(__pyx_v_alias, __pyx_v_value, Py_NE)); if (unlikely((__pyx_t_4 < 0))) __PYX_ERR(0, 1761, __pyx_L9_error) if (__pyx_t_4) { } else { __pyx_t_3 = __pyx_t_4; goto __pyx_L17_bool_binop_done; } __pyx_t_4 = (__Pyx_PySequence_ContainsTF(__pyx_v_name, __pyx_v_value, Py_EQ)); if (unlikely((__pyx_t_4 < 0))) __PYX_ERR(0, 1761, __pyx_L9_error) __pyx_t_3 = __pyx_t_4; __pyx_L17_bool_binop_done:; if (__pyx_t_3) { /* … */ }
+1762: value = value.copy()
__pyx_t_2 = __pyx_v_value;
__Pyx_INCREF(__pyx_t_2);
__pyx_t_6 = 0;
{
PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
__pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_copy, __pyx_callargs+__pyx_t_6, (1-__pyx_t_6) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
__Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1762, __pyx_L9_error)
__Pyx_GOTREF(__pyx_t_1);
}
__Pyx_DECREF_SET(__pyx_v_value, __pyx_t_1);
__pyx_t_1 = 0;
+1763: value[alias] = value.pop(name)
__pyx_t_2 = __pyx_v_value;
__Pyx_INCREF(__pyx_t_2);
__pyx_t_6 = 0;
{
PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_v_name};
__pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_pop, __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
__Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1763, __pyx_L9_error)
__Pyx_GOTREF(__pyx_t_1);
}
if (unlikely((PyObject_SetItem(__pyx_v_value, __pyx_v_alias, __pyx_t_1) < 0))) __PYX_ERR(0, 1763, __pyx_L9_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
1764: # convert the dictionary to the dataclass
+1765: return _type(**value)
if (unlikely(__pyx_v_value == Py_None)) {
PyErr_SetString(PyExc_TypeError, "argument after ** must be a mapping, not NoneType");
__PYX_ERR(0, 1765, __pyx_L9_error)
}
if (likely(PyDict_CheckExact(__pyx_v_value))) {
__pyx_t_1 = PyDict_Copy(__pyx_v_value); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1765, __pyx_L9_error)
__Pyx_GOTREF(__pyx_t_1);
} else {
__pyx_t_1 = __Pyx_PyObject_CallOneArg((PyObject*)&PyDict_Type, __pyx_v_value); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1765, __pyx_L9_error)
__Pyx_GOTREF(__pyx_t_1);
}
__pyx_t_2 = __Pyx_PyObject_Call(__pyx_v__type, __pyx_mstate_global->__pyx_empty_tuple, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1765, __pyx_L9_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
{
PyObject *__pyx_temp;
{
__pyx_temp = __pyx_r;
__pyx_r = __pyx_t_2;
}
__Pyx_XDECREF(__pyx_temp);
}
__pyx_t_2 = 0;
goto __pyx_L13_try_return;
+1766: except TypeError:
__pyx_t_10 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(((PyTypeObject*)PyExc_TypeError)))); if (__pyx_t_10) { __Pyx_AddTraceback("datamodel.converters._handle_dataclass_type", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_2, &__pyx_t_1, &__pyx_t_11) < 0) __PYX_ERR(0, 1766, __pyx_L11_except_error) __Pyx_XGOTREF(__pyx_t_2); __Pyx_XGOTREF(__pyx_t_1); __Pyx_XGOTREF(__pyx_t_11);
1767: # Ensure keys are strings
+1768: value = {str(k): v for k, v in value.items()}
{ /* enter inner scope */
__pyx_t_12 = PyDict_New(); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1768, __pyx_L23_error)
__Pyx_GOTREF(__pyx_t_12);
__pyx_t_14 = 0;
if (unlikely(__pyx_v_value == Py_None)) {
PyErr_Format(PyExc_AttributeError, "\047NoneType\047 object has no attribute \047%.30s\047", "items");
__PYX_ERR(0, 1768, __pyx_L23_error)
}
__pyx_t_16 = __Pyx_dict_iterator(__pyx_v_value, 0, __pyx_mstate_global->__pyx_n_u_items, (&__pyx_t_15), (&__pyx_t_10)); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 1768, __pyx_L23_error)
__Pyx_GOTREF(__pyx_t_16);
__Pyx_XDECREF(__pyx_t_13);
__pyx_t_13 = __pyx_t_16;
__pyx_t_16 = 0;
while (1) {
__pyx_t_18 = __Pyx_dict_iter_next(__pyx_t_13, __pyx_t_15, &__pyx_t_14, &__pyx_t_16, &__pyx_t_17, NULL, __pyx_t_10);
if (unlikely(__pyx_t_18 == 0)) break;
if (unlikely(__pyx_t_18 == -1)) __PYX_ERR(0, 1768, __pyx_L23_error)
__Pyx_GOTREF(__pyx_t_16);
__Pyx_GOTREF(__pyx_t_17);
__Pyx_XDECREF_SET(__pyx_8genexpr6__pyx_v_k, __pyx_t_16);
__pyx_t_16 = 0;
__Pyx_XDECREF_SET(__pyx_8genexpr6__pyx_v_v, __pyx_t_17);
__pyx_t_17 = 0;
__pyx_t_17 = __Pyx_PyObject_Unicode(__pyx_8genexpr6__pyx_v_k); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 1768, __pyx_L23_error)
__Pyx_GOTREF(__pyx_t_17);
if (unlikely(PyDict_SetItem(__pyx_t_12, __pyx_t_17, __pyx_8genexpr6__pyx_v_v))) __PYX_ERR(0, 1768, __pyx_L23_error)
__Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
}
__Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
__Pyx_XDECREF(__pyx_8genexpr6__pyx_v_k); __pyx_8genexpr6__pyx_v_k = 0;
__Pyx_XDECREF(__pyx_8genexpr6__pyx_v_v); __pyx_8genexpr6__pyx_v_v = 0;
goto __pyx_L26_exit_scope;
__pyx_L23_error:;
__Pyx_XDECREF(__pyx_8genexpr6__pyx_v_k); __pyx_8genexpr6__pyx_v_k = 0;
__Pyx_XDECREF(__pyx_8genexpr6__pyx_v_v); __pyx_8genexpr6__pyx_v_v = 0;
goto __pyx_L11_except_error;
__pyx_L26_exit_scope:;
} /* exit inner scope */
__Pyx_DECREF_SET(__pyx_v_value, __pyx_t_12);
__pyx_t_12 = 0;
+1769: if alias:
if (__pyx_v_alias == Py_None) __pyx_t_3 = 0;
else
{
Py_ssize_t __pyx_temp = __Pyx_PyUnicode_IS_TRUE(__pyx_v_alias);
if (unlikely(((!CYTHON_ASSUME_SAFE_SIZE) && __pyx_temp < 0))) __PYX_ERR(0, 1769, __pyx_L11_except_error)
__pyx_t_3 = (__pyx_temp != 0);
}
if (__pyx_t_3) {
/* … */
}
+1770: value = value.copy()
__pyx_t_13 = __pyx_v_value;
__Pyx_INCREF(__pyx_t_13);
__pyx_t_6 = 0;
{
PyObject *__pyx_callargs[2] = {__pyx_t_13, NULL};
__pyx_t_12 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_copy, __pyx_callargs+__pyx_t_6, (1-__pyx_t_6) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
__Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1770, __pyx_L11_except_error)
__Pyx_GOTREF(__pyx_t_12);
}
__Pyx_DECREF_SET(__pyx_v_value, __pyx_t_12);
__pyx_t_12 = 0;
+1771: value[name] = value.pop(alias, None)
__pyx_t_13 = __pyx_v_value;
__Pyx_INCREF(__pyx_t_13);
__pyx_t_6 = 0;
{
PyObject *__pyx_callargs[3] = {__pyx_t_13, __pyx_v_alias, Py_None};
__pyx_t_12 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_pop, __pyx_callargs+__pyx_t_6, (3-__pyx_t_6) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
__Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1771, __pyx_L11_except_error)
__Pyx_GOTREF(__pyx_t_12);
}
if (unlikely((PyObject_SetItem(__pyx_v_value, __pyx_v_name, __pyx_t_12) < 0))) __PYX_ERR(0, 1771, __pyx_L11_except_error)
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
+1772: return _type(**value)
if (unlikely(__pyx_v_value == Py_None)) {
PyErr_SetString(PyExc_TypeError, "argument after ** must be a mapping, not NoneType");
__PYX_ERR(0, 1772, __pyx_L11_except_error)
}
if (likely(PyDict_CheckExact(__pyx_v_value))) {
__pyx_t_12 = PyDict_Copy(__pyx_v_value); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1772, __pyx_L11_except_error)
__Pyx_GOTREF(__pyx_t_12);
} else {
__pyx_t_12 = __Pyx_PyObject_CallOneArg((PyObject*)&PyDict_Type, __pyx_v_value); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1772, __pyx_L11_except_error)
__Pyx_GOTREF(__pyx_t_12);
}
__pyx_t_13 = __Pyx_PyObject_Call(__pyx_v__type, __pyx_mstate_global->__pyx_empty_tuple, __pyx_t_12); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1772, __pyx_L11_except_error)
__Pyx_GOTREF(__pyx_t_13);
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
{
PyObject *__pyx_temp;
{
__pyx_temp = __pyx_r;
__pyx_r = __pyx_t_13;
}
__Pyx_XDECREF(__pyx_temp);
}
__pyx_t_13 = 0;
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
goto __pyx_L12_except_return;
}
+1773: except ValueError:
__pyx_t_10 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(((PyTypeObject*)PyExc_ValueError)))); if (__pyx_t_10) { __Pyx_AddTraceback("datamodel.converters._handle_dataclass_type", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_11, &__pyx_t_1, &__pyx_t_2) < 0) __PYX_ERR(0, 1773, __pyx_L11_except_error) __Pyx_XGOTREF(__pyx_t_11); __Pyx_XGOTREF(__pyx_t_1); __Pyx_XGOTREF(__pyx_t_2);
1774: # replace in "value" dictionary the current "name" for "alias"
+1775: if alias:
if (__pyx_v_alias == Py_None) __pyx_t_3 = 0;
else
{
Py_ssize_t __pyx_temp = __Pyx_PyUnicode_IS_TRUE(__pyx_v_alias);
if (unlikely(((!CYTHON_ASSUME_SAFE_SIZE) && __pyx_temp < 0))) __PYX_ERR(0, 1775, __pyx_L11_except_error)
__pyx_t_3 = (__pyx_temp != 0);
}
if (__pyx_t_3) {
/* … */
}
+1776: value = value.copy()
__pyx_t_12 = __pyx_v_value;
__Pyx_INCREF(__pyx_t_12);
__pyx_t_6 = 0;
{
PyObject *__pyx_callargs[2] = {__pyx_t_12, NULL};
__pyx_t_13 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_copy, __pyx_callargs+__pyx_t_6, (1-__pyx_t_6) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
__Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1776, __pyx_L11_except_error)
__Pyx_GOTREF(__pyx_t_13);
}
__Pyx_DECREF_SET(__pyx_v_value, __pyx_t_13);
__pyx_t_13 = 0;
+1777: value[alias] = value.pop(name, None)
__pyx_t_12 = __pyx_v_value;
__Pyx_INCREF(__pyx_t_12);
__pyx_t_6 = 0;
{
PyObject *__pyx_callargs[3] = {__pyx_t_12, __pyx_v_name, Py_None};
__pyx_t_13 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_pop, __pyx_callargs+__pyx_t_6, (3-__pyx_t_6) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
__Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1777, __pyx_L11_except_error)
__Pyx_GOTREF(__pyx_t_13);
}
if (unlikely((PyObject_SetItem(__pyx_v_value, __pyx_v_alias, __pyx_t_13) < 0))) __PYX_ERR(0, 1777, __pyx_L11_except_error)
__Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
+1778: return _type(**value)
if (unlikely(__pyx_v_value == Py_None)) {
PyErr_SetString(PyExc_TypeError, "argument after ** must be a mapping, not NoneType");
__PYX_ERR(0, 1778, __pyx_L11_except_error)
}
if (likely(PyDict_CheckExact(__pyx_v_value))) {
__pyx_t_13 = PyDict_Copy(__pyx_v_value); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1778, __pyx_L11_except_error)
__Pyx_GOTREF(__pyx_t_13);
} else {
__pyx_t_13 = __Pyx_PyObject_CallOneArg((PyObject*)&PyDict_Type, __pyx_v_value); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1778, __pyx_L11_except_error)
__Pyx_GOTREF(__pyx_t_13);
}
__pyx_t_12 = __Pyx_PyObject_Call(__pyx_v__type, __pyx_mstate_global->__pyx_empty_tuple, __pyx_t_13); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1778, __pyx_L11_except_error)
__Pyx_GOTREF(__pyx_t_12);
__Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
{
PyObject *__pyx_temp;
{
__pyx_temp = __pyx_r;
__pyx_r = __pyx_t_12;
}
__Pyx_XDECREF(__pyx_temp);
}
__pyx_t_12 = 0;
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
goto __pyx_L12_except_return;
}
+1779: except Exception as exc:
__pyx_t_10 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(((PyTypeObject*)PyExc_Exception)))); if (__pyx_t_10) { __Pyx_AddTraceback("datamodel.converters._handle_dataclass_type", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_2, &__pyx_t_1, &__pyx_t_11) < 0) __PYX_ERR(0, 1779, __pyx_L11_except_error) __Pyx_XGOTREF(__pyx_t_2); __Pyx_XGOTREF(__pyx_t_1); __Pyx_XGOTREF(__pyx_t_11); __Pyx_INCREF(__pyx_t_1); __pyx_v_exc = __pyx_t_1; /*try:*/ { /* … */ /*finally:*/ { __pyx_L36_error:; /*exception exit:*/{ __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign __pyx_t_24 = 0; __pyx_t_25 = 0; __pyx_t_26 = 0; __pyx_t_27 = 0; __pyx_t_28 = 0; __pyx_t_29 = 0; __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0; __Pyx_XDECREF(__pyx_t_16); __pyx_t_16 = 0; __Pyx_XDECREF(__pyx_t_17); __pyx_t_17 = 0; __Pyx_XDECREF(__pyx_t_19); __pyx_t_19 = 0; __Pyx_XDECREF(__pyx_t_20); __pyx_t_20 = 0; __Pyx_XDECREF(__pyx_t_22); __pyx_t_22 = 0; __Pyx_ExceptionSwap(&__pyx_t_27, &__pyx_t_28, &__pyx_t_29); if ( unlikely(__Pyx_GetException(&__pyx_t_24, &__pyx_t_25, &__pyx_t_26) < 0)) __Pyx_ErrFetch(&__pyx_t_24, &__pyx_t_25, &__pyx_t_26); __Pyx_XGOTREF(__pyx_t_24); __Pyx_XGOTREF(__pyx_t_25); __Pyx_XGOTREF(__pyx_t_26); __Pyx_XGOTREF(__pyx_t_27); __Pyx_XGOTREF(__pyx_t_28); __Pyx_XGOTREF(__pyx_t_29); __pyx_t_10 = __pyx_lineno; __pyx_t_18 = __pyx_clineno; __pyx_t_23 = __pyx_filename; { __Pyx_DECREF(__pyx_v_exc); __pyx_v_exc = 0; } __Pyx_XGIVEREF(__pyx_t_27); __Pyx_XGIVEREF(__pyx_t_28); __Pyx_XGIVEREF(__pyx_t_29); __Pyx_ExceptionReset(__pyx_t_27, __pyx_t_28, __pyx_t_29); __Pyx_XGIVEREF(__pyx_t_24); __Pyx_XGIVEREF(__pyx_t_25); __Pyx_XGIVEREF(__pyx_t_26); __Pyx_ErrRestore(__pyx_t_24, __pyx_t_25, __pyx_t_26); __pyx_t_24 = 0; __pyx_t_25 = 0; __pyx_t_26 = 0; __pyx_t_27 = 0; __pyx_t_28 = 0; __pyx_t_29 = 0; __pyx_lineno = __pyx_t_10; __pyx_clineno = __pyx_t_18; __pyx_filename = __pyx_t_23; goto __pyx_L11_except_error; } } } goto __pyx_L11_except_error;
+1780: raise ValueError(
__pyx_t_13 = NULL;
+1781: f"Invalid value for {name}:{_type} == {value}, error: {exc}"
__pyx_t_17 = __Pyx_PyUnicode_Unicode(__pyx_v_name); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 1781, __pyx_L36_error) __Pyx_GOTREF(__pyx_t_17); __pyx_t_16 = __Pyx_PyObject_FormatSimple(__pyx_v__type, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 1781, __pyx_L36_error) __Pyx_GOTREF(__pyx_t_16); __pyx_t_19 = __Pyx_PyObject_FormatSimple(__pyx_v_value, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 1781, __pyx_L36_error) __Pyx_GOTREF(__pyx_t_19); __pyx_t_20 = __Pyx_PyObject_FormatSimple(__pyx_v_exc, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 1781, __pyx_L36_error) __Pyx_GOTREF(__pyx_t_20); __pyx_t_21[0] = __pyx_mstate_global->__pyx_kp_u_Invalid_value_for; __pyx_t_21[1] = __pyx_t_17; __pyx_t_21[2] = __pyx_mstate_global->__pyx_kp_u__4; __pyx_t_21[3] = __pyx_t_16; __pyx_t_21[4] = __pyx_mstate_global->__pyx_kp_u__9; __pyx_t_21[5] = __pyx_t_19; __pyx_t_21[6] = __pyx_mstate_global->__pyx_kp_u_error; __pyx_t_21[7] = __pyx_t_20; __pyx_t_15 = 32; #if __Pyx_PyUnicode_Join_CAN_USE_KIND_AND_LENGTH for (Py_ssize_t i=1; i <= 7; i += 2) { Py_ssize_t l = __Pyx_PyUnicode_GET_LENGTH(__pyx_t_21[i]); __pyx_t_15 += l; } #endif __pyx_t_10 = 0; #if __Pyx_PyUnicode_Join_CAN_USE_KIND_AND_LENGTH for (Py_ssize_t i=1; i <= 7; i += 2) { int l = __Pyx_PyUnicode_KIND_04(__pyx_t_21[i]); __pyx_t_10 |= l; } #endif __pyx_t_22 = __Pyx_PyUnicode_Join(__pyx_t_21, 8, __pyx_t_15, __pyx_t_10); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 1781, __pyx_L36_error) __Pyx_GOTREF(__pyx_t_22); __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0; __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0; __pyx_t_6 = 1; { PyObject *__pyx_callargs[2] = {__pyx_t_13, __pyx_t_22}; __pyx_t_12 = __Pyx_PyObject_FastCall((PyObject*)(((PyTypeObject*)PyExc_ValueError)), __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0; __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1780, __pyx_L36_error) __Pyx_GOTREF(__pyx_t_12); } __Pyx_Raise(__pyx_t_12, 0, 0, 0); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __PYX_ERR(0, 1780, __pyx_L36_error) }
1782: )
+1783: try:
{
/*try:*/ {
/* … */
}
__pyx_L42_error:;
__Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
__Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
__Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
__Pyx_XDECREF(__pyx_t_16); __pyx_t_16 = 0;
__Pyx_XDECREF(__pyx_t_17); __pyx_t_17 = 0;
__Pyx_XDECREF(__pyx_t_19); __pyx_t_19 = 0;
__Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_XDECREF(__pyx_t_20); __pyx_t_20 = 0;
__Pyx_XDECREF(__pyx_t_22); __pyx_t_22 = 0;
/* … */
__pyx_L44_except_error:;
__Pyx_XGIVEREF(__pyx_t_9);
__Pyx_XGIVEREF(__pyx_t_8);
__Pyx_XGIVEREF(__pyx_t_7);
__Pyx_ExceptionReset(__pyx_t_9, __pyx_t_8, __pyx_t_7);
goto __pyx_L1_error;
__pyx_L46_try_return:;
__Pyx_XGIVEREF(__pyx_t_9);
__Pyx_XGIVEREF(__pyx_t_8);
__Pyx_XGIVEREF(__pyx_t_7);
__Pyx_ExceptionReset(__pyx_t_9, __pyx_t_8, __pyx_t_7);
goto __pyx_L0;
}
+1784: if PyObject_IsInstance(value, (list, tuple)):
__pyx_t_11 = PyTuple_New(2); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1784, __pyx_L42_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_INCREF((PyObject *)(&PyList_Type)); __Pyx_GIVEREF((PyObject *)(&PyList_Type)); if (__Pyx_PyTuple_SET_ITEM(__pyx_t_11, 0, ((PyObject *)(&PyList_Type))) != (0)) __PYX_ERR(0, 1784, __pyx_L42_error); __Pyx_INCREF((PyObject *)(&PyTuple_Type)); __Pyx_GIVEREF((PyObject *)(&PyTuple_Type)); if (__Pyx_PyTuple_SET_ITEM(__pyx_t_11, 1, ((PyObject *)(&PyTuple_Type))) != (0)) __PYX_ERR(0, 1784, __pyx_L42_error); __pyx_t_3 = PyObject_IsInstance(__pyx_v_value, __pyx_t_11); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(0, 1784, __pyx_L42_error) __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; if (__pyx_t_3) { /* … */ }
+1785: return _type(*value)
__pyx_t_11 = __Pyx_PySequence_Tuple(__pyx_v_value); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1785, __pyx_L42_error) __Pyx_GOTREF(__pyx_t_11); __pyx_t_1 = __Pyx_PyObject_Call(__pyx_v__type, __pyx_t_11, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1785, __pyx_L42_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; __pyx_r = __pyx_t_1; } __Pyx_XDECREF(__pyx_temp); } __pyx_t_1 = 0; goto __pyx_L46_try_return;
1786: else:
1787: # If a converter exists for this type, use it:
+1788: if converter:
/*else*/ {
__pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_v_converter); if (unlikely((__pyx_t_3 < 0))) __PYX_ERR(0, 1788, __pyx_L42_error)
if (__pyx_t_3) {
/* … */
}
+1789: return converter(name, value, _type, parent)
__pyx_t_11 = NULL;
__Pyx_INCREF(__pyx_v_converter);
__pyx_t_2 = __pyx_v_converter;
__pyx_t_6 = 1;
#if CYTHON_UNPACK_METHODS
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_2, __pyx__function);
__pyx_t_6 = 0;
}
#endif
{
PyObject *__pyx_callargs[5] = {__pyx_t_11, __pyx_v_name, __pyx_v_value, __pyx_v__type, __pyx_v_parent};
__pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_2, __pyx_callargs+__pyx_t_6, (5-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
__Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1789, __pyx_L42_error)
__Pyx_GOTREF(__pyx_t_1);
}
{
PyObject *__pyx_temp;
{
__pyx_temp = __pyx_r;
__pyx_r = __pyx_t_1;
}
__Pyx_XDECREF(__pyx_temp);
}
__pyx_t_1 = 0;
goto __pyx_L46_try_return;
+1790: if as_objects:
__pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_v_as_objects); if (unlikely((__pyx_t_3 < 0))) __PYX_ERR(0, 1790, __pyx_L42_error) if (__pyx_t_3) { /* … */ }
1791: # If alias exists, adjust the key passed to the dataclass
+1792: if not alias:
if (__pyx_v_alias == Py_None) __pyx_t_3 = 0;
else
{
Py_ssize_t __pyx_temp = __Pyx_PyUnicode_IS_TRUE(__pyx_v_alias);
if (unlikely(((!CYTHON_ASSUME_SAFE_SIZE) && __pyx_temp < 0))) __PYX_ERR(0, 1792, __pyx_L42_error)
__pyx_t_3 = (__pyx_temp != 0);
}
__pyx_t_4 = (!__pyx_t_3);
if (__pyx_t_4) {
/* … */
}
+1793: alias = name
__Pyx_INCREF(__pyx_v_name); __Pyx_DECREF_SET(__pyx_v_alias, __pyx_v_name);
1794: # convert the list to the dataclass
+1795: return _type(**{alias: value})
__pyx_t_2 = NULL;
__Pyx_INCREF(__pyx_v__type);
__pyx_t_11 = __pyx_v__type;
__pyx_t_12 = PyTuple_New(1); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1795, __pyx_L42_error)
__Pyx_GOTREF(__pyx_t_12);
__Pyx_INCREF(__pyx_v_alias);
__Pyx_GIVEREF(__pyx_v_alias);
if (__Pyx_PyTuple_SET_ITEM(__pyx_t_12, 0, __pyx_v_alias) != (0)) __PYX_ERR(0, 1795, __pyx_L42_error);
__pyx_t_6 = 1;
#if CYTHON_UNPACK_METHODS
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_11, __pyx__function);
__pyx_t_6 = 0;
}
#endif
{
PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_v_value};
#if CYTHON_VECTORCALL
__pyx_t_22 = __pyx_t_12;
if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 1795, __pyx_L42_error)
__Pyx_INCREF(__pyx_t_22);
if (__Pyx_CheckVectorcallKwarg(__pyx_t_22, 0) < (0)) __PYX_ERR(0, 1795, __pyx_L42_error)
#else
{
PyObject *__pyx_temp[1] = {__pyx_v_alias};
if (__Pyx_CheckVectorcallKwarg(__pyx_temp, 0) < (0)) __PYX_ERR(0, 1795, __pyx_L42_error)
__pyx_t_22 = __Pyx_MakeKwargDict(__pyx_temp, __pyx_callargs+1, 1);
if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 1795, __pyx_L42_error)
__Pyx_GOTREF(__pyx_t_22);
}
#endif
__pyx_t_1 = __Pyx_Object_VectorcallKwds((PyObject*)__pyx_t_11, __pyx_callargs+__pyx_t_6, (1-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET), __pyx_t_22);
__Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
__Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
__Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1795, __pyx_L42_error)
__Pyx_GOTREF(__pyx_t_1);
}
{
PyObject *__pyx_temp;
{
__pyx_temp = __pyx_r;
__pyx_r = __pyx_t_1;
}
__Pyx_XDECREF(__pyx_temp);
}
__pyx_t_1 = 0;
goto __pyx_L46_try_return;
+1796: if PyObject_IsInstance(value, (int, str, UUID)):
__Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_UUID); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1796, __pyx_L42_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_11 = PyTuple_New(3); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1796, __pyx_L42_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_INCREF((PyObject *)(&PyLong_Type)); __Pyx_GIVEREF((PyObject *)(&PyLong_Type)); if (__Pyx_PyTuple_SET_ITEM(__pyx_t_11, 0, ((PyObject *)(&PyLong_Type))) != (0)) __PYX_ERR(0, 1796, __pyx_L42_error); __Pyx_INCREF((PyObject *)(&PyUnicode_Type)); __Pyx_GIVEREF((PyObject *)(&PyUnicode_Type)); if (__Pyx_PyTuple_SET_ITEM(__pyx_t_11, 1, ((PyObject *)(&PyUnicode_Type))) != (0)) __PYX_ERR(0, 1796, __pyx_L42_error); __Pyx_GIVEREF(__pyx_t_1); if (__Pyx_PyTuple_SET_ITEM(__pyx_t_11, 2, __pyx_t_1) != (0)) __PYX_ERR(0, 1796, __pyx_L42_error); __pyx_t_1 = 0; __pyx_t_4 = PyObject_IsInstance(__pyx_v_value, __pyx_t_11); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(0, 1796, __pyx_L42_error) __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; if (__pyx_t_4) { /* … */ }
+1797: return value
{
PyObject *__pyx_temp;
{
__pyx_temp = __pyx_r;
__Pyx_INCREF(__pyx_v_value);
__pyx_r = __pyx_v_value;
}
__Pyx_XDECREF(__pyx_temp);
}
goto __pyx_L46_try_return;
+1798: if isdc:
if (__pyx_v_isdc) {
/* … */
}
+1799: if not alias:
if (__pyx_v_alias == Py_None) __pyx_t_4 = 0;
else
{
Py_ssize_t __pyx_temp = __Pyx_PyUnicode_IS_TRUE(__pyx_v_alias);
if (unlikely(((!CYTHON_ASSUME_SAFE_SIZE) && __pyx_temp < 0))) __PYX_ERR(0, 1799, __pyx_L42_error)
__pyx_t_4 = (__pyx_temp != 0);
}
__pyx_t_3 = (!__pyx_t_4);
if (__pyx_t_3) {
/* … */
}
+1800: alias = name
__Pyx_INCREF(__pyx_v_name); __Pyx_DECREF_SET(__pyx_v_alias, __pyx_v_name);
+1801: return _type(**{alias: value})
__pyx_t_1 = NULL;
__Pyx_INCREF(__pyx_v__type);
__pyx_t_22 = __pyx_v__type;
__pyx_t_12 = PyTuple_New(1); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1801, __pyx_L42_error)
__Pyx_GOTREF(__pyx_t_12);
__Pyx_INCREF(__pyx_v_alias);
__Pyx_GIVEREF(__pyx_v_alias);
if (__Pyx_PyTuple_SET_ITEM(__pyx_t_12, 0, __pyx_v_alias) != (0)) __PYX_ERR(0, 1801, __pyx_L42_error);
__pyx_t_6 = 1;
#if CYTHON_UNPACK_METHODS
if (unlikely(PyMethod_Check(__pyx_t_22))) {
__pyx_t_1 = PyMethod_GET_SELF(__pyx_t_22);
assert(__pyx_t_1);
PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_22);
__Pyx_INCREF(__pyx_t_1);
__Pyx_INCREF(__pyx__function);
__Pyx_DECREF_SET(__pyx_t_22, __pyx__function);
__pyx_t_6 = 0;
}
#endif
{
PyObject *__pyx_callargs[2] = {__pyx_t_1, __pyx_v_value};
#if CYTHON_VECTORCALL
__pyx_t_2 = __pyx_t_12;
if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1801, __pyx_L42_error)
__Pyx_INCREF(__pyx_t_2);
if (__Pyx_CheckVectorcallKwarg(__pyx_t_2, 0) < (0)) __PYX_ERR(0, 1801, __pyx_L42_error)
#else
{
PyObject *__pyx_temp[1] = {__pyx_v_alias};
if (__Pyx_CheckVectorcallKwarg(__pyx_temp, 0) < (0)) __PYX_ERR(0, 1801, __pyx_L42_error)
__pyx_t_2 = __Pyx_MakeKwargDict(__pyx_temp, __pyx_callargs+1, 1);
if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1801, __pyx_L42_error)
__Pyx_GOTREF(__pyx_t_2);
}
#endif
__pyx_t_11 = __Pyx_Object_VectorcallKwds((PyObject*)__pyx_t_22, __pyx_callargs+__pyx_t_6, (1-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET), __pyx_t_2);
__Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1801, __pyx_L42_error)
__Pyx_GOTREF(__pyx_t_11);
}
{
PyObject *__pyx_temp;
{
__pyx_temp = __pyx_r;
__pyx_r = __pyx_t_11;
}
__Pyx_XDECREF(__pyx_temp);
}
__pyx_t_11 = 0;
goto __pyx_L46_try_return;
1802: else:
+1803: return _type(value)
/*else*/ {
__pyx_t_22 = NULL;
__Pyx_INCREF(__pyx_v__type);
__pyx_t_2 = __pyx_v__type;
__pyx_t_6 = 1;
#if CYTHON_UNPACK_METHODS
if (unlikely(PyMethod_Check(__pyx_t_2))) {
__pyx_t_22 = PyMethod_GET_SELF(__pyx_t_2);
assert(__pyx_t_22);
PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_2);
__Pyx_INCREF(__pyx_t_22);
__Pyx_INCREF(__pyx__function);
__Pyx_DECREF_SET(__pyx_t_2, __pyx__function);
__pyx_t_6 = 0;
}
#endif
{
PyObject *__pyx_callargs[2] = {__pyx_t_22, __pyx_v_value};
__pyx_t_11 = __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_22); __pyx_t_22 = 0;
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1803, __pyx_L42_error)
__Pyx_GOTREF(__pyx_t_11);
}
{
PyObject *__pyx_temp;
{
__pyx_temp = __pyx_r;
__pyx_r = __pyx_t_11;
}
__Pyx_XDECREF(__pyx_temp);
}
__pyx_t_11 = 0;
goto __pyx_L46_try_return;
}
}
+1804: except Exception as exc:
__pyx_t_18 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(((PyTypeObject*)PyExc_Exception)))); if (__pyx_t_18) { __Pyx_AddTraceback("datamodel.converters._handle_dataclass_type", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_11, &__pyx_t_2, &__pyx_t_22) < 0) __PYX_ERR(0, 1804, __pyx_L44_except_error) __Pyx_XGOTREF(__pyx_t_11); __Pyx_XGOTREF(__pyx_t_2); __Pyx_XGOTREF(__pyx_t_22); __Pyx_INCREF(__pyx_t_2); __pyx_v_exc = __pyx_t_2; /*try:*/ { /* … */ /*finally:*/ { __pyx_L60_error:; /*exception exit:*/{ __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign __pyx_t_29 = 0; __pyx_t_28 = 0; __pyx_t_27 = 0; __pyx_t_26 = 0; __pyx_t_25 = 0; __pyx_t_24 = 0; __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0; __Pyx_XDECREF(__pyx_t_16); __pyx_t_16 = 0; __Pyx_XDECREF(__pyx_t_17); __pyx_t_17 = 0; __Pyx_XDECREF(__pyx_t_19); __pyx_t_19 = 0; __Pyx_XDECREF(__pyx_t_20); __pyx_t_20 = 0; __Pyx_ExceptionSwap(&__pyx_t_26, &__pyx_t_25, &__pyx_t_24); if ( unlikely(__Pyx_GetException(&__pyx_t_29, &__pyx_t_28, &__pyx_t_27) < 0)) __Pyx_ErrFetch(&__pyx_t_29, &__pyx_t_28, &__pyx_t_27); __Pyx_XGOTREF(__pyx_t_29); __Pyx_XGOTREF(__pyx_t_28); __Pyx_XGOTREF(__pyx_t_27); __Pyx_XGOTREF(__pyx_t_26); __Pyx_XGOTREF(__pyx_t_25); __Pyx_XGOTREF(__pyx_t_24); __pyx_t_18 = __pyx_lineno; __pyx_t_10 = __pyx_clineno; __pyx_t_23 = __pyx_filename; { __Pyx_DECREF(__pyx_v_exc); __pyx_v_exc = 0; } __Pyx_XGIVEREF(__pyx_t_26); __Pyx_XGIVEREF(__pyx_t_25); __Pyx_XGIVEREF(__pyx_t_24); __Pyx_ExceptionReset(__pyx_t_26, __pyx_t_25, __pyx_t_24); __Pyx_XGIVEREF(__pyx_t_29); __Pyx_XGIVEREF(__pyx_t_28); __Pyx_XGIVEREF(__pyx_t_27); __Pyx_ErrRestore(__pyx_t_29, __pyx_t_28, __pyx_t_27); __pyx_t_29 = 0; __pyx_t_28 = 0; __pyx_t_27 = 0; __pyx_t_26 = 0; __pyx_t_25 = 0; __pyx_t_24 = 0; __pyx_lineno = __pyx_t_18; __pyx_clineno = __pyx_t_10; __pyx_filename = __pyx_t_23; goto __pyx_L44_except_error; } } } goto __pyx_L44_except_error;
+1805: raise ValueError(
__pyx_t_1 = NULL;
+1806: f"Invalid value for {name}:{_type} == {value}, error: {exc}"
__pyx_t_13 = __Pyx_PyUnicode_Unicode(__pyx_v_name); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1806, __pyx_L60_error) __Pyx_GOTREF(__pyx_t_13); __pyx_t_20 = __Pyx_PyObject_FormatSimple(__pyx_v__type, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 1806, __pyx_L60_error) __Pyx_GOTREF(__pyx_t_20); __pyx_t_19 = __Pyx_PyObject_FormatSimple(__pyx_v_value, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 1806, __pyx_L60_error) __Pyx_GOTREF(__pyx_t_19); __pyx_t_16 = __Pyx_PyObject_FormatSimple(__pyx_v_exc, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 1806, __pyx_L60_error) __Pyx_GOTREF(__pyx_t_16); __pyx_t_21[0] = __pyx_mstate_global->__pyx_kp_u_Invalid_value_for; __pyx_t_21[1] = __pyx_t_13; __pyx_t_21[2] = __pyx_mstate_global->__pyx_kp_u__4; __pyx_t_21[3] = __pyx_t_20; __pyx_t_21[4] = __pyx_mstate_global->__pyx_kp_u__9; __pyx_t_21[5] = __pyx_t_19; __pyx_t_21[6] = __pyx_mstate_global->__pyx_kp_u_error; __pyx_t_21[7] = __pyx_t_16; __pyx_t_15 = 32; #if __Pyx_PyUnicode_Join_CAN_USE_KIND_AND_LENGTH for (Py_ssize_t i=1; i <= 7; i += 2) { Py_ssize_t l = __Pyx_PyUnicode_GET_LENGTH(__pyx_t_21[i]); __pyx_t_15 += l; } #endif __pyx_t_18 = 0; #if __Pyx_PyUnicode_Join_CAN_USE_KIND_AND_LENGTH for (Py_ssize_t i=1; i <= 7; i += 2) { int l = __Pyx_PyUnicode_KIND_04(__pyx_t_21[i]); __pyx_t_18 |= l; } #endif __pyx_t_17 = __Pyx_PyUnicode_Join(__pyx_t_21, 8, __pyx_t_15, __pyx_t_18); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 1806, __pyx_L60_error) __Pyx_GOTREF(__pyx_t_17); __Pyx_DECREF(__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; __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; __pyx_t_6 = 1; { PyObject *__pyx_callargs[2] = {__pyx_t_1, __pyx_t_17}; __pyx_t_12 = __Pyx_PyObject_FastCall((PyObject*)(((PyTypeObject*)PyExc_ValueError)), __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_17); __pyx_t_17 = 0; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1805, __pyx_L60_error) __Pyx_GOTREF(__pyx_t_12); } __Pyx_Raise(__pyx_t_12, 0, 0, 0); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __PYX_ERR(0, 1805, __pyx_L60_error) }
1807: )
1808:
+1809: cdef object _handle_list_of_dataclasses(
static PyObject *__pyx_f_9datamodel_10converters__handle_list_of_dataclasses(CYTHON_UNUSED PyObject *__pyx_v_field, PyObject *__pyx_v_name, PyObject *__pyx_v_value, PyObject *__pyx_v__type, struct __pyx_opt_args_9datamodel_10converters__handle_list_of_dataclasses *__pyx_optional_args) {
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_4);
__Pyx_XDECREF(__pyx_t_5);
__Pyx_XDECREF(__pyx_t_9);
__Pyx_XDECREF(__pyx_t_10);
__Pyx_AddTraceback("datamodel.converters._handle_list_of_dataclasses", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = 0;
__pyx_L0:;
__Pyx_XDECREF(__pyx_v_sub_type);
__Pyx_XDECREF(__pyx_v_key);
__Pyx_XDECREF(__pyx_v_converter);
__Pyx_XDECREF(__pyx_v_new_list);
__Pyx_XDECREF(__pyx_v_item);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
struct __pyx_opt_args_9datamodel_10converters__handle_list_of_dataclasses {
int __pyx_n;
PyObject *parent;
};
1810: object field,
1811: str name,
1812: object value,
1813: object _type,
+1814: object parent = None
PyObject *__pyx_v_parent = ((PyObject *)Py_None);
PyObject *__pyx_v_sub_type = NULL;
PyObject *__pyx_v_key = NULL;
PyObject *__pyx_v_converter = NULL;
PyObject *__pyx_v_new_list = NULL;
PyObject *__pyx_v_item = NULL;
PyObject *__pyx_r = NULL;
if (__pyx_optional_args) {
if (__pyx_optional_args->__pyx_n > 0) {
__pyx_v_parent = __pyx_optional_args->parent;
}
}
1815: ):
1816: """
1817: _handle_list_of_dataclasses.
1818:
1819: Process a list field that is annotated as List[SomeDataclass].
1820: If there's a registered converter for the sub-dataclass, call it;
1821: otherwise, build the sub-dataclass using default logic.
1822: """
+1823: try:
{
/*try:*/ {
/* … */
}
__Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
goto __pyx_L8_try_end;
__pyx_L3_error:;
__Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
__Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
__Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
__Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
__pyx_L5_except_error:;
__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);
goto __pyx_L1_error;
__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);
goto __pyx_L0;
__pyx_L4_exception_handled:;
__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_L8_try_end:;
}
+1824: sub_type = _type.__args__[0]
__pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v__type, __pyx_mstate_global->__pyx_n_u_args); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1824, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = __Pyx_GetItemInt(__pyx_t_4, 0, long, 1, __Pyx_PyLong_From_long, 0, 1, 1, __Pyx_ReferenceSharing_OwnStrongReference); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1824, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_v_sub_type = __pyx_t_5; __pyx_t_5 = 0;
+1825: if is_dc(sub_type):
__pyx_t_6 = __pyx_f_9datamodel_10converters_is_dc(__pyx_v_sub_type); if (unlikely(__pyx_t_6 == ((int)-1) && PyErr_Occurred())) __PYX_ERR(0, 1825, __pyx_L3_error) if (__pyx_t_6) { /* … */ }
+1826: key = (sub_type, name)
__pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1826, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_INCREF(__pyx_v_sub_type); __Pyx_GIVEREF(__pyx_v_sub_type); if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_v_sub_type) != (0)) __PYX_ERR(0, 1826, __pyx_L3_error); __Pyx_INCREF(__pyx_v_name); __Pyx_GIVEREF(__pyx_v_name); if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_v_name) != (0)) __PYX_ERR(0, 1826, __pyx_L3_error); __pyx_v_key = ((PyObject*)__pyx_t_5); __pyx_t_5 = 0;
+1827: converter = TYPE_PARSERS.get(key) or TYPE_PARSERS.get(_type)
if (unlikely(__pyx_v_9datamodel_10converters_TYPE_PARSERS == Py_None)) {
PyErr_Format(PyExc_AttributeError, "\047NoneType\047 object has no attribute \047%.30s\047", "get");
__PYX_ERR(0, 1827, __pyx_L3_error)
}
__pyx_t_4 = __Pyx_PyDict_GetItemDefault(__pyx_v_9datamodel_10converters_TYPE_PARSERS, __pyx_v_key, Py_None); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1827, __pyx_L3_error)
__Pyx_GOTREF(__pyx_t_4);
__pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(0, 1827, __pyx_L3_error)
if (!__pyx_t_6) {
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
} else {
__Pyx_INCREF(__pyx_t_4);
__pyx_t_5 = __pyx_t_4;
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
goto __pyx_L10_bool_binop_done;
}
if (unlikely(__pyx_v_9datamodel_10converters_TYPE_PARSERS == Py_None)) {
PyErr_Format(PyExc_AttributeError, "\047NoneType\047 object has no attribute \047%.30s\047", "get");
__PYX_ERR(0, 1827, __pyx_L3_error)
}
__pyx_t_4 = __Pyx_PyDict_GetItemDefault(__pyx_v_9datamodel_10converters_TYPE_PARSERS, __pyx_v__type, Py_None); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1827, __pyx_L3_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_INCREF(__pyx_t_4);
__pyx_t_5 = __pyx_t_4;
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__pyx_L10_bool_binop_done:;
__pyx_v_converter = __pyx_t_5;
__pyx_t_5 = 0;
+1828: new_list = []
__pyx_t_5 = PyList_New(0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1828, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_5); __pyx_v_new_list = ((PyObject*)__pyx_t_5); __pyx_t_5 = 0;
+1829: for item in value:
if (likely(PyList_CheckExact(__pyx_v_value)) || PyTuple_CheckExact(__pyx_v_value)) { __pyx_t_5 = __pyx_v_value; __Pyx_INCREF(__pyx_t_5); __pyx_t_7 = 0; __pyx_t_8 = NULL; } else { __pyx_t_7 = -1; __pyx_t_5 = PyObject_GetIter(__pyx_v_value); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1829, __pyx_L3_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, 1829, __pyx_L3_error) } for (;;) { if (likely(!__pyx_t_8)) { if (likely(PyList_CheckExact(__pyx_t_5))) { { 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, 1829, __pyx_L3_error) #endif if (__pyx_t_7 >= __pyx_temp) break; } __pyx_t_4 = __Pyx_PyList_GET_ITEM_REF(__pyx_t_5, __pyx_t_7, __Pyx_ReferenceSharing_OwnStrongReference); ++__pyx_t_7; } else { { 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, 1829, __pyx_L3_error) #endif if (__pyx_t_7 >= __pyx_temp) break; } #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_4 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_5, __pyx_t_7)); #else __pyx_t_4 = __Pyx_PySequence_ITEM(__pyx_t_5, __pyx_t_7); #endif ++__pyx_t_7; } if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1829, __pyx_L3_error) } else { __pyx_t_4 = __pyx_t_8(__pyx_t_5); 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, 1829, __pyx_L3_error) PyErr_Clear(); } break; } } __Pyx_GOTREF(__pyx_t_4); __Pyx_XDECREF_SET(__pyx_v_item, __pyx_t_4); __pyx_t_4 = 0; /* … */ } __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+1830: if converter:
__pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_v_converter); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(0, 1830, __pyx_L3_error) if (__pyx_t_6) { /* … */ goto __pyx_L14; }
+1831: new_list.append(converter(name, item, sub_type, parent))
__pyx_t_9 = NULL;
__Pyx_INCREF(__pyx_v_converter);
__pyx_t_10 = __pyx_v_converter;
__pyx_t_11 = 1;
#if CYTHON_UNPACK_METHODS
if (unlikely(PyMethod_Check(__pyx_t_10))) {
__pyx_t_9 = PyMethod_GET_SELF(__pyx_t_10);
assert(__pyx_t_9);
PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_10);
__Pyx_INCREF(__pyx_t_9);
__Pyx_INCREF(__pyx__function);
__Pyx_DECREF_SET(__pyx_t_10, __pyx__function);
__pyx_t_11 = 0;
}
#endif
{
PyObject *__pyx_callargs[5] = {__pyx_t_9, __pyx_v_name, __pyx_v_item, __pyx_v_sub_type, __pyx_v_parent};
__pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_10, __pyx_callargs+__pyx_t_11, (5-__pyx_t_11) | (__pyx_t_11*__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, 1831, __pyx_L3_error)
__Pyx_GOTREF(__pyx_t_4);
}
__pyx_t_12 = __Pyx_PyList_Append(__pyx_v_new_list, __pyx_t_4); if (unlikely(__pyx_t_12 == ((int)-1))) __PYX_ERR(0, 1831, __pyx_L3_error)
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+1832: elif isinstance(item, dict):
__pyx_t_6 = PyDict_Check(__pyx_v_item);
if (__pyx_t_6) {
/* … */
goto __pyx_L14;
}
+1833: new_list.append(sub_type(**item))
if (unlikely(__pyx_v_item == Py_None)) {
PyErr_SetString(PyExc_TypeError, "argument after ** must be a mapping, not NoneType");
__PYX_ERR(0, 1833, __pyx_L3_error)
}
if (likely(PyDict_CheckExact(__pyx_v_item))) {
__pyx_t_4 = PyDict_Copy(__pyx_v_item); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1833, __pyx_L3_error)
__Pyx_GOTREF(__pyx_t_4);
} else {
__pyx_t_4 = __Pyx_PyObject_CallOneArg((PyObject*)&PyDict_Type, __pyx_v_item); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1833, __pyx_L3_error)
__Pyx_GOTREF(__pyx_t_4);
}
__pyx_t_10 = __Pyx_PyObject_Call(__pyx_v_sub_type, __pyx_mstate_global->__pyx_empty_tuple, __pyx_t_4); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1833, __pyx_L3_error)
__Pyx_GOTREF(__pyx_t_10);
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__pyx_t_12 = __Pyx_PyList_Append(__pyx_v_new_list, __pyx_t_10); if (unlikely(__pyx_t_12 == ((int)-1))) __PYX_ERR(0, 1833, __pyx_L3_error)
__Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
1834: else:
+1835: new_list.append(item)
/*else*/ {
__pyx_t_12 = __Pyx_PyList_Append(__pyx_v_new_list, __pyx_v_item); if (unlikely(__pyx_t_12 == ((int)-1))) __PYX_ERR(0, 1835, __pyx_L3_error)
}
__pyx_L14:;
+1836: return new_list
{
PyObject *__pyx_temp;
{
__pyx_temp = __pyx_r;
__Pyx_INCREF(__pyx_v_new_list);
__pyx_r = __pyx_v_new_list;
}
__Pyx_XDECREF(__pyx_temp);
}
goto __pyx_L7_try_return;
+1837: except ValueError:
__pyx_t_13 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(((PyTypeObject*)PyExc_ValueError)))); if (__pyx_t_13) { __Pyx_AddTraceback("datamodel.converters._handle_list_of_dataclasses", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_10, &__pyx_t_4) < 0) __PYX_ERR(0, 1837, __pyx_L5_except_error) __Pyx_XGOTREF(__pyx_t_5); __Pyx_XGOTREF(__pyx_t_10); __Pyx_XGOTREF(__pyx_t_4);
+1838: raise
__Pyx_GIVEREF(__pyx_t_5); __Pyx_GIVEREF(__pyx_t_10); __Pyx_XGIVEREF(__pyx_t_4); __Pyx_ErrRestoreWithState(__pyx_t_5, __pyx_t_10, __pyx_t_4); __pyx_t_5 = 0; __pyx_t_10 = 0; __pyx_t_4 = 0; __PYX_ERR(0, 1838, __pyx_L5_except_error) }
+1839: except AttributeError:
__pyx_t_13 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(((PyTypeObject*)PyExc_AttributeError)))); if (__pyx_t_13) { __Pyx_ErrRestore(0,0,0); goto __pyx_L4_exception_handled; } goto __pyx_L5_except_error;
1840: pass
+1841: return value
{
PyObject *__pyx_temp;
{
__pyx_temp = __pyx_r;
__Pyx_INCREF(__pyx_v_value);
__pyx_r = __pyx_v_value;
}
__Pyx_XDECREF(__pyx_temp);
}
goto __pyx_L0;
1842:
1843: # Helper function to handle sets of dataclasses
+1844: cdef object _handle_set_of_dataclasses(
static PyObject *__pyx_f_9datamodel_10converters__handle_set_of_dataclasses(CYTHON_UNUSED PyObject *__pyx_v_field, PyObject *__pyx_v_name, PyObject *__pyx_v_value, PyObject *__pyx_v__type, struct __pyx_opt_args_9datamodel_10converters__handle_set_of_dataclasses *__pyx_optional_args) {
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_4);
__Pyx_XDECREF(__pyx_t_5);
__Pyx_XDECREF(__pyx_t_9);
__Pyx_XDECREF(__pyx_t_10);
__Pyx_AddTraceback("datamodel.converters._handle_set_of_dataclasses", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = 0;
__pyx_L0:;
__Pyx_XDECREF(__pyx_v_sub_type);
__Pyx_XDECREF(__pyx_v_key);
__Pyx_XDECREF(__pyx_v_converter);
__Pyx_XDECREF(__pyx_v_new_set);
__Pyx_XDECREF(__pyx_v_item);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
struct __pyx_opt_args_9datamodel_10converters__handle_set_of_dataclasses {
int __pyx_n;
PyObject *parent;
};
1845: object field,
1846: str name,
1847: object value,
1848: object _type,
+1849: object parent = None
PyObject *__pyx_v_parent = ((PyObject *)Py_None);
PyObject *__pyx_v_sub_type = NULL;
PyObject *__pyx_v_key = NULL;
PyObject *__pyx_v_converter = NULL;
PyObject *__pyx_v_new_set = NULL;
PyObject *__pyx_v_item = NULL;
PyObject *__pyx_r = NULL;
if (__pyx_optional_args) {
if (__pyx_optional_args->__pyx_n > 0) {
__pyx_v_parent = __pyx_optional_args->parent;
}
}
1850: ):
1851: """
1852: _handle_set_of_dataclasses.
1853:
1854: Process a set field that is annotated as Set[SomeDataclass].
1855: If there's a registered converter for the sub-dataclass, call it;
1856: otherwise, build the sub-dataclass using default logic.
1857: """
+1858: try:
{
/*try:*/ {
/* … */
}
__Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
goto __pyx_L8_try_end;
__pyx_L3_error:;
__Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
__Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
__Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
__Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
__pyx_L5_except_error:;
__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);
goto __pyx_L1_error;
__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);
goto __pyx_L0;
__pyx_L4_exception_handled:;
__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_L8_try_end:;
}
+1859: sub_type = _type.__args__[0]
__pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v__type, __pyx_mstate_global->__pyx_n_u_args); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1859, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = __Pyx_GetItemInt(__pyx_t_4, 0, long, 1, __Pyx_PyLong_From_long, 0, 1, 1, __Pyx_ReferenceSharing_OwnStrongReference); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1859, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_v_sub_type = __pyx_t_5; __pyx_t_5 = 0;
+1860: if is_dc(sub_type):
__pyx_t_6 = __pyx_f_9datamodel_10converters_is_dc(__pyx_v_sub_type); if (unlikely(__pyx_t_6 == ((int)-1) && PyErr_Occurred())) __PYX_ERR(0, 1860, __pyx_L3_error) if (__pyx_t_6) { /* … */ }
+1861: key = (sub_type, name)
__pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1861, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_INCREF(__pyx_v_sub_type); __Pyx_GIVEREF(__pyx_v_sub_type); if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_v_sub_type) != (0)) __PYX_ERR(0, 1861, __pyx_L3_error); __Pyx_INCREF(__pyx_v_name); __Pyx_GIVEREF(__pyx_v_name); if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_v_name) != (0)) __PYX_ERR(0, 1861, __pyx_L3_error); __pyx_v_key = ((PyObject*)__pyx_t_5); __pyx_t_5 = 0;
+1862: converter = TYPE_PARSERS.get(key) or TYPE_PARSERS.get(_type)
if (unlikely(__pyx_v_9datamodel_10converters_TYPE_PARSERS == Py_None)) {
PyErr_Format(PyExc_AttributeError, "\047NoneType\047 object has no attribute \047%.30s\047", "get");
__PYX_ERR(0, 1862, __pyx_L3_error)
}
__pyx_t_4 = __Pyx_PyDict_GetItemDefault(__pyx_v_9datamodel_10converters_TYPE_PARSERS, __pyx_v_key, Py_None); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1862, __pyx_L3_error)
__Pyx_GOTREF(__pyx_t_4);
__pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(0, 1862, __pyx_L3_error)
if (!__pyx_t_6) {
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
} else {
__Pyx_INCREF(__pyx_t_4);
__pyx_t_5 = __pyx_t_4;
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
goto __pyx_L10_bool_binop_done;
}
if (unlikely(__pyx_v_9datamodel_10converters_TYPE_PARSERS == Py_None)) {
PyErr_Format(PyExc_AttributeError, "\047NoneType\047 object has no attribute \047%.30s\047", "get");
__PYX_ERR(0, 1862, __pyx_L3_error)
}
__pyx_t_4 = __Pyx_PyDict_GetItemDefault(__pyx_v_9datamodel_10converters_TYPE_PARSERS, __pyx_v__type, Py_None); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1862, __pyx_L3_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_INCREF(__pyx_t_4);
__pyx_t_5 = __pyx_t_4;
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__pyx_L10_bool_binop_done:;
__pyx_v_converter = __pyx_t_5;
__pyx_t_5 = 0;
+1863: new_set = set()
__pyx_t_5 = PySet_New(0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1863, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_5); __pyx_v_new_set = ((PyObject*)__pyx_t_5); __pyx_t_5 = 0;
+1864: for item in value:
if (likely(PyList_CheckExact(__pyx_v_value)) || PyTuple_CheckExact(__pyx_v_value)) { __pyx_t_5 = __pyx_v_value; __Pyx_INCREF(__pyx_t_5); __pyx_t_7 = 0; __pyx_t_8 = NULL; } else { __pyx_t_7 = -1; __pyx_t_5 = PyObject_GetIter(__pyx_v_value); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1864, __pyx_L3_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, 1864, __pyx_L3_error) } for (;;) { if (likely(!__pyx_t_8)) { if (likely(PyList_CheckExact(__pyx_t_5))) { { 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, 1864, __pyx_L3_error) #endif if (__pyx_t_7 >= __pyx_temp) break; } __pyx_t_4 = __Pyx_PyList_GET_ITEM_REF(__pyx_t_5, __pyx_t_7, __Pyx_ReferenceSharing_OwnStrongReference); ++__pyx_t_7; } else { { 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, 1864, __pyx_L3_error) #endif if (__pyx_t_7 >= __pyx_temp) break; } #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_4 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_5, __pyx_t_7)); #else __pyx_t_4 = __Pyx_PySequence_ITEM(__pyx_t_5, __pyx_t_7); #endif ++__pyx_t_7; } if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1864, __pyx_L3_error) } else { __pyx_t_4 = __pyx_t_8(__pyx_t_5); 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, 1864, __pyx_L3_error) PyErr_Clear(); } break; } } __Pyx_GOTREF(__pyx_t_4); __Pyx_XDECREF_SET(__pyx_v_item, __pyx_t_4); __pyx_t_4 = 0; /* … */ } __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+1865: if converter:
__pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_v_converter); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(0, 1865, __pyx_L3_error) if (__pyx_t_6) { /* … */ goto __pyx_L14; }
+1866: new_set.add(converter(name, item, sub_type, parent))
__pyx_t_9 = NULL;
__Pyx_INCREF(__pyx_v_converter);
__pyx_t_10 = __pyx_v_converter;
__pyx_t_11 = 1;
#if CYTHON_UNPACK_METHODS
if (unlikely(PyMethod_Check(__pyx_t_10))) {
__pyx_t_9 = PyMethod_GET_SELF(__pyx_t_10);
assert(__pyx_t_9);
PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_10);
__Pyx_INCREF(__pyx_t_9);
__Pyx_INCREF(__pyx__function);
__Pyx_DECREF_SET(__pyx_t_10, __pyx__function);
__pyx_t_11 = 0;
}
#endif
{
PyObject *__pyx_callargs[5] = {__pyx_t_9, __pyx_v_name, __pyx_v_item, __pyx_v_sub_type, __pyx_v_parent};
__pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_10, __pyx_callargs+__pyx_t_11, (5-__pyx_t_11) | (__pyx_t_11*__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, 1866, __pyx_L3_error)
__Pyx_GOTREF(__pyx_t_4);
}
__pyx_t_12 = PySet_Add(__pyx_v_new_set, __pyx_t_4); if (unlikely(__pyx_t_12 == ((int)-1))) __PYX_ERR(0, 1866, __pyx_L3_error)
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+1867: elif isinstance(item, dict):
__pyx_t_6 = PyDict_Check(__pyx_v_item);
if (__pyx_t_6) {
/* … */
goto __pyx_L14;
}
+1868: new_set.add(sub_type(**item))
if (unlikely(__pyx_v_item == Py_None)) {
PyErr_SetString(PyExc_TypeError, "argument after ** must be a mapping, not NoneType");
__PYX_ERR(0, 1868, __pyx_L3_error)
}
if (likely(PyDict_CheckExact(__pyx_v_item))) {
__pyx_t_4 = PyDict_Copy(__pyx_v_item); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1868, __pyx_L3_error)
__Pyx_GOTREF(__pyx_t_4);
} else {
__pyx_t_4 = __Pyx_PyObject_CallOneArg((PyObject*)&PyDict_Type, __pyx_v_item); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1868, __pyx_L3_error)
__Pyx_GOTREF(__pyx_t_4);
}
__pyx_t_10 = __Pyx_PyObject_Call(__pyx_v_sub_type, __pyx_mstate_global->__pyx_empty_tuple, __pyx_t_4); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1868, __pyx_L3_error)
__Pyx_GOTREF(__pyx_t_10);
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__pyx_t_12 = PySet_Add(__pyx_v_new_set, __pyx_t_10); if (unlikely(__pyx_t_12 == ((int)-1))) __PYX_ERR(0, 1868, __pyx_L3_error)
__Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
1869: else:
+1870: new_set.add(item)
/*else*/ {
__pyx_t_12 = PySet_Add(__pyx_v_new_set, __pyx_v_item); if (unlikely(__pyx_t_12 == ((int)-1))) __PYX_ERR(0, 1870, __pyx_L3_error)
}
__pyx_L14:;
+1871: return new_set
{
PyObject *__pyx_temp;
{
__pyx_temp = __pyx_r;
__Pyx_INCREF(__pyx_v_new_set);
__pyx_r = __pyx_v_new_set;
}
__Pyx_XDECREF(__pyx_temp);
}
goto __pyx_L7_try_return;
+1872: except (AttributeError, IndexError):
__pyx_t_13 = __Pyx_PyErr_ExceptionMatches2(((PyObject *)(((PyTypeObject*)PyExc_AttributeError))), ((PyObject *)(((PyTypeObject*)PyExc_IndexError))));
if (__pyx_t_13) {
__Pyx_ErrRestore(0,0,0);
goto __pyx_L4_exception_handled;
}
goto __pyx_L5_except_error;
1873: pass
+1874: return value
{
PyObject *__pyx_temp;
{
__pyx_temp = __pyx_r;
__Pyx_INCREF(__pyx_v_value);
__pyx_r = __pyx_v_value;
}
__Pyx_XDECREF(__pyx_temp);
}
goto __pyx_L0;
1875:
+1876: cdef object _handle_default_value(
static PyObject *__pyx_f_9datamodel_10converters__handle_default_value(PyObject *__pyx_v_obj, PyObject *__pyx_v_name, PyObject *__pyx_v_value, PyObject *__pyx_v_default_func, PyObject *__pyx_v_default_is_callable) {
PyObject *__pyx_v_new_val = NULL;
PyObject *__pyx_r = NULL;
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_5);
__Pyx_XDECREF(__pyx_t_6);
__Pyx_XDECREF(__pyx_t_7);
__Pyx_XDECREF(__pyx_t_13);
__Pyx_XDECREF(__pyx_t_14);
__Pyx_XDECREF(__pyx_t_15);
__Pyx_AddTraceback("datamodel.converters._handle_default_value", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = 0;
__pyx_L0:;
__Pyx_XDECREF(__pyx_v_new_val);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
1877: object obj,
1878: str name,
1879: object value,
1880: object default_func,
1881: object default_is_callable
1882: ):
1883: """Handle default value of fields."""
1884: # If value is callable, try calling it directly
+1885: if PyCallable_Check(value):
__pyx_t_1 = PyCallable_Check(__pyx_v_value);
if (__pyx_t_1) {
/* … */
}
+1886: try:
{
/*try:*/ {
/* … */
}
__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;
goto __pyx_L9_try_end;
__pyx_L4_error:;
__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;
/* … */
__pyx_L6_except_error:;
__Pyx_XGIVEREF(__pyx_t_2);
__Pyx_XGIVEREF(__pyx_t_3);
__Pyx_XGIVEREF(__pyx_t_4);
__Pyx_ExceptionReset(__pyx_t_2, __pyx_t_3, __pyx_t_4);
goto __pyx_L1_error;
__pyx_L5_exception_handled:;
__Pyx_XGIVEREF(__pyx_t_2);
__Pyx_XGIVEREF(__pyx_t_3);
__Pyx_XGIVEREF(__pyx_t_4);
__Pyx_ExceptionReset(__pyx_t_2, __pyx_t_3, __pyx_t_4);
__pyx_L9_try_end:;
}
+1887: new_val = value()
__pyx_t_6 = NULL;
__Pyx_INCREF(__pyx_v_value);
__pyx_t_7 = __pyx_v_value;
__pyx_t_8 = 1;
#if CYTHON_UNPACK_METHODS
if (unlikely(PyMethod_Check(__pyx_t_7))) {
__pyx_t_6 = PyMethod_GET_SELF(__pyx_t_7);
assert(__pyx_t_6);
PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_7);
__Pyx_INCREF(__pyx_t_6);
__Pyx_INCREF(__pyx__function);
__Pyx_DECREF_SET(__pyx_t_7, __pyx__function);
__pyx_t_8 = 0;
}
#endif
{
PyObject *__pyx_callargs[2] = {__pyx_t_6, NULL};
__pyx_t_5 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_7, __pyx_callargs+__pyx_t_8, (1-__pyx_t_8) | (__pyx_t_8*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
__Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1887, __pyx_L4_error)
__Pyx_GOTREF(__pyx_t_5);
}
__pyx_v_new_val = __pyx_t_5;
__pyx_t_5 = 0;
+1888: except TypeError:
__pyx_t_9 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(((PyTypeObject*)PyExc_TypeError)))); if (__pyx_t_9) { __Pyx_AddTraceback("datamodel.converters._handle_default_value", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_7, &__pyx_t_6) < 0) __PYX_ERR(0, 1888, __pyx_L6_except_error) __Pyx_XGOTREF(__pyx_t_5); __Pyx_XGOTREF(__pyx_t_7); __Pyx_XGOTREF(__pyx_t_6);
+1889: try:
{
/*try:*/ {
/* … */
}
__Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
__Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
__Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
goto __pyx_L19_try_end;
__pyx_L12_error:;
__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;
/* … */
__pyx_L14_except_error:;
__Pyx_XGIVEREF(__pyx_t_10);
__Pyx_XGIVEREF(__pyx_t_11);
__Pyx_XGIVEREF(__pyx_t_12);
__Pyx_ExceptionReset(__pyx_t_10, __pyx_t_11, __pyx_t_12);
goto __pyx_L6_except_error;
__pyx_L13_exception_handled:;
__Pyx_XGIVEREF(__pyx_t_10);
__Pyx_XGIVEREF(__pyx_t_11);
__Pyx_XGIVEREF(__pyx_t_12);
__Pyx_ExceptionReset(__pyx_t_10, __pyx_t_11, __pyx_t_12);
__pyx_L19_try_end:;
}
__Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
__Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
__Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
goto __pyx_L5_exception_handled;
}
goto __pyx_L6_except_error;
+1890: new_val = default_func()
__pyx_t_14 = NULL;
__Pyx_INCREF(__pyx_v_default_func);
__pyx_t_15 = __pyx_v_default_func;
__pyx_t_8 = 1;
#if CYTHON_UNPACK_METHODS
if (unlikely(PyMethod_Check(__pyx_t_15))) {
__pyx_t_14 = PyMethod_GET_SELF(__pyx_t_15);
assert(__pyx_t_14);
PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_15);
__Pyx_INCREF(__pyx_t_14);
__Pyx_INCREF(__pyx__function);
__Pyx_DECREF_SET(__pyx_t_15, __pyx__function);
__pyx_t_8 = 0;
}
#endif
{
PyObject *__pyx_callargs[2] = {__pyx_t_14, NULL};
__pyx_t_13 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_15, __pyx_callargs+__pyx_t_8, (1-__pyx_t_8) | (__pyx_t_8*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
__Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
__Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1890, __pyx_L12_error)
__Pyx_GOTREF(__pyx_t_13);
}
__Pyx_XDECREF_SET(__pyx_v_new_val, __pyx_t_13);
__pyx_t_13 = 0;
+1891: except TypeError:
__pyx_t_9 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(((PyTypeObject*)PyExc_TypeError)))); if (__pyx_t_9) { __Pyx_ErrRestore(0,0,0);
+1892: new_val = None
__Pyx_INCREF(Py_None); __Pyx_XDECREF_SET(__pyx_v_new_val, Py_None); goto __pyx_L13_exception_handled; } goto __pyx_L14_except_error;
+1893: setattr(obj, name, new_val)
__pyx_t_16 = PyObject_SetAttr(__pyx_v_obj, __pyx_v_name, __pyx_v_new_val); if (unlikely(__pyx_t_16 == ((int)-1))) __PYX_ERR(0, 1893, __pyx_L1_error)
+1894: return new_val
{
PyObject *__pyx_temp;
{
__pyx_temp = __pyx_r;
__Pyx_INCREF(__pyx_v_new_val);
__pyx_r = __pyx_v_new_val;
}
__Pyx_XDECREF(__pyx_temp);
}
goto __pyx_L0;
1895:
1896: # If f.default is callable and value is None
+1897: if default_is_callable and value is None:
__pyx_t_17 = __Pyx_PyObject_IsTrue(__pyx_v_default_is_callable); if (unlikely((__pyx_t_17 < 0))) __PYX_ERR(0, 1897, __pyx_L1_error) if (__pyx_t_17) { } else { __pyx_t_1 = __pyx_t_17; goto __pyx_L23_bool_binop_done; } __pyx_t_17 = (__pyx_v_value == Py_None); __pyx_t_1 = __pyx_t_17; __pyx_L23_bool_binop_done:; if (__pyx_t_1) { /* … */ }
+1898: try:
{
/*try:*/ {
/* … */
}
__Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
__Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
goto __pyx_L30_try_end;
__pyx_L25_error:;
__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;
__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;
/* … */
__pyx_L27_except_error:;
__Pyx_XGIVEREF(__pyx_t_4);
__Pyx_XGIVEREF(__pyx_t_3);
__Pyx_XGIVEREF(__pyx_t_2);
__Pyx_ExceptionReset(__pyx_t_4, __pyx_t_3, __pyx_t_2);
goto __pyx_L1_error;
__pyx_L26_exception_handled:;
__Pyx_XGIVEREF(__pyx_t_4);
__Pyx_XGIVEREF(__pyx_t_3);
__Pyx_XGIVEREF(__pyx_t_2);
__Pyx_ExceptionReset(__pyx_t_4, __pyx_t_3, __pyx_t_2);
__pyx_L30_try_end:;
}
+1899: new_val = default_func()
__pyx_t_7 = NULL;
__Pyx_INCREF(__pyx_v_default_func);
__pyx_t_5 = __pyx_v_default_func;
__pyx_t_8 = 1;
#if CYTHON_UNPACK_METHODS
if (unlikely(PyMethod_Check(__pyx_t_5))) {
__pyx_t_7 = PyMethod_GET_SELF(__pyx_t_5);
assert(__pyx_t_7);
PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_5);
__Pyx_INCREF(__pyx_t_7);
__Pyx_INCREF(__pyx__function);
__Pyx_DECREF_SET(__pyx_t_5, __pyx__function);
__pyx_t_8 = 0;
}
#endif
{
PyObject *__pyx_callargs[2] = {__pyx_t_7, NULL};
__pyx_t_6 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_5, __pyx_callargs+__pyx_t_8, (1-__pyx_t_8) | (__pyx_t_8*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
__Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1899, __pyx_L25_error)
__Pyx_GOTREF(__pyx_t_6);
}
__pyx_v_new_val = __pyx_t_6;
__pyx_t_6 = 0;
+1900: except (AttributeError, RuntimeError, TypeError):
__pyx_t_9 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(((PyTypeObject*)PyExc_AttributeError)))) || __Pyx_PyErr_ExceptionMatches(((PyObject *)(((PyTypeObject*)PyExc_RuntimeError)))) || __Pyx_PyErr_ExceptionMatches(((PyObject *)(((PyTypeObject*)PyExc_TypeError)))); if (__pyx_t_9) { __Pyx_ErrRestore(0,0,0);
+1901: new_val = None
__Pyx_INCREF(Py_None); __Pyx_XDECREF_SET(__pyx_v_new_val, Py_None); goto __pyx_L26_exception_handled; } goto __pyx_L27_except_error;
+1902: setattr(obj, name, new_val)
__pyx_t_16 = PyObject_SetAttr(__pyx_v_obj, __pyx_v_name, __pyx_v_new_val); if (unlikely(__pyx_t_16 == ((int)-1))) __PYX_ERR(0, 1902, __pyx_L1_error)
+1903: return new_val
{
PyObject *__pyx_temp;
{
__pyx_temp = __pyx_r;
__Pyx_INCREF(__pyx_v_new_val);
__pyx_r = __pyx_v_new_val;
}
__Pyx_XDECREF(__pyx_temp);
}
goto __pyx_L0;
1904:
1905: # If there's a non-missing default and no value
+1906: if not isinstance(default_func, _MISSING_TYPE) and value is None:
__Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_MISSING_TYPE); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1906, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_17 = PyObject_IsInstance(__pyx_v_default_func, __pyx_t_6); if (unlikely(__pyx_t_17 == ((int)-1))) __PYX_ERR(0, 1906, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_18 = (!__pyx_t_17); if (__pyx_t_18) { } else { __pyx_t_1 = __pyx_t_18; goto __pyx_L34_bool_binop_done; } __pyx_t_18 = (__pyx_v_value == Py_None); __pyx_t_1 = __pyx_t_18; __pyx_L34_bool_binop_done:; if (__pyx_t_1) { /* … */ }
+1907: setattr(obj, name, default_func)
__pyx_t_16 = PyObject_SetAttr(__pyx_v_obj, __pyx_v_name, __pyx_v_default_func); if (unlikely(__pyx_t_16 == ((int)-1))) __PYX_ERR(0, 1907, __pyx_L1_error)
+1908: return default_func
{
PyObject *__pyx_temp;
{
__pyx_temp = __pyx_r;
__Pyx_INCREF(__pyx_v_default_func);
__pyx_r = __pyx_v_default_func;
}
__Pyx_XDECREF(__pyx_temp);
}
goto __pyx_L0;
1909:
1910: # Otherwise, return value as-is
+1911: return value
{
PyObject *__pyx_temp;
{
__pyx_temp = __pyx_r;
__Pyx_INCREF(__pyx_v_value);
__pyx_r = __pyx_v_value;
}
__Pyx_XDECREF(__pyx_temp);
}
goto __pyx_L0;
1912:
+1913: cdef dict _build_error(str name, str message, object exp):
static PyObject *__pyx_f_9datamodel_10converters__build_error(PyObject *__pyx_v_name, PyObject *__pyx_v_message, PyObject *__pyx_v_exp) {
PyObject *__pyx_v_error_message = 0;
PyObject *__pyx_r = NULL;
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_2);
__Pyx_XDECREF(__pyx_t_3);
__Pyx_AddTraceback("datamodel.converters._build_error", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = 0;
__pyx_L0:;
__Pyx_XDECREF(__pyx_v_error_message);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
1914: """
1915: _build_error.
1916:
1917: Build a tuple containing an error message and the name of the field.
1918: """
+1919: cdef str error_message = message + name + ", Error: " + str(exp)
__pyx_t_1 = __Pyx_PyUnicode_ConcatSafe(__pyx_v_message, __pyx_v_name); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1919, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_PyUnicode_Concat__Pyx_ReferenceSharing_OwnStrongReferenceInPlace(__pyx_t_1, __pyx_mstate_global->__pyx_kp_u_Error); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1919, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyObject_Unicode(__pyx_v_exp); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1919, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = __Pyx_PyUnicode_Concat__Pyx_ReferenceSharing_OwnStrongReferenceInPlace(__pyx_t_2, __pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1919, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_v_error_message = ((PyObject*)__pyx_t_3); __pyx_t_3 = 0;
+1920: return {name: error_message}
__pyx_t_3 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1920, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_t_3, __pyx_v_name, __pyx_v_error_message) < (0)) __PYX_ERR(0, 1920, __pyx_L1_error) { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; __pyx_r = ((PyObject*)__pyx_t_3); } __Pyx_XDECREF(__pyx_temp); } __pyx_t_3 = 0; goto __pyx_L0;
1921:
+1922: cpdef dict processing_fields(object obj, list columns):
static PyObject *__pyx_pw_9datamodel_10converters_35processing_fields(PyObject *__pyx_self,
#if CYTHON_VECTORCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyObject *__pyx_f_9datamodel_10converters_processing_fields(PyObject *__pyx_v_obj, PyObject *__pyx_v_columns, CYTHON_UNUSED int __pyx_skip_dispatch) {
PyObject *__pyx_v__encoder = 0;
PyObject *__pyx_v__default = 0;
PyObject *__pyx_v__type = 0;
PyObject *__pyx_v_meta = 0;
int __pyx_v_as_objects;
int __pyx_v_no_nesting;
PyObject *__pyx_v_type_args = 0;
PyObject *__pyx_v_errors = 0;
CYTHON_UNUSED PyObject *__pyx_v__typeinfo = 0;
PyObject *__pyx_v_c_col = 0;
PyObject *__pyx_v_name = 0;
PyObject *__pyx_v_f = 0;
PyObject *__pyx_v_value = 0;
PyObject *__pyx_v_newval = 0;
PyObject *__pyx_v_field_category = NULL;
PyObject *__pyx_v_e = NULL;
CYTHON_UNUSED PyObject *__pyx_v_typeinfo = NULL;
PyObject *__pyx_v_metadata = NULL;
PyObject *__pyx_v_ex = NULL;
PyObject *__pyx_v_set_value = NULL;
PyObject *__pyx_v__case = NULL;
PyObject *__pyx_v_error = NULL;
PyObject *__pyx_r = NULL;
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_4);
__Pyx_XDECREF(__pyx_t_8);
__Pyx_XDECREF(__pyx_t_11);
__Pyx_XDECREF(__pyx_t_12);
__Pyx_XDECREF(__pyx_t_15);
__Pyx_XDECREF(__pyx_t_27);
__Pyx_XDECREF(__pyx_t_37);
__Pyx_XDECREF(__pyx_t_39);
__Pyx_AddTraceback("datamodel.converters.processing_fields", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = 0;
__pyx_L0:;
__Pyx_XDECREF(__pyx_v__encoder);
__Pyx_XDECREF(__pyx_v__default);
__Pyx_XDECREF(__pyx_v__type);
__Pyx_XDECREF(__pyx_v_meta);
__Pyx_XDECREF(__pyx_v_type_args);
__Pyx_XDECREF(__pyx_v_errors);
__Pyx_XDECREF(__pyx_v__typeinfo);
__Pyx_XDECREF(__pyx_v_c_col);
__Pyx_XDECREF(__pyx_v_name);
__Pyx_XDECREF(__pyx_v_f);
__Pyx_XDECREF(__pyx_v_value);
__Pyx_XDECREF(__pyx_v_newval);
__Pyx_XDECREF(__pyx_v_field_category);
__Pyx_XDECREF(__pyx_v_e);
__Pyx_XDECREF(__pyx_v_typeinfo);
__Pyx_XDECREF(__pyx_v_metadata);
__Pyx_XDECREF(__pyx_v_ex);
__Pyx_XDECREF(__pyx_v_set_value);
__Pyx_XDECREF(__pyx_v__case);
__Pyx_XDECREF(__pyx_v_error);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* Python wrapper */
static PyObject *__pyx_pw_9datamodel_10converters_35processing_fields(PyObject *__pyx_self,
#if CYTHON_VECTORCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_9datamodel_10converters_34processing_fields, "processing_fields(obj, list columns) -> dict\n\nProcess the fields (columns) of a dataclass object.\n\nFor each field, if a custom parser is attached (i.e. f.parser is not None),\nit is used to convert the value. Otherwise, the standard conversion logic\n(parse_basic, parse_typing, etc.) is applied.");
static PyMethodDef __pyx_mdef_9datamodel_10converters_35processing_fields = {"processing_fields", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9datamodel_10converters_35processing_fields, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_9datamodel_10converters_34processing_fields};
static PyObject *__pyx_pw_9datamodel_10converters_35processing_fields(PyObject *__pyx_self,
#if CYTHON_VECTORCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
PyObject *__pyx_v_obj = 0;
PyObject *__pyx_v_columns = 0;
#if !CYTHON_VECTORCALL
CYTHON_UNUSED Py_ssize_t __pyx_nargs;
#endif
CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("processing_fields (wrapper)", 0);
#if !CYTHON_VECTORCALL
#if CYTHON_ASSUME_SAFE_SIZE
__pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
#else
__pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
#endif
#endif
__pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
{
PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_obj,&__pyx_mstate_global->__pyx_n_u_columns,0};
PyObject* values[2] = {0,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, 1922, __pyx_L3_error)
if (__pyx_kwds_len > 0) {
switch (__pyx_nargs) {
case 2:
values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 1922, __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, 1922, __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, "processing_fields", 0) < (0)) __PYX_ERR(0, 1922, __pyx_L3_error)
for (Py_ssize_t i = __pyx_nargs; i < 2; i++) {
if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("processing_fields", 1, 2, 2, i); __PYX_ERR(0, 1922, __pyx_L3_error) }
}
} else if (unlikely(__pyx_nargs != 2)) {
goto __pyx_L5_argtuple_error;
} else {
values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 1922, __pyx_L3_error)
values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 1922, __pyx_L3_error)
}
__pyx_v_obj = values[0];
__pyx_v_columns = ((PyObject*)values[1]);
}
goto __pyx_L6_skip;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("processing_fields", 1, 2, 2, __pyx_nargs); __PYX_ERR(0, 1922, __pyx_L3_error)
__pyx_L6_skip:;
goto __pyx_L4_argument_unpacking_done;
__pyx_L3_error:;
for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
Py_XDECREF(values[__pyx_temp]);
}
__Pyx_AddTraceback("datamodel.converters.processing_fields", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_columns), (&PyList_Type), 1, "columns", 1))) __PYX_ERR(0, 1922, __pyx_L1_error)
__pyx_r = __pyx_pf_9datamodel_10converters_34processing_fields(__pyx_self, __pyx_v_obj, __pyx_v_columns);
int __pyx_lineno = 0;
const char *__pyx_filename = NULL;
int __pyx_clineno = 0;
/* function exit code */
goto __pyx_L0;
__pyx_L1_error:;
__pyx_r = NULL;
for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
Py_XDECREF(values[__pyx_temp]);
}
goto __pyx_L7_cleaned_up;
__pyx_L0:;
for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
Py_XDECREF(values[__pyx_temp]);
}
__pyx_L7_cleaned_up:;
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_9datamodel_10converters_34processing_fields(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_obj, PyObject *__pyx_v_columns) {
PyObject *__pyx_r = NULL;
__pyx_t_1 = __pyx_f_9datamodel_10converters_processing_fields(__pyx_v_obj, __pyx_v_columns, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1922, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
{
PyObject *__pyx_temp;
{
__pyx_temp = __pyx_r;
__pyx_r = __pyx_t_1;
}
__Pyx_XDECREF(__pyx_temp);
}
__pyx_t_1 = 0;
goto __pyx_L0;
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_AddTraceback("datamodel.converters.processing_fields", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
__pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_9datamodel_10converters_35processing_fields, 0, __pyx_mstate_global->__pyx_n_u_processing_fields, NULL, __pyx_mstate_global->__pyx_n_u_datamodel_converters, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[23])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1922, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000
PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2);
#endif
if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_processing_fields, __pyx_t_2) < (0)) __PYX_ERR(0, 1922, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
1923: """
1924: Process the fields (columns) of a dataclass object.
1925:
1926: For each field, if a custom parser is attached (i.e. f.parser is not None),
1927: it is used to convert the value. Otherwise, the standard conversion logic
1928: (parse_basic, parse_typing, etc.) is applied.
1929: """
1930: cdef object new_val
+1931: cdef object _encoder = None
__Pyx_INCREF(Py_None);
__pyx_v__encoder = Py_None;
+1932: cdef object _default = None
__Pyx_INCREF(Py_None);
__pyx_v__default = Py_None;
+1933: cdef object _type = None
__Pyx_INCREF(Py_None);
__pyx_v__type = Py_None;
+1934: cdef object meta = obj.Meta
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_obj, __pyx_mstate_global->__pyx_n_u_Meta); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1934, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_meta = __pyx_t_1; __pyx_t_1 = 0;
+1935: cdef bint as_objects = meta.as_objects
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_meta, __pyx_mstate_global->__pyx_n_u_as_objects); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1935, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 1935, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_v_as_objects = __pyx_t_2;
+1936: cdef bint no_nesting = meta.no_nesting
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_meta, __pyx_mstate_global->__pyx_n_u_no_nesting); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1936, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 1936, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_v_no_nesting = __pyx_t_2;
+1937: cdef tuple type_args = ()
__Pyx_INCREF(__pyx_mstate_global->__pyx_empty_tuple);
__pyx_v_type_args = __pyx_mstate_global->__pyx_empty_tuple;
1938: # Error handling
+1939: cdef dict errors = {}
__pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1939, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_errors = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0;
1940: # Type Information
+1941: cdef dict _typeinfo = {}
__pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1941, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v__typeinfo = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0;
1942: # Column information:
1943: cdef tuple c_col
1944: cdef str name
1945: cdef object f
1946: cdef object value
1947: cdef object newval
1948:
+1949: for c_col in columns:
if (unlikely(__pyx_v_columns == Py_None)) {
PyErr_SetString(PyExc_TypeError, "\047NoneType\047 object is not iterable");
__PYX_ERR(0, 1949, __pyx_L1_error)
}
__pyx_t_1 = __pyx_v_columns; __Pyx_INCREF(__pyx_t_1);
__pyx_t_3 = 0;
for (;;) {
{
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, 1949, __pyx_L1_error)
#endif
if (__pyx_t_3 >= __pyx_temp) break;
}
__pyx_t_4 = __Pyx_PyList_GET_ITEM_REF(__pyx_t_1, __pyx_t_3, __Pyx_ReferenceSharing_OwnStrongReference);
++__pyx_t_3;
if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1949, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
if (!(likely(PyTuple_CheckExact(__pyx_t_4))||((__pyx_t_4) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_t_4))) __PYX_ERR(0, 1949, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_c_col, ((PyObject*)__pyx_t_4));
__pyx_t_4 = 0;
/* … */
__pyx_L3_continue:;
}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+1950: name = c_col[0]
if (unlikely(__pyx_v_c_col == Py_None)) {
PyErr_SetString(PyExc_TypeError, "\047NoneType\047 object is not subscriptable");
__PYX_ERR(0, 1950, __pyx_L1_error)
}
__pyx_t_4 = __Pyx_GetItemInt_Tuple(__pyx_v_c_col, 0, long, 1, __Pyx_PyLong_From_long, 0, 1, 1, __Pyx_ReferenceSharing_OwnStrongReference); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1950, __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, 1950, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_name, ((PyObject*)__pyx_t_4));
__pyx_t_4 = 0;
+1951: f = c_col[1]
if (unlikely(__pyx_v_c_col == Py_None)) {
PyErr_SetString(PyExc_TypeError, "\047NoneType\047 object is not subscriptable");
__PYX_ERR(0, 1951, __pyx_L1_error)
}
__pyx_t_4 = __Pyx_GetItemInt_Tuple(__pyx_v_c_col, 1, long, 1, __Pyx_PyLong_From_long, 0, 1, 1, __Pyx_ReferenceSharing_OwnStrongReference); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1951, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_XDECREF_SET(__pyx_v_f, __pyx_t_4);
__pyx_t_4 = 0;
+1952: value = getattr(obj, name)
__pyx_t_4 = __Pyx_GetAttr(__pyx_v_obj, __pyx_v_name); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1952, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_XDECREF_SET(__pyx_v_value, __pyx_t_4); __pyx_t_4 = 0;
1953: # Use the precomputed field type category:
+1954: field_category = f._type_category
__pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_f, __pyx_mstate_global->__pyx_n_u_type_category); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1954, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_XDECREF_SET(__pyx_v_field_category, __pyx_t_4); __pyx_t_4 = 0;
1955:
+1956: if field_category == 'descriptor':
__pyx_t_2 = __Pyx_PyObject_CompareBoolEq_object_str(__pyx_v_field_category, __pyx_mstate_global->__pyx_n_u_descriptor, Py_EQ); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 1956, __pyx_L1_error) if (__pyx_t_2) { /* … */ }
1957: # Handle descriptor-specific logic
+1958: try:
{
/*try:*/ {
/* … */
}
__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;
goto __pyx_L13_try_end;
__pyx_L6_error:;
__Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
__Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
/* … */
__pyx_L8_except_error:;
__Pyx_XGIVEREF(__pyx_t_5);
__Pyx_XGIVEREF(__pyx_t_6);
__Pyx_XGIVEREF(__pyx_t_7);
__Pyx_ExceptionReset(__pyx_t_5, __pyx_t_6, __pyx_t_7);
goto __pyx_L1_error;
__pyx_L7_exception_handled:;
__Pyx_XGIVEREF(__pyx_t_5);
__Pyx_XGIVEREF(__pyx_t_6);
__Pyx_XGIVEREF(__pyx_t_7);
__Pyx_ExceptionReset(__pyx_t_5, __pyx_t_6, __pyx_t_7);
__pyx_L13_try_end:;
}
+1959: value = f.__get__(obj, type(obj)) # Get the descriptor value
__pyx_t_8 = __pyx_v_f;
__Pyx_INCREF(__pyx_t_8);
__pyx_t_9 = 0;
{
PyObject *__pyx_callargs[3] = {__pyx_t_8, __pyx_v_obj, ((PyObject *)Py_TYPE(__pyx_v_obj))};
__pyx_t_4 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_get_2, __pyx_callargs+__pyx_t_9, (3-__pyx_t_9) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
__Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1959, __pyx_L6_error)
__Pyx_GOTREF(__pyx_t_4);
}
__Pyx_DECREF_SET(__pyx_v_value, __pyx_t_4);
__pyx_t_4 = 0;
+1960: PyObject_SetAttr(obj, name, value)
__pyx_t_10 = PyObject_SetAttr(__pyx_v_obj, __pyx_v_name, __pyx_v_value); if (unlikely(__pyx_t_10 == ((int)-1))) __PYX_ERR(0, 1960, __pyx_L6_error)
+1961: except Exception as e:
__pyx_t_10 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(((PyTypeObject*)PyExc_Exception)))); if (__pyx_t_10) { __Pyx_AddTraceback("datamodel.converters.processing_fields", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_4, &__pyx_t_8, &__pyx_t_11) < 0) __PYX_ERR(0, 1961, __pyx_L8_except_error) __Pyx_XGOTREF(__pyx_t_4); __Pyx_XGOTREF(__pyx_t_8); __Pyx_XGOTREF(__pyx_t_11); __Pyx_INCREF(__pyx_t_8); __Pyx_XDECREF_SET(__pyx_v_e, __pyx_t_8); /*try:*/ { /* … */ /*finally:*/ { /*normal exit:*/{ __Pyx_DECREF(__pyx_v_e); __pyx_v_e = 0; goto __pyx_L20; } __pyx_L19_error:; /*exception exit:*/{ __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign __pyx_t_18 = 0; __pyx_t_19 = 0; __pyx_t_20 = 0; __pyx_t_21 = 0; __pyx_t_22 = 0; __pyx_t_23 = 0; __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0; __Pyx_ExceptionSwap(&__pyx_t_21, &__pyx_t_22, &__pyx_t_23); if ( unlikely(__Pyx_GetException(&__pyx_t_18, &__pyx_t_19, &__pyx_t_20) < 0)) __Pyx_ErrFetch(&__pyx_t_18, &__pyx_t_19, &__pyx_t_20); __Pyx_XGOTREF(__pyx_t_18); __Pyx_XGOTREF(__pyx_t_19); __Pyx_XGOTREF(__pyx_t_20); __Pyx_XGOTREF(__pyx_t_21); __Pyx_XGOTREF(__pyx_t_22); __Pyx_XGOTREF(__pyx_t_23); __pyx_t_10 = __pyx_lineno; __pyx_t_16 = __pyx_clineno; __pyx_t_17 = __pyx_filename; { __Pyx_DECREF(__pyx_v_e); __pyx_v_e = 0; } __Pyx_XGIVEREF(__pyx_t_21); __Pyx_XGIVEREF(__pyx_t_22); __Pyx_XGIVEREF(__pyx_t_23); __Pyx_ExceptionReset(__pyx_t_21, __pyx_t_22, __pyx_t_23); __Pyx_XGIVEREF(__pyx_t_18); __Pyx_XGIVEREF(__pyx_t_19); __Pyx_XGIVEREF(__pyx_t_20); __Pyx_ErrRestore(__pyx_t_18, __pyx_t_19, __pyx_t_20); __pyx_t_18 = 0; __pyx_t_19 = 0; __pyx_t_20 = 0; __pyx_t_21 = 0; __pyx_t_22 = 0; __pyx_t_23 = 0; __pyx_lineno = __pyx_t_10; __pyx_clineno = __pyx_t_16; __pyx_filename = __pyx_t_17; goto __pyx_L8_except_error; } __pyx_L20:; } __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0; goto __pyx_L7_exception_handled; } goto __pyx_L8_except_error;
+1962: errors.update(_build_error(name, f"Descriptor Error on {name}: ", e))
__pyx_t_12 = __Pyx_PyUnicode_Unicode(__pyx_v_name); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1962, __pyx_L19_error) __Pyx_GOTREF(__pyx_t_12); __pyx_t_13[0] = __pyx_mstate_global->__pyx_kp_u_Descriptor_Error_on; __pyx_t_13[1] = __pyx_t_12; __pyx_t_13[2] = __pyx_mstate_global->__pyx_kp_u__5; __pyx_t_14 = 22; #if __Pyx_PyUnicode_Join_CAN_USE_KIND_AND_LENGTH __pyx_t_14 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_13[1]); #endif __pyx_t_10 = 0; #if __Pyx_PyUnicode_Join_CAN_USE_KIND_AND_LENGTH __pyx_t_10 |= __Pyx_PyUnicode_KIND_04(__pyx_t_13[1]); #endif __pyx_t_15 = __Pyx_PyUnicode_Join(__pyx_t_13, 3, __pyx_t_14, __pyx_t_10); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 1962, __pyx_L19_error) __Pyx_GOTREF(__pyx_t_15); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __pyx_t_12 = __pyx_f_9datamodel_10converters__build_error(__pyx_v_name, ((PyObject*)__pyx_t_15), __pyx_v_e); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1962, __pyx_L19_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; __pyx_t_15 = __Pyx_CallUnboundCMethod1(&__pyx_mstate_global->__pyx_umethod_PyDict_Type__update, __pyx_v_errors, __pyx_t_12); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 1962, __pyx_L19_error) __Pyx_GOTREF(__pyx_t_15); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; }
+1963: continue
goto __pyx_L3_continue;
1964:
1965: # get type and default:
+1966: _type = f.type
__pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_f, __pyx_mstate_global->__pyx_n_u_type_2); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1966, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_DECREF_SET(__pyx_v__type, __pyx_t_11); __pyx_t_11 = 0;
+1967: _default = f.default
__pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_f, __pyx_mstate_global->__pyx_n_u_default); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1967, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_DECREF_SET(__pyx_v__default, __pyx_t_11); __pyx_t_11 = 0;
+1968: typeinfo = f.typeinfo # cached info (e.g., type_args, default_callable)
__pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_f, __pyx_mstate_global->__pyx_n_u_typeinfo); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1968, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_XDECREF_SET(__pyx_v_typeinfo, __pyx_t_11); __pyx_t_11 = 0;
+1969: type_args = f.type_args
__pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_f, __pyx_mstate_global->__pyx_n_u_type_args); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1969, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); if (!(likely(PyTuple_CheckExact(__pyx_t_11))||((__pyx_t_11) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_t_11))) __PYX_ERR(0, 1969, __pyx_L1_error) __Pyx_DECREF_SET(__pyx_v_type_args, ((PyObject*)__pyx_t_11)); __pyx_t_11 = 0;
+1970: try:
{
/*try:*/ {
/* … */
}
__Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
__Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
__Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
goto __pyx_L32_try_end;
__pyx_L25_error:;
__Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
__Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
__Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0;
__Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
__Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
/* … */
__pyx_L27_except_error:;
__Pyx_XGIVEREF(__pyx_t_7);
__Pyx_XGIVEREF(__pyx_t_6);
__Pyx_XGIVEREF(__pyx_t_5);
__Pyx_ExceptionReset(__pyx_t_7, __pyx_t_6, __pyx_t_5);
goto __pyx_L1_error;
__pyx_L26_exception_handled:;
__Pyx_XGIVEREF(__pyx_t_7);
__Pyx_XGIVEREF(__pyx_t_6);
__Pyx_XGIVEREF(__pyx_t_5);
__Pyx_ExceptionReset(__pyx_t_7, __pyx_t_6, __pyx_t_5);
__pyx_L32_try_end:;
}
+1971: metadata = f.metadata
__pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_f, __pyx_mstate_global->__pyx_n_u_metadata); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1971, __pyx_L25_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_XDECREF_SET(__pyx_v_metadata, __pyx_t_11); __pyx_t_11 = 0;
+1972: except AttributeError:
__pyx_t_16 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(((PyTypeObject*)PyExc_AttributeError)))); if (__pyx_t_16) { __Pyx_AddTraceback("datamodel.converters.processing_fields", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_11, &__pyx_t_8, &__pyx_t_4) < 0) __PYX_ERR(0, 1972, __pyx_L27_except_error) __Pyx_XGOTREF(__pyx_t_11); __Pyx_XGOTREF(__pyx_t_8); __Pyx_XGOTREF(__pyx_t_4);
+1973: metadata = PyObject_GetAttr(f, "metadata")
__pyx_t_15 = PyObject_GetAttr(__pyx_v_f, __pyx_mstate_global->__pyx_n_u_metadata); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 1973, __pyx_L27_except_error) __Pyx_GOTREF(__pyx_t_15); __Pyx_XDECREF_SET(__pyx_v_metadata, __pyx_t_15); __pyx_t_15 = 0; __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0; __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; goto __pyx_L26_exception_handled; } goto __pyx_L27_except_error;
1974:
1975: # _default_callable = typeinfo.get('default_callable', False)
1976: # Check if object is empty
+1977: if is_empty(value) and not PyObject_IsInstance(value, list):
__pyx_t_24 = __pyx_f_9datamodel_10converters_is_empty(__pyx_v_value); if (unlikely(__pyx_t_24 == ((int)-1) && PyErr_Occurred())) __PYX_ERR(0, 1977, __pyx_L1_error) if (__pyx_t_24) { } else { __pyx_t_2 = __pyx_t_24; goto __pyx_L36_bool_binop_done; } __pyx_t_24 = PyObject_IsInstance(__pyx_v_value, ((PyObject *)(&PyList_Type))); if (unlikely(__pyx_t_24 == ((int)-1))) __PYX_ERR(0, 1977, __pyx_L1_error) __pyx_t_25 = (!__pyx_t_24); __pyx_t_2 = __pyx_t_25; __pyx_L36_bool_binop_done:; if (__pyx_t_2) { /* … */ }
+1978: if _type == str and value is not "":
__pyx_t_25 = __Pyx_PyObject_RichCompareBool(__pyx_v__type, ((PyObject *)(&PyUnicode_Type)), Py_EQ); if (unlikely((__pyx_t_25 < 0))) __PYX_ERR(0, 1978, __pyx_L1_error) if (__pyx_t_25) { } else { __pyx_t_2 = __pyx_t_25; goto __pyx_L39_bool_binop_done; } __pyx_t_25 = (__pyx_v_value != __pyx_mstate_global->__pyx_kp_u__2); __pyx_t_2 = __pyx_t_25; __pyx_L39_bool_binop_done:; if (__pyx_t_2) { /* … */ }
+1979: value = f.default_factory if PyObject_IsInstance(_default, (_MISSING_TYPE)) else _default
__Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_MISSING_TYPE); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1979, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_2 = PyObject_IsInstance(__pyx_v__default, __pyx_t_8); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(0, 1979, __pyx_L1_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; if (__pyx_t_2) { __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_f, __pyx_mstate_global->__pyx_n_u_default_factory); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1979, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_4 = __pyx_t_8; __pyx_t_8 = 0; } else { __Pyx_INCREF(__pyx_v__default); __pyx_t_4 = __pyx_v__default; } __Pyx_DECREF_SET(__pyx_v_value, __pyx_t_4); __pyx_t_4 = 0;
1980: # PyObject_SetAttr(obj, name, value)
+1981: obj.__dict__[name] = value
__pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_obj, __pyx_mstate_global->__pyx_n_u_dict); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1981, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); if (unlikely((PyObject_SetItem(__pyx_t_4, __pyx_v_name, __pyx_v_value) < 0))) __PYX_ERR(0, 1981, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+1982: if _default is not None:
__pyx_t_2 = (__pyx_v__default != Py_None);
if (__pyx_t_2) {
/* … */
}
+1983: value = _handle_default_value(obj, name, value, _default, f._default_callable)
__pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_f, __pyx_mstate_global->__pyx_n_u_default_callable); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1983, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_8 = __pyx_f_9datamodel_10converters__handle_default_value(__pyx_v_obj, __pyx_v_name, __pyx_v_value, __pyx_v__default, __pyx_t_4); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1983, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF_SET(__pyx_v_value, __pyx_t_8); __pyx_t_8 = 0;
+1984: try:
{
/*try:*/ {
/* … */
}
__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;
goto __pyx_L49_try_end;
__pyx_L42_error:;
__Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
__Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
__Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0;
__Pyx_XDECREF(__pyx_t_27); __pyx_t_27 = 0;
__Pyx_XDECREF(__pyx_t_37); __pyx_t_37 = 0;
__Pyx_XDECREF(__pyx_t_39); __pyx_t_39 = 0;
__Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
__Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
/* … */
__pyx_L44_except_error:;
__Pyx_XGIVEREF(__pyx_t_5);
__Pyx_XGIVEREF(__pyx_t_6);
__Pyx_XGIVEREF(__pyx_t_7);
__Pyx_ExceptionReset(__pyx_t_5, __pyx_t_6, __pyx_t_7);
goto __pyx_L1_error;
__pyx_L48_try_continue:;
__Pyx_XGIVEREF(__pyx_t_5);
__Pyx_XGIVEREF(__pyx_t_6);
__Pyx_XGIVEREF(__pyx_t_7);
__Pyx_ExceptionReset(__pyx_t_5, __pyx_t_6, __pyx_t_7);
goto __pyx_L3_continue;
__pyx_L49_try_end:;
}
+1985: _encoder = metadata.get('encoder')
__pyx_t_4 = __pyx_v_metadata;
__Pyx_INCREF(__pyx_t_4);
__pyx_t_9 = 0;
{
PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_mstate_global->__pyx_n_u_encoder};
__pyx_t_8 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_get, __pyx_callargs+__pyx_t_9, (2-__pyx_t_9) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
__Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1985, __pyx_L42_error)
__Pyx_GOTREF(__pyx_t_8);
}
__Pyx_DECREF_SET(__pyx_v__encoder, __pyx_t_8);
__pyx_t_8 = 0;
+1986: newval = value
__Pyx_INCREF(__pyx_v_value); __Pyx_XDECREF_SET(__pyx_v_newval, __pyx_v_value);
1987:
+1988: if f.parser is not None:
__pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_f, __pyx_mstate_global->__pyx_n_u_parser); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1988, __pyx_L42_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_2 = (__pyx_t_8 != Py_None); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; if (__pyx_t_2) { /* … */ goto __pyx_L50; }
1989: # If a custom parser is attached to Field, use it
+1990: try:
{
/*try:*/ {
/* … */
}
__Pyx_XDECREF(__pyx_t_23); __pyx_t_23 = 0;
__Pyx_XDECREF(__pyx_t_22); __pyx_t_22 = 0;
__Pyx_XDECREF(__pyx_t_21); __pyx_t_21 = 0;
goto __pyx_L58_try_end;
__pyx_L51_error:;
__Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
__Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
__Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0;
__Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
__Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
/* … */
__pyx_L53_except_error:;
__Pyx_XGIVEREF(__pyx_t_23);
__Pyx_XGIVEREF(__pyx_t_22);
__Pyx_XGIVEREF(__pyx_t_21);
__Pyx_ExceptionReset(__pyx_t_23, __pyx_t_22, __pyx_t_21);
goto __pyx_L42_error;
__pyx_L52_exception_handled:;
__Pyx_XGIVEREF(__pyx_t_23);
__Pyx_XGIVEREF(__pyx_t_22);
__Pyx_XGIVEREF(__pyx_t_21);
__Pyx_ExceptionReset(__pyx_t_23, __pyx_t_22, __pyx_t_21);
__pyx_L58_try_end:;
}
+1991: newval = f.parser(value)
__pyx_t_4 = __pyx_v_f;
__Pyx_INCREF(__pyx_t_4);
__pyx_t_9 = 0;
{
PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_v_value};
__pyx_t_8 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_parser, __pyx_callargs+__pyx_t_9, (2-__pyx_t_9) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
__Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1991, __pyx_L51_error)
__Pyx_GOTREF(__pyx_t_8);
}
__Pyx_DECREF_SET(__pyx_v_newval, __pyx_t_8);
__pyx_t_8 = 0;
+1992: if newval != value:
__pyx_t_2 = __Pyx_PyObject_CompareBoolNe_object_object(__pyx_v_newval, __pyx_v_value, Py_NE); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 1992, __pyx_L51_error) if (__pyx_t_2) { /* … */ }
+1993: obj.__dict__[name] = newval
__pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_obj, __pyx_mstate_global->__pyx_n_u_dict); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1993, __pyx_L51_error) __Pyx_GOTREF(__pyx_t_8); if (unlikely((PyObject_SetItem(__pyx_t_8, __pyx_v_name, __pyx_v_newval) < 0))) __PYX_ERR(0, 1993, __pyx_L51_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
+1994: except Exception as ex:
__pyx_t_16 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(((PyTypeObject*)PyExc_Exception)))); if (__pyx_t_16) { __Pyx_AddTraceback("datamodel.converters.processing_fields", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_8, &__pyx_t_4, &__pyx_t_11) < 0) __PYX_ERR(0, 1994, __pyx_L53_except_error) __Pyx_XGOTREF(__pyx_t_8); __Pyx_XGOTREF(__pyx_t_4); __Pyx_XGOTREF(__pyx_t_11); __Pyx_INCREF(__pyx_t_4); __pyx_v_ex = __pyx_t_4; /*try:*/ { /* … */ /*finally:*/ { /*normal exit:*/{ __Pyx_DECREF(__pyx_v_ex); __pyx_v_ex = 0; goto __pyx_L66; } __pyx_L65_error:; /*exception exit:*/{ __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign __pyx_t_20 = 0; __pyx_t_19 = 0; __pyx_t_18 = 0; __pyx_t_28 = 0; __pyx_t_29 = 0; __pyx_t_30 = 0; __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0; __Pyx_XDECREF(__pyx_t_27); __pyx_t_27 = 0; __Pyx_ExceptionSwap(&__pyx_t_28, &__pyx_t_29, &__pyx_t_30); if ( unlikely(__Pyx_GetException(&__pyx_t_20, &__pyx_t_19, &__pyx_t_18) < 0)) __Pyx_ErrFetch(&__pyx_t_20, &__pyx_t_19, &__pyx_t_18); __Pyx_XGOTREF(__pyx_t_20); __Pyx_XGOTREF(__pyx_t_19); __Pyx_XGOTREF(__pyx_t_18); __Pyx_XGOTREF(__pyx_t_28); __Pyx_XGOTREF(__pyx_t_29); __Pyx_XGOTREF(__pyx_t_30); __pyx_t_16 = __pyx_lineno; __pyx_t_10 = __pyx_clineno; __pyx_t_17 = __pyx_filename; { __Pyx_DECREF(__pyx_v_ex); __pyx_v_ex = 0; } __Pyx_XGIVEREF(__pyx_t_28); __Pyx_XGIVEREF(__pyx_t_29); __Pyx_XGIVEREF(__pyx_t_30); __Pyx_ExceptionReset(__pyx_t_28, __pyx_t_29, __pyx_t_30); __Pyx_XGIVEREF(__pyx_t_20); __Pyx_XGIVEREF(__pyx_t_19); __Pyx_XGIVEREF(__pyx_t_18); __Pyx_ErrRestore(__pyx_t_20, __pyx_t_19, __pyx_t_18); __pyx_t_20 = 0; __pyx_t_19 = 0; __pyx_t_18 = 0; __pyx_t_28 = 0; __pyx_t_29 = 0; __pyx_t_30 = 0; __pyx_lineno = __pyx_t_16; __pyx_clineno = __pyx_t_10; __pyx_filename = __pyx_t_17; goto __pyx_L53_except_error; } __pyx_L66:; } __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0; goto __pyx_L52_exception_handled; } goto __pyx_L53_except_error;
+1995: errors.update(
__pyx_t_27 = __Pyx_CallUnboundCMethod1(&__pyx_mstate_global->__pyx_umethod_PyDict_Type__update, __pyx_v_errors, __pyx_t_12); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 1995, __pyx_L65_error) __Pyx_GOTREF(__pyx_t_27); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0; }
+1996: _build_error(name, f"Error parsing *{name}* = *{value}*", ex)
__pyx_t_15 = __Pyx_PyUnicode_Unicode(__pyx_v_name); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 1996, __pyx_L65_error) __Pyx_GOTREF(__pyx_t_15); __pyx_t_12 = __Pyx_PyObject_FormatSimple(__pyx_v_value, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1996, __pyx_L65_error) __Pyx_GOTREF(__pyx_t_12); __pyx_t_26[0] = __pyx_mstate_global->__pyx_kp_u_Error_parsing; __pyx_t_26[1] = __pyx_t_15; __pyx_t_26[2] = __pyx_mstate_global->__pyx_kp_u__10; __pyx_t_26[3] = __pyx_t_12; __pyx_t_26[4] = __pyx_mstate_global->__pyx_kp_u__11; __pyx_t_14 = 21; #if __Pyx_PyUnicode_Join_CAN_USE_KIND_AND_LENGTH __pyx_t_14 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_26[1]) + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_26[3]); #endif __pyx_t_16 = 0; #if __Pyx_PyUnicode_Join_CAN_USE_KIND_AND_LENGTH __pyx_t_16 |= __Pyx_PyUnicode_KIND_04(__pyx_t_26[1]) | __Pyx_PyUnicode_KIND_04(__pyx_t_26[3]); #endif __pyx_t_27 = __Pyx_PyUnicode_Join(__pyx_t_26, 5, __pyx_t_14, __pyx_t_16); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 1996, __pyx_L65_error) __Pyx_GOTREF(__pyx_t_27); __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __pyx_t_12 = __pyx_f_9datamodel_10converters__build_error(__pyx_v_name, ((PyObject*)__pyx_t_27), __pyx_v_ex); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1996, __pyx_L65_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0;
1997: )
+1998: elif field_category == 'primitive':
__pyx_t_2 = __Pyx_PyObject_CompareBoolEq_object_str(__pyx_v_field_category, __pyx_mstate_global->__pyx_n_u_primitive, Py_EQ); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 1998, __pyx_L42_error) if (__pyx_t_2) { /* … */ goto __pyx_L50; }
+1999: try:
{
/*try:*/ {
/* … */
}
__Pyx_XDECREF(__pyx_t_21); __pyx_t_21 = 0;
__Pyx_XDECREF(__pyx_t_22); __pyx_t_22 = 0;
__Pyx_XDECREF(__pyx_t_23); __pyx_t_23 = 0;
goto __pyx_L78_try_end;
__pyx_L71_error:;
__Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
__Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
__Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0;
__Pyx_XDECREF(__pyx_t_27); __pyx_t_27 = 0;
__Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
__Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
/* … */
__pyx_L73_except_error:;
__Pyx_XGIVEREF(__pyx_t_21);
__Pyx_XGIVEREF(__pyx_t_22);
__Pyx_XGIVEREF(__pyx_t_23);
__Pyx_ExceptionReset(__pyx_t_21, __pyx_t_22, __pyx_t_23);
goto __pyx_L42_error;
__pyx_L72_exception_handled:;
__Pyx_XGIVEREF(__pyx_t_21);
__Pyx_XGIVEREF(__pyx_t_22);
__Pyx_XGIVEREF(__pyx_t_23);
__Pyx_ExceptionReset(__pyx_t_21, __pyx_t_22, __pyx_t_23);
__pyx_L78_try_end:;
}
+2000: newval = parse_basic(_type, value, _encoder)
__pyx_t_31.__pyx_n = 1;
__pyx_t_31.encoder = __pyx_v__encoder;
__pyx_t_11 = __pyx_f_9datamodel_10converters_parse_basic(__pyx_v__type, __pyx_v_value, 0, &__pyx_t_31); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 2000, __pyx_L71_error)
__Pyx_GOTREF(__pyx_t_11);
__Pyx_DECREF_SET(__pyx_v_newval, __pyx_t_11);
__pyx_t_11 = 0;
+2001: if newval != value:
__pyx_t_2 = __Pyx_PyObject_CompareBoolNe_object_object(__pyx_v_newval, __pyx_v_value, Py_NE); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 2001, __pyx_L71_error) if (__pyx_t_2) { /* … */ }
+2002: obj.__dict__[name] = newval
__pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_obj, __pyx_mstate_global->__pyx_n_u_dict); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 2002, __pyx_L71_error) __Pyx_GOTREF(__pyx_t_11); if (unlikely((PyObject_SetItem(__pyx_t_11, __pyx_v_name, __pyx_v_newval) < 0))) __PYX_ERR(0, 2002, __pyx_L71_error) __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
+2003: except ValueError as ex:
__pyx_t_10 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(((PyTypeObject*)PyExc_ValueError)))); if (__pyx_t_10) { __Pyx_AddTraceback("datamodel.converters.processing_fields", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_11, &__pyx_t_4, &__pyx_t_8) < 0) __PYX_ERR(0, 2003, __pyx_L73_except_error) __Pyx_XGOTREF(__pyx_t_11); __Pyx_XGOTREF(__pyx_t_4); __Pyx_XGOTREF(__pyx_t_8); __Pyx_INCREF(__pyx_t_4); __pyx_v_ex = ((PyObject*)__pyx_t_4); /*try:*/ { /* … */ /*finally:*/ { /*normal exit:*/{ __Pyx_DECREF(__pyx_v_ex); __pyx_v_ex = 0; goto __pyx_L86; } __pyx_L85_error:; /*exception exit:*/{ __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign __pyx_t_30 = 0; __pyx_t_29 = 0; __pyx_t_28 = 0; __pyx_t_18 = 0; __pyx_t_19 = 0; __pyx_t_20 = 0; __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0; __Pyx_XDECREF(__pyx_t_27); __pyx_t_27 = 0; __Pyx_ExceptionSwap(&__pyx_t_18, &__pyx_t_19, &__pyx_t_20); if ( unlikely(__Pyx_GetException(&__pyx_t_30, &__pyx_t_29, &__pyx_t_28) < 0)) __Pyx_ErrFetch(&__pyx_t_30, &__pyx_t_29, &__pyx_t_28); __Pyx_XGOTREF(__pyx_t_30); __Pyx_XGOTREF(__pyx_t_29); __Pyx_XGOTREF(__pyx_t_28); __Pyx_XGOTREF(__pyx_t_18); __Pyx_XGOTREF(__pyx_t_19); __Pyx_XGOTREF(__pyx_t_20); __pyx_t_10 = __pyx_lineno; __pyx_t_16 = __pyx_clineno; __pyx_t_17 = __pyx_filename; { __Pyx_DECREF(__pyx_v_ex); __pyx_v_ex = 0; } __Pyx_XGIVEREF(__pyx_t_18); __Pyx_XGIVEREF(__pyx_t_19); __Pyx_XGIVEREF(__pyx_t_20); __Pyx_ExceptionReset(__pyx_t_18, __pyx_t_19, __pyx_t_20); __Pyx_XGIVEREF(__pyx_t_30); __Pyx_XGIVEREF(__pyx_t_29); __Pyx_XGIVEREF(__pyx_t_28); __Pyx_ErrRestore(__pyx_t_30, __pyx_t_29, __pyx_t_28); __pyx_t_30 = 0; __pyx_t_29 = 0; __pyx_t_28 = 0; __pyx_t_18 = 0; __pyx_t_19 = 0; __pyx_t_20 = 0; __pyx_lineno = __pyx_t_10; __pyx_clineno = __pyx_t_16; __pyx_filename = __pyx_t_17; goto __pyx_L73_except_error; } __pyx_L86:; } __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0; __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; goto __pyx_L72_exception_handled; } goto __pyx_L73_except_error;
+2004: errors.update(
__pyx_t_12 = __Pyx_CallUnboundCMethod1(&__pyx_mstate_global->__pyx_umethod_PyDict_Type__update, __pyx_v_errors, __pyx_t_27); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2004, __pyx_L85_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0; __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; }
+2005: _build_error(name, f"Error parsing {name}: ", ex)
__pyx_t_27 = __Pyx_PyUnicode_Unicode(__pyx_v_name); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 2005, __pyx_L85_error) __Pyx_GOTREF(__pyx_t_27); __pyx_t_13[0] = __pyx_mstate_global->__pyx_kp_u_Error_parsing_2; __pyx_t_13[1] = __pyx_t_27; __pyx_t_13[2] = __pyx_mstate_global->__pyx_kp_u__5; __pyx_t_14 = 16; #if __Pyx_PyUnicode_Join_CAN_USE_KIND_AND_LENGTH __pyx_t_14 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_13[1]); #endif __pyx_t_10 = 0; #if __Pyx_PyUnicode_Join_CAN_USE_KIND_AND_LENGTH __pyx_t_10 |= __Pyx_PyUnicode_KIND_04(__pyx_t_13[1]); #endif __pyx_t_12 = __Pyx_PyUnicode_Join(__pyx_t_13, 3, __pyx_t_14, __pyx_t_10); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2005, __pyx_L85_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0; __pyx_t_27 = __pyx_f_9datamodel_10converters__build_error(__pyx_v_name, ((PyObject*)__pyx_t_12), __pyx_v_ex); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 2005, __pyx_L85_error) __Pyx_GOTREF(__pyx_t_27); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
2006: )
+2007: elif field_category == 'type':
__pyx_t_2 = __Pyx_PyObject_CompareBoolEq_object_str(__pyx_v_field_category, __pyx_mstate_global->__pyx_n_u_type_2, Py_EQ); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 2007, __pyx_L42_error) if (__pyx_t_2) { goto __pyx_L50; }
2008: # TODO: support multiple types
2009: pass
+2010: elif field_category == 'dataclass':
__pyx_t_2 = __Pyx_PyObject_CompareBoolEq_object_str(__pyx_v_field_category, __pyx_mstate_global->__pyx_n_u_dataclass, Py_EQ); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 2010, __pyx_L42_error) if (__pyx_t_2) { /* … */ goto __pyx_L50; }
+2011: try:
{
/*try:*/ {
/* … */
}
__Pyx_XDECREF(__pyx_t_23); __pyx_t_23 = 0;
__Pyx_XDECREF(__pyx_t_22); __pyx_t_22 = 0;
__Pyx_XDECREF(__pyx_t_21); __pyx_t_21 = 0;
goto __pyx_L98_try_end;
__pyx_L91_error:;
__Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
__Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
__Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0;
__Pyx_XDECREF(__pyx_t_27); __pyx_t_27 = 0;
__Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
__Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
/* … */
__pyx_L93_except_error:;
__Pyx_XGIVEREF(__pyx_t_23);
__Pyx_XGIVEREF(__pyx_t_22);
__Pyx_XGIVEREF(__pyx_t_21);
__Pyx_ExceptionReset(__pyx_t_23, __pyx_t_22, __pyx_t_21);
goto __pyx_L42_error;
__pyx_L97_try_continue:;
__Pyx_XGIVEREF(__pyx_t_23);
__Pyx_XGIVEREF(__pyx_t_22);
__Pyx_XGIVEREF(__pyx_t_21);
__Pyx_ExceptionReset(__pyx_t_23, __pyx_t_22, __pyx_t_21);
goto __pyx_L48_try_continue;
__pyx_L98_try_end:;
}
+2012: if no_nesting is False:
__pyx_t_2 = (__pyx_v_no_nesting == 0);
if (__pyx_t_2) {
/* … */
}
+2013: if as_objects is True:
__pyx_t_2 = (__pyx_v_as_objects == 1);
if (__pyx_t_2) {
/* … */
goto __pyx_L100;
}
+2014: newval = _handle_dataclass_type(
__pyx_t_32.__pyx_n = 2;
__pyx_t_32.as_objects = __pyx_t_8;
__pyx_t_32.parent = __pyx_v_obj;
__pyx_t_4 = __pyx_f_9datamodel_10converters__handle_dataclass_type(__pyx_v_f, __pyx_v_name, __pyx_v_value, __pyx_v__type, &__pyx_t_32); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2014, __pyx_L91_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
__Pyx_DECREF_SET(__pyx_v_newval, __pyx_t_4);
__pyx_t_4 = 0;
+2015: f, name, value, _type, as_objects, obj
__pyx_t_8 = __Pyx_PyBool_FromLong(__pyx_v_as_objects); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2015, __pyx_L91_error) __Pyx_GOTREF(__pyx_t_8);
2016: )
2017: else:
+2018: newval = _handle_dataclass_type(
/*else*/ {
/* … */
__pyx_t_32.__pyx_n = 2;
__pyx_t_32.as_objects = __pyx_t_4;
__pyx_t_32.parent = Py_None;
__pyx_t_8 = __pyx_f_9datamodel_10converters__handle_dataclass_type(__pyx_v_f, __pyx_v_name, __pyx_v_value, __pyx_v__type, &__pyx_t_32); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2018, __pyx_L91_error)
__Pyx_GOTREF(__pyx_t_8);
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__Pyx_DECREF_SET(__pyx_v_newval, __pyx_t_8);
__pyx_t_8 = 0;
}
__pyx_L100:;
+2019: f, name, value, _type, as_objects, None
__pyx_t_4 = __Pyx_PyBool_FromLong(__pyx_v_as_objects); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2019, __pyx_L91_error) __Pyx_GOTREF(__pyx_t_4);
2020: )
+2021: if newval!= value:
__pyx_t_2 = __Pyx_PyObject_CompareBoolNe_object_object(__pyx_v_newval, __pyx_v_value, Py_NE); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 2021, __pyx_L91_error) if (__pyx_t_2) { /* … */ }
2022: # PyObject_SetAttr(obj, name, newval)
+2023: obj.__dict__[name] = newval
__pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_obj, __pyx_mstate_global->__pyx_n_u_dict); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2023, __pyx_L91_error) __Pyx_GOTREF(__pyx_t_8); if (unlikely((PyObject_SetItem(__pyx_t_8, __pyx_v_name, __pyx_v_newval) < 0))) __PYX_ERR(0, 2023, __pyx_L91_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
+2024: except ValueError:
__pyx_t_16 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(((PyTypeObject*)PyExc_ValueError)))); if (__pyx_t_16) { __Pyx_AddTraceback("datamodel.converters.processing_fields", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_8, &__pyx_t_4, &__pyx_t_11) < 0) __PYX_ERR(0, 2024, __pyx_L93_except_error) __Pyx_XGOTREF(__pyx_t_8); __Pyx_XGOTREF(__pyx_t_4); __Pyx_XGOTREF(__pyx_t_11);
+2025: raise
__Pyx_GIVEREF(__pyx_t_8); __Pyx_GIVEREF(__pyx_t_4); __Pyx_XGIVEREF(__pyx_t_11); __Pyx_ErrRestoreWithState(__pyx_t_8, __pyx_t_4, __pyx_t_11); __pyx_t_8 = 0; __pyx_t_4 = 0; __pyx_t_11 = 0; __PYX_ERR(0, 2025, __pyx_L93_except_error) }
+2026: except Exception as ex:
__pyx_t_16 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(((PyTypeObject*)PyExc_Exception)))); if (__pyx_t_16) { __Pyx_AddTraceback("datamodel.converters.processing_fields", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_11, &__pyx_t_4, &__pyx_t_8) < 0) __PYX_ERR(0, 2026, __pyx_L93_except_error) __Pyx_XGOTREF(__pyx_t_11); __Pyx_XGOTREF(__pyx_t_4); __Pyx_XGOTREF(__pyx_t_8); __Pyx_INCREF(__pyx_t_4); __pyx_v_ex = __pyx_t_4; /*try:*/ { /* … */ /*finally:*/ { __pyx_L109_error:; /*exception exit:*/{ __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign __pyx_t_20 = 0; __pyx_t_19 = 0; __pyx_t_18 = 0; __pyx_t_28 = 0; __pyx_t_29 = 0; __pyx_t_30 = 0; __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0; __Pyx_XDECREF(__pyx_t_27); __pyx_t_27 = 0; __Pyx_ExceptionSwap(&__pyx_t_28, &__pyx_t_29, &__pyx_t_30); if ( unlikely(__Pyx_GetException(&__pyx_t_20, &__pyx_t_19, &__pyx_t_18) < 0)) __Pyx_ErrFetch(&__pyx_t_20, &__pyx_t_19, &__pyx_t_18); __Pyx_XGOTREF(__pyx_t_20); __Pyx_XGOTREF(__pyx_t_19); __Pyx_XGOTREF(__pyx_t_18); __Pyx_XGOTREF(__pyx_t_28); __Pyx_XGOTREF(__pyx_t_29); __Pyx_XGOTREF(__pyx_t_30); __pyx_t_16 = __pyx_lineno; __pyx_t_10 = __pyx_clineno; __pyx_t_17 = __pyx_filename; { __Pyx_DECREF(__pyx_v_ex); __pyx_v_ex = 0; } __Pyx_XGIVEREF(__pyx_t_28); __Pyx_XGIVEREF(__pyx_t_29); __Pyx_XGIVEREF(__pyx_t_30); __Pyx_ExceptionReset(__pyx_t_28, __pyx_t_29, __pyx_t_30); __Pyx_XGIVEREF(__pyx_t_20); __Pyx_XGIVEREF(__pyx_t_19); __Pyx_XGIVEREF(__pyx_t_18); __Pyx_ErrRestore(__pyx_t_20, __pyx_t_19, __pyx_t_18); __pyx_t_20 = 0; __pyx_t_19 = 0; __pyx_t_18 = 0; __pyx_t_28 = 0; __pyx_t_29 = 0; __pyx_t_30 = 0; __pyx_lineno = __pyx_t_16; __pyx_clineno = __pyx_t_10; __pyx_filename = __pyx_t_17; goto __pyx_L93_except_error; } __pyx_L106_continue: { __Pyx_DECREF(__pyx_v_ex); __pyx_v_ex = 0; goto __pyx_L104_except_continue; } } __pyx_L104_except_continue:; __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; goto __pyx_L97_try_continue; } goto __pyx_L93_except_error;
+2027: errors.update(
__pyx_t_27 = __Pyx_CallUnboundCMethod1(&__pyx_mstate_global->__pyx_umethod_PyDict_Type__update, __pyx_v_errors, __pyx_t_12); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 2027, __pyx_L109_error) __Pyx_GOTREF(__pyx_t_27); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0;
+2028: _build_error(name, f"Error parsing Dataclass: {name}: ", ex)
__pyx_t_12 = __Pyx_PyUnicode_Unicode(__pyx_v_name); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2028, __pyx_L109_error) __Pyx_GOTREF(__pyx_t_12); __pyx_t_13[0] = __pyx_mstate_global->__pyx_kp_u_Error_parsing_Dataclass; __pyx_t_13[1] = __pyx_t_12; __pyx_t_13[2] = __pyx_mstate_global->__pyx_kp_u__5; __pyx_t_14 = 27; #if __Pyx_PyUnicode_Join_CAN_USE_KIND_AND_LENGTH __pyx_t_14 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_13[1]); #endif __pyx_t_16 = 0; #if __Pyx_PyUnicode_Join_CAN_USE_KIND_AND_LENGTH __pyx_t_16 |= __Pyx_PyUnicode_KIND_04(__pyx_t_13[1]); #endif __pyx_t_27 = __Pyx_PyUnicode_Join(__pyx_t_13, 3, __pyx_t_14, __pyx_t_16); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 2028, __pyx_L109_error) __Pyx_GOTREF(__pyx_t_27); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __pyx_t_12 = __pyx_f_9datamodel_10converters__build_error(__pyx_v_name, ((PyObject*)__pyx_t_27), __pyx_v_ex); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2028, __pyx_L109_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0;
2029: )
+2030: continue
goto __pyx_L106_continue;
}
+2031: elif f.origin in (list, 'list') and f._inner_is_dc:
__pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_f, __pyx_mstate_global->__pyx_n_u_origin_2); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2031, __pyx_L42_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_24 = __Pyx_PyObject_RichCompareBool(__pyx_t_8, ((PyObject *)(&PyList_Type)), Py_EQ); if (unlikely((__pyx_t_24 < 0))) __PYX_ERR(0, 2031, __pyx_L42_error) if (!__pyx_t_24) { } else { __pyx_t_25 = __pyx_t_24; goto __pyx_L117_bool_binop_done; } __pyx_t_24 = __Pyx_PyObject_CompareBoolEq_object_str(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_list, Py_EQ); if (unlikely((__pyx_t_24 < 0))) __PYX_ERR(0, 2031, __pyx_L42_error) __pyx_t_25 = __pyx_t_24; __pyx_L117_bool_binop_done:; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_t_24 = __pyx_t_25; if (__pyx_t_24) { } else { __pyx_t_2 = __pyx_t_24; goto __pyx_L115_bool_binop_done; } __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_f, __pyx_mstate_global->__pyx_n_u_inner_is_dc); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2031, __pyx_L42_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_24 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely((__pyx_t_24 < 0))) __PYX_ERR(0, 2031, __pyx_L42_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_t_2 = __pyx_t_24; __pyx_L115_bool_binop_done:; if (__pyx_t_2) { /* … */ goto __pyx_L50; }
+2032: try:
{
/*try:*/ {
/* … */
}
__Pyx_XDECREF(__pyx_t_21); __pyx_t_21 = 0;
__Pyx_XDECREF(__pyx_t_22); __pyx_t_22 = 0;
__Pyx_XDECREF(__pyx_t_23); __pyx_t_23 = 0;
goto __pyx_L126_try_end;
__pyx_L119_error:;
__Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
__Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
__Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0;
__Pyx_XDECREF(__pyx_t_27); __pyx_t_27 = 0;
__Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
__Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
/* … */
__pyx_L121_except_error:;
__Pyx_XGIVEREF(__pyx_t_21);
__Pyx_XGIVEREF(__pyx_t_22);
__Pyx_XGIVEREF(__pyx_t_23);
__Pyx_ExceptionReset(__pyx_t_21, __pyx_t_22, __pyx_t_23);
goto __pyx_L42_error;
__pyx_L125_try_continue:;
__Pyx_XGIVEREF(__pyx_t_21);
__Pyx_XGIVEREF(__pyx_t_22);
__Pyx_XGIVEREF(__pyx_t_23);
__Pyx_ExceptionReset(__pyx_t_21, __pyx_t_22, __pyx_t_23);
goto __pyx_L48_try_continue;
__pyx_L126_try_end:;
}
+2033: if as_objects is True:
__pyx_t_2 = (__pyx_v_as_objects == 1);
if (__pyx_t_2) {
/* … */
goto __pyx_L127;
}
+2034: newval = _handle_list_of_dataclasses(f, name, value, _type, obj)
__pyx_t_33.__pyx_n = 1;
__pyx_t_33.parent = __pyx_v_obj;
__pyx_t_8 = __pyx_f_9datamodel_10converters__handle_list_of_dataclasses(__pyx_v_f, __pyx_v_name, __pyx_v_value, __pyx_v__type, &__pyx_t_33); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2034, __pyx_L119_error)
__Pyx_GOTREF(__pyx_t_8);
__Pyx_DECREF_SET(__pyx_v_newval, __pyx_t_8);
__pyx_t_8 = 0;
2035: else:
+2036: newval = _handle_list_of_dataclasses(f, name, value, _type, None)
/*else*/ {
__pyx_t_33.__pyx_n = 1;
__pyx_t_33.parent = Py_None;
__pyx_t_8 = __pyx_f_9datamodel_10converters__handle_list_of_dataclasses(__pyx_v_f, __pyx_v_name, __pyx_v_value, __pyx_v__type, &__pyx_t_33); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2036, __pyx_L119_error)
__Pyx_GOTREF(__pyx_t_8);
__Pyx_DECREF_SET(__pyx_v_newval, __pyx_t_8);
__pyx_t_8 = 0;
}
__pyx_L127:;
+2037: obj.__dict__[name] = newval
__pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_obj, __pyx_mstate_global->__pyx_n_u_dict); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2037, __pyx_L119_error) __Pyx_GOTREF(__pyx_t_8); if (unlikely((PyObject_SetItem(__pyx_t_8, __pyx_v_name, __pyx_v_newval) < 0))) __PYX_ERR(0, 2037, __pyx_L119_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
+2038: except ValueError:
__pyx_t_10 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(((PyTypeObject*)PyExc_ValueError)))); if (__pyx_t_10) { __Pyx_AddTraceback("datamodel.converters.processing_fields", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_8, &__pyx_t_4, &__pyx_t_11) < 0) __PYX_ERR(0, 2038, __pyx_L121_except_error) __Pyx_XGOTREF(__pyx_t_8); __Pyx_XGOTREF(__pyx_t_4); __Pyx_XGOTREF(__pyx_t_11);
+2039: raise
__Pyx_GIVEREF(__pyx_t_8); __Pyx_GIVEREF(__pyx_t_4); __Pyx_XGIVEREF(__pyx_t_11); __Pyx_ErrRestoreWithState(__pyx_t_8, __pyx_t_4, __pyx_t_11); __pyx_t_8 = 0; __pyx_t_4 = 0; __pyx_t_11 = 0; __PYX_ERR(0, 2039, __pyx_L121_except_error) }
+2040: except Exception as ex:
__pyx_t_10 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(((PyTypeObject*)PyExc_Exception)))); if (__pyx_t_10) { __Pyx_AddTraceback("datamodel.converters.processing_fields", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_11, &__pyx_t_4, &__pyx_t_8) < 0) __PYX_ERR(0, 2040, __pyx_L121_except_error) __Pyx_XGOTREF(__pyx_t_11); __Pyx_XGOTREF(__pyx_t_4); __Pyx_XGOTREF(__pyx_t_8); __Pyx_INCREF(__pyx_t_4); __pyx_v_ex = __pyx_t_4; /*try:*/ { /* … */ /*finally:*/ { __pyx_L135_error:; /*exception exit:*/{ __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign __pyx_t_30 = 0; __pyx_t_29 = 0; __pyx_t_28 = 0; __pyx_t_18 = 0; __pyx_t_19 = 0; __pyx_t_20 = 0; __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0; __Pyx_XDECREF(__pyx_t_27); __pyx_t_27 = 0; __Pyx_ExceptionSwap(&__pyx_t_18, &__pyx_t_19, &__pyx_t_20); if ( unlikely(__Pyx_GetException(&__pyx_t_30, &__pyx_t_29, &__pyx_t_28) < 0)) __Pyx_ErrFetch(&__pyx_t_30, &__pyx_t_29, &__pyx_t_28); __Pyx_XGOTREF(__pyx_t_30); __Pyx_XGOTREF(__pyx_t_29); __Pyx_XGOTREF(__pyx_t_28); __Pyx_XGOTREF(__pyx_t_18); __Pyx_XGOTREF(__pyx_t_19); __Pyx_XGOTREF(__pyx_t_20); __pyx_t_10 = __pyx_lineno; __pyx_t_16 = __pyx_clineno; __pyx_t_17 = __pyx_filename; { __Pyx_DECREF(__pyx_v_ex); __pyx_v_ex = 0; } __Pyx_XGIVEREF(__pyx_t_18); __Pyx_XGIVEREF(__pyx_t_19); __Pyx_XGIVEREF(__pyx_t_20); __Pyx_ExceptionReset(__pyx_t_18, __pyx_t_19, __pyx_t_20); __Pyx_XGIVEREF(__pyx_t_30); __Pyx_XGIVEREF(__pyx_t_29); __Pyx_XGIVEREF(__pyx_t_28); __Pyx_ErrRestore(__pyx_t_30, __pyx_t_29, __pyx_t_28); __pyx_t_30 = 0; __pyx_t_29 = 0; __pyx_t_28 = 0; __pyx_t_18 = 0; __pyx_t_19 = 0; __pyx_t_20 = 0; __pyx_lineno = __pyx_t_10; __pyx_clineno = __pyx_t_16; __pyx_filename = __pyx_t_17; goto __pyx_L121_except_error; } __pyx_L132_continue: { __Pyx_DECREF(__pyx_v_ex); __pyx_v_ex = 0; goto __pyx_L130_except_continue; } } __pyx_L130_except_continue:; __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; goto __pyx_L125_try_continue; } goto __pyx_L121_except_error;
+2041: errors.update(
__pyx_t_12 = __Pyx_CallUnboundCMethod1(&__pyx_mstate_global->__pyx_umethod_PyDict_Type__update, __pyx_v_errors, __pyx_t_27); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2041, __pyx_L135_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0; __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
+2042: _build_error(name, f"Error handling list of dataclasses at {name}: ", ex)
__pyx_t_27 = __Pyx_PyUnicode_Unicode(__pyx_v_name); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 2042, __pyx_L135_error) __Pyx_GOTREF(__pyx_t_27); __pyx_t_13[0] = __pyx_mstate_global->__pyx_kp_u_Error_handling_list_of_dataclass; __pyx_t_13[1] = __pyx_t_27; __pyx_t_13[2] = __pyx_mstate_global->__pyx_kp_u__5; __pyx_t_14 = 40; #if __Pyx_PyUnicode_Join_CAN_USE_KIND_AND_LENGTH __pyx_t_14 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_13[1]); #endif __pyx_t_10 = 0; #if __Pyx_PyUnicode_Join_CAN_USE_KIND_AND_LENGTH __pyx_t_10 |= __Pyx_PyUnicode_KIND_04(__pyx_t_13[1]); #endif __pyx_t_12 = __Pyx_PyUnicode_Join(__pyx_t_13, 3, __pyx_t_14, __pyx_t_10); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2042, __pyx_L135_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0; __pyx_t_27 = __pyx_f_9datamodel_10converters__build_error(__pyx_v_name, ((PyObject*)__pyx_t_12), __pyx_v_ex); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 2042, __pyx_L135_error) __Pyx_GOTREF(__pyx_t_27); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
2043: )
+2044: continue
goto __pyx_L132_continue;
}
2045: # Handle set of dataclasses
+2046: elif f.origin in (set, 'set') and getattr(f, '_inner_is_dc', False):
__pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_f, __pyx_mstate_global->__pyx_n_u_origin_2); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2046, __pyx_L42_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_25 = __Pyx_PyObject_RichCompareBool(__pyx_t_8, ((PyObject *)(&PySet_Type)), Py_EQ); if (unlikely((__pyx_t_25 < 0))) __PYX_ERR(0, 2046, __pyx_L42_error) if (!__pyx_t_25) { } else { __pyx_t_24 = __pyx_t_25; goto __pyx_L143_bool_binop_done; } __pyx_t_25 = __Pyx_PyObject_CompareBoolEq_object_str(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_set, Py_EQ); if (unlikely((__pyx_t_25 < 0))) __PYX_ERR(0, 2046, __pyx_L42_error) __pyx_t_24 = __pyx_t_25; __pyx_L143_bool_binop_done:; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_t_25 = __pyx_t_24; if (__pyx_t_25) { } else { __pyx_t_2 = __pyx_t_25; goto __pyx_L141_bool_binop_done; } __pyx_t_8 = __Pyx_GetAttr3(__pyx_v_f, __pyx_mstate_global->__pyx_n_u_inner_is_dc, Py_False); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2046, __pyx_L42_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_25 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely((__pyx_t_25 < 0))) __PYX_ERR(0, 2046, __pyx_L42_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_t_2 = __pyx_t_25; __pyx_L141_bool_binop_done:; if (__pyx_t_2) { /* … */ goto __pyx_L50; }
+2047: try:
{
/*try:*/ {
/* … */
}
__Pyx_XDECREF(__pyx_t_23); __pyx_t_23 = 0;
__Pyx_XDECREF(__pyx_t_22); __pyx_t_22 = 0;
__Pyx_XDECREF(__pyx_t_21); __pyx_t_21 = 0;
goto __pyx_L152_try_end;
__pyx_L145_error:;
__Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
__Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
__Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0;
__Pyx_XDECREF(__pyx_t_27); __pyx_t_27 = 0;
__Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
__Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
/* … */
__pyx_L147_except_error:;
__Pyx_XGIVEREF(__pyx_t_23);
__Pyx_XGIVEREF(__pyx_t_22);
__Pyx_XGIVEREF(__pyx_t_21);
__Pyx_ExceptionReset(__pyx_t_23, __pyx_t_22, __pyx_t_21);
goto __pyx_L42_error;
__pyx_L151_try_continue:;
__Pyx_XGIVEREF(__pyx_t_23);
__Pyx_XGIVEREF(__pyx_t_22);
__Pyx_XGIVEREF(__pyx_t_21);
__Pyx_ExceptionReset(__pyx_t_23, __pyx_t_22, __pyx_t_21);
goto __pyx_L48_try_continue;
__pyx_L152_try_end:;
}
+2048: if as_objects is True:
__pyx_t_2 = (__pyx_v_as_objects == 1);
if (__pyx_t_2) {
/* … */
goto __pyx_L153;
}
+2049: newval = _handle_set_of_dataclasses(f, name, value, _type, obj)
__pyx_t_34.__pyx_n = 1;
__pyx_t_34.parent = __pyx_v_obj;
__pyx_t_8 = __pyx_f_9datamodel_10converters__handle_set_of_dataclasses(__pyx_v_f, __pyx_v_name, __pyx_v_value, __pyx_v__type, &__pyx_t_34); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2049, __pyx_L145_error)
__Pyx_GOTREF(__pyx_t_8);
__Pyx_DECREF_SET(__pyx_v_newval, __pyx_t_8);
__pyx_t_8 = 0;
2050: else:
+2051: newval = _handle_set_of_dataclasses(f, name, value, _type, None)
/*else*/ {
__pyx_t_34.__pyx_n = 1;
__pyx_t_34.parent = Py_None;
__pyx_t_8 = __pyx_f_9datamodel_10converters__handle_set_of_dataclasses(__pyx_v_f, __pyx_v_name, __pyx_v_value, __pyx_v__type, &__pyx_t_34); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2051, __pyx_L145_error)
__Pyx_GOTREF(__pyx_t_8);
__Pyx_DECREF_SET(__pyx_v_newval, __pyx_t_8);
__pyx_t_8 = 0;
}
__pyx_L153:;
+2052: obj.__dict__[name] = newval
__pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_obj, __pyx_mstate_global->__pyx_n_u_dict); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2052, __pyx_L145_error) __Pyx_GOTREF(__pyx_t_8); if (unlikely((PyObject_SetItem(__pyx_t_8, __pyx_v_name, __pyx_v_newval) < 0))) __PYX_ERR(0, 2052, __pyx_L145_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
+2053: except ValueError:
__pyx_t_16 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(((PyTypeObject*)PyExc_ValueError)))); if (__pyx_t_16) { __Pyx_AddTraceback("datamodel.converters.processing_fields", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_8, &__pyx_t_4, &__pyx_t_11) < 0) __PYX_ERR(0, 2053, __pyx_L147_except_error) __Pyx_XGOTREF(__pyx_t_8); __Pyx_XGOTREF(__pyx_t_4); __Pyx_XGOTREF(__pyx_t_11);
+2054: raise
__Pyx_GIVEREF(__pyx_t_8); __Pyx_GIVEREF(__pyx_t_4); __Pyx_XGIVEREF(__pyx_t_11); __Pyx_ErrRestoreWithState(__pyx_t_8, __pyx_t_4, __pyx_t_11); __pyx_t_8 = 0; __pyx_t_4 = 0; __pyx_t_11 = 0; __PYX_ERR(0, 2054, __pyx_L147_except_error) }
+2055: except Exception as ex:
__pyx_t_16 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(((PyTypeObject*)PyExc_Exception)))); if (__pyx_t_16) { __Pyx_AddTraceback("datamodel.converters.processing_fields", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_11, &__pyx_t_4, &__pyx_t_8) < 0) __PYX_ERR(0, 2055, __pyx_L147_except_error) __Pyx_XGOTREF(__pyx_t_11); __Pyx_XGOTREF(__pyx_t_4); __Pyx_XGOTREF(__pyx_t_8); __Pyx_INCREF(__pyx_t_4); __pyx_v_ex = __pyx_t_4; /*try:*/ { /* … */ /*finally:*/ { __pyx_L161_error:; /*exception exit:*/{ __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign __pyx_t_20 = 0; __pyx_t_19 = 0; __pyx_t_18 = 0; __pyx_t_28 = 0; __pyx_t_29 = 0; __pyx_t_30 = 0; __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0; __Pyx_XDECREF(__pyx_t_27); __pyx_t_27 = 0; __Pyx_ExceptionSwap(&__pyx_t_28, &__pyx_t_29, &__pyx_t_30); if ( unlikely(__Pyx_GetException(&__pyx_t_20, &__pyx_t_19, &__pyx_t_18) < 0)) __Pyx_ErrFetch(&__pyx_t_20, &__pyx_t_19, &__pyx_t_18); __Pyx_XGOTREF(__pyx_t_20); __Pyx_XGOTREF(__pyx_t_19); __Pyx_XGOTREF(__pyx_t_18); __Pyx_XGOTREF(__pyx_t_28); __Pyx_XGOTREF(__pyx_t_29); __Pyx_XGOTREF(__pyx_t_30); __pyx_t_16 = __pyx_lineno; __pyx_t_10 = __pyx_clineno; __pyx_t_17 = __pyx_filename; { __Pyx_DECREF(__pyx_v_ex); __pyx_v_ex = 0; } __Pyx_XGIVEREF(__pyx_t_28); __Pyx_XGIVEREF(__pyx_t_29); __Pyx_XGIVEREF(__pyx_t_30); __Pyx_ExceptionReset(__pyx_t_28, __pyx_t_29, __pyx_t_30); __Pyx_XGIVEREF(__pyx_t_20); __Pyx_XGIVEREF(__pyx_t_19); __Pyx_XGIVEREF(__pyx_t_18); __Pyx_ErrRestore(__pyx_t_20, __pyx_t_19, __pyx_t_18); __pyx_t_20 = 0; __pyx_t_19 = 0; __pyx_t_18 = 0; __pyx_t_28 = 0; __pyx_t_29 = 0; __pyx_t_30 = 0; __pyx_lineno = __pyx_t_16; __pyx_clineno = __pyx_t_10; __pyx_filename = __pyx_t_17; goto __pyx_L147_except_error; } __pyx_L158_continue: { __Pyx_DECREF(__pyx_v_ex); __pyx_v_ex = 0; goto __pyx_L156_except_continue; } } __pyx_L156_except_continue:; __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; goto __pyx_L151_try_continue; } goto __pyx_L147_except_error;
+2056: errors.update(
__pyx_t_27 = __Pyx_CallUnboundCMethod1(&__pyx_mstate_global->__pyx_umethod_PyDict_Type__update, __pyx_v_errors, __pyx_t_12); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 2056, __pyx_L161_error) __Pyx_GOTREF(__pyx_t_27); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0;
+2057: _build_error(name, f"Error handling set of dataclasses at {name}: ", ex)
__pyx_t_12 = __Pyx_PyUnicode_Unicode(__pyx_v_name); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2057, __pyx_L161_error) __Pyx_GOTREF(__pyx_t_12); __pyx_t_13[0] = __pyx_mstate_global->__pyx_kp_u_Error_handling_set_of_dataclasse; __pyx_t_13[1] = __pyx_t_12; __pyx_t_13[2] = __pyx_mstate_global->__pyx_kp_u__5; __pyx_t_14 = 39; #if __Pyx_PyUnicode_Join_CAN_USE_KIND_AND_LENGTH __pyx_t_14 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_13[1]); #endif __pyx_t_16 = 0; #if __Pyx_PyUnicode_Join_CAN_USE_KIND_AND_LENGTH __pyx_t_16 |= __Pyx_PyUnicode_KIND_04(__pyx_t_13[1]); #endif __pyx_t_27 = __Pyx_PyUnicode_Join(__pyx_t_13, 3, __pyx_t_14, __pyx_t_16); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 2057, __pyx_L161_error) __Pyx_GOTREF(__pyx_t_27); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __pyx_t_12 = __pyx_f_9datamodel_10converters__build_error(__pyx_v_name, ((PyObject*)__pyx_t_27), __pyx_v_ex); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2057, __pyx_L161_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0;
2058: )
+2059: continue
goto __pyx_L158_continue;
}
+2060: elif field_category == 'typing':
__pyx_t_2 = __Pyx_PyObject_CompareBoolEq_object_str(__pyx_v_field_category, __pyx_mstate_global->__pyx_n_u_typing, Py_EQ); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 2060, __pyx_L42_error) if (__pyx_t_2) { /* … */ goto __pyx_L50; }
+2061: if f.is_dc:
__pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_f, __pyx_mstate_global->__pyx_n_u_is_dc); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2061, __pyx_L42_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 2061, __pyx_L42_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; if (__pyx_t_2) { /* … */ goto __pyx_L167; }
+2062: try:
{
/*try:*/ {
/* … */
}
__Pyx_XDECREF(__pyx_t_21); __pyx_t_21 = 0;
__Pyx_XDECREF(__pyx_t_22); __pyx_t_22 = 0;
__Pyx_XDECREF(__pyx_t_23); __pyx_t_23 = 0;
goto __pyx_L175_try_end;
__pyx_L168_error:;
__Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
__Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
__Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0;
__Pyx_XDECREF(__pyx_t_27); __pyx_t_27 = 0;
__Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
__Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
/* … */
__pyx_L170_except_error:;
__Pyx_XGIVEREF(__pyx_t_21);
__Pyx_XGIVEREF(__pyx_t_22);
__Pyx_XGIVEREF(__pyx_t_23);
__Pyx_ExceptionReset(__pyx_t_21, __pyx_t_22, __pyx_t_23);
goto __pyx_L42_error;
__pyx_L174_try_continue:;
__Pyx_XGIVEREF(__pyx_t_21);
__Pyx_XGIVEREF(__pyx_t_22);
__Pyx_XGIVEREF(__pyx_t_23);
__Pyx_ExceptionReset(__pyx_t_21, __pyx_t_22, __pyx_t_23);
goto __pyx_L48_try_continue;
__pyx_L175_try_end:;
}
2063: # means that is_dataclass(T)
+2064: newval = _handle_dataclass_type(None, name, value, _type, as_objects, None)
__pyx_t_8 = __Pyx_PyBool_FromLong(__pyx_v_as_objects); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2064, __pyx_L168_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_32.__pyx_n = 2; __pyx_t_32.as_objects = __pyx_t_8; __pyx_t_32.parent = Py_None; __pyx_t_4 = __pyx_f_9datamodel_10converters__handle_dataclass_type(Py_None, __pyx_v_name, __pyx_v_value, __pyx_v__type, &__pyx_t_32); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2064, __pyx_L168_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF_SET(__pyx_v_newval, __pyx_t_4); __pyx_t_4 = 0;
+2065: obj.__dict__[name] = newval
__pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_obj, __pyx_mstate_global->__pyx_n_u_dict); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2065, __pyx_L168_error) __Pyx_GOTREF(__pyx_t_4); if (unlikely((PyObject_SetItem(__pyx_t_4, __pyx_v_name, __pyx_v_newval) < 0))) __PYX_ERR(0, 2065, __pyx_L168_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+2066: except ValueError:
__pyx_t_10 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(((PyTypeObject*)PyExc_ValueError)))); if (__pyx_t_10) { __Pyx_AddTraceback("datamodel.converters.processing_fields", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_4, &__pyx_t_8, &__pyx_t_11) < 0) __PYX_ERR(0, 2066, __pyx_L170_except_error) __Pyx_XGOTREF(__pyx_t_4); __Pyx_XGOTREF(__pyx_t_8); __Pyx_XGOTREF(__pyx_t_11);
+2067: raise
__Pyx_GIVEREF(__pyx_t_4); __Pyx_GIVEREF(__pyx_t_8); __Pyx_XGIVEREF(__pyx_t_11); __Pyx_ErrRestoreWithState(__pyx_t_4, __pyx_t_8, __pyx_t_11); __pyx_t_4 = 0; __pyx_t_8 = 0; __pyx_t_11 = 0; __PYX_ERR(0, 2067, __pyx_L170_except_error) }
+2068: except Exception as ex:
__pyx_t_10 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(((PyTypeObject*)PyExc_Exception)))); if (__pyx_t_10) { __Pyx_AddTraceback("datamodel.converters.processing_fields", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_11, &__pyx_t_8, &__pyx_t_4) < 0) __PYX_ERR(0, 2068, __pyx_L170_except_error) __Pyx_XGOTREF(__pyx_t_11); __Pyx_XGOTREF(__pyx_t_8); __Pyx_XGOTREF(__pyx_t_4); __Pyx_INCREF(__pyx_t_8); __pyx_v_ex = __pyx_t_8; /*try:*/ { /* … */ /*finally:*/ { __pyx_L183_error:; /*exception exit:*/{ __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign __pyx_t_30 = 0; __pyx_t_29 = 0; __pyx_t_28 = 0; __pyx_t_18 = 0; __pyx_t_19 = 0; __pyx_t_20 = 0; __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0; __Pyx_XDECREF(__pyx_t_27); __pyx_t_27 = 0; __Pyx_ExceptionSwap(&__pyx_t_18, &__pyx_t_19, &__pyx_t_20); if ( unlikely(__Pyx_GetException(&__pyx_t_30, &__pyx_t_29, &__pyx_t_28) < 0)) __Pyx_ErrFetch(&__pyx_t_30, &__pyx_t_29, &__pyx_t_28); __Pyx_XGOTREF(__pyx_t_30); __Pyx_XGOTREF(__pyx_t_29); __Pyx_XGOTREF(__pyx_t_28); __Pyx_XGOTREF(__pyx_t_18); __Pyx_XGOTREF(__pyx_t_19); __Pyx_XGOTREF(__pyx_t_20); __pyx_t_10 = __pyx_lineno; __pyx_t_16 = __pyx_clineno; __pyx_t_17 = __pyx_filename; { __Pyx_DECREF(__pyx_v_ex); __pyx_v_ex = 0; } __Pyx_XGIVEREF(__pyx_t_18); __Pyx_XGIVEREF(__pyx_t_19); __Pyx_XGIVEREF(__pyx_t_20); __Pyx_ExceptionReset(__pyx_t_18, __pyx_t_19, __pyx_t_20); __Pyx_XGIVEREF(__pyx_t_30); __Pyx_XGIVEREF(__pyx_t_29); __Pyx_XGIVEREF(__pyx_t_28); __Pyx_ErrRestore(__pyx_t_30, __pyx_t_29, __pyx_t_28); __pyx_t_30 = 0; __pyx_t_29 = 0; __pyx_t_28 = 0; __pyx_t_18 = 0; __pyx_t_19 = 0; __pyx_t_20 = 0; __pyx_lineno = __pyx_t_10; __pyx_clineno = __pyx_t_16; __pyx_filename = __pyx_t_17; goto __pyx_L170_except_error; } __pyx_L180_continue: { __Pyx_DECREF(__pyx_v_ex); __pyx_v_ex = 0; goto __pyx_L178_except_continue; } } __pyx_L178_except_continue:; __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; goto __pyx_L174_try_continue; } goto __pyx_L170_except_error;
+2069: errors.update(_build_error(name, f"Error handling dataclass {name}: ", ex))
__pyx_t_27 = __Pyx_PyUnicode_Unicode(__pyx_v_name); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 2069, __pyx_L183_error) __Pyx_GOTREF(__pyx_t_27); __pyx_t_13[0] = __pyx_mstate_global->__pyx_kp_u_Error_handling_dataclass; __pyx_t_13[1] = __pyx_t_27; __pyx_t_13[2] = __pyx_mstate_global->__pyx_kp_u__5; __pyx_t_14 = 27; #if __Pyx_PyUnicode_Join_CAN_USE_KIND_AND_LENGTH __pyx_t_14 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_13[1]); #endif __pyx_t_10 = 0; #if __Pyx_PyUnicode_Join_CAN_USE_KIND_AND_LENGTH __pyx_t_10 |= __Pyx_PyUnicode_KIND_04(__pyx_t_13[1]); #endif __pyx_t_12 = __Pyx_PyUnicode_Join(__pyx_t_13, 3, __pyx_t_14, __pyx_t_10); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2069, __pyx_L183_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0; __pyx_t_27 = __pyx_f_9datamodel_10converters__build_error(__pyx_v_name, ((PyObject*)__pyx_t_12), __pyx_v_ex); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 2069, __pyx_L183_error) __Pyx_GOTREF(__pyx_t_27); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __pyx_t_12 = __Pyx_CallUnboundCMethod1(&__pyx_mstate_global->__pyx_umethod_PyDict_Type__update, __pyx_v_errors, __pyx_t_27); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2069, __pyx_L183_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0; __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
+2070: continue
goto __pyx_L180_continue;
}
+2071: elif f.origin is Literal:
__pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_f, __pyx_mstate_global->__pyx_n_u_origin_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2071, __pyx_L42_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_Literal); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2071, __pyx_L42_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_2 = (__pyx_t_4 == __pyx_t_8); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; if (__pyx_t_2) { /* … */ goto __pyx_L167; }
+2072: try:
{
/*try:*/ {
/* … */
}
__Pyx_XDECREF(__pyx_t_23); __pyx_t_23 = 0;
__Pyx_XDECREF(__pyx_t_22); __pyx_t_22 = 0;
__Pyx_XDECREF(__pyx_t_21); __pyx_t_21 = 0;
goto __pyx_L196_try_end;
__pyx_L189_error:;
__Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
__Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
__Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0;
__Pyx_XDECREF(__pyx_t_27); __pyx_t_27 = 0;
__Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
__Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
/* … */
__pyx_L191_except_error:;
__Pyx_XGIVEREF(__pyx_t_23);
__Pyx_XGIVEREF(__pyx_t_22);
__Pyx_XGIVEREF(__pyx_t_21);
__Pyx_ExceptionReset(__pyx_t_23, __pyx_t_22, __pyx_t_21);
goto __pyx_L42_error;
__pyx_L195_try_continue:;
__Pyx_XGIVEREF(__pyx_t_23);
__Pyx_XGIVEREF(__pyx_t_22);
__Pyx_XGIVEREF(__pyx_t_21);
__Pyx_ExceptionReset(__pyx_t_23, __pyx_t_22, __pyx_t_21);
goto __pyx_L48_try_continue;
__pyx_L196_try_end:;
}
2073: # e.g. Literal[...]
+2074: newval = _parse_literal_type(f, _type, value, _encoder)
__pyx_t_8 = __pyx_f_9datamodel_10converters__parse_literal_type(__pyx_v_f, __pyx_v__type, __pyx_v_value, __pyx_v__encoder); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2074, __pyx_L189_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF_SET(__pyx_v_newval, __pyx_t_8); __pyx_t_8 = 0;
+2075: obj.__dict__[name] = newval
__pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_obj, __pyx_mstate_global->__pyx_n_u_dict); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2075, __pyx_L189_error) __Pyx_GOTREF(__pyx_t_8); if (unlikely((PyObject_SetItem(__pyx_t_8, __pyx_v_name, __pyx_v_newval) < 0))) __PYX_ERR(0, 2075, __pyx_L189_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
+2076: except ValueError:
__pyx_t_16 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(((PyTypeObject*)PyExc_ValueError)))); if (__pyx_t_16) { __Pyx_AddTraceback("datamodel.converters.processing_fields", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_8, &__pyx_t_4, &__pyx_t_11) < 0) __PYX_ERR(0, 2076, __pyx_L191_except_error) __Pyx_XGOTREF(__pyx_t_8); __Pyx_XGOTREF(__pyx_t_4); __Pyx_XGOTREF(__pyx_t_11);
+2077: raise
__Pyx_GIVEREF(__pyx_t_8); __Pyx_GIVEREF(__pyx_t_4); __Pyx_XGIVEREF(__pyx_t_11); __Pyx_ErrRestoreWithState(__pyx_t_8, __pyx_t_4, __pyx_t_11); __pyx_t_8 = 0; __pyx_t_4 = 0; __pyx_t_11 = 0; __PYX_ERR(0, 2077, __pyx_L191_except_error) }
+2078: except Exception as ex:
__pyx_t_16 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(((PyTypeObject*)PyExc_Exception)))); if (__pyx_t_16) { __Pyx_AddTraceback("datamodel.converters.processing_fields", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_11, &__pyx_t_4, &__pyx_t_8) < 0) __PYX_ERR(0, 2078, __pyx_L191_except_error) __Pyx_XGOTREF(__pyx_t_11); __Pyx_XGOTREF(__pyx_t_4); __Pyx_XGOTREF(__pyx_t_8); __Pyx_INCREF(__pyx_t_4); __pyx_v_ex = __pyx_t_4; /*try:*/ { /* … */ /*finally:*/ { __pyx_L204_error:; /*exception exit:*/{ __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign __pyx_t_20 = 0; __pyx_t_19 = 0; __pyx_t_18 = 0; __pyx_t_28 = 0; __pyx_t_29 = 0; __pyx_t_30 = 0; __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0; __Pyx_XDECREF(__pyx_t_27); __pyx_t_27 = 0; __Pyx_ExceptionSwap(&__pyx_t_28, &__pyx_t_29, &__pyx_t_30); if ( unlikely(__Pyx_GetException(&__pyx_t_20, &__pyx_t_19, &__pyx_t_18) < 0)) __Pyx_ErrFetch(&__pyx_t_20, &__pyx_t_19, &__pyx_t_18); __Pyx_XGOTREF(__pyx_t_20); __Pyx_XGOTREF(__pyx_t_19); __Pyx_XGOTREF(__pyx_t_18); __Pyx_XGOTREF(__pyx_t_28); __Pyx_XGOTREF(__pyx_t_29); __Pyx_XGOTREF(__pyx_t_30); __pyx_t_16 = __pyx_lineno; __pyx_t_10 = __pyx_clineno; __pyx_t_17 = __pyx_filename; { __Pyx_DECREF(__pyx_v_ex); __pyx_v_ex = 0; } __Pyx_XGIVEREF(__pyx_t_28); __Pyx_XGIVEREF(__pyx_t_29); __Pyx_XGIVEREF(__pyx_t_30); __Pyx_ExceptionReset(__pyx_t_28, __pyx_t_29, __pyx_t_30); __Pyx_XGIVEREF(__pyx_t_20); __Pyx_XGIVEREF(__pyx_t_19); __Pyx_XGIVEREF(__pyx_t_18); __Pyx_ErrRestore(__pyx_t_20, __pyx_t_19, __pyx_t_18); __pyx_t_20 = 0; __pyx_t_19 = 0; __pyx_t_18 = 0; __pyx_t_28 = 0; __pyx_t_29 = 0; __pyx_t_30 = 0; __pyx_lineno = __pyx_t_16; __pyx_clineno = __pyx_t_10; __pyx_filename = __pyx_t_17; goto __pyx_L191_except_error; } __pyx_L201_continue: { __Pyx_DECREF(__pyx_v_ex); __pyx_v_ex = 0; goto __pyx_L199_except_continue; } } __pyx_L199_except_continue:; __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; goto __pyx_L195_try_continue; } goto __pyx_L191_except_error;
+2079: errors.update(_build_error(name, f"Error parsing Literal {name}: ", ex))
__pyx_t_12 = __Pyx_PyUnicode_Unicode(__pyx_v_name); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2079, __pyx_L204_error) __Pyx_GOTREF(__pyx_t_12); __pyx_t_13[0] = __pyx_mstate_global->__pyx_kp_u_Error_parsing_Literal; __pyx_t_13[1] = __pyx_t_12; __pyx_t_13[2] = __pyx_mstate_global->__pyx_kp_u__5; __pyx_t_14 = 24; #if __Pyx_PyUnicode_Join_CAN_USE_KIND_AND_LENGTH __pyx_t_14 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_13[1]); #endif __pyx_t_16 = 0; #if __Pyx_PyUnicode_Join_CAN_USE_KIND_AND_LENGTH __pyx_t_16 |= __Pyx_PyUnicode_KIND_04(__pyx_t_13[1]); #endif __pyx_t_27 = __Pyx_PyUnicode_Join(__pyx_t_13, 3, __pyx_t_14, __pyx_t_16); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 2079, __pyx_L204_error) __Pyx_GOTREF(__pyx_t_27); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __pyx_t_12 = __pyx_f_9datamodel_10converters__build_error(__pyx_v_name, ((PyObject*)__pyx_t_27), __pyx_v_ex); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2079, __pyx_L204_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0; __pyx_t_27 = __Pyx_CallUnboundCMethod1(&__pyx_mstate_global->__pyx_umethod_PyDict_Type__update, __pyx_v_errors, __pyx_t_12); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 2079, __pyx_L204_error) __Pyx_GOTREF(__pyx_t_27); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0;
+2080: continue
goto __pyx_L201_continue;
}
+2081: elif f.origin is list:
__pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_f, __pyx_mstate_global->__pyx_n_u_origin_2); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2081, __pyx_L42_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_2 = (__pyx_t_8 == ((PyObject *)(&PyList_Type))); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; if (__pyx_t_2) { /* … */ goto __pyx_L167; }
+2082: try:
{
/*try:*/ {
/* … */
}
__Pyx_XDECREF(__pyx_t_21); __pyx_t_21 = 0;
__Pyx_XDECREF(__pyx_t_22); __pyx_t_22 = 0;
__Pyx_XDECREF(__pyx_t_23); __pyx_t_23 = 0;
goto __pyx_L217_try_end;
__pyx_L210_error:;
__Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
__Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
__Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0;
__Pyx_XDECREF(__pyx_t_27); __pyx_t_27 = 0;
__Pyx_XDECREF(__pyx_t_37); __pyx_t_37 = 0;
__Pyx_XDECREF(__pyx_t_39); __pyx_t_39 = 0;
__Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
__Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
/* … */
__pyx_L212_except_error:;
__Pyx_XGIVEREF(__pyx_t_21);
__Pyx_XGIVEREF(__pyx_t_22);
__Pyx_XGIVEREF(__pyx_t_23);
__Pyx_ExceptionReset(__pyx_t_21, __pyx_t_22, __pyx_t_23);
goto __pyx_L42_error;
__pyx_L216_try_continue:;
__Pyx_XGIVEREF(__pyx_t_21);
__Pyx_XGIVEREF(__pyx_t_22);
__Pyx_XGIVEREF(__pyx_t_23);
__Pyx_ExceptionReset(__pyx_t_21, __pyx_t_22, __pyx_t_23);
goto __pyx_L48_try_continue;
__pyx_L217_try_end:;
}
2083: # Other typical case is when is a List of primitives.
+2084: if f._inner_priv:
__pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_f, __pyx_mstate_global->__pyx_n_u_inner_priv); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2084, __pyx_L210_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 2084, __pyx_L210_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; if (__pyx_t_2) { /* … */ goto __pyx_L218; }
+2085: newval = _parse_list_type(
__pyx_t_35.__pyx_n = 1;
__pyx_t_35._parent = __pyx_v_obj;
__pyx_t_4 = __pyx_f_9datamodel_10converters__parse_list_type(__pyx_v_f, __pyx_v__type, __pyx_v_value, __pyx_v__encoder, __pyx_t_8, &__pyx_t_35); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2085, __pyx_L210_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
__Pyx_DECREF_SET(__pyx_v_newval, __pyx_t_4);
__pyx_t_4 = 0;
2086: f,
2087: _type,
2088: value,
2089: _encoder,
+2090: f.args,
__pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_f, __pyx_mstate_global->__pyx_n_u_args_2); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2090, __pyx_L210_error) __Pyx_GOTREF(__pyx_t_8);
2091: obj
2092: )
2093: else:
+2094: try:
/*else*/ {
{
/*try:*/ {
/* … */
}
__Pyx_XDECREF(__pyx_t_30); __pyx_t_30 = 0;
__Pyx_XDECREF(__pyx_t_29); __pyx_t_29 = 0;
__Pyx_XDECREF(__pyx_t_28); __pyx_t_28 = 0;
goto __pyx_L226_try_end;
__pyx_L219_error:;
__Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
__Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
__Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0;
__Pyx_XDECREF(__pyx_t_27); __pyx_t_27 = 0;
__Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
__Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
/* … */
__pyx_L221_except_error:;
__Pyx_XGIVEREF(__pyx_t_30);
__Pyx_XGIVEREF(__pyx_t_29);
__Pyx_XGIVEREF(__pyx_t_28);
__Pyx_ExceptionReset(__pyx_t_30, __pyx_t_29, __pyx_t_28);
goto __pyx_L210_error;
__pyx_L226_try_end:;
}
}
__pyx_L218:;
+2095: newval = _parse_typing(
__pyx_t_36.__pyx_n = 3;
__pyx_t_36.encoder = __pyx_v__encoder;
__pyx_t_36.as_objects = __pyx_t_4;
__pyx_t_36.parent = __pyx_v_obj;
__pyx_t_8 = __pyx_f_9datamodel_10converters__parse_typing(__pyx_v_f, __pyx_v__type, __pyx_v_value, &__pyx_t_36); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2095, __pyx_L219_error)
__Pyx_GOTREF(__pyx_t_8);
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__Pyx_DECREF_SET(__pyx_v_newval, __pyx_t_8);
__pyx_t_8 = 0;
2096: f,
2097: _type,
2098: value,
2099: _encoder,
+2100: as_objects,
__pyx_t_4 = __Pyx_PyBool_FromLong(__pyx_v_as_objects); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2100, __pyx_L219_error) __Pyx_GOTREF(__pyx_t_4);
2101: obj
2102: )
+2103: except Exception as e:
__pyx_t_10 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(((PyTypeObject*)PyExc_Exception)))); if (__pyx_t_10) { __Pyx_AddTraceback("datamodel.converters.processing_fields", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_8, &__pyx_t_4, &__pyx_t_11) < 0) __PYX_ERR(0, 2103, __pyx_L221_except_error) __Pyx_XGOTREF(__pyx_t_8); __Pyx_XGOTREF(__pyx_t_4); __Pyx_XGOTREF(__pyx_t_11); __Pyx_INCREF(__pyx_t_4); __Pyx_XDECREF_SET(__pyx_v_e, __pyx_t_4); /*try:*/ { /* … */ /*finally:*/ { __pyx_L232_error:; /*exception exit:*/{ __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign __pyx_t_18 = 0; __pyx_t_19 = 0; __pyx_t_20 = 0; __pyx_t_40 = 0; __pyx_t_41 = 0; __pyx_t_42 = 0; __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0; __Pyx_XDECREF(__pyx_t_27); __pyx_t_27 = 0; __Pyx_XDECREF(__pyx_t_37); __pyx_t_37 = 0; __Pyx_XDECREF(__pyx_t_39); __pyx_t_39 = 0; __Pyx_ExceptionSwap(&__pyx_t_40, &__pyx_t_41, &__pyx_t_42); if ( unlikely(__Pyx_GetException(&__pyx_t_18, &__pyx_t_19, &__pyx_t_20) < 0)) __Pyx_ErrFetch(&__pyx_t_18, &__pyx_t_19, &__pyx_t_20); __Pyx_XGOTREF(__pyx_t_18); __Pyx_XGOTREF(__pyx_t_19); __Pyx_XGOTREF(__pyx_t_20); __Pyx_XGOTREF(__pyx_t_40); __Pyx_XGOTREF(__pyx_t_41); __Pyx_XGOTREF(__pyx_t_42); __pyx_t_10 = __pyx_lineno; __pyx_t_16 = __pyx_clineno; __pyx_t_17 = __pyx_filename; { __Pyx_DECREF(__pyx_v_e); __pyx_v_e = 0; } __Pyx_XGIVEREF(__pyx_t_40); __Pyx_XGIVEREF(__pyx_t_41); __Pyx_XGIVEREF(__pyx_t_42); __Pyx_ExceptionReset(__pyx_t_40, __pyx_t_41, __pyx_t_42); __Pyx_XGIVEREF(__pyx_t_18); __Pyx_XGIVEREF(__pyx_t_19); __Pyx_XGIVEREF(__pyx_t_20); __Pyx_ErrRestore(__pyx_t_18, __pyx_t_19, __pyx_t_20); __pyx_t_18 = 0; __pyx_t_19 = 0; __pyx_t_20 = 0; __pyx_t_40 = 0; __pyx_t_41 = 0; __pyx_t_42 = 0; __pyx_lineno = __pyx_t_10; __pyx_clineno = __pyx_t_16; __pyx_filename = __pyx_t_17; goto __pyx_L221_except_error; } } } goto __pyx_L221_except_error;
+2104: raise ValueError(
__pyx_t_12 = NULL;
+2105: f"Error parsing List: {name}: {e}"
__pyx_t_15 = __Pyx_PyUnicode_Unicode(__pyx_v_name); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2105, __pyx_L232_error) __Pyx_GOTREF(__pyx_t_15); __pyx_t_37 = __Pyx_PyObject_FormatSimple(__pyx_v_e, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_37)) __PYX_ERR(0, 2105, __pyx_L232_error) __Pyx_GOTREF(__pyx_t_37); __pyx_t_38[0] = __pyx_mstate_global->__pyx_kp_u_Error_parsing_List; __pyx_t_38[1] = __pyx_t_15; __pyx_t_38[2] = __pyx_mstate_global->__pyx_kp_u__5; __pyx_t_38[3] = __pyx_t_37; __pyx_t_14 = 22; #if __Pyx_PyUnicode_Join_CAN_USE_KIND_AND_LENGTH __pyx_t_14 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_38[1]) + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_38[3]); #endif __pyx_t_10 = 0; #if __Pyx_PyUnicode_Join_CAN_USE_KIND_AND_LENGTH __pyx_t_10 |= __Pyx_PyUnicode_KIND_04(__pyx_t_38[1]) | __Pyx_PyUnicode_KIND_04(__pyx_t_38[3]); #endif __pyx_t_39 = __Pyx_PyUnicode_Join(__pyx_t_38, 4, __pyx_t_14, __pyx_t_10); if (unlikely(!__pyx_t_39)) __PYX_ERR(0, 2105, __pyx_L232_error) __Pyx_GOTREF(__pyx_t_39); __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; __Pyx_DECREF(__pyx_t_37); __pyx_t_37 = 0; __pyx_t_9 = 1; { PyObject *__pyx_callargs[2] = {__pyx_t_12, __pyx_t_39}; __pyx_t_27 = __Pyx_PyObject_FastCall((PyObject*)(((PyTypeObject*)PyExc_ValueError)), __pyx_callargs+__pyx_t_9, (2-__pyx_t_9) | (__pyx_t_9*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_DECREF(__pyx_t_39); __pyx_t_39 = 0; if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 2104, __pyx_L232_error) __Pyx_GOTREF(__pyx_t_27); } __Pyx_Raise(__pyx_t_27, 0, 0, 0); __Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0; __PYX_ERR(0, 2104, __pyx_L232_error) }
2106: )
+2107: obj.__dict__[name] = newval
__pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_obj, __pyx_mstate_global->__pyx_n_u_dict); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 2107, __pyx_L210_error) __Pyx_GOTREF(__pyx_t_11); if (unlikely((PyObject_SetItem(__pyx_t_11, __pyx_v_name, __pyx_v_newval) < 0))) __PYX_ERR(0, 2107, __pyx_L210_error) __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
+2108: except ValueError:
__pyx_t_16 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(((PyTypeObject*)PyExc_ValueError)))); if (__pyx_t_16) { __Pyx_AddTraceback("datamodel.converters.processing_fields", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_11, &__pyx_t_4, &__pyx_t_8) < 0) __PYX_ERR(0, 2108, __pyx_L212_except_error) __Pyx_XGOTREF(__pyx_t_11); __Pyx_XGOTREF(__pyx_t_4); __Pyx_XGOTREF(__pyx_t_8);
+2109: raise
__Pyx_GIVEREF(__pyx_t_11); __Pyx_GIVEREF(__pyx_t_4); __Pyx_XGIVEREF(__pyx_t_8); __Pyx_ErrRestoreWithState(__pyx_t_11, __pyx_t_4, __pyx_t_8); __pyx_t_11 = 0; __pyx_t_4 = 0; __pyx_t_8 = 0; __PYX_ERR(0, 2109, __pyx_L212_except_error) }
+2110: except Exception as ex:
__pyx_t_16 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(((PyTypeObject*)PyExc_Exception)))); if (__pyx_t_16) { __Pyx_AddTraceback("datamodel.converters.processing_fields", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_8, &__pyx_t_4, &__pyx_t_11) < 0) __PYX_ERR(0, 2110, __pyx_L212_except_error) __Pyx_XGOTREF(__pyx_t_8); __Pyx_XGOTREF(__pyx_t_4); __Pyx_XGOTREF(__pyx_t_11); __Pyx_INCREF(__pyx_t_4); __pyx_v_ex = __pyx_t_4; /*try:*/ { /* … */ /*finally:*/ { __pyx_L245_error:; /*exception exit:*/{ __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign __pyx_t_28 = 0; __pyx_t_29 = 0; __pyx_t_30 = 0; __pyx_t_42 = 0; __pyx_t_41 = 0; __pyx_t_40 = 0; __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0; __Pyx_XDECREF(__pyx_t_27); __pyx_t_27 = 0; __Pyx_XDECREF(__pyx_t_37); __pyx_t_37 = 0; __Pyx_XDECREF(__pyx_t_39); __pyx_t_39 = 0; __Pyx_ExceptionSwap(&__pyx_t_42, &__pyx_t_41, &__pyx_t_40); if ( unlikely(__Pyx_GetException(&__pyx_t_28, &__pyx_t_29, &__pyx_t_30) < 0)) __Pyx_ErrFetch(&__pyx_t_28, &__pyx_t_29, &__pyx_t_30); __Pyx_XGOTREF(__pyx_t_28); __Pyx_XGOTREF(__pyx_t_29); __Pyx_XGOTREF(__pyx_t_30); __Pyx_XGOTREF(__pyx_t_42); __Pyx_XGOTREF(__pyx_t_41); __Pyx_XGOTREF(__pyx_t_40); __pyx_t_16 = __pyx_lineno; __pyx_t_10 = __pyx_clineno; __pyx_t_17 = __pyx_filename; { __Pyx_DECREF(__pyx_v_ex); __pyx_v_ex = 0; } __Pyx_XGIVEREF(__pyx_t_42); __Pyx_XGIVEREF(__pyx_t_41); __Pyx_XGIVEREF(__pyx_t_40); __Pyx_ExceptionReset(__pyx_t_42, __pyx_t_41, __pyx_t_40); __Pyx_XGIVEREF(__pyx_t_28); __Pyx_XGIVEREF(__pyx_t_29); __Pyx_XGIVEREF(__pyx_t_30); __Pyx_ErrRestore(__pyx_t_28, __pyx_t_29, __pyx_t_30); __pyx_t_28 = 0; __pyx_t_29 = 0; __pyx_t_30 = 0; __pyx_t_42 = 0; __pyx_t_41 = 0; __pyx_t_40 = 0; __pyx_lineno = __pyx_t_16; __pyx_clineno = __pyx_t_10; __pyx_filename = __pyx_t_17; goto __pyx_L212_except_error; } __pyx_L242_continue: { __Pyx_DECREF(__pyx_v_ex); __pyx_v_ex = 0; goto __pyx_L240_except_continue; } } __pyx_L240_except_continue:; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0; goto __pyx_L216_try_continue; } goto __pyx_L212_except_error;
+2111: errors.update(
__pyx_t_39 = __Pyx_CallUnboundCMethod1(&__pyx_mstate_global->__pyx_umethod_PyDict_Type__update, __pyx_v_errors, __pyx_t_27); if (unlikely(!__pyx_t_39)) __PYX_ERR(0, 2111, __pyx_L245_error) __Pyx_GOTREF(__pyx_t_39); __Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0; __Pyx_DECREF(__pyx_t_39); __pyx_t_39 = 0;
+2112: _build_error(name, f"Error parsing List {name}: ", ex)
__pyx_t_27 = __Pyx_PyUnicode_Unicode(__pyx_v_name); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 2112, __pyx_L245_error) __Pyx_GOTREF(__pyx_t_27); __pyx_t_13[0] = __pyx_mstate_global->__pyx_kp_u_Error_parsing_List_2; __pyx_t_13[1] = __pyx_t_27; __pyx_t_13[2] = __pyx_mstate_global->__pyx_kp_u__5; __pyx_t_14 = 21; #if __Pyx_PyUnicode_Join_CAN_USE_KIND_AND_LENGTH __pyx_t_14 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_13[1]); #endif __pyx_t_16 = 0; #if __Pyx_PyUnicode_Join_CAN_USE_KIND_AND_LENGTH __pyx_t_16 |= __Pyx_PyUnicode_KIND_04(__pyx_t_13[1]); #endif __pyx_t_39 = __Pyx_PyUnicode_Join(__pyx_t_13, 3, __pyx_t_14, __pyx_t_16); if (unlikely(!__pyx_t_39)) __PYX_ERR(0, 2112, __pyx_L245_error) __Pyx_GOTREF(__pyx_t_39); __Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0; __pyx_t_27 = __pyx_f_9datamodel_10converters__build_error(__pyx_v_name, ((PyObject*)__pyx_t_39), __pyx_v_ex); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 2112, __pyx_L245_error) __Pyx_GOTREF(__pyx_t_27); __Pyx_DECREF(__pyx_t_39); __pyx_t_39 = 0;
2113: )
+2114: continue
goto __pyx_L242_continue;
}
+2115: elif f.origin is set:
__pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_f, __pyx_mstate_global->__pyx_n_u_origin_2); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 2115, __pyx_L42_error) __Pyx_GOTREF(__pyx_t_11); __pyx_t_2 = (__pyx_t_11 == ((PyObject *)(&PySet_Type))); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; if (__pyx_t_2) { /* … */ goto __pyx_L167; }
+2116: try:
{
/*try:*/ {
/* … */
}
__Pyx_XDECREF(__pyx_t_23); __pyx_t_23 = 0;
__Pyx_XDECREF(__pyx_t_22); __pyx_t_22 = 0;
__Pyx_XDECREF(__pyx_t_21); __pyx_t_21 = 0;
goto __pyx_L258_try_end;
__pyx_L251_error:;
__Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
__Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
__Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0;
__Pyx_XDECREF(__pyx_t_27); __pyx_t_27 = 0;
__Pyx_XDECREF(__pyx_t_37); __pyx_t_37 = 0;
__Pyx_XDECREF(__pyx_t_39); __pyx_t_39 = 0;
__Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
__Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
/* … */
__pyx_L253_except_error:;
__Pyx_XGIVEREF(__pyx_t_23);
__Pyx_XGIVEREF(__pyx_t_22);
__Pyx_XGIVEREF(__pyx_t_21);
__Pyx_ExceptionReset(__pyx_t_23, __pyx_t_22, __pyx_t_21);
goto __pyx_L42_error;
__pyx_L257_try_continue:;
__Pyx_XGIVEREF(__pyx_t_23);
__Pyx_XGIVEREF(__pyx_t_22);
__Pyx_XGIVEREF(__pyx_t_21);
__Pyx_ExceptionReset(__pyx_t_23, __pyx_t_22, __pyx_t_21);
goto __pyx_L48_try_continue;
__pyx_L258_try_end:;
}
+2117: if isinstance(value, list):
__pyx_t_2 = PyList_Check(__pyx_v_value);
if (__pyx_t_2) {
/* … */
goto __pyx_L259;
}
+2118: newval = set(value) # Simple conversion for bare set
__pyx_t_11 = PySet_New(__pyx_v_value); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 2118, __pyx_L251_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_DECREF_SET(__pyx_v_newval, __pyx_t_11); __pyx_t_11 = 0;
+2119: elif f._inner_priv is True:
__pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_f, __pyx_mstate_global->__pyx_n_u_inner_priv); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 2119, __pyx_L251_error) __Pyx_GOTREF(__pyx_t_11); __pyx_t_2 = (__pyx_t_11 == Py_True); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; if (__pyx_t_2) { /* … */ goto __pyx_L259; }
2120: # is a primitive typing Set.
+2121: newval = _parse_set_type(
__pyx_t_43.__pyx_n = 1;
__pyx_t_43._parent = __pyx_v_obj;
__pyx_t_4 = __pyx_f_9datamodel_10converters__parse_set_type(__pyx_v_f, __pyx_v__type, __pyx_v_value, __pyx_v__encoder, __pyx_t_11, &__pyx_t_43); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2121, __pyx_L251_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
__Pyx_DECREF_SET(__pyx_v_newval, __pyx_t_4);
__pyx_t_4 = 0;
2122: f,
2123: _type,
2124: value,
2125: _encoder,
+2126: f.args,
__pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_f, __pyx_mstate_global->__pyx_n_u_args_2); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 2126, __pyx_L251_error) __Pyx_GOTREF(__pyx_t_11);
2127: obj
2128: )
2129: else:
+2130: try:
/*else*/ {
{
/*try:*/ {
/* … */
}
__Pyx_XDECREF(__pyx_t_40); __pyx_t_40 = 0;
__Pyx_XDECREF(__pyx_t_41); __pyx_t_41 = 0;
__Pyx_XDECREF(__pyx_t_42); __pyx_t_42 = 0;
goto __pyx_L267_try_end;
__pyx_L260_error:;
__Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
__Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
__Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0;
__Pyx_XDECREF(__pyx_t_27); __pyx_t_27 = 0;
__Pyx_XDECREF(__pyx_t_37); __pyx_t_37 = 0;
__Pyx_XDECREF(__pyx_t_39); __pyx_t_39 = 0;
__Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
__Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
/* … */
__pyx_L262_except_error:;
__Pyx_XGIVEREF(__pyx_t_40);
__Pyx_XGIVEREF(__pyx_t_41);
__Pyx_XGIVEREF(__pyx_t_42);
__Pyx_ExceptionReset(__pyx_t_40, __pyx_t_41, __pyx_t_42);
goto __pyx_L251_error;
__pyx_L267_try_end:;
}
}
__pyx_L259:;
+2131: newval = _parse_typing(
__pyx_t_36.__pyx_n = 3;
__pyx_t_36.encoder = __pyx_v__encoder;
__pyx_t_36.as_objects = __pyx_t_4;
__pyx_t_36.parent = __pyx_v_obj;
__pyx_t_11 = __pyx_f_9datamodel_10converters__parse_typing(__pyx_v_f, __pyx_v__type, __pyx_v_value, &__pyx_t_36); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 2131, __pyx_L260_error)
__Pyx_GOTREF(__pyx_t_11);
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__Pyx_DECREF_SET(__pyx_v_newval, __pyx_t_11);
__pyx_t_11 = 0;
2132: f,
2133: _type,
2134: value,
2135: _encoder,
+2136: as_objects,
__pyx_t_4 = __Pyx_PyBool_FromLong(__pyx_v_as_objects); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2136, __pyx_L260_error) __Pyx_GOTREF(__pyx_t_4);
2137: obj
2138: )
+2139: except Exception as e:
__pyx_t_10 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(((PyTypeObject*)PyExc_Exception)))); if (__pyx_t_10) { __Pyx_AddTraceback("datamodel.converters.processing_fields", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_11, &__pyx_t_4, &__pyx_t_8) < 0) __PYX_ERR(0, 2139, __pyx_L262_except_error) __Pyx_XGOTREF(__pyx_t_11); __Pyx_XGOTREF(__pyx_t_4); __Pyx_XGOTREF(__pyx_t_8); __Pyx_INCREF(__pyx_t_4); __Pyx_XDECREF_SET(__pyx_v_e, __pyx_t_4); /*try:*/ { /* … */ /*finally:*/ { __pyx_L273_error:; /*exception exit:*/{ __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign __pyx_t_30 = 0; __pyx_t_29 = 0; __pyx_t_28 = 0; __pyx_t_20 = 0; __pyx_t_19 = 0; __pyx_t_18 = 0; __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0; __Pyx_XDECREF(__pyx_t_27); __pyx_t_27 = 0; __Pyx_XDECREF(__pyx_t_37); __pyx_t_37 = 0; __Pyx_XDECREF(__pyx_t_39); __pyx_t_39 = 0; __Pyx_ExceptionSwap(&__pyx_t_20, &__pyx_t_19, &__pyx_t_18); if ( unlikely(__Pyx_GetException(&__pyx_t_30, &__pyx_t_29, &__pyx_t_28) < 0)) __Pyx_ErrFetch(&__pyx_t_30, &__pyx_t_29, &__pyx_t_28); __Pyx_XGOTREF(__pyx_t_30); __Pyx_XGOTREF(__pyx_t_29); __Pyx_XGOTREF(__pyx_t_28); __Pyx_XGOTREF(__pyx_t_20); __Pyx_XGOTREF(__pyx_t_19); __Pyx_XGOTREF(__pyx_t_18); __pyx_t_10 = __pyx_lineno; __pyx_t_16 = __pyx_clineno; __pyx_t_17 = __pyx_filename; { __Pyx_DECREF(__pyx_v_e); __pyx_v_e = 0; } __Pyx_XGIVEREF(__pyx_t_20); __Pyx_XGIVEREF(__pyx_t_19); __Pyx_XGIVEREF(__pyx_t_18); __Pyx_ExceptionReset(__pyx_t_20, __pyx_t_19, __pyx_t_18); __Pyx_XGIVEREF(__pyx_t_30); __Pyx_XGIVEREF(__pyx_t_29); __Pyx_XGIVEREF(__pyx_t_28); __Pyx_ErrRestore(__pyx_t_30, __pyx_t_29, __pyx_t_28); __pyx_t_30 = 0; __pyx_t_29 = 0; __pyx_t_28 = 0; __pyx_t_20 = 0; __pyx_t_19 = 0; __pyx_t_18 = 0; __pyx_lineno = __pyx_t_10; __pyx_clineno = __pyx_t_16; __pyx_filename = __pyx_t_17; goto __pyx_L262_except_error; } } } goto __pyx_L262_except_error;
+2140: raise ValueError(
__pyx_t_27 = NULL;
+2141: f"Error parsing Set: {name}: {e}"
__pyx_t_12 = __Pyx_PyUnicode_Unicode(__pyx_v_name); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2141, __pyx_L273_error) __Pyx_GOTREF(__pyx_t_12); __pyx_t_37 = __Pyx_PyObject_FormatSimple(__pyx_v_e, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_37)) __PYX_ERR(0, 2141, __pyx_L273_error) __Pyx_GOTREF(__pyx_t_37); __pyx_t_38[0] = __pyx_mstate_global->__pyx_kp_u_Error_parsing_Set; __pyx_t_38[1] = __pyx_t_12; __pyx_t_38[2] = __pyx_mstate_global->__pyx_kp_u__5; __pyx_t_38[3] = __pyx_t_37; __pyx_t_14 = 21; #if __Pyx_PyUnicode_Join_CAN_USE_KIND_AND_LENGTH __pyx_t_14 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_38[1]) + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_38[3]); #endif __pyx_t_10 = 0; #if __Pyx_PyUnicode_Join_CAN_USE_KIND_AND_LENGTH __pyx_t_10 |= __Pyx_PyUnicode_KIND_04(__pyx_t_38[1]) | __Pyx_PyUnicode_KIND_04(__pyx_t_38[3]); #endif __pyx_t_15 = __Pyx_PyUnicode_Join(__pyx_t_38, 4, __pyx_t_14, __pyx_t_10); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2141, __pyx_L273_error) __Pyx_GOTREF(__pyx_t_15); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_DECREF(__pyx_t_37); __pyx_t_37 = 0; __pyx_t_9 = 1; { PyObject *__pyx_callargs[2] = {__pyx_t_27, __pyx_t_15}; __pyx_t_39 = __Pyx_PyObject_FastCall((PyObject*)(((PyTypeObject*)PyExc_ValueError)), __pyx_callargs+__pyx_t_9, (2-__pyx_t_9) | (__pyx_t_9*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_27); __pyx_t_27 = 0; __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; if (unlikely(!__pyx_t_39)) __PYX_ERR(0, 2140, __pyx_L273_error) __Pyx_GOTREF(__pyx_t_39); } __Pyx_Raise(__pyx_t_39, 0, 0, 0); __Pyx_DECREF(__pyx_t_39); __pyx_t_39 = 0; __PYX_ERR(0, 2140, __pyx_L273_error) }
2142: )
+2143: obj.__dict__[name] = newval
__pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_obj, __pyx_mstate_global->__pyx_n_u_dict); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2143, __pyx_L251_error) __Pyx_GOTREF(__pyx_t_8); if (unlikely((PyObject_SetItem(__pyx_t_8, __pyx_v_name, __pyx_v_newval) < 0))) __PYX_ERR(0, 2143, __pyx_L251_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
+2144: except ValueError:
__pyx_t_16 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(((PyTypeObject*)PyExc_ValueError)))); if (__pyx_t_16) { __Pyx_AddTraceback("datamodel.converters.processing_fields", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_8, &__pyx_t_4, &__pyx_t_11) < 0) __PYX_ERR(0, 2144, __pyx_L253_except_error) __Pyx_XGOTREF(__pyx_t_8); __Pyx_XGOTREF(__pyx_t_4); __Pyx_XGOTREF(__pyx_t_11);
+2145: raise
__Pyx_GIVEREF(__pyx_t_8); __Pyx_GIVEREF(__pyx_t_4); __Pyx_XGIVEREF(__pyx_t_11); __Pyx_ErrRestoreWithState(__pyx_t_8, __pyx_t_4, __pyx_t_11); __pyx_t_8 = 0; __pyx_t_4 = 0; __pyx_t_11 = 0; __PYX_ERR(0, 2145, __pyx_L253_except_error) }
+2146: except Exception as ex:
__pyx_t_16 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(((PyTypeObject*)PyExc_Exception)))); if (__pyx_t_16) { __Pyx_AddTraceback("datamodel.converters.processing_fields", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_11, &__pyx_t_4, &__pyx_t_8) < 0) __PYX_ERR(0, 2146, __pyx_L253_except_error) __Pyx_XGOTREF(__pyx_t_11); __Pyx_XGOTREF(__pyx_t_4); __Pyx_XGOTREF(__pyx_t_8); __Pyx_INCREF(__pyx_t_4); __pyx_v_ex = __pyx_t_4; /*try:*/ { /* … */ /*finally:*/ { __pyx_L286_error:; /*exception exit:*/{ __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign __pyx_t_42 = 0; __pyx_t_41 = 0; __pyx_t_40 = 0; __pyx_t_18 = 0; __pyx_t_19 = 0; __pyx_t_20 = 0; __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0; __Pyx_XDECREF(__pyx_t_27); __pyx_t_27 = 0; __Pyx_XDECREF(__pyx_t_37); __pyx_t_37 = 0; __Pyx_XDECREF(__pyx_t_39); __pyx_t_39 = 0; __Pyx_ExceptionSwap(&__pyx_t_18, &__pyx_t_19, &__pyx_t_20); if ( unlikely(__Pyx_GetException(&__pyx_t_42, &__pyx_t_41, &__pyx_t_40) < 0)) __Pyx_ErrFetch(&__pyx_t_42, &__pyx_t_41, &__pyx_t_40); __Pyx_XGOTREF(__pyx_t_42); __Pyx_XGOTREF(__pyx_t_41); __Pyx_XGOTREF(__pyx_t_40); __Pyx_XGOTREF(__pyx_t_18); __Pyx_XGOTREF(__pyx_t_19); __Pyx_XGOTREF(__pyx_t_20); __pyx_t_16 = __pyx_lineno; __pyx_t_10 = __pyx_clineno; __pyx_t_17 = __pyx_filename; { __Pyx_DECREF(__pyx_v_ex); __pyx_v_ex = 0; } __Pyx_XGIVEREF(__pyx_t_18); __Pyx_XGIVEREF(__pyx_t_19); __Pyx_XGIVEREF(__pyx_t_20); __Pyx_ExceptionReset(__pyx_t_18, __pyx_t_19, __pyx_t_20); __Pyx_XGIVEREF(__pyx_t_42); __Pyx_XGIVEREF(__pyx_t_41); __Pyx_XGIVEREF(__pyx_t_40); __Pyx_ErrRestore(__pyx_t_42, __pyx_t_41, __pyx_t_40); __pyx_t_42 = 0; __pyx_t_41 = 0; __pyx_t_40 = 0; __pyx_t_18 = 0; __pyx_t_19 = 0; __pyx_t_20 = 0; __pyx_lineno = __pyx_t_16; __pyx_clineno = __pyx_t_10; __pyx_filename = __pyx_t_17; goto __pyx_L253_except_error; } __pyx_L283_continue: { __Pyx_DECREF(__pyx_v_ex); __pyx_v_ex = 0; goto __pyx_L281_except_continue; } } __pyx_L281_except_continue:; __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; goto __pyx_L257_try_continue; } goto __pyx_L253_except_error;
+2147: errors.update(_build_error(name, f"Error parsing Set: ", ex))
__pyx_t_39 = __pyx_f_9datamodel_10converters__build_error(__pyx_v_name, __pyx_mstate_global->__pyx_kp_u_Error_parsing_Set, __pyx_v_ex); if (unlikely(!__pyx_t_39)) __PYX_ERR(0, 2147, __pyx_L286_error) __Pyx_GOTREF(__pyx_t_39); __pyx_t_15 = __Pyx_CallUnboundCMethod1(&__pyx_mstate_global->__pyx_umethod_PyDict_Type__update, __pyx_v_errors, __pyx_t_39); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2147, __pyx_L286_error) __Pyx_GOTREF(__pyx_t_15); __Pyx_DECREF(__pyx_t_39); __pyx_t_39 = 0; __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
+2148: continue
goto __pyx_L283_continue;
}
2149: # FrozenSet type
+2150: elif f.origin is frozenset:
__pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_f, __pyx_mstate_global->__pyx_n_u_origin_2); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2150, __pyx_L42_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_2 = (__pyx_t_8 == ((PyObject *)(&PyFrozenSet_Type))); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; if (__pyx_t_2) { /* … */ goto __pyx_L167; }
+2151: try:
{
/*try:*/ {
/* … */
}
__Pyx_XDECREF(__pyx_t_21); __pyx_t_21 = 0;
__Pyx_XDECREF(__pyx_t_22); __pyx_t_22 = 0;
__Pyx_XDECREF(__pyx_t_23); __pyx_t_23 = 0;
goto __pyx_L299_try_end;
__pyx_L292_error:;
__Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
__Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
__Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0;
__Pyx_XDECREF(__pyx_t_27); __pyx_t_27 = 0;
__Pyx_XDECREF(__pyx_t_37); __pyx_t_37 = 0;
__Pyx_XDECREF(__pyx_t_39); __pyx_t_39 = 0;
__Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
__Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
/* … */
__pyx_L294_except_error:;
__Pyx_XGIVEREF(__pyx_t_21);
__Pyx_XGIVEREF(__pyx_t_22);
__Pyx_XGIVEREF(__pyx_t_23);
__Pyx_ExceptionReset(__pyx_t_21, __pyx_t_22, __pyx_t_23);
goto __pyx_L42_error;
__pyx_L298_try_continue:;
__Pyx_XGIVEREF(__pyx_t_21);
__Pyx_XGIVEREF(__pyx_t_22);
__Pyx_XGIVEREF(__pyx_t_23);
__Pyx_ExceptionReset(__pyx_t_21, __pyx_t_22, __pyx_t_23);
goto __pyx_L48_try_continue;
__pyx_L299_try_end:;
}
+2152: if value is not None:
__pyx_t_2 = (__pyx_v_value != Py_None);
if (__pyx_t_2) {
/* … */
goto __pyx_L300;
}
2153: # Convert to set first if needed
+2154: set_value = value if isinstance(value, (set, frozenset)) else set(value) if isinstance(value, (list, tuple)) else {value}
__pyx_t_25 = PySet_Check(__pyx_v_value); if (!__pyx_t_25) { } else { __pyx_t_2 = __pyx_t_25; goto __pyx_L301_bool_binop_done; } __pyx_t_25 = PyFrozenSet_Check(__pyx_v_value); __pyx_t_2 = __pyx_t_25; __pyx_L301_bool_binop_done:; if (__pyx_t_2) { __Pyx_INCREF(__pyx_v_value); __pyx_t_8 = __pyx_v_value; } else { __pyx_t_24 = PyList_Check(__pyx_v_value); if (!__pyx_t_24) { } else { __pyx_t_25 = __pyx_t_24; goto __pyx_L303_bool_binop_done; } __pyx_t_24 = PyTuple_Check(__pyx_v_value); __pyx_t_25 = __pyx_t_24; __pyx_L303_bool_binop_done:; if (__pyx_t_25) { __pyx_t_11 = PySet_New(__pyx_v_value); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 2154, __pyx_L292_error) __Pyx_GOTREF(__pyx_t_11); __pyx_t_4 = __pyx_t_11; __pyx_t_11 = 0; } else { __pyx_t_11 = PySet_New(0); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 2154, __pyx_L292_error) __Pyx_GOTREF(__pyx_t_11); if (PySet_Add(__pyx_t_11, __pyx_v_value) < (0)) __PYX_ERR(0, 2154, __pyx_L292_error) __pyx_t_4 = __pyx_t_11; __pyx_t_11 = 0; } __pyx_t_8 = __pyx_t_4; __pyx_t_4 = 0; } __Pyx_XDECREF_SET(__pyx_v_set_value, __pyx_t_8); __pyx_t_8 = 0;
+2155: newval = frozenset(_parse_set_type(
__pyx_t_43.__pyx_n = 1;
__pyx_t_43._parent = __pyx_v_obj;
__pyx_t_4 = __pyx_f_9datamodel_10converters__parse_set_type(__pyx_v_f, __pyx_v__type, __pyx_v_set_value, __pyx_v__encoder, __pyx_t_8, &__pyx_t_43); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2155, __pyx_L292_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
__pyx_t_8 = __Pyx_PyFrozenSet_New(__pyx_t_4); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2155, __pyx_L292_error)
__Pyx_GOTREF(__pyx_t_8);
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__Pyx_DECREF_SET(__pyx_v_newval, __pyx_t_8);
__pyx_t_8 = 0;
2156: f,
2157: _type,
2158: set_value,
2159: _encoder,
+2160: f.args,
__pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_f, __pyx_mstate_global->__pyx_n_u_args_2); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2160, __pyx_L292_error) __Pyx_GOTREF(__pyx_t_8);
2161: obj
2162: ))
2163: else:
+2164: newval = frozenset()
/*else*/ {
__Pyx_INCREF(__pyx_mstate_global->__pyx_frozenset[0]);
__Pyx_DECREF_SET(__pyx_v_newval, __pyx_mstate_global->__pyx_frozenset[0]);
}
__pyx_L300:;
+2165: obj.__dict__[name] = newval
__pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_obj, __pyx_mstate_global->__pyx_n_u_dict); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2165, __pyx_L292_error) __Pyx_GOTREF(__pyx_t_8); if (unlikely((PyObject_SetItem(__pyx_t_8, __pyx_v_name, __pyx_v_newval) < 0))) __PYX_ERR(0, 2165, __pyx_L292_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
+2166: except ValueError:
__pyx_t_10 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(((PyTypeObject*)PyExc_ValueError)))); if (__pyx_t_10) { __Pyx_AddTraceback("datamodel.converters.processing_fields", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_8, &__pyx_t_4, &__pyx_t_11) < 0) __PYX_ERR(0, 2166, __pyx_L294_except_error) __Pyx_XGOTREF(__pyx_t_8); __Pyx_XGOTREF(__pyx_t_4); __Pyx_XGOTREF(__pyx_t_11);
+2167: raise
__Pyx_GIVEREF(__pyx_t_8); __Pyx_GIVEREF(__pyx_t_4); __Pyx_XGIVEREF(__pyx_t_11); __Pyx_ErrRestoreWithState(__pyx_t_8, __pyx_t_4, __pyx_t_11); __pyx_t_8 = 0; __pyx_t_4 = 0; __pyx_t_11 = 0; __PYX_ERR(0, 2167, __pyx_L294_except_error) }
+2168: except Exception as ex:
__pyx_t_10 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(((PyTypeObject*)PyExc_Exception)))); if (__pyx_t_10) { __Pyx_AddTraceback("datamodel.converters.processing_fields", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_11, &__pyx_t_4, &__pyx_t_8) < 0) __PYX_ERR(0, 2168, __pyx_L294_except_error) __Pyx_XGOTREF(__pyx_t_11); __Pyx_XGOTREF(__pyx_t_4); __Pyx_XGOTREF(__pyx_t_8); __Pyx_INCREF(__pyx_t_4); __pyx_v_ex = __pyx_t_4; /*try:*/ { /* … */ /*finally:*/ { __pyx_L312_error:; /*exception exit:*/{ __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign __pyx_t_20 = 0; __pyx_t_19 = 0; __pyx_t_18 = 0; __pyx_t_40 = 0; __pyx_t_41 = 0; __pyx_t_42 = 0; __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0; __Pyx_XDECREF(__pyx_t_27); __pyx_t_27 = 0; __Pyx_XDECREF(__pyx_t_37); __pyx_t_37 = 0; __Pyx_XDECREF(__pyx_t_39); __pyx_t_39 = 0; __Pyx_ExceptionSwap(&__pyx_t_40, &__pyx_t_41, &__pyx_t_42); if ( unlikely(__Pyx_GetException(&__pyx_t_20, &__pyx_t_19, &__pyx_t_18) < 0)) __Pyx_ErrFetch(&__pyx_t_20, &__pyx_t_19, &__pyx_t_18); __Pyx_XGOTREF(__pyx_t_20); __Pyx_XGOTREF(__pyx_t_19); __Pyx_XGOTREF(__pyx_t_18); __Pyx_XGOTREF(__pyx_t_40); __Pyx_XGOTREF(__pyx_t_41); __Pyx_XGOTREF(__pyx_t_42); __pyx_t_10 = __pyx_lineno; __pyx_t_16 = __pyx_clineno; __pyx_t_17 = __pyx_filename; { __Pyx_DECREF(__pyx_v_ex); __pyx_v_ex = 0; } __Pyx_XGIVEREF(__pyx_t_40); __Pyx_XGIVEREF(__pyx_t_41); __Pyx_XGIVEREF(__pyx_t_42); __Pyx_ExceptionReset(__pyx_t_40, __pyx_t_41, __pyx_t_42); __Pyx_XGIVEREF(__pyx_t_20); __Pyx_XGIVEREF(__pyx_t_19); __Pyx_XGIVEREF(__pyx_t_18); __Pyx_ErrRestore(__pyx_t_20, __pyx_t_19, __pyx_t_18); __pyx_t_20 = 0; __pyx_t_19 = 0; __pyx_t_18 = 0; __pyx_t_40 = 0; __pyx_t_41 = 0; __pyx_t_42 = 0; __pyx_lineno = __pyx_t_10; __pyx_clineno = __pyx_t_16; __pyx_filename = __pyx_t_17; goto __pyx_L294_except_error; } __pyx_L309_continue: { __Pyx_DECREF(__pyx_v_ex); __pyx_v_ex = 0; goto __pyx_L307_except_continue; } } __pyx_L307_except_continue:; __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; goto __pyx_L298_try_continue; } goto __pyx_L294_except_error;
+2169: errors.update(_build_error(name, f"Error parsing FrozenSet {name}: ", ex))
__pyx_t_15 = __Pyx_PyUnicode_Unicode(__pyx_v_name); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2169, __pyx_L312_error) __Pyx_GOTREF(__pyx_t_15); __pyx_t_13[0] = __pyx_mstate_global->__pyx_kp_u_Error_parsing_FrozenSet; __pyx_t_13[1] = __pyx_t_15; __pyx_t_13[2] = __pyx_mstate_global->__pyx_kp_u__5; __pyx_t_14 = 26; #if __Pyx_PyUnicode_Join_CAN_USE_KIND_AND_LENGTH __pyx_t_14 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_13[1]); #endif __pyx_t_10 = 0; #if __Pyx_PyUnicode_Join_CAN_USE_KIND_AND_LENGTH __pyx_t_10 |= __Pyx_PyUnicode_KIND_04(__pyx_t_13[1]); #endif __pyx_t_39 = __Pyx_PyUnicode_Join(__pyx_t_13, 3, __pyx_t_14, __pyx_t_10); if (unlikely(!__pyx_t_39)) __PYX_ERR(0, 2169, __pyx_L312_error) __Pyx_GOTREF(__pyx_t_39); __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; __pyx_t_15 = __pyx_f_9datamodel_10converters__build_error(__pyx_v_name, ((PyObject*)__pyx_t_39), __pyx_v_ex); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2169, __pyx_L312_error) __Pyx_GOTREF(__pyx_t_15); __Pyx_DECREF(__pyx_t_39); __pyx_t_39 = 0; __pyx_t_39 = __Pyx_CallUnboundCMethod1(&__pyx_mstate_global->__pyx_umethod_PyDict_Type__update, __pyx_v_errors, __pyx_t_15); if (unlikely(!__pyx_t_39)) __PYX_ERR(0, 2169, __pyx_L312_error) __Pyx_GOTREF(__pyx_t_39); __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; __Pyx_DECREF(__pyx_t_39); __pyx_t_39 = 0;
+2170: continue
goto __pyx_L309_continue;
}
+2171: elif f.origin is tuple:
__pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_f, __pyx_mstate_global->__pyx_n_u_origin_2); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2171, __pyx_L42_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_2 = (__pyx_t_8 == ((PyObject *)(&PyTuple_Type))); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; if (__pyx_t_2) { /* … */ goto __pyx_L167; }
+2172: try:
{
/*try:*/ {
/* … */
}
__Pyx_XDECREF(__pyx_t_23); __pyx_t_23 = 0;
__Pyx_XDECREF(__pyx_t_22); __pyx_t_22 = 0;
__Pyx_XDECREF(__pyx_t_21); __pyx_t_21 = 0;
goto __pyx_L325_try_end;
__pyx_L318_error:;
__Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
__Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
__Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0;
__Pyx_XDECREF(__pyx_t_27); __pyx_t_27 = 0;
__Pyx_XDECREF(__pyx_t_37); __pyx_t_37 = 0;
__Pyx_XDECREF(__pyx_t_39); __pyx_t_39 = 0;
__Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
__Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
/* … */
__pyx_L320_except_error:;
__Pyx_XGIVEREF(__pyx_t_23);
__Pyx_XGIVEREF(__pyx_t_22);
__Pyx_XGIVEREF(__pyx_t_21);
__Pyx_ExceptionReset(__pyx_t_23, __pyx_t_22, __pyx_t_21);
goto __pyx_L42_error;
__pyx_L324_try_continue:;
__Pyx_XGIVEREF(__pyx_t_23);
__Pyx_XGIVEREF(__pyx_t_22);
__Pyx_XGIVEREF(__pyx_t_21);
__Pyx_ExceptionReset(__pyx_t_23, __pyx_t_22, __pyx_t_21);
goto __pyx_L48_try_continue;
__pyx_L325_try_end:;
}
+2173: newval = _parse_tuple_type(f, _type, value, _encoder, f.args)
__pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_f, __pyx_mstate_global->__pyx_n_u_args_2); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2173, __pyx_L318_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_4 = __pyx_f_9datamodel_10converters__parse_tuple_type(__pyx_v_f, __pyx_v__type, __pyx_v_value, __pyx_v__encoder, __pyx_t_8); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2173, __pyx_L318_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF_SET(__pyx_v_newval, __pyx_t_4); __pyx_t_4 = 0;
+2174: obj.__dict__[name] = newval
__pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_obj, __pyx_mstate_global->__pyx_n_u_dict); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2174, __pyx_L318_error) __Pyx_GOTREF(__pyx_t_4); if (unlikely((PyObject_SetItem(__pyx_t_4, __pyx_v_name, __pyx_v_newval) < 0))) __PYX_ERR(0, 2174, __pyx_L318_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+2175: except ValueError:
__pyx_t_16 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(((PyTypeObject*)PyExc_ValueError)))); if (__pyx_t_16) { __Pyx_AddTraceback("datamodel.converters.processing_fields", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_4, &__pyx_t_8, &__pyx_t_11) < 0) __PYX_ERR(0, 2175, __pyx_L320_except_error) __Pyx_XGOTREF(__pyx_t_4); __Pyx_XGOTREF(__pyx_t_8); __Pyx_XGOTREF(__pyx_t_11);
+2176: raise
__Pyx_GIVEREF(__pyx_t_4); __Pyx_GIVEREF(__pyx_t_8); __Pyx_XGIVEREF(__pyx_t_11); __Pyx_ErrRestoreWithState(__pyx_t_4, __pyx_t_8, __pyx_t_11); __pyx_t_4 = 0; __pyx_t_8 = 0; __pyx_t_11 = 0; __PYX_ERR(0, 2176, __pyx_L320_except_error) }
+2177: except Exception as ex:
__pyx_t_16 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(((PyTypeObject*)PyExc_Exception)))); if (__pyx_t_16) { __Pyx_AddTraceback("datamodel.converters.processing_fields", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_11, &__pyx_t_8, &__pyx_t_4) < 0) __PYX_ERR(0, 2177, __pyx_L320_except_error) __Pyx_XGOTREF(__pyx_t_11); __Pyx_XGOTREF(__pyx_t_8); __Pyx_XGOTREF(__pyx_t_4); __Pyx_INCREF(__pyx_t_8); __pyx_v_ex = __pyx_t_8; /*try:*/ { /* … */ /*finally:*/ { __pyx_L333_error:; /*exception exit:*/{ __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign __pyx_t_42 = 0; __pyx_t_41 = 0; __pyx_t_40 = 0; __pyx_t_18 = 0; __pyx_t_19 = 0; __pyx_t_20 = 0; __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0; __Pyx_XDECREF(__pyx_t_27); __pyx_t_27 = 0; __Pyx_XDECREF(__pyx_t_37); __pyx_t_37 = 0; __Pyx_XDECREF(__pyx_t_39); __pyx_t_39 = 0; __Pyx_ExceptionSwap(&__pyx_t_18, &__pyx_t_19, &__pyx_t_20); if ( unlikely(__Pyx_GetException(&__pyx_t_42, &__pyx_t_41, &__pyx_t_40) < 0)) __Pyx_ErrFetch(&__pyx_t_42, &__pyx_t_41, &__pyx_t_40); __Pyx_XGOTREF(__pyx_t_42); __Pyx_XGOTREF(__pyx_t_41); __Pyx_XGOTREF(__pyx_t_40); __Pyx_XGOTREF(__pyx_t_18); __Pyx_XGOTREF(__pyx_t_19); __Pyx_XGOTREF(__pyx_t_20); __pyx_t_16 = __pyx_lineno; __pyx_t_10 = __pyx_clineno; __pyx_t_17 = __pyx_filename; { __Pyx_DECREF(__pyx_v_ex); __pyx_v_ex = 0; } __Pyx_XGIVEREF(__pyx_t_18); __Pyx_XGIVEREF(__pyx_t_19); __Pyx_XGIVEREF(__pyx_t_20); __Pyx_ExceptionReset(__pyx_t_18, __pyx_t_19, __pyx_t_20); __Pyx_XGIVEREF(__pyx_t_42); __Pyx_XGIVEREF(__pyx_t_41); __Pyx_XGIVEREF(__pyx_t_40); __Pyx_ErrRestore(__pyx_t_42, __pyx_t_41, __pyx_t_40); __pyx_t_42 = 0; __pyx_t_41 = 0; __pyx_t_40 = 0; __pyx_t_18 = 0; __pyx_t_19 = 0; __pyx_t_20 = 0; __pyx_lineno = __pyx_t_16; __pyx_clineno = __pyx_t_10; __pyx_filename = __pyx_t_17; goto __pyx_L320_except_error; } __pyx_L330_continue: { __Pyx_DECREF(__pyx_v_ex); __pyx_v_ex = 0; goto __pyx_L328_except_continue; } } __pyx_L328_except_continue:; __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; goto __pyx_L324_try_continue; } goto __pyx_L320_except_error;
+2178: errors.update(_build_error(name, f"Error parsing Tuple {name}: ", ex))
__pyx_t_39 = __Pyx_PyUnicode_Unicode(__pyx_v_name); if (unlikely(!__pyx_t_39)) __PYX_ERR(0, 2178, __pyx_L333_error) __Pyx_GOTREF(__pyx_t_39); __pyx_t_13[0] = __pyx_mstate_global->__pyx_kp_u_Error_parsing_Tuple; __pyx_t_13[1] = __pyx_t_39; __pyx_t_13[2] = __pyx_mstate_global->__pyx_kp_u__5; __pyx_t_14 = 22; #if __Pyx_PyUnicode_Join_CAN_USE_KIND_AND_LENGTH __pyx_t_14 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_13[1]); #endif __pyx_t_16 = 0; #if __Pyx_PyUnicode_Join_CAN_USE_KIND_AND_LENGTH __pyx_t_16 |= __Pyx_PyUnicode_KIND_04(__pyx_t_13[1]); #endif __pyx_t_15 = __Pyx_PyUnicode_Join(__pyx_t_13, 3, __pyx_t_14, __pyx_t_16); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2178, __pyx_L333_error) __Pyx_GOTREF(__pyx_t_15); __Pyx_DECREF(__pyx_t_39); __pyx_t_39 = 0; __pyx_t_39 = __pyx_f_9datamodel_10converters__build_error(__pyx_v_name, ((PyObject*)__pyx_t_15), __pyx_v_ex); if (unlikely(!__pyx_t_39)) __PYX_ERR(0, 2178, __pyx_L333_error) __Pyx_GOTREF(__pyx_t_39); __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; __pyx_t_15 = __Pyx_CallUnboundCMethod1(&__pyx_mstate_global->__pyx_umethod_PyDict_Type__update, __pyx_v_errors, __pyx_t_39); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2178, __pyx_L333_error) __Pyx_GOTREF(__pyx_t_15); __Pyx_DECREF(__pyx_t_39); __pyx_t_39 = 0; __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
+2179: continue
goto __pyx_L330_continue;
}
2180: # If the field is a Union and data is a list, use _parse_union_type.
+2181: elif f.origin is Union:
__pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_f, __pyx_mstate_global->__pyx_n_u_origin_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2181, __pyx_L42_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_Union); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2181, __pyx_L42_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_2 = (__pyx_t_4 == __pyx_t_8); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; if (__pyx_t_2) { /* … */ goto __pyx_L167; }
+2182: try:
{
/*try:*/ {
/* … */
}
__Pyx_XDECREF(__pyx_t_21); __pyx_t_21 = 0;
__Pyx_XDECREF(__pyx_t_22); __pyx_t_22 = 0;
__Pyx_XDECREF(__pyx_t_23); __pyx_t_23 = 0;
goto __pyx_L346_try_end;
__pyx_L339_error:;
__Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
__Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
__Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0;
__Pyx_XDECREF(__pyx_t_27); __pyx_t_27 = 0;
__Pyx_XDECREF(__pyx_t_37); __pyx_t_37 = 0;
__Pyx_XDECREF(__pyx_t_39); __pyx_t_39 = 0;
__Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
__Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
/* … */
__pyx_L341_except_error:;
__Pyx_XGIVEREF(__pyx_t_21);
__Pyx_XGIVEREF(__pyx_t_22);
__Pyx_XGIVEREF(__pyx_t_23);
__Pyx_ExceptionReset(__pyx_t_21, __pyx_t_22, __pyx_t_23);
goto __pyx_L42_error;
__pyx_L345_try_continue:;
__Pyx_XGIVEREF(__pyx_t_21);
__Pyx_XGIVEREF(__pyx_t_22);
__Pyx_XGIVEREF(__pyx_t_23);
__Pyx_ExceptionReset(__pyx_t_21, __pyx_t_22, __pyx_t_23);
goto __pyx_L48_try_continue;
__pyx_L346_try_end:;
}
+2183: if len(f.args) == 2 and type(None) in f.args:
__pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_f, __pyx_mstate_global->__pyx_n_u_args_2); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2183, __pyx_L339_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_14 = PyObject_Length(__pyx_t_8); if (unlikely(__pyx_t_14 == ((Py_ssize_t)-1))) __PYX_ERR(0, 2183, __pyx_L339_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_t_25 = (__pyx_t_14 == 2); if (__pyx_t_25) { } else { __pyx_t_2 = __pyx_t_25; goto __pyx_L348_bool_binop_done; } __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_f, __pyx_mstate_global->__pyx_n_u_args_2); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2183, __pyx_L339_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_25 = (__Pyx_PySequence_ContainsTF(((PyObject *)Py_TYPE(Py_None)), __pyx_t_8, Py_EQ)); if (unlikely((__pyx_t_25 < 0))) __PYX_ERR(0, 2183, __pyx_L339_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_t_2 = __pyx_t_25; __pyx_L348_bool_binop_done:; if (__pyx_t_2) { /* … */ goto __pyx_L347; }
2184: # e.g. Optional[...] or Union[A, B]
+2185: if value is None:
__pyx_t_2 = (__pyx_v_value == Py_None);
if (__pyx_t_2) {
/* … */
goto __pyx_L350;
}
+2186: newval = None
__Pyx_INCREF(Py_None); __Pyx_DECREF_SET(__pyx_v_newval, Py_None);
+2187: elif f._inner_priv:
__pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_f, __pyx_mstate_global->__pyx_n_u_inner_priv); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2187, __pyx_L339_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 2187, __pyx_L339_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; if (__pyx_t_2) { /* … */ goto __pyx_L350; }
2188: # If Optional but non-None is a primitive
+2189: newval = _parse_builtin_type(f, f._inner_type, value, _encoder)
__pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_f, __pyx_mstate_global->__pyx_n_u_inner_type); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2189, __pyx_L339_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_4 = __pyx_f_9datamodel_10converters__parse_builtin_type(__pyx_v_f, __pyx_t_8, __pyx_v_value, __pyx_v__encoder); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2189, __pyx_L339_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF_SET(__pyx_v_newval, __pyx_t_4); __pyx_t_4 = 0;
+2190: elif f._inner_is_dc:
__pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_f, __pyx_mstate_global->__pyx_n_u_inner_is_dc); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2190, __pyx_L339_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 2190, __pyx_L339_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (__pyx_t_2) { /* … */ goto __pyx_L350; }
2191: # non-None is a Optional Dataclass Optional[dataclass]
+2192: newval = _handle_dataclass_type(
__pyx_t_32.__pyx_n = 2;
__pyx_t_32.as_objects = __pyx_t_8;
__pyx_t_32.parent = Py_None;
__pyx_t_11 = __pyx_f_9datamodel_10converters__handle_dataclass_type(Py_None, __pyx_v_name, __pyx_v_value, __pyx_t_4, &__pyx_t_32); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 2192, __pyx_L339_error)
__Pyx_GOTREF(__pyx_t_11);
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
__Pyx_DECREF_SET(__pyx_v_newval, __pyx_t_11);
__pyx_t_11 = 0;
+2193: None, name, value, f._inner_type, as_objects, None
__pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_f, __pyx_mstate_global->__pyx_n_u_inner_type); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2193, __pyx_L339_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_8 = __Pyx_PyBool_FromLong(__pyx_v_as_objects); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2193, __pyx_L339_error) __Pyx_GOTREF(__pyx_t_8);
2194: )
+2195: elif f._inner_origin is list:
__pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_f, __pyx_mstate_global->__pyx_n_u_inner_origin); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 2195, __pyx_L339_error) __Pyx_GOTREF(__pyx_t_11); __pyx_t_2 = (__pyx_t_11 == ((PyObject *)(&PyList_Type))); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; if (__pyx_t_2) { /* … */ goto __pyx_L350; }
+2196: if f._inner_type.__module__ == 'typing':
__pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_f, __pyx_mstate_global->__pyx_n_u_inner_type); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 2196, __pyx_L339_error) __Pyx_GOTREF(__pyx_t_11); __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_11, __pyx_mstate_global->__pyx_n_u_module); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2196, __pyx_L339_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __pyx_t_2 = __Pyx_PyObject_CompareBoolEq_object_str(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_typing, Py_EQ); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 2196, __pyx_L339_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; if (__pyx_t_2) { /* … */ goto __pyx_L351; }
+2197: newval = _parse_list_typing(
__pyx_t_44.__pyx_n = 1;
__pyx_t_44.as_objects = __pyx_v_obj;
__pyx_t_15 = __pyx_f_9datamodel_10converters__parse_list_typing(__pyx_v_f, ((PyObject*)__pyx_t_8), __pyx_v_value, __pyx_v__encoder, __pyx_t_11, __pyx_t_4, &__pyx_t_44); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2197, __pyx_L339_error)
__Pyx_GOTREF(__pyx_t_15);
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
__Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__Pyx_DECREF_SET(__pyx_v_newval, __pyx_t_15);
__pyx_t_15 = 0;
2198: f,
+2199: f._typing_args,
__pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_f, __pyx_mstate_global->__pyx_n_u_typing_args); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2199, __pyx_L339_error) __Pyx_GOTREF(__pyx_t_8); if (!(likely(PyTuple_CheckExact(__pyx_t_8))||((__pyx_t_8) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_t_8))) __PYX_ERR(0, 2199, __pyx_L339_error)
2200: value,
2201: _encoder,
+2202: f._inner_origin,
__pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_f, __pyx_mstate_global->__pyx_n_u_inner_origin); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 2202, __pyx_L339_error) __Pyx_GOTREF(__pyx_t_11);
+2203: f._typing_args,
__pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_f, __pyx_mstate_global->__pyx_n_u_typing_args); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2203, __pyx_L339_error) __Pyx_GOTREF(__pyx_t_4);
2204: obj
2205: )
2206: else:
+2207: newval = _parse_list_type(
/*else*/ {
/* … */
__pyx_t_35.__pyx_n = 1;
__pyx_t_35._parent = __pyx_v_obj;
__pyx_t_11 = __pyx_f_9datamodel_10converters__parse_list_type(__pyx_v_f, __pyx_t_15, __pyx_v_value, __pyx_v__encoder, __pyx_t_4, &__pyx_t_35); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 2207, __pyx_L339_error)
__Pyx_GOTREF(__pyx_t_11);
__Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__Pyx_DECREF_SET(__pyx_v_newval, __pyx_t_11);
__pyx_t_11 = 0;
}
__pyx_L351:;
2208: f,
+2209: f._inner_type,
__pyx_t_15 = __Pyx_PyObject_GetAttrStr(__pyx_v_f, __pyx_mstate_global->__pyx_n_u_inner_type); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2209, __pyx_L339_error) __Pyx_GOTREF(__pyx_t_15);
2210: value,
2211: _encoder,
+2212: f._inner_targs,
__pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_f, __pyx_mstate_global->__pyx_n_u_inner_targs); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2212, __pyx_L339_error) __Pyx_GOTREF(__pyx_t_4);
2213: obj
2214: )
+2215: elif f._inner_origin is dict and not isinstance(value, dict) and value is not None:
__pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_f, __pyx_mstate_global->__pyx_n_u_inner_origin); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 2215, __pyx_L339_error) __Pyx_GOTREF(__pyx_t_11); __pyx_t_25 = (__pyx_t_11 == ((PyObject *)(&PyDict_Type))); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; if (__pyx_t_25) { } else { __pyx_t_2 = __pyx_t_25; goto __pyx_L352_bool_binop_done; } __pyx_t_25 = PyDict_Check(__pyx_v_value); __pyx_t_24 = (!__pyx_t_25); if (__pyx_t_24) { } else { __pyx_t_2 = __pyx_t_24; goto __pyx_L352_bool_binop_done; } __pyx_t_24 = (__pyx_v_value != Py_None); __pyx_t_2 = __pyx_t_24; __pyx_L352_bool_binop_done:; if (__pyx_t_2) { /* … */ goto __pyx_L350; }
+2216: newval = _parse_dict_type(f, f._inner_type, value, _encoder, f.args)
__pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_f, __pyx_mstate_global->__pyx_n_u_inner_type); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 2216, __pyx_L339_error) __Pyx_GOTREF(__pyx_t_11); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_f, __pyx_mstate_global->__pyx_n_u_args_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2216, __pyx_L339_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_15 = __pyx_f_9datamodel_10converters__parse_dict_type(__pyx_v_f, __pyx_t_11, __pyx_v_value, __pyx_v__encoder, __pyx_t_4); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2216, __pyx_L339_error) __Pyx_GOTREF(__pyx_t_15); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF_SET(__pyx_v_newval, __pyx_t_15); __pyx_t_15 = 0;
2217: else:
+2218: try:
/*else*/ {
{
/*try:*/ {
/* … */
}
__Pyx_XDECREF(__pyx_t_20); __pyx_t_20 = 0;
__Pyx_XDECREF(__pyx_t_19); __pyx_t_19 = 0;
__Pyx_XDECREF(__pyx_t_18); __pyx_t_18 = 0;
goto __pyx_L362_try_end;
__pyx_L355_error:;
__Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
__Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
__Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0;
__Pyx_XDECREF(__pyx_t_27); __pyx_t_27 = 0;
__Pyx_XDECREF(__pyx_t_37); __pyx_t_37 = 0;
__Pyx_XDECREF(__pyx_t_39); __pyx_t_39 = 0;
__Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
__Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
/* … */
__pyx_L357_except_error:;
__Pyx_XGIVEREF(__pyx_t_20);
__Pyx_XGIVEREF(__pyx_t_19);
__Pyx_XGIVEREF(__pyx_t_18);
__Pyx_ExceptionReset(__pyx_t_20, __pyx_t_19, __pyx_t_18);
goto __pyx_L339_error;
__pyx_L362_try_end:;
}
}
__pyx_L350:;
+2219: newval = _parse_typing(f, f._inner_type, value, _encoder, as_objects, obj)
__pyx_t_15 = __Pyx_PyObject_GetAttrStr(__pyx_v_f, __pyx_mstate_global->__pyx_n_u_inner_type); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2219, __pyx_L355_error) __Pyx_GOTREF(__pyx_t_15); __pyx_t_4 = __Pyx_PyBool_FromLong(__pyx_v_as_objects); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2219, __pyx_L355_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_36.__pyx_n = 3; __pyx_t_36.encoder = __pyx_v__encoder; __pyx_t_36.as_objects = __pyx_t_4; __pyx_t_36.parent = __pyx_v_obj; __pyx_t_11 = __pyx_f_9datamodel_10converters__parse_typing(__pyx_v_f, __pyx_t_15, __pyx_v_value, &__pyx_t_36); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 2219, __pyx_L355_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF_SET(__pyx_v_newval, __pyx_t_11); __pyx_t_11 = 0;
+2220: except ValueError:
__pyx_t_10 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(((PyTypeObject*)PyExc_ValueError)))); if (__pyx_t_10) { __Pyx_AddTraceback("datamodel.converters.processing_fields", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_11, &__pyx_t_4, &__pyx_t_15) < 0) __PYX_ERR(0, 2220, __pyx_L357_except_error) __Pyx_XGOTREF(__pyx_t_11); __Pyx_XGOTREF(__pyx_t_4); __Pyx_XGOTREF(__pyx_t_15);
+2221: raise
__Pyx_GIVEREF(__pyx_t_11); __Pyx_GIVEREF(__pyx_t_4); __Pyx_XGIVEREF(__pyx_t_15); __Pyx_ErrRestoreWithState(__pyx_t_11, __pyx_t_4, __pyx_t_15); __pyx_t_11 = 0; __pyx_t_4 = 0; __pyx_t_15 = 0; __PYX_ERR(0, 2221, __pyx_L357_except_error) }
+2222: except Exception as e:
__pyx_t_10 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(((PyTypeObject*)PyExc_Exception)))); if (__pyx_t_10) { __Pyx_AddTraceback("datamodel.converters.processing_fields", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_15, &__pyx_t_4, &__pyx_t_11) < 0) __PYX_ERR(0, 2222, __pyx_L357_except_error) __Pyx_XGOTREF(__pyx_t_15); __Pyx_XGOTREF(__pyx_t_4); __Pyx_XGOTREF(__pyx_t_11); __Pyx_INCREF(__pyx_t_4); __Pyx_XDECREF_SET(__pyx_v_e, __pyx_t_4); /*try:*/ { /* … */ /*finally:*/ { __pyx_L370_error:; /*exception exit:*/{ __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign __pyx_t_40 = 0; __pyx_t_41 = 0; __pyx_t_42 = 0; __pyx_t_28 = 0; __pyx_t_29 = 0; __pyx_t_30 = 0; __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_XDECREF(__pyx_t_27); __pyx_t_27 = 0; __Pyx_XDECREF(__pyx_t_37); __pyx_t_37 = 0; __Pyx_XDECREF(__pyx_t_39); __pyx_t_39 = 0; __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_ExceptionSwap(&__pyx_t_28, &__pyx_t_29, &__pyx_t_30); if ( unlikely(__Pyx_GetException(&__pyx_t_40, &__pyx_t_41, &__pyx_t_42) < 0)) __Pyx_ErrFetch(&__pyx_t_40, &__pyx_t_41, &__pyx_t_42); __Pyx_XGOTREF(__pyx_t_40); __Pyx_XGOTREF(__pyx_t_41); __Pyx_XGOTREF(__pyx_t_42); __Pyx_XGOTREF(__pyx_t_28); __Pyx_XGOTREF(__pyx_t_29); __Pyx_XGOTREF(__pyx_t_30); __pyx_t_10 = __pyx_lineno; __pyx_t_16 = __pyx_clineno; __pyx_t_17 = __pyx_filename; { __Pyx_DECREF(__pyx_v_e); __pyx_v_e = 0; } __Pyx_XGIVEREF(__pyx_t_28); __Pyx_XGIVEREF(__pyx_t_29); __Pyx_XGIVEREF(__pyx_t_30); __Pyx_ExceptionReset(__pyx_t_28, __pyx_t_29, __pyx_t_30); __Pyx_XGIVEREF(__pyx_t_40); __Pyx_XGIVEREF(__pyx_t_41); __Pyx_XGIVEREF(__pyx_t_42); __Pyx_ErrRestore(__pyx_t_40, __pyx_t_41, __pyx_t_42); __pyx_t_40 = 0; __pyx_t_41 = 0; __pyx_t_42 = 0; __pyx_t_28 = 0; __pyx_t_29 = 0; __pyx_t_30 = 0; __pyx_lineno = __pyx_t_10; __pyx_clineno = __pyx_t_16; __pyx_filename = __pyx_t_17; goto __pyx_L357_except_error; } } } goto __pyx_L357_except_error;
+2223: raise ValueError(
__pyx_t_39 = NULL;
+2224: f"Error parsing Optional: {name}: {e}"
__pyx_t_27 = __Pyx_PyUnicode_Unicode(__pyx_v_name); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 2224, __pyx_L370_error) __Pyx_GOTREF(__pyx_t_27); __pyx_t_37 = __Pyx_PyObject_FormatSimple(__pyx_v_e, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_37)) __PYX_ERR(0, 2224, __pyx_L370_error) __Pyx_GOTREF(__pyx_t_37); __pyx_t_38[0] = __pyx_mstate_global->__pyx_kp_u_Error_parsing_Optional; __pyx_t_38[1] = __pyx_t_27; __pyx_t_38[2] = __pyx_mstate_global->__pyx_kp_u__5; __pyx_t_38[3] = __pyx_t_37; __pyx_t_14 = 26; #if __Pyx_PyUnicode_Join_CAN_USE_KIND_AND_LENGTH __pyx_t_14 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_38[1]) + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_38[3]); #endif __pyx_t_10 = 0; #if __Pyx_PyUnicode_Join_CAN_USE_KIND_AND_LENGTH __pyx_t_10 |= __Pyx_PyUnicode_KIND_04(__pyx_t_38[1]) | __Pyx_PyUnicode_KIND_04(__pyx_t_38[3]); #endif __pyx_t_12 = __Pyx_PyUnicode_Join(__pyx_t_38, 4, __pyx_t_14, __pyx_t_10); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2224, __pyx_L370_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0; __Pyx_DECREF(__pyx_t_37); __pyx_t_37 = 0; __pyx_t_9 = 1; { PyObject *__pyx_callargs[2] = {__pyx_t_39, __pyx_t_12}; __pyx_t_8 = __Pyx_PyObject_FastCall((PyObject*)(((PyTypeObject*)PyExc_ValueError)), __pyx_callargs+__pyx_t_9, (2-__pyx_t_9) | (__pyx_t_9*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_39); __pyx_t_39 = 0; __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2223, __pyx_L370_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, 2223, __pyx_L370_error) }
2225: )
2226: else:
+2227: newval = _parse_typing(
/*else*/ {
/* … */
__pyx_t_36.__pyx_n = 3;
__pyx_t_36.encoder = __pyx_v__encoder;
__pyx_t_36.as_objects = __pyx_t_11;
__pyx_t_36.parent = __pyx_v_obj;
__pyx_t_4 = __pyx_f_9datamodel_10converters__parse_typing(__pyx_v_f, __pyx_v__type, __pyx_v_value, &__pyx_t_36); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2227, __pyx_L339_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
__Pyx_DECREF_SET(__pyx_v_newval, __pyx_t_4);
__pyx_t_4 = 0;
}
__pyx_L347:;
2228: f,
2229: _type,
2230: value,
2231: _encoder,
+2232: as_objects,
__pyx_t_11 = __Pyx_PyBool_FromLong(__pyx_v_as_objects); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 2232, __pyx_L339_error) __Pyx_GOTREF(__pyx_t_11);
2233: obj
2234: )
+2235: obj.__dict__[name] = newval
__pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_obj, __pyx_mstate_global->__pyx_n_u_dict); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2235, __pyx_L339_error) __Pyx_GOTREF(__pyx_t_4); if (unlikely((PyObject_SetItem(__pyx_t_4, __pyx_v_name, __pyx_v_newval) < 0))) __PYX_ERR(0, 2235, __pyx_L339_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+2236: except ValueError:
__pyx_t_16 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(((PyTypeObject*)PyExc_ValueError)))); if (__pyx_t_16) { __Pyx_AddTraceback("datamodel.converters.processing_fields", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_4, &__pyx_t_11, &__pyx_t_15) < 0) __PYX_ERR(0, 2236, __pyx_L341_except_error) __Pyx_XGOTREF(__pyx_t_4); __Pyx_XGOTREF(__pyx_t_11); __Pyx_XGOTREF(__pyx_t_15);
+2237: raise
__Pyx_GIVEREF(__pyx_t_4); __Pyx_GIVEREF(__pyx_t_11); __Pyx_XGIVEREF(__pyx_t_15); __Pyx_ErrRestoreWithState(__pyx_t_4, __pyx_t_11, __pyx_t_15); __pyx_t_4 = 0; __pyx_t_11 = 0; __pyx_t_15 = 0; __PYX_ERR(0, 2237, __pyx_L341_except_error) }
+2238: except Exception as ex:
__pyx_t_16 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(((PyTypeObject*)PyExc_Exception)))); if (__pyx_t_16) { __Pyx_AddTraceback("datamodel.converters.processing_fields", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_15, &__pyx_t_11, &__pyx_t_4) < 0) __PYX_ERR(0, 2238, __pyx_L341_except_error) __Pyx_XGOTREF(__pyx_t_15); __Pyx_XGOTREF(__pyx_t_11); __Pyx_XGOTREF(__pyx_t_4); __Pyx_INCREF(__pyx_t_11); __pyx_v_ex = __pyx_t_11; /*try:*/ { /* … */ /*finally:*/ { __pyx_L383_error:; /*exception exit:*/{ __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign __pyx_t_18 = 0; __pyx_t_19 = 0; __pyx_t_20 = 0; __pyx_t_30 = 0; __pyx_t_29 = 0; __pyx_t_28 = 0; __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_XDECREF(__pyx_t_27); __pyx_t_27 = 0; __Pyx_XDECREF(__pyx_t_37); __pyx_t_37 = 0; __Pyx_XDECREF(__pyx_t_39); __pyx_t_39 = 0; __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_ExceptionSwap(&__pyx_t_30, &__pyx_t_29, &__pyx_t_28); if ( unlikely(__Pyx_GetException(&__pyx_t_18, &__pyx_t_19, &__pyx_t_20) < 0)) __Pyx_ErrFetch(&__pyx_t_18, &__pyx_t_19, &__pyx_t_20); __Pyx_XGOTREF(__pyx_t_18); __Pyx_XGOTREF(__pyx_t_19); __Pyx_XGOTREF(__pyx_t_20); __Pyx_XGOTREF(__pyx_t_30); __Pyx_XGOTREF(__pyx_t_29); __Pyx_XGOTREF(__pyx_t_28); __pyx_t_16 = __pyx_lineno; __pyx_t_10 = __pyx_clineno; __pyx_t_17 = __pyx_filename; { __Pyx_DECREF(__pyx_v_ex); __pyx_v_ex = 0; } __Pyx_XGIVEREF(__pyx_t_30); __Pyx_XGIVEREF(__pyx_t_29); __Pyx_XGIVEREF(__pyx_t_28); __Pyx_ExceptionReset(__pyx_t_30, __pyx_t_29, __pyx_t_28); __Pyx_XGIVEREF(__pyx_t_18); __Pyx_XGIVEREF(__pyx_t_19); __Pyx_XGIVEREF(__pyx_t_20); __Pyx_ErrRestore(__pyx_t_18, __pyx_t_19, __pyx_t_20); __pyx_t_18 = 0; __pyx_t_19 = 0; __pyx_t_20 = 0; __pyx_t_30 = 0; __pyx_t_29 = 0; __pyx_t_28 = 0; __pyx_lineno = __pyx_t_16; __pyx_clineno = __pyx_t_10; __pyx_filename = __pyx_t_17; goto __pyx_L341_except_error; } __pyx_L380_continue: { __Pyx_DECREF(__pyx_v_ex); __pyx_v_ex = 0; goto __pyx_L378_except_continue; } } __pyx_L378_except_continue:; __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; goto __pyx_L345_try_continue; } goto __pyx_L341_except_error;
+2239: errors.update(_build_error(name, f"Error parsing Union {name}: ", ex))
__pyx_t_8 = __Pyx_PyUnicode_Unicode(__pyx_v_name); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2239, __pyx_L383_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_13[0] = __pyx_mstate_global->__pyx_kp_u_Error_parsing_Union; __pyx_t_13[1] = __pyx_t_8; __pyx_t_13[2] = __pyx_mstate_global->__pyx_kp_u__5; __pyx_t_14 = 22; #if __Pyx_PyUnicode_Join_CAN_USE_KIND_AND_LENGTH __pyx_t_14 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_13[1]); #endif __pyx_t_16 = 0; #if __Pyx_PyUnicode_Join_CAN_USE_KIND_AND_LENGTH __pyx_t_16 |= __Pyx_PyUnicode_KIND_04(__pyx_t_13[1]); #endif __pyx_t_12 = __Pyx_PyUnicode_Join(__pyx_t_13, 3, __pyx_t_14, __pyx_t_16); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2239, __pyx_L383_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_t_8 = __pyx_f_9datamodel_10converters__build_error(__pyx_v_name, ((PyObject*)__pyx_t_12), __pyx_v_ex); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2239, __pyx_L383_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __pyx_t_12 = __Pyx_CallUnboundCMethod1(&__pyx_mstate_global->__pyx_umethod_PyDict_Type__update, __pyx_v_errors, __pyx_t_8); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2239, __pyx_L383_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
+2240: continue
goto __pyx_L380_continue;
}
2241: else:
+2242: try:
/*else*/ {
{
/*try:*/ {
/* … */
}
__Pyx_XDECREF(__pyx_t_23); __pyx_t_23 = 0;
__Pyx_XDECREF(__pyx_t_22); __pyx_t_22 = 0;
__Pyx_XDECREF(__pyx_t_21); __pyx_t_21 = 0;
goto __pyx_L396_try_end;
__pyx_L389_error:;
__Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
__Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
__Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0;
__Pyx_XDECREF(__pyx_t_27); __pyx_t_27 = 0;
__Pyx_XDECREF(__pyx_t_37); __pyx_t_37 = 0;
__Pyx_XDECREF(__pyx_t_39); __pyx_t_39 = 0;
__Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
__Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
/* … */
__pyx_L391_except_error:;
__Pyx_XGIVEREF(__pyx_t_23);
__Pyx_XGIVEREF(__pyx_t_22);
__Pyx_XGIVEREF(__pyx_t_21);
__Pyx_ExceptionReset(__pyx_t_23, __pyx_t_22, __pyx_t_21);
goto __pyx_L42_error;
__pyx_L395_try_continue:;
__Pyx_XGIVEREF(__pyx_t_23);
__Pyx_XGIVEREF(__pyx_t_22);
__Pyx_XGIVEREF(__pyx_t_21);
__Pyx_ExceptionReset(__pyx_t_23, __pyx_t_22, __pyx_t_21);
goto __pyx_L48_try_continue;
__pyx_L396_try_end:;
}
}
__pyx_L167:;
+2243: newval = _parse_typing(
__pyx_t_36.__pyx_n = 3;
__pyx_t_36.encoder = __pyx_v__encoder;
__pyx_t_36.as_objects = __pyx_t_4;
__pyx_t_36.parent = __pyx_v_obj;
__pyx_t_11 = __pyx_f_9datamodel_10converters__parse_typing(__pyx_v_f, __pyx_v__type, __pyx_v_value, &__pyx_t_36); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 2243, __pyx_L389_error)
__Pyx_GOTREF(__pyx_t_11);
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__Pyx_DECREF_SET(__pyx_v_newval, __pyx_t_11);
__pyx_t_11 = 0;
2244: f,
2245: _type,
2246: value,
2247: _encoder,
+2248: as_objects,
__pyx_t_4 = __Pyx_PyBool_FromLong(__pyx_v_as_objects); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2248, __pyx_L389_error) __Pyx_GOTREF(__pyx_t_4);
2249: obj
2250: )
+2251: obj.__dict__[name] = newval
__pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_obj, __pyx_mstate_global->__pyx_n_u_dict); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 2251, __pyx_L389_error) __Pyx_GOTREF(__pyx_t_11); if (unlikely((PyObject_SetItem(__pyx_t_11, __pyx_v_name, __pyx_v_newval) < 0))) __PYX_ERR(0, 2251, __pyx_L389_error) __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
+2252: except ValueError:
__pyx_t_10 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(((PyTypeObject*)PyExc_ValueError)))); if (__pyx_t_10) { __Pyx_AddTraceback("datamodel.converters.processing_fields", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_11, &__pyx_t_4, &__pyx_t_15) < 0) __PYX_ERR(0, 2252, __pyx_L391_except_error) __Pyx_XGOTREF(__pyx_t_11); __Pyx_XGOTREF(__pyx_t_4); __Pyx_XGOTREF(__pyx_t_15);
+2253: raise
__Pyx_GIVEREF(__pyx_t_11); __Pyx_GIVEREF(__pyx_t_4); __Pyx_XGIVEREF(__pyx_t_15); __Pyx_ErrRestoreWithState(__pyx_t_11, __pyx_t_4, __pyx_t_15); __pyx_t_11 = 0; __pyx_t_4 = 0; __pyx_t_15 = 0; __PYX_ERR(0, 2253, __pyx_L391_except_error) }
+2254: except Exception as ex:
__pyx_t_10 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(((PyTypeObject*)PyExc_Exception)))); if (__pyx_t_10) { __Pyx_AddTraceback("datamodel.converters.processing_fields", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_15, &__pyx_t_4, &__pyx_t_11) < 0) __PYX_ERR(0, 2254, __pyx_L391_except_error) __Pyx_XGOTREF(__pyx_t_15); __Pyx_XGOTREF(__pyx_t_4); __Pyx_XGOTREF(__pyx_t_11); __Pyx_INCREF(__pyx_t_4); __pyx_v_ex = __pyx_t_4; /*try:*/ { /* … */ /*finally:*/ { __pyx_L404_error:; /*exception exit:*/{ __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign __pyx_t_28 = 0; __pyx_t_29 = 0; __pyx_t_30 = 0; __pyx_t_20 = 0; __pyx_t_19 = 0; __pyx_t_18 = 0; __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_XDECREF(__pyx_t_27); __pyx_t_27 = 0; __Pyx_XDECREF(__pyx_t_37); __pyx_t_37 = 0; __Pyx_XDECREF(__pyx_t_39); __pyx_t_39 = 0; __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_ExceptionSwap(&__pyx_t_20, &__pyx_t_19, &__pyx_t_18); if ( unlikely(__Pyx_GetException(&__pyx_t_28, &__pyx_t_29, &__pyx_t_30) < 0)) __Pyx_ErrFetch(&__pyx_t_28, &__pyx_t_29, &__pyx_t_30); __Pyx_XGOTREF(__pyx_t_28); __Pyx_XGOTREF(__pyx_t_29); __Pyx_XGOTREF(__pyx_t_30); __Pyx_XGOTREF(__pyx_t_20); __Pyx_XGOTREF(__pyx_t_19); __Pyx_XGOTREF(__pyx_t_18); __pyx_t_10 = __pyx_lineno; __pyx_t_16 = __pyx_clineno; __pyx_t_17 = __pyx_filename; { __Pyx_DECREF(__pyx_v_ex); __pyx_v_ex = 0; } __Pyx_XGIVEREF(__pyx_t_20); __Pyx_XGIVEREF(__pyx_t_19); __Pyx_XGIVEREF(__pyx_t_18); __Pyx_ExceptionReset(__pyx_t_20, __pyx_t_19, __pyx_t_18); __Pyx_XGIVEREF(__pyx_t_28); __Pyx_XGIVEREF(__pyx_t_29); __Pyx_XGIVEREF(__pyx_t_30); __Pyx_ErrRestore(__pyx_t_28, __pyx_t_29, __pyx_t_30); __pyx_t_28 = 0; __pyx_t_29 = 0; __pyx_t_30 = 0; __pyx_t_20 = 0; __pyx_t_19 = 0; __pyx_t_18 = 0; __pyx_lineno = __pyx_t_10; __pyx_clineno = __pyx_t_16; __pyx_filename = __pyx_t_17; goto __pyx_L391_except_error; } __pyx_L401_continue: { __Pyx_DECREF(__pyx_v_ex); __pyx_v_ex = 0; goto __pyx_L399_except_continue; } } __pyx_L399_except_continue:; __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0; goto __pyx_L395_try_continue; } goto __pyx_L391_except_error;
+2255: errors.update(_build_error(name, f"Error parsing Typing: ", ex))
__pyx_t_12 = __pyx_f_9datamodel_10converters__build_error(__pyx_v_name, __pyx_mstate_global->__pyx_kp_u_Error_parsing_Typing, __pyx_v_ex); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2255, __pyx_L404_error) __Pyx_GOTREF(__pyx_t_12); __pyx_t_8 = __Pyx_CallUnboundCMethod1(&__pyx_mstate_global->__pyx_umethod_PyDict_Type__update, __pyx_v_errors, __pyx_t_12); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2255, __pyx_L404_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
+2256: continue
goto __pyx_L401_continue;
}
+2257: elif isinstance(value, list) and type_args:
__pyx_t_24 = PyList_Check(__pyx_v_value); if (__pyx_t_24) { } else { __pyx_t_2 = __pyx_t_24; goto __pyx_L410_bool_binop_done; } if (__pyx_v_type_args == Py_None) __pyx_t_24 = 0; else { Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_v_type_args); if (unlikely(((!CYTHON_ASSUME_SAFE_SIZE) && __pyx_temp < 0))) __PYX_ERR(0, 2257, __pyx_L42_error) __pyx_t_24 = (__pyx_temp != 0); } __pyx_t_2 = __pyx_t_24; __pyx_L410_bool_binop_done:; if (__pyx_t_2) { /* … */ goto __pyx_L50; }
+2258: if as_objects is True:
__pyx_t_2 = (__pyx_v_as_objects == 1);
if (__pyx_t_2) {
/* … */
goto __pyx_L412;
}
+2259: newval = _handle_list_of_dataclasses(f, name, value, _type, obj)
__pyx_t_33.__pyx_n = 1;
__pyx_t_33.parent = __pyx_v_obj;
__pyx_t_11 = __pyx_f_9datamodel_10converters__handle_list_of_dataclasses(__pyx_v_f, __pyx_v_name, __pyx_v_value, __pyx_v__type, &__pyx_t_33); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 2259, __pyx_L42_error)
__Pyx_GOTREF(__pyx_t_11);
__Pyx_DECREF_SET(__pyx_v_newval, __pyx_t_11);
__pyx_t_11 = 0;
2260: else:
+2261: newval = _handle_list_of_dataclasses(f, name, value, _type, None)
/*else*/ {
__pyx_t_33.__pyx_n = 1;
__pyx_t_33.parent = Py_None;
__pyx_t_11 = __pyx_f_9datamodel_10converters__handle_list_of_dataclasses(__pyx_v_f, __pyx_v_name, __pyx_v_value, __pyx_v__type, &__pyx_t_33); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 2261, __pyx_L42_error)
__Pyx_GOTREF(__pyx_t_11);
__Pyx_DECREF_SET(__pyx_v_newval, __pyx_t_11);
__pyx_t_11 = 0;
}
__pyx_L412:;
+2262: obj.__dict__[name] = newval
__pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_obj, __pyx_mstate_global->__pyx_n_u_dict); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 2262, __pyx_L42_error) __Pyx_GOTREF(__pyx_t_11); if (unlikely((PyObject_SetItem(__pyx_t_11, __pyx_v_name, __pyx_v_newval) < 0))) __PYX_ERR(0, 2262, __pyx_L42_error) __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
+2263: elif field_category == 'set':
__pyx_t_2 = __Pyx_PyObject_CompareBoolEq_object_str(__pyx_v_field_category, __pyx_mstate_global->__pyx_n_u_set, Py_EQ); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 2263, __pyx_L42_error) if (__pyx_t_2) { /* … */ goto __pyx_L50; }
+2264: try:
{
/*try:*/ {
/* … */
}
__Pyx_XDECREF(__pyx_t_21); __pyx_t_21 = 0;
__Pyx_XDECREF(__pyx_t_22); __pyx_t_22 = 0;
__Pyx_XDECREF(__pyx_t_23); __pyx_t_23 = 0;
goto __pyx_L420_try_end;
__pyx_L413_error:;
__Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
__Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
__Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0;
__Pyx_XDECREF(__pyx_t_27); __pyx_t_27 = 0;
__Pyx_XDECREF(__pyx_t_37); __pyx_t_37 = 0;
__Pyx_XDECREF(__pyx_t_39); __pyx_t_39 = 0;
__Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
__Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
/* … */
__pyx_L415_except_error:;
__Pyx_XGIVEREF(__pyx_t_21);
__Pyx_XGIVEREF(__pyx_t_22);
__Pyx_XGIVEREF(__pyx_t_23);
__Pyx_ExceptionReset(__pyx_t_21, __pyx_t_22, __pyx_t_23);
goto __pyx_L42_error;
__pyx_L419_try_continue:;
__Pyx_XGIVEREF(__pyx_t_21);
__Pyx_XGIVEREF(__pyx_t_22);
__Pyx_XGIVEREF(__pyx_t_23);
__Pyx_ExceptionReset(__pyx_t_21, __pyx_t_22, __pyx_t_23);
goto __pyx_L48_try_continue;
__pyx_L420_try_end:;
}
+2265: newval = _parse_set_type(
__pyx_t_43.__pyx_n = 1;
__pyx_t_43._parent = __pyx_v_obj;
__pyx_t_11 = __pyx_f_9datamodel_10converters__parse_set_type(__pyx_v_f, __pyx_v__type, __pyx_v_value, __pyx_v__encoder, __pyx_v_type_args, &__pyx_t_43); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 2265, __pyx_L413_error)
__Pyx_GOTREF(__pyx_t_11);
__Pyx_DECREF_SET(__pyx_v_newval, __pyx_t_11);
__pyx_t_11 = 0;
2266: f,
2267: _type,
2268: value,
2269: _encoder,
2270: type_args,
2271: obj
2272: )
+2273: obj.__dict__[name] = newval
__pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_obj, __pyx_mstate_global->__pyx_n_u_dict); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 2273, __pyx_L413_error) __Pyx_GOTREF(__pyx_t_11); if (unlikely((PyObject_SetItem(__pyx_t_11, __pyx_v_name, __pyx_v_newval) < 0))) __PYX_ERR(0, 2273, __pyx_L413_error) __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
+2274: except ValueError:
__pyx_t_16 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(((PyTypeObject*)PyExc_ValueError)))); if (__pyx_t_16) { __Pyx_AddTraceback("datamodel.converters.processing_fields", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_11, &__pyx_t_4, &__pyx_t_15) < 0) __PYX_ERR(0, 2274, __pyx_L415_except_error) __Pyx_XGOTREF(__pyx_t_11); __Pyx_XGOTREF(__pyx_t_4); __Pyx_XGOTREF(__pyx_t_15);
+2275: raise
__Pyx_GIVEREF(__pyx_t_11); __Pyx_GIVEREF(__pyx_t_4); __Pyx_XGIVEREF(__pyx_t_15); __Pyx_ErrRestoreWithState(__pyx_t_11, __pyx_t_4, __pyx_t_15); __pyx_t_11 = 0; __pyx_t_4 = 0; __pyx_t_15 = 0; __PYX_ERR(0, 2275, __pyx_L415_except_error) }
+2276: except Exception as ex:
__pyx_t_16 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(((PyTypeObject*)PyExc_Exception)))); if (__pyx_t_16) { __Pyx_AddTraceback("datamodel.converters.processing_fields", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_15, &__pyx_t_4, &__pyx_t_11) < 0) __PYX_ERR(0, 2276, __pyx_L415_except_error) __Pyx_XGOTREF(__pyx_t_15); __Pyx_XGOTREF(__pyx_t_4); __Pyx_XGOTREF(__pyx_t_11); __Pyx_INCREF(__pyx_t_4); __pyx_v_ex = __pyx_t_4; /*try:*/ { /* … */ /*finally:*/ { __pyx_L428_error:; /*exception exit:*/{ __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign __pyx_t_18 = 0; __pyx_t_19 = 0; __pyx_t_20 = 0; __pyx_t_30 = 0; __pyx_t_29 = 0; __pyx_t_28 = 0; __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_XDECREF(__pyx_t_27); __pyx_t_27 = 0; __Pyx_XDECREF(__pyx_t_37); __pyx_t_37 = 0; __Pyx_XDECREF(__pyx_t_39); __pyx_t_39 = 0; __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_ExceptionSwap(&__pyx_t_30, &__pyx_t_29, &__pyx_t_28); if ( unlikely(__Pyx_GetException(&__pyx_t_18, &__pyx_t_19, &__pyx_t_20) < 0)) __Pyx_ErrFetch(&__pyx_t_18, &__pyx_t_19, &__pyx_t_20); __Pyx_XGOTREF(__pyx_t_18); __Pyx_XGOTREF(__pyx_t_19); __Pyx_XGOTREF(__pyx_t_20); __Pyx_XGOTREF(__pyx_t_30); __Pyx_XGOTREF(__pyx_t_29); __Pyx_XGOTREF(__pyx_t_28); __pyx_t_16 = __pyx_lineno; __pyx_t_10 = __pyx_clineno; __pyx_t_17 = __pyx_filename; { __Pyx_DECREF(__pyx_v_ex); __pyx_v_ex = 0; } __Pyx_XGIVEREF(__pyx_t_30); __Pyx_XGIVEREF(__pyx_t_29); __Pyx_XGIVEREF(__pyx_t_28); __Pyx_ExceptionReset(__pyx_t_30, __pyx_t_29, __pyx_t_28); __Pyx_XGIVEREF(__pyx_t_18); __Pyx_XGIVEREF(__pyx_t_19); __Pyx_XGIVEREF(__pyx_t_20); __Pyx_ErrRestore(__pyx_t_18, __pyx_t_19, __pyx_t_20); __pyx_t_18 = 0; __pyx_t_19 = 0; __pyx_t_20 = 0; __pyx_t_30 = 0; __pyx_t_29 = 0; __pyx_t_28 = 0; __pyx_lineno = __pyx_t_16; __pyx_clineno = __pyx_t_10; __pyx_filename = __pyx_t_17; goto __pyx_L415_except_error; } __pyx_L425_continue: { __Pyx_DECREF(__pyx_v_ex); __pyx_v_ex = 0; goto __pyx_L423_except_continue; } } __pyx_L423_except_continue:; __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0; goto __pyx_L419_try_continue; } goto __pyx_L415_except_error;
+2277: errors.update(_build_error(name, f"Error parsing Set: ", ex))
__pyx_t_8 = __pyx_f_9datamodel_10converters__build_error(__pyx_v_name, __pyx_mstate_global->__pyx_kp_u_Error_parsing_Set, __pyx_v_ex); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2277, __pyx_L428_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_12 = __Pyx_CallUnboundCMethod1(&__pyx_mstate_global->__pyx_umethod_PyDict_Type__update, __pyx_v_errors, __pyx_t_8); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2277, __pyx_L428_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
+2278: continue
goto __pyx_L425_continue;
}
2279: else:
2280: # fallback to builtin parse
+2281: try:
/*else*/ {
{
/*try:*/ {
/* … */
}
__Pyx_XDECREF(__pyx_t_23); __pyx_t_23 = 0;
__Pyx_XDECREF(__pyx_t_22); __pyx_t_22 = 0;
__Pyx_XDECREF(__pyx_t_21); __pyx_t_21 = 0;
goto __pyx_L441_try_end;
__pyx_L434_error:;
__Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
__Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
__Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0;
__Pyx_XDECREF(__pyx_t_27); __pyx_t_27 = 0;
__Pyx_XDECREF(__pyx_t_37); __pyx_t_37 = 0;
__Pyx_XDECREF(__pyx_t_39); __pyx_t_39 = 0;
__Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
__Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
/* … */
__pyx_L436_except_error:;
__Pyx_XGIVEREF(__pyx_t_23);
__Pyx_XGIVEREF(__pyx_t_22);
__Pyx_XGIVEREF(__pyx_t_21);
__Pyx_ExceptionReset(__pyx_t_23, __pyx_t_22, __pyx_t_21);
goto __pyx_L42_error;
__pyx_L440_try_continue:;
__Pyx_XGIVEREF(__pyx_t_23);
__Pyx_XGIVEREF(__pyx_t_22);
__Pyx_XGIVEREF(__pyx_t_21);
__Pyx_ExceptionReset(__pyx_t_23, __pyx_t_22, __pyx_t_21);
goto __pyx_L48_try_continue;
__pyx_L441_try_end:;
}
}
__pyx_L50:;
+2282: newval = _parse_typing(
__pyx_t_36.__pyx_n = 3;
__pyx_t_36.encoder = __pyx_v__encoder;
__pyx_t_36.as_objects = __pyx_t_11;
__pyx_t_36.parent = __pyx_v_obj;
__pyx_t_4 = __pyx_f_9datamodel_10converters__parse_typing(__pyx_v_f, __pyx_v__type, __pyx_v_value, &__pyx_t_36); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2282, __pyx_L434_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
__Pyx_DECREF_SET(__pyx_v_newval, __pyx_t_4);
__pyx_t_4 = 0;
2283: f,
2284: _type,
2285: value,
2286: _encoder,
+2287: as_objects,
__pyx_t_11 = __Pyx_PyBool_FromLong(__pyx_v_as_objects); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 2287, __pyx_L434_error) __Pyx_GOTREF(__pyx_t_11);
2288: obj
2289: )
+2290: obj.__dict__[name] = newval
__pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_obj, __pyx_mstate_global->__pyx_n_u_dict); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2290, __pyx_L434_error) __Pyx_GOTREF(__pyx_t_4); if (unlikely((PyObject_SetItem(__pyx_t_4, __pyx_v_name, __pyx_v_newval) < 0))) __PYX_ERR(0, 2290, __pyx_L434_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+2291: except ValueError:
__pyx_t_10 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(((PyTypeObject*)PyExc_ValueError)))); if (__pyx_t_10) { __Pyx_AddTraceback("datamodel.converters.processing_fields", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_4, &__pyx_t_11, &__pyx_t_15) < 0) __PYX_ERR(0, 2291, __pyx_L436_except_error) __Pyx_XGOTREF(__pyx_t_4); __Pyx_XGOTREF(__pyx_t_11); __Pyx_XGOTREF(__pyx_t_15);
+2292: raise
__Pyx_GIVEREF(__pyx_t_4); __Pyx_GIVEREF(__pyx_t_11); __Pyx_XGIVEREF(__pyx_t_15); __Pyx_ErrRestoreWithState(__pyx_t_4, __pyx_t_11, __pyx_t_15); __pyx_t_4 = 0; __pyx_t_11 = 0; __pyx_t_15 = 0; __PYX_ERR(0, 2292, __pyx_L436_except_error) }
+2293: except Exception as ex:
__pyx_t_10 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(((PyTypeObject*)PyExc_Exception)))); if (__pyx_t_10) { __Pyx_AddTraceback("datamodel.converters.processing_fields", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_15, &__pyx_t_11, &__pyx_t_4) < 0) __PYX_ERR(0, 2293, __pyx_L436_except_error) __Pyx_XGOTREF(__pyx_t_15); __Pyx_XGOTREF(__pyx_t_11); __Pyx_XGOTREF(__pyx_t_4); __Pyx_INCREF(__pyx_t_11); __pyx_v_ex = __pyx_t_11; /*try:*/ { /* … */ /*finally:*/ { __pyx_L449_error:; /*exception exit:*/{ __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign __pyx_t_28 = 0; __pyx_t_29 = 0; __pyx_t_30 = 0; __pyx_t_20 = 0; __pyx_t_19 = 0; __pyx_t_18 = 0; __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_XDECREF(__pyx_t_27); __pyx_t_27 = 0; __Pyx_XDECREF(__pyx_t_37); __pyx_t_37 = 0; __Pyx_XDECREF(__pyx_t_39); __pyx_t_39 = 0; __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_ExceptionSwap(&__pyx_t_20, &__pyx_t_19, &__pyx_t_18); if ( unlikely(__Pyx_GetException(&__pyx_t_28, &__pyx_t_29, &__pyx_t_30) < 0)) __Pyx_ErrFetch(&__pyx_t_28, &__pyx_t_29, &__pyx_t_30); __Pyx_XGOTREF(__pyx_t_28); __Pyx_XGOTREF(__pyx_t_29); __Pyx_XGOTREF(__pyx_t_30); __Pyx_XGOTREF(__pyx_t_20); __Pyx_XGOTREF(__pyx_t_19); __Pyx_XGOTREF(__pyx_t_18); __pyx_t_10 = __pyx_lineno; __pyx_t_16 = __pyx_clineno; __pyx_t_17 = __pyx_filename; { __Pyx_DECREF(__pyx_v_ex); __pyx_v_ex = 0; } __Pyx_XGIVEREF(__pyx_t_20); __Pyx_XGIVEREF(__pyx_t_19); __Pyx_XGIVEREF(__pyx_t_18); __Pyx_ExceptionReset(__pyx_t_20, __pyx_t_19, __pyx_t_18); __Pyx_XGIVEREF(__pyx_t_28); __Pyx_XGIVEREF(__pyx_t_29); __Pyx_XGIVEREF(__pyx_t_30); __Pyx_ErrRestore(__pyx_t_28, __pyx_t_29, __pyx_t_30); __pyx_t_28 = 0; __pyx_t_29 = 0; __pyx_t_30 = 0; __pyx_t_20 = 0; __pyx_t_19 = 0; __pyx_t_18 = 0; __pyx_lineno = __pyx_t_10; __pyx_clineno = __pyx_t_16; __pyx_filename = __pyx_t_17; goto __pyx_L436_except_error; } __pyx_L446_continue: { __Pyx_DECREF(__pyx_v_ex); __pyx_v_ex = 0; goto __pyx_L444_except_continue; } } __pyx_L444_except_continue:; __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; goto __pyx_L440_try_continue; } goto __pyx_L436_except_error;
+2294: errors.update(_build_error(name, f"Error parsing Typing: ", ex))
__pyx_t_12 = __pyx_f_9datamodel_10converters__build_error(__pyx_v_name, __pyx_mstate_global->__pyx_kp_u_Error_parsing_Typing, __pyx_v_ex); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2294, __pyx_L449_error) __Pyx_GOTREF(__pyx_t_12); __pyx_t_8 = __Pyx_CallUnboundCMethod1(&__pyx_mstate_global->__pyx_umethod_PyDict_Type__update, __pyx_v_errors, __pyx_t_12); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2294, __pyx_L449_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
+2295: continue
goto __pyx_L446_continue;
}
2296: # then, call the validation process:
+2297: if (error := _validation_(name, newval, f, _type, meta, field_category, as_objects)):
__pyx_t_4 = __pyx_v_field_category;
__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, 2297, __pyx_L42_error)
__pyx_t_45.__pyx_n = 1;
__pyx_t_45.as_objects = __pyx_v_as_objects;
__pyx_t_11 = __pyx_f_9datamodel_10converters__validation_(__pyx_v_name, __pyx_v_newval, __pyx_v_f, __pyx_v__type, __pyx_v_meta, ((PyObject*)__pyx_t_4), &__pyx_t_45); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 2297, __pyx_L42_error)
__Pyx_GOTREF(__pyx_t_11);
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__Pyx_INCREF(__pyx_t_11);
__Pyx_XDECREF_SET(__pyx_v_error, __pyx_t_11);
__pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_11); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 2297, __pyx_L42_error)
__Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
if (__pyx_t_2) {
/* … */
}
+2298: errors[name] = error
if (unlikely((PyDict_SetItem(__pyx_v_errors, __pyx_v_name, __pyx_v_error) < 0))) __PYX_ERR(0, 2298, __pyx_L42_error)
+2299: except (TypeError, ValueError) as ex:
__pyx_t_16 = __Pyx_PyErr_ExceptionMatches2(((PyObject *)(((PyTypeObject*)PyExc_TypeError))), ((PyObject *)(((PyTypeObject*)PyExc_ValueError))));
if (__pyx_t_16) {
__Pyx_AddTraceback("datamodel.converters.processing_fields", __pyx_clineno, __pyx_lineno, __pyx_filename);
if (__Pyx_GetException(&__pyx_t_11, &__pyx_t_4, &__pyx_t_15) < 0) __PYX_ERR(0, 2299, __pyx_L44_except_error)
__Pyx_XGOTREF(__pyx_t_11);
__Pyx_XGOTREF(__pyx_t_4);
__Pyx_XGOTREF(__pyx_t_15);
__Pyx_INCREF(__pyx_t_4);
__Pyx_XDECREF_SET(__pyx_v_ex, __pyx_t_4);
/*try:*/ {
/* … */
/*finally:*/ {
__pyx_L461_error:;
/*exception exit:*/{
__Pyx_PyThreadState_declare
__Pyx_PyThreadState_assign
__pyx_t_21 = 0; __pyx_t_22 = 0; __pyx_t_23 = 0; __pyx_t_18 = 0; __pyx_t_19 = 0; __pyx_t_20 = 0;
__Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
__Pyx_XDECREF(__pyx_t_27); __pyx_t_27 = 0;
__Pyx_XDECREF(__pyx_t_37); __pyx_t_37 = 0;
__Pyx_XDECREF(__pyx_t_39); __pyx_t_39 = 0;
__Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
__Pyx_ExceptionSwap(&__pyx_t_18, &__pyx_t_19, &__pyx_t_20);
if ( unlikely(__Pyx_GetException(&__pyx_t_21, &__pyx_t_22, &__pyx_t_23) < 0)) __Pyx_ErrFetch(&__pyx_t_21, &__pyx_t_22, &__pyx_t_23);
__Pyx_XGOTREF(__pyx_t_21);
__Pyx_XGOTREF(__pyx_t_22);
__Pyx_XGOTREF(__pyx_t_23);
__Pyx_XGOTREF(__pyx_t_18);
__Pyx_XGOTREF(__pyx_t_19);
__Pyx_XGOTREF(__pyx_t_20);
__pyx_t_16 = __pyx_lineno; __pyx_t_10 = __pyx_clineno; __pyx_t_17 = __pyx_filename;
{
__Pyx_DECREF(__pyx_v_ex); __pyx_v_ex = 0;
}
__Pyx_XGIVEREF(__pyx_t_18);
__Pyx_XGIVEREF(__pyx_t_19);
__Pyx_XGIVEREF(__pyx_t_20);
__Pyx_ExceptionReset(__pyx_t_18, __pyx_t_19, __pyx_t_20);
__Pyx_XGIVEREF(__pyx_t_21);
__Pyx_XGIVEREF(__pyx_t_22);
__Pyx_XGIVEREF(__pyx_t_23);
__Pyx_ErrRestore(__pyx_t_21, __pyx_t_22, __pyx_t_23);
__pyx_t_21 = 0; __pyx_t_22 = 0; __pyx_t_23 = 0; __pyx_t_18 = 0; __pyx_t_19 = 0; __pyx_t_20 = 0;
__pyx_lineno = __pyx_t_16; __pyx_clineno = __pyx_t_10; __pyx_filename = __pyx_t_17;
goto __pyx_L44_except_error;
}
__pyx_L458_continue: {
__Pyx_DECREF(__pyx_v_ex); __pyx_v_ex = 0;
goto __pyx_L456_except_continue;
}
}
__pyx_L456_except_continue:;
__Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0;
goto __pyx_L48_try_continue;
}
+2300: _case = ex.__class__.__name__
__pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_ex, __pyx_mstate_global->__pyx_n_u_class); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2300, __pyx_L461_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_name); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2300, __pyx_L461_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_XDECREF_SET(__pyx_v__case, __pyx_t_12); __pyx_t_12 = 0;
+2301: if meta.strict is True:
__pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_v_meta, __pyx_mstate_global->__pyx_n_u_strict); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2301, __pyx_L461_error) __Pyx_GOTREF(__pyx_t_12); __pyx_t_2 = (__pyx_t_12 == Py_True); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; if (unlikely(__pyx_t_2)) { /* … */ }
+2302: raise
__Pyx_GIVEREF(__pyx_t_11); __Pyx_GIVEREF(__pyx_t_4); __Pyx_XGIVEREF(__pyx_t_15); __Pyx_ErrRestoreWithState(__pyx_t_11, __pyx_t_4, __pyx_t_15); __pyx_t_11 = 0; __pyx_t_4 = 0; __pyx_t_15 = 0; __PYX_ERR(0, 2302, __pyx_L461_error)
2303: else:
+2304: errors.update(_build_error(name, f"{_case}: at {f.name}: {f.type}", ex))
/*else*/ {
__pyx_t_12 = __Pyx_PyObject_FormatSimple(__pyx_v__case, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2304, __pyx_L461_error)
__Pyx_GOTREF(__pyx_t_12);
__pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_f, __pyx_mstate_global->__pyx_n_u_name_2); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2304, __pyx_L461_error)
__Pyx_GOTREF(__pyx_t_8);
__pyx_t_39 = __Pyx_PyObject_FormatSimple(__pyx_t_8, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_39)) __PYX_ERR(0, 2304, __pyx_L461_error)
__Pyx_GOTREF(__pyx_t_39);
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
__pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_f, __pyx_mstate_global->__pyx_n_u_type_2); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2304, __pyx_L461_error)
__Pyx_GOTREF(__pyx_t_8);
__pyx_t_37 = __Pyx_PyObject_FormatSimple(__pyx_t_8, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_37)) __PYX_ERR(0, 2304, __pyx_L461_error)
__Pyx_GOTREF(__pyx_t_37);
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
__pyx_t_26[0] = __pyx_t_12;
__pyx_t_26[1] = __pyx_mstate_global->__pyx_kp_u_at;
__pyx_t_26[2] = __pyx_t_39;
__pyx_t_26[3] = __pyx_mstate_global->__pyx_kp_u__5;
__pyx_t_26[4] = __pyx_t_37;
__pyx_t_14 = 7;
#if __Pyx_PyUnicode_Join_CAN_USE_KIND_AND_LENGTH
__pyx_t_14 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_26[0]) + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_26[2]) + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_26[4]);
#endif
__pyx_t_16 = 0;
#if __Pyx_PyUnicode_Join_CAN_USE_KIND_AND_LENGTH
__pyx_t_16 |= __Pyx_PyUnicode_KIND_04(__pyx_t_26[0]) | __Pyx_PyUnicode_KIND_04(__pyx_t_26[2]) | __Pyx_PyUnicode_KIND_04(__pyx_t_26[4]);
#endif
__pyx_t_8 = __Pyx_PyUnicode_Join(__pyx_t_26, 5, __pyx_t_14, __pyx_t_16);
if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2304, __pyx_L461_error)
__Pyx_GOTREF(__pyx_t_8);
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
__Pyx_DECREF(__pyx_t_39); __pyx_t_39 = 0;
__Pyx_DECREF(__pyx_t_37); __pyx_t_37 = 0;
__pyx_t_37 = __pyx_f_9datamodel_10converters__build_error(__pyx_v_name, ((PyObject*)__pyx_t_8), __pyx_v_ex); if (unlikely(!__pyx_t_37)) __PYX_ERR(0, 2304, __pyx_L461_error)
__Pyx_GOTREF(__pyx_t_37);
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
__pyx_t_8 = __Pyx_CallUnboundCMethod1(&__pyx_mstate_global->__pyx_umethod_PyDict_Type__update, __pyx_v_errors, __pyx_t_37); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2304, __pyx_L461_error)
__Pyx_GOTREF(__pyx_t_8);
__Pyx_DECREF(__pyx_t_37); __pyx_t_37 = 0;
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
+2305: continue
goto __pyx_L458_continue;
}
}
+2306: except AttributeError:
__pyx_t_10 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(((PyTypeObject*)PyExc_AttributeError)))); if (__pyx_t_10) { __Pyx_AddTraceback("datamodel.converters.processing_fields", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_15, &__pyx_t_4, &__pyx_t_11) < 0) __PYX_ERR(0, 2306, __pyx_L44_except_error) __Pyx_XGOTREF(__pyx_t_15); __Pyx_XGOTREF(__pyx_t_4); __Pyx_XGOTREF(__pyx_t_11);
+2307: raise
__Pyx_GIVEREF(__pyx_t_15); __Pyx_GIVEREF(__pyx_t_4); __Pyx_XGIVEREF(__pyx_t_11); __Pyx_ErrRestoreWithState(__pyx_t_15, __pyx_t_4, __pyx_t_11); __pyx_t_15 = 0; __pyx_t_4 = 0; __pyx_t_11 = 0; __PYX_ERR(0, 2307, __pyx_L44_except_error) }
+2308: except Exception as ex:
__pyx_t_10 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(((PyTypeObject*)PyExc_Exception)))); if (__pyx_t_10) { __Pyx_AddTraceback("datamodel.converters.processing_fields", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_11, &__pyx_t_4, &__pyx_t_15) < 0) __PYX_ERR(0, 2308, __pyx_L44_except_error) __Pyx_XGOTREF(__pyx_t_11); __Pyx_XGOTREF(__pyx_t_4); __Pyx_XGOTREF(__pyx_t_15); __Pyx_INCREF(__pyx_t_4); __Pyx_XDECREF_SET(__pyx_v_ex, __pyx_t_4); /*try:*/ { /* … */ /*finally:*/ { __pyx_L475_error:; /*exception exit:*/{ __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign __pyx_t_20 = 0; __pyx_t_19 = 0; __pyx_t_18 = 0; __pyx_t_23 = 0; __pyx_t_22 = 0; __pyx_t_21 = 0; __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_XDECREF(__pyx_t_27); __pyx_t_27 = 0; __Pyx_XDECREF(__pyx_t_37); __pyx_t_37 = 0; __Pyx_XDECREF(__pyx_t_39); __pyx_t_39 = 0; __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_ExceptionSwap(&__pyx_t_23, &__pyx_t_22, &__pyx_t_21); if ( unlikely(__Pyx_GetException(&__pyx_t_20, &__pyx_t_19, &__pyx_t_18) < 0)) __Pyx_ErrFetch(&__pyx_t_20, &__pyx_t_19, &__pyx_t_18); __Pyx_XGOTREF(__pyx_t_20); __Pyx_XGOTREF(__pyx_t_19); __Pyx_XGOTREF(__pyx_t_18); __Pyx_XGOTREF(__pyx_t_23); __Pyx_XGOTREF(__pyx_t_22); __Pyx_XGOTREF(__pyx_t_21); __pyx_t_10 = __pyx_lineno; __pyx_t_16 = __pyx_clineno; __pyx_t_17 = __pyx_filename; { __Pyx_DECREF(__pyx_v_ex); __pyx_v_ex = 0; } __Pyx_XGIVEREF(__pyx_t_23); __Pyx_XGIVEREF(__pyx_t_22); __Pyx_XGIVEREF(__pyx_t_21); __Pyx_ExceptionReset(__pyx_t_23, __pyx_t_22, __pyx_t_21); __Pyx_XGIVEREF(__pyx_t_20); __Pyx_XGIVEREF(__pyx_t_19); __Pyx_XGIVEREF(__pyx_t_18); __Pyx_ErrRestore(__pyx_t_20, __pyx_t_19, __pyx_t_18); __pyx_t_20 = 0; __pyx_t_19 = 0; __pyx_t_18 = 0; __pyx_t_23 = 0; __pyx_t_22 = 0; __pyx_t_21 = 0; __pyx_lineno = __pyx_t_10; __pyx_clineno = __pyx_t_16; __pyx_filename = __pyx_t_17; goto __pyx_L44_except_error; } __pyx_L472_continue: { __Pyx_DECREF(__pyx_v_ex); __pyx_v_ex = 0; goto __pyx_L470_except_continue; } } __pyx_L470_except_continue:; __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0; goto __pyx_L48_try_continue; } goto __pyx_L44_except_error;
+2309: errors.update(_build_error(name, f"Wrong Type for {f.name}: {f.type}", ex))
__pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_f, __pyx_mstate_global->__pyx_n_u_name_2); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2309, __pyx_L475_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_37 = __Pyx_PyObject_FormatSimple(__pyx_t_8, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_37)) __PYX_ERR(0, 2309, __pyx_L475_error) __Pyx_GOTREF(__pyx_t_37); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_f, __pyx_mstate_global->__pyx_n_u_type_2); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2309, __pyx_L475_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_39 = __Pyx_PyObject_FormatSimple(__pyx_t_8, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_39)) __PYX_ERR(0, 2309, __pyx_L475_error) __Pyx_GOTREF(__pyx_t_39); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_t_38[0] = __pyx_mstate_global->__pyx_kp_u_Wrong_Type_for; __pyx_t_38[1] = __pyx_t_37; __pyx_t_38[2] = __pyx_mstate_global->__pyx_kp_u__5; __pyx_t_38[3] = __pyx_t_39; __pyx_t_14 = 17; #if __Pyx_PyUnicode_Join_CAN_USE_KIND_AND_LENGTH __pyx_t_14 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_38[1]) + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_38[3]); #endif __pyx_t_10 = 0; #if __Pyx_PyUnicode_Join_CAN_USE_KIND_AND_LENGTH __pyx_t_10 |= __Pyx_PyUnicode_KIND_04(__pyx_t_38[1]) | __Pyx_PyUnicode_KIND_04(__pyx_t_38[3]); #endif __pyx_t_8 = __Pyx_PyUnicode_Join(__pyx_t_38, 4, __pyx_t_14, __pyx_t_10); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2309, __pyx_L475_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_37); __pyx_t_37 = 0; __Pyx_DECREF(__pyx_t_39); __pyx_t_39 = 0; __pyx_t_39 = __pyx_f_9datamodel_10converters__build_error(__pyx_v_name, ((PyObject*)__pyx_t_8), __pyx_v_ex); if (unlikely(!__pyx_t_39)) __PYX_ERR(0, 2309, __pyx_L475_error) __Pyx_GOTREF(__pyx_t_39); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_t_8 = __Pyx_CallUnboundCMethod1(&__pyx_mstate_global->__pyx_umethod_PyDict_Type__update, __pyx_v_errors, __pyx_t_39); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2309, __pyx_L475_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_39); __pyx_t_39 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
+2310: continue
goto __pyx_L472_continue;
}
2311: # Return Errors (if any)
+2312: return errors
{
PyObject *__pyx_temp;
{
__pyx_temp = __pyx_r;
__Pyx_INCREF(__pyx_v_errors);
__pyx_r = __pyx_v_errors;
}
__Pyx_XDECREF(__pyx_temp);
}
goto __pyx_L0;
2313:
+2314: cdef object _validation_(
static PyObject *__pyx_f_9datamodel_10converters__validation_(PyObject *__pyx_v_name, PyObject *__pyx_v_value, PyObject *__pyx_v_f, PyObject *__pyx_v__type, PyObject *__pyx_v_meta, PyObject *__pyx_v_field_category, struct __pyx_opt_args_9datamodel_10converters__validation_ *__pyx_optional_args) {
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_8);
__Pyx_XDECREF(__pyx_t_9);
__Pyx_XDECREF(__pyx_t_13);
__Pyx_AddTraceback("datamodel.converters._validation_", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = 0;
__pyx_L0:;
__Pyx_XDECREF(__pyx_v_val_type);
__Pyx_XDECREF(__pyx_v_error);
__Pyx_XDECREF(__pyx_v_err);
__Pyx_XDECREF(__pyx_v_inner_type);
__Pyx_XDECREF(__pyx_v_item);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
struct __pyx_opt_args_9datamodel_10converters__validation_ {
int __pyx_n;
int as_objects;
};
2315: str name,
2316: object value,
2317: object f,
2318: object _type,
2319: object meta,
2320: str field_category,
+2321: bint as_objects = False
int __pyx_v_as_objects = ((int)0);
PyObject *__pyx_v_val_type = 0;
PyObject *__pyx_v_error = 0;
PyObject *__pyx_v_err = 0;
PyObject *__pyx_v_inner_type = NULL;
PyObject *__pyx_v_item = NULL;
PyObject *__pyx_r = NULL;
if (__pyx_optional_args) {
if (__pyx_optional_args->__pyx_n > 0) {
__pyx_v_as_objects = __pyx_optional_args->as_objects;
}
}
2322: ):
2323: """
2324: _validation_.
2325: TODO: cover validations as length, not_null, required, max, min, etc
2326: """
+2327: cdef object val_type = type(value)
__Pyx_INCREF(((PyObject *)Py_TYPE(__pyx_v_value)));
__pyx_v_val_type = ((PyObject *)Py_TYPE(__pyx_v_value));
+2328: cdef str error = None
__Pyx_INCREF(Py_None);
__pyx_v_error = ((PyObject*)Py_None);
2329: cdef dict err = {
+2330: "field": name,
__pyx_t_1 = __Pyx_PyDict_NewPresized(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2330, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_field, __pyx_v_name) < (0)) __PYX_ERR(0, 2330, __pyx_L1_error)
+2331: "value": value,
if (PyDict_SetItem(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_value_2, __pyx_v_value) < (0)) __PYX_ERR(0, 2330, __pyx_L1_error)
+2332: "error": None
if (PyDict_SetItem(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_error_2, Py_None) < (0)) __PYX_ERR(0, 2330, __pyx_L1_error) __pyx_v_err = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0;
2333: }
2334:
+2335: if val_type == type or value == _type or is_empty(value):
__pyx_t_3 = __Pyx_PyObject_RichCompareBool(__pyx_v_val_type, ((PyObject *)(&PyType_Type)), Py_EQ); if (unlikely((__pyx_t_3 < 0))) __PYX_ERR(0, 2335, __pyx_L1_error) if (!__pyx_t_3) { } else { __pyx_t_2 = __pyx_t_3; goto __pyx_L4_bool_binop_done; } __pyx_t_3 = __Pyx_PyObject_CompareBoolEq_object_object(__pyx_v_value, __pyx_v__type, Py_EQ); if (unlikely((__pyx_t_3 < 0))) __PYX_ERR(0, 2335, __pyx_L1_error) if (!__pyx_t_3) { } else { __pyx_t_2 = __pyx_t_3; goto __pyx_L4_bool_binop_done; } __pyx_t_3 = __pyx_f_9datamodel_10converters_is_empty(__pyx_v_value); if (unlikely(__pyx_t_3 == ((int)-1) && PyErr_Occurred())) __PYX_ERR(0, 2335, __pyx_L1_error) __pyx_t_2 = __pyx_t_3; __pyx_L4_bool_binop_done:; if (__pyx_t_2) { /* … */ }
+2336: try:
{
/*try:*/ {
/* … */
}
__pyx_L7_error:;
__Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
/* … */
__pyx_L9_except_error:;
__Pyx_XGIVEREF(__pyx_t_4);
__Pyx_XGIVEREF(__pyx_t_5);
__Pyx_XGIVEREF(__pyx_t_6);
__Pyx_ExceptionReset(__pyx_t_4, __pyx_t_5, __pyx_t_6);
goto __pyx_L1_error;
__pyx_L11_try_return:;
__Pyx_XGIVEREF(__pyx_t_4);
__Pyx_XGIVEREF(__pyx_t_5);
__Pyx_XGIVEREF(__pyx_t_6);
__Pyx_ExceptionReset(__pyx_t_4, __pyx_t_5, __pyx_t_6);
goto __pyx_L0;
}
+2337: _field_checks_(f, name, value, meta)
__pyx_t_1 = __pyx_f_9datamodel_10converters__field_checks_(__pyx_v_f, __pyx_v_name, __pyx_v_value, __pyx_v_meta); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2337, __pyx_L7_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+2338: return None
{
PyObject *__pyx_temp;
{
__pyx_temp = __pyx_r;
__pyx_r = Py_None; __Pyx_INCREF(Py_None);
}
__Pyx_XDECREF(__pyx_temp);
}
goto __pyx_L11_try_return;
+2339: except (ValueError, TypeError):
__pyx_t_7 = __Pyx_PyErr_ExceptionMatches2(((PyObject *)(((PyTypeObject*)PyExc_ValueError))), ((PyObject *)(((PyTypeObject*)PyExc_TypeError))));
if (__pyx_t_7) {
__Pyx_AddTraceback("datamodel.converters._validation_", __pyx_clineno, __pyx_lineno, __pyx_filename);
if (__Pyx_GetException(&__pyx_t_1, &__pyx_t_8, &__pyx_t_9) < 0) __PYX_ERR(0, 2339, __pyx_L9_except_error)
__Pyx_XGOTREF(__pyx_t_1);
__Pyx_XGOTREF(__pyx_t_8);
__Pyx_XGOTREF(__pyx_t_9);
+2340: raise
__Pyx_GIVEREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_8); __Pyx_XGIVEREF(__pyx_t_9); __Pyx_ErrRestoreWithState(__pyx_t_1, __pyx_t_8, __pyx_t_9); __pyx_t_1 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __PYX_ERR(0, 2340, __pyx_L9_except_error) } goto __pyx_L9_except_error;
2341:
+2342: if isinstance(value, set):
__pyx_t_2 = PySet_Check(__pyx_v_value);
if (__pyx_t_2) {
/* … */
}
2343: # Just validate that all elements match the expected type if specified
+2344: if hasattr(f, '_inner_type') and f._inner_type is not None and not is_empty(value):
__pyx_t_3 = __Pyx_HasAttr(__pyx_v_f, __pyx_mstate_global->__pyx_n_u_inner_type); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(0, 2344, __pyx_L1_error) if (__pyx_t_3) { } else { __pyx_t_2 = __pyx_t_3; goto __pyx_L17_bool_binop_done; } __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_f, __pyx_mstate_global->__pyx_n_u_inner_type); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2344, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_3 = (__pyx_t_9 != Py_None); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; if (__pyx_t_3) { } else { __pyx_t_2 = __pyx_t_3; goto __pyx_L17_bool_binop_done; } __pyx_t_3 = __pyx_f_9datamodel_10converters_is_empty(__pyx_v_value); if (unlikely(__pyx_t_3 == ((int)-1) && PyErr_Occurred())) __PYX_ERR(0, 2344, __pyx_L1_error) __pyx_t_10 = (!__pyx_t_3); __pyx_t_2 = __pyx_t_10; __pyx_L17_bool_binop_done:; if (__pyx_t_2) { /* … */ }
+2345: inner_type = f._inner_type
__pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_f, __pyx_mstate_global->__pyx_n_u_inner_type); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2345, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_v_inner_type = __pyx_t_9; __pyx_t_9 = 0;
2346: # For primitive types, we can use isinstance
+2347: if inner_type in (str, int, float, bool):
__Pyx_INCREF(__pyx_v_inner_type); __pyx_t_9 = __pyx_v_inner_type; __pyx_t_10 = __Pyx_PyObject_RichCompareBool(__pyx_t_9, ((PyObject *)(&PyUnicode_Type)), Py_EQ); if (unlikely((__pyx_t_10 < 0))) __PYX_ERR(0, 2347, __pyx_L1_error) if (!__pyx_t_10) { } else { __pyx_t_2 = __pyx_t_10; goto __pyx_L21_bool_binop_done; } __pyx_t_10 = __Pyx_PyObject_RichCompareBool(__pyx_t_9, ((PyObject *)(&PyLong_Type)), Py_EQ); if (unlikely((__pyx_t_10 < 0))) __PYX_ERR(0, 2347, __pyx_L1_error) if (!__pyx_t_10) { } else { __pyx_t_2 = __pyx_t_10; goto __pyx_L21_bool_binop_done; } __pyx_t_10 = __Pyx_PyObject_RichCompareBool(__pyx_t_9, ((PyObject *)(&PyFloat_Type)), Py_EQ); if (unlikely((__pyx_t_10 < 0))) __PYX_ERR(0, 2347, __pyx_L1_error) if (!__pyx_t_10) { } else { __pyx_t_2 = __pyx_t_10; goto __pyx_L21_bool_binop_done; } __pyx_t_10 = __Pyx_PyObject_RichCompareBool(__pyx_t_9, ((PyObject *)(&PyBool_Type)), Py_EQ); if (unlikely((__pyx_t_10 < 0))) __PYX_ERR(0, 2347, __pyx_L1_error) __pyx_t_2 = __pyx_t_10; __pyx_L21_bool_binop_done:; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_10 = __pyx_t_2; if (__pyx_t_10) { /* … */ }
+2348: for item in value:
if (likely(PyList_CheckExact(__pyx_v_value)) || PyTuple_CheckExact(__pyx_v_value)) { __pyx_t_9 = __pyx_v_value; __Pyx_INCREF(__pyx_t_9); __pyx_t_11 = 0; __pyx_t_12 = NULL; } else { __pyx_t_11 = -1; __pyx_t_9 = PyObject_GetIter(__pyx_v_value); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2348, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_12 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_9); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2348, __pyx_L1_error) } for (;;) { if (likely(!__pyx_t_12)) { if (likely(PyList_CheckExact(__pyx_t_9))) { { 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, 2348, __pyx_L1_error) #endif if (__pyx_t_11 >= __pyx_temp) break; } __pyx_t_8 = __Pyx_PyList_GET_ITEM_REF(__pyx_t_9, __pyx_t_11, __Pyx_ReferenceSharing_OwnStrongReference); ++__pyx_t_11; } else { { Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_9); #if !CYTHON_ASSUME_SAFE_SIZE if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 2348, __pyx_L1_error) #endif if (__pyx_t_11 >= __pyx_temp) break; } #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_8 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_9, __pyx_t_11)); #else __pyx_t_8 = __Pyx_PySequence_ITEM(__pyx_t_9, __pyx_t_11); #endif ++__pyx_t_11; } if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2348, __pyx_L1_error) } else { __pyx_t_8 = __pyx_t_12(__pyx_t_9); 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, 2348, __pyx_L1_error) PyErr_Clear(); } break; } } __Pyx_GOTREF(__pyx_t_8); __Pyx_XDECREF_SET(__pyx_v_item, __pyx_t_8); __pyx_t_8 = 0; /* … */ } __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
+2349: if not isinstance(item, inner_type):
__pyx_t_10 = PyObject_IsInstance(__pyx_v_item, __pyx_v_inner_type); if (unlikely(__pyx_t_10 == ((int)-1))) __PYX_ERR(0, 2349, __pyx_L1_error) __pyx_t_2 = (!__pyx_t_10); if (__pyx_t_2) { /* … */ }
+2350: err["error"] = f"Set item {item} is not of expected type {inner_type.__name__}"
__pyx_t_8 = __Pyx_PyObject_FormatSimple(__pyx_v_item, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2350, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_inner_type, __pyx_mstate_global->__pyx_n_u_name); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2350, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_13 = __Pyx_PyObject_FormatSimple(__pyx_t_1, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 2350, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_14[0] = __pyx_mstate_global->__pyx_kp_u_Set_item; __pyx_t_14[1] = __pyx_t_8; __pyx_t_14[2] = __pyx_mstate_global->__pyx_kp_u_is_not_of_expected_type; __pyx_t_14[3] = __pyx_t_13; __pyx_t_15 = 34; #if __Pyx_PyUnicode_Join_CAN_USE_KIND_AND_LENGTH __pyx_t_15 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_14[1]) + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_14[3]); #endif __pyx_t_7 = 0; #if __Pyx_PyUnicode_Join_CAN_USE_KIND_AND_LENGTH __pyx_t_7 |= __Pyx_PyUnicode_KIND_04(__pyx_t_14[1]) | __Pyx_PyUnicode_KIND_04(__pyx_t_14[3]); #endif __pyx_t_1 = __Pyx_PyUnicode_Join(__pyx_t_14, 4, __pyx_t_15, __pyx_t_7); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2350, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; if (unlikely((PyDict_SetItem(__pyx_v_err, __pyx_mstate_global->__pyx_n_u_error_2, __pyx_t_1) < 0))) __PYX_ERR(0, 2350, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+2351: return err
{
PyObject *__pyx_temp;
{
__pyx_temp = __pyx_r;
__Pyx_INCREF(__pyx_v_err);
__pyx_r = __pyx_v_err;
}
__Pyx_XDECREF(__pyx_temp);
}
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
goto __pyx_L0;
+2352: return None
{
PyObject *__pyx_temp;
{
__pyx_temp = __pyx_r;
__pyx_r = Py_None; __Pyx_INCREF(Py_None);
}
__Pyx_XDECREF(__pyx_temp);
}
goto __pyx_L0;
2353:
2354: # If the field has a cached validator, use it.
+2355: if f.validator is not None:
__pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_f, __pyx_mstate_global->__pyx_n_u_validator); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2355, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_2 = (__pyx_t_9 != Py_None); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; if (__pyx_t_2) { /* … */ }
+2356: try:
{
/*try:*/ {
/* … */
}
__pyx_L30_error:;
__Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
__Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
__Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
__pyx_L32_except_error:;
__Pyx_XGIVEREF(__pyx_t_6);
__Pyx_XGIVEREF(__pyx_t_5);
__Pyx_XGIVEREF(__pyx_t_4);
__Pyx_ExceptionReset(__pyx_t_6, __pyx_t_5, __pyx_t_4);
goto __pyx_L1_error;
__pyx_L34_try_return:;
__Pyx_XGIVEREF(__pyx_t_6);
__Pyx_XGIVEREF(__pyx_t_5);
__Pyx_XGIVEREF(__pyx_t_4);
__Pyx_ExceptionReset(__pyx_t_6, __pyx_t_5, __pyx_t_4);
goto __pyx_L0;
}
+2357: error = f.validator(f, name, value, _type)
__pyx_t_1 = __pyx_v_f;
__Pyx_INCREF(__pyx_t_1);
__pyx_t_16 = 0;
{
PyObject *__pyx_callargs[5] = {__pyx_t_1, __pyx_v_f, __pyx_v_name, __pyx_v_value, __pyx_v__type};
__pyx_t_9 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_validator, __pyx_callargs+__pyx_t_16, (5-__pyx_t_16) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
__Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2357, __pyx_L30_error)
__Pyx_GOTREF(__pyx_t_9);
}
if (!(likely(PyUnicode_CheckExact(__pyx_t_9))||((__pyx_t_9) == Py_None) || __Pyx_RaiseUnexpectedTypeError("str", __pyx_t_9))) __PYX_ERR(0, 2357, __pyx_L30_error)
__Pyx_DECREF_SET(__pyx_v_error, ((PyObject*)__pyx_t_9));
__pyx_t_9 = 0;
+2358: if error:
if (__pyx_v_error == Py_None) __pyx_t_2 = 0;
else
{
Py_ssize_t __pyx_temp = __Pyx_PyUnicode_IS_TRUE(__pyx_v_error);
if (unlikely(((!CYTHON_ASSUME_SAFE_SIZE) && __pyx_temp < 0))) __PYX_ERR(0, 2358, __pyx_L30_error)
__pyx_t_2 = (__pyx_temp != 0);
}
if (__pyx_t_2) {
/* … */
}
+2359: err["error"] = error
if (unlikely((PyDict_SetItem(__pyx_v_err, __pyx_mstate_global->__pyx_n_u_error_2, __pyx_v_error) < 0))) __PYX_ERR(0, 2359, __pyx_L30_error)
+2360: return err
{
PyObject *__pyx_temp;
{
__pyx_temp = __pyx_r;
__Pyx_INCREF(__pyx_v_err);
__pyx_r = __pyx_v_err;
}
__Pyx_XDECREF(__pyx_temp);
}
goto __pyx_L34_try_return;
2361: else:
2362: # calling validation_constraints:
+2363: if _type in (str, int, float):
/*else*/ {
__Pyx_INCREF(__pyx_v__type);
__pyx_t_9 = __pyx_v__type;
__pyx_t_10 = __Pyx_PyObject_RichCompareBool(__pyx_t_9, ((PyObject *)(&PyUnicode_Type)), Py_EQ); if (unlikely((__pyx_t_10 < 0))) __PYX_ERR(0, 2363, __pyx_L30_error)
if (!__pyx_t_10) {
} else {
__pyx_t_2 = __pyx_t_10;
goto __pyx_L38_bool_binop_done;
}
__pyx_t_10 = __Pyx_PyObject_RichCompareBool(__pyx_t_9, ((PyObject *)(&PyLong_Type)), Py_EQ); if (unlikely((__pyx_t_10 < 0))) __PYX_ERR(0, 2363, __pyx_L30_error)
if (!__pyx_t_10) {
} else {
__pyx_t_2 = __pyx_t_10;
goto __pyx_L38_bool_binop_done;
}
__pyx_t_10 = __Pyx_PyObject_RichCompareBool(__pyx_t_9, ((PyObject *)(&PyFloat_Type)), Py_EQ); if (unlikely((__pyx_t_10 < 0))) __PYX_ERR(0, 2363, __pyx_L30_error)
__pyx_t_2 = __pyx_t_10;
__pyx_L38_bool_binop_done:;
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
__pyx_t_10 = __pyx_t_2;
if (__pyx_t_10) {
/* … */
}
}
+2364: return _validate_constraints(f, name, value, _type, val_type)
__pyx_t_9 = __pyx_f_9datamodel_10validation__validate_constraints(__pyx_v_f, __pyx_v_name, __pyx_v_value, __pyx_v__type, __pyx_v_val_type); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2364, __pyx_L30_error) __Pyx_GOTREF(__pyx_t_9); { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; __pyx_r = __pyx_t_9; } __Pyx_XDECREF(__pyx_temp); } __pyx_t_9 = 0; goto __pyx_L34_try_return;
+2365: return None
{
PyObject *__pyx_temp;
{
__pyx_temp = __pyx_r;
__pyx_r = Py_None; __Pyx_INCREF(Py_None);
}
__Pyx_XDECREF(__pyx_temp);
}
goto __pyx_L34_try_return;
+2366: except ValueError:
__pyx_t_7 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(((PyTypeObject*)PyExc_ValueError)))); if (__pyx_t_7) { __Pyx_AddTraceback("datamodel.converters._validation_", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_9, &__pyx_t_1, &__pyx_t_13) < 0) __PYX_ERR(0, 2366, __pyx_L32_except_error) __Pyx_XGOTREF(__pyx_t_9); __Pyx_XGOTREF(__pyx_t_1); __Pyx_XGOTREF(__pyx_t_13);
+2367: raise
__Pyx_GIVEREF(__pyx_t_9); __Pyx_GIVEREF(__pyx_t_1); __Pyx_XGIVEREF(__pyx_t_13); __Pyx_ErrRestoreWithState(__pyx_t_9, __pyx_t_1, __pyx_t_13); __pyx_t_9 = 0; __pyx_t_1 = 0; __pyx_t_13 = 0; __PYX_ERR(0, 2367, __pyx_L32_except_error) } goto __pyx_L32_except_error;
2368: else:
2369: # capturing other errors from validator:
+2370: return _validation(f, name, value, _type, val_type, field_category, as_objects)
/*else*/ {
__pyx_t_1 = NULL;
__Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_validation); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2370, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__pyx_t_8 = __Pyx_PyBool_FromLong(__pyx_v_as_objects); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2370, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_8);
__pyx_t_16 = 1;
#if CYTHON_UNPACK_METHODS
if (unlikely(PyMethod_Check(__pyx_t_9))) {
__pyx_t_1 = PyMethod_GET_SELF(__pyx_t_9);
assert(__pyx_t_1);
PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_9);
__Pyx_INCREF(__pyx_t_1);
__Pyx_INCREF(__pyx__function);
__Pyx_DECREF_SET(__pyx_t_9, __pyx__function);
__pyx_t_16 = 0;
}
#endif
{
PyObject *__pyx_callargs[8] = {__pyx_t_1, __pyx_v_f, __pyx_v_name, __pyx_v_value, __pyx_v__type, __pyx_v_val_type, __pyx_v_field_category, __pyx_t_8};
__pyx_t_13 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_9, __pyx_callargs+__pyx_t_16, (8-__pyx_t_16) | (__pyx_t_16*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
__Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 2370, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_13);
}
{
PyObject *__pyx_temp;
{
__pyx_temp = __pyx_r;
__pyx_r = __pyx_t_13;
}
__Pyx_XDECREF(__pyx_temp);
}
__pyx_t_13 = 0;
goto __pyx_L0;
}
2371:
+2372: cdef object _field_checks_(object f, str name, object value, object meta):
static PyObject *__pyx_f_9datamodel_10converters__field_checks_(PyObject *__pyx_v_f, PyObject *__pyx_v_name, PyObject *__pyx_v_value, PyObject *__pyx_v_meta) {
PyObject *__pyx_v_metadata = 0;
PyObject *__pyx_r = NULL;
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_5);
__Pyx_XDECREF(__pyx_t_7);
__Pyx_XDECREF(__pyx_t_11);
__Pyx_AddTraceback("datamodel.converters._field_checks_", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = 0;
__pyx_L0:;
__Pyx_XDECREF(__pyx_v_metadata);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
2373: # Validate Primary Key
+2374: cdef object metadata = f.metadata
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_f, __pyx_mstate_global->__pyx_n_u_metadata); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2374, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_metadata = __pyx_t_1; __pyx_t_1 = 0;
+2375: try:
{
/*try:*/ {
/* … */
}
__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;
goto __pyx_L8_try_end;
__pyx_L3_error:;
__Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
__Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
__Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
/* … */
__pyx_L5_except_error:;
__Pyx_XGIVEREF(__pyx_t_2);
__Pyx_XGIVEREF(__pyx_t_3);
__Pyx_XGIVEREF(__pyx_t_4);
__Pyx_ExceptionReset(__pyx_t_2, __pyx_t_3, __pyx_t_4);
goto __pyx_L1_error;
__pyx_L4_exception_handled:;
__Pyx_XGIVEREF(__pyx_t_2);
__Pyx_XGIVEREF(__pyx_t_3);
__Pyx_XGIVEREF(__pyx_t_4);
__Pyx_ExceptionReset(__pyx_t_2, __pyx_t_3, __pyx_t_4);
__pyx_L8_try_end:;
}
+2376: if metadata.get('primary', False) is True:
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_metadata, __pyx_mstate_global->__pyx_n_u_get); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2376, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_mstate_global->__pyx_tuple[3], NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2376, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_6 = (__pyx_t_5 == Py_True); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (__pyx_t_6) { /* … */ } /* … */ { PyObject* __pyx_temp[2] = {__pyx_mstate_global->__pyx_n_u_primary, Py_False}; __pyx_mstate_global->__pyx_tuple[3] = __Pyx_PyTuple_FromArray(__pyx_temp, 2); if (unlikely(!__pyx_mstate_global->__pyx_tuple[3])) __PYX_ERR(0, 2376, __pyx_L1_error) __Pyx_GOTREF(__pyx_mstate_global->__pyx_tuple[3]); } __Pyx_GIVEREF(__pyx_mstate_global->__pyx_tuple[3]);
+2377: if 'db_default' in metadata:
__pyx_t_6 = (__Pyx_PySequence_ContainsTF(__pyx_mstate_global->__pyx_n_u_db_default, __pyx_v_metadata, Py_EQ)); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(0, 2377, __pyx_L3_error) if (likely(__pyx_t_6)) { goto __pyx_L10; }
2378: pass
2379: else:
+2380: raise ValueError(
/*else*/ {
__pyx_t_1 = NULL;
+2381: f":: Missing Primary Key *{name}*"
__pyx_t_7 = __Pyx_PyUnicode_Unicode(__pyx_v_name); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2381, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_8[0] = __pyx_mstate_global->__pyx_kp_u_Missing_Primary_Key; __pyx_t_8[1] = __pyx_t_7; __pyx_t_8[2] = __pyx_mstate_global->__pyx_kp_u__11; __pyx_t_9 = 25; #if __Pyx_PyUnicode_Join_CAN_USE_KIND_AND_LENGTH __pyx_t_9 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_8[1]); #endif __pyx_t_10 = 0; #if __Pyx_PyUnicode_Join_CAN_USE_KIND_AND_LENGTH __pyx_t_10 |= __Pyx_PyUnicode_KIND_04(__pyx_t_8[1]); #endif __pyx_t_11 = __Pyx_PyUnicode_Join(__pyx_t_8, 3, __pyx_t_9, __pyx_t_10); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 2381, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_12 = 1; { PyObject *__pyx_callargs[2] = {__pyx_t_1, __pyx_t_11}; __pyx_t_5 = __Pyx_PyObject_FastCall((PyObject*)(((PyTypeObject*)PyExc_ValueError)), __pyx_callargs+__pyx_t_12, (2-__pyx_t_12) | (__pyx_t_12*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2380, __pyx_L3_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, 2380, __pyx_L3_error) } __pyx_L10:;
2382: )
+2383: except KeyError:
__pyx_t_10 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(((PyTypeObject*)PyExc_KeyError)))); if (__pyx_t_10) { __Pyx_ErrRestore(0,0,0); goto __pyx_L4_exception_handled; } goto __pyx_L5_except_error;
2384: pass
2385: # Validate Required
+2386: try:
{
/*try:*/ {
/* … */
}
__Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
__Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
goto __pyx_L18_try_end;
__pyx_L13_error:;
__Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
__Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
__Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
/* … */
__pyx_L15_except_error:;
__Pyx_XGIVEREF(__pyx_t_4);
__Pyx_XGIVEREF(__pyx_t_3);
__Pyx_XGIVEREF(__pyx_t_2);
__Pyx_ExceptionReset(__pyx_t_4, __pyx_t_3, __pyx_t_2);
goto __pyx_L1_error;
__pyx_L17_try_return:;
__Pyx_XGIVEREF(__pyx_t_4);
__Pyx_XGIVEREF(__pyx_t_3);
__Pyx_XGIVEREF(__pyx_t_2);
__Pyx_ExceptionReset(__pyx_t_4, __pyx_t_3, __pyx_t_2);
goto __pyx_L0;
__pyx_L16_except_return:;
__Pyx_XGIVEREF(__pyx_t_4);
__Pyx_XGIVEREF(__pyx_t_3);
__Pyx_XGIVEREF(__pyx_t_2);
__Pyx_ExceptionReset(__pyx_t_4, __pyx_t_3, __pyx_t_2);
goto __pyx_L0;
__pyx_L18_try_end:;
}
+2387: if metadata.get('required', False) is True and meta.strict is True:
__pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_metadata, __pyx_mstate_global->__pyx_n_u_get); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2387, __pyx_L13_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_11 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_mstate_global->__pyx_tuple[4], NULL); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 2387, __pyx_L13_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_13 = (__pyx_t_11 == Py_True); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; if (__pyx_t_13) { } else { __pyx_t_6 = __pyx_t_13; goto __pyx_L20_bool_binop_done; } __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_meta, __pyx_mstate_global->__pyx_n_u_strict); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 2387, __pyx_L13_error) __Pyx_GOTREF(__pyx_t_11); __pyx_t_13 = (__pyx_t_11 == Py_True); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __pyx_t_6 = __pyx_t_13; __pyx_L20_bool_binop_done:; if (__pyx_t_6) { /* … */ } /* … */ { PyObject* __pyx_temp[2] = {__pyx_mstate_global->__pyx_n_u_required, Py_False}; __pyx_mstate_global->__pyx_tuple[4] = __Pyx_PyTuple_FromArray(__pyx_temp, 2); if (unlikely(!__pyx_mstate_global->__pyx_tuple[4])) __PYX_ERR(0, 2387, __pyx_L1_error) __Pyx_GOTREF(__pyx_mstate_global->__pyx_tuple[4]); } __Pyx_GIVEREF(__pyx_mstate_global->__pyx_tuple[4]);
+2388: if 'db_default' in metadata:
__pyx_t_6 = (__Pyx_PySequence_ContainsTF(__pyx_mstate_global->__pyx_n_u_db_default, __pyx_v_metadata, Py_EQ)); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(0, 2388, __pyx_L13_error) if (__pyx_t_6) { /* … */ }
+2389: return
{
PyObject *__pyx_temp;
{
__pyx_temp = __pyx_r;
__pyx_r = Py_None; __Pyx_INCREF(Py_None);
}
__Pyx_XDECREF(__pyx_temp);
}
goto __pyx_L17_try_return;
+2390: if value is not None:
__pyx_t_6 = (__pyx_v_value != Py_None);
if (__pyx_t_6) {
/* … */
}
+2391: return # If default value is set, no need to raise an error
{
PyObject *__pyx_temp;
{
__pyx_temp = __pyx_r;
__pyx_r = Py_None; __Pyx_INCREF(Py_None);
}
__Pyx_XDECREF(__pyx_temp);
}
goto __pyx_L17_try_return;
+2392: raise ValueError(
__pyx_t_5 = NULL;
+2393: f":: Missing Required Field *{name}*"
__pyx_t_1 = __Pyx_PyUnicode_Unicode(__pyx_v_name); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2393, __pyx_L13_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_8[0] = __pyx_mstate_global->__pyx_kp_u_Missing_Required_Field; __pyx_t_8[1] = __pyx_t_1; __pyx_t_8[2] = __pyx_mstate_global->__pyx_kp_u__11; __pyx_t_9 = 28; #if __Pyx_PyUnicode_Join_CAN_USE_KIND_AND_LENGTH __pyx_t_9 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_8[1]); #endif __pyx_t_10 = 0; #if __Pyx_PyUnicode_Join_CAN_USE_KIND_AND_LENGTH __pyx_t_10 |= __Pyx_PyUnicode_KIND_04(__pyx_t_8[1]); #endif __pyx_t_7 = __Pyx_PyUnicode_Join(__pyx_t_8, 3, __pyx_t_9, __pyx_t_10); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2393, __pyx_L13_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_12 = 1; { PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_7}; __pyx_t_11 = __Pyx_PyObject_FastCall((PyObject*)(((PyTypeObject*)PyExc_ValueError)), __pyx_callargs+__pyx_t_12, (2-__pyx_t_12) | (__pyx_t_12*__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_11)) __PYX_ERR(0, 2392, __pyx_L13_error) __Pyx_GOTREF(__pyx_t_11); } __Pyx_Raise(__pyx_t_11, 0, 0, 0); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __PYX_ERR(0, 2392, __pyx_L13_error)
2394: )
+2395: except ValueError:
__pyx_t_10 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(((PyTypeObject*)PyExc_ValueError)))); if (__pyx_t_10) { __Pyx_AddTraceback("datamodel.converters._field_checks_", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_11, &__pyx_t_7, &__pyx_t_5) < 0) __PYX_ERR(0, 2395, __pyx_L15_except_error) __Pyx_XGOTREF(__pyx_t_11); __Pyx_XGOTREF(__pyx_t_7); __Pyx_XGOTREF(__pyx_t_5);
+2396: raise
__Pyx_GIVEREF(__pyx_t_11); __Pyx_GIVEREF(__pyx_t_7); __Pyx_XGIVEREF(__pyx_t_5); __Pyx_ErrRestoreWithState(__pyx_t_11, __pyx_t_7, __pyx_t_5); __pyx_t_11 = 0; __pyx_t_7 = 0; __pyx_t_5 = 0; __PYX_ERR(0, 2396, __pyx_L15_except_error) }
+2397: except KeyError:
__pyx_t_10 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(((PyTypeObject*)PyExc_KeyError)))); if (__pyx_t_10) { __Pyx_ErrRestore(0,0,0);
+2398: return
{
PyObject *__pyx_temp;
{
__pyx_temp = __pyx_r;
__pyx_r = Py_None; __Pyx_INCREF(Py_None);
}
__Pyx_XDECREF(__pyx_temp);
}
goto __pyx_L16_except_return;
}
goto __pyx_L15_except_error;
2399: # Nullable:
+2400: try:
{
/*try:*/ {
/* … */
}
__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;
goto __pyx_L33_try_end;
__pyx_L28_error:;
__Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
__Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
__Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
/* … */
__pyx_L30_except_error:;
__Pyx_XGIVEREF(__pyx_t_2);
__Pyx_XGIVEREF(__pyx_t_3);
__Pyx_XGIVEREF(__pyx_t_4);
__Pyx_ExceptionReset(__pyx_t_2, __pyx_t_3, __pyx_t_4);
goto __pyx_L1_error;
__pyx_L31_except_return:;
__Pyx_XGIVEREF(__pyx_t_2);
__Pyx_XGIVEREF(__pyx_t_3);
__Pyx_XGIVEREF(__pyx_t_4);
__Pyx_ExceptionReset(__pyx_t_2, __pyx_t_3, __pyx_t_4);
goto __pyx_L0;
__pyx_L33_try_end:;
}
+2401: if metadata.get('nullable', True) is False and meta.strict is True:
__pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_metadata, __pyx_mstate_global->__pyx_n_u_get); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2401, __pyx_L28_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_mstate_global->__pyx_tuple[5], NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2401, __pyx_L28_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_13 = (__pyx_t_7 == Py_False); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; if (__pyx_t_13) { } else { __pyx_t_6 = __pyx_t_13; goto __pyx_L35_bool_binop_done; } __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_meta, __pyx_mstate_global->__pyx_n_u_strict); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2401, __pyx_L28_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_13 = (__pyx_t_7 == Py_True); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_6 = __pyx_t_13; __pyx_L35_bool_binop_done:; if (unlikely(__pyx_t_6)) { /* … */ } /* … */ { PyObject* __pyx_temp[2] = {__pyx_mstate_global->__pyx_n_u_nullable, Py_True}; __pyx_mstate_global->__pyx_tuple[5] = __Pyx_PyTuple_FromArray(__pyx_temp, 2); if (unlikely(!__pyx_mstate_global->__pyx_tuple[5])) __PYX_ERR(0, 2401, __pyx_L1_error) __Pyx_GOTREF(__pyx_mstate_global->__pyx_tuple[5]); } __Pyx_GIVEREF(__pyx_mstate_global->__pyx_tuple[5]);
+2402: raise ValueError(
__pyx_t_5 = NULL;
+2403: f":: *{name}* Cannot be null."
__pyx_t_11 = __Pyx_PyUnicode_Unicode(__pyx_v_name); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 2403, __pyx_L28_error) __Pyx_GOTREF(__pyx_t_11); __pyx_t_8[0] = __pyx_mstate_global->__pyx_kp_u__12; __pyx_t_8[1] = __pyx_t_11; __pyx_t_8[2] = __pyx_mstate_global->__pyx_kp_u_Cannot_be_null; __pyx_t_9 = 21; #if __Pyx_PyUnicode_Join_CAN_USE_KIND_AND_LENGTH __pyx_t_9 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_8[1]); #endif __pyx_t_10 = 0; #if __Pyx_PyUnicode_Join_CAN_USE_KIND_AND_LENGTH __pyx_t_10 |= __Pyx_PyUnicode_KIND_04(__pyx_t_8[1]); #endif __pyx_t_1 = __Pyx_PyUnicode_Join(__pyx_t_8, 3, __pyx_t_9, __pyx_t_10); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2403, __pyx_L28_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __pyx_t_12 = 1; { PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_1}; __pyx_t_7 = __Pyx_PyObject_FastCall((PyObject*)(((PyTypeObject*)PyExc_ValueError)), __pyx_callargs+__pyx_t_12, (2-__pyx_t_12) | (__pyx_t_12*__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_7)) __PYX_ERR(0, 2402, __pyx_L28_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, 2402, __pyx_L28_error)
2404: )
+2405: except ValueError:
__pyx_t_10 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(((PyTypeObject*)PyExc_ValueError)))); if (__pyx_t_10) { __Pyx_AddTraceback("datamodel.converters._field_checks_", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_7, &__pyx_t_1, &__pyx_t_5) < 0) __PYX_ERR(0, 2405, __pyx_L30_except_error) __Pyx_XGOTREF(__pyx_t_7); __Pyx_XGOTREF(__pyx_t_1); __Pyx_XGOTREF(__pyx_t_5);
+2406: raise
__Pyx_GIVEREF(__pyx_t_7); __Pyx_GIVEREF(__pyx_t_1); __Pyx_XGIVEREF(__pyx_t_5); __Pyx_ErrRestoreWithState(__pyx_t_7, __pyx_t_1, __pyx_t_5); __pyx_t_7 = 0; __pyx_t_1 = 0; __pyx_t_5 = 0; __PYX_ERR(0, 2406, __pyx_L30_except_error) }
+2407: except KeyError:
__pyx_t_10 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(((PyTypeObject*)PyExc_KeyError)))); if (__pyx_t_10) { __Pyx_ErrRestore(0,0,0);
+2408: return
{
PyObject *__pyx_temp;
{
__pyx_temp = __pyx_r;
__pyx_r = Py_None; __Pyx_INCREF(Py_None);
}
__Pyx_XDECREF(__pyx_temp);
}
goto __pyx_L31_except_return;
}
goto __pyx_L30_except_error;
+2409: return
{
PyObject *__pyx_temp;
{
__pyx_temp = __pyx_r;
__pyx_r = Py_None; __Pyx_INCREF(Py_None);
}
__Pyx_XDECREF(__pyx_temp);
}
goto __pyx_L0;
2410:
2411:
+2412: cpdef parse_type(object field, object T, object data, object encoder = None):
static PyObject *__pyx_pw_9datamodel_10converters_37parse_type(PyObject *__pyx_self,
#if CYTHON_VECTORCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyObject *__pyx_f_9datamodel_10converters_parse_type(PyObject *__pyx_v_field, PyObject *__pyx_v_T, PyObject *__pyx_v_data, CYTHON_UNUSED int __pyx_skip_dispatch, struct __pyx_opt_args_9datamodel_10converters_parse_type *__pyx_optional_args) {
PyObject *__pyx_v_encoder = ((PyObject *)Py_None);
PyObject *__pyx_v_origin = 0;
PyObject *__pyx_v_args = 0;
PyObject *__pyx_v_type_name = 0;
PyObject *__pyx_v_type_args = 0;
CYTHON_UNUSED PyObject *__pyx_v_typeinfo = 0;
PyObject *__pyx_v_arg_type = NULL;
PyObject *__pyx_v_t = NULL;
PyObject *__pyx_v_result = NULL;
PyObject *__pyx_v_x = NULL;
PyObject *__pyx_v_d = NULL;
PyObject *__pyx_v_item = NULL;
PyObject *__pyx_v_converted_item = NULL;
PyObject *__pyx_v_non_none_arg = NULL;
PyObject *__pyx_v_arg = NULL;
PyObject *__pyx_v_fn = NULL;
CYTHON_UNUSED PyObject *__pyx_v_ex = NULL;
PyObject *__pyx_v_exc = NULL;
PyObject *__pyx_8genexpr7__pyx_v_k = NULL;
PyObject *__pyx_8genexpr7__pyx_v_v = NULL;
PyObject *__pyx_r = NULL;
if (__pyx_optional_args) {
if (__pyx_optional_args->__pyx_n > 0) {
__pyx_v_encoder = __pyx_optional_args->encoder;
}
}
__Pyx_INCREF(__pyx_v_T);
__Pyx_INCREF(__pyx_v_data);
/* … */
/* function exit code */
__pyx_r = Py_None; __Pyx_INCREF(Py_None);
goto __pyx_L0;
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_2);
__Pyx_XDECREF(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_10);
__Pyx_XDECREF(__pyx_t_18);
__Pyx_XDECREF(__pyx_t_26);
__Pyx_XDECREF(__pyx_t_27);
__Pyx_XDECREF(__pyx_t_28);
__Pyx_XDECREF(__pyx_t_30);
__Pyx_AddTraceback("datamodel.converters.parse_type", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = 0;
__pyx_L0:;
__Pyx_XDECREF(__pyx_v_origin);
__Pyx_XDECREF(__pyx_v_args);
__Pyx_XDECREF(__pyx_v_type_name);
__Pyx_XDECREF(__pyx_v_type_args);
__Pyx_XDECREF(__pyx_v_typeinfo);
__Pyx_XDECREF(__pyx_v_arg_type);
__Pyx_XDECREF(__pyx_v_t);
__Pyx_XDECREF(__pyx_v_result);
__Pyx_XDECREF(__pyx_v_x);
__Pyx_XDECREF(__pyx_v_d);
__Pyx_XDECREF(__pyx_v_item);
__Pyx_XDECREF(__pyx_v_converted_item);
__Pyx_XDECREF(__pyx_v_non_none_arg);
__Pyx_XDECREF(__pyx_v_arg);
__Pyx_XDECREF(__pyx_v_fn);
__Pyx_XDECREF(__pyx_v_ex);
__Pyx_XDECREF(__pyx_v_exc);
__Pyx_XDECREF(__pyx_8genexpr7__pyx_v_k);
__Pyx_XDECREF(__pyx_8genexpr7__pyx_v_v);
__Pyx_XDECREF(__pyx_v_T);
__Pyx_XDECREF(__pyx_v_data);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* Python wrapper */
static PyObject *__pyx_pw_9datamodel_10converters_37parse_type(PyObject *__pyx_self,
#if CYTHON_VECTORCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_9datamodel_10converters_36parse_type, "parse_type(field, T, data, encoder=None)");
static PyMethodDef __pyx_mdef_9datamodel_10converters_37parse_type = {"parse_type", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9datamodel_10converters_37parse_type, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_9datamodel_10converters_36parse_type};
static PyObject *__pyx_pw_9datamodel_10converters_37parse_type(PyObject *__pyx_self,
#if CYTHON_VECTORCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
PyObject *__pyx_v_field = 0;
PyObject *__pyx_v_T = 0;
PyObject *__pyx_v_data = 0;
PyObject *__pyx_v_encoder = 0;
#if !CYTHON_VECTORCALL
CYTHON_UNUSED Py_ssize_t __pyx_nargs;
#endif
CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("parse_type (wrapper)", 0);
#if !CYTHON_VECTORCALL
#if CYTHON_ASSUME_SAFE_SIZE
__pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
#else
__pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
#endif
#endif
__pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
{
PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_field,&__pyx_mstate_global->__pyx_n_u_T,&__pyx_mstate_global->__pyx_n_u_data,&__pyx_mstate_global->__pyx_n_u_encoder,0};
PyObject* values[4] = {0,0,0,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, 2412, __pyx_L3_error)
if (__pyx_kwds_len > 0) {
switch (__pyx_nargs) {
case 4:
values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);
if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(0, 2412, __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, 2412, __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, 2412, __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, 2412, __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, "parse_type", 0) < (0)) __PYX_ERR(0, 2412, __pyx_L3_error)
if (!values[3]) values[3] = __Pyx_NewRef(((PyObject *)Py_None));
for (Py_ssize_t i = __pyx_nargs; i < 3; i++) {
if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("parse_type", 0, 3, 4, i); __PYX_ERR(0, 2412, __pyx_L3_error) }
}
} else {
switch (__pyx_nargs) {
case 4:
values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3);
if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(0, 2412, __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, 2412, __pyx_L3_error)
values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1);
if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 2412, __pyx_L3_error)
values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0);
if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 2412, __pyx_L3_error)
break;
default: goto __pyx_L5_argtuple_error;
}
if (!values[3]) values[3] = __Pyx_NewRef(((PyObject *)Py_None));
}
__pyx_v_field = values[0];
__pyx_v_T = values[1];
__pyx_v_data = values[2];
__pyx_v_encoder = values[3];
}
goto __pyx_L6_skip;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("parse_type", 0, 3, 4, __pyx_nargs); __PYX_ERR(0, 2412, __pyx_L3_error)
__pyx_L6_skip:;
goto __pyx_L4_argument_unpacking_done;
__pyx_L3_error:;
for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
Py_XDECREF(values[__pyx_temp]);
}
__Pyx_AddTraceback("datamodel.converters.parse_type", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
__pyx_r = __pyx_pf_9datamodel_10converters_36parse_type(__pyx_self, __pyx_v_field, __pyx_v_T, __pyx_v_data, __pyx_v_encoder);
/* function exit code */
for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
Py_XDECREF(values[__pyx_temp]);
}
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_9datamodel_10converters_36parse_type(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_field, PyObject *__pyx_v_T, PyObject *__pyx_v_data, PyObject *__pyx_v_encoder) {
PyObject *__pyx_r = NULL;
__pyx_t_2.__pyx_n = 1;
__pyx_t_2.encoder = __pyx_v_encoder;
__pyx_t_1 = __pyx_f_9datamodel_10converters_parse_type(__pyx_v_field, __pyx_v_T, __pyx_v_data, 1, &__pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2412, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
{
PyObject *__pyx_temp;
{
__pyx_temp = __pyx_r;
__pyx_r = __pyx_t_1;
}
__Pyx_XDECREF(__pyx_temp);
}
__pyx_t_1 = 0;
goto __pyx_L0;
/* … */
__pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_9datamodel_10converters_37parse_type, 0, __pyx_mstate_global->__pyx_n_u_parse_type, NULL, __pyx_mstate_global->__pyx_n_u_datamodel_converters, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[24])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2412, __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_mstate_global->__pyx_tuple[6]);
if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_parse_type, __pyx_t_2) < (0)) __PYX_ERR(0, 2412, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
/* … */
struct __pyx_opt_args_9datamodel_10converters_parse_type {
int __pyx_n;
PyObject *encoder;
};
+2413: cdef object origin = get_origin(T)
__pyx_t_2 = NULL; __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_get_origin); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2413, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = 1; #if CYTHON_UNPACK_METHODS if (unlikely(PyMethod_Check(__pyx_t_3))) { __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3); assert(__pyx_t_2); PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(__pyx__function); __Pyx_DECREF_SET(__pyx_t_3, __pyx__function); __pyx_t_4 = 0; } #endif { PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_v_T}; __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_3, __pyx_callargs+__pyx_t_4, (2-__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, 2413, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } __pyx_v_origin = __pyx_t_1; __pyx_t_1 = 0;
+2414: cdef tuple args = None
__Pyx_INCREF(Py_None);
__pyx_v_args = ((PyObject*)Py_None);
+2415: cdef str type_name = getattr(T, '_name', None)
__pyx_t_1 = __Pyx_GetAttr3(__pyx_v_T, __pyx_mstate_global->__pyx_n_u_name_3, Py_None); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2415, __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, 2415, __pyx_L1_error) __pyx_v_type_name = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0;
+2416: cdef object type_args = getattr(T, '__args__', None)
__pyx_t_1 = __Pyx_GetAttr3(__pyx_v_T, __pyx_mstate_global->__pyx_n_u_args, Py_None); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2416, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_type_args = __pyx_t_1; __pyx_t_1 = 0;
+2417: cdef dict typeinfo = getattr(T, '_typeinfo_', None)
__pyx_t_1 = __Pyx_GetAttr3(__pyx_v_T, __pyx_mstate_global->__pyx_n_u_typeinfo_2, Py_None); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2417, __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, 2417, __pyx_L1_error) __pyx_v_typeinfo = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0;
2418:
+2419: if isinstance(T, NewType):
__Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_NewType); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2419, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_5 = PyObject_IsInstance(__pyx_v_T, __pyx_t_1); if (unlikely(__pyx_t_5 == ((int)-1))) __PYX_ERR(0, 2419, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_5) { /* … */ }
2420: # change type if is a NewType object.
+2421: T = T.__supertype__
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_T, __pyx_mstate_global->__pyx_n_u_supertype); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2421, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_T, __pyx_t_1); __pyx_t_1 = 0;
2422:
2423: # Check if the data is already of the correct type
+2424: if isinstance(data, T):
__pyx_t_5 = PyObject_IsInstance(__pyx_v_data, __pyx_v_T); if (unlikely(__pyx_t_5 == ((int)-1))) __PYX_ERR(0, 2424, __pyx_L1_error) if (__pyx_t_5) { /* … */ }
+2425: return data
{
PyObject *__pyx_temp;
{
__pyx_temp = __pyx_r;
__Pyx_INCREF(__pyx_v_data);
__pyx_r = __pyx_v_data;
}
__Pyx_XDECREF(__pyx_temp);
}
goto __pyx_L0;
2426:
+2427: if field._type_category == 'typing':
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_field, __pyx_mstate_global->__pyx_n_u_type_category); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2427, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_5 = __Pyx_PyObject_CompareBoolEq_object_str(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_typing, Py_EQ); if (unlikely((__pyx_t_5 < 0))) __PYX_ERR(0, 2427, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_5) { /* … */ goto __pyx_L5; }
+2428: args = type_args or ()
__pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_v_type_args); if (unlikely((__pyx_t_5 < 0))) __PYX_ERR(0, 2428, __pyx_L1_error) if (!__pyx_t_5) { } else { __pyx_t_3 = __pyx_v_type_args; __Pyx_INCREF(__pyx_t_3); if (!(likely(PyTuple_CheckExact(__pyx_t_3))||((__pyx_t_3) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_t_3))) __PYX_ERR(0, 2428, __pyx_L1_error) __pyx_t_1 = __pyx_t_3; __pyx_t_3 = 0; goto __pyx_L6_bool_binop_done; } __Pyx_INCREF(__pyx_mstate_global->__pyx_empty_tuple); __pyx_t_1 = __pyx_mstate_global->__pyx_empty_tuple; __pyx_L6_bool_binop_done:; __Pyx_DECREF_SET(__pyx_v_args, ((PyObject*)__pyx_t_1)); __pyx_t_1 = 0;
+2429: if type_name == 'Dict' and isinstance(data, dict):
__pyx_t_6 = __Pyx_PyObject_CompareBoolEq_str_str(__pyx_v_type_name, __pyx_mstate_global->__pyx_n_u_Dict, Py_EQ); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(0, 2429, __pyx_L1_error) if (__pyx_t_6) { } else { __pyx_t_5 = __pyx_t_6; goto __pyx_L9_bool_binop_done; } __pyx_t_6 = PyDict_Check(__pyx_v_data); __pyx_t_5 = __pyx_t_6; __pyx_L9_bool_binop_done:; if (__pyx_t_5) { /* … */ goto __pyx_L8; }
+2430: if args:
if (__pyx_v_args == Py_None) __pyx_t_5 = 0;
else
{
Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_v_args);
if (unlikely(((!CYTHON_ASSUME_SAFE_SIZE) && __pyx_temp < 0))) __PYX_ERR(0, 2430, __pyx_L1_error)
__pyx_t_5 = (__pyx_temp != 0);
}
if (__pyx_t_5) {
/* … */
}
+2431: return {k: parse_type(field, type_args[1], v) for k, v in data.items()}
{ /* enter inner scope */
__pyx_t_1 = PyDict_New(); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2431, __pyx_L14_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_7 = 0;
if (unlikely(__pyx_v_data == Py_None)) {
PyErr_Format(PyExc_AttributeError, "\047NoneType\047 object has no attribute \047%.30s\047", "items");
__PYX_ERR(0, 2431, __pyx_L14_error)
}
__pyx_t_2 = __Pyx_dict_iterator(__pyx_v_data, 0, __pyx_mstate_global->__pyx_n_u_items, (&__pyx_t_8), (&__pyx_t_9)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2431, __pyx_L14_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_XDECREF(__pyx_t_3);
__pyx_t_3 = __pyx_t_2;
__pyx_t_2 = 0;
while (1) {
__pyx_t_11 = __Pyx_dict_iter_next(__pyx_t_3, __pyx_t_8, &__pyx_t_7, &__pyx_t_2, &__pyx_t_10, NULL, __pyx_t_9);
if (unlikely(__pyx_t_11 == 0)) break;
if (unlikely(__pyx_t_11 == -1)) __PYX_ERR(0, 2431, __pyx_L14_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_GOTREF(__pyx_t_10);
__Pyx_XDECREF_SET(__pyx_8genexpr7__pyx_v_k, __pyx_t_2);
__pyx_t_2 = 0;
__Pyx_XDECREF_SET(__pyx_8genexpr7__pyx_v_v, __pyx_t_10);
__pyx_t_10 = 0;
__pyx_t_10 = __Pyx_GetItemInt(__pyx_v_type_args, 1, long, 1, __Pyx_PyLong_From_long, 0, 1, 1, __Pyx_ReferenceSharing_OwnStrongReference); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2431, __pyx_L14_error)
__Pyx_GOTREF(__pyx_t_10);
__pyx_t_2 = __pyx_f_9datamodel_10converters_parse_type(__pyx_v_field, __pyx_t_10, __pyx_8genexpr7__pyx_v_v, 0, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2431, __pyx_L14_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
if (unlikely(PyDict_SetItem(__pyx_t_1, __pyx_8genexpr7__pyx_v_k, __pyx_t_2))) __PYX_ERR(0, 2431, __pyx_L14_error)
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
}
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_XDECREF(__pyx_8genexpr7__pyx_v_k); __pyx_8genexpr7__pyx_v_k = 0;
__Pyx_XDECREF(__pyx_8genexpr7__pyx_v_v); __pyx_8genexpr7__pyx_v_v = 0;
goto __pyx_L17_exit_scope;
__pyx_L14_error:;
__Pyx_XDECREF(__pyx_8genexpr7__pyx_v_k); __pyx_8genexpr7__pyx_v_k = 0;
__Pyx_XDECREF(__pyx_8genexpr7__pyx_v_v); __pyx_8genexpr7__pyx_v_v = 0;
goto __pyx_L1_error;
__pyx_L17_exit_scope:;
} /* exit inner scope */
{
PyObject *__pyx_temp;
{
__pyx_temp = __pyx_r;
__pyx_r = __pyx_t_1;
}
__Pyx_XDECREF(__pyx_temp);
}
__pyx_t_1 = 0;
goto __pyx_L0;
2432:
+2433: elif type_name == 'List':
__pyx_t_5 = __Pyx_PyObject_CompareBoolEq_str_str(__pyx_v_type_name, __pyx_mstate_global->__pyx_n_u_List, Py_EQ); if (unlikely((__pyx_t_5 < 0))) __PYX_ERR(0, 2433, __pyx_L1_error) if (__pyx_t_5) { /* … */ }
+2434: if not isinstance(data, (list, tuple)):
__pyx_t_6 = PyList_Check(__pyx_v_data); if (!__pyx_t_6) { } else { __pyx_t_5 = __pyx_t_6; goto __pyx_L19_bool_binop_done; } __pyx_t_6 = PyTuple_Check(__pyx_v_data); __pyx_t_5 = __pyx_t_6; __pyx_L19_bool_binop_done:; __pyx_t_6 = (!__pyx_t_5); if (__pyx_t_6) { /* … */ }
+2435: data = [data]
__pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2435, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_data); __Pyx_GIVEREF(__pyx_v_data); if (__Pyx_PyList_SET_ITEM(__pyx_t_1, 0, __pyx_v_data) != (0)) __PYX_ERR(0, 2435, __pyx_L1_error); __Pyx_DECREF_SET(__pyx_v_data, __pyx_t_1); __pyx_t_1 = 0;
+2436: arg_type = args[0]
if (unlikely(__pyx_v_args == Py_None)) {
PyErr_SetString(PyExc_TypeError, "\047NoneType\047 object is not subscriptable");
__PYX_ERR(0, 2436, __pyx_L1_error)
}
__pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v_args, 0, long, 1, __Pyx_PyLong_From_long, 0, 1, 1, __Pyx_ReferenceSharing_OwnStrongReference); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2436, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_v_arg_type = __pyx_t_1;
__pyx_t_1 = 0;
+2437: if arg_type.__module__ == 'typing': # nested typing
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg_type, __pyx_mstate_global->__pyx_n_u_module); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2437, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_6 = __Pyx_PyObject_CompareBoolEq_object_str(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_typing, Py_EQ); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(0, 2437, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_6) { /* … */ }
+2438: try:
{
/*try:*/ {
/* … */
}
__pyx_L22_error:;
__Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
__Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
/* … */
__pyx_L24_except_error:;
__Pyx_XGIVEREF(__pyx_t_12);
__Pyx_XGIVEREF(__pyx_t_13);
__Pyx_XGIVEREF(__pyx_t_14);
__Pyx_ExceptionReset(__pyx_t_12, __pyx_t_13, __pyx_t_14);
goto __pyx_L1_error;
__pyx_L26_try_return:;
__Pyx_XGIVEREF(__pyx_t_12);
__Pyx_XGIVEREF(__pyx_t_13);
__Pyx_XGIVEREF(__pyx_t_14);
__Pyx_ExceptionReset(__pyx_t_12, __pyx_t_13, __pyx_t_14);
goto __pyx_L0;
__pyx_L25_except_return:;
__Pyx_XGIVEREF(__pyx_t_12);
__Pyx_XGIVEREF(__pyx_t_13);
__Pyx_XGIVEREF(__pyx_t_14);
__Pyx_ExceptionReset(__pyx_t_12, __pyx_t_13, __pyx_t_14);
goto __pyx_L0;
}
+2439: t = arg_type.__args__[0]
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg_type, __pyx_mstate_global->__pyx_n_u_args); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2439, __pyx_L22_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = __Pyx_GetItemInt(__pyx_t_1, 0, long, 1, __Pyx_PyLong_From_long, 0, 1, 1, __Pyx_ReferenceSharing_OwnStrongReference); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2439, __pyx_L22_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_v_t = __pyx_t_3; __pyx_t_3 = 0;
+2440: if is_dc(t):
__pyx_t_6 = __pyx_f_9datamodel_10converters_is_dc(__pyx_v_t); if (unlikely(__pyx_t_6 == ((int)-1) && PyErr_Occurred())) __PYX_ERR(0, 2440, __pyx_L22_error) if (__pyx_t_6) { /* … */ }
+2441: result = []
__pyx_t_3 = PyList_New(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2441, __pyx_L22_error) __Pyx_GOTREF(__pyx_t_3); __pyx_v_result = ((PyObject*)__pyx_t_3); __pyx_t_3 = 0;
+2442: for x in data:
if (likely(PyList_CheckExact(__pyx_v_data)) || PyTuple_CheckExact(__pyx_v_data)) { __pyx_t_3 = __pyx_v_data; __Pyx_INCREF(__pyx_t_3); __pyx_t_8 = 0; __pyx_t_15 = NULL; } else { __pyx_t_8 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_v_data); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2442, __pyx_L22_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_15 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_3); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2442, __pyx_L22_error) } for (;;) { if (likely(!__pyx_t_15)) { if (likely(PyList_CheckExact(__pyx_t_3))) { { 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, 2442, __pyx_L22_error) #endif if (__pyx_t_8 >= __pyx_temp) break; } __pyx_t_1 = __Pyx_PyList_GET_ITEM_REF(__pyx_t_3, __pyx_t_8, __Pyx_ReferenceSharing_OwnStrongReference); ++__pyx_t_8; } else { { 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, 2442, __pyx_L22_error) #endif if (__pyx_t_8 >= __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_8)); #else __pyx_t_1 = __Pyx_PySequence_ITEM(__pyx_t_3, __pyx_t_8); #endif ++__pyx_t_8; } if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2442, __pyx_L22_error) } else { __pyx_t_1 = __pyx_t_15(__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, 2442, __pyx_L22_error) PyErr_Clear(); } break; } } __Pyx_GOTREF(__pyx_t_1); __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_1); __pyx_t_1 = 0; /* … */ } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+2443: if isinstance(x, dict):
__pyx_t_6 = PyDict_Check(__pyx_v_x);
if (__pyx_t_6) {
/* … */
goto __pyx_L31;
}
+2444: result.append(t(**x))
if (unlikely(__pyx_v_x == Py_None)) {
PyErr_SetString(PyExc_TypeError, "argument after ** must be a mapping, not NoneType");
__PYX_ERR(0, 2444, __pyx_L22_error)
}
if (likely(PyDict_CheckExact(__pyx_v_x))) {
__pyx_t_1 = PyDict_Copy(__pyx_v_x); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2444, __pyx_L22_error)
__Pyx_GOTREF(__pyx_t_1);
} else {
__pyx_t_1 = __Pyx_PyObject_CallOneArg((PyObject*)&PyDict_Type, __pyx_v_x); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2444, __pyx_L22_error)
__Pyx_GOTREF(__pyx_t_1);
}
__pyx_t_2 = __Pyx_PyObject_Call(__pyx_v_t, __pyx_mstate_global->__pyx_empty_tuple, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2444, __pyx_L22_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_t_16 = __Pyx_PyList_Append(__pyx_v_result, __pyx_t_2); if (unlikely(__pyx_t_16 == ((int)-1))) __PYX_ERR(0, 2444, __pyx_L22_error)
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+2445: elif isinstance(x, (list, tuple)):
__pyx_t_5 = PyList_Check(__pyx_v_x); if (!__pyx_t_5) { } else { __pyx_t_6 = __pyx_t_5; goto __pyx_L32_bool_binop_done; } __pyx_t_5 = PyTuple_Check(__pyx_v_x); __pyx_t_6 = __pyx_t_5; __pyx_L32_bool_binop_done:; if (__pyx_t_6) { /* … */ goto __pyx_L31; }
+2446: result.append(t(*x))
__pyx_t_2 = __Pyx_PySequence_Tuple(__pyx_v_x); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2446, __pyx_L22_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_1 = __Pyx_PyObject_Call(__pyx_v_t, __pyx_t_2, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2446, __pyx_L22_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_16 = __Pyx_PyList_Append(__pyx_v_result, __pyx_t_1); if (unlikely(__pyx_t_16 == ((int)-1))) __PYX_ERR(0, 2446, __pyx_L22_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
2447: else:
+2448: result.append(t())
/*else*/ {
__pyx_t_2 = NULL;
__Pyx_INCREF(__pyx_v_t);
__pyx_t_10 = __pyx_v_t;
__pyx_t_4 = 1;
#if CYTHON_UNPACK_METHODS
if (unlikely(PyMethod_Check(__pyx_t_10))) {
__pyx_t_2 = PyMethod_GET_SELF(__pyx_t_10);
assert(__pyx_t_2);
PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_10);
__Pyx_INCREF(__pyx_t_2);
__Pyx_INCREF(__pyx__function);
__Pyx_DECREF_SET(__pyx_t_10, __pyx__function);
__pyx_t_4 = 0;
}
#endif
{
PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL};
__pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_10, __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_10); __pyx_t_10 = 0;
if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2448, __pyx_L22_error)
__Pyx_GOTREF(__pyx_t_1);
}
__pyx_t_16 = __Pyx_PyList_Append(__pyx_v_result, __pyx_t_1); if (unlikely(__pyx_t_16 == ((int)-1))) __PYX_ERR(0, 2448, __pyx_L22_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
}
__pyx_L31:;
+2449: return result
{
PyObject *__pyx_temp;
{
__pyx_temp = __pyx_r;
__Pyx_INCREF(__pyx_v_result);
__pyx_r = __pyx_v_result;
}
__Pyx_XDECREF(__pyx_temp);
}
goto __pyx_L26_try_return;
2450: else:
+2451: return data
/*else*/ {
{
PyObject *__pyx_temp;
{
__pyx_temp = __pyx_r;
__Pyx_INCREF(__pyx_v_data);
__pyx_r = __pyx_v_data;
}
__Pyx_XDECREF(__pyx_temp);
}
goto __pyx_L26_try_return;
}
+2452: except AttributeError:
__pyx_t_9 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(((PyTypeObject*)PyExc_AttributeError)))); if (__pyx_t_9) { __Pyx_ErrRestore(0,0,0);
+2453: return data # data -as is-
{
PyObject *__pyx_temp;
{
__pyx_temp = __pyx_r;
__Pyx_INCREF(__pyx_v_data);
__pyx_r = __pyx_v_data;
}
__Pyx_XDECREF(__pyx_temp);
}
goto __pyx_L25_except_return;
}
goto __pyx_L24_except_error;
+2454: elif is_dc(arg_type):
__pyx_t_6 = __pyx_f_9datamodel_10converters_is_dc(__pyx_v_arg_type); if (unlikely(__pyx_t_6 == ((int)-1) && PyErr_Occurred())) __PYX_ERR(0, 2454, __pyx_L1_error) if (__pyx_t_6) { /* … */ }
+2455: if isinstance(data, list):
__pyx_t_6 = PyList_Check(__pyx_v_data);
if (__pyx_t_6) {
/* … */
}
+2456: result = []
__pyx_t_3 = PyList_New(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2456, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_v_result = ((PyObject*)__pyx_t_3); __pyx_t_3 = 0;
+2457: for d in data:
if (likely(PyList_CheckExact(__pyx_v_data)) || PyTuple_CheckExact(__pyx_v_data)) { __pyx_t_3 = __pyx_v_data; __Pyx_INCREF(__pyx_t_3); __pyx_t_8 = 0; __pyx_t_15 = NULL; } else { __pyx_t_8 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_v_data); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2457, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_15 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_3); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2457, __pyx_L1_error) } for (;;) { if (likely(!__pyx_t_15)) { if (likely(PyList_CheckExact(__pyx_t_3))) { { 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, 2457, __pyx_L1_error) #endif if (__pyx_t_8 >= __pyx_temp) break; } __pyx_t_1 = __Pyx_PyList_GET_ITEM_REF(__pyx_t_3, __pyx_t_8, __Pyx_ReferenceSharing_OwnStrongReference); ++__pyx_t_8; } else { { 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, 2457, __pyx_L1_error) #endif if (__pyx_t_8 >= __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_8)); #else __pyx_t_1 = __Pyx_PySequence_ITEM(__pyx_t_3, __pyx_t_8); #endif ++__pyx_t_8; } if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2457, __pyx_L1_error) } else { __pyx_t_1 = __pyx_t_15(__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, 2457, __pyx_L1_error) PyErr_Clear(); } break; } } __Pyx_GOTREF(__pyx_t_1); __Pyx_XDECREF_SET(__pyx_v_d, __pyx_t_1); __pyx_t_1 = 0; /* … */ } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
2458: # is already a dataclass:
+2459: if is_dc(d):
__pyx_t_6 = __pyx_f_9datamodel_10converters_is_dc(__pyx_v_d); if (unlikely(__pyx_t_6 == ((int)-1) && PyErr_Occurred())) __PYX_ERR(0, 2459, __pyx_L1_error) if (__pyx_t_6) { /* … */ goto __pyx_L40; }
+2460: result.append(d)
__pyx_t_16 = __Pyx_PyList_Append(__pyx_v_result, __pyx_v_d); if (unlikely(__pyx_t_16 == ((int)-1))) __PYX_ERR(0, 2460, __pyx_L1_error)
+2461: elif isinstance(d, list):
__pyx_t_6 = PyList_Check(__pyx_v_d);
if (__pyx_t_6) {
/* … */
goto __pyx_L40;
}
+2462: result.append(arg_type(*d))
__pyx_t_1 = __Pyx_PySequence_Tuple(__pyx_v_d); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2462, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_10 = __Pyx_PyObject_Call(__pyx_v_arg_type, __pyx_t_1, NULL); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2462, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_16 = __Pyx_PyList_Append(__pyx_v_result, __pyx_t_10); if (unlikely(__pyx_t_16 == ((int)-1))) __PYX_ERR(0, 2462, __pyx_L1_error) __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
+2463: elif isinstance(d, dict):
__pyx_t_6 = PyDict_Check(__pyx_v_d);
if (__pyx_t_6) {
/* … */
goto __pyx_L40;
}
+2464: result.append(arg_type(**d))
if (unlikely(__pyx_v_d == Py_None)) {
PyErr_SetString(PyExc_TypeError, "argument after ** must be a mapping, not NoneType");
__PYX_ERR(0, 2464, __pyx_L1_error)
}
if (likely(PyDict_CheckExact(__pyx_v_d))) {
__pyx_t_10 = PyDict_Copy(__pyx_v_d); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2464, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_10);
} else {
__pyx_t_10 = __Pyx_PyObject_CallOneArg((PyObject*)&PyDict_Type, __pyx_v_d); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2464, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_10);
}
__pyx_t_1 = __Pyx_PyObject_Call(__pyx_v_arg_type, __pyx_mstate_global->__pyx_empty_tuple, __pyx_t_10); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2464, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
__pyx_t_16 = __Pyx_PyList_Append(__pyx_v_result, __pyx_t_1); if (unlikely(__pyx_t_16 == ((int)-1))) __PYX_ERR(0, 2464, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
2465: else:
+2466: result.append(arg_type(d))
/*else*/ {
__pyx_t_10 = NULL;
__Pyx_INCREF(__pyx_v_arg_type);
__pyx_t_2 = __pyx_v_arg_type;
__pyx_t_4 = 1;
#if CYTHON_UNPACK_METHODS
if (unlikely(PyMethod_Check(__pyx_t_2))) {
__pyx_t_10 = PyMethod_GET_SELF(__pyx_t_2);
assert(__pyx_t_10);
PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_2);
__Pyx_INCREF(__pyx_t_10);
__Pyx_INCREF(__pyx__function);
__Pyx_DECREF_SET(__pyx_t_2, __pyx__function);
__pyx_t_4 = 0;
}
#endif
{
PyObject *__pyx_callargs[2] = {__pyx_t_10, __pyx_v_d};
__pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_2, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
__Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2466, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
}
__pyx_t_16 = __Pyx_PyList_Append(__pyx_v_result, __pyx_t_1); if (unlikely(__pyx_t_16 == ((int)-1))) __PYX_ERR(0, 2466, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
}
__pyx_L40:;
+2467: return result
if (unlikely(!__pyx_v_result)) { __Pyx_RaiseUnboundLocalError("result"); __PYX_ERR(0, 2467, __pyx_L1_error) }
{
PyObject *__pyx_temp;
{
__pyx_temp = __pyx_r;
__Pyx_INCREF(__pyx_v_result);
__pyx_r = __pyx_v_result;
}
__Pyx_XDECREF(__pyx_temp);
}
goto __pyx_L0;
2468: else:
+2469: result = []
/*else*/ {
__pyx_t_3 = PyList_New(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2469, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_v_result = ((PyObject*)__pyx_t_3);
__pyx_t_3 = 0;
+2470: if is_iterable(data):
__pyx_t_1 = NULL;
__Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_is_iterable); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2470, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_4 = 1;
#if CYTHON_UNPACK_METHODS
if (unlikely(PyMethod_Check(__pyx_t_2))) {
__pyx_t_1 = PyMethod_GET_SELF(__pyx_t_2);
assert(__pyx_t_1);
PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_2);
__Pyx_INCREF(__pyx_t_1);
__Pyx_INCREF(__pyx__function);
__Pyx_DECREF_SET(__pyx_t_2, __pyx__function);
__pyx_t_4 = 0;
}
#endif
{
PyObject *__pyx_callargs[2] = {__pyx_t_1, __pyx_v_data};
__pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_2, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
__Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2470, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
}
__pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(0, 2470, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
if (__pyx_t_6) {
/* … */
}
+2471: for item in data:
if (likely(PyList_CheckExact(__pyx_v_data)) || PyTuple_CheckExact(__pyx_v_data)) { __pyx_t_3 = __pyx_v_data; __Pyx_INCREF(__pyx_t_3); __pyx_t_8 = 0; __pyx_t_15 = NULL; } else { __pyx_t_8 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_v_data); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2471, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_15 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_3); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2471, __pyx_L1_error) } for (;;) { if (likely(!__pyx_t_15)) { if (likely(PyList_CheckExact(__pyx_t_3))) { { 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, 2471, __pyx_L1_error) #endif if (__pyx_t_8 >= __pyx_temp) break; } __pyx_t_2 = __Pyx_PyList_GET_ITEM_REF(__pyx_t_3, __pyx_t_8, __Pyx_ReferenceSharing_OwnStrongReference); ++__pyx_t_8; } else { { 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, 2471, __pyx_L1_error) #endif if (__pyx_t_8 >= __pyx_temp) break; } #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_2 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_8)); #else __pyx_t_2 = __Pyx_PySequence_ITEM(__pyx_t_3, __pyx_t_8); #endif ++__pyx_t_8; } if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2471, __pyx_L1_error) } else { __pyx_t_2 = __pyx_t_15(__pyx_t_3); 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, 2471, __pyx_L1_error) PyErr_Clear(); } break; } } __Pyx_GOTREF(__pyx_t_2); __Pyx_XDECREF_SET(__pyx_v_item, __pyx_t_2); __pyx_t_2 = 0; /* … */ } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
2472: # escalar value:
+2473: converted_item = parse_type(field, arg_type, item, encoder)
__pyx_t_17.__pyx_n = 1;
__pyx_t_17.encoder = __pyx_v_encoder;
__pyx_t_2 = __pyx_f_9datamodel_10converters_parse_type(__pyx_v_field, __pyx_v_arg_type, __pyx_v_item, 0, &__pyx_t_17); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2473, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_XDECREF_SET(__pyx_v_converted_item, __pyx_t_2);
__pyx_t_2 = 0;
+2474: result.append(converted_item)
__pyx_t_16 = __Pyx_PyList_Append(__pyx_v_result, __pyx_v_converted_item); if (unlikely(__pyx_t_16 == ((int)-1))) __PYX_ERR(0, 2474, __pyx_L1_error)
+2475: return result
{
PyObject *__pyx_temp;
{
__pyx_temp = __pyx_r;
__Pyx_INCREF(__pyx_v_result);
__pyx_r = __pyx_v_result;
}
__Pyx_XDECREF(__pyx_temp);
}
goto __pyx_L0;
+2476: return data
{
PyObject *__pyx_temp;
{
__pyx_temp = __pyx_r;
__Pyx_INCREF(__pyx_v_data);
__pyx_r = __pyx_v_data;
}
__Pyx_XDECREF(__pyx_temp);
}
goto __pyx_L0;
}
+2477: elif type_name is None or type_name in ('Optional', 'Union'):
__pyx_t_5 = (__pyx_v_type_name == ((PyObject*)Py_None));
if (!__pyx_t_5) {
} else {
__pyx_t_6 = __pyx_t_5;
goto __pyx_L46_bool_binop_done;
}
__Pyx_INCREF(__pyx_v_type_name);
__pyx_t_18 = __pyx_v_type_name;
__pyx_t_19 = __Pyx_PyObject_CompareBoolEq_str_str(__pyx_t_18, __pyx_mstate_global->__pyx_n_u_Optional, Py_EQ); if (unlikely((__pyx_t_19 < 0))) __PYX_ERR(0, 2477, __pyx_L1_error)
if (!__pyx_t_19) {
} else {
__pyx_t_5 = __pyx_t_19;
goto __pyx_L48_bool_binop_done;
}
__pyx_t_19 = __Pyx_PyObject_CompareBoolEq_str_str(__pyx_t_18, __pyx_mstate_global->__pyx_n_u_Union, Py_EQ); if (unlikely((__pyx_t_19 < 0))) __PYX_ERR(0, 2477, __pyx_L1_error)
__pyx_t_5 = __pyx_t_19;
__pyx_L48_bool_binop_done:;
__Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
__pyx_t_19 = __pyx_t_5;
__pyx_t_6 = __pyx_t_19;
__pyx_L46_bool_binop_done:;
if (__pyx_t_6) {
/* … */
}
__pyx_L8:;
+2478: args = get_args(T)
__pyx_t_2 = NULL;
__Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_get_args); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2478, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_4 = 1;
#if CYTHON_UNPACK_METHODS
if (unlikely(PyMethod_Check(__pyx_t_1))) {
__pyx_t_2 = PyMethod_GET_SELF(__pyx_t_1);
assert(__pyx_t_2);
PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_1);
__Pyx_INCREF(__pyx_t_2);
__Pyx_INCREF(__pyx__function);
__Pyx_DECREF_SET(__pyx_t_1, __pyx__function);
__pyx_t_4 = 0;
}
#endif
{
PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_v_T};
__pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_1, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
__Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2478, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
}
if (!(likely(PyTuple_CheckExact(__pyx_t_3))||((__pyx_t_3) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_t_3))) __PYX_ERR(0, 2478, __pyx_L1_error)
__Pyx_DECREF_SET(__pyx_v_args, ((PyObject*)__pyx_t_3));
__pyx_t_3 = 0;
2479: # Handling Optional types
+2480: if origin == Union and type(None) in args:
__Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_Union); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2480, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_19 = __Pyx_PyObject_CompareBoolEq_object_object(__pyx_v_origin, __pyx_t_3, Py_EQ); if (unlikely((__pyx_t_19 < 0))) __PYX_ERR(0, 2480, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (__pyx_t_19) { } else { __pyx_t_6 = __pyx_t_19; goto __pyx_L51_bool_binop_done; } __pyx_t_19 = (__Pyx_PySequence_ContainsTF(((PyObject *)Py_TYPE(Py_None)), __pyx_v_args, Py_EQ)); if (unlikely((__pyx_t_19 < 0))) __PYX_ERR(0, 2480, __pyx_L1_error) __pyx_t_6 = __pyx_t_19; __pyx_L51_bool_binop_done:; if (__pyx_t_6) { /* … */ }
+2481: if data is None:
__pyx_t_6 = (__pyx_v_data == Py_None);
if (__pyx_t_6) {
/* … */
}
+2482: return None
{
PyObject *__pyx_temp;
{
__pyx_temp = __pyx_r;
__pyx_r = Py_None; __Pyx_INCREF(Py_None);
}
__Pyx_XDECREF(__pyx_temp);
}
goto __pyx_L0;
2483: # Determine the non-None type.
+2484: non_none_arg = args[0] if args[1] is type(None) else args[1]
if (unlikely(__pyx_v_args == Py_None)) {
PyErr_SetString(PyExc_TypeError, "\047NoneType\047 object is not subscriptable");
__PYX_ERR(0, 2484, __pyx_L1_error)
}
__pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v_args, 1, long, 1, __Pyx_PyLong_From_long, 0, 1, 1, __Pyx_ReferenceSharing_OwnStrongReference); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2484, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_6 = (__pyx_t_1 == ((PyObject *)Py_TYPE(Py_None)));
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
if (__pyx_t_6) {
if (unlikely(__pyx_v_args == Py_None)) {
PyErr_SetString(PyExc_TypeError, "\047NoneType\047 object is not subscriptable");
__PYX_ERR(0, 2484, __pyx_L1_error)
}
__pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v_args, 0, long, 1, __Pyx_PyLong_From_long, 0, 1, 1, __Pyx_ReferenceSharing_OwnStrongReference); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2484, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_3 = __pyx_t_1;
__pyx_t_1 = 0;
} else {
if (unlikely(__pyx_v_args == Py_None)) {
PyErr_SetString(PyExc_TypeError, "\047NoneType\047 object is not subscriptable");
__PYX_ERR(0, 2484, __pyx_L1_error)
}
__pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v_args, 1, long, 1, __Pyx_PyLong_From_long, 0, 1, 1, __Pyx_ReferenceSharing_OwnStrongReference); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2484, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_3 = __pyx_t_1;
__pyx_t_1 = 0;
}
__pyx_v_non_none_arg = __pyx_t_3;
__pyx_t_3 = 0;
+2485: if non_none_arg == list:
__pyx_t_6 = __Pyx_PyObject_RichCompareBool(__pyx_v_non_none_arg, ((PyObject *)(&PyList_Type)), Py_EQ); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(0, 2485, __pyx_L1_error) if (__pyx_t_6) { /* … */ }
+2486: field.args = args
if (__Pyx_PyObject_SetAttrStr(__pyx_v_field, __pyx_mstate_global->__pyx_n_u_args_2, __pyx_v_args) < (0)) __PYX_ERR(0, 2486, __pyx_L1_error)
+2487: field.origin = get_origin(non_none_arg)
__pyx_t_1 = NULL;
__Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_get_origin); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2487, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_4 = 1;
#if CYTHON_UNPACK_METHODS
if (unlikely(PyMethod_Check(__pyx_t_2))) {
__pyx_t_1 = PyMethod_GET_SELF(__pyx_t_2);
assert(__pyx_t_1);
PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_2);
__Pyx_INCREF(__pyx_t_1);
__Pyx_INCREF(__pyx__function);
__Pyx_DECREF_SET(__pyx_t_2, __pyx__function);
__pyx_t_4 = 0;
}
#endif
{
PyObject *__pyx_callargs[2] = {__pyx_t_1, __pyx_v_non_none_arg};
__pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_2, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
__Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2487, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
}
if (__Pyx_PyObject_SetAttrStr(__pyx_v_field, __pyx_mstate_global->__pyx_n_u_origin_2, __pyx_t_3) < (0)) __PYX_ERR(0, 2487, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+2488: if isinstance(data, (list, str, dict)):
__pyx_t_19 = PyList_Check(__pyx_v_data); if (!__pyx_t_19) { } else { __pyx_t_6 = __pyx_t_19; goto __pyx_L56_bool_binop_done; } __pyx_t_19 = PyUnicode_Check(__pyx_v_data); if (!__pyx_t_19) { } else { __pyx_t_6 = __pyx_t_19; goto __pyx_L56_bool_binop_done; } __pyx_t_19 = PyDict_Check(__pyx_v_data); __pyx_t_6 = __pyx_t_19; __pyx_L56_bool_binop_done:; if (likely(__pyx_t_6)) { /* … */ }
+2489: return _parse_builtin_type(field, non_none_arg, data, encoder)
__pyx_t_3 = __pyx_f_9datamodel_10converters__parse_builtin_type(__pyx_v_field, __pyx_v_non_none_arg, __pyx_v_data, __pyx_v_encoder); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2489, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; __pyx_r = __pyx_t_3; } __Pyx_XDECREF(__pyx_temp); } __pyx_t_3 = 0; goto __pyx_L0;
2490: else:
+2491: raise ValueError(f"Unsupported type for List in Optional: {type(data)}")
/*else*/ {
__pyx_t_2 = NULL;
__pyx_t_1 = __Pyx_PyObject_FormatSimple(((PyObject *)Py_TYPE(__pyx_v_data)), __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2491, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_10 = __Pyx_PyUnicode_Concat(__pyx_mstate_global->__pyx_kp_u_Unsupported_type_for_List_in_Opt, __pyx_t_1); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2491, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_10);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_t_4 = 1;
{
PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_10};
__pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)(((PyTypeObject*)PyExc_ValueError)), __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (__pyx_t_4*__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_3)) __PYX_ERR(0, 2491, __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, 2491, __pyx_L1_error)
}
2492: # If the non-None type is exactly dict, return the dict as is.
+2493: if non_none_arg is dict:
__pyx_t_6 = (__pyx_v_non_none_arg == ((PyObject *)(&PyDict_Type)));
if (__pyx_t_6) {
/* … */
}
+2494: return data
{
PyObject *__pyx_temp;
{
__pyx_temp = __pyx_r;
__Pyx_INCREF(__pyx_v_data);
__pyx_r = __pyx_v_data;
}
__Pyx_XDECREF(__pyx_temp);
}
goto __pyx_L0;
2495: # Otherwise, recursively parse using the non-None type.
+2496: field.args = args
if (__Pyx_PyObject_SetAttrStr(__pyx_v_field, __pyx_mstate_global->__pyx_n_u_args_2, __pyx_v_args) < (0)) __PYX_ERR(0, 2496, __pyx_L1_error)
+2497: field.origin = get_origin(non_none_arg)
__pyx_t_10 = NULL;
__Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_get_origin); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2497, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_4 = 1;
#if CYTHON_UNPACK_METHODS
if (unlikely(PyMethod_Check(__pyx_t_2))) {
__pyx_t_10 = PyMethod_GET_SELF(__pyx_t_2);
assert(__pyx_t_10);
PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_2);
__Pyx_INCREF(__pyx_t_10);
__Pyx_INCREF(__pyx__function);
__Pyx_DECREF_SET(__pyx_t_2, __pyx__function);
__pyx_t_4 = 0;
}
#endif
{
PyObject *__pyx_callargs[2] = {__pyx_t_10, __pyx_v_non_none_arg};
__pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_2, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
__Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2497, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
}
if (__Pyx_PyObject_SetAttrStr(__pyx_v_field, __pyx_mstate_global->__pyx_n_u_origin_2, __pyx_t_3) < (0)) __PYX_ERR(0, 2497, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+2498: return parse_type(field, non_none_arg, data, encoder)
__pyx_t_17.__pyx_n = 1;
__pyx_t_17.encoder = __pyx_v_encoder;
__pyx_t_3 = __pyx_f_9datamodel_10converters_parse_type(__pyx_v_field, __pyx_v_non_none_arg, __pyx_v_data, 0, &__pyx_t_17); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2498, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
{
PyObject *__pyx_temp;
{
__pyx_temp = __pyx_r;
__pyx_r = __pyx_t_3;
}
__Pyx_XDECREF(__pyx_temp);
}
__pyx_t_3 = 0;
goto __pyx_L0;
+2499: try:
{
/*try:*/ {
/* … */
}
__pyx_L60_error:;
__Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
__Pyx_XDECREF(__pyx_t_18); __pyx_t_18 = 0;
__Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_XDECREF(__pyx_t_26); __pyx_t_26 = 0;
__Pyx_XDECREF(__pyx_t_27); __pyx_t_27 = 0;
__Pyx_XDECREF(__pyx_t_28); __pyx_t_28 = 0;
__Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_XDECREF(__pyx_t_30); __pyx_t_30 = 0;
/* … */
__pyx_L62_except_error:;
__Pyx_XGIVEREF(__pyx_t_14);
__Pyx_XGIVEREF(__pyx_t_13);
__Pyx_XGIVEREF(__pyx_t_12);
__Pyx_ExceptionReset(__pyx_t_14, __pyx_t_13, __pyx_t_12);
goto __pyx_L1_error;
__pyx_L64_try_return:;
__Pyx_XGIVEREF(__pyx_t_14);
__Pyx_XGIVEREF(__pyx_t_13);
__Pyx_XGIVEREF(__pyx_t_12);
__Pyx_ExceptionReset(__pyx_t_14, __pyx_t_13, __pyx_t_12);
goto __pyx_L0;
__pyx_L61_exception_handled:;
__Pyx_XGIVEREF(__pyx_t_14);
__Pyx_XGIVEREF(__pyx_t_13);
__Pyx_XGIVEREF(__pyx_t_12);
__Pyx_ExceptionReset(__pyx_t_14, __pyx_t_13, __pyx_t_12);
}
+2500: t = args[0]
if (unlikely(__pyx_v_args == Py_None)) {
PyErr_SetString(PyExc_TypeError, "\047NoneType\047 object is not subscriptable");
__PYX_ERR(0, 2500, __pyx_L60_error)
}
__pyx_t_3 = __Pyx_GetItemInt_Tuple(__pyx_v_args, 0, long, 1, __Pyx_PyLong_From_long, 0, 1, 1, __Pyx_ReferenceSharing_OwnStrongReference); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2500, __pyx_L60_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_v_t = __pyx_t_3;
__pyx_t_3 = 0;
+2501: if is_dc(t):
__pyx_t_6 = __pyx_f_9datamodel_10converters_is_dc(__pyx_v_t); if (unlikely(__pyx_t_6 == ((int)-1) && PyErr_Occurred())) __PYX_ERR(0, 2501, __pyx_L60_error) if (__pyx_t_6) { /* … */ goto __pyx_L66; }
+2502: if isinstance(data, dict):
__pyx_t_6 = PyDict_Check(__pyx_v_data);
if (__pyx_t_6) {
/* … */
goto __pyx_L67;
}
+2503: data = t(**data)
if (unlikely(__pyx_v_data == Py_None)) {
PyErr_SetString(PyExc_TypeError, "argument after ** must be a mapping, not NoneType");
__PYX_ERR(0, 2503, __pyx_L60_error)
}
if (likely(PyDict_CheckExact(__pyx_v_data))) {
__pyx_t_3 = PyDict_Copy(__pyx_v_data); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2503, __pyx_L60_error)
__Pyx_GOTREF(__pyx_t_3);
} else {
__pyx_t_3 = __Pyx_PyObject_CallOneArg((PyObject*)&PyDict_Type, __pyx_v_data); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2503, __pyx_L60_error)
__Pyx_GOTREF(__pyx_t_3);
}
__pyx_t_2 = __Pyx_PyObject_Call(__pyx_v_t, __pyx_mstate_global->__pyx_empty_tuple, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2503, __pyx_L60_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_DECREF_SET(__pyx_v_data, __pyx_t_2);
__pyx_t_2 = 0;
+2504: elif isinstance(data, (list, tuple)):
__pyx_t_19 = PyList_Check(__pyx_v_data); if (!__pyx_t_19) { } else { __pyx_t_6 = __pyx_t_19; goto __pyx_L68_bool_binop_done; } __pyx_t_19 = PyTuple_Check(__pyx_v_data); __pyx_t_6 = __pyx_t_19; __pyx_L68_bool_binop_done:; if (__pyx_t_6) { /* … */ goto __pyx_L67; }
+2505: data = t(*data)
__pyx_t_2 = __Pyx_PySequence_Tuple(__pyx_v_data); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2505, __pyx_L60_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = __Pyx_PyObject_Call(__pyx_v_t, __pyx_t_2, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2505, __pyx_L60_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF_SET(__pyx_v_data, __pyx_t_3); __pyx_t_3 = 0;
2506: else:
2507: ## is already a dataclass, returning
+2508: return data
/*else*/ {
{
PyObject *__pyx_temp;
{
__pyx_temp = __pyx_r;
__Pyx_INCREF(__pyx_v_data);
__pyx_r = __pyx_v_data;
}
__Pyx_XDECREF(__pyx_temp);
}
goto __pyx_L64_try_return;
}
__pyx_L67:;
+2509: elif callable(t):
__pyx_t_6 = __Pyx_PyCallable_Check(__pyx_v_t); if (unlikely(__pyx_t_6 == ((int)-1))) __PYX_ERR(0, 2509, __pyx_L60_error) if (__pyx_t_6) { /* … */ } __pyx_L66:;
+2510: if t.__module__ == 'typing': # nested typing
__pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_t, __pyx_mstate_global->__pyx_n_u_module); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2510, __pyx_L60_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_6 = __Pyx_PyObject_CompareBoolEq_object_str(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_typing, Py_EQ); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(0, 2510, __pyx_L60_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (__pyx_t_6) { /* … */ }
2511: # there is also a nested typing:
+2512: if t._name == 'List' and isinstance(data, list):
__pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_t, __pyx_mstate_global->__pyx_n_u_name_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2512, __pyx_L60_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_19 = __Pyx_PyObject_CompareBoolEq_object_str(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_List, Py_EQ); if (unlikely((__pyx_t_19 < 0))) __PYX_ERR(0, 2512, __pyx_L60_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (__pyx_t_19) { } else { __pyx_t_6 = __pyx_t_19; goto __pyx_L72_bool_binop_done; } __pyx_t_19 = PyList_Check(__pyx_v_data); __pyx_t_6 = __pyx_t_19; __pyx_L72_bool_binop_done:; if (__pyx_t_6) { /* … */ }
+2513: arg = t.__args__[0]
__pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_t, __pyx_mstate_global->__pyx_n_u_args); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2513, __pyx_L60_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_2 = __Pyx_GetItemInt(__pyx_t_3, 0, long, 1, __Pyx_PyLong_From_long, 0, 1, 1, __Pyx_ReferenceSharing_OwnStrongReference); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2513, __pyx_L60_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_v_arg = __pyx_t_2; __pyx_t_2 = 0;
+2514: if is_dc(arg):
__pyx_t_6 = __pyx_f_9datamodel_10converters_is_dc(__pyx_v_arg); if (unlikely(__pyx_t_6 == ((int)-1) && PyErr_Occurred())) __PYX_ERR(0, 2514, __pyx_L60_error) if (__pyx_t_6) { /* … */ }
+2515: result = []
__pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2515, __pyx_L60_error) __Pyx_GOTREF(__pyx_t_2); __pyx_v_result = ((PyObject*)__pyx_t_2); __pyx_t_2 = 0;
+2516: for x in data:
if (likely(PyList_CheckExact(__pyx_v_data)) || PyTuple_CheckExact(__pyx_v_data)) { __pyx_t_2 = __pyx_v_data; __Pyx_INCREF(__pyx_t_2); __pyx_t_8 = 0; __pyx_t_15 = NULL; } else { __pyx_t_8 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_v_data); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2516, __pyx_L60_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, 2516, __pyx_L60_error) } for (;;) { if (likely(!__pyx_t_15)) { if (likely(PyList_CheckExact(__pyx_t_2))) { { 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, 2516, __pyx_L60_error) #endif if (__pyx_t_8 >= __pyx_temp) break; } __pyx_t_3 = __Pyx_PyList_GET_ITEM_REF(__pyx_t_2, __pyx_t_8, __Pyx_ReferenceSharing_OwnStrongReference); ++__pyx_t_8; } else { { 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, 2516, __pyx_L60_error) #endif if (__pyx_t_8 >= __pyx_temp) break; } #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_3 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_8)); #else __pyx_t_3 = __Pyx_PySequence_ITEM(__pyx_t_2, __pyx_t_8); #endif ++__pyx_t_8; } if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2516, __pyx_L60_error) } else { __pyx_t_3 = __pyx_t_15(__pyx_t_2); 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, 2516, __pyx_L60_error) PyErr_Clear(); } break; } } __Pyx_GOTREF(__pyx_t_3); __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_3); __pyx_t_3 = 0; /* … */ } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+2517: if isinstance(x, dict):
__pyx_t_6 = PyDict_Check(__pyx_v_x);
if (__pyx_t_6) {
/* … */
goto __pyx_L77;
}
+2518: result.append(arg(**x))
if (unlikely(__pyx_v_x == Py_None)) {
PyErr_SetString(PyExc_TypeError, "argument after ** must be a mapping, not NoneType");
__PYX_ERR(0, 2518, __pyx_L60_error)
}
if (likely(PyDict_CheckExact(__pyx_v_x))) {
__pyx_t_3 = PyDict_Copy(__pyx_v_x); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2518, __pyx_L60_error)
__Pyx_GOTREF(__pyx_t_3);
} else {
__pyx_t_3 = __Pyx_PyObject_CallOneArg((PyObject*)&PyDict_Type, __pyx_v_x); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2518, __pyx_L60_error)
__Pyx_GOTREF(__pyx_t_3);
}
__pyx_t_10 = __Pyx_PyObject_Call(__pyx_v_arg, __pyx_mstate_global->__pyx_empty_tuple, __pyx_t_3); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2518, __pyx_L60_error)
__Pyx_GOTREF(__pyx_t_10);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__pyx_t_16 = __Pyx_PyList_Append(__pyx_v_result, __pyx_t_10); if (unlikely(__pyx_t_16 == ((int)-1))) __PYX_ERR(0, 2518, __pyx_L60_error)
__Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
2519: else:
+2520: result.append(arg(*x))
/*else*/ {
__pyx_t_10 = __Pyx_PySequence_Tuple(__pyx_v_x); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2520, __pyx_L60_error)
__Pyx_GOTREF(__pyx_t_10);
__pyx_t_3 = __Pyx_PyObject_Call(__pyx_v_arg, __pyx_t_10, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2520, __pyx_L60_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
__pyx_t_16 = __Pyx_PyList_Append(__pyx_v_result, __pyx_t_3); if (unlikely(__pyx_t_16 == ((int)-1))) __PYX_ERR(0, 2520, __pyx_L60_error)
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
}
__pyx_L77:;
+2521: return result
{
PyObject *__pyx_temp;
{
__pyx_temp = __pyx_r;
__Pyx_INCREF(__pyx_v_result);
__pyx_r = __pyx_v_result;
}
__Pyx_XDECREF(__pyx_temp);
}
goto __pyx_L64_try_return;
+2522: return data
{
PyObject *__pyx_temp;
{
__pyx_temp = __pyx_r;
__Pyx_INCREF(__pyx_v_data);
__pyx_r = __pyx_v_data;
}
__Pyx_XDECREF(__pyx_temp);
}
goto __pyx_L64_try_return;
2523: else:
+2524: try:
/*else*/ {
{
/*try:*/ {
/* … */
}
__Pyx_XDECREF(__pyx_t_20); __pyx_t_20 = 0;
__Pyx_XDECREF(__pyx_t_21); __pyx_t_21 = 0;
__Pyx_XDECREF(__pyx_t_22); __pyx_t_22 = 0;
goto __pyx_L84_try_end;
__pyx_L79_error:;
__Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
__Pyx_XDECREF(__pyx_t_18); __pyx_t_18 = 0;
__Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_XDECREF(__pyx_t_26); __pyx_t_26 = 0;
__Pyx_XDECREF(__pyx_t_27); __pyx_t_27 = 0;
__Pyx_XDECREF(__pyx_t_28); __pyx_t_28 = 0;
__Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_XDECREF(__pyx_t_30); __pyx_t_30 = 0;
/* … */
__pyx_L81_except_error:;
__Pyx_XGIVEREF(__pyx_t_20);
__Pyx_XGIVEREF(__pyx_t_21);
__Pyx_XGIVEREF(__pyx_t_22);
__Pyx_ExceptionReset(__pyx_t_20, __pyx_t_21, __pyx_t_22);
goto __pyx_L60_error;
__pyx_L83_try_return:;
__Pyx_XGIVEREF(__pyx_t_20);
__Pyx_XGIVEREF(__pyx_t_21);
__Pyx_XGIVEREF(__pyx_t_22);
__Pyx_ExceptionReset(__pyx_t_20, __pyx_t_21, __pyx_t_22);
goto __pyx_L64_try_return;
__pyx_L80_exception_handled:;
__Pyx_XGIVEREF(__pyx_t_20);
__Pyx_XGIVEREF(__pyx_t_21);
__Pyx_XGIVEREF(__pyx_t_22);
__Pyx_ExceptionReset(__pyx_t_20, __pyx_t_21, __pyx_t_22);
__pyx_L84_try_end:;
}
}
+2525: if t == str:
__pyx_t_6 = __Pyx_PyObject_RichCompareBool(__pyx_v_t, ((PyObject *)(&PyUnicode_Type)), Py_EQ); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(0, 2525, __pyx_L79_error) if (__pyx_t_6) { /* … */ }
+2526: return data
{
PyObject *__pyx_temp;
{
__pyx_temp = __pyx_r;
__Pyx_INCREF(__pyx_v_data);
__pyx_r = __pyx_v_data;
}
__Pyx_XDECREF(__pyx_temp);
}
goto __pyx_L83_try_return;
+2527: fn = encoders[t]
__Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_encoders); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2527, __pyx_L79_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = __Pyx_PyObject_GetItem(__pyx_t_2, __pyx_v_t); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2527, __pyx_L79_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_v_fn = __pyx_t_3; __pyx_t_3 = 0;
+2528: try:
{
/*try:*/ {
/* … */
}
__Pyx_XDECREF(__pyx_t_23); __pyx_t_23 = 0;
__Pyx_XDECREF(__pyx_t_24); __pyx_t_24 = 0;
__Pyx_XDECREF(__pyx_t_25); __pyx_t_25 = 0;
goto __pyx_L91_try_end;
__pyx_L86_error:;
__Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
__Pyx_XDECREF(__pyx_t_18); __pyx_t_18 = 0;
__Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
/* … */
__pyx_L88_except_error:;
__Pyx_XGIVEREF(__pyx_t_23);
__Pyx_XGIVEREF(__pyx_t_24);
__Pyx_XGIVEREF(__pyx_t_25);
__Pyx_ExceptionReset(__pyx_t_23, __pyx_t_24, __pyx_t_25);
goto __pyx_L79_error;
__pyx_L87_exception_handled:;
__Pyx_XGIVEREF(__pyx_t_23);
__Pyx_XGIVEREF(__pyx_t_24);
__Pyx_XGIVEREF(__pyx_t_25);
__Pyx_ExceptionReset(__pyx_t_23, __pyx_t_24, __pyx_t_25);
__pyx_L91_try_end:;
}
+2529: if data is not None:
__pyx_t_6 = (__pyx_v_data != Py_None);
if (__pyx_t_6) {
/* … */
}
+2530: data = fn(data)
__pyx_t_2 = NULL;
__Pyx_INCREF(__pyx_v_fn);
__pyx_t_10 = __pyx_v_fn;
__pyx_t_4 = 1;
#if CYTHON_UNPACK_METHODS
if (unlikely(PyMethod_Check(__pyx_t_10))) {
__pyx_t_2 = PyMethod_GET_SELF(__pyx_t_10);
assert(__pyx_t_2);
PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_10);
__Pyx_INCREF(__pyx_t_2);
__Pyx_INCREF(__pyx__function);
__Pyx_DECREF_SET(__pyx_t_10, __pyx__function);
__pyx_t_4 = 0;
}
#endif
{
PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_v_data};
__pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_10, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (__pyx_t_4*__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_3)) __PYX_ERR(0, 2530, __pyx_L86_error)
__Pyx_GOTREF(__pyx_t_3);
}
__Pyx_DECREF_SET(__pyx_v_data, __pyx_t_3);
__pyx_t_3 = 0;
+2531: except TypeError as ex:
__pyx_t_9 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(((PyTypeObject*)PyExc_TypeError)))); if (__pyx_t_9) { __Pyx_AddTraceback("datamodel.converters.parse_type", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_3, &__pyx_t_10, &__pyx_t_2) < 0) __PYX_ERR(0, 2531, __pyx_L88_except_error) __Pyx_XGOTREF(__pyx_t_3); __Pyx_XGOTREF(__pyx_t_10); __Pyx_XGOTREF(__pyx_t_2); __Pyx_INCREF(__pyx_t_10); __pyx_v_ex = __pyx_t_10; /*try:*/ { } /*finally:*/ { /*normal exit:*/{ __Pyx_DECREF(__pyx_v_ex); __pyx_v_ex = 0; goto __pyx_L99; } __pyx_L99:; } __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; goto __pyx_L87_exception_handled; }
2532: pass
+2533: except (ValueError, RuntimeError) as exc:
__pyx_t_9 = __Pyx_PyErr_ExceptionMatches2(((PyObject *)(((PyTypeObject*)PyExc_ValueError))), ((PyObject *)(((PyTypeObject*)PyExc_RuntimeError))));
if (__pyx_t_9) {
__Pyx_AddTraceback("datamodel.converters.parse_type", __pyx_clineno, __pyx_lineno, __pyx_filename);
if (__Pyx_GetException(&__pyx_t_2, &__pyx_t_10, &__pyx_t_3) < 0) __PYX_ERR(0, 2533, __pyx_L88_except_error)
__Pyx_XGOTREF(__pyx_t_2);
__Pyx_XGOTREF(__pyx_t_10);
__Pyx_XGOTREF(__pyx_t_3);
__Pyx_INCREF(__pyx_t_10);
__pyx_v_exc = __pyx_t_10;
/*try:*/ {
/* … */
/*finally:*/ {
__pyx_L105_error:;
/*exception exit:*/{
__Pyx_PyThreadState_declare
__Pyx_PyThreadState_assign
__pyx_t_32 = 0; __pyx_t_33 = 0; __pyx_t_34 = 0; __pyx_t_35 = 0; __pyx_t_36 = 0; __pyx_t_37 = 0;
__Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_XDECREF(__pyx_t_18); __pyx_t_18 = 0;
__Pyx_XDECREF(__pyx_t_26); __pyx_t_26 = 0;
__Pyx_XDECREF(__pyx_t_27); __pyx_t_27 = 0;
__Pyx_XDECREF(__pyx_t_28); __pyx_t_28 = 0;
__Pyx_XDECREF(__pyx_t_30); __pyx_t_30 = 0;
__Pyx_ExceptionSwap(&__pyx_t_35, &__pyx_t_36, &__pyx_t_37);
if ( unlikely(__Pyx_GetException(&__pyx_t_32, &__pyx_t_33, &__pyx_t_34) < 0)) __Pyx_ErrFetch(&__pyx_t_32, &__pyx_t_33, &__pyx_t_34);
__Pyx_XGOTREF(__pyx_t_32);
__Pyx_XGOTREF(__pyx_t_33);
__Pyx_XGOTREF(__pyx_t_34);
__Pyx_XGOTREF(__pyx_t_35);
__Pyx_XGOTREF(__pyx_t_36);
__Pyx_XGOTREF(__pyx_t_37);
__pyx_t_9 = __pyx_lineno; __pyx_t_11 = __pyx_clineno; __pyx_t_31 = __pyx_filename;
{
__Pyx_DECREF(__pyx_v_exc); __pyx_v_exc = 0;
}
__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_32);
__Pyx_XGIVEREF(__pyx_t_33);
__Pyx_XGIVEREF(__pyx_t_34);
__Pyx_ErrRestore(__pyx_t_32, __pyx_t_33, __pyx_t_34);
__pyx_t_32 = 0; __pyx_t_33 = 0; __pyx_t_34 = 0; __pyx_t_35 = 0; __pyx_t_36 = 0; __pyx_t_37 = 0;
__pyx_lineno = __pyx_t_9; __pyx_clineno = __pyx_t_11; __pyx_filename = __pyx_t_31;
goto __pyx_L88_except_error;
}
}
}
goto __pyx_L88_except_error;
+2534: raise ValueError(
__pyx_t_26 = NULL;
+2535: f"Model: Error parsing {T}, {exc}"
__pyx_t_27 = __Pyx_PyObject_FormatSimple(__pyx_v_T, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 2535, __pyx_L105_error) __Pyx_GOTREF(__pyx_t_27); __pyx_t_28 = __Pyx_PyObject_FormatSimple(__pyx_v_exc, __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_28)) __PYX_ERR(0, 2535, __pyx_L105_error) __Pyx_GOTREF(__pyx_t_28); __pyx_t_29[0] = __pyx_mstate_global->__pyx_kp_u_Model_Error_parsing; __pyx_t_29[1] = __pyx_t_27; __pyx_t_29[2] = __pyx_mstate_global->__pyx_kp_u__7; __pyx_t_29[3] = __pyx_t_28; __pyx_t_8 = 23; #if __Pyx_PyUnicode_Join_CAN_USE_KIND_AND_LENGTH __pyx_t_8 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_29[1]) + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_29[3]); #endif __pyx_t_9 = 0; #if __Pyx_PyUnicode_Join_CAN_USE_KIND_AND_LENGTH __pyx_t_9 |= __Pyx_PyUnicode_KIND_04(__pyx_t_29[1]) | __Pyx_PyUnicode_KIND_04(__pyx_t_29[3]); #endif __pyx_t_30 = __Pyx_PyUnicode_Join(__pyx_t_29, 4, __pyx_t_8, __pyx_t_9); if (unlikely(!__pyx_t_30)) __PYX_ERR(0, 2535, __pyx_L105_error) __Pyx_GOTREF(__pyx_t_30); __Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0; __Pyx_DECREF(__pyx_t_28); __pyx_t_28 = 0; __pyx_t_4 = 1; { PyObject *__pyx_callargs[2] = {__pyx_t_26, __pyx_t_30}; __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)(((PyTypeObject*)PyExc_ValueError)), __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_26); __pyx_t_26 = 0; __Pyx_DECREF(__pyx_t_30); __pyx_t_30 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2534, __pyx_L105_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, 2534, __pyx_L105_error) }
2536: )
+2537: except KeyError:
__pyx_t_11 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(((PyTypeObject*)PyExc_KeyError)))); if (__pyx_t_11) { __Pyx_ErrRestore(0,0,0); goto __pyx_L80_exception_handled; } goto __pyx_L81_except_error;
2538: pass
+2539: return data
{
PyObject *__pyx_temp;
{
__pyx_temp = __pyx_r;
__Pyx_INCREF(__pyx_v_data);
__pyx_r = __pyx_v_data;
}
__Pyx_XDECREF(__pyx_temp);
}
goto __pyx_L64_try_return;
+2540: except KeyError:
__pyx_t_11 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(((PyTypeObject*)PyExc_KeyError)))); if (__pyx_t_11) { __Pyx_ErrRestore(0,0,0); goto __pyx_L61_exception_handled; } goto __pyx_L62_except_error;
2541: pass
+2542: elif origin is dict and isinstance(data, dict):
__pyx_t_19 = (__pyx_v_origin == ((PyObject *)(&PyDict_Type)));
if (__pyx_t_19) {
} else {
__pyx_t_6 = __pyx_t_19;
goto __pyx_L115_bool_binop_done;
}
__pyx_t_19 = PyDict_Check(__pyx_v_data);
__pyx_t_6 = __pyx_t_19;
__pyx_L115_bool_binop_done:;
if (__pyx_t_6) {
/* … */
}
+2543: return _parse_dict_type(field, T, data, encoder, args)
__pyx_t_3 = __pyx_f_9datamodel_10converters__parse_dict_type(__pyx_v_field, __pyx_v_T, __pyx_v_data, __pyx_v_encoder, __pyx_v_args); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2543, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; __pyx_r = __pyx_t_3; } __Pyx_XDECREF(__pyx_temp); } __pyx_t_3 = 0; goto __pyx_L0;
+2544: elif origin is list:
__pyx_t_6 = (__pyx_v_origin == ((PyObject *)(&PyList_Type)));
if (__pyx_t_6) {
/* … */
}
+2545: return _parse_list_type(field, T, data, encoder, args)
__pyx_t_3 = __pyx_f_9datamodel_10converters__parse_list_type(__pyx_v_field, __pyx_v_T, __pyx_v_data, __pyx_v_encoder, __pyx_v_args, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2545, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; __pyx_r = __pyx_t_3; } __Pyx_XDECREF(__pyx_temp); } __pyx_t_3 = 0; goto __pyx_L0;
+2546: elif origin is not None:
__pyx_t_6 = (__pyx_v_origin != Py_None);
if (__pyx_t_6) {
/* … */
}
2547: # Other typing constructs can be handled here
+2548: return data
{
PyObject *__pyx_temp;
{
__pyx_temp = __pyx_r;
__Pyx_INCREF(__pyx_v_data);
__pyx_r = __pyx_v_data;
}
__Pyx_XDECREF(__pyx_temp);
}
goto __pyx_L0;
2549: else:
+2550: return _parse_builtin_type(field, T, data, encoder)
/*else*/ {
__pyx_t_3 = __pyx_f_9datamodel_10converters__parse_builtin_type(__pyx_v_field, __pyx_v_T, __pyx_v_data, __pyx_v_encoder); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2550, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
{
PyObject *__pyx_temp;
{
__pyx_temp = __pyx_r;
__pyx_r = __pyx_t_3;
}
__Pyx_XDECREF(__pyx_temp);
}
__pyx_t_3 = 0;
goto __pyx_L0;
}
__pyx_L5:;