Skip to content

Instantly share code, notes, and snippets.

@CaselIT
Created August 4, 2021 20:43
Show Gist options
  • Save CaselIT/f0493d74422cce46c95c10e8abd1e4f0 to your computer and use it in GitHub Desktop.
Save CaselIT/f0493d74422cce46c95c10e8abd1e4f0 to your computer and use it in GitHub Desktop.
Falcon compiled test
This file has been truncated, but you can view the full file.
diff --git a/falcon/routing/compiled_master.c b/falcon/routing/compiled_pep484.c
index f638019b..6cc0c390 100755
--- a/falcon/routing/compiled_master.c
+++ b/falcon/routing/compiled_pep484.c
@@ -1044,10 +1044,10 @@ struct __pyx_defaults {
PyObject *__pyx_arg_responder;
};
-/* "falcon/routing/compiled.py":149
+/* "falcon/routing/compiled.py":156
* return map_http_methods(resource, suffix=kwargs.get('suffix', None))
*
- * def add_route(self, uri_template, resource, **kwargs): # <<<<<<<<<<<<<<
+ * def add_route(self, uri_template: str, resource: object, **kwargs): # <<<<<<<<<<<<<<
* """Add a route between a URI path template and a resource.
*
*/
@@ -1061,10 +1061,10 @@ struct __pyx_obj_6falcon_7routing_8compiled___pyx_scope_struct__add_route {
};
-/* "falcon/routing/compiled.py":288
+/* "falcon/routing/compiled.py":295
* # -----------------------------------------------------------------
*
- * def _require_coroutine_responders(self, method_map): # <<<<<<<<<<<<<<
+ * def _require_coroutine_responders(self, method_map: dict): # <<<<<<<<<<<<<<
* for method, responder in method_map.items():
* # NOTE(kgriffs): We don't simply wrap non-async functions
*/
@@ -1075,7 +1075,7 @@ struct __pyx_obj_6falcon_7routing_8compiled___pyx_scope_struct_1__require_corout
};
-/* "falcon/routing/compiled.py":872
+/* "falcon/routing/compiled.py":891
* def __init__(self):
* self.converters = ConverterDict(
* (name, converter) for name, converter in converters.BUILTIN # <<<<<<<<<<<<<<
@@ -1280,15 +1280,6 @@ static int __Pyx_ParseOptionalKeywords(PyObject *kwds, PyObject *const *kwvalues
static void __Pyx_RaiseArgtupleInvalid(const char* func_name, int exact,
Py_ssize_t num_min, Py_ssize_t num_max, Py_ssize_t num_found);
-/* PyObjectSetAttrStr.proto */
-#if CYTHON_USE_TYPE_SLOTS
-#define __Pyx_PyObject_DelAttrStr(o,n) __Pyx_PyObject_SetAttrStr(o, n, NULL)
-static CYTHON_INLINE int __Pyx_PyObject_SetAttrStr(PyObject* obj, PyObject* attr_name, PyObject* value);
-#else
-#define __Pyx_PyObject_DelAttrStr(o,n) PyObject_DelAttr(o,n)
-#define __Pyx_PyObject_SetAttrStr(o,n,v) PyObject_SetAttr(o,n,v)
-#endif
-
/* PyDictVersioning.proto */
#if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_TYPE_SLOTS
#define __PYX_DICT_VERSION_INIT ((PY_UINT64_T) -1)
@@ -1373,6 +1364,18 @@ static CYTHON_INLINE PyObject* __Pyx_PyObject_CallMethO(PyObject *func, PyObject
#define __Pyx_PyObject_FastCall(func, args, nargs) __Pyx_PyObject_FastCallDict(func, args, (size_t)(nargs), NULL)
static CYTHON_INLINE PyObject* __Pyx_PyObject_FastCallDict(PyObject *func, PyObject **args, size_t nargs, PyObject *kwargs);
+/* PyObjectSetAttrStr.proto */
+#if CYTHON_USE_TYPE_SLOTS
+#define __Pyx_PyObject_DelAttrStr(o,n) __Pyx_PyObject_SetAttrStr(o, n, NULL)
+static CYTHON_INLINE int __Pyx_PyObject_SetAttrStr(PyObject* obj, PyObject* attr_name, PyObject* value);
+#else
+#define __Pyx_PyObject_DelAttrStr(o,n) PyObject_DelAttr(o,n)
+#define __Pyx_PyObject_SetAttrStr(o,n,v) PyObject_SetAttr(o,n,v)
+#endif
+
+/* RaiseUnexpectedTypeError.proto */
+static int __Pyx_RaiseUnexpectedTypeError(const char *expected, PyObject *obj);
+
/* dict_getitem_default.proto */
static PyObject* __Pyx_PyDict_GetItemDefault(PyObject* d, PyObject* key, PyObject* default_value);
@@ -1401,6 +1404,12 @@ static CYTHON_INLINE PyObject *__Pyx_CallUnboundCMethod2(__Pyx_CachedCFunction *
#define __Pyx_CallUnboundCMethod2(cfunc, self, arg1, arg2) __Pyx__CallUnboundCMethod2(cfunc, self, arg1, arg2)
#endif
+/* ArgTypeTest.proto */
+#define __Pyx_ArgTypeTest(obj, type, none_allowed, name, exact)\
+ ((likely(__Pyx_IS_TYPE(obj, type) | (none_allowed && (obj == Py_None)))) ? 1 :\
+ __Pyx__ArgTypeTest(obj, type, name, exact))
+static int __Pyx__ArgTypeTest(PyObject *obj, PyTypeObject *type, const char *name, int exact);
+
/* RaiseClosureNameError.proto */
static CYTHON_INLINE void __Pyx_RaiseClosureNameError(const char *varname);
@@ -1682,15 +1691,6 @@ static CYTHON_INLINE void __Pyx__ExceptionSwap(PyThreadState *tstate, PyObject *
static CYTHON_INLINE void __Pyx_ExceptionSwap(PyObject **type, PyObject **value, PyObject **tb);
#endif
-/* ArgTypeTest.proto */
-#define __Pyx_ArgTypeTest(obj, type, none_allowed, name, exact)\
- ((likely(__Pyx_IS_TYPE(obj, type) | (none_allowed && (obj == Py_None)))) ? 1 :\
- __Pyx__ArgTypeTest(obj, type, name, exact))
-static int __Pyx__ArgTypeTest(PyObject *obj, PyTypeObject *type, const char *name, int exact);
-
-/* RaiseUnexpectedTypeError.proto */
-static int __Pyx_RaiseUnexpectedTypeError(const char *expected, PyObject *obj);
-
/* ListCompAppend.proto */
#if CYTHON_USE_PYLIST_INTERNALS && CYTHON_ASSUME_SAFE_MACROS
static CYTHON_INLINE int __Pyx_ListComp_Append(PyObject* list, PyObject* x) {
@@ -1708,26 +1708,6 @@ static CYTHON_INLINE int __Pyx_ListComp_Append(PyObject* list, PyObject* x) {
#define __Pyx_ListComp_Append(L,x) PyList_Append(L,x)
#endif
-/* CallUnboundCMethod0.proto */
-static PyObject* __Pyx__CallUnboundCMethod0(__Pyx_CachedCFunction* cfunc, PyObject* self);
-#if CYTHON_COMPILING_IN_CPYTHON
-#define __Pyx_CallUnboundCMethod0(cfunc, self)\
- (likely((cfunc)->func) ?\
- (likely((cfunc)->flag == METH_NOARGS) ? (*((cfunc)->func))(self, NULL) :\
- (PY_VERSION_HEX >= 0x030600B1 && likely((cfunc)->flag == METH_FASTCALL) ?\
- (PY_VERSION_HEX >= 0x030700A0 ?\
- (*(__Pyx_PyCFunctionFast)(void*)(PyCFunction)(cfunc)->func)(self, &__pyx_empty_tuple, 0) :\
- (*(__Pyx_PyCFunctionFastWithKeywords)(void*)(PyCFunction)(cfunc)->func)(self, &__pyx_empty_tuple, 0, NULL)) :\
- (PY_VERSION_HEX >= 0x030700A0 && (cfunc)->flag == (METH_FASTCALL | METH_KEYWORDS) ?\
- (*(__Pyx_PyCFunctionFastWithKeywords)(void*)(PyCFunction)(cfunc)->func)(self, &__pyx_empty_tuple, 0, NULL) :\
- (likely((cfunc)->flag == (METH_VARARGS | METH_KEYWORDS)) ? ((*(PyCFunctionWithKeywords)(void*)(PyCFunction)(cfunc)->func)(self, __pyx_empty_tuple, NULL)) :\
- ((cfunc)->flag == METH_VARARGS ? (*((cfunc)->func))(self, __pyx_empty_tuple) :\
- __Pyx__CallUnboundCMethod0(cfunc, self)))))) :\
- __Pyx__CallUnboundCMethod0(cfunc, self))
-#else
-#define __Pyx_CallUnboundCMethod0(cfunc, self) __Pyx__CallUnboundCMethod0(cfunc, self)
-#endif
-
/* PyExec.proto */
static PyObject* __Pyx_PyExec3(PyObject*, PyObject*, PyObject*);
static CYTHON_INLINE PyObject* __Pyx_PyExec2(PyObject*, PyObject*);
@@ -1992,53 +1972,62 @@ static PyObject *__pyx_builtin_AssertionError;
static PyObject *__pyx_builtin_compile;
static PyObject *__pyx_builtin_eval;
static PyObject *__pyx_builtin_AttributeError;
+static PyObject *__pyx_builtin_NotImplementedError;
static PyObject *__pyx_builtin_super;
/* #### Code section: string_decls ### */
-static const char __pyx_k_[] = "/";
+static const char __pyx_k_[] = "";
static const char __pyx_k_e[] = "e";
static const char __pyx_k_n[] = "n";
static const char __pyx_k_s[] = "\\s";
static const char __pyx_k_v[] = "v";
-static const char __pyx_k__9[] = ":";
+static const char __pyx_k__2[] = "/";
static const char __pyx_k_gc[] = "gc";
static const char __pyx_k_re[] = "re";
static const char __pyx_k_0_1[] = "{0}({1})";
+static const char __pyx_k_Any[] = "Any";
static const char __pyx_k_P_2[] = "(?P<\\2>.+)";
-static const char __pyx_k__10[] = ">";
-static const char __pyx_k__11[] = "==";
-static const char __pyx_k__12[] = "\n";
-static const char __pyx_k__14[] = "[\\.\\(\\)\\[\\]\\?\\$\\*\\+\\^\\|]";
-static const char __pyx_k__15[] = "^";
-static const char __pyx_k__16[] = "$";
-static const char __pyx_k__18[] = "*";
-static const char __pyx_k__19[] = " ";
-static const char __pyx_k__42[] = "__";
+static const char __pyx_k_Set[] = "Set";
+static const char __pyx_k__10[] = ":";
+static const char __pyx_k__11[] = ">";
+static const char __pyx_k__12[] = "==";
+static const char __pyx_k__13[] = "\n";
+static const char __pyx_k__15[] = "[\\.\\(\\)\\[\\]\\?\\$\\*\\+\\^\\|]";
+static const char __pyx_k__16[] = "^";
+static const char __pyx_k__17[] = "$";
+static const char __pyx_k__19[] = "*";
+static const char __pyx_k__21[] = " ";
+static const char __pyx_k__44[] = "__";
static const char __pyx_k_add[] = "add";
static const char __pyx_k_ast[] = "_ast";
static const char __pyx_k_doc[] = "__doc__";
static const char __pyx_k_g_0[] = "\\\\\\g<0>";
static const char __pyx_k_get[] = "get";
+static const char __pyx_k_int[] = "int";
static const char __pyx_k_key[] = "key";
static const char __pyx_k_let[] = "let";
static const char __pyx_k_msg[] = "msg";
static const char __pyx_k_req[] = "req";
static const char __pyx_k_src[] = "src";
+static const char __pyx_k_str[] = "str";
static const char __pyx_k_sub[] = "sub";
static const char __pyx_k_uri[] = "uri";
+static const char __pyx_k_Dict[] = "Dict";
+static const char __pyx_k_List[] = "List";
static const char __pyx_k_Lock[] = "Lock";
-static const char __pyx_k__131[] = "?";
+static const char __pyx_k_None[] = "None";
+static const char __pyx_k__135[] = "?";
static const char __pyx_k_args[] = "args";
static const char __pyx_k_asgi[] = "_asgi";
+static const char __pyx_k_bool[] = "bool";
static const char __pyx_k_copy[] = "copy";
static const char __pyx_k_data[] = "data";
-static const char __pyx_k_dict[] = "__dict__";
+static const char __pyx_k_dict[] = "dict";
static const char __pyx_k_eval[] = "eval";
static const char __pyx_k_exec[] = "exec";
static const char __pyx_k_exit[] = "__exit__";
static const char __pyx_k_find[] = "_find";
static const char __pyx_k_init[] = "__init__";
static const char __pyx_k_keys[] = "keys";
-static const char __pyx_k_list[] = "list";
static const char __pyx_k_main[] = "__main__";
static const char __pyx_k_name[] = "__name__";
static const char __pyx_k_node[] = "node";
@@ -2049,6 +2038,7 @@ static const char __pyx_k_span[] = "span";
static const char __pyx_k_spec[] = "__spec__";
static const char __pyx_k_test[] = "__test__";
static const char __pyx_k_FIELD[] = "{FIELD}";
+static const char __pyx_k_Union[] = "Union";
static const char __pyx_k_child[] = "child";
static const char __pyx_k_close[] = "close";
static const char __pyx_k_cname[] = "cname";
@@ -2073,6 +2063,7 @@ static const char __pyx_k_throw[] = "throw";
static const char __pyx_k_append[] = "append";
static const char __pyx_k_argstr[] = "argstr";
static const char __pyx_k_asgi_2[] = "asgi";
+static const char __pyx_k_dict_2[] = "__dict__";
static const char __pyx_k_enable[] = "enable";
static const char __pyx_k_find_2[] = "find";
static const char __pyx_k_format[] = "format";
@@ -2087,15 +2078,21 @@ static const char __pyx_k_method[] = "method";
static const char __pyx_k_module[] = "__module__";
static const char __pyx_k_name_2[] = "name";
static const char __pyx_k_node_2[] = "_node";
+static const char __pyx_k_object[] = "object";
static const char __pyx_k_params[] = "params";
static const char __pyx_k_parent[] = "parent";
+static const char __pyx_k_return[] = "return";
static const char __pyx_k_search[] = "search";
-static const char __pyx_k_setter[] = "setter";
static const char __pyx_k_sorted[] = "sorted";
static const char __pyx_k_string[] = "<string>";
static const char __pyx_k_suffix[] = "suffix";
+static const char __pyx_k_typing[] = "typing";
static const char __pyx_k_update[] = "update";
static const char __pyx_k_BUILTIN[] = "BUILTIN";
+static const char __pyx_k_CxChild[] = "_CxChild";
+static const char __pyx_k_Pattern[] = "Pattern";
+static const char __pyx_k_Request[] = "Request";
+static const char __pyx_k_Set_str[] = "'Set[str]'";
static const char __pyx_k_TAB_STR[] = "_TAB_STR";
static const char __pyx_k_compile[] = "compile";
static const char __pyx_k_disable[] = "disable";
@@ -2109,7 +2106,9 @@ static const char __pyx_k_pattern[] = "pattern";
static const char __pyx_k_prepare[] = "__prepare__";
static const char __pyx_k_segment[] = "segment";
static const char __pyx_k_setitem[] = "__setitem__";
+static const char __pyx_k_Callable[] = "Callable";
static const char __pyx_k_CxParent[] = "_CxParent";
+static const char __pyx_k_Optional[] = "Optional";
static const char __pyx_k_UserDict[] = "UserDict";
static const char __pyx_k_builtins[] = "__builtins__";
static const char __pyx_k_children[] = "children";
@@ -2124,6 +2123,7 @@ static const char __pyx_k_set_name[] = "__set_name__";
static const char __pyx_k_template[] = "template";
static const char __pyx_k_validate[] = "_validate";
static const char __pyx_k_var_name[] = "var_name";
+static const char __pyx_k_CxElement[] = "_CxElement";
static const char __pyx_k_TypeError[] = "TypeError";
static const char __pyx_k_add_route[] = "add_route";
static const char __pyx_k_cname_sep[] = "cname_sep";
@@ -2140,10 +2140,15 @@ static const char __pyx_k_threading[] = "threading";
static const char __pyx_k_value_idx[] = "value_idx";
static const char __pyx_k_var_nodes[] = "var_nodes";
static const char __pyx_k_0_1_groups[] = "{0}{1} = groups";
+static const char __pyx_k_Callable_2[] = "'Callable'";
+static const char __pyx_k_CxParent_2[] = "'_CxParent'";
static const char __pyx_k_ValueError[] = "ValueError";
static const char __pyx_k_children_2[] = "_children";
static const char __pyx_k_comparison[] = "comparison";
static const char __pyx_k_converters[] = "_converters";
+static const char __pyx_k_cx_literal[] = "cx_literal";
+static const char __pyx_k_cx_pattern[] = "cx_pattern";
+static const char __pyx_k_cx_segment[] = "cx_segment";
static const char __pyx_k_field_name[] = "field_name";
static const char __pyx_k_finder_src[] = "_finder_src";
static const char __pyx_k_is_complex[] = "is_complex";
@@ -2154,7 +2159,10 @@ static const char __pyx_k_path_index[] = "path_index";
static const char __pyx_k_patterns_2[] = "patterns";
static const char __pyx_k_unique_idx[] = "unique_idx";
static const char __pyx_k_used_names[] = "used_names";
+static const char __pyx_k_CxChild_src[] = "_CxChild.src";
+static const char __pyx_k_CxElement_2[] = "'_CxElement'";
static const char __pyx_k_collections[] = "collections";
+static const char __pyx_k_cx_path_len[] = "cx_path_len";
static const char __pyx_k_fast_return[] = "fast_return";
static const char __pyx_k_found_nodes[] = "_found_nodes";
static const char __pyx_k_indentation[] = "indentation";
@@ -2168,11 +2176,14 @@ static const char __pyx_k_var_pattern[] = "var_pattern";
static const char __pyx_k_0_params_1_2[] = "{0}params['{1}'] = {2}";
static const char __pyx_k_CxParent_src[] = "_CxParent.src";
static const char __pyx_k_CxReturnNone[] = "_CxReturnNone";
+static const char __pyx_k_List_Pattern[] = "'List[Pattern]'";
+static const char __pyx_k_Optional_str[] = "'Optional[str]'";
static const char __pyx_k_append_child[] = "append_child";
static const char __pyx_k_children_src[] = "_children_src";
static const char __pyx_k_comparison_2[] = "_comparison";
static const char __pyx_k_compile_lock[] = "_compile_lock";
static const char __pyx_k_converters_2[] = "converters";
+static const char __pyx_k_cx_converter[] = "cx_converter";
static const char __pyx_k_field_name_2[] = "_field_name";
static const char __pyx_k_finder_src_2[] = "finder_src";
static const char __pyx_k_found_simple[] = "found_simple";
@@ -2191,6 +2202,8 @@ static const char __pyx_k_0_return_None[] = "{0}return None";
static const char __pyx_k_ConverterDict[] = "ConverterDict";
static const char __pyx_k_CxReturnValue[] = "_CxReturnValue";
static const char __pyx_k_FIELD_PATTERN[] = "_FIELD_PATTERN";
+static const char __pyx_k_Optional_dict[] = "'Optional[dict]'";
+static const char __pyx_k_TYPE_CHECKING[] = "TYPE_CHECKING";
static const char __pyx_k_class_getitem[] = "__class_getitem__";
static const char __pyx_k_converter_idx[] = "converter_idx";
static const char __pyx_k_converter_map[] = "_converter_map";
@@ -2208,12 +2221,15 @@ static const char __pyx_k_CxIfPathLength[] = "_CxIfPathLength";
static const char __pyx_k_conflicts_with[] = "conflicts_with";
static const char __pyx_k_converter_name[] = "converter_name";
static const char __pyx_k_dict_groups__0[] = "dict_groups_{0}";
+static const char __pyx_k_falcon_request[] = "falcon.request";
static const char __pyx_k_falcon_routing[] = "falcon.routing";
static const char __pyx_k_field_value__0[] = "field_value_{0}";
static const char __pyx_k_is_python_func[] = "is_python_func";
static const char __pyx_k_pattern_text_2[] = "_pattern_text";
static const char __pyx_k_0_if_path_1_2_3[] = "{0}if path[{1}] == '{2}':\n{3}";
static const char __pyx_k_CxParent___init[] = "_CxParent.__init__";
+static const char __pyx_k_List__CxElement[] = "'List[_CxElement]'";
+static const char __pyx_k_Optional_object[] = "'Optional[object]'";
static const char __pyx_k_converter_class[] = "converter_class";
static const char __pyx_k_converter_idx_2[] = "_converter_idx";
static const char __pyx_k_dict_value_name[] = "dict_value_name";
@@ -2221,8 +2237,10 @@ static const char __pyx_k_escaped_segment[] = "escaped_segment";
static const char __pyx_k_found_var_nodes[] = "found_var_nodes";
static const char __pyx_k_return_values_2[] = "return_values";
static const char __pyx_k_CxReturnNone_src[] = "_CxReturnNone.src";
+static const char __pyx_k_Optional_Request[] = "'Optional[Request]'";
static const char __pyx_k_compile_and_find[] = "_compile_and_find";
static const char __pyx_k_converter_argstr[] = "converter_argstr";
+static const char __pyx_k_cx_pattern_match[] = "cx_pattern_match";
static const char __pyx_k_falcon_util_misc[] = "falcon.util.misc";
static const char __pyx_k_falcon_util_sync[] = "falcon.util.sync";
static const char __pyx_k_field_value_name[] = "field_value_name";
@@ -2251,6 +2269,7 @@ static const char __pyx_k_0_if_path_len_1_2_3[] = "{0}if path_len {1} {2}:\n{3}"
static const char __pyx_k_CompiledRouter_find[] = "CompiledRouter.find";
static const char __pyx_k_CxSetParamFromValue[] = "_CxSetParamFromValue";
static const char __pyx_k_CxSetParamsFromDict[] = "_CxSetParamsFromDict";
+static const char __pyx_k_NotImplementedError[] = "NotImplementedError";
static const char __pyx_k_Unknown_converter_0[] = "Unknown converter: \"{0}\"";
static const char __pyx_k_falcon_routing_util[] = "falcon.routing.util";
static const char __pyx_k_field_variable_name[] = "field_variable_name";
@@ -2276,11 +2295,13 @@ static const char __pyx_k_CxSetParamFromPath_src[] = "_CxSetParamFromPath.src";
static const char __pyx_k_Default_routing_engine[] = "Default routing engine.";
static const char __pyx_k_set_default_responders[] = "set_default_responders";
static const char __pyx_k_0_fragment_groups_pop_1[] = "{0}fragment = groups.pop('{1}')";
+static const char __pyx_k_CompiledRouterOptions_2[] = "'CompiledRouterOptions'";
static const char __pyx_k_CompiledRouter__compile[] = "CompiledRouter._compile";
static const char __pyx_k_ConverterDict___setitem[] = "ConverterDict.__setitem__";
static const char __pyx_k_ConverterDict__validate[] = "ConverterDict._validate";
static const char __pyx_k_CxSetParamFromValue_src[] = "_CxSetParamFromValue.src";
static const char __pyx_k_CxSetParamsFromDict_src[] = "_CxSetParamsFromDict.src";
+static const char __pyx_k_List_CompiledRouterNode[] = "'List[CompiledRouterNode]'";
static const char __pyx_k_falcon_routing_compiled[] = "falcon.routing.compiled";
static const char __pyx_k_generate_conversion_ast[] = "_generate_conversion_ast";
static const char __pyx_k_0_groups_match_groupdict[] = "{0}groups = match.groupdict()";
@@ -2366,9 +2387,12 @@ static PyObject *__pyx_kp_u_0_return_None;
static PyObject *__pyx_kp_u_0_return_return_values_1;
static PyObject *__pyx_kp_u_A_Za_z__A_Za_z0_9;
static PyObject *__pyx_kp_s_A_dict_like_class_for_storing_fi;
+static PyObject *__pyx_n_s_Any;
static PyObject *__pyx_n_s_AssertionError;
static PyObject *__pyx_n_s_AttributeError;
static PyObject *__pyx_n_s_BUILTIN;
+static PyObject *__pyx_n_s_Callable;
+static PyObject *__pyx_kp_s_Callable_2;
static PyObject *__pyx_kp_u_Cannot_instantiate_converter;
static PyObject *__pyx_n_s_CompiledRouter;
static PyObject *__pyx_n_s_CompiledRouterNode;
@@ -2377,6 +2401,7 @@ static PyObject *__pyx_n_s_CompiledRouterNode___init;
static PyObject *__pyx_n_s_CompiledRouterNode_conflicts_wit;
static PyObject *__pyx_n_s_CompiledRouterNode_matches;
static PyObject *__pyx_n_s_CompiledRouterOptions;
+static PyObject *__pyx_kp_s_CompiledRouterOptions_2;
static PyObject *__pyx_n_s_CompiledRouterOptions___init;
static PyObject *__pyx_n_s_CompiledRouterOptions___init___l;
static PyObject *__pyx_n_s_CompiledRouter___init;
@@ -2400,6 +2425,11 @@ static PyObject *__pyx_n_s_ConverterDict;
static PyObject *__pyx_n_s_ConverterDict___setitem;
static PyObject *__pyx_n_s_ConverterDict__validate;
static PyObject *__pyx_n_s_ConverterDict_update;
+static PyObject *__pyx_n_s_CxChild;
+static PyObject *__pyx_n_u_CxChild;
+static PyObject *__pyx_n_s_CxChild_src;
+static PyObject *__pyx_n_s_CxElement;
+static PyObject *__pyx_kp_s_CxElement_2;
static PyObject *__pyx_n_s_CxIfConverterField;
static PyObject *__pyx_n_s_CxIfConverterField___init;
static PyObject *__pyx_n_s_CxIfConverterField_src;
@@ -2413,6 +2443,8 @@ static PyObject *__pyx_n_s_CxIfPathSegmentPattern;
static PyObject *__pyx_n_s_CxIfPathSegmentPattern___init;
static PyObject *__pyx_n_s_CxIfPathSegmentPattern_src;
static PyObject *__pyx_n_s_CxParent;
+static PyObject *__pyx_n_u_CxParent;
+static PyObject *__pyx_kp_s_CxParent_2;
static PyObject *__pyx_n_s_CxParent___init;
static PyObject *__pyx_n_s_CxParent__children_src;
static PyObject *__pyx_n_s_CxParent_append_child;
@@ -2446,6 +2478,7 @@ static PyObject *__pyx_n_s_CxVariableFromPatternMatchPrefe_3;
static PyObject *__pyx_n_s_CxVariableFromPatternMatch___in;
static PyObject *__pyx_n_s_CxVariableFromPatternMatch_src;
static PyObject *__pyx_kp_s_Defines_a_set_of_configurable_ro;
+static PyObject *__pyx_n_s_Dict;
static PyObject *__pyx_kp_u_FIELD;
static PyObject *__pyx_n_s_FIELD_PATTERN;
static PyObject *__pyx_kp_s_Fast_URI_router_which_compiles_i;
@@ -2453,31 +2486,49 @@ static PyObject *__pyx_kp_u_Field_names_may_not_be_duplicate;
static PyObject *__pyx_kp_u_Field_names_must_be_valid_identi;
static PyObject *__pyx_n_s_IDENTIFIER_PATTERN;
static PyObject *__pyx_kp_u_Invalid_converter_name_Names_may;
+static PyObject *__pyx_n_s_List;
+static PyObject *__pyx_kp_s_List_CompiledRouterNode;
+static PyObject *__pyx_kp_s_List_Pattern;
+static PyObject *__pyx_kp_s_List__CxElement;
static PyObject *__pyx_n_s_Lock;
static PyObject *__pyx_kp_u_Missing_converter_for_field_0;
+static PyObject *__pyx_n_s_None;
+static PyObject *__pyx_n_s_NotImplementedError;
+static PyObject *__pyx_n_s_Optional;
+static PyObject *__pyx_kp_s_Optional_Request;
+static PyObject *__pyx_kp_s_Optional_dict;
+static PyObject *__pyx_kp_s_Optional_object;
+static PyObject *__pyx_kp_s_Optional_str;
static PyObject *__pyx_kp_u_P_2;
static PyObject *__pyx_kp_u_P_fname_P_cname_sep_P_cname_P_a;
+static PyObject *__pyx_n_s_Pattern;
static PyObject *__pyx_kp_s_Represents_a_single_URI_segment;
+static PyObject *__pyx_n_s_Request;
+static PyObject *__pyx_n_s_Set;
+static PyObject *__pyx_kp_s_Set_str;
static PyObject *__pyx_n_s_TAB_STR;
+static PyObject *__pyx_n_s_TYPE_CHECKING;
static PyObject *__pyx_kp_u_The_URI_template_for_this_route;
static PyObject *__pyx_kp_u_The_responder_must_be_a_non_bloc;
static PyObject *__pyx_kp_u_The_responder_must_be_a_regular;
static PyObject *__pyx_n_s_TypeError;
static PyObject *__pyx_kp_u_URI_templates_may_not_include_wh;
+static PyObject *__pyx_n_s_Union;
static PyObject *__pyx_kp_u_Unknown_converter_0;
static PyObject *__pyx_n_s_UserDict;
static PyObject *__pyx_n_s_ValueError;
static PyObject *__pyx_kp_u__10;
static PyObject *__pyx_kp_u__11;
static PyObject *__pyx_kp_u__12;
-static PyObject *__pyx_n_s__131;
-static PyObject *__pyx_kp_u__14;
+static PyObject *__pyx_kp_u__13;
+static PyObject *__pyx_n_s__135;
static PyObject *__pyx_kp_u__15;
static PyObject *__pyx_kp_u__16;
-static PyObject *__pyx_n_s__18;
-static PyObject *__pyx_kp_u__19;
-static PyObject *__pyx_n_s__42;
-static PyObject *__pyx_kp_u__9;
+static PyObject *__pyx_kp_u__17;
+static PyObject *__pyx_n_s__19;
+static PyObject *__pyx_kp_u__2;
+static PyObject *__pyx_kp_u__21;
+static PyObject *__pyx_n_s__44;
static PyObject *__pyx_n_s_add;
static PyObject *__pyx_n_s_add_route;
static PyObject *__pyx_n_s_append;
@@ -2490,6 +2541,7 @@ static PyObject *__pyx_n_s_asgi_2;
static PyObject *__pyx_n_s_ast;
static PyObject *__pyx_n_u_ast;
static PyObject *__pyx_n_s_asyncio_coroutines;
+static PyObject *__pyx_n_s_bool;
static PyObject *__pyx_n_s_builtins;
static PyObject *__pyx_n_s_child;
static PyObject *__pyx_n_s_children;
@@ -2525,9 +2577,16 @@ static PyObject *__pyx_n_u_converters;
static PyObject *__pyx_n_s_converters_2;
static PyObject *__pyx_n_u_converters_2;
static PyObject *__pyx_n_s_copy;
+static PyObject *__pyx_n_s_cx_converter;
+static PyObject *__pyx_n_s_cx_literal;
+static PyObject *__pyx_n_s_cx_path_len;
+static PyObject *__pyx_n_s_cx_pattern;
+static PyObject *__pyx_n_s_cx_pattern_match;
+static PyObject *__pyx_n_s_cx_segment;
static PyObject *__pyx_n_s_data;
static PyObject *__pyx_kp_u_def_find_path_return_values_patt;
static PyObject *__pyx_n_s_dict;
+static PyObject *__pyx_n_s_dict_2;
static PyObject *__pyx_kp_u_dict_groups__0;
static PyObject *__pyx_kp_u_dict_match__0;
static PyObject *__pyx_n_s_dict_value_name;
@@ -2542,6 +2601,7 @@ static PyObject *__pyx_n_s_escaped_segment;
static PyObject *__pyx_n_s_eval;
static PyObject *__pyx_n_u_exec;
static PyObject *__pyx_n_s_exit;
+static PyObject *__pyx_n_s_falcon_request;
static PyObject *__pyx_n_s_falcon_routing;
static PyObject *__pyx_n_s_falcon_routing_compiled;
static PyObject *__pyx_kp_s_falcon_routing_compiled_py;
@@ -2584,6 +2644,7 @@ static PyObject *__pyx_n_s_initializing;
static PyObject *__pyx_n_s_insert;
static PyObject *__pyx_n_s_inspect;
static PyObject *__pyx_n_s_instantiate_converter;
+static PyObject *__pyx_n_s_int;
static PyObject *__pyx_n_s_is_complex;
static PyObject *__pyx_n_s_is_coroutine;
static PyObject *__pyx_n_s_is_identifier;
@@ -2603,7 +2664,6 @@ static PyObject *__pyx_n_s_length_2;
static PyObject *__pyx_n_s_let;
static PyObject *__pyx_n_s_level;
static PyObject *__pyx_n_s_lines;
-static PyObject *__pyx_n_s_list;
static PyObject *__pyx_n_s_literal;
static PyObject *__pyx_n_s_literal_2;
static PyObject *__pyx_n_s_lstrip;
@@ -2627,6 +2687,7 @@ static PyObject *__pyx_n_s_node;
static PyObject *__pyx_n_s_node_2;
static PyObject *__pyx_n_s_nodes;
static PyObject *__pyx_n_s_num_fields;
+static PyObject *__pyx_n_s_object;
static PyObject *__pyx_n_s_options;
static PyObject *__pyx_n_u_options;
static PyObject *__pyx_n_s_options_2;
@@ -2660,6 +2721,7 @@ static PyObject *__pyx_n_s_require_non_coroutine_responder;
static PyObject *__pyx_n_s_resource;
static PyObject *__pyx_n_s_resource_idx;
static PyObject *__pyx_n_s_responder;
+static PyObject *__pyx_n_s_return;
static PyObject *__pyx_kp_u_return_None;
static PyObject *__pyx_n_s_return_values;
static PyObject *__pyx_n_u_return_values;
@@ -2677,7 +2739,6 @@ static PyObject *__pyx_n_s_send;
static PyObject *__pyx_n_s_set_default_responders;
static PyObject *__pyx_n_s_set_name;
static PyObject *__pyx_n_s_setitem;
-static PyObject *__pyx_n_s_setter;
static PyObject *__pyx_n_s_should_wrap_non_coroutines;
static PyObject *__pyx_n_s_slots;
static PyObject *__pyx_n_s_sorted;
@@ -2686,6 +2747,7 @@ static PyObject *__pyx_n_s_spec;
static PyObject *__pyx_n_s_split;
static PyObject *__pyx_n_s_src;
static PyObject *__pyx_n_s_src_lines;
+static PyObject *__pyx_n_s_str;
static PyObject *__pyx_kp_u_string;
static PyObject *__pyx_n_s_sub;
static PyObject *__pyx_n_s_suffix;
@@ -2695,6 +2757,7 @@ static PyObject *__pyx_n_s_template;
static PyObject *__pyx_n_s_test;
static PyObject *__pyx_n_s_threading;
static PyObject *__pyx_n_s_throw;
+static PyObject *__pyx_n_s_typing;
static PyObject *__pyx_n_s_unique_idx;
static PyObject *__pyx_n_s_unique_idx_2;
static PyObject *__pyx_n_s_update;
@@ -2743,6 +2806,7 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_9_CxParent___init__(CYTHON_
static PyObject *__pyx_pf_6falcon_7routing_8compiled_9_CxParent_2append_child(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_construct); /* proto */
static PyObject *__pyx_pf_6falcon_7routing_8compiled_9_CxParent_4src(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_indentation); /* proto */
static PyObject *__pyx_pf_6falcon_7routing_8compiled_9_CxParent_6_children_src(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_indentation); /* proto */
+static PyObject *__pyx_pf_6falcon_7routing_8compiled_8_CxChild_src(CYTHON_UNUSED PyObject *__pyx_self, CYTHON_UNUSED PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v_indentation); /* proto */
static PyObject *__pyx_pf_6falcon_7routing_8compiled_15_CxIfPathLength___init__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_comparison, PyObject *__pyx_v_length); /* proto */
static PyObject *__pyx_pf_6falcon_7routing_8compiled_15_CxIfPathLength_2src(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_indentation); /* proto */
static PyObject *__pyx_pf_6falcon_7routing_8compiled_23_CxIfPathSegmentLiteral___init__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_segment_idx, PyObject *__pyx_v_literal); /* proto */
@@ -2773,49 +2837,49 @@ static PyObject *__pyx_tp_new_6falcon_7routing_8compiled___pyx_scope_struct__add
static PyObject *__pyx_tp_new_6falcon_7routing_8compiled___pyx_scope_struct_1__require_coroutine_responders(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_6falcon_7routing_8compiled___pyx_scope_struct_2_genexpr(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static __Pyx_CachedCFunction __pyx_umethod_PyDict_Type_get = {0, 0, 0, 0, 0};
-static __Pyx_CachedCFunction __pyx_umethod_PyList_Type_copy = {0, 0, 0, 0, 0};
static __Pyx_CachedCFunction __pyx_umethod_PyUnicode_Type_format = {0, 0, 0, 0, 0};
+static __Pyx_CachedCFunction __pyx_umethod_PyUnicode_Type_lstrip = {0, 0, 0, 0, 0};
#if !CYTHON_USE_MODULE_STATE
static PyObject *__pyx_int_0;
static PyObject *__pyx_int_1;
#endif
#if !CYTHON_USE_MODULE_STATE
-static PyObject *__pyx_tuple__2;
static PyObject *__pyx_tuple__3;
static PyObject *__pyx_tuple__4;
-static PyObject *__pyx_tuple__6;
+static PyObject *__pyx_tuple__5;
static PyObject *__pyx_tuple__7;
-static PyObject *__pyx_tuple__13;
-static PyObject *__pyx_tuple__17;
+static PyObject *__pyx_tuple__8;
+static PyObject *__pyx_tuple__14;
+static PyObject *__pyx_tuple__18;
static PyObject *__pyx_tuple__20;
-static PyObject *__pyx_tuple__21;
static PyObject *__pyx_tuple__22;
static PyObject *__pyx_tuple__23;
+static PyObject *__pyx_tuple__24;
static PyObject *__pyx_tuple__25;
static PyObject *__pyx_tuple__27;
static PyObject *__pyx_tuple__29;
static PyObject *__pyx_tuple__31;
static PyObject *__pyx_tuple__33;
static PyObject *__pyx_tuple__35;
-static PyObject *__pyx_tuple__36;
+static PyObject *__pyx_tuple__37;
static PyObject *__pyx_tuple__38;
static PyObject *__pyx_tuple__40;
-static PyObject *__pyx_tuple__43;
+static PyObject *__pyx_tuple__42;
static PyObject *__pyx_tuple__45;
-static PyObject *__pyx_tuple__46;
+static PyObject *__pyx_tuple__47;
static PyObject *__pyx_tuple__48;
static PyObject *__pyx_tuple__50;
static PyObject *__pyx_tuple__52;
-static PyObject *__pyx_tuple__53;
+static PyObject *__pyx_tuple__54;
static PyObject *__pyx_tuple__55;
static PyObject *__pyx_tuple__57;
-static PyObject *__pyx_tuple__58;
+static PyObject *__pyx_tuple__59;
static PyObject *__pyx_tuple__60;
static PyObject *__pyx_tuple__62;
static PyObject *__pyx_tuple__64;
static PyObject *__pyx_tuple__66;
static PyObject *__pyx_tuple__68;
-static PyObject *__pyx_tuple__69;
+static PyObject *__pyx_tuple__70;
static PyObject *__pyx_tuple__71;
static PyObject *__pyx_tuple__73;
static PyObject *__pyx_tuple__75;
@@ -2831,8 +2895,8 @@ static PyObject *__pyx_tuple__93;
static PyObject *__pyx_tuple__95;
static PyObject *__pyx_tuple__97;
static PyObject *__pyx_tuple__99;
-static PyObject *__pyx_codeobj__5;
-static PyObject *__pyx_codeobj__8;
+static PyObject *__pyx_codeobj__6;
+static PyObject *__pyx_codeobj__9;
static PyObject *__pyx_tuple__101;
static PyObject *__pyx_tuple__103;
static PyObject *__pyx_tuple__105;
@@ -2848,27 +2912,28 @@ static PyObject *__pyx_tuple__123;
static PyObject *__pyx_tuple__125;
static PyObject *__pyx_tuple__127;
static PyObject *__pyx_tuple__129;
-static PyObject *__pyx_codeobj__24;
+static PyObject *__pyx_tuple__131;
+static PyObject *__pyx_tuple__133;
static PyObject *__pyx_codeobj__26;
static PyObject *__pyx_codeobj__28;
static PyObject *__pyx_codeobj__30;
static PyObject *__pyx_codeobj__32;
static PyObject *__pyx_codeobj__34;
-static PyObject *__pyx_codeobj__37;
+static PyObject *__pyx_codeobj__36;
static PyObject *__pyx_codeobj__39;
static PyObject *__pyx_codeobj__41;
-static PyObject *__pyx_codeobj__44;
-static PyObject *__pyx_codeobj__47;
+static PyObject *__pyx_codeobj__43;
+static PyObject *__pyx_codeobj__46;
static PyObject *__pyx_codeobj__49;
static PyObject *__pyx_codeobj__51;
-static PyObject *__pyx_codeobj__54;
+static PyObject *__pyx_codeobj__53;
static PyObject *__pyx_codeobj__56;
-static PyObject *__pyx_codeobj__59;
+static PyObject *__pyx_codeobj__58;
static PyObject *__pyx_codeobj__61;
static PyObject *__pyx_codeobj__63;
static PyObject *__pyx_codeobj__65;
static PyObject *__pyx_codeobj__67;
-static PyObject *__pyx_codeobj__70;
+static PyObject *__pyx_codeobj__69;
static PyObject *__pyx_codeobj__72;
static PyObject *__pyx_codeobj__74;
static PyObject *__pyx_codeobj__76;
@@ -2899,6 +2964,8 @@ static PyObject *__pyx_codeobj__124;
static PyObject *__pyx_codeobj__126;
static PyObject *__pyx_codeobj__128;
static PyObject *__pyx_codeobj__130;
+static PyObject *__pyx_codeobj__132;
+static PyObject *__pyx_codeobj__134;
#endif
/* #### Code section: late_includes ### */
/* #### Code section: module_state ### */
@@ -2942,9 +3009,12 @@ typedef struct {
PyObject *__pyx_kp_u_0_return_return_values_1;
PyObject *__pyx_kp_u_A_Za_z__A_Za_z0_9;
PyObject *__pyx_kp_s_A_dict_like_class_for_storing_fi;
+ PyObject *__pyx_n_s_Any;
PyObject *__pyx_n_s_AssertionError;
PyObject *__pyx_n_s_AttributeError;
PyObject *__pyx_n_s_BUILTIN;
+ PyObject *__pyx_n_s_Callable;
+ PyObject *__pyx_kp_s_Callable_2;
PyObject *__pyx_kp_u_Cannot_instantiate_converter;
PyObject *__pyx_n_s_CompiledRouter;
PyObject *__pyx_n_s_CompiledRouterNode;
@@ -2953,6 +3023,7 @@ typedef struct {
PyObject *__pyx_n_s_CompiledRouterNode_conflicts_wit;
PyObject *__pyx_n_s_CompiledRouterNode_matches;
PyObject *__pyx_n_s_CompiledRouterOptions;
+ PyObject *__pyx_kp_s_CompiledRouterOptions_2;
PyObject *__pyx_n_s_CompiledRouterOptions___init;
PyObject *__pyx_n_s_CompiledRouterOptions___init___l;
PyObject *__pyx_n_s_CompiledRouter___init;
@@ -2976,6 +3047,11 @@ typedef struct {
PyObject *__pyx_n_s_ConverterDict___setitem;
PyObject *__pyx_n_s_ConverterDict__validate;
PyObject *__pyx_n_s_ConverterDict_update;
+ PyObject *__pyx_n_s_CxChild;
+ PyObject *__pyx_n_u_CxChild;
+ PyObject *__pyx_n_s_CxChild_src;
+ PyObject *__pyx_n_s_CxElement;
+ PyObject *__pyx_kp_s_CxElement_2;
PyObject *__pyx_n_s_CxIfConverterField;
PyObject *__pyx_n_s_CxIfConverterField___init;
PyObject *__pyx_n_s_CxIfConverterField_src;
@@ -2989,6 +3065,8 @@ typedef struct {
PyObject *__pyx_n_s_CxIfPathSegmentPattern___init;
PyObject *__pyx_n_s_CxIfPathSegmentPattern_src;
PyObject *__pyx_n_s_CxParent;
+ PyObject *__pyx_n_u_CxParent;
+ PyObject *__pyx_kp_s_CxParent_2;
PyObject *__pyx_n_s_CxParent___init;
PyObject *__pyx_n_s_CxParent__children_src;
PyObject *__pyx_n_s_CxParent_append_child;
@@ -3022,6 +3100,7 @@ typedef struct {
PyObject *__pyx_n_s_CxVariableFromPatternMatch___in;
PyObject *__pyx_n_s_CxVariableFromPatternMatch_src;
PyObject *__pyx_kp_s_Defines_a_set_of_configurable_ro;
+ PyObject *__pyx_n_s_Dict;
PyObject *__pyx_kp_u_FIELD;
PyObject *__pyx_n_s_FIELD_PATTERN;
PyObject *__pyx_kp_s_Fast_URI_router_which_compiles_i;
@@ -3029,31 +3108,49 @@ typedef struct {
PyObject *__pyx_kp_u_Field_names_must_be_valid_identi;
PyObject *__pyx_n_s_IDENTIFIER_PATTERN;
PyObject *__pyx_kp_u_Invalid_converter_name_Names_may;
+ PyObject *__pyx_n_s_List;
+ PyObject *__pyx_kp_s_List_CompiledRouterNode;
+ PyObject *__pyx_kp_s_List_Pattern;
+ PyObject *__pyx_kp_s_List__CxElement;
PyObject *__pyx_n_s_Lock;
PyObject *__pyx_kp_u_Missing_converter_for_field_0;
+ PyObject *__pyx_n_s_None;
+ PyObject *__pyx_n_s_NotImplementedError;
+ PyObject *__pyx_n_s_Optional;
+ PyObject *__pyx_kp_s_Optional_Request;
+ PyObject *__pyx_kp_s_Optional_dict;
+ PyObject *__pyx_kp_s_Optional_object;
+ PyObject *__pyx_kp_s_Optional_str;
PyObject *__pyx_kp_u_P_2;
PyObject *__pyx_kp_u_P_fname_P_cname_sep_P_cname_P_a;
+ PyObject *__pyx_n_s_Pattern;
PyObject *__pyx_kp_s_Represents_a_single_URI_segment;
+ PyObject *__pyx_n_s_Request;
+ PyObject *__pyx_n_s_Set;
+ PyObject *__pyx_kp_s_Set_str;
PyObject *__pyx_n_s_TAB_STR;
+ PyObject *__pyx_n_s_TYPE_CHECKING;
PyObject *__pyx_kp_u_The_URI_template_for_this_route;
PyObject *__pyx_kp_u_The_responder_must_be_a_non_bloc;
PyObject *__pyx_kp_u_The_responder_must_be_a_regular;
PyObject *__pyx_n_s_TypeError;
PyObject *__pyx_kp_u_URI_templates_may_not_include_wh;
+ PyObject *__pyx_n_s_Union;
PyObject *__pyx_kp_u_Unknown_converter_0;
PyObject *__pyx_n_s_UserDict;
PyObject *__pyx_n_s_ValueError;
PyObject *__pyx_kp_u__10;
PyObject *__pyx_kp_u__11;
PyObject *__pyx_kp_u__12;
- PyObject *__pyx_n_s__131;
- PyObject *__pyx_kp_u__14;
+ PyObject *__pyx_kp_u__13;
+ PyObject *__pyx_n_s__135;
PyObject *__pyx_kp_u__15;
PyObject *__pyx_kp_u__16;
- PyObject *__pyx_n_s__18;
- PyObject *__pyx_kp_u__19;
- PyObject *__pyx_n_s__42;
- PyObject *__pyx_kp_u__9;
+ PyObject *__pyx_kp_u__17;
+ PyObject *__pyx_n_s__19;
+ PyObject *__pyx_kp_u__2;
+ PyObject *__pyx_kp_u__21;
+ PyObject *__pyx_n_s__44;
PyObject *__pyx_n_s_add;
PyObject *__pyx_n_s_add_route;
PyObject *__pyx_n_s_append;
@@ -3066,6 +3163,7 @@ typedef struct {
PyObject *__pyx_n_s_ast;
PyObject *__pyx_n_u_ast;
PyObject *__pyx_n_s_asyncio_coroutines;
+ PyObject *__pyx_n_s_bool;
PyObject *__pyx_n_s_builtins;
PyObject *__pyx_n_s_child;
PyObject *__pyx_n_s_children;
@@ -3101,9 +3199,16 @@ typedef struct {
PyObject *__pyx_n_s_converters_2;
PyObject *__pyx_n_u_converters_2;
PyObject *__pyx_n_s_copy;
+ PyObject *__pyx_n_s_cx_converter;
+ PyObject *__pyx_n_s_cx_literal;
+ PyObject *__pyx_n_s_cx_path_len;
+ PyObject *__pyx_n_s_cx_pattern;
+ PyObject *__pyx_n_s_cx_pattern_match;
+ PyObject *__pyx_n_s_cx_segment;
PyObject *__pyx_n_s_data;
PyObject *__pyx_kp_u_def_find_path_return_values_patt;
PyObject *__pyx_n_s_dict;
+ PyObject *__pyx_n_s_dict_2;
PyObject *__pyx_kp_u_dict_groups__0;
PyObject *__pyx_kp_u_dict_match__0;
PyObject *__pyx_n_s_dict_value_name;
@@ -3118,6 +3223,7 @@ typedef struct {
PyObject *__pyx_n_s_eval;
PyObject *__pyx_n_u_exec;
PyObject *__pyx_n_s_exit;
+ PyObject *__pyx_n_s_falcon_request;
PyObject *__pyx_n_s_falcon_routing;
PyObject *__pyx_n_s_falcon_routing_compiled;
PyObject *__pyx_kp_s_falcon_routing_compiled_py;
@@ -3160,6 +3266,7 @@ typedef struct {
PyObject *__pyx_n_s_insert;
PyObject *__pyx_n_s_inspect;
PyObject *__pyx_n_s_instantiate_converter;
+ PyObject *__pyx_n_s_int;
PyObject *__pyx_n_s_is_complex;
PyObject *__pyx_n_s_is_coroutine;
PyObject *__pyx_n_s_is_identifier;
@@ -3179,7 +3286,6 @@ typedef struct {
PyObject *__pyx_n_s_let;
PyObject *__pyx_n_s_level;
PyObject *__pyx_n_s_lines;
- PyObject *__pyx_n_s_list;
PyObject *__pyx_n_s_literal;
PyObject *__pyx_n_s_literal_2;
PyObject *__pyx_n_s_lstrip;
@@ -3203,6 +3309,7 @@ typedef struct {
PyObject *__pyx_n_s_node_2;
PyObject *__pyx_n_s_nodes;
PyObject *__pyx_n_s_num_fields;
+ PyObject *__pyx_n_s_object;
PyObject *__pyx_n_s_options;
PyObject *__pyx_n_u_options;
PyObject *__pyx_n_s_options_2;
@@ -3236,6 +3343,7 @@ typedef struct {
PyObject *__pyx_n_s_resource;
PyObject *__pyx_n_s_resource_idx;
PyObject *__pyx_n_s_responder;
+ PyObject *__pyx_n_s_return;
PyObject *__pyx_kp_u_return_None;
PyObject *__pyx_n_s_return_values;
PyObject *__pyx_n_u_return_values;
@@ -3253,7 +3361,6 @@ typedef struct {
PyObject *__pyx_n_s_set_default_responders;
PyObject *__pyx_n_s_set_name;
PyObject *__pyx_n_s_setitem;
- PyObject *__pyx_n_s_setter;
PyObject *__pyx_n_s_should_wrap_non_coroutines;
PyObject *__pyx_n_s_slots;
PyObject *__pyx_n_s_sorted;
@@ -3262,6 +3369,7 @@ typedef struct {
PyObject *__pyx_n_s_split;
PyObject *__pyx_n_s_src;
PyObject *__pyx_n_s_src_lines;
+ PyObject *__pyx_n_s_str;
PyObject *__pyx_kp_u_string;
PyObject *__pyx_n_s_sub;
PyObject *__pyx_n_s_suffix;
@@ -3271,6 +3379,7 @@ typedef struct {
PyObject *__pyx_n_s_test;
PyObject *__pyx_n_s_threading;
PyObject *__pyx_n_s_throw;
+ PyObject *__pyx_n_s_typing;
PyObject *__pyx_n_s_unique_idx;
PyObject *__pyx_n_s_unique_idx_2;
PyObject *__pyx_n_s_update;
@@ -3289,42 +3398,42 @@ typedef struct {
PyObject *__pyx_n_s_wrap_sync_to_async;
PyObject *__pyx_int_0;
PyObject *__pyx_int_1;
- PyObject *__pyx_tuple__2;
PyObject *__pyx_tuple__3;
PyObject *__pyx_tuple__4;
- PyObject *__pyx_tuple__6;
+ PyObject *__pyx_tuple__5;
PyObject *__pyx_tuple__7;
- PyObject *__pyx_tuple__13;
- PyObject *__pyx_tuple__17;
+ PyObject *__pyx_tuple__8;
+ PyObject *__pyx_tuple__14;
+ PyObject *__pyx_tuple__18;
PyObject *__pyx_tuple__20;
- PyObject *__pyx_tuple__21;
PyObject *__pyx_tuple__22;
PyObject *__pyx_tuple__23;
+ PyObject *__pyx_tuple__24;
PyObject *__pyx_tuple__25;
PyObject *__pyx_tuple__27;
PyObject *__pyx_tuple__29;
PyObject *__pyx_tuple__31;
PyObject *__pyx_tuple__33;
PyObject *__pyx_tuple__35;
- PyObject *__pyx_tuple__36;
+ PyObject *__pyx_tuple__37;
PyObject *__pyx_tuple__38;
PyObject *__pyx_tuple__40;
- PyObject *__pyx_tuple__43;
+ PyObject *__pyx_tuple__42;
PyObject *__pyx_tuple__45;
- PyObject *__pyx_tuple__46;
+ PyObject *__pyx_tuple__47;
PyObject *__pyx_tuple__48;
PyObject *__pyx_tuple__50;
PyObject *__pyx_tuple__52;
- PyObject *__pyx_tuple__53;
+ PyObject *__pyx_tuple__54;
PyObject *__pyx_tuple__55;
PyObject *__pyx_tuple__57;
- PyObject *__pyx_tuple__58;
+ PyObject *__pyx_tuple__59;
PyObject *__pyx_tuple__60;
PyObject *__pyx_tuple__62;
PyObject *__pyx_tuple__64;
PyObject *__pyx_tuple__66;
PyObject *__pyx_tuple__68;
- PyObject *__pyx_tuple__69;
+ PyObject *__pyx_tuple__70;
PyObject *__pyx_tuple__71;
PyObject *__pyx_tuple__73;
PyObject *__pyx_tuple__75;
@@ -3340,8 +3449,8 @@ typedef struct {
PyObject *__pyx_tuple__95;
PyObject *__pyx_tuple__97;
PyObject *__pyx_tuple__99;
- PyObject *__pyx_codeobj__5;
- PyObject *__pyx_codeobj__8;
+ PyObject *__pyx_codeobj__6;
+ PyObject *__pyx_codeobj__9;
PyObject *__pyx_tuple__101;
PyObject *__pyx_tuple__103;
PyObject *__pyx_tuple__105;
@@ -3357,27 +3466,28 @@ typedef struct {
PyObject *__pyx_tuple__125;
PyObject *__pyx_tuple__127;
PyObject *__pyx_tuple__129;
- PyObject *__pyx_codeobj__24;
+ PyObject *__pyx_tuple__131;
+ PyObject *__pyx_tuple__133;
PyObject *__pyx_codeobj__26;
PyObject *__pyx_codeobj__28;
PyObject *__pyx_codeobj__30;
PyObject *__pyx_codeobj__32;
PyObject *__pyx_codeobj__34;
- PyObject *__pyx_codeobj__37;
+ PyObject *__pyx_codeobj__36;
PyObject *__pyx_codeobj__39;
PyObject *__pyx_codeobj__41;
- PyObject *__pyx_codeobj__44;
- PyObject *__pyx_codeobj__47;
+ PyObject *__pyx_codeobj__43;
+ PyObject *__pyx_codeobj__46;
PyObject *__pyx_codeobj__49;
PyObject *__pyx_codeobj__51;
- PyObject *__pyx_codeobj__54;
+ PyObject *__pyx_codeobj__53;
PyObject *__pyx_codeobj__56;
- PyObject *__pyx_codeobj__59;
+ PyObject *__pyx_codeobj__58;
PyObject *__pyx_codeobj__61;
PyObject *__pyx_codeobj__63;
PyObject *__pyx_codeobj__65;
PyObject *__pyx_codeobj__67;
- PyObject *__pyx_codeobj__70;
+ PyObject *__pyx_codeobj__69;
PyObject *__pyx_codeobj__72;
PyObject *__pyx_codeobj__74;
PyObject *__pyx_codeobj__76;
@@ -3408,6 +3518,8 @@ typedef struct {
PyObject *__pyx_codeobj__126;
PyObject *__pyx_codeobj__128;
PyObject *__pyx_codeobj__130;
+ PyObject *__pyx_codeobj__132;
+ PyObject *__pyx_codeobj__134;
} __pyx_mstate;
#ifdef __cplusplus
@@ -3467,9 +3579,12 @@ static int __pyx_m_clear(PyObject *m) {
Py_CLEAR(clear_module_state->__pyx_kp_u_0_return_return_values_1);
Py_CLEAR(clear_module_state->__pyx_kp_u_A_Za_z__A_Za_z0_9);
Py_CLEAR(clear_module_state->__pyx_kp_s_A_dict_like_class_for_storing_fi);
+ Py_CLEAR(clear_module_state->__pyx_n_s_Any);
Py_CLEAR(clear_module_state->__pyx_n_s_AssertionError);
Py_CLEAR(clear_module_state->__pyx_n_s_AttributeError);
Py_CLEAR(clear_module_state->__pyx_n_s_BUILTIN);
+ Py_CLEAR(clear_module_state->__pyx_n_s_Callable);
+ Py_CLEAR(clear_module_state->__pyx_kp_s_Callable_2);
Py_CLEAR(clear_module_state->__pyx_kp_u_Cannot_instantiate_converter);
Py_CLEAR(clear_module_state->__pyx_n_s_CompiledRouter);
Py_CLEAR(clear_module_state->__pyx_n_s_CompiledRouterNode);
@@ -3478,6 +3593,7 @@ static int __pyx_m_clear(PyObject *m) {
Py_CLEAR(clear_module_state->__pyx_n_s_CompiledRouterNode_conflicts_wit);
Py_CLEAR(clear_module_state->__pyx_n_s_CompiledRouterNode_matches);
Py_CLEAR(clear_module_state->__pyx_n_s_CompiledRouterOptions);
+ Py_CLEAR(clear_module_state->__pyx_kp_s_CompiledRouterOptions_2);
Py_CLEAR(clear_module_state->__pyx_n_s_CompiledRouterOptions___init);
Py_CLEAR(clear_module_state->__pyx_n_s_CompiledRouterOptions___init___l);
Py_CLEAR(clear_module_state->__pyx_n_s_CompiledRouter___init);
@@ -3501,6 +3617,11 @@ static int __pyx_m_clear(PyObject *m) {
Py_CLEAR(clear_module_state->__pyx_n_s_ConverterDict___setitem);
Py_CLEAR(clear_module_state->__pyx_n_s_ConverterDict__validate);
Py_CLEAR(clear_module_state->__pyx_n_s_ConverterDict_update);
+ Py_CLEAR(clear_module_state->__pyx_n_s_CxChild);
+ Py_CLEAR(clear_module_state->__pyx_n_u_CxChild);
+ Py_CLEAR(clear_module_state->__pyx_n_s_CxChild_src);
+ Py_CLEAR(clear_module_state->__pyx_n_s_CxElement);
+ Py_CLEAR(clear_module_state->__pyx_kp_s_CxElement_2);
Py_CLEAR(clear_module_state->__pyx_n_s_CxIfConverterField);
Py_CLEAR(clear_module_state->__pyx_n_s_CxIfConverterField___init);
Py_CLEAR(clear_module_state->__pyx_n_s_CxIfConverterField_src);
@@ -3514,6 +3635,8 @@ static int __pyx_m_clear(PyObject *m) {
Py_CLEAR(clear_module_state->__pyx_n_s_CxIfPathSegmentPattern___init);
Py_CLEAR(clear_module_state->__pyx_n_s_CxIfPathSegmentPattern_src);
Py_CLEAR(clear_module_state->__pyx_n_s_CxParent);
+ Py_CLEAR(clear_module_state->__pyx_n_u_CxParent);
+ Py_CLEAR(clear_module_state->__pyx_kp_s_CxParent_2);
Py_CLEAR(clear_module_state->__pyx_n_s_CxParent___init);
Py_CLEAR(clear_module_state->__pyx_n_s_CxParent__children_src);
Py_CLEAR(clear_module_state->__pyx_n_s_CxParent_append_child);
@@ -3547,6 +3670,7 @@ static int __pyx_m_clear(PyObject *m) {
Py_CLEAR(clear_module_state->__pyx_n_s_CxVariableFromPatternMatch___in);
Py_CLEAR(clear_module_state->__pyx_n_s_CxVariableFromPatternMatch_src);
Py_CLEAR(clear_module_state->__pyx_kp_s_Defines_a_set_of_configurable_ro);
+ Py_CLEAR(clear_module_state->__pyx_n_s_Dict);
Py_CLEAR(clear_module_state->__pyx_kp_u_FIELD);
Py_CLEAR(clear_module_state->__pyx_n_s_FIELD_PATTERN);
Py_CLEAR(clear_module_state->__pyx_kp_s_Fast_URI_router_which_compiles_i);
@@ -3554,31 +3678,49 @@ static int __pyx_m_clear(PyObject *m) {
Py_CLEAR(clear_module_state->__pyx_kp_u_Field_names_must_be_valid_identi);
Py_CLEAR(clear_module_state->__pyx_n_s_IDENTIFIER_PATTERN);
Py_CLEAR(clear_module_state->__pyx_kp_u_Invalid_converter_name_Names_may);
+ Py_CLEAR(clear_module_state->__pyx_n_s_List);
+ Py_CLEAR(clear_module_state->__pyx_kp_s_List_CompiledRouterNode);
+ Py_CLEAR(clear_module_state->__pyx_kp_s_List_Pattern);
+ Py_CLEAR(clear_module_state->__pyx_kp_s_List__CxElement);
Py_CLEAR(clear_module_state->__pyx_n_s_Lock);
Py_CLEAR(clear_module_state->__pyx_kp_u_Missing_converter_for_field_0);
+ Py_CLEAR(clear_module_state->__pyx_n_s_None);
+ Py_CLEAR(clear_module_state->__pyx_n_s_NotImplementedError);
+ Py_CLEAR(clear_module_state->__pyx_n_s_Optional);
+ Py_CLEAR(clear_module_state->__pyx_kp_s_Optional_Request);
+ Py_CLEAR(clear_module_state->__pyx_kp_s_Optional_dict);
+ Py_CLEAR(clear_module_state->__pyx_kp_s_Optional_object);
+ Py_CLEAR(clear_module_state->__pyx_kp_s_Optional_str);
Py_CLEAR(clear_module_state->__pyx_kp_u_P_2);
Py_CLEAR(clear_module_state->__pyx_kp_u_P_fname_P_cname_sep_P_cname_P_a);
+ Py_CLEAR(clear_module_state->__pyx_n_s_Pattern);
Py_CLEAR(clear_module_state->__pyx_kp_s_Represents_a_single_URI_segment);
+ Py_CLEAR(clear_module_state->__pyx_n_s_Request);
+ Py_CLEAR(clear_module_state->__pyx_n_s_Set);
+ Py_CLEAR(clear_module_state->__pyx_kp_s_Set_str);
Py_CLEAR(clear_module_state->__pyx_n_s_TAB_STR);
+ Py_CLEAR(clear_module_state->__pyx_n_s_TYPE_CHECKING);
Py_CLEAR(clear_module_state->__pyx_kp_u_The_URI_template_for_this_route);
Py_CLEAR(clear_module_state->__pyx_kp_u_The_responder_must_be_a_non_bloc);
Py_CLEAR(clear_module_state->__pyx_kp_u_The_responder_must_be_a_regular);
Py_CLEAR(clear_module_state->__pyx_n_s_TypeError);
Py_CLEAR(clear_module_state->__pyx_kp_u_URI_templates_may_not_include_wh);
+ Py_CLEAR(clear_module_state->__pyx_n_s_Union);
Py_CLEAR(clear_module_state->__pyx_kp_u_Unknown_converter_0);
Py_CLEAR(clear_module_state->__pyx_n_s_UserDict);
Py_CLEAR(clear_module_state->__pyx_n_s_ValueError);
Py_CLEAR(clear_module_state->__pyx_kp_u__10);
Py_CLEAR(clear_module_state->__pyx_kp_u__11);
Py_CLEAR(clear_module_state->__pyx_kp_u__12);
- Py_CLEAR(clear_module_state->__pyx_n_s__131);
- Py_CLEAR(clear_module_state->__pyx_kp_u__14);
+ Py_CLEAR(clear_module_state->__pyx_kp_u__13);
+ Py_CLEAR(clear_module_state->__pyx_n_s__135);
Py_CLEAR(clear_module_state->__pyx_kp_u__15);
Py_CLEAR(clear_module_state->__pyx_kp_u__16);
- Py_CLEAR(clear_module_state->__pyx_n_s__18);
- Py_CLEAR(clear_module_state->__pyx_kp_u__19);
- Py_CLEAR(clear_module_state->__pyx_n_s__42);
- Py_CLEAR(clear_module_state->__pyx_kp_u__9);
+ Py_CLEAR(clear_module_state->__pyx_kp_u__17);
+ Py_CLEAR(clear_module_state->__pyx_n_s__19);
+ Py_CLEAR(clear_module_state->__pyx_kp_u__2);
+ Py_CLEAR(clear_module_state->__pyx_kp_u__21);
+ Py_CLEAR(clear_module_state->__pyx_n_s__44);
Py_CLEAR(clear_module_state->__pyx_n_s_add);
Py_CLEAR(clear_module_state->__pyx_n_s_add_route);
Py_CLEAR(clear_module_state->__pyx_n_s_append);
@@ -3591,6 +3733,7 @@ static int __pyx_m_clear(PyObject *m) {
Py_CLEAR(clear_module_state->__pyx_n_s_ast);
Py_CLEAR(clear_module_state->__pyx_n_u_ast);
Py_CLEAR(clear_module_state->__pyx_n_s_asyncio_coroutines);
+ Py_CLEAR(clear_module_state->__pyx_n_s_bool);
Py_CLEAR(clear_module_state->__pyx_n_s_builtins);
Py_CLEAR(clear_module_state->__pyx_n_s_child);
Py_CLEAR(clear_module_state->__pyx_n_s_children);
@@ -3626,9 +3769,16 @@ static int __pyx_m_clear(PyObject *m) {
Py_CLEAR(clear_module_state->__pyx_n_s_converters_2);
Py_CLEAR(clear_module_state->__pyx_n_u_converters_2);
Py_CLEAR(clear_module_state->__pyx_n_s_copy);
+ Py_CLEAR(clear_module_state->__pyx_n_s_cx_converter);
+ Py_CLEAR(clear_module_state->__pyx_n_s_cx_literal);
+ Py_CLEAR(clear_module_state->__pyx_n_s_cx_path_len);
+ Py_CLEAR(clear_module_state->__pyx_n_s_cx_pattern);
+ Py_CLEAR(clear_module_state->__pyx_n_s_cx_pattern_match);
+ Py_CLEAR(clear_module_state->__pyx_n_s_cx_segment);
Py_CLEAR(clear_module_state->__pyx_n_s_data);
Py_CLEAR(clear_module_state->__pyx_kp_u_def_find_path_return_values_patt);
Py_CLEAR(clear_module_state->__pyx_n_s_dict);
+ Py_CLEAR(clear_module_state->__pyx_n_s_dict_2);
Py_CLEAR(clear_module_state->__pyx_kp_u_dict_groups__0);
Py_CLEAR(clear_module_state->__pyx_kp_u_dict_match__0);
Py_CLEAR(clear_module_state->__pyx_n_s_dict_value_name);
@@ -3643,6 +3793,7 @@ static int __pyx_m_clear(PyObject *m) {
Py_CLEAR(clear_module_state->__pyx_n_s_eval);
Py_CLEAR(clear_module_state->__pyx_n_u_exec);
Py_CLEAR(clear_module_state->__pyx_n_s_exit);
+ Py_CLEAR(clear_module_state->__pyx_n_s_falcon_request);
Py_CLEAR(clear_module_state->__pyx_n_s_falcon_routing);
Py_CLEAR(clear_module_state->__pyx_n_s_falcon_routing_compiled);
Py_CLEAR(clear_module_state->__pyx_kp_s_falcon_routing_compiled_py);
@@ -3685,6 +3836,7 @@ static int __pyx_m_clear(PyObject *m) {
Py_CLEAR(clear_module_state->__pyx_n_s_insert);
Py_CLEAR(clear_module_state->__pyx_n_s_inspect);
Py_CLEAR(clear_module_state->__pyx_n_s_instantiate_converter);
+ Py_CLEAR(clear_module_state->__pyx_n_s_int);
Py_CLEAR(clear_module_state->__pyx_n_s_is_complex);
Py_CLEAR(clear_module_state->__pyx_n_s_is_coroutine);
Py_CLEAR(clear_module_state->__pyx_n_s_is_identifier);
@@ -3704,7 +3856,6 @@ static int __pyx_m_clear(PyObject *m) {
Py_CLEAR(clear_module_state->__pyx_n_s_let);
Py_CLEAR(clear_module_state->__pyx_n_s_level);
Py_CLEAR(clear_module_state->__pyx_n_s_lines);
- Py_CLEAR(clear_module_state->__pyx_n_s_list);
Py_CLEAR(clear_module_state->__pyx_n_s_literal);
Py_CLEAR(clear_module_state->__pyx_n_s_literal_2);
Py_CLEAR(clear_module_state->__pyx_n_s_lstrip);
@@ -3728,6 +3879,7 @@ static int __pyx_m_clear(PyObject *m) {
Py_CLEAR(clear_module_state->__pyx_n_s_node_2);
Py_CLEAR(clear_module_state->__pyx_n_s_nodes);
Py_CLEAR(clear_module_state->__pyx_n_s_num_fields);
+ Py_CLEAR(clear_module_state->__pyx_n_s_object);
Py_CLEAR(clear_module_state->__pyx_n_s_options);
Py_CLEAR(clear_module_state->__pyx_n_u_options);
Py_CLEAR(clear_module_state->__pyx_n_s_options_2);
@@ -3761,6 +3913,7 @@ static int __pyx_m_clear(PyObject *m) {
Py_CLEAR(clear_module_state->__pyx_n_s_resource);
Py_CLEAR(clear_module_state->__pyx_n_s_resource_idx);
Py_CLEAR(clear_module_state->__pyx_n_s_responder);
+ Py_CLEAR(clear_module_state->__pyx_n_s_return);
Py_CLEAR(clear_module_state->__pyx_kp_u_return_None);
Py_CLEAR(clear_module_state->__pyx_n_s_return_values);
Py_CLEAR(clear_module_state->__pyx_n_u_return_values);
@@ -3778,7 +3931,6 @@ static int __pyx_m_clear(PyObject *m) {
Py_CLEAR(clear_module_state->__pyx_n_s_set_default_responders);
Py_CLEAR(clear_module_state->__pyx_n_s_set_name);
Py_CLEAR(clear_module_state->__pyx_n_s_setitem);
- Py_CLEAR(clear_module_state->__pyx_n_s_setter);
Py_CLEAR(clear_module_state->__pyx_n_s_should_wrap_non_coroutines);
Py_CLEAR(clear_module_state->__pyx_n_s_slots);
Py_CLEAR(clear_module_state->__pyx_n_s_sorted);
@@ -3787,6 +3939,7 @@ static int __pyx_m_clear(PyObject *m) {
Py_CLEAR(clear_module_state->__pyx_n_s_split);
Py_CLEAR(clear_module_state->__pyx_n_s_src);
Py_CLEAR(clear_module_state->__pyx_n_s_src_lines);
+ Py_CLEAR(clear_module_state->__pyx_n_s_str);
Py_CLEAR(clear_module_state->__pyx_kp_u_string);
Py_CLEAR(clear_module_state->__pyx_n_s_sub);
Py_CLEAR(clear_module_state->__pyx_n_s_suffix);
@@ -3796,6 +3949,7 @@ static int __pyx_m_clear(PyObject *m) {
Py_CLEAR(clear_module_state->__pyx_n_s_test);
Py_CLEAR(clear_module_state->__pyx_n_s_threading);
Py_CLEAR(clear_module_state->__pyx_n_s_throw);
+ Py_CLEAR(clear_module_state->__pyx_n_s_typing);
Py_CLEAR(clear_module_state->__pyx_n_s_unique_idx);
Py_CLEAR(clear_module_state->__pyx_n_s_unique_idx_2);
Py_CLEAR(clear_module_state->__pyx_n_s_update);
@@ -3814,42 +3968,42 @@ static int __pyx_m_clear(PyObject *m) {
Py_CLEAR(clear_module_state->__pyx_n_s_wrap_sync_to_async);
Py_CLEAR(clear_module_state->__pyx_int_0);
Py_CLEAR(clear_module_state->__pyx_int_1);
- Py_CLEAR(clear_module_state->__pyx_tuple__2);
Py_CLEAR(clear_module_state->__pyx_tuple__3);
Py_CLEAR(clear_module_state->__pyx_tuple__4);
- Py_CLEAR(clear_module_state->__pyx_tuple__6);
+ Py_CLEAR(clear_module_state->__pyx_tuple__5);
Py_CLEAR(clear_module_state->__pyx_tuple__7);
- Py_CLEAR(clear_module_state->__pyx_tuple__13);
- Py_CLEAR(clear_module_state->__pyx_tuple__17);
+ Py_CLEAR(clear_module_state->__pyx_tuple__8);
+ Py_CLEAR(clear_module_state->__pyx_tuple__14);
+ Py_CLEAR(clear_module_state->__pyx_tuple__18);
Py_CLEAR(clear_module_state->__pyx_tuple__20);
- Py_CLEAR(clear_module_state->__pyx_tuple__21);
Py_CLEAR(clear_module_state->__pyx_tuple__22);
Py_CLEAR(clear_module_state->__pyx_tuple__23);
+ Py_CLEAR(clear_module_state->__pyx_tuple__24);
Py_CLEAR(clear_module_state->__pyx_tuple__25);
Py_CLEAR(clear_module_state->__pyx_tuple__27);
Py_CLEAR(clear_module_state->__pyx_tuple__29);
Py_CLEAR(clear_module_state->__pyx_tuple__31);
Py_CLEAR(clear_module_state->__pyx_tuple__33);
Py_CLEAR(clear_module_state->__pyx_tuple__35);
- Py_CLEAR(clear_module_state->__pyx_tuple__36);
+ Py_CLEAR(clear_module_state->__pyx_tuple__37);
Py_CLEAR(clear_module_state->__pyx_tuple__38);
Py_CLEAR(clear_module_state->__pyx_tuple__40);
- Py_CLEAR(clear_module_state->__pyx_tuple__43);
+ Py_CLEAR(clear_module_state->__pyx_tuple__42);
Py_CLEAR(clear_module_state->__pyx_tuple__45);
- Py_CLEAR(clear_module_state->__pyx_tuple__46);
+ Py_CLEAR(clear_module_state->__pyx_tuple__47);
Py_CLEAR(clear_module_state->__pyx_tuple__48);
Py_CLEAR(clear_module_state->__pyx_tuple__50);
Py_CLEAR(clear_module_state->__pyx_tuple__52);
- Py_CLEAR(clear_module_state->__pyx_tuple__53);
+ Py_CLEAR(clear_module_state->__pyx_tuple__54);
Py_CLEAR(clear_module_state->__pyx_tuple__55);
Py_CLEAR(clear_module_state->__pyx_tuple__57);
- Py_CLEAR(clear_module_state->__pyx_tuple__58);
+ Py_CLEAR(clear_module_state->__pyx_tuple__59);
Py_CLEAR(clear_module_state->__pyx_tuple__60);
Py_CLEAR(clear_module_state->__pyx_tuple__62);
Py_CLEAR(clear_module_state->__pyx_tuple__64);
Py_CLEAR(clear_module_state->__pyx_tuple__66);
Py_CLEAR(clear_module_state->__pyx_tuple__68);
- Py_CLEAR(clear_module_state->__pyx_tuple__69);
+ Py_CLEAR(clear_module_state->__pyx_tuple__70);
Py_CLEAR(clear_module_state->__pyx_tuple__71);
Py_CLEAR(clear_module_state->__pyx_tuple__73);
Py_CLEAR(clear_module_state->__pyx_tuple__75);
@@ -3865,8 +4019,8 @@ static int __pyx_m_clear(PyObject *m) {
Py_CLEAR(clear_module_state->__pyx_tuple__95);
Py_CLEAR(clear_module_state->__pyx_tuple__97);
Py_CLEAR(clear_module_state->__pyx_tuple__99);
- Py_CLEAR(clear_module_state->__pyx_codeobj__5);
- Py_CLEAR(clear_module_state->__pyx_codeobj__8);
+ Py_CLEAR(clear_module_state->__pyx_codeobj__6);
+ Py_CLEAR(clear_module_state->__pyx_codeobj__9);
Py_CLEAR(clear_module_state->__pyx_tuple__101);
Py_CLEAR(clear_module_state->__pyx_tuple__103);
Py_CLEAR(clear_module_state->__pyx_tuple__105);
@@ -3882,27 +4036,28 @@ static int __pyx_m_clear(PyObject *m) {
Py_CLEAR(clear_module_state->__pyx_tuple__125);
Py_CLEAR(clear_module_state->__pyx_tuple__127);
Py_CLEAR(clear_module_state->__pyx_tuple__129);
- Py_CLEAR(clear_module_state->__pyx_codeobj__24);
+ Py_CLEAR(clear_module_state->__pyx_tuple__131);
+ Py_CLEAR(clear_module_state->__pyx_tuple__133);
Py_CLEAR(clear_module_state->__pyx_codeobj__26);
Py_CLEAR(clear_module_state->__pyx_codeobj__28);
Py_CLEAR(clear_module_state->__pyx_codeobj__30);
Py_CLEAR(clear_module_state->__pyx_codeobj__32);
Py_CLEAR(clear_module_state->__pyx_codeobj__34);
- Py_CLEAR(clear_module_state->__pyx_codeobj__37);
+ Py_CLEAR(clear_module_state->__pyx_codeobj__36);
Py_CLEAR(clear_module_state->__pyx_codeobj__39);
Py_CLEAR(clear_module_state->__pyx_codeobj__41);
- Py_CLEAR(clear_module_state->__pyx_codeobj__44);
- Py_CLEAR(clear_module_state->__pyx_codeobj__47);
+ Py_CLEAR(clear_module_state->__pyx_codeobj__43);
+ Py_CLEAR(clear_module_state->__pyx_codeobj__46);
Py_CLEAR(clear_module_state->__pyx_codeobj__49);
Py_CLEAR(clear_module_state->__pyx_codeobj__51);
- Py_CLEAR(clear_module_state->__pyx_codeobj__54);
+ Py_CLEAR(clear_module_state->__pyx_codeobj__53);
Py_CLEAR(clear_module_state->__pyx_codeobj__56);
- Py_CLEAR(clear_module_state->__pyx_codeobj__59);
+ Py_CLEAR(clear_module_state->__pyx_codeobj__58);
Py_CLEAR(clear_module_state->__pyx_codeobj__61);
Py_CLEAR(clear_module_state->__pyx_codeobj__63);
Py_CLEAR(clear_module_state->__pyx_codeobj__65);
Py_CLEAR(clear_module_state->__pyx_codeobj__67);
- Py_CLEAR(clear_module_state->__pyx_codeobj__70);
+ Py_CLEAR(clear_module_state->__pyx_codeobj__69);
Py_CLEAR(clear_module_state->__pyx_codeobj__72);
Py_CLEAR(clear_module_state->__pyx_codeobj__74);
Py_CLEAR(clear_module_state->__pyx_codeobj__76);
@@ -3933,6 +4088,8 @@ static int __pyx_m_clear(PyObject *m) {
Py_CLEAR(clear_module_state->__pyx_codeobj__126);
Py_CLEAR(clear_module_state->__pyx_codeobj__128);
Py_CLEAR(clear_module_state->__pyx_codeobj__130);
+ Py_CLEAR(clear_module_state->__pyx_codeobj__132);
+ Py_CLEAR(clear_module_state->__pyx_codeobj__134);
return 0;
}
#endif
@@ -3979,9 +4136,12 @@ static int __pyx_m_traverse(PyObject *m, visitproc visit, void *arg) {
Py_VISIT(traverse_module_state->__pyx_kp_u_0_return_return_values_1);
Py_VISIT(traverse_module_state->__pyx_kp_u_A_Za_z__A_Za_z0_9);
Py_VISIT(traverse_module_state->__pyx_kp_s_A_dict_like_class_for_storing_fi);
+ Py_VISIT(traverse_module_state->__pyx_n_s_Any);
Py_VISIT(traverse_module_state->__pyx_n_s_AssertionError);
Py_VISIT(traverse_module_state->__pyx_n_s_AttributeError);
Py_VISIT(traverse_module_state->__pyx_n_s_BUILTIN);
+ Py_VISIT(traverse_module_state->__pyx_n_s_Callable);
+ Py_VISIT(traverse_module_state->__pyx_kp_s_Callable_2);
Py_VISIT(traverse_module_state->__pyx_kp_u_Cannot_instantiate_converter);
Py_VISIT(traverse_module_state->__pyx_n_s_CompiledRouter);
Py_VISIT(traverse_module_state->__pyx_n_s_CompiledRouterNode);
@@ -3990,6 +4150,7 @@ static int __pyx_m_traverse(PyObject *m, visitproc visit, void *arg) {
Py_VISIT(traverse_module_state->__pyx_n_s_CompiledRouterNode_conflicts_wit);
Py_VISIT(traverse_module_state->__pyx_n_s_CompiledRouterNode_matches);
Py_VISIT(traverse_module_state->__pyx_n_s_CompiledRouterOptions);
+ Py_VISIT(traverse_module_state->__pyx_kp_s_CompiledRouterOptions_2);
Py_VISIT(traverse_module_state->__pyx_n_s_CompiledRouterOptions___init);
Py_VISIT(traverse_module_state->__pyx_n_s_CompiledRouterOptions___init___l);
Py_VISIT(traverse_module_state->__pyx_n_s_CompiledRouter___init);
@@ -4013,6 +4174,11 @@ static int __pyx_m_traverse(PyObject *m, visitproc visit, void *arg) {
Py_VISIT(traverse_module_state->__pyx_n_s_ConverterDict___setitem);
Py_VISIT(traverse_module_state->__pyx_n_s_ConverterDict__validate);
Py_VISIT(traverse_module_state->__pyx_n_s_ConverterDict_update);
+ Py_VISIT(traverse_module_state->__pyx_n_s_CxChild);
+ Py_VISIT(traverse_module_state->__pyx_n_u_CxChild);
+ Py_VISIT(traverse_module_state->__pyx_n_s_CxChild_src);
+ Py_VISIT(traverse_module_state->__pyx_n_s_CxElement);
+ Py_VISIT(traverse_module_state->__pyx_kp_s_CxElement_2);
Py_VISIT(traverse_module_state->__pyx_n_s_CxIfConverterField);
Py_VISIT(traverse_module_state->__pyx_n_s_CxIfConverterField___init);
Py_VISIT(traverse_module_state->__pyx_n_s_CxIfConverterField_src);
@@ -4026,6 +4192,8 @@ static int __pyx_m_traverse(PyObject *m, visitproc visit, void *arg) {
Py_VISIT(traverse_module_state->__pyx_n_s_CxIfPathSegmentPattern___init);
Py_VISIT(traverse_module_state->__pyx_n_s_CxIfPathSegmentPattern_src);
Py_VISIT(traverse_module_state->__pyx_n_s_CxParent);
+ Py_VISIT(traverse_module_state->__pyx_n_u_CxParent);
+ Py_VISIT(traverse_module_state->__pyx_kp_s_CxParent_2);
Py_VISIT(traverse_module_state->__pyx_n_s_CxParent___init);
Py_VISIT(traverse_module_state->__pyx_n_s_CxParent__children_src);
Py_VISIT(traverse_module_state->__pyx_n_s_CxParent_append_child);
@@ -4059,6 +4227,7 @@ static int __pyx_m_traverse(PyObject *m, visitproc visit, void *arg) {
Py_VISIT(traverse_module_state->__pyx_n_s_CxVariableFromPatternMatch___in);
Py_VISIT(traverse_module_state->__pyx_n_s_CxVariableFromPatternMatch_src);
Py_VISIT(traverse_module_state->__pyx_kp_s_Defines_a_set_of_configurable_ro);
+ Py_VISIT(traverse_module_state->__pyx_n_s_Dict);
Py_VISIT(traverse_module_state->__pyx_kp_u_FIELD);
Py_VISIT(traverse_module_state->__pyx_n_s_FIELD_PATTERN);
Py_VISIT(traverse_module_state->__pyx_kp_s_Fast_URI_router_which_compiles_i);
@@ -4066,31 +4235,49 @@ static int __pyx_m_traverse(PyObject *m, visitproc visit, void *arg) {
Py_VISIT(traverse_module_state->__pyx_kp_u_Field_names_must_be_valid_identi);
Py_VISIT(traverse_module_state->__pyx_n_s_IDENTIFIER_PATTERN);
Py_VISIT(traverse_module_state->__pyx_kp_u_Invalid_converter_name_Names_may);
+ Py_VISIT(traverse_module_state->__pyx_n_s_List);
+ Py_VISIT(traverse_module_state->__pyx_kp_s_List_CompiledRouterNode);
+ Py_VISIT(traverse_module_state->__pyx_kp_s_List_Pattern);
+ Py_VISIT(traverse_module_state->__pyx_kp_s_List__CxElement);
Py_VISIT(traverse_module_state->__pyx_n_s_Lock);
Py_VISIT(traverse_module_state->__pyx_kp_u_Missing_converter_for_field_0);
+ Py_VISIT(traverse_module_state->__pyx_n_s_None);
+ Py_VISIT(traverse_module_state->__pyx_n_s_NotImplementedError);
+ Py_VISIT(traverse_module_state->__pyx_n_s_Optional);
+ Py_VISIT(traverse_module_state->__pyx_kp_s_Optional_Request);
+ Py_VISIT(traverse_module_state->__pyx_kp_s_Optional_dict);
+ Py_VISIT(traverse_module_state->__pyx_kp_s_Optional_object);
+ Py_VISIT(traverse_module_state->__pyx_kp_s_Optional_str);
Py_VISIT(traverse_module_state->__pyx_kp_u_P_2);
Py_VISIT(traverse_module_state->__pyx_kp_u_P_fname_P_cname_sep_P_cname_P_a);
+ Py_VISIT(traverse_module_state->__pyx_n_s_Pattern);
Py_VISIT(traverse_module_state->__pyx_kp_s_Represents_a_single_URI_segment);
+ Py_VISIT(traverse_module_state->__pyx_n_s_Request);
+ Py_VISIT(traverse_module_state->__pyx_n_s_Set);
+ Py_VISIT(traverse_module_state->__pyx_kp_s_Set_str);
Py_VISIT(traverse_module_state->__pyx_n_s_TAB_STR);
+ Py_VISIT(traverse_module_state->__pyx_n_s_TYPE_CHECKING);
Py_VISIT(traverse_module_state->__pyx_kp_u_The_URI_template_for_this_route);
Py_VISIT(traverse_module_state->__pyx_kp_u_The_responder_must_be_a_non_bloc);
Py_VISIT(traverse_module_state->__pyx_kp_u_The_responder_must_be_a_regular);
Py_VISIT(traverse_module_state->__pyx_n_s_TypeError);
Py_VISIT(traverse_module_state->__pyx_kp_u_URI_templates_may_not_include_wh);
+ Py_VISIT(traverse_module_state->__pyx_n_s_Union);
Py_VISIT(traverse_module_state->__pyx_kp_u_Unknown_converter_0);
Py_VISIT(traverse_module_state->__pyx_n_s_UserDict);
Py_VISIT(traverse_module_state->__pyx_n_s_ValueError);
Py_VISIT(traverse_module_state->__pyx_kp_u__10);
Py_VISIT(traverse_module_state->__pyx_kp_u__11);
Py_VISIT(traverse_module_state->__pyx_kp_u__12);
- Py_VISIT(traverse_module_state->__pyx_n_s__131);
- Py_VISIT(traverse_module_state->__pyx_kp_u__14);
+ Py_VISIT(traverse_module_state->__pyx_kp_u__13);
+ Py_VISIT(traverse_module_state->__pyx_n_s__135);
Py_VISIT(traverse_module_state->__pyx_kp_u__15);
Py_VISIT(traverse_module_state->__pyx_kp_u__16);
- Py_VISIT(traverse_module_state->__pyx_n_s__18);
- Py_VISIT(traverse_module_state->__pyx_kp_u__19);
- Py_VISIT(traverse_module_state->__pyx_n_s__42);
- Py_VISIT(traverse_module_state->__pyx_kp_u__9);
+ Py_VISIT(traverse_module_state->__pyx_kp_u__17);
+ Py_VISIT(traverse_module_state->__pyx_n_s__19);
+ Py_VISIT(traverse_module_state->__pyx_kp_u__2);
+ Py_VISIT(traverse_module_state->__pyx_kp_u__21);
+ Py_VISIT(traverse_module_state->__pyx_n_s__44);
Py_VISIT(traverse_module_state->__pyx_n_s_add);
Py_VISIT(traverse_module_state->__pyx_n_s_add_route);
Py_VISIT(traverse_module_state->__pyx_n_s_append);
@@ -4103,6 +4290,7 @@ static int __pyx_m_traverse(PyObject *m, visitproc visit, void *arg) {
Py_VISIT(traverse_module_state->__pyx_n_s_ast);
Py_VISIT(traverse_module_state->__pyx_n_u_ast);
Py_VISIT(traverse_module_state->__pyx_n_s_asyncio_coroutines);
+ Py_VISIT(traverse_module_state->__pyx_n_s_bool);
Py_VISIT(traverse_module_state->__pyx_n_s_builtins);
Py_VISIT(traverse_module_state->__pyx_n_s_child);
Py_VISIT(traverse_module_state->__pyx_n_s_children);
@@ -4138,9 +4326,16 @@ static int __pyx_m_traverse(PyObject *m, visitproc visit, void *arg) {
Py_VISIT(traverse_module_state->__pyx_n_s_converters_2);
Py_VISIT(traverse_module_state->__pyx_n_u_converters_2);
Py_VISIT(traverse_module_state->__pyx_n_s_copy);
+ Py_VISIT(traverse_module_state->__pyx_n_s_cx_converter);
+ Py_VISIT(traverse_module_state->__pyx_n_s_cx_literal);
+ Py_VISIT(traverse_module_state->__pyx_n_s_cx_path_len);
+ Py_VISIT(traverse_module_state->__pyx_n_s_cx_pattern);
+ Py_VISIT(traverse_module_state->__pyx_n_s_cx_pattern_match);
+ Py_VISIT(traverse_module_state->__pyx_n_s_cx_segment);
Py_VISIT(traverse_module_state->__pyx_n_s_data);
Py_VISIT(traverse_module_state->__pyx_kp_u_def_find_path_return_values_patt);
Py_VISIT(traverse_module_state->__pyx_n_s_dict);
+ Py_VISIT(traverse_module_state->__pyx_n_s_dict_2);
Py_VISIT(traverse_module_state->__pyx_kp_u_dict_groups__0);
Py_VISIT(traverse_module_state->__pyx_kp_u_dict_match__0);
Py_VISIT(traverse_module_state->__pyx_n_s_dict_value_name);
@@ -4155,6 +4350,7 @@ static int __pyx_m_traverse(PyObject *m, visitproc visit, void *arg) {
Py_VISIT(traverse_module_state->__pyx_n_s_eval);
Py_VISIT(traverse_module_state->__pyx_n_u_exec);
Py_VISIT(traverse_module_state->__pyx_n_s_exit);
+ Py_VISIT(traverse_module_state->__pyx_n_s_falcon_request);
Py_VISIT(traverse_module_state->__pyx_n_s_falcon_routing);
Py_VISIT(traverse_module_state->__pyx_n_s_falcon_routing_compiled);
Py_VISIT(traverse_module_state->__pyx_kp_s_falcon_routing_compiled_py);
@@ -4197,6 +4393,7 @@ static int __pyx_m_traverse(PyObject *m, visitproc visit, void *arg) {
Py_VISIT(traverse_module_state->__pyx_n_s_insert);
Py_VISIT(traverse_module_state->__pyx_n_s_inspect);
Py_VISIT(traverse_module_state->__pyx_n_s_instantiate_converter);
+ Py_VISIT(traverse_module_state->__pyx_n_s_int);
Py_VISIT(traverse_module_state->__pyx_n_s_is_complex);
Py_VISIT(traverse_module_state->__pyx_n_s_is_coroutine);
Py_VISIT(traverse_module_state->__pyx_n_s_is_identifier);
@@ -4216,7 +4413,6 @@ static int __pyx_m_traverse(PyObject *m, visitproc visit, void *arg) {
Py_VISIT(traverse_module_state->__pyx_n_s_let);
Py_VISIT(traverse_module_state->__pyx_n_s_level);
Py_VISIT(traverse_module_state->__pyx_n_s_lines);
- Py_VISIT(traverse_module_state->__pyx_n_s_list);
Py_VISIT(traverse_module_state->__pyx_n_s_literal);
Py_VISIT(traverse_module_state->__pyx_n_s_literal_2);
Py_VISIT(traverse_module_state->__pyx_n_s_lstrip);
@@ -4240,6 +4436,7 @@ static int __pyx_m_traverse(PyObject *m, visitproc visit, void *arg) {
Py_VISIT(traverse_module_state->__pyx_n_s_node_2);
Py_VISIT(traverse_module_state->__pyx_n_s_nodes);
Py_VISIT(traverse_module_state->__pyx_n_s_num_fields);
+ Py_VISIT(traverse_module_state->__pyx_n_s_object);
Py_VISIT(traverse_module_state->__pyx_n_s_options);
Py_VISIT(traverse_module_state->__pyx_n_u_options);
Py_VISIT(traverse_module_state->__pyx_n_s_options_2);
@@ -4273,6 +4470,7 @@ static int __pyx_m_traverse(PyObject *m, visitproc visit, void *arg) {
Py_VISIT(traverse_module_state->__pyx_n_s_resource);
Py_VISIT(traverse_module_state->__pyx_n_s_resource_idx);
Py_VISIT(traverse_module_state->__pyx_n_s_responder);
+ Py_VISIT(traverse_module_state->__pyx_n_s_return);
Py_VISIT(traverse_module_state->__pyx_kp_u_return_None);
Py_VISIT(traverse_module_state->__pyx_n_s_return_values);
Py_VISIT(traverse_module_state->__pyx_n_u_return_values);
@@ -4290,7 +4488,6 @@ static int __pyx_m_traverse(PyObject *m, visitproc visit, void *arg) {
Py_VISIT(traverse_module_state->__pyx_n_s_set_default_responders);
Py_VISIT(traverse_module_state->__pyx_n_s_set_name);
Py_VISIT(traverse_module_state->__pyx_n_s_setitem);
- Py_VISIT(traverse_module_state->__pyx_n_s_setter);
Py_VISIT(traverse_module_state->__pyx_n_s_should_wrap_non_coroutines);
Py_VISIT(traverse_module_state->__pyx_n_s_slots);
Py_VISIT(traverse_module_state->__pyx_n_s_sorted);
@@ -4299,6 +4496,7 @@ static int __pyx_m_traverse(PyObject *m, visitproc visit, void *arg) {
Py_VISIT(traverse_module_state->__pyx_n_s_split);
Py_VISIT(traverse_module_state->__pyx_n_s_src);
Py_VISIT(traverse_module_state->__pyx_n_s_src_lines);
+ Py_VISIT(traverse_module_state->__pyx_n_s_str);
Py_VISIT(traverse_module_state->__pyx_kp_u_string);
Py_VISIT(traverse_module_state->__pyx_n_s_sub);
Py_VISIT(traverse_module_state->__pyx_n_s_suffix);
@@ -4308,6 +4506,7 @@ static int __pyx_m_traverse(PyObject *m, visitproc visit, void *arg) {
Py_VISIT(traverse_module_state->__pyx_n_s_test);
Py_VISIT(traverse_module_state->__pyx_n_s_threading);
Py_VISIT(traverse_module_state->__pyx_n_s_throw);
+ Py_VISIT(traverse_module_state->__pyx_n_s_typing);
Py_VISIT(traverse_module_state->__pyx_n_s_unique_idx);
Py_VISIT(traverse_module_state->__pyx_n_s_unique_idx_2);
Py_VISIT(traverse_module_state->__pyx_n_s_update);
@@ -4326,42 +4525,42 @@ static int __pyx_m_traverse(PyObject *m, visitproc visit, void *arg) {
Py_VISIT(traverse_module_state->__pyx_n_s_wrap_sync_to_async);
Py_VISIT(traverse_module_state->__pyx_int_0);
Py_VISIT(traverse_module_state->__pyx_int_1);
- Py_VISIT(traverse_module_state->__pyx_tuple__2);
Py_VISIT(traverse_module_state->__pyx_tuple__3);
Py_VISIT(traverse_module_state->__pyx_tuple__4);
- Py_VISIT(traverse_module_state->__pyx_tuple__6);
+ Py_VISIT(traverse_module_state->__pyx_tuple__5);
Py_VISIT(traverse_module_state->__pyx_tuple__7);
- Py_VISIT(traverse_module_state->__pyx_tuple__13);
- Py_VISIT(traverse_module_state->__pyx_tuple__17);
+ Py_VISIT(traverse_module_state->__pyx_tuple__8);
+ Py_VISIT(traverse_module_state->__pyx_tuple__14);
+ Py_VISIT(traverse_module_state->__pyx_tuple__18);
Py_VISIT(traverse_module_state->__pyx_tuple__20);
- Py_VISIT(traverse_module_state->__pyx_tuple__21);
Py_VISIT(traverse_module_state->__pyx_tuple__22);
Py_VISIT(traverse_module_state->__pyx_tuple__23);
+ Py_VISIT(traverse_module_state->__pyx_tuple__24);
Py_VISIT(traverse_module_state->__pyx_tuple__25);
Py_VISIT(traverse_module_state->__pyx_tuple__27);
Py_VISIT(traverse_module_state->__pyx_tuple__29);
Py_VISIT(traverse_module_state->__pyx_tuple__31);
Py_VISIT(traverse_module_state->__pyx_tuple__33);
Py_VISIT(traverse_module_state->__pyx_tuple__35);
- Py_VISIT(traverse_module_state->__pyx_tuple__36);
+ Py_VISIT(traverse_module_state->__pyx_tuple__37);
Py_VISIT(traverse_module_state->__pyx_tuple__38);
Py_VISIT(traverse_module_state->__pyx_tuple__40);
- Py_VISIT(traverse_module_state->__pyx_tuple__43);
+ Py_VISIT(traverse_module_state->__pyx_tuple__42);
Py_VISIT(traverse_module_state->__pyx_tuple__45);
- Py_VISIT(traverse_module_state->__pyx_tuple__46);
+ Py_VISIT(traverse_module_state->__pyx_tuple__47);
Py_VISIT(traverse_module_state->__pyx_tuple__48);
Py_VISIT(traverse_module_state->__pyx_tuple__50);
Py_VISIT(traverse_module_state->__pyx_tuple__52);
- Py_VISIT(traverse_module_state->__pyx_tuple__53);
+ Py_VISIT(traverse_module_state->__pyx_tuple__54);
Py_VISIT(traverse_module_state->__pyx_tuple__55);
Py_VISIT(traverse_module_state->__pyx_tuple__57);
- Py_VISIT(traverse_module_state->__pyx_tuple__58);
+ Py_VISIT(traverse_module_state->__pyx_tuple__59);
Py_VISIT(traverse_module_state->__pyx_tuple__60);
Py_VISIT(traverse_module_state->__pyx_tuple__62);
Py_VISIT(traverse_module_state->__pyx_tuple__64);
Py_VISIT(traverse_module_state->__pyx_tuple__66);
Py_VISIT(traverse_module_state->__pyx_tuple__68);
- Py_VISIT(traverse_module_state->__pyx_tuple__69);
+ Py_VISIT(traverse_module_state->__pyx_tuple__70);
Py_VISIT(traverse_module_state->__pyx_tuple__71);
Py_VISIT(traverse_module_state->__pyx_tuple__73);
Py_VISIT(traverse_module_state->__pyx_tuple__75);
@@ -4377,8 +4576,8 @@ static int __pyx_m_traverse(PyObject *m, visitproc visit, void *arg) {
Py_VISIT(traverse_module_state->__pyx_tuple__95);
Py_VISIT(traverse_module_state->__pyx_tuple__97);
Py_VISIT(traverse_module_state->__pyx_tuple__99);
- Py_VISIT(traverse_module_state->__pyx_codeobj__5);
- Py_VISIT(traverse_module_state->__pyx_codeobj__8);
+ Py_VISIT(traverse_module_state->__pyx_codeobj__6);
+ Py_VISIT(traverse_module_state->__pyx_codeobj__9);
Py_VISIT(traverse_module_state->__pyx_tuple__101);
Py_VISIT(traverse_module_state->__pyx_tuple__103);
Py_VISIT(traverse_module_state->__pyx_tuple__105);
@@ -4394,27 +4593,28 @@ static int __pyx_m_traverse(PyObject *m, visitproc visit, void *arg) {
Py_VISIT(traverse_module_state->__pyx_tuple__125);
Py_VISIT(traverse_module_state->__pyx_tuple__127);
Py_VISIT(traverse_module_state->__pyx_tuple__129);
- Py_VISIT(traverse_module_state->__pyx_codeobj__24);
+ Py_VISIT(traverse_module_state->__pyx_tuple__131);
+ Py_VISIT(traverse_module_state->__pyx_tuple__133);
Py_VISIT(traverse_module_state->__pyx_codeobj__26);
Py_VISIT(traverse_module_state->__pyx_codeobj__28);
Py_VISIT(traverse_module_state->__pyx_codeobj__30);
Py_VISIT(traverse_module_state->__pyx_codeobj__32);
Py_VISIT(traverse_module_state->__pyx_codeobj__34);
- Py_VISIT(traverse_module_state->__pyx_codeobj__37);
+ Py_VISIT(traverse_module_state->__pyx_codeobj__36);
Py_VISIT(traverse_module_state->__pyx_codeobj__39);
Py_VISIT(traverse_module_state->__pyx_codeobj__41);
- Py_VISIT(traverse_module_state->__pyx_codeobj__44);
- Py_VISIT(traverse_module_state->__pyx_codeobj__47);
+ Py_VISIT(traverse_module_state->__pyx_codeobj__43);
+ Py_VISIT(traverse_module_state->__pyx_codeobj__46);
Py_VISIT(traverse_module_state->__pyx_codeobj__49);
Py_VISIT(traverse_module_state->__pyx_codeobj__51);
- Py_VISIT(traverse_module_state->__pyx_codeobj__54);
+ Py_VISIT(traverse_module_state->__pyx_codeobj__53);
Py_VISIT(traverse_module_state->__pyx_codeobj__56);
- Py_VISIT(traverse_module_state->__pyx_codeobj__59);
+ Py_VISIT(traverse_module_state->__pyx_codeobj__58);
Py_VISIT(traverse_module_state->__pyx_codeobj__61);
Py_VISIT(traverse_module_state->__pyx_codeobj__63);
Py_VISIT(traverse_module_state->__pyx_codeobj__65);
Py_VISIT(traverse_module_state->__pyx_codeobj__67);
- Py_VISIT(traverse_module_state->__pyx_codeobj__70);
+ Py_VISIT(traverse_module_state->__pyx_codeobj__69);
Py_VISIT(traverse_module_state->__pyx_codeobj__72);
Py_VISIT(traverse_module_state->__pyx_codeobj__74);
Py_VISIT(traverse_module_state->__pyx_codeobj__76);
@@ -4445,6 +4645,8 @@ static int __pyx_m_traverse(PyObject *m, visitproc visit, void *arg) {
Py_VISIT(traverse_module_state->__pyx_codeobj__126);
Py_VISIT(traverse_module_state->__pyx_codeobj__128);
Py_VISIT(traverse_module_state->__pyx_codeobj__130);
+ Py_VISIT(traverse_module_state->__pyx_codeobj__132);
+ Py_VISIT(traverse_module_state->__pyx_codeobj__134);
return 0;
}
#endif
@@ -4488,9 +4690,12 @@ static int __pyx_m_traverse(PyObject *m, visitproc visit, void *arg) {
#define __pyx_kp_u_0_return_return_values_1 __pyx_mstate_global->__pyx_kp_u_0_return_return_values_1
#define __pyx_kp_u_A_Za_z__A_Za_z0_9 __pyx_mstate_global->__pyx_kp_u_A_Za_z__A_Za_z0_9
#define __pyx_kp_s_A_dict_like_class_for_storing_fi __pyx_mstate_global->__pyx_kp_s_A_dict_like_class_for_storing_fi
+#define __pyx_n_s_Any __pyx_mstate_global->__pyx_n_s_Any
#define __pyx_n_s_AssertionError __pyx_mstate_global->__pyx_n_s_AssertionError
#define __pyx_n_s_AttributeError __pyx_mstate_global->__pyx_n_s_AttributeError
#define __pyx_n_s_BUILTIN __pyx_mstate_global->__pyx_n_s_BUILTIN
+#define __pyx_n_s_Callable __pyx_mstate_global->__pyx_n_s_Callable
+#define __pyx_kp_s_Callable_2 __pyx_mstate_global->__pyx_kp_s_Callable_2
#define __pyx_kp_u_Cannot_instantiate_converter __pyx_mstate_global->__pyx_kp_u_Cannot_instantiate_converter
#define __pyx_n_s_CompiledRouter __pyx_mstate_global->__pyx_n_s_CompiledRouter
#define __pyx_n_s_CompiledRouterNode __pyx_mstate_global->__pyx_n_s_CompiledRouterNode
@@ -4499,6 +4704,7 @@ static int __pyx_m_traverse(PyObject *m, visitproc visit, void *arg) {
#define __pyx_n_s_CompiledRouterNode_conflicts_wit __pyx_mstate_global->__pyx_n_s_CompiledRouterNode_conflicts_wit
#define __pyx_n_s_CompiledRouterNode_matches __pyx_mstate_global->__pyx_n_s_CompiledRouterNode_matches
#define __pyx_n_s_CompiledRouterOptions __pyx_mstate_global->__pyx_n_s_CompiledRouterOptions
+#define __pyx_kp_s_CompiledRouterOptions_2 __pyx_mstate_global->__pyx_kp_s_CompiledRouterOptions_2
#define __pyx_n_s_CompiledRouterOptions___init __pyx_mstate_global->__pyx_n_s_CompiledRouterOptions___init
#define __pyx_n_s_CompiledRouterOptions___init___l __pyx_mstate_global->__pyx_n_s_CompiledRouterOptions___init___l
#define __pyx_n_s_CompiledRouter___init __pyx_mstate_global->__pyx_n_s_CompiledRouter___init
@@ -4522,6 +4728,11 @@ static int __pyx_m_traverse(PyObject *m, visitproc visit, void *arg) {
#define __pyx_n_s_ConverterDict___setitem __pyx_mstate_global->__pyx_n_s_ConverterDict___setitem
#define __pyx_n_s_ConverterDict__validate __pyx_mstate_global->__pyx_n_s_ConverterDict__validate
#define __pyx_n_s_ConverterDict_update __pyx_mstate_global->__pyx_n_s_ConverterDict_update
+#define __pyx_n_s_CxChild __pyx_mstate_global->__pyx_n_s_CxChild
+#define __pyx_n_u_CxChild __pyx_mstate_global->__pyx_n_u_CxChild
+#define __pyx_n_s_CxChild_src __pyx_mstate_global->__pyx_n_s_CxChild_src
+#define __pyx_n_s_CxElement __pyx_mstate_global->__pyx_n_s_CxElement
+#define __pyx_kp_s_CxElement_2 __pyx_mstate_global->__pyx_kp_s_CxElement_2
#define __pyx_n_s_CxIfConverterField __pyx_mstate_global->__pyx_n_s_CxIfConverterField
#define __pyx_n_s_CxIfConverterField___init __pyx_mstate_global->__pyx_n_s_CxIfConverterField___init
#define __pyx_n_s_CxIfConverterField_src __pyx_mstate_global->__pyx_n_s_CxIfConverterField_src
@@ -4535,6 +4746,8 @@ static int __pyx_m_traverse(PyObject *m, visitproc visit, void *arg) {
#define __pyx_n_s_CxIfPathSegmentPattern___init __pyx_mstate_global->__pyx_n_s_CxIfPathSegmentPattern___init
#define __pyx_n_s_CxIfPathSegmentPattern_src __pyx_mstate_global->__pyx_n_s_CxIfPathSegmentPattern_src
#define __pyx_n_s_CxParent __pyx_mstate_global->__pyx_n_s_CxParent
+#define __pyx_n_u_CxParent __pyx_mstate_global->__pyx_n_u_CxParent
+#define __pyx_kp_s_CxParent_2 __pyx_mstate_global->__pyx_kp_s_CxParent_2
#define __pyx_n_s_CxParent___init __pyx_mstate_global->__pyx_n_s_CxParent___init
#define __pyx_n_s_CxParent__children_src __pyx_mstate_global->__pyx_n_s_CxParent__children_src
#define __pyx_n_s_CxParent_append_child __pyx_mstate_global->__pyx_n_s_CxParent_append_child
@@ -4568,6 +4781,7 @@ static int __pyx_m_traverse(PyObject *m, visitproc visit, void *arg) {
#define __pyx_n_s_CxVariableFromPatternMatch___in __pyx_mstate_global->__pyx_n_s_CxVariableFromPatternMatch___in
#define __pyx_n_s_CxVariableFromPatternMatch_src __pyx_mstate_global->__pyx_n_s_CxVariableFromPatternMatch_src
#define __pyx_kp_s_Defines_a_set_of_configurable_ro __pyx_mstate_global->__pyx_kp_s_Defines_a_set_of_configurable_ro
+#define __pyx_n_s_Dict __pyx_mstate_global->__pyx_n_s_Dict
#define __pyx_kp_u_FIELD __pyx_mstate_global->__pyx_kp_u_FIELD
#define __pyx_n_s_FIELD_PATTERN __pyx_mstate_global->__pyx_n_s_FIELD_PATTERN
#define __pyx_kp_s_Fast_URI_router_which_compiles_i __pyx_mstate_global->__pyx_kp_s_Fast_URI_router_which_compiles_i
@@ -4575,31 +4789,49 @@ static int __pyx_m_traverse(PyObject *m, visitproc visit, void *arg) {
#define __pyx_kp_u_Field_names_must_be_valid_identi __pyx_mstate_global->__pyx_kp_u_Field_names_must_be_valid_identi
#define __pyx_n_s_IDENTIFIER_PATTERN __pyx_mstate_global->__pyx_n_s_IDENTIFIER_PATTERN
#define __pyx_kp_u_Invalid_converter_name_Names_may __pyx_mstate_global->__pyx_kp_u_Invalid_converter_name_Names_may
+#define __pyx_n_s_List __pyx_mstate_global->__pyx_n_s_List
+#define __pyx_kp_s_List_CompiledRouterNode __pyx_mstate_global->__pyx_kp_s_List_CompiledRouterNode
+#define __pyx_kp_s_List_Pattern __pyx_mstate_global->__pyx_kp_s_List_Pattern
+#define __pyx_kp_s_List__CxElement __pyx_mstate_global->__pyx_kp_s_List__CxElement
#define __pyx_n_s_Lock __pyx_mstate_global->__pyx_n_s_Lock
#define __pyx_kp_u_Missing_converter_for_field_0 __pyx_mstate_global->__pyx_kp_u_Missing_converter_for_field_0
+#define __pyx_n_s_None __pyx_mstate_global->__pyx_n_s_None
+#define __pyx_n_s_NotImplementedError __pyx_mstate_global->__pyx_n_s_NotImplementedError
+#define __pyx_n_s_Optional __pyx_mstate_global->__pyx_n_s_Optional
+#define __pyx_kp_s_Optional_Request __pyx_mstate_global->__pyx_kp_s_Optional_Request
+#define __pyx_kp_s_Optional_dict __pyx_mstate_global->__pyx_kp_s_Optional_dict
+#define __pyx_kp_s_Optional_object __pyx_mstate_global->__pyx_kp_s_Optional_object
+#define __pyx_kp_s_Optional_str __pyx_mstate_global->__pyx_kp_s_Optional_str
#define __pyx_kp_u_P_2 __pyx_mstate_global->__pyx_kp_u_P_2
#define __pyx_kp_u_P_fname_P_cname_sep_P_cname_P_a __pyx_mstate_global->__pyx_kp_u_P_fname_P_cname_sep_P_cname_P_a
+#define __pyx_n_s_Pattern __pyx_mstate_global->__pyx_n_s_Pattern
#define __pyx_kp_s_Represents_a_single_URI_segment __pyx_mstate_global->__pyx_kp_s_Represents_a_single_URI_segment
+#define __pyx_n_s_Request __pyx_mstate_global->__pyx_n_s_Request
+#define __pyx_n_s_Set __pyx_mstate_global->__pyx_n_s_Set
+#define __pyx_kp_s_Set_str __pyx_mstate_global->__pyx_kp_s_Set_str
#define __pyx_n_s_TAB_STR __pyx_mstate_global->__pyx_n_s_TAB_STR
+#define __pyx_n_s_TYPE_CHECKING __pyx_mstate_global->__pyx_n_s_TYPE_CHECKING
#define __pyx_kp_u_The_URI_template_for_this_route __pyx_mstate_global->__pyx_kp_u_The_URI_template_for_this_route
#define __pyx_kp_u_The_responder_must_be_a_non_bloc __pyx_mstate_global->__pyx_kp_u_The_responder_must_be_a_non_bloc
#define __pyx_kp_u_The_responder_must_be_a_regular __pyx_mstate_global->__pyx_kp_u_The_responder_must_be_a_regular
#define __pyx_n_s_TypeError __pyx_mstate_global->__pyx_n_s_TypeError
#define __pyx_kp_u_URI_templates_may_not_include_wh __pyx_mstate_global->__pyx_kp_u_URI_templates_may_not_include_wh
+#define __pyx_n_s_Union __pyx_mstate_global->__pyx_n_s_Union
#define __pyx_kp_u_Unknown_converter_0 __pyx_mstate_global->__pyx_kp_u_Unknown_converter_0
#define __pyx_n_s_UserDict __pyx_mstate_global->__pyx_n_s_UserDict
#define __pyx_n_s_ValueError __pyx_mstate_global->__pyx_n_s_ValueError
#define __pyx_kp_u__10 __pyx_mstate_global->__pyx_kp_u__10
#define __pyx_kp_u__11 __pyx_mstate_global->__pyx_kp_u__11
#define __pyx_kp_u__12 __pyx_mstate_global->__pyx_kp_u__12
-#define __pyx_n_s__131 __pyx_mstate_global->__pyx_n_s__131
-#define __pyx_kp_u__14 __pyx_mstate_global->__pyx_kp_u__14
+#define __pyx_kp_u__13 __pyx_mstate_global->__pyx_kp_u__13
+#define __pyx_n_s__135 __pyx_mstate_global->__pyx_n_s__135
#define __pyx_kp_u__15 __pyx_mstate_global->__pyx_kp_u__15
#define __pyx_kp_u__16 __pyx_mstate_global->__pyx_kp_u__16
-#define __pyx_n_s__18 __pyx_mstate_global->__pyx_n_s__18
-#define __pyx_kp_u__19 __pyx_mstate_global->__pyx_kp_u__19
-#define __pyx_n_s__42 __pyx_mstate_global->__pyx_n_s__42
-#define __pyx_kp_u__9 __pyx_mstate_global->__pyx_kp_u__9
+#define __pyx_kp_u__17 __pyx_mstate_global->__pyx_kp_u__17
+#define __pyx_n_s__19 __pyx_mstate_global->__pyx_n_s__19
+#define __pyx_kp_u__2 __pyx_mstate_global->__pyx_kp_u__2
+#define __pyx_kp_u__21 __pyx_mstate_global->__pyx_kp_u__21
+#define __pyx_n_s__44 __pyx_mstate_global->__pyx_n_s__44
#define __pyx_n_s_add __pyx_mstate_global->__pyx_n_s_add
#define __pyx_n_s_add_route __pyx_mstate_global->__pyx_n_s_add_route
#define __pyx_n_s_append __pyx_mstate_global->__pyx_n_s_append
@@ -4612,6 +4844,7 @@ static int __pyx_m_traverse(PyObject *m, visitproc visit, void *arg) {
#define __pyx_n_s_ast __pyx_mstate_global->__pyx_n_s_ast
#define __pyx_n_u_ast __pyx_mstate_global->__pyx_n_u_ast
#define __pyx_n_s_asyncio_coroutines __pyx_mstate_global->__pyx_n_s_asyncio_coroutines
+#define __pyx_n_s_bool __pyx_mstate_global->__pyx_n_s_bool
#define __pyx_n_s_builtins __pyx_mstate_global->__pyx_n_s_builtins
#define __pyx_n_s_child __pyx_mstate_global->__pyx_n_s_child
#define __pyx_n_s_children __pyx_mstate_global->__pyx_n_s_children
@@ -4647,9 +4880,16 @@ static int __pyx_m_traverse(PyObject *m, visitproc visit, void *arg) {
#define __pyx_n_s_converters_2 __pyx_mstate_global->__pyx_n_s_converters_2
#define __pyx_n_u_converters_2 __pyx_mstate_global->__pyx_n_u_converters_2
#define __pyx_n_s_copy __pyx_mstate_global->__pyx_n_s_copy
+#define __pyx_n_s_cx_converter __pyx_mstate_global->__pyx_n_s_cx_converter
+#define __pyx_n_s_cx_literal __pyx_mstate_global->__pyx_n_s_cx_literal
+#define __pyx_n_s_cx_path_len __pyx_mstate_global->__pyx_n_s_cx_path_len
+#define __pyx_n_s_cx_pattern __pyx_mstate_global->__pyx_n_s_cx_pattern
+#define __pyx_n_s_cx_pattern_match __pyx_mstate_global->__pyx_n_s_cx_pattern_match
+#define __pyx_n_s_cx_segment __pyx_mstate_global->__pyx_n_s_cx_segment
#define __pyx_n_s_data __pyx_mstate_global->__pyx_n_s_data
#define __pyx_kp_u_def_find_path_return_values_patt __pyx_mstate_global->__pyx_kp_u_def_find_path_return_values_patt
#define __pyx_n_s_dict __pyx_mstate_global->__pyx_n_s_dict
+#define __pyx_n_s_dict_2 __pyx_mstate_global->__pyx_n_s_dict_2
#define __pyx_kp_u_dict_groups__0 __pyx_mstate_global->__pyx_kp_u_dict_groups__0
#define __pyx_kp_u_dict_match__0 __pyx_mstate_global->__pyx_kp_u_dict_match__0
#define __pyx_n_s_dict_value_name __pyx_mstate_global->__pyx_n_s_dict_value_name
@@ -4664,6 +4904,7 @@ static int __pyx_m_traverse(PyObject *m, visitproc visit, void *arg) {
#define __pyx_n_s_eval __pyx_mstate_global->__pyx_n_s_eval
#define __pyx_n_u_exec __pyx_mstate_global->__pyx_n_u_exec
#define __pyx_n_s_exit __pyx_mstate_global->__pyx_n_s_exit
+#define __pyx_n_s_falcon_request __pyx_mstate_global->__pyx_n_s_falcon_request
#define __pyx_n_s_falcon_routing __pyx_mstate_global->__pyx_n_s_falcon_routing
#define __pyx_n_s_falcon_routing_compiled __pyx_mstate_global->__pyx_n_s_falcon_routing_compiled
#define __pyx_kp_s_falcon_routing_compiled_py __pyx_mstate_global->__pyx_kp_s_falcon_routing_compiled_py
@@ -4706,6 +4947,7 @@ static int __pyx_m_traverse(PyObject *m, visitproc visit, void *arg) {
#define __pyx_n_s_insert __pyx_mstate_global->__pyx_n_s_insert
#define __pyx_n_s_inspect __pyx_mstate_global->__pyx_n_s_inspect
#define __pyx_n_s_instantiate_converter __pyx_mstate_global->__pyx_n_s_instantiate_converter
+#define __pyx_n_s_int __pyx_mstate_global->__pyx_n_s_int
#define __pyx_n_s_is_complex __pyx_mstate_global->__pyx_n_s_is_complex
#define __pyx_n_s_is_coroutine __pyx_mstate_global->__pyx_n_s_is_coroutine
#define __pyx_n_s_is_identifier __pyx_mstate_global->__pyx_n_s_is_identifier
@@ -4725,7 +4967,6 @@ static int __pyx_m_traverse(PyObject *m, visitproc visit, void *arg) {
#define __pyx_n_s_let __pyx_mstate_global->__pyx_n_s_let
#define __pyx_n_s_level __pyx_mstate_global->__pyx_n_s_level
#define __pyx_n_s_lines __pyx_mstate_global->__pyx_n_s_lines
-#define __pyx_n_s_list __pyx_mstate_global->__pyx_n_s_list
#define __pyx_n_s_literal __pyx_mstate_global->__pyx_n_s_literal
#define __pyx_n_s_literal_2 __pyx_mstate_global->__pyx_n_s_literal_2
#define __pyx_n_s_lstrip __pyx_mstate_global->__pyx_n_s_lstrip
@@ -4749,6 +4990,7 @@ static int __pyx_m_traverse(PyObject *m, visitproc visit, void *arg) {
#define __pyx_n_s_node_2 __pyx_mstate_global->__pyx_n_s_node_2
#define __pyx_n_s_nodes __pyx_mstate_global->__pyx_n_s_nodes
#define __pyx_n_s_num_fields __pyx_mstate_global->__pyx_n_s_num_fields
+#define __pyx_n_s_object __pyx_mstate_global->__pyx_n_s_object
#define __pyx_n_s_options __pyx_mstate_global->__pyx_n_s_options
#define __pyx_n_u_options __pyx_mstate_global->__pyx_n_u_options
#define __pyx_n_s_options_2 __pyx_mstate_global->__pyx_n_s_options_2
@@ -4782,6 +5024,7 @@ static int __pyx_m_traverse(PyObject *m, visitproc visit, void *arg) {
#define __pyx_n_s_resource __pyx_mstate_global->__pyx_n_s_resource
#define __pyx_n_s_resource_idx __pyx_mstate_global->__pyx_n_s_resource_idx
#define __pyx_n_s_responder __pyx_mstate_global->__pyx_n_s_responder
+#define __pyx_n_s_return __pyx_mstate_global->__pyx_n_s_return
#define __pyx_kp_u_return_None __pyx_mstate_global->__pyx_kp_u_return_None
#define __pyx_n_s_return_values __pyx_mstate_global->__pyx_n_s_return_values
#define __pyx_n_u_return_values __pyx_mstate_global->__pyx_n_u_return_values
@@ -4799,7 +5042,6 @@ static int __pyx_m_traverse(PyObject *m, visitproc visit, void *arg) {
#define __pyx_n_s_set_default_responders __pyx_mstate_global->__pyx_n_s_set_default_responders
#define __pyx_n_s_set_name __pyx_mstate_global->__pyx_n_s_set_name
#define __pyx_n_s_setitem __pyx_mstate_global->__pyx_n_s_setitem
-#define __pyx_n_s_setter __pyx_mstate_global->__pyx_n_s_setter
#define __pyx_n_s_should_wrap_non_coroutines __pyx_mstate_global->__pyx_n_s_should_wrap_non_coroutines
#define __pyx_n_s_slots __pyx_mstate_global->__pyx_n_s_slots
#define __pyx_n_s_sorted __pyx_mstate_global->__pyx_n_s_sorted
@@ -4808,6 +5050,7 @@ static int __pyx_m_traverse(PyObject *m, visitproc visit, void *arg) {
#define __pyx_n_s_split __pyx_mstate_global->__pyx_n_s_split
#define __pyx_n_s_src __pyx_mstate_global->__pyx_n_s_src
#define __pyx_n_s_src_lines __pyx_mstate_global->__pyx_n_s_src_lines
+#define __pyx_n_s_str __pyx_mstate_global->__pyx_n_s_str
#define __pyx_kp_u_string __pyx_mstate_global->__pyx_kp_u_string
#define __pyx_n_s_sub __pyx_mstate_global->__pyx_n_s_sub
#define __pyx_n_s_suffix __pyx_mstate_global->__pyx_n_s_suffix
@@ -4817,6 +5060,7 @@ static int __pyx_m_traverse(PyObject *m, visitproc visit, void *arg) {
#define __pyx_n_s_test __pyx_mstate_global->__pyx_n_s_test
#define __pyx_n_s_threading __pyx_mstate_global->__pyx_n_s_threading
#define __pyx_n_s_throw __pyx_mstate_global->__pyx_n_s_throw
+#define __pyx_n_s_typing __pyx_mstate_global->__pyx_n_s_typing
#define __pyx_n_s_unique_idx __pyx_mstate_global->__pyx_n_s_unique_idx
#define __pyx_n_s_unique_idx_2 __pyx_mstate_global->__pyx_n_s_unique_idx_2
#define __pyx_n_s_update __pyx_mstate_global->__pyx_n_s_update
@@ -4835,42 +5079,42 @@ static int __pyx_m_traverse(PyObject *m, visitproc visit, void *arg) {
#define __pyx_n_s_wrap_sync_to_async __pyx_mstate_global->__pyx_n_s_wrap_sync_to_async
#define __pyx_int_0 __pyx_mstate_global->__pyx_int_0
#define __pyx_int_1 __pyx_mstate_global->__pyx_int_1
-#define __pyx_tuple__2 __pyx_mstate_global->__pyx_tuple__2
#define __pyx_tuple__3 __pyx_mstate_global->__pyx_tuple__3
#define __pyx_tuple__4 __pyx_mstate_global->__pyx_tuple__4
-#define __pyx_tuple__6 __pyx_mstate_global->__pyx_tuple__6
+#define __pyx_tuple__5 __pyx_mstate_global->__pyx_tuple__5
#define __pyx_tuple__7 __pyx_mstate_global->__pyx_tuple__7
-#define __pyx_tuple__13 __pyx_mstate_global->__pyx_tuple__13
-#define __pyx_tuple__17 __pyx_mstate_global->__pyx_tuple__17
+#define __pyx_tuple__8 __pyx_mstate_global->__pyx_tuple__8
+#define __pyx_tuple__14 __pyx_mstate_global->__pyx_tuple__14
+#define __pyx_tuple__18 __pyx_mstate_global->__pyx_tuple__18
#define __pyx_tuple__20 __pyx_mstate_global->__pyx_tuple__20
-#define __pyx_tuple__21 __pyx_mstate_global->__pyx_tuple__21
#define __pyx_tuple__22 __pyx_mstate_global->__pyx_tuple__22
#define __pyx_tuple__23 __pyx_mstate_global->__pyx_tuple__23
+#define __pyx_tuple__24 __pyx_mstate_global->__pyx_tuple__24
#define __pyx_tuple__25 __pyx_mstate_global->__pyx_tuple__25
#define __pyx_tuple__27 __pyx_mstate_global->__pyx_tuple__27
#define __pyx_tuple__29 __pyx_mstate_global->__pyx_tuple__29
#define __pyx_tuple__31 __pyx_mstate_global->__pyx_tuple__31
#define __pyx_tuple__33 __pyx_mstate_global->__pyx_tuple__33
#define __pyx_tuple__35 __pyx_mstate_global->__pyx_tuple__35
-#define __pyx_tuple__36 __pyx_mstate_global->__pyx_tuple__36
+#define __pyx_tuple__37 __pyx_mstate_global->__pyx_tuple__37
#define __pyx_tuple__38 __pyx_mstate_global->__pyx_tuple__38
#define __pyx_tuple__40 __pyx_mstate_global->__pyx_tuple__40
-#define __pyx_tuple__43 __pyx_mstate_global->__pyx_tuple__43
+#define __pyx_tuple__42 __pyx_mstate_global->__pyx_tuple__42
#define __pyx_tuple__45 __pyx_mstate_global->__pyx_tuple__45
-#define __pyx_tuple__46 __pyx_mstate_global->__pyx_tuple__46
+#define __pyx_tuple__47 __pyx_mstate_global->__pyx_tuple__47
#define __pyx_tuple__48 __pyx_mstate_global->__pyx_tuple__48
#define __pyx_tuple__50 __pyx_mstate_global->__pyx_tuple__50
#define __pyx_tuple__52 __pyx_mstate_global->__pyx_tuple__52
-#define __pyx_tuple__53 __pyx_mstate_global->__pyx_tuple__53
+#define __pyx_tuple__54 __pyx_mstate_global->__pyx_tuple__54
#define __pyx_tuple__55 __pyx_mstate_global->__pyx_tuple__55
#define __pyx_tuple__57 __pyx_mstate_global->__pyx_tuple__57
-#define __pyx_tuple__58 __pyx_mstate_global->__pyx_tuple__58
+#define __pyx_tuple__59 __pyx_mstate_global->__pyx_tuple__59
#define __pyx_tuple__60 __pyx_mstate_global->__pyx_tuple__60
#define __pyx_tuple__62 __pyx_mstate_global->__pyx_tuple__62
#define __pyx_tuple__64 __pyx_mstate_global->__pyx_tuple__64
#define __pyx_tuple__66 __pyx_mstate_global->__pyx_tuple__66
#define __pyx_tuple__68 __pyx_mstate_global->__pyx_tuple__68
-#define __pyx_tuple__69 __pyx_mstate_global->__pyx_tuple__69
+#define __pyx_tuple__70 __pyx_mstate_global->__pyx_tuple__70
#define __pyx_tuple__71 __pyx_mstate_global->__pyx_tuple__71
#define __pyx_tuple__73 __pyx_mstate_global->__pyx_tuple__73
#define __pyx_tuple__75 __pyx_mstate_global->__pyx_tuple__75
@@ -4886,8 +5130,8 @@ static int __pyx_m_traverse(PyObject *m, visitproc visit, void *arg) {
#define __pyx_tuple__95 __pyx_mstate_global->__pyx_tuple__95
#define __pyx_tuple__97 __pyx_mstate_global->__pyx_tuple__97
#define __pyx_tuple__99 __pyx_mstate_global->__pyx_tuple__99
-#define __pyx_codeobj__5 __pyx_mstate_global->__pyx_codeobj__5
-#define __pyx_codeobj__8 __pyx_mstate_global->__pyx_codeobj__8
+#define __pyx_codeobj__6 __pyx_mstate_global->__pyx_codeobj__6
+#define __pyx_codeobj__9 __pyx_mstate_global->__pyx_codeobj__9
#define __pyx_tuple__101 __pyx_mstate_global->__pyx_tuple__101
#define __pyx_tuple__103 __pyx_mstate_global->__pyx_tuple__103
#define __pyx_tuple__105 __pyx_mstate_global->__pyx_tuple__105
@@ -4903,27 +5147,28 @@ static int __pyx_m_traverse(PyObject *m, visitproc visit, void *arg) {
#define __pyx_tuple__125 __pyx_mstate_global->__pyx_tuple__125
#define __pyx_tuple__127 __pyx_mstate_global->__pyx_tuple__127
#define __pyx_tuple__129 __pyx_mstate_global->__pyx_tuple__129
-#define __pyx_codeobj__24 __pyx_mstate_global->__pyx_codeobj__24
+#define __pyx_tuple__131 __pyx_mstate_global->__pyx_tuple__131
+#define __pyx_tuple__133 __pyx_mstate_global->__pyx_tuple__133
#define __pyx_codeobj__26 __pyx_mstate_global->__pyx_codeobj__26
#define __pyx_codeobj__28 __pyx_mstate_global->__pyx_codeobj__28
#define __pyx_codeobj__30 __pyx_mstate_global->__pyx_codeobj__30
#define __pyx_codeobj__32 __pyx_mstate_global->__pyx_codeobj__32
#define __pyx_codeobj__34 __pyx_mstate_global->__pyx_codeobj__34
-#define __pyx_codeobj__37 __pyx_mstate_global->__pyx_codeobj__37
+#define __pyx_codeobj__36 __pyx_mstate_global->__pyx_codeobj__36
#define __pyx_codeobj__39 __pyx_mstate_global->__pyx_codeobj__39
#define __pyx_codeobj__41 __pyx_mstate_global->__pyx_codeobj__41
-#define __pyx_codeobj__44 __pyx_mstate_global->__pyx_codeobj__44
-#define __pyx_codeobj__47 __pyx_mstate_global->__pyx_codeobj__47
+#define __pyx_codeobj__43 __pyx_mstate_global->__pyx_codeobj__43
+#define __pyx_codeobj__46 __pyx_mstate_global->__pyx_codeobj__46
#define __pyx_codeobj__49 __pyx_mstate_global->__pyx_codeobj__49
#define __pyx_codeobj__51 __pyx_mstate_global->__pyx_codeobj__51
-#define __pyx_codeobj__54 __pyx_mstate_global->__pyx_codeobj__54
+#define __pyx_codeobj__53 __pyx_mstate_global->__pyx_codeobj__53
#define __pyx_codeobj__56 __pyx_mstate_global->__pyx_codeobj__56
-#define __pyx_codeobj__59 __pyx_mstate_global->__pyx_codeobj__59
+#define __pyx_codeobj__58 __pyx_mstate_global->__pyx_codeobj__58
#define __pyx_codeobj__61 __pyx_mstate_global->__pyx_codeobj__61
#define __pyx_codeobj__63 __pyx_mstate_global->__pyx_codeobj__63
#define __pyx_codeobj__65 __pyx_mstate_global->__pyx_codeobj__65
#define __pyx_codeobj__67 __pyx_mstate_global->__pyx_codeobj__67
-#define __pyx_codeobj__70 __pyx_mstate_global->__pyx_codeobj__70
+#define __pyx_codeobj__69 __pyx_mstate_global->__pyx_codeobj__69
#define __pyx_codeobj__72 __pyx_mstate_global->__pyx_codeobj__72
#define __pyx_codeobj__74 __pyx_mstate_global->__pyx_codeobj__74
#define __pyx_codeobj__76 __pyx_mstate_global->__pyx_codeobj__76
@@ -4954,15 +5199,17 @@ static int __pyx_m_traverse(PyObject *m, visitproc visit, void *arg) {
#define __pyx_codeobj__126 __pyx_mstate_global->__pyx_codeobj__126
#define __pyx_codeobj__128 __pyx_mstate_global->__pyx_codeobj__128
#define __pyx_codeobj__130 __pyx_mstate_global->__pyx_codeobj__130
+#define __pyx_codeobj__132 __pyx_mstate_global->__pyx_codeobj__132
+#define __pyx_codeobj__134 __pyx_mstate_global->__pyx_codeobj__134
#endif
/* #### Code section: module_code ### */
-/* "falcon/routing/compiled.py":88
+/* "falcon/routing/compiled.py":93
* )
*
- * def __init__(self): # <<<<<<<<<<<<<<
- * self._ast = None
- * self._converters = None
+ * def __init__(self) -> None: # <<<<<<<<<<<<<<
+ * self._ast: '_CxParent' = _CxParent()
+ * self._converters: 'List[converters.BaseConverter]' = []
*/
/* Python wrapper */
@@ -5011,12 +5258,12 @@ PyObject *__pyx_args, PyObject *__pyx_kwds
switch (__pyx_nargs) {
case 0:
if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_self)) != 0)) kw_args--;
- else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 88, __pyx_L3_error)
+ else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 93, __pyx_L3_error)
else goto __pyx_L5_argtuple_error;
}
if (unlikely(kw_args > 0)) {
const Py_ssize_t kwd_pos_args = __pyx_nargs;
- if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__init__") < 0)) __PYX_ERR(0, 88, __pyx_L3_error)
+ if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__init__") < 0)) __PYX_ERR(0, 93, __pyx_L3_error)
}
} else if (unlikely(__pyx_nargs != 1)) {
goto __pyx_L5_argtuple_error;
@@ -5027,7 +5274,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
- __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 88, __pyx_L3_error)
+ __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 93, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("falcon.routing.compiled.CompiledRouter.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
@@ -5052,41 +5299,67 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_14CompiledRouter___init__(C
int __pyx_clineno = 0;
__Pyx_RefNannySetupContext("__init__", 0);
- /* "falcon/routing/compiled.py":89
+ /* "falcon/routing/compiled.py":94
*
- * def __init__(self):
- * self._ast = None # <<<<<<<<<<<<<<
- * self._converters = None
- * self._finder_src = None
+ * def __init__(self) -> None:
+ * self._ast: '_CxParent' = _CxParent() # <<<<<<<<<<<<<<
+ * self._converters: 'List[converters.BaseConverter]' = []
+ * self._finder_src: str = ''
*/
- if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_ast, Py_None) < 0) __PYX_ERR(0, 89, __pyx_L1_error)
+ __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_CxParent); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 94, __pyx_L1_error)
+ __Pyx_GOTREF(__pyx_t_2);
+ __pyx_t_3 = NULL;
+ __pyx_t_4 = 0;
+ if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) {
+ __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
+ if (likely(__pyx_t_3)) {
+ PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
+ __Pyx_INCREF(__pyx_t_3);
+ __Pyx_INCREF(function);
+ __Pyx_DECREF_SET(__pyx_t_2, function);
+ __pyx_t_4 = 1;
+ }
+ }
+ {
+ PyObject *__pyx_callargs[1] = {__pyx_t_3, };
+ __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_4, 0+__pyx_t_4);
+ __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
+ if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 94, __pyx_L1_error)
+ __Pyx_GOTREF(__pyx_t_1);
+ __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+ }
+ if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_ast, __pyx_t_1) < 0) __PYX_ERR(0, 94, __pyx_L1_error)
+ __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
- /* "falcon/routing/compiled.py":90
- * def __init__(self):
- * self._ast = None
- * self._converters = None # <<<<<<<<<<<<<<
- * self._finder_src = None
+ /* "falcon/routing/compiled.py":95
+ * def __init__(self) -> None:
+ * self._ast: '_CxParent' = _CxParent()
+ * self._converters: 'List[converters.BaseConverter]' = [] # <<<<<<<<<<<<<<
+ * self._finder_src: str = ''
*
*/
- if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_converters, Py_None) < 0) __PYX_ERR(0, 90, __pyx_L1_error)
+ __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 95, __pyx_L1_error)
+ __Pyx_GOTREF(__pyx_t_1);
+ if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_converters, __pyx_t_1) < 0) __PYX_ERR(0, 95, __pyx_L1_error)
+ __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
- /* "falcon/routing/compiled.py":91
- * self._ast = None
- * self._converters = None
- * self._finder_src = None # <<<<<<<<<<<<<<
+ /* "falcon/routing/compiled.py":96
+ * self._ast: '_CxParent' = _CxParent()
+ * self._converters: 'List[converters.BaseConverter]' = []
+ * self._finder_src: str = '' # <<<<<<<<<<<<<<
*
* self._options = CompiledRouterOptions()
*/
- if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_finder_src, Py_None) < 0) __PYX_ERR(0, 91, __pyx_L1_error)
+ if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_finder_src, __pyx_kp_u_) < 0) __PYX_ERR(0, 96, __pyx_L1_error)
- /* "falcon/routing/compiled.py":93
- * self._finder_src = None
+ /* "falcon/routing/compiled.py":98
+ * self._finder_src: str = ''
*
* self._options = CompiledRouterOptions() # <<<<<<<<<<<<<<
*
* # PERF(kgriffs): This is usually an anti-pattern, but we do it
*/
- __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_CompiledRouterOptions); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 93, __pyx_L1_error)
+ __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_CompiledRouterOptions); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 98, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_3 = NULL;
__pyx_t_4 = 0;
@@ -5104,81 +5377,95 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_14CompiledRouter___init__(C
PyObject *__pyx_callargs[1] = {__pyx_t_3, };
__pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_4, 0+__pyx_t_4);
__Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
- if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 93, __pyx_L1_error)
+ if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 98, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
}
- if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_options, __pyx_t_1) < 0) __PYX_ERR(0, 93, __pyx_L1_error)
+ if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_options, __pyx_t_1) < 0) __PYX_ERR(0, 98, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
- /* "falcon/routing/compiled.py":97
- * # PERF(kgriffs): This is usually an anti-pattern, but we do it
+ /* "falcon/routing/compiled.py":103
* # here to reduce lookup time.
- * self._converter_map = self._options.converters.data # <<<<<<<<<<<<<<
+ * self._converter_map: 'Dict[str, converters.BaseConverter]' = (
+ * self._options.converters.data # <<<<<<<<<<<<<<
+ * )
*
- * self._patterns = None
*/
- __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_options); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 97, __pyx_L1_error)
+ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_options); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 103, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
- __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_converters_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 97, __pyx_L1_error)
+ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_converters_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 103, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
- __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_data); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 97, __pyx_L1_error)
+ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_data); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 103, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
- if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_converter_map, __pyx_t_1) < 0) __PYX_ERR(0, 97, __pyx_L1_error)
+
+ /* "falcon/routing/compiled.py":102
+ * # PERF(kgriffs): This is usually an anti-pattern, but we do it
+ * # here to reduce lookup time.
+ * self._converter_map: 'Dict[str, converters.BaseConverter]' = ( # <<<<<<<<<<<<<<
+ * self._options.converters.data
+ * )
+ */
+ if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_converter_map, __pyx_t_1) < 0) __PYX_ERR(0, 102, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
- /* "falcon/routing/compiled.py":99
- * self._converter_map = self._options.converters.data
+ /* "falcon/routing/compiled.py":106
+ * )
*
- * self._patterns = None # <<<<<<<<<<<<<<
- * self._return_values = None
- * self._roots = []
+ * self._patterns: 'List[Pattern]' = [] # <<<<<<<<<<<<<<
+ * self._return_values: 'List[CompiledRouterNode]' = []
+ * self._roots: 'List[CompiledRouterNode]' = []
*/
- if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_patterns, Py_None) < 0) __PYX_ERR(0, 99, __pyx_L1_error)
+ __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 106, __pyx_L1_error)
+ __Pyx_GOTREF(__pyx_t_1);
+ if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_patterns, __pyx_t_1) < 0) __PYX_ERR(0, 106, __pyx_L1_error)
+ __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
- /* "falcon/routing/compiled.py":100
+ /* "falcon/routing/compiled.py":107
*
- * self._patterns = None
- * self._return_values = None # <<<<<<<<<<<<<<
- * self._roots = []
+ * self._patterns: 'List[Pattern]' = []
+ * self._return_values: 'List[CompiledRouterNode]' = [] # <<<<<<<<<<<<<<
+ * self._roots: 'List[CompiledRouterNode]' = []
*
*/
- if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_return_values, Py_None) < 0) __PYX_ERR(0, 100, __pyx_L1_error)
+ __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 107, __pyx_L1_error)
+ __Pyx_GOTREF(__pyx_t_1);
+ if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_return_values, __pyx_t_1) < 0) __PYX_ERR(0, 107, __pyx_L1_error)
+ __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
- /* "falcon/routing/compiled.py":101
- * self._patterns = None
- * self._return_values = None
- * self._roots = [] # <<<<<<<<<<<<<<
+ /* "falcon/routing/compiled.py":108
+ * self._patterns: 'List[Pattern]' = []
+ * self._return_values: 'List[CompiledRouterNode]' = []
+ * self._roots: 'List[CompiledRouterNode]' = [] # <<<<<<<<<<<<<<
*
* # NOTE(caselit): set _find to the delayed compile method to ensure that
*/
- __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 101, __pyx_L1_error)
+ __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 108, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
- if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_roots, __pyx_t_1) < 0) __PYX_ERR(0, 101, __pyx_L1_error)
+ if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_roots, __pyx_t_1) < 0) __PYX_ERR(0, 108, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
- /* "falcon/routing/compiled.py":105
+ /* "falcon/routing/compiled.py":112
* # NOTE(caselit): set _find to the delayed compile method to ensure that
* # compile is called when the router is first used
* self._find = self._compile_and_find # <<<<<<<<<<<<<<
* self._compile_lock = Lock()
*
*/
- __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_compile_and_find); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 105, __pyx_L1_error)
+ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_compile_and_find); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 112, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
- if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_find, __pyx_t_1) < 0) __PYX_ERR(0, 105, __pyx_L1_error)
+ if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_find, __pyx_t_1) < 0) __PYX_ERR(0, 112, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
- /* "falcon/routing/compiled.py":106
+ /* "falcon/routing/compiled.py":113
* # compile is called when the router is first used
* self._find = self._compile_and_find
* self._compile_lock = Lock() # <<<<<<<<<<<<<<
*
* @property
*/
- __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_Lock); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 106, __pyx_L1_error)
+ __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_Lock); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 113, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_3 = NULL;
__pyx_t_4 = 0;
@@ -5196,19 +5483,19 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_14CompiledRouter___init__(C
PyObject *__pyx_callargs[1] = {__pyx_t_3, };
__pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_4, 0+__pyx_t_4);
__Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
- if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 106, __pyx_L1_error)
+ if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 113, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
}
- if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_compile_lock, __pyx_t_1) < 0) __PYX_ERR(0, 106, __pyx_L1_error)
+ if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_compile_lock, __pyx_t_1) < 0) __PYX_ERR(0, 113, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
- /* "falcon/routing/compiled.py":88
+ /* "falcon/routing/compiled.py":93
* )
*
- * def __init__(self): # <<<<<<<<<<<<<<
- * self._ast = None
- * self._converters = None
+ * def __init__(self) -> None: # <<<<<<<<<<<<<<
+ * self._ast: '_CxParent' = _CxParent()
+ * self._converters: 'List[converters.BaseConverter]' = []
*/
/* function exit code */
@@ -5226,11 +5513,11 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_14CompiledRouter___init__(C
return __pyx_r;
}
-/* "falcon/routing/compiled.py":108
+/* "falcon/routing/compiled.py":115
* self._compile_lock = Lock()
*
* @property # <<<<<<<<<<<<<<
- * def options(self):
+ * def options(self) -> 'CompiledRouterOptions':
* return self._options
*/
@@ -5280,12 +5567,12 @@ PyObject *__pyx_args, PyObject *__pyx_kwds
switch (__pyx_nargs) {
case 0:
if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_self)) != 0)) kw_args--;
- else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 108, __pyx_L3_error)
+ else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 115, __pyx_L3_error)
else goto __pyx_L5_argtuple_error;
}
if (unlikely(kw_args > 0)) {
const Py_ssize_t kwd_pos_args = __pyx_nargs;
- if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "options") < 0)) __PYX_ERR(0, 108, __pyx_L3_error)
+ if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "options") < 0)) __PYX_ERR(0, 115, __pyx_L3_error)
}
} else if (unlikely(__pyx_nargs != 1)) {
goto __pyx_L5_argtuple_error;
@@ -5296,7 +5583,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
- __Pyx_RaiseArgtupleInvalid("options", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 108, __pyx_L3_error)
+ __Pyx_RaiseArgtupleInvalid("options", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 115, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("falcon.routing.compiled.CompiledRouter.options", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
@@ -5318,25 +5605,25 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_14CompiledRouter_2options(C
int __pyx_clineno = 0;
__Pyx_RefNannySetupContext("options", 0);
- /* "falcon/routing/compiled.py":110
+ /* "falcon/routing/compiled.py":117
* @property
- * def options(self):
+ * def options(self) -> 'CompiledRouterOptions':
* return self._options # <<<<<<<<<<<<<<
*
* @property
*/
__Pyx_XDECREF(__pyx_r);
- __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_options); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 110, __pyx_L1_error)
+ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_options); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 117, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_r = __pyx_t_1;
__pyx_t_1 = 0;
goto __pyx_L0;
- /* "falcon/routing/compiled.py":108
+ /* "falcon/routing/compiled.py":115
* self._compile_lock = Lock()
*
* @property # <<<<<<<<<<<<<<
- * def options(self):
+ * def options(self) -> 'CompiledRouterOptions':
* return self._options
*/
@@ -5351,11 +5638,11 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_14CompiledRouter_2options(C
return __pyx_r;
}
-/* "falcon/routing/compiled.py":112
+/* "falcon/routing/compiled.py":119
* return self._options
*
* @property # <<<<<<<<<<<<<<
- * def finder_src(self):
+ * def finder_src(self) -> str:
* # NOTE(caselit): ensure that the router is actually compiled before
*/
@@ -5405,12 +5692,12 @@ PyObject *__pyx_args, PyObject *__pyx_kwds
switch (__pyx_nargs) {
case 0:
if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_self)) != 0)) kw_args--;
- else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 112, __pyx_L3_error)
+ else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 119, __pyx_L3_error)
else goto __pyx_L5_argtuple_error;
}
if (unlikely(kw_args > 0)) {
const Py_ssize_t kwd_pos_args = __pyx_nargs;
- if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "finder_src") < 0)) __PYX_ERR(0, 112, __pyx_L3_error)
+ if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "finder_src") < 0)) __PYX_ERR(0, 119, __pyx_L3_error)
}
} else if (unlikely(__pyx_nargs != 1)) {
goto __pyx_L5_argtuple_error;
@@ -5421,7 +5708,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
- __Pyx_RaiseArgtupleInvalid("finder_src", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 112, __pyx_L3_error)
+ __Pyx_RaiseArgtupleInvalid("finder_src", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 119, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("falcon.routing.compiled.CompiledRouter.finder_src", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
@@ -5446,14 +5733,14 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_14CompiledRouter_4finder_sr
int __pyx_clineno = 0;
__Pyx_RefNannySetupContext("finder_src", 0);
- /* "falcon/routing/compiled.py":117
+ /* "falcon/routing/compiled.py":124
* # returning the finder source, since the current value may be out of
* # date
* self.find('/') # <<<<<<<<<<<<<<
* return self._finder_src
*
*/
- __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_find_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 117, __pyx_L1_error)
+ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_find_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 124, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_3 = NULL;
__pyx_t_4 = 0;
@@ -5468,34 +5755,35 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_14CompiledRouter_4finder_sr
}
}
{
- PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_kp_u_};
+ PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_kp_u__2};
__pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_4, 1+__pyx_t_4);
__Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
- if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 117, __pyx_L1_error)
+ if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 124, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
- /* "falcon/routing/compiled.py":118
+ /* "falcon/routing/compiled.py":125
* # date
* self.find('/')
* return self._finder_src # <<<<<<<<<<<<<<
*
- * def map_http_methods(self, resource, **kwargs):
+ * def map_http_methods(self, resource: object, **kwargs):
*/
__Pyx_XDECREF(__pyx_r);
- __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_finder_src); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 118, __pyx_L1_error)
+ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_finder_src); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 125, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
- __pyx_r = __pyx_t_1;
+ if (!(likely(PyUnicode_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("unicode", __pyx_t_1))) __PYX_ERR(0, 125, __pyx_L1_error)
+ __pyx_r = ((PyObject*)__pyx_t_1);
__pyx_t_1 = 0;
goto __pyx_L0;
- /* "falcon/routing/compiled.py":112
+ /* "falcon/routing/compiled.py":119
* return self._options
*
* @property # <<<<<<<<<<<<<<
- * def finder_src(self):
+ * def finder_src(self) -> str:
* # NOTE(caselit): ensure that the router is actually compiled before
*/
@@ -5512,10 +5800,10 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_14CompiledRouter_4finder_sr
return __pyx_r;
}
-/* "falcon/routing/compiled.py":120
+/* "falcon/routing/compiled.py":127
* return self._finder_src
*
- * def map_http_methods(self, resource, **kwargs): # <<<<<<<<<<<<<<
+ * def map_http_methods(self, resource: object, **kwargs): # <<<<<<<<<<<<<<
* """Map HTTP methods (e.g., GET, POST) to methods of a resource object.
*
*/
@@ -5573,19 +5861,19 @@ PyObject *__pyx_args, PyObject *__pyx_kwds
switch (__pyx_nargs) {
case 0:
if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_self)) != 0)) kw_args--;
- else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 120, __pyx_L3_error)
+ else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 127, __pyx_L3_error)
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_resource)) != 0)) kw_args--;
- else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 120, __pyx_L3_error)
+ else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 127, __pyx_L3_error)
else {
- __Pyx_RaiseArgtupleInvalid("map_http_methods", 1, 2, 2, 1); __PYX_ERR(0, 120, __pyx_L3_error)
+ __Pyx_RaiseArgtupleInvalid("map_http_methods", 1, 2, 2, 1); __PYX_ERR(0, 127, __pyx_L3_error)
}
}
if (unlikely(kw_args > 0)) {
const Py_ssize_t kwd_pos_args = __pyx_nargs;
- if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, __pyx_v_kwargs, values + 0, kwd_pos_args, "map_http_methods") < 0)) __PYX_ERR(0, 120, __pyx_L3_error)
+ if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, __pyx_v_kwargs, values + 0, kwd_pos_args, "map_http_methods") < 0)) __PYX_ERR(0, 127, __pyx_L3_error)
}
} else if (unlikely(__pyx_nargs != 2)) {
goto __pyx_L5_argtuple_error;
@@ -5598,7 +5886,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
- __Pyx_RaiseArgtupleInvalid("map_http_methods", 1, 2, 2, __pyx_nargs); __PYX_ERR(0, 120, __pyx_L3_error)
+ __Pyx_RaiseArgtupleInvalid("map_http_methods", 1, 2, 2, __pyx_nargs); __PYX_ERR(0, 127, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_DECREF(__pyx_v_kwargs); __pyx_v_kwargs = 0;
__Pyx_AddTraceback("falcon.routing.compiled.CompiledRouter.map_http_methods", __pyx_clineno, __pyx_lineno, __pyx_filename);
@@ -5625,28 +5913,28 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_14CompiledRouter_6map_http_
int __pyx_clineno = 0;
__Pyx_RefNannySetupContext("map_http_methods", 0);
- /* "falcon/routing/compiled.py":147
+ /* "falcon/routing/compiled.py":154
* """
*
* return map_http_methods(resource, suffix=kwargs.get('suffix', None)) # <<<<<<<<<<<<<<
*
- * def add_route(self, uri_template, resource, **kwargs):
+ * def add_route(self, uri_template: str, resource: object, **kwargs):
*/
__Pyx_XDECREF(__pyx_r);
- __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_map_http_methods); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 147, __pyx_L1_error)
+ __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_map_http_methods); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 154, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
- __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 147, __pyx_L1_error)
+ __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 154, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_INCREF(__pyx_v_resource);
__Pyx_GIVEREF(__pyx_v_resource);
PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_resource);
- __pyx_t_3 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 147, __pyx_L1_error)
+ __pyx_t_3 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 154, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
- __pyx_t_4 = __Pyx_PyDict_GetItemDefault(__pyx_v_kwargs, __pyx_n_u_suffix, Py_None); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 147, __pyx_L1_error)
+ __pyx_t_4 = __Pyx_PyDict_GetItemDefault(__pyx_v_kwargs, __pyx_n_u_suffix, Py_None); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 154, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
- if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_suffix, __pyx_t_4) < 0) __PYX_ERR(0, 147, __pyx_L1_error)
+ if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_suffix, __pyx_t_4) < 0) __PYX_ERR(0, 154, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
- __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 147, __pyx_L1_error)
+ __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 154, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
@@ -5655,10 +5943,10 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_14CompiledRouter_6map_http_
__pyx_t_4 = 0;
goto __pyx_L0;
- /* "falcon/routing/compiled.py":120
+ /* "falcon/routing/compiled.py":127
* return self._finder_src
*
- * def map_http_methods(self, resource, **kwargs): # <<<<<<<<<<<<<<
+ * def map_http_methods(self, resource: object, **kwargs): # <<<<<<<<<<<<<<
* """Map HTTP methods (e.g., GET, POST) to methods of a resource object.
*
*/
@@ -5677,10 +5965,10 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_14CompiledRouter_6map_http_
return __pyx_r;
}
-/* "falcon/routing/compiled.py":149
+/* "falcon/routing/compiled.py":156
* return map_http_methods(resource, suffix=kwargs.get('suffix', None))
*
- * def add_route(self, uri_template, resource, **kwargs): # <<<<<<<<<<<<<<
+ * def add_route(self, uri_template: str, resource: object, **kwargs): # <<<<<<<<<<<<<<
* """Add a route between a URI path template and a resource.
*
*/
@@ -5741,26 +6029,26 @@ PyObject *__pyx_args, PyObject *__pyx_kwds
switch (__pyx_nargs) {
case 0:
if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_self)) != 0)) kw_args--;
- else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 149, __pyx_L3_error)
+ else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 156, __pyx_L3_error)
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_uri_template)) != 0)) kw_args--;
- else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 149, __pyx_L3_error)
+ else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 156, __pyx_L3_error)
else {
- __Pyx_RaiseArgtupleInvalid("add_route", 1, 3, 3, 1); __PYX_ERR(0, 149, __pyx_L3_error)
+ __Pyx_RaiseArgtupleInvalid("add_route", 1, 3, 3, 1); __PYX_ERR(0, 156, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 2:
if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_resource)) != 0)) kw_args--;
- else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 149, __pyx_L3_error)
+ else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 156, __pyx_L3_error)
else {
- __Pyx_RaiseArgtupleInvalid("add_route", 1, 3, 3, 2); __PYX_ERR(0, 149, __pyx_L3_error)
+ __Pyx_RaiseArgtupleInvalid("add_route", 1, 3, 3, 2); __PYX_ERR(0, 156, __pyx_L3_error)
}
}
if (unlikely(kw_args > 0)) {
const Py_ssize_t kwd_pos_args = __pyx_nargs;
- if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, __pyx_v_kwargs, values + 0, kwd_pos_args, "add_route") < 0)) __PYX_ERR(0, 149, __pyx_L3_error)
+ if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, __pyx_v_kwargs, values + 0, kwd_pos_args, "add_route") < 0)) __PYX_ERR(0, 156, __pyx_L3_error)
}
} else if (unlikely(__pyx_nargs != 3)) {
goto __pyx_L5_argtuple_error;
@@ -5770,30 +6058,35 @@ PyObject *__pyx_args, PyObject *__pyx_kwds
values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
}
__pyx_v_self = values[0];
- __pyx_v_uri_template = values[1];
+ __pyx_v_uri_template = ((PyObject*)values[1]);
__pyx_v_resource = values[2];
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
- __Pyx_RaiseArgtupleInvalid("add_route", 1, 3, 3, __pyx_nargs); __PYX_ERR(0, 149, __pyx_L3_error)
+ __Pyx_RaiseArgtupleInvalid("add_route", 1, 3, 3, __pyx_nargs); __PYX_ERR(0, 156, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_DECREF(__pyx_v_kwargs); __pyx_v_kwargs = 0;
__Pyx_AddTraceback("falcon.routing.compiled.CompiledRouter.add_route", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
+ if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_uri_template), (&PyUnicode_Type), 1, "uri_template", 1))) __PYX_ERR(0, 156, __pyx_L1_error)
__pyx_r = __pyx_pf_6falcon_7routing_8compiled_14CompiledRouter_8add_route(__pyx_self, __pyx_v_self, __pyx_v_uri_template, __pyx_v_resource, __pyx_v_kwargs);
/* function exit code */
+ goto __pyx_L0;
+ __pyx_L1_error:;
+ __pyx_r = NULL;
+ __pyx_L0:;
__Pyx_DECREF(__pyx_v_kwargs);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
-/* "falcon/routing/compiled.py":210
+/* "falcon/routing/compiled.py":217
* self._validate_template_segment(segment, used_names)
*
- * def insert(nodes, path_index=0): # <<<<<<<<<<<<<<
+ * def insert(nodes: 'List[CompiledRouterNode]', path_index: int = 0): # <<<<<<<<<<<<<<
* for node in nodes:
* segment = path[path_index]
*/
@@ -5848,19 +6141,19 @@ PyObject *__pyx_args, PyObject *__pyx_kwds
switch (__pyx_nargs) {
case 0:
if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_nodes)) != 0)) kw_args--;
- else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 210, __pyx_L3_error)
+ else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 217, __pyx_L3_error)
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (kw_args > 0) {
PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_path_index);
if (value) { values[1] = value; kw_args--; }
- else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 210, __pyx_L3_error)
+ else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 217, __pyx_L3_error)
}
}
if (unlikely(kw_args > 0)) {
const Py_ssize_t kwd_pos_args = __pyx_nargs;
- if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "insert") < 0)) __PYX_ERR(0, 210, __pyx_L3_error)
+ if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "insert") < 0)) __PYX_ERR(0, 217, __pyx_L3_error)
}
} else {
switch (__pyx_nargs) {
@@ -5876,7 +6169,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
- __Pyx_RaiseArgtupleInvalid("insert", 0, 1, 2, __pyx_nargs); __PYX_ERR(0, 210, __pyx_L3_error)
+ __Pyx_RaiseArgtupleInvalid("insert", 0, 1, 2, __pyx_nargs); __PYX_ERR(0, 217, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("falcon.routing.compiled.CompiledRouter.add_route.insert", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
@@ -5915,9 +6208,9 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_14CompiledRouter_9add_route
__pyx_cur_scope = __pyx_outer_scope;
__Pyx_INCREF(__pyx_v_path_index);
- /* "falcon/routing/compiled.py":211
+ /* "falcon/routing/compiled.py":218
*
- * def insert(nodes, path_index=0):
+ * def insert(nodes: 'List[CompiledRouterNode]', path_index: int = 0):
* for node in nodes: # <<<<<<<<<<<<<<
* segment = path[path_index]
* if node.matches(segment):
@@ -5926,26 +6219,26 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_14CompiledRouter_9add_route
__pyx_t_1 = __pyx_v_nodes; __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = 0;
__pyx_t_3 = NULL;
} else {
- __pyx_t_2 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_v_nodes); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 211, __pyx_L1_error)
+ __pyx_t_2 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_v_nodes); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 218, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
- __pyx_t_3 = __Pyx_PyObject_GetIterNextFunc(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 211, __pyx_L1_error)
+ __pyx_t_3 = __Pyx_PyObject_GetIterNextFunc(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 218, __pyx_L1_error)
}
for (;;) {
if (likely(!__pyx_t_3)) {
if (likely(PyList_CheckExact(__pyx_t_1))) {
if (__pyx_t_2 >= PyList_GET_SIZE(__pyx_t_1)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
- __pyx_t_4 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++; if (unlikely((0 < 0))) __PYX_ERR(0, 211, __pyx_L1_error)
+ __pyx_t_4 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++; if (unlikely((0 < 0))) __PYX_ERR(0, 218, __pyx_L1_error)
#else
- __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 211, __pyx_L1_error)
+ __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 218, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
#endif
} else {
if (__pyx_t_2 >= PyTuple_GET_SIZE(__pyx_t_1)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
- __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++; if (unlikely((0 < 0))) __PYX_ERR(0, 211, __pyx_L1_error)
+ __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++; if (unlikely((0 < 0))) __PYX_ERR(0, 218, __pyx_L1_error)
#else
- __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 211, __pyx_L1_error)
+ __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 218, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
#endif
}
@@ -5955,7 +6248,7 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_14CompiledRouter_9add_route
PyObject* exc_type = PyErr_Occurred();
if (exc_type) {
if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
- else __PYX_ERR(0, 211, __pyx_L1_error)
+ else __PYX_ERR(0, 218, __pyx_L1_error)
}
break;
}
@@ -5964,27 +6257,27 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_14CompiledRouter_9add_route
__Pyx_XDECREF_SET(__pyx_v_node, __pyx_t_4);
__pyx_t_4 = 0;
- /* "falcon/routing/compiled.py":212
- * def insert(nodes, path_index=0):
+ /* "falcon/routing/compiled.py":219
+ * def insert(nodes: 'List[CompiledRouterNode]', path_index: int = 0):
* for node in nodes:
* segment = path[path_index] # <<<<<<<<<<<<<<
* if node.matches(segment):
* path_index += 1
*/
- if (unlikely(!__pyx_cur_scope->__pyx_v_path)) { __Pyx_RaiseClosureNameError("path"); __PYX_ERR(0, 212, __pyx_L1_error) }
- __pyx_t_4 = __Pyx_PyObject_GetItem(__pyx_cur_scope->__pyx_v_path, __pyx_v_path_index); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 212, __pyx_L1_error)
+ if (unlikely(!__pyx_cur_scope->__pyx_v_path)) { __Pyx_RaiseClosureNameError("path"); __PYX_ERR(0, 219, __pyx_L1_error) }
+ __pyx_t_4 = __Pyx_PyObject_GetItem(__pyx_cur_scope->__pyx_v_path, __pyx_v_path_index); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 219, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_XDECREF_SET(__pyx_v_segment, __pyx_t_4);
__pyx_t_4 = 0;
- /* "falcon/routing/compiled.py":213
+ /* "falcon/routing/compiled.py":220
* for node in nodes:
* segment = path[path_index]
* if node.matches(segment): # <<<<<<<<<<<<<<
* path_index += 1
* if path_index == len(path):
*/
- __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_node, __pyx_n_s_matches); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 213, __pyx_L1_error)
+ __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_node, __pyx_n_s_matches); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 220, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__pyx_t_6 = NULL;
__pyx_t_7 = 0;
@@ -6002,77 +6295,77 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_14CompiledRouter_9add_route
PyObject *__pyx_callargs[2] = {__pyx_t_6, __pyx_v_segment};
__pyx_t_4 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+1-__pyx_t_7, 1+__pyx_t_7);
__Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
- if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 213, __pyx_L1_error)
+ if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 220, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
}
- __pyx_t_8 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely((__pyx_t_8 < 0))) __PYX_ERR(0, 213, __pyx_L1_error)
+ __pyx_t_8 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely((__pyx_t_8 < 0))) __PYX_ERR(0, 220, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
if (__pyx_t_8) {
- /* "falcon/routing/compiled.py":214
+ /* "falcon/routing/compiled.py":221
* segment = path[path_index]
* if node.matches(segment):
* path_index += 1 # <<<<<<<<<<<<<<
* if path_index == len(path):
* # NOTE(kgriffs): Override previous node
*/
- __pyx_t_4 = __Pyx_PyInt_AddObjC(__pyx_v_path_index, __pyx_int_1, 1, 1, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 214, __pyx_L1_error)
+ __pyx_t_4 = __Pyx_PyInt_AddObjC(__pyx_v_path_index, __pyx_int_1, 1, 1, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 221, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_DECREF_SET(__pyx_v_path_index, __pyx_t_4);
__pyx_t_4 = 0;
- /* "falcon/routing/compiled.py":215
+ /* "falcon/routing/compiled.py":222
* if node.matches(segment):
* path_index += 1
* if path_index == len(path): # <<<<<<<<<<<<<<
* # NOTE(kgriffs): Override previous node
* node.method_map = method_map
*/
- if (unlikely(!__pyx_cur_scope->__pyx_v_path)) { __Pyx_RaiseClosureNameError("path"); __PYX_ERR(0, 215, __pyx_L1_error) }
+ if (unlikely(!__pyx_cur_scope->__pyx_v_path)) { __Pyx_RaiseClosureNameError("path"); __PYX_ERR(0, 222, __pyx_L1_error) }
__pyx_t_4 = __pyx_cur_scope->__pyx_v_path;
__Pyx_INCREF(__pyx_t_4);
- __pyx_t_9 = PyObject_Length(__pyx_t_4); if (unlikely(__pyx_t_9 == ((Py_ssize_t)-1))) __PYX_ERR(0, 215, __pyx_L1_error)
+ __pyx_t_9 = PyObject_Length(__pyx_t_4); if (unlikely(__pyx_t_9 == ((Py_ssize_t)-1))) __PYX_ERR(0, 222, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
- __pyx_t_4 = PyInt_FromSsize_t(__pyx_t_9); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 215, __pyx_L1_error)
+ __pyx_t_4 = PyInt_FromSsize_t(__pyx_t_9); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 222, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
- __pyx_t_5 = PyObject_RichCompare(__pyx_v_path_index, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_5); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 215, __pyx_L1_error)
+ __pyx_t_5 = PyObject_RichCompare(__pyx_v_path_index, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_5); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 222, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
- __pyx_t_8 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely((__pyx_t_8 < 0))) __PYX_ERR(0, 215, __pyx_L1_error)
+ __pyx_t_8 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely((__pyx_t_8 < 0))) __PYX_ERR(0, 222, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
if (__pyx_t_8) {
- /* "falcon/routing/compiled.py":217
+ /* "falcon/routing/compiled.py":224
* if path_index == len(path):
* # NOTE(kgriffs): Override previous node
* node.method_map = method_map # <<<<<<<<<<<<<<
* node.resource = resource
* node.uri_template = uri_template
*/
- if (unlikely(!__pyx_cur_scope->__pyx_v_method_map)) { __Pyx_RaiseClosureNameError("method_map"); __PYX_ERR(0, 217, __pyx_L1_error) }
- if (__Pyx_PyObject_SetAttrStr(__pyx_v_node, __pyx_n_s_method_map, __pyx_cur_scope->__pyx_v_method_map) < 0) __PYX_ERR(0, 217, __pyx_L1_error)
+ if (unlikely(!__pyx_cur_scope->__pyx_v_method_map)) { __Pyx_RaiseClosureNameError("method_map"); __PYX_ERR(0, 224, __pyx_L1_error) }
+ if (__Pyx_PyObject_SetAttrStr(__pyx_v_node, __pyx_n_s_method_map, __pyx_cur_scope->__pyx_v_method_map) < 0) __PYX_ERR(0, 224, __pyx_L1_error)
- /* "falcon/routing/compiled.py":218
+ /* "falcon/routing/compiled.py":225
* # NOTE(kgriffs): Override previous node
* node.method_map = method_map
* node.resource = resource # <<<<<<<<<<<<<<
* node.uri_template = uri_template
* else:
*/
- if (unlikely(!__pyx_cur_scope->__pyx_v_resource)) { __Pyx_RaiseClosureNameError("resource"); __PYX_ERR(0, 218, __pyx_L1_error) }
- if (__Pyx_PyObject_SetAttrStr(__pyx_v_node, __pyx_n_s_resource, __pyx_cur_scope->__pyx_v_resource) < 0) __PYX_ERR(0, 218, __pyx_L1_error)
+ if (unlikely(!__pyx_cur_scope->__pyx_v_resource)) { __Pyx_RaiseClosureNameError("resource"); __PYX_ERR(0, 225, __pyx_L1_error) }
+ if (__Pyx_PyObject_SetAttrStr(__pyx_v_node, __pyx_n_s_resource, __pyx_cur_scope->__pyx_v_resource) < 0) __PYX_ERR(0, 225, __pyx_L1_error)
- /* "falcon/routing/compiled.py":219
+ /* "falcon/routing/compiled.py":226
* node.method_map = method_map
* node.resource = resource
* node.uri_template = uri_template # <<<<<<<<<<<<<<
* else:
* insert(node.children, path_index)
*/
- if (unlikely(!__pyx_cur_scope->__pyx_v_uri_template)) { __Pyx_RaiseClosureNameError("uri_template"); __PYX_ERR(0, 219, __pyx_L1_error) }
- if (__Pyx_PyObject_SetAttrStr(__pyx_v_node, __pyx_n_s_uri_template, __pyx_cur_scope->__pyx_v_uri_template) < 0) __PYX_ERR(0, 219, __pyx_L1_error)
+ if (unlikely(!__pyx_cur_scope->__pyx_v_uri_template)) { __Pyx_RaiseClosureNameError("uri_template"); __PYX_ERR(0, 226, __pyx_L1_error) }
+ if (__Pyx_PyObject_SetAttrStr(__pyx_v_node, __pyx_n_s_uri_template, __pyx_cur_scope->__pyx_v_uri_template) < 0) __PYX_ERR(0, 226, __pyx_L1_error)
- /* "falcon/routing/compiled.py":215
+ /* "falcon/routing/compiled.py":222
* if node.matches(segment):
* path_index += 1
* if path_index == len(path): # <<<<<<<<<<<<<<
@@ -6082,7 +6375,7 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_14CompiledRouter_9add_route
goto __pyx_L6;
}
- /* "falcon/routing/compiled.py":221
+ /* "falcon/routing/compiled.py":228
* node.uri_template = uri_template
* else:
* insert(node.children, path_index) # <<<<<<<<<<<<<<
@@ -6090,17 +6383,17 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_14CompiledRouter_9add_route
* return
*/
/*else*/ {
- __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_node, __pyx_n_s_children); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 221, __pyx_L1_error)
+ __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_node, __pyx_n_s_children); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 228, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
- if (unlikely(!__pyx_cur_scope->__pyx_v_insert)) { __Pyx_RaiseClosureNameError("insert"); __PYX_ERR(0, 221, __pyx_L1_error) }
- __pyx_t_4 = __pyx_pf_6falcon_7routing_8compiled_14CompiledRouter_9add_route_insert(__pyx_cur_scope->__pyx_v_insert, __pyx_t_5, __pyx_v_path_index); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 221, __pyx_L1_error)
+ if (unlikely(!__pyx_cur_scope->__pyx_v_insert)) { __Pyx_RaiseClosureNameError("insert"); __PYX_ERR(0, 228, __pyx_L1_error) }
+ __pyx_t_4 = __pyx_pf_6falcon_7routing_8compiled_14CompiledRouter_9add_route_insert(__pyx_cur_scope->__pyx_v_insert, __pyx_t_5, __pyx_v_path_index); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 228, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
}
__pyx_L6:;
- /* "falcon/routing/compiled.py":223
+ /* "falcon/routing/compiled.py":230
* insert(node.children, path_index)
*
* return # <<<<<<<<<<<<<<
@@ -6112,7 +6405,7 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_14CompiledRouter_9add_route
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
goto __pyx_L0;
- /* "falcon/routing/compiled.py":213
+ /* "falcon/routing/compiled.py":220
* for node in nodes:
* segment = path[path_index]
* if node.matches(segment): # <<<<<<<<<<<<<<
@@ -6121,14 +6414,14 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_14CompiledRouter_9add_route
*/
}
- /* "falcon/routing/compiled.py":225
+ /* "falcon/routing/compiled.py":232
* return
*
* if node.conflicts_with(segment): # <<<<<<<<<<<<<<
* raise ValueError(
* 'The URI template for this route is inconsistent or conflicts '
*/
- __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_node, __pyx_n_s_conflicts_with); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 225, __pyx_L1_error)
+ __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_node, __pyx_n_s_conflicts_with); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 232, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__pyx_t_6 = NULL;
__pyx_t_7 = 0;
@@ -6146,28 +6439,28 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_14CompiledRouter_9add_route
PyObject *__pyx_callargs[2] = {__pyx_t_6, __pyx_v_segment};
__pyx_t_4 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+1-__pyx_t_7, 1+__pyx_t_7);
__Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
- if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 225, __pyx_L1_error)
+ if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 232, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
}
- __pyx_t_8 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely((__pyx_t_8 < 0))) __PYX_ERR(0, 225, __pyx_L1_error)
+ __pyx_t_8 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely((__pyx_t_8 < 0))) __PYX_ERR(0, 232, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
if (unlikely(__pyx_t_8)) {
- /* "falcon/routing/compiled.py":226
+ /* "falcon/routing/compiled.py":233
*
* if node.conflicts_with(segment):
* raise ValueError( # <<<<<<<<<<<<<<
* 'The URI template for this route is inconsistent or conflicts '
* "with another route's template. This is usually caused by "
*/
- __pyx_t_4 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__2, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 226, __pyx_L1_error)
+ __pyx_t_4 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__3, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 233, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_Raise(__pyx_t_4, 0, 0, 0);
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
- __PYX_ERR(0, 226, __pyx_L1_error)
+ __PYX_ERR(0, 233, __pyx_L1_error)
- /* "falcon/routing/compiled.py":225
+ /* "falcon/routing/compiled.py":232
* return
*
* if node.conflicts_with(segment): # <<<<<<<<<<<<<<
@@ -6176,9 +6469,9 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_14CompiledRouter_9add_route
*/
}
- /* "falcon/routing/compiled.py":211
+ /* "falcon/routing/compiled.py":218
*
- * def insert(nodes, path_index=0):
+ * def insert(nodes: 'List[CompiledRouterNode]', path_index: int = 0):
* for node in nodes: # <<<<<<<<<<<<<<
* segment = path[path_index]
* if node.matches(segment):
@@ -6186,17 +6479,17 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_14CompiledRouter_9add_route
}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
- /* "falcon/routing/compiled.py":238
+ /* "falcon/routing/compiled.py":245
* # exist and needs to be created. This builds a new branch of the
* # routing tree recursively until it reaches the new node leaf.
* new_node = CompiledRouterNode(path[path_index]) # <<<<<<<<<<<<<<
* nodes.append(new_node)
* if path_index == len(path) - 1:
*/
- __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_CompiledRouterNode); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 238, __pyx_L1_error)
+ __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_CompiledRouterNode); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 245, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
- if (unlikely(!__pyx_cur_scope->__pyx_v_path)) { __Pyx_RaiseClosureNameError("path"); __PYX_ERR(0, 238, __pyx_L1_error) }
- __pyx_t_5 = __Pyx_PyObject_GetItem(__pyx_cur_scope->__pyx_v_path, __pyx_v_path_index); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 238, __pyx_L1_error)
+ if (unlikely(!__pyx_cur_scope->__pyx_v_path)) { __Pyx_RaiseClosureNameError("path"); __PYX_ERR(0, 245, __pyx_L1_error) }
+ __pyx_t_5 = __Pyx_PyObject_GetItem(__pyx_cur_scope->__pyx_v_path, __pyx_v_path_index); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 245, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__pyx_t_6 = NULL;
__pyx_t_7 = 0;
@@ -6215,73 +6508,73 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_14CompiledRouter_9add_route
__pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_7, 1+__pyx_t_7);
__Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
- if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 238, __pyx_L1_error)
+ if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 245, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
}
__pyx_v_new_node = __pyx_t_1;
__pyx_t_1 = 0;
- /* "falcon/routing/compiled.py":239
+ /* "falcon/routing/compiled.py":246
* # routing tree recursively until it reaches the new node leaf.
* new_node = CompiledRouterNode(path[path_index])
* nodes.append(new_node) # <<<<<<<<<<<<<<
* if path_index == len(path) - 1:
* new_node.method_map = method_map
*/
- __pyx_t_10 = __Pyx_PyObject_Append(__pyx_v_nodes, __pyx_v_new_node); if (unlikely(__pyx_t_10 == ((int)-1))) __PYX_ERR(0, 239, __pyx_L1_error)
+ __pyx_t_10 = __Pyx_PyObject_Append(__pyx_v_nodes, __pyx_v_new_node); if (unlikely(__pyx_t_10 == ((int)-1))) __PYX_ERR(0, 246, __pyx_L1_error)
- /* "falcon/routing/compiled.py":240
+ /* "falcon/routing/compiled.py":247
* new_node = CompiledRouterNode(path[path_index])
* nodes.append(new_node)
* if path_index == len(path) - 1: # <<<<<<<<<<<<<<
* new_node.method_map = method_map
* new_node.resource = resource
*/
- if (unlikely(!__pyx_cur_scope->__pyx_v_path)) { __Pyx_RaiseClosureNameError("path"); __PYX_ERR(0, 240, __pyx_L1_error) }
+ if (unlikely(!__pyx_cur_scope->__pyx_v_path)) { __Pyx_RaiseClosureNameError("path"); __PYX_ERR(0, 247, __pyx_L1_error) }
__pyx_t_1 = __pyx_cur_scope->__pyx_v_path;
__Pyx_INCREF(__pyx_t_1);
- __pyx_t_2 = PyObject_Length(__pyx_t_1); if (unlikely(__pyx_t_2 == ((Py_ssize_t)-1))) __PYX_ERR(0, 240, __pyx_L1_error)
+ __pyx_t_2 = PyObject_Length(__pyx_t_1); if (unlikely(__pyx_t_2 == ((Py_ssize_t)-1))) __PYX_ERR(0, 247, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
- __pyx_t_1 = PyInt_FromSsize_t((__pyx_t_2 - 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 240, __pyx_L1_error)
+ __pyx_t_1 = PyInt_FromSsize_t((__pyx_t_2 - 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 247, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
- __pyx_t_4 = PyObject_RichCompare(__pyx_v_path_index, __pyx_t_1, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 240, __pyx_L1_error)
+ __pyx_t_4 = PyObject_RichCompare(__pyx_v_path_index, __pyx_t_1, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 247, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
- __pyx_t_8 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely((__pyx_t_8 < 0))) __PYX_ERR(0, 240, __pyx_L1_error)
+ __pyx_t_8 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely((__pyx_t_8 < 0))) __PYX_ERR(0, 247, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
if (__pyx_t_8) {
- /* "falcon/routing/compiled.py":241
+ /* "falcon/routing/compiled.py":248
* nodes.append(new_node)
* if path_index == len(path) - 1:
* new_node.method_map = method_map # <<<<<<<<<<<<<<
* new_node.resource = resource
* new_node.uri_template = uri_template
*/
- if (unlikely(!__pyx_cur_scope->__pyx_v_method_map)) { __Pyx_RaiseClosureNameError("method_map"); __PYX_ERR(0, 241, __pyx_L1_error) }
- if (__Pyx_PyObject_SetAttrStr(__pyx_v_new_node, __pyx_n_s_method_map, __pyx_cur_scope->__pyx_v_method_map) < 0) __PYX_ERR(0, 241, __pyx_L1_error)
+ if (unlikely(!__pyx_cur_scope->__pyx_v_method_map)) { __Pyx_RaiseClosureNameError("method_map"); __PYX_ERR(0, 248, __pyx_L1_error) }
+ if (__Pyx_PyObject_SetAttrStr(__pyx_v_new_node, __pyx_n_s_method_map, __pyx_cur_scope->__pyx_v_method_map) < 0) __PYX_ERR(0, 248, __pyx_L1_error)
- /* "falcon/routing/compiled.py":242
+ /* "falcon/routing/compiled.py":249
* if path_index == len(path) - 1:
* new_node.method_map = method_map
* new_node.resource = resource # <<<<<<<<<<<<<<
* new_node.uri_template = uri_template
* else:
*/
- if (unlikely(!__pyx_cur_scope->__pyx_v_resource)) { __Pyx_RaiseClosureNameError("resource"); __PYX_ERR(0, 242, __pyx_L1_error) }
- if (__Pyx_PyObject_SetAttrStr(__pyx_v_new_node, __pyx_n_s_resource, __pyx_cur_scope->__pyx_v_resource) < 0) __PYX_ERR(0, 242, __pyx_L1_error)
+ if (unlikely(!__pyx_cur_scope->__pyx_v_resource)) { __Pyx_RaiseClosureNameError("resource"); __PYX_ERR(0, 249, __pyx_L1_error) }
+ if (__Pyx_PyObject_SetAttrStr(__pyx_v_new_node, __pyx_n_s_resource, __pyx_cur_scope->__pyx_v_resource) < 0) __PYX_ERR(0, 249, __pyx_L1_error)
- /* "falcon/routing/compiled.py":243
+ /* "falcon/routing/compiled.py":250
* new_node.method_map = method_map
* new_node.resource = resource
* new_node.uri_template = uri_template # <<<<<<<<<<<<<<
* else:
* insert(new_node.children, path_index + 1)
*/
- if (unlikely(!__pyx_cur_scope->__pyx_v_uri_template)) { __Pyx_RaiseClosureNameError("uri_template"); __PYX_ERR(0, 243, __pyx_L1_error) }
- if (__Pyx_PyObject_SetAttrStr(__pyx_v_new_node, __pyx_n_s_uri_template, __pyx_cur_scope->__pyx_v_uri_template) < 0) __PYX_ERR(0, 243, __pyx_L1_error)
+ if (unlikely(!__pyx_cur_scope->__pyx_v_uri_template)) { __Pyx_RaiseClosureNameError("uri_template"); __PYX_ERR(0, 250, __pyx_L1_error) }
+ if (__Pyx_PyObject_SetAttrStr(__pyx_v_new_node, __pyx_n_s_uri_template, __pyx_cur_scope->__pyx_v_uri_template) < 0) __PYX_ERR(0, 250, __pyx_L1_error)
- /* "falcon/routing/compiled.py":240
+ /* "falcon/routing/compiled.py":247
* new_node = CompiledRouterNode(path[path_index])
* nodes.append(new_node)
* if path_index == len(path) - 1: # <<<<<<<<<<<<<<
@@ -6291,7 +6584,7 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_14CompiledRouter_9add_route
goto __pyx_L8;
}
- /* "falcon/routing/compiled.py":245
+ /* "falcon/routing/compiled.py":252
* new_node.uri_template = uri_template
* else:
* insert(new_node.children, path_index + 1) # <<<<<<<<<<<<<<
@@ -6299,12 +6592,12 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_14CompiledRouter_9add_route
* insert(self._roots)
*/
/*else*/ {
- __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_new_node, __pyx_n_s_children); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 245, __pyx_L1_error)
+ __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_new_node, __pyx_n_s_children); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 252, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
- __pyx_t_1 = __Pyx_PyInt_AddObjC(__pyx_v_path_index, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 245, __pyx_L1_error)
+ __pyx_t_1 = __Pyx_PyInt_AddObjC(__pyx_v_path_index, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 252, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
- if (unlikely(!__pyx_cur_scope->__pyx_v_insert)) { __Pyx_RaiseClosureNameError("insert"); __PYX_ERR(0, 245, __pyx_L1_error) }
- __pyx_t_5 = __pyx_pf_6falcon_7routing_8compiled_14CompiledRouter_9add_route_insert(__pyx_cur_scope->__pyx_v_insert, __pyx_t_4, __pyx_t_1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 245, __pyx_L1_error)
+ if (unlikely(!__pyx_cur_scope->__pyx_v_insert)) { __Pyx_RaiseClosureNameError("insert"); __PYX_ERR(0, 252, __pyx_L1_error) }
+ __pyx_t_5 = __pyx_pf_6falcon_7routing_8compiled_14CompiledRouter_9add_route_insert(__pyx_cur_scope->__pyx_v_insert, __pyx_t_4, __pyx_t_1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 252, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
@@ -6312,10 +6605,10 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_14CompiledRouter_9add_route
}
__pyx_L8:;
- /* "falcon/routing/compiled.py":210
+ /* "falcon/routing/compiled.py":217
* self._validate_template_segment(segment, used_names)
*
- * def insert(nodes, path_index=0): # <<<<<<<<<<<<<<
+ * def insert(nodes: 'List[CompiledRouterNode]', path_index: int = 0): # <<<<<<<<<<<<<<
* for node in nodes:
* segment = path[path_index]
*/
@@ -6340,10 +6633,10 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_14CompiledRouter_9add_route
return __pyx_r;
}
-/* "falcon/routing/compiled.py":149
+/* "falcon/routing/compiled.py":156
* return map_http_methods(resource, suffix=kwargs.get('suffix', None))
*
- * def add_route(self, uri_template, resource, **kwargs): # <<<<<<<<<<<<<<
+ * def add_route(self, uri_template: str, resource: object, **kwargs): # <<<<<<<<<<<<<<
* """Add a route between a URI path template and a resource.
*
*/
@@ -6372,7 +6665,7 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_14CompiledRouter_8add_route
if (unlikely(!__pyx_cur_scope)) {
__pyx_cur_scope = ((struct __pyx_obj_6falcon_7routing_8compiled___pyx_scope_struct__add_route *)Py_None);
__Pyx_INCREF(Py_None);
- __PYX_ERR(0, 149, __pyx_L1_error)
+ __PYX_ERR(0, 156, __pyx_L1_error)
} else {
__Pyx_GOTREF((PyObject *)__pyx_cur_scope);
}
@@ -6383,35 +6676,35 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_14CompiledRouter_8add_route
__Pyx_INCREF(__pyx_cur_scope->__pyx_v_resource);
__Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_resource);
- /* "falcon/routing/compiled.py":188
+ /* "falcon/routing/compiled.py":195
* # NOTE(kgriffs): falcon.asgi.App injects this private kwarg; it is
* # only intended to be used internally.
* asgi = kwargs.get('_asgi', False) # <<<<<<<<<<<<<<
*
* method_map = self.map_http_methods(resource, **kwargs)
*/
- __pyx_t_1 = __Pyx_PyDict_GetItemDefault(__pyx_v_kwargs, __pyx_n_u_asgi, Py_False); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 188, __pyx_L1_error)
+ __pyx_t_1 = __Pyx_PyDict_GetItemDefault(__pyx_v_kwargs, __pyx_n_u_asgi, Py_False); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 195, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_v_asgi = __pyx_t_1;
__pyx_t_1 = 0;
- /* "falcon/routing/compiled.py":190
+ /* "falcon/routing/compiled.py":197
* asgi = kwargs.get('_asgi', False)
*
* method_map = self.map_http_methods(resource, **kwargs) # <<<<<<<<<<<<<<
*
* set_default_responders(method_map, asgi=asgi)
*/
- __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_map_http_methods); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 190, __pyx_L1_error)
+ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_map_http_methods); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 197, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
- __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 190, __pyx_L1_error)
+ __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 197, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_INCREF(__pyx_cur_scope->__pyx_v_resource);
__Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_resource);
PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_cur_scope->__pyx_v_resource);
- __pyx_t_3 = PyDict_Copy(__pyx_v_kwargs); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 190, __pyx_L1_error)
+ __pyx_t_3 = PyDict_Copy(__pyx_v_kwargs); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 197, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
- __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 190, __pyx_L1_error)
+ __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 197, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
@@ -6420,48 +6713,48 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_14CompiledRouter_8add_route
__pyx_cur_scope->__pyx_v_method_map = __pyx_t_4;
__pyx_t_4 = 0;
- /* "falcon/routing/compiled.py":192
+ /* "falcon/routing/compiled.py":199
* method_map = self.map_http_methods(resource, **kwargs)
*
* set_default_responders(method_map, asgi=asgi) # <<<<<<<<<<<<<<
*
* if asgi:
*/
- __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_set_default_responders); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 192, __pyx_L1_error)
+ __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_set_default_responders); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 199, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
- __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 192, __pyx_L1_error)
+ __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 199, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_INCREF(__pyx_cur_scope->__pyx_v_method_map);
__Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_method_map);
PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_cur_scope->__pyx_v_method_map);
- __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 192, __pyx_L1_error)
+ __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 199, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
- if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_asgi_2, __pyx_v_asgi) < 0) __PYX_ERR(0, 192, __pyx_L1_error)
- __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_3, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 192, __pyx_L1_error)
+ if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_asgi_2, __pyx_v_asgi) < 0) __PYX_ERR(0, 199, __pyx_L1_error)
+ __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_3, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 199, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
- /* "falcon/routing/compiled.py":194
+ /* "falcon/routing/compiled.py":201
* set_default_responders(method_map, asgi=asgi)
*
* if asgi: # <<<<<<<<<<<<<<
* self._require_coroutine_responders(method_map)
* else:
*/
- __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_v_asgi); if (unlikely((__pyx_t_5 < 0))) __PYX_ERR(0, 194, __pyx_L1_error)
+ __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_v_asgi); if (unlikely((__pyx_t_5 < 0))) __PYX_ERR(0, 201, __pyx_L1_error)
if (__pyx_t_5) {
- /* "falcon/routing/compiled.py":195
+ /* "falcon/routing/compiled.py":202
*
* if asgi:
* self._require_coroutine_responders(method_map) # <<<<<<<<<<<<<<
* else:
* self._require_non_coroutine_responders(method_map)
*/
- __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_require_coroutine_responders); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 195, __pyx_L1_error)
+ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_require_coroutine_responders); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 202, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_3 = NULL;
__pyx_t_6 = 0;
@@ -6479,13 +6772,13 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_14CompiledRouter_8add_route
PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_cur_scope->__pyx_v_method_map};
__pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
__Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
- if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 195, __pyx_L1_error)
+ if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 202, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
- /* "falcon/routing/compiled.py":194
+ /* "falcon/routing/compiled.py":201
* set_default_responders(method_map, asgi=asgi)
*
* if asgi: # <<<<<<<<<<<<<<
@@ -6495,7 +6788,7 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_14CompiledRouter_8add_route
goto __pyx_L3;
}
- /* "falcon/routing/compiled.py":197
+ /* "falcon/routing/compiled.py":204
* self._require_coroutine_responders(method_map)
* else:
* self._require_non_coroutine_responders(method_map) # <<<<<<<<<<<<<<
@@ -6503,7 +6796,7 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_14CompiledRouter_8add_route
* # NOTE(kgriffs): Fields may have whitespace in them, so sub
*/
/*else*/ {
- __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_require_non_coroutine_responder); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 197, __pyx_L1_error)
+ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_require_non_coroutine_responder); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 204, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_3 = NULL;
__pyx_t_6 = 0;
@@ -6521,7 +6814,7 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_14CompiledRouter_8add_route
PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_cur_scope->__pyx_v_method_map};
__pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
__Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
- if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 197, __pyx_L1_error)
+ if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 204, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
}
@@ -6529,21 +6822,21 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_14CompiledRouter_8add_route
}
__pyx_L3:;
- /* "falcon/routing/compiled.py":201
+ /* "falcon/routing/compiled.py":208
* # NOTE(kgriffs): Fields may have whitespace in them, so sub
* # those before checking the rest of the URI template.
* if re.search(r'\s', _FIELD_PATTERN.sub('{FIELD}', uri_template)): # <<<<<<<<<<<<<<
* raise ValueError('URI templates may not include whitespace.')
*
*/
- __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_re); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 201, __pyx_L1_error)
+ __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_re); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 208, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
- __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_search); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 201, __pyx_L1_error)
+ __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_search); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 208, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
- __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_FIELD_PATTERN); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 201, __pyx_L1_error)
+ __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_FIELD_PATTERN); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 208, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
- __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_sub); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 201, __pyx_L1_error)
+ __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_sub); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 208, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__pyx_t_4 = NULL;
@@ -6562,7 +6855,7 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_14CompiledRouter_8add_route
PyObject *__pyx_callargs[3] = {__pyx_t_4, __pyx_kp_u_FIELD, __pyx_cur_scope->__pyx_v_uri_template};
__pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_7, __pyx_callargs+1-__pyx_t_6, 2+__pyx_t_6);
__Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
- if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 201, __pyx_L1_error)
+ if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 208, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
}
@@ -6583,28 +6876,28 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_14CompiledRouter_8add_route
__pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_6, 2+__pyx_t_6);
__Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
- if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 201, __pyx_L1_error)
+ if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 208, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
}
- __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_5 < 0))) __PYX_ERR(0, 201, __pyx_L1_error)
+ __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_5 < 0))) __PYX_ERR(0, 208, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
if (unlikely(__pyx_t_5)) {
- /* "falcon/routing/compiled.py":202
+ /* "falcon/routing/compiled.py":209
* # those before checking the rest of the URI template.
* if re.search(r'\s', _FIELD_PATTERN.sub('{FIELD}', uri_template)):
* raise ValueError('URI templates may not include whitespace.') # <<<<<<<<<<<<<<
*
* path = uri_template.lstrip('/').split('/')
*/
- __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__3, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 202, __pyx_L1_error)
+ __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__4, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 209, __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, 202, __pyx_L1_error)
+ __PYX_ERR(0, 209, __pyx_L1_error)
- /* "falcon/routing/compiled.py":201
+ /* "falcon/routing/compiled.py":208
* # NOTE(kgriffs): Fields may have whitespace in them, so sub
* # those before checking the rest of the URI template.
* if re.search(r'\s', _FIELD_PATTERN.sub('{FIELD}', uri_template)): # <<<<<<<<<<<<<<
@@ -6613,36 +6906,16 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_14CompiledRouter_8add_route
*/
}
- /* "falcon/routing/compiled.py":204
+ /* "falcon/routing/compiled.py":211
* raise ValueError('URI templates may not include whitespace.')
*
* path = uri_template.lstrip('/').split('/') # <<<<<<<<<<<<<<
*
- * used_names = set()
+ * used_names: 'Set[str]' = set()
*/
- __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_uri_template, __pyx_n_s_lstrip); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 204, __pyx_L1_error)
- __Pyx_GOTREF(__pyx_t_2);
- __pyx_t_7 = NULL;
- __pyx_t_6 = 0;
- if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
- __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_2);
- if (likely(__pyx_t_7)) {
- PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
- __Pyx_INCREF(__pyx_t_7);
- __Pyx_INCREF(function);
- __Pyx_DECREF_SET(__pyx_t_2, function);
- __pyx_t_6 = 1;
- }
- }
- {
- PyObject *__pyx_callargs[2] = {__pyx_t_7, __pyx_kp_u_};
- __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
- __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
- if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 204, __pyx_L1_error)
- __Pyx_GOTREF(__pyx_t_3);
- __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
- }
- __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_split); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 204, __pyx_L1_error)
+ __pyx_t_3 = __Pyx_CallUnboundCMethod1(&__pyx_umethod_PyUnicode_Type_lstrip, __pyx_cur_scope->__pyx_v_uri_template, __pyx_kp_u__2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 211, __pyx_L1_error)
+ __Pyx_GOTREF(__pyx_t_3);
+ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_split); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 211, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__pyx_t_3 = NULL;
@@ -6658,10 +6931,10 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_14CompiledRouter_8add_route
}
}
{
- PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_kp_u_};
+ PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_kp_u__2};
__pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
__Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
- if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 204, __pyx_L1_error)
+ if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 211, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
}
@@ -6669,21 +6942,21 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_14CompiledRouter_8add_route
__pyx_cur_scope->__pyx_v_path = __pyx_t_1;
__pyx_t_1 = 0;
- /* "falcon/routing/compiled.py":206
+ /* "falcon/routing/compiled.py":213
* path = uri_template.lstrip('/').split('/')
*
- * used_names = set() # <<<<<<<<<<<<<<
+ * used_names: 'Set[str]' = set() # <<<<<<<<<<<<<<
* for segment in path:
* self._validate_template_segment(segment, used_names)
*/
- __pyx_t_1 = PySet_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 206, __pyx_L1_error)
+ __pyx_t_1 = PySet_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 213, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_v_used_names = ((PyObject*)__pyx_t_1);
__pyx_t_1 = 0;
- /* "falcon/routing/compiled.py":207
+ /* "falcon/routing/compiled.py":214
*
- * used_names = set()
+ * used_names: 'Set[str]' = set()
* for segment in path: # <<<<<<<<<<<<<<
* self._validate_template_segment(segment, used_names)
*
@@ -6692,26 +6965,26 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_14CompiledRouter_8add_route
__pyx_t_1 = __pyx_cur_scope->__pyx_v_path; __Pyx_INCREF(__pyx_t_1); __pyx_t_8 = 0;
__pyx_t_9 = NULL;
} else {
- __pyx_t_8 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_cur_scope->__pyx_v_path); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 207, __pyx_L1_error)
+ __pyx_t_8 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_cur_scope->__pyx_v_path); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 214, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
- __pyx_t_9 = __Pyx_PyObject_GetIterNextFunc(__pyx_t_1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 207, __pyx_L1_error)
+ __pyx_t_9 = __Pyx_PyObject_GetIterNextFunc(__pyx_t_1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 214, __pyx_L1_error)
}
for (;;) {
if (likely(!__pyx_t_9)) {
if (likely(PyList_CheckExact(__pyx_t_1))) {
if (__pyx_t_8 >= PyList_GET_SIZE(__pyx_t_1)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
- __pyx_t_2 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_8); __Pyx_INCREF(__pyx_t_2); __pyx_t_8++; if (unlikely((0 < 0))) __PYX_ERR(0, 207, __pyx_L1_error)
+ __pyx_t_2 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_8); __Pyx_INCREF(__pyx_t_2); __pyx_t_8++; if (unlikely((0 < 0))) __PYX_ERR(0, 214, __pyx_L1_error)
#else
- __pyx_t_2 = PySequence_ITEM(__pyx_t_1, __pyx_t_8); __pyx_t_8++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 207, __pyx_L1_error)
+ __pyx_t_2 = PySequence_ITEM(__pyx_t_1, __pyx_t_8); __pyx_t_8++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 214, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
#endif
} else {
if (__pyx_t_8 >= PyTuple_GET_SIZE(__pyx_t_1)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
- __pyx_t_2 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_8); __Pyx_INCREF(__pyx_t_2); __pyx_t_8++; if (unlikely((0 < 0))) __PYX_ERR(0, 207, __pyx_L1_error)
+ __pyx_t_2 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_8); __Pyx_INCREF(__pyx_t_2); __pyx_t_8++; if (unlikely((0 < 0))) __PYX_ERR(0, 214, __pyx_L1_error)
#else
- __pyx_t_2 = PySequence_ITEM(__pyx_t_1, __pyx_t_8); __pyx_t_8++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 207, __pyx_L1_error)
+ __pyx_t_2 = PySequence_ITEM(__pyx_t_1, __pyx_t_8); __pyx_t_8++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 214, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
#endif
}
@@ -6721,7 +6994,7 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_14CompiledRouter_8add_route
PyObject* exc_type = PyErr_Occurred();
if (exc_type) {
if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
- else __PYX_ERR(0, 207, __pyx_L1_error)
+ else __PYX_ERR(0, 214, __pyx_L1_error)
}
break;
}
@@ -6730,14 +7003,14 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_14CompiledRouter_8add_route
__Pyx_XDECREF_SET(__pyx_v_segment, __pyx_t_2);
__pyx_t_2 = 0;
- /* "falcon/routing/compiled.py":208
- * used_names = set()
+ /* "falcon/routing/compiled.py":215
+ * used_names: 'Set[str]' = set()
* for segment in path:
* self._validate_template_segment(segment, used_names) # <<<<<<<<<<<<<<
*
- * def insert(nodes, path_index=0):
+ * def insert(nodes: 'List[CompiledRouterNode]', path_index: int = 0):
*/
- __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_validate_template_segment); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 208, __pyx_L1_error)
+ __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_validate_template_segment); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 215, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_7 = NULL;
__pyx_t_6 = 0;
@@ -6755,15 +7028,15 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_14CompiledRouter_8add_route
PyObject *__pyx_callargs[3] = {__pyx_t_7, __pyx_v_segment, __pyx_v_used_names};
__pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_6, 2+__pyx_t_6);
__Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
- if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 208, __pyx_L1_error)
+ if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 215, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
}
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
- /* "falcon/routing/compiled.py":207
+ /* "falcon/routing/compiled.py":214
*
- * used_names = set()
+ * used_names: 'Set[str]' = set()
* for segment in path: # <<<<<<<<<<<<<<
* self._validate_template_segment(segment, used_names)
*
@@ -6771,80 +7044,86 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_14CompiledRouter_8add_route
}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
- /* "falcon/routing/compiled.py":210
+ /* "falcon/routing/compiled.py":217
* self._validate_template_segment(segment, used_names)
*
- * def insert(nodes, path_index=0): # <<<<<<<<<<<<<<
+ * def insert(nodes: 'List[CompiledRouterNode]', path_index: int = 0): # <<<<<<<<<<<<<<
* for node in nodes:
* segment = path[path_index]
*/
- __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_6falcon_7routing_8compiled_14CompiledRouter_9add_route_1insert, 0, __pyx_n_s_CompiledRouter_add_route_locals, ((PyObject*)__pyx_cur_scope), __pyx_n_s_falcon_routing_compiled, __pyx_d, ((PyObject *)__pyx_codeobj__5)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 210, __pyx_L1_error)
+ __pyx_t_1 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 217, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
- __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_1, __pyx_tuple__6);
- __Pyx_GIVEREF(__pyx_t_1);
- __pyx_cur_scope->__pyx_v_insert = __pyx_t_1;
- __pyx_t_1 = 0;
+ if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_nodes, __pyx_kp_s_List_CompiledRouterNode) < 0) __PYX_ERR(0, 217, __pyx_L1_error)
+ if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_path_index, __pyx_n_s_int) < 0) __PYX_ERR(0, 217, __pyx_L1_error)
+ __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_6falcon_7routing_8compiled_14CompiledRouter_9add_route_1insert, 0, __pyx_n_s_CompiledRouter_add_route_locals, ((PyObject*)__pyx_cur_scope), __pyx_n_s_falcon_routing_compiled, __pyx_d, ((PyObject *)__pyx_codeobj__6)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 217, __pyx_L1_error)
+ __Pyx_GOTREF(__pyx_t_2);
+ __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_tuple__7);
+ __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_2, __pyx_t_1);
+ __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+ __Pyx_GIVEREF(__pyx_t_2);
+ __pyx_cur_scope->__pyx_v_insert = __pyx_t_2;
+ __pyx_t_2 = 0;
- /* "falcon/routing/compiled.py":247
+ /* "falcon/routing/compiled.py":254
* insert(new_node.children, path_index + 1)
*
* insert(self._roots) # <<<<<<<<<<<<<<
* # NOTE(caselit): when compile is True run the actual compile step, otherwise
* # reset the _find, so that _compile will be called on the next find use
*/
- __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_roots); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 247, __pyx_L1_error)
- __Pyx_GOTREF(__pyx_t_1);
- __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_cur_scope->__pyx_v_insert, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 247, __pyx_L1_error)
+ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_roots); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 254, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
- __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+ __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_cur_scope->__pyx_v_insert, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 254, __pyx_L1_error)
+ __Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+ __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
- /* "falcon/routing/compiled.py":250
+ /* "falcon/routing/compiled.py":257
* # NOTE(caselit): when compile is True run the actual compile step, otherwise
* # reset the _find, so that _compile will be called on the next find use
* if kwargs.get('compile', False): # <<<<<<<<<<<<<<
* self._find = self._compile()
* else:
*/
- __pyx_t_2 = __Pyx_PyDict_GetItemDefault(__pyx_v_kwargs, __pyx_n_u_compile, Py_False); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 250, __pyx_L1_error)
- __Pyx_GOTREF(__pyx_t_2);
- __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely((__pyx_t_5 < 0))) __PYX_ERR(0, 250, __pyx_L1_error)
- __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+ __pyx_t_1 = __Pyx_PyDict_GetItemDefault(__pyx_v_kwargs, __pyx_n_u_compile, Py_False); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 257, __pyx_L1_error)
+ __Pyx_GOTREF(__pyx_t_1);
+ __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_5 < 0))) __PYX_ERR(0, 257, __pyx_L1_error)
+ __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
if (__pyx_t_5) {
- /* "falcon/routing/compiled.py":251
+ /* "falcon/routing/compiled.py":258
* # reset the _find, so that _compile will be called on the next find use
* if kwargs.get('compile', False):
* self._find = self._compile() # <<<<<<<<<<<<<<
* else:
* self._find = self._compile_and_find
*/
- __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_compile_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 251, __pyx_L1_error)
- __Pyx_GOTREF(__pyx_t_1);
+ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_compile_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 258, __pyx_L1_error)
+ __Pyx_GOTREF(__pyx_t_2);
__pyx_t_3 = NULL;
__pyx_t_6 = 0;
- if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) {
- __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_1);
+ if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
+ __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
if (likely(__pyx_t_3)) {
- PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
+ PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
__Pyx_INCREF(__pyx_t_3);
__Pyx_INCREF(function);
- __Pyx_DECREF_SET(__pyx_t_1, function);
+ __Pyx_DECREF_SET(__pyx_t_2, function);
__pyx_t_6 = 1;
}
}
{
PyObject *__pyx_callargs[1] = {__pyx_t_3, };
- __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_1, __pyx_callargs+1-__pyx_t_6, 0+__pyx_t_6);
+ __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_6, 0+__pyx_t_6);
__Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
- if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 251, __pyx_L1_error)
- __Pyx_GOTREF(__pyx_t_2);
- __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+ if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 258, __pyx_L1_error)
+ __Pyx_GOTREF(__pyx_t_1);
+ __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
}
- if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_find, __pyx_t_2) < 0) __PYX_ERR(0, 251, __pyx_L1_error)
- __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+ if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_find, __pyx_t_1) < 0) __PYX_ERR(0, 258, __pyx_L1_error)
+ __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
- /* "falcon/routing/compiled.py":250
+ /* "falcon/routing/compiled.py":257
* # NOTE(caselit): when compile is True run the actual compile step, otherwise
* # reset the _find, so that _compile will be called on the next find use
* if kwargs.get('compile', False): # <<<<<<<<<<<<<<
@@ -6854,25 +7133,25 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_14CompiledRouter_8add_route
goto __pyx_L7;
}
- /* "falcon/routing/compiled.py":253
+ /* "falcon/routing/compiled.py":260
* self._find = self._compile()
* else:
* self._find = self._compile_and_find # <<<<<<<<<<<<<<
*
- * def find(self, uri, req=None):
+ * def find(self, uri: str, req: 'Optional[Request]' = None):
*/
/*else*/ {
- __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_compile_and_find); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 253, __pyx_L1_error)
- __Pyx_GOTREF(__pyx_t_2);
- if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_find, __pyx_t_2) < 0) __PYX_ERR(0, 253, __pyx_L1_error)
- __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_compile_and_find); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 260, __pyx_L1_error)
+ __Pyx_GOTREF(__pyx_t_1);
+ if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_find, __pyx_t_1) < 0) __PYX_ERR(0, 260, __pyx_L1_error)
+ __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
}
__pyx_L7:;
- /* "falcon/routing/compiled.py":149
+ /* "falcon/routing/compiled.py":156
* return map_http_methods(resource, suffix=kwargs.get('suffix', None))
*
- * def add_route(self, uri_template, resource, **kwargs): # <<<<<<<<<<<<<<
+ * def add_route(self, uri_template: str, resource: object, **kwargs): # <<<<<<<<<<<<<<
* """Add a route between a URI path template and a resource.
*
*/
@@ -6898,10 +7177,10 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_14CompiledRouter_8add_route
return __pyx_r;
}
-/* "falcon/routing/compiled.py":255
+/* "falcon/routing/compiled.py":262
* self._find = self._compile_and_find
*
- * def find(self, uri, req=None): # <<<<<<<<<<<<<<
+ * def find(self, uri: str, req: 'Optional[Request]' = None): # <<<<<<<<<<<<<<
* """Search for a route that matches the given partial URI.
*
*/
@@ -6960,26 +7239,26 @@ PyObject *__pyx_args, PyObject *__pyx_kwds
switch (__pyx_nargs) {
case 0:
if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_self)) != 0)) kw_args--;
- else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 255, __pyx_L3_error)
+ else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 262, __pyx_L3_error)
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_uri)) != 0)) kw_args--;
- else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 255, __pyx_L3_error)
+ else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 262, __pyx_L3_error)
else {
- __Pyx_RaiseArgtupleInvalid("find", 0, 2, 3, 1); __PYX_ERR(0, 255, __pyx_L3_error)
+ __Pyx_RaiseArgtupleInvalid("find", 0, 2, 3, 1); __PYX_ERR(0, 262, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 2:
if (kw_args > 0) {
PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_req);
if (value) { values[2] = value; kw_args--; }
- else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 255, __pyx_L3_error)
+ else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 262, __pyx_L3_error)
}
}
if (unlikely(kw_args > 0)) {
const Py_ssize_t kwd_pos_args = __pyx_nargs;
- if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "find") < 0)) __PYX_ERR(0, 255, __pyx_L3_error)
+ if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "find") < 0)) __PYX_ERR(0, 262, __pyx_L3_error)
}
} else {
switch (__pyx_nargs) {
@@ -6992,20 +7271,25 @@ PyObject *__pyx_args, PyObject *__pyx_kwds
}
}
__pyx_v_self = values[0];
- __pyx_v_uri = values[1];
+ __pyx_v_uri = ((PyObject*)values[1]);
__pyx_v_req = values[2];
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
- __Pyx_RaiseArgtupleInvalid("find", 0, 2, 3, __pyx_nargs); __PYX_ERR(0, 255, __pyx_L3_error)
+ __Pyx_RaiseArgtupleInvalid("find", 0, 2, 3, __pyx_nargs); __PYX_ERR(0, 262, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("falcon.routing.compiled.CompiledRouter.find", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
+ if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_uri), (&PyUnicode_Type), 1, "uri", 1))) __PYX_ERR(0, 262, __pyx_L1_error)
__pyx_r = __pyx_pf_6falcon_7routing_8compiled_14CompiledRouter_10find(__pyx_self, __pyx_v_self, __pyx_v_uri, __pyx_v_req);
/* function exit code */
+ goto __pyx_L0;
+ __pyx_L1_error:;
+ __pyx_r = NULL;
+ __pyx_L0:;
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
@@ -7019,8 +7303,8 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_14CompiledRouter_10find(CYT
PyObject *__pyx_t_1 = NULL;
PyObject *__pyx_t_2 = NULL;
PyObject *__pyx_t_3 = NULL;
- PyObject *__pyx_t_4 = NULL;
- int __pyx_t_5;
+ int __pyx_t_4;
+ PyObject *__pyx_t_5 = NULL;
PyObject *__pyx_t_6 = NULL;
PyObject *__pyx_t_7 = NULL;
int __pyx_t_8;
@@ -7030,40 +7314,20 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_14CompiledRouter_10find(CYT
int __pyx_clineno = 0;
__Pyx_RefNannySetupContext("find", 0);
- /* "falcon/routing/compiled.py":273
+ /* "falcon/routing/compiled.py":280
* """
*
* path = uri.lstrip('/').split('/') # <<<<<<<<<<<<<<
- * params = {}
- * node = self._find(
+ * params: 'Dict[str, Any]' = {}
+ * node: 'Optional[CompiledRouterNode]' = self._find(
*/
- __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_uri, __pyx_n_s_lstrip); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 273, __pyx_L1_error)
- __Pyx_GOTREF(__pyx_t_3);
- __pyx_t_4 = NULL;
- __pyx_t_5 = 0;
- if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) {
- __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
- if (likely(__pyx_t_4)) {
- PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
- __Pyx_INCREF(__pyx_t_4);
- __Pyx_INCREF(function);
- __Pyx_DECREF_SET(__pyx_t_3, function);
- __pyx_t_5 = 1;
- }
- }
- {
- PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_kp_u_};
- __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 1+__pyx_t_5);
- __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
- if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 273, __pyx_L1_error)
- __Pyx_GOTREF(__pyx_t_2);
- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
- }
- __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_split); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 273, __pyx_L1_error)
+ __pyx_t_2 = __Pyx_CallUnboundCMethod1(&__pyx_umethod_PyUnicode_Type_lstrip, __pyx_v_uri, __pyx_kp_u__2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 280, __pyx_L1_error)
+ __Pyx_GOTREF(__pyx_t_2);
+ __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_split); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 280, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_t_2 = NULL;
- __pyx_t_5 = 0;
+ __pyx_t_4 = 0;
if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) {
__pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3);
if (likely(__pyx_t_2)) {
@@ -7071,57 +7335,57 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_14CompiledRouter_10find(CYT
__Pyx_INCREF(__pyx_t_2);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_3, function);
- __pyx_t_5 = 1;
+ __pyx_t_4 = 1;
}
}
{
- PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_kp_u_};
- __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 1+__pyx_t_5);
+ PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_kp_u__2};
+ __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_4, 1+__pyx_t_4);
__Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
- if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 273, __pyx_L1_error)
+ if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 280, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
}
__pyx_v_path = __pyx_t_1;
__pyx_t_1 = 0;
- /* "falcon/routing/compiled.py":274
+ /* "falcon/routing/compiled.py":281
*
* path = uri.lstrip('/').split('/')
- * params = {} # <<<<<<<<<<<<<<
- * node = self._find(
+ * params: 'Dict[str, Any]' = {} # <<<<<<<<<<<<<<
+ * node: 'Optional[CompiledRouterNode]' = self._find(
* path, self._return_values, self._patterns, self._converters, params
*/
- __pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 274, __pyx_L1_error)
+ __pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 281, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_v_params = ((PyObject*)__pyx_t_1);
__pyx_t_1 = 0;
- /* "falcon/routing/compiled.py":275
+ /* "falcon/routing/compiled.py":282
* path = uri.lstrip('/').split('/')
- * params = {}
- * node = self._find( # <<<<<<<<<<<<<<
+ * params: 'Dict[str, Any]' = {}
+ * node: 'Optional[CompiledRouterNode]' = self._find( # <<<<<<<<<<<<<<
* path, self._return_values, self._patterns, self._converters, params
* )
*/
- __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_find); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 275, __pyx_L1_error)
+ __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_find); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 282, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
- /* "falcon/routing/compiled.py":276
- * params = {}
- * node = self._find(
+ /* "falcon/routing/compiled.py":283
+ * params: 'Dict[str, Any]' = {}
+ * node: 'Optional[CompiledRouterNode]' = self._find(
* path, self._return_values, self._patterns, self._converters, params # <<<<<<<<<<<<<<
* )
*
*/
- __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_return_values); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 276, __pyx_L1_error)
+ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_return_values); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 283, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
- __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_patterns); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 276, __pyx_L1_error)
- __Pyx_GOTREF(__pyx_t_4);
- __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_converters); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 276, __pyx_L1_error)
+ __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_patterns); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 283, __pyx_L1_error)
+ __Pyx_GOTREF(__pyx_t_5);
+ __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_converters); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 283, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_t_7 = NULL;
- __pyx_t_5 = 0;
+ __pyx_t_4 = 0;
if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) {
__pyx_t_7 = PyMethod_GET_SELF(__pyx_t_3);
if (likely(__pyx_t_7)) {
@@ -7129,24 +7393,24 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_14CompiledRouter_10find(CYT
__Pyx_INCREF(__pyx_t_7);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_3, function);
- __pyx_t_5 = 1;
+ __pyx_t_4 = 1;
}
}
{
- PyObject *__pyx_callargs[6] = {__pyx_t_7, __pyx_v_path, __pyx_t_2, __pyx_t_4, __pyx_t_6, __pyx_v_params};
- __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 5+__pyx_t_5);
+ PyObject *__pyx_callargs[6] = {__pyx_t_7, __pyx_v_path, __pyx_t_2, __pyx_t_5, __pyx_t_6, __pyx_v_params};
+ __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_4, 5+__pyx_t_4);
__Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+ __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
- if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 275, __pyx_L1_error)
+ if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 282, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
}
__pyx_v_node = __pyx_t_1;
__pyx_t_1 = 0;
- /* "falcon/routing/compiled.py":279
+ /* "falcon/routing/compiled.py":286
* )
*
* if node is not None: # <<<<<<<<<<<<<<
@@ -7157,7 +7421,7 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_14CompiledRouter_10find(CYT
__pyx_t_9 = (__pyx_t_8 != 0);
if (__pyx_t_9) {
- /* "falcon/routing/compiled.py":280
+ /* "falcon/routing/compiled.py":287
*
* if node is not None:
* return node.resource, node.method_map, params, node.uri_template # <<<<<<<<<<<<<<
@@ -7165,31 +7429,31 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_14CompiledRouter_10find(CYT
* return None
*/
__Pyx_XDECREF(__pyx_r);
- __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_node, __pyx_n_s_resource); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 280, __pyx_L1_error)
+ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_node, __pyx_n_s_resource); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 287, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
- __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_node, __pyx_n_s_method_map); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 280, __pyx_L1_error)
+ __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_node, __pyx_n_s_method_map); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 287, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
- __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_node, __pyx_n_s_uri_template); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 280, __pyx_L1_error)
+ __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_node, __pyx_n_s_uri_template); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 287, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
- __pyx_t_4 = PyTuple_New(4); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 280, __pyx_L1_error)
- __Pyx_GOTREF(__pyx_t_4);
+ __pyx_t_5 = PyTuple_New(4); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 287, __pyx_L1_error)
+ __Pyx_GOTREF(__pyx_t_5);
__Pyx_GIVEREF(__pyx_t_1);
- PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1);
+ PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_1);
__Pyx_GIVEREF(__pyx_t_3);
- PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_3);
+ PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_3);
__Pyx_INCREF(__pyx_v_params);
__Pyx_GIVEREF(__pyx_v_params);
- PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_v_params);
+ PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_v_params);
__Pyx_GIVEREF(__pyx_t_6);
- PyTuple_SET_ITEM(__pyx_t_4, 3, __pyx_t_6);
+ PyTuple_SET_ITEM(__pyx_t_5, 3, __pyx_t_6);
__pyx_t_1 = 0;
__pyx_t_3 = 0;
__pyx_t_6 = 0;
- __pyx_r = __pyx_t_4;
- __pyx_t_4 = 0;
+ __pyx_r = __pyx_t_5;
+ __pyx_t_5 = 0;
goto __pyx_L0;
- /* "falcon/routing/compiled.py":279
+ /* "falcon/routing/compiled.py":286
* )
*
* if node is not None: # <<<<<<<<<<<<<<
@@ -7198,7 +7462,7 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_14CompiledRouter_10find(CYT
*/
}
- /* "falcon/routing/compiled.py":282
+ /* "falcon/routing/compiled.py":289
* return node.resource, node.method_map, params, node.uri_template
* else:
* return None # <<<<<<<<<<<<<<
@@ -7211,10 +7475,10 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_14CompiledRouter_10find(CYT
goto __pyx_L0;
}
- /* "falcon/routing/compiled.py":255
+ /* "falcon/routing/compiled.py":262
* self._find = self._compile_and_find
*
- * def find(self, uri, req=None): # <<<<<<<<<<<<<<
+ * def find(self, uri: str, req: 'Optional[Request]' = None): # <<<<<<<<<<<<<<
* """Search for a route that matches the given partial URI.
*
*/
@@ -7224,7 +7488,7 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_14CompiledRouter_10find(CYT
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_2);
__Pyx_XDECREF(__pyx_t_3);
- __Pyx_XDECREF(__pyx_t_4);
+ __Pyx_XDECREF(__pyx_t_5);
__Pyx_XDECREF(__pyx_t_6);
__Pyx_XDECREF(__pyx_t_7);
__Pyx_AddTraceback("falcon.routing.compiled.CompiledRouter.find", __pyx_clineno, __pyx_lineno, __pyx_filename);
@@ -7238,10 +7502,10 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_14CompiledRouter_10find(CYT
return __pyx_r;
}
-/* "falcon/routing/compiled.py":288
+/* "falcon/routing/compiled.py":295
* # -----------------------------------------------------------------
*
- * def _require_coroutine_responders(self, method_map): # <<<<<<<<<<<<<<
+ * def _require_coroutine_responders(self, method_map: dict): # <<<<<<<<<<<<<<
* for method, responder in method_map.items():
* # NOTE(kgriffs): We don't simply wrap non-async functions
*/
@@ -7295,19 +7559,19 @@ PyObject *__pyx_args, PyObject *__pyx_kwds
switch (__pyx_nargs) {
case 0:
if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_self)) != 0)) kw_args--;
- else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 288, __pyx_L3_error)
+ else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 295, __pyx_L3_error)
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_method_map)) != 0)) kw_args--;
- else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 288, __pyx_L3_error)
+ else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 295, __pyx_L3_error)
else {
- __Pyx_RaiseArgtupleInvalid("_require_coroutine_responders", 1, 2, 2, 1); __PYX_ERR(0, 288, __pyx_L3_error)
+ __Pyx_RaiseArgtupleInvalid("_require_coroutine_responders", 1, 2, 2, 1); __PYX_ERR(0, 295, __pyx_L3_error)
}
}
if (unlikely(kw_args > 0)) {
const Py_ssize_t kwd_pos_args = __pyx_nargs;
- if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_require_coroutine_responders") < 0)) __PYX_ERR(0, 288, __pyx_L3_error)
+ if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_require_coroutine_responders") < 0)) __PYX_ERR(0, 295, __pyx_L3_error)
}
} else if (unlikely(__pyx_nargs != 2)) {
goto __pyx_L5_argtuple_error;
@@ -7316,24 +7580,29 @@ PyObject *__pyx_args, PyObject *__pyx_kwds
values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
}
__pyx_v_self = values[0];
- __pyx_v_method_map = values[1];
+ __pyx_v_method_map = ((PyObject*)values[1]);
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
- __Pyx_RaiseArgtupleInvalid("_require_coroutine_responders", 1, 2, 2, __pyx_nargs); __PYX_ERR(0, 288, __pyx_L3_error)
+ __Pyx_RaiseArgtupleInvalid("_require_coroutine_responders", 1, 2, 2, __pyx_nargs); __PYX_ERR(0, 295, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("falcon.routing.compiled.CompiledRouter._require_coroutine_responders", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
+ if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_method_map), (&PyDict_Type), 1, "method_map", 1))) __PYX_ERR(0, 295, __pyx_L1_error)
__pyx_r = __pyx_pf_6falcon_7routing_8compiled_14CompiledRouter_12_require_coroutine_responders(__pyx_self, __pyx_v_self, __pyx_v_method_map);
/* function exit code */
+ goto __pyx_L0;
+ __pyx_L1_error:;
+ __pyx_r = NULL;
+ __pyx_L0:;
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
-/* "falcon/routing/compiled.py":298
+/* "falcon/routing/compiled.py":305
* if _should_wrap_non_coroutines():
*
* def let(responder=responder): # <<<<<<<<<<<<<<
@@ -7351,12 +7620,12 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled___defaults__(CYTHON_UNUSED
int __pyx_clineno = 0;
__Pyx_RefNannySetupContext("__defaults__", 0);
__Pyx_XDECREF(__pyx_r);
- __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 298, __pyx_L1_error)
+ __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 305, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults, __pyx_self)->__pyx_arg_responder);
__Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults, __pyx_self)->__pyx_arg_responder);
PyTuple_SET_ITEM(__pyx_t_1, 0, __Pyx_CyFunction_Defaults(__pyx_defaults, __pyx_self)->__pyx_arg_responder);
- __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 298, __pyx_L1_error)
+ __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 305, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_GIVEREF(__pyx_t_1);
PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
@@ -7430,12 +7699,12 @@ PyObject *__pyx_args, PyObject *__pyx_kwds
if (kw_args > 0) {
PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_responder);
if (value) { values[0] = value; kw_args--; }
- else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 298, __pyx_L3_error)
+ else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 305, __pyx_L3_error)
}
}
if (unlikely(kw_args > 0)) {
const Py_ssize_t kwd_pos_args = __pyx_nargs;
- if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "let") < 0)) __PYX_ERR(0, 298, __pyx_L3_error)
+ if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "let") < 0)) __PYX_ERR(0, 305, __pyx_L3_error)
}
} else {
switch (__pyx_nargs) {
@@ -7449,7 +7718,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
- __Pyx_RaiseArgtupleInvalid("let", 0, 0, 1, __pyx_nargs); __PYX_ERR(0, 298, __pyx_L3_error)
+ __Pyx_RaiseArgtupleInvalid("let", 0, 0, 1, __pyx_nargs); __PYX_ERR(0, 305, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("falcon.routing.compiled.CompiledRouter._require_coroutine_responders.let", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
@@ -7478,14 +7747,14 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_14CompiledRouter_29_require
__pyx_outer_scope = (struct __pyx_obj_6falcon_7routing_8compiled___pyx_scope_struct_1__require_coroutine_responders *) __Pyx_CyFunction_GetClosure(__pyx_self);
__pyx_cur_scope = __pyx_outer_scope;
- /* "falcon/routing/compiled.py":299
+ /* "falcon/routing/compiled.py":306
*
* def let(responder=responder):
* method_map[method] = wrap_sync_to_async(responder) # <<<<<<<<<<<<<<
*
* let()
*/
- __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_wrap_sync_to_async); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 299, __pyx_L1_error)
+ __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_wrap_sync_to_async); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 306, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_3 = NULL;
__pyx_t_4 = 0;
@@ -7503,16 +7772,20 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_14CompiledRouter_29_require
PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_v_responder};
__pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_4, 1+__pyx_t_4);
__Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
- if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 299, __pyx_L1_error)
+ if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 306, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
}
- if (unlikely(!__pyx_cur_scope->__pyx_v_method_map)) { __Pyx_RaiseClosureNameError("method_map"); __PYX_ERR(0, 299, __pyx_L1_error) }
- if (unlikely(!__pyx_cur_scope->__pyx_v_method)) { __Pyx_RaiseClosureNameError("method"); __PYX_ERR(0, 299, __pyx_L1_error) }
- if (unlikely((PyObject_SetItem(__pyx_cur_scope->__pyx_v_method_map, __pyx_cur_scope->__pyx_v_method, __pyx_t_1) < 0))) __PYX_ERR(0, 299, __pyx_L1_error)
+ if (unlikely(!__pyx_cur_scope->__pyx_v_method_map)) { __Pyx_RaiseClosureNameError("method_map"); __PYX_ERR(0, 306, __pyx_L1_error) }
+ if (unlikely(__pyx_cur_scope->__pyx_v_method_map == Py_None)) {
+ PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
+ __PYX_ERR(0, 306, __pyx_L1_error)
+ }
+ if (unlikely(!__pyx_cur_scope->__pyx_v_method)) { __Pyx_RaiseClosureNameError("method"); __PYX_ERR(0, 306, __pyx_L1_error) }
+ if (unlikely((PyDict_SetItem(__pyx_cur_scope->__pyx_v_method_map, __pyx_cur_scope->__pyx_v_method, __pyx_t_1) < 0))) __PYX_ERR(0, 306, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
- /* "falcon/routing/compiled.py":298
+ /* "falcon/routing/compiled.py":305
* if _should_wrap_non_coroutines():
*
* def let(responder=responder): # <<<<<<<<<<<<<<
@@ -7535,10 +7808,10 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_14CompiledRouter_29_require
return __pyx_r;
}
-/* "falcon/routing/compiled.py":288
+/* "falcon/routing/compiled.py":295
* # -----------------------------------------------------------------
*
- * def _require_coroutine_responders(self, method_map): # <<<<<<<<<<<<<<
+ * def _require_coroutine_responders(self, method_map: dict): # <<<<<<<<<<<<<<
* for method, responder in method_map.items():
* # NOTE(kgriffs): We don't simply wrap non-async functions
*/
@@ -7569,7 +7842,7 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_14CompiledRouter_12_require
if (unlikely(!__pyx_cur_scope)) {
__pyx_cur_scope = ((struct __pyx_obj_6falcon_7routing_8compiled___pyx_scope_struct_1__require_coroutine_responders *)Py_None);
__Pyx_INCREF(Py_None);
- __PYX_ERR(0, 288, __pyx_L1_error)
+ __PYX_ERR(0, 295, __pyx_L1_error)
} else {
__Pyx_GOTREF((PyObject *)__pyx_cur_scope);
}
@@ -7577,9 +7850,9 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_14CompiledRouter_12_require
__Pyx_INCREF(__pyx_cur_scope->__pyx_v_method_map);
__Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_method_map);
- /* "falcon/routing/compiled.py":289
+ /* "falcon/routing/compiled.py":296
*
- * def _require_coroutine_responders(self, method_map):
+ * def _require_coroutine_responders(self, method_map: dict):
* for method, responder in method_map.items(): # <<<<<<<<<<<<<<
* # NOTE(kgriffs): We don't simply wrap non-async functions
* # since they likely peform relatively long blocking
@@ -7587,9 +7860,9 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_14CompiledRouter_12_require
__pyx_t_2 = 0;
if (unlikely(__pyx_cur_scope->__pyx_v_method_map == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "items");
- __PYX_ERR(0, 289, __pyx_L1_error)
+ __PYX_ERR(0, 296, __pyx_L1_error)
}
- __pyx_t_5 = __Pyx_dict_iterator(__pyx_cur_scope->__pyx_v_method_map, 0, __pyx_n_s_items, (&__pyx_t_3), (&__pyx_t_4)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 289, __pyx_L1_error)
+ __pyx_t_5 = __Pyx_dict_iterator(__pyx_cur_scope->__pyx_v_method_map, 1, __pyx_n_s_items, (&__pyx_t_3), (&__pyx_t_4)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 296, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__Pyx_XDECREF(__pyx_t_1);
__pyx_t_1 = __pyx_t_5;
@@ -7597,7 +7870,7 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_14CompiledRouter_12_require
while (1) {
__pyx_t_7 = __Pyx_dict_iter_next(__pyx_t_1, __pyx_t_3, &__pyx_t_2, &__pyx_t_5, &__pyx_t_6, NULL, __pyx_t_4);
if (unlikely(__pyx_t_7 == 0)) break;
- if (unlikely(__pyx_t_7 == -1)) __PYX_ERR(0, 289, __pyx_L1_error)
+ if (unlikely(__pyx_t_7 == -1)) __PYX_ERR(0, 296, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__Pyx_GOTREF(__pyx_t_6);
__Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_method);
@@ -7607,14 +7880,14 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_14CompiledRouter_12_require
__Pyx_XDECREF_SET(__pyx_v_responder, __pyx_t_6);
__pyx_t_6 = 0;
- /* "falcon/routing/compiled.py":295
+ /* "falcon/routing/compiled.py":302
* # by the developer; raising an error helps highlight this
* # issue.
* if not iscoroutinefunction(responder) and is_python_func(responder): # <<<<<<<<<<<<<<
* if _should_wrap_non_coroutines():
*
*/
- __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_iscoroutinefunction); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 295, __pyx_L1_error)
+ __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_iscoroutinefunction); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 302, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__pyx_t_9 = NULL;
__pyx_t_7 = 0;
@@ -7632,11 +7905,11 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_14CompiledRouter_12_require
PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_v_responder};
__pyx_t_6 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+1-__pyx_t_7, 1+__pyx_t_7);
__Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
- if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 295, __pyx_L1_error)
+ if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 302, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
}
- __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely((__pyx_t_10 < 0))) __PYX_ERR(0, 295, __pyx_L1_error)
+ __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely((__pyx_t_10 < 0))) __PYX_ERR(0, 302, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__pyx_t_11 = ((!__pyx_t_10) != 0);
if (__pyx_t_11) {
@@ -7644,7 +7917,7 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_14CompiledRouter_12_require
__pyx_t_8 = __pyx_t_11;
goto __pyx_L6_bool_binop_done;
}
- __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_is_python_func); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 295, __pyx_L1_error)
+ __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_is_python_func); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 302, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__pyx_t_9 = NULL;
__pyx_t_7 = 0;
@@ -7662,24 +7935,24 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_14CompiledRouter_12_require
PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_v_responder};
__pyx_t_6 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+1-__pyx_t_7, 1+__pyx_t_7);
__Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
- if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 295, __pyx_L1_error)
+ if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 302, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
}
- __pyx_t_11 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely((__pyx_t_11 < 0))) __PYX_ERR(0, 295, __pyx_L1_error)
+ __pyx_t_11 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely((__pyx_t_11 < 0))) __PYX_ERR(0, 302, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__pyx_t_8 = __pyx_t_11;
__pyx_L6_bool_binop_done:;
if (__pyx_t_8) {
- /* "falcon/routing/compiled.py":296
+ /* "falcon/routing/compiled.py":303
* # issue.
* if not iscoroutinefunction(responder) and is_python_func(responder):
* if _should_wrap_non_coroutines(): # <<<<<<<<<<<<<<
*
* def let(responder=responder):
*/
- __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_should_wrap_non_coroutines); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 296, __pyx_L1_error)
+ __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_should_wrap_non_coroutines); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 303, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__pyx_t_9 = NULL;
__pyx_t_7 = 0;
@@ -7697,24 +7970,24 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_14CompiledRouter_12_require
PyObject *__pyx_callargs[1] = {__pyx_t_9, };
__pyx_t_6 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+1-__pyx_t_7, 0+__pyx_t_7);
__Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
- if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 296, __pyx_L1_error)
+ if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 303, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
}
- __pyx_t_8 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely((__pyx_t_8 < 0))) __PYX_ERR(0, 296, __pyx_L1_error)
+ __pyx_t_8 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely((__pyx_t_8 < 0))) __PYX_ERR(0, 303, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
if (likely(__pyx_t_8)) {
- /* "falcon/routing/compiled.py":298
+ /* "falcon/routing/compiled.py":305
* if _should_wrap_non_coroutines():
*
* def let(responder=responder): # <<<<<<<<<<<<<<
* method_map[method] = wrap_sync_to_async(responder)
*
*/
- __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_6falcon_7routing_8compiled_14CompiledRouter_29_require_coroutine_responders_1let, 0, __pyx_n_s_CompiledRouter__require_coroutin, ((PyObject*)__pyx_cur_scope), __pyx_n_s_falcon_routing_compiled, __pyx_d, ((PyObject *)__pyx_codeobj__8)); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 298, __pyx_L1_error)
+ __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_6falcon_7routing_8compiled_14CompiledRouter_29_require_coroutine_responders_1let, 0, __pyx_n_s_CompiledRouter__require_coroutin, ((PyObject*)__pyx_cur_scope), __pyx_n_s_falcon_routing_compiled, __pyx_d, ((PyObject *)__pyx_codeobj__9)); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 305, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
- if (!__Pyx_CyFunction_InitDefaults(__pyx_t_6, sizeof(__pyx_defaults), 1)) __PYX_ERR(0, 298, __pyx_L1_error)
+ if (!__Pyx_CyFunction_InitDefaults(__pyx_t_6, sizeof(__pyx_defaults), 1)) __PYX_ERR(0, 305, __pyx_L1_error)
__Pyx_INCREF(__pyx_v_responder);
__Pyx_CyFunction_Defaults(__pyx_defaults, __pyx_t_6)->__pyx_arg_responder = __pyx_v_responder;
__Pyx_GIVEREF(__pyx_v_responder);
@@ -7722,18 +7995,18 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_14CompiledRouter_12_require
__Pyx_XDECREF_SET(__pyx_v_let, __pyx_t_6);
__pyx_t_6 = 0;
- /* "falcon/routing/compiled.py":301
+ /* "falcon/routing/compiled.py":308
* method_map[method] = wrap_sync_to_async(responder)
*
* let() # <<<<<<<<<<<<<<
*
* else:
*/
- __pyx_t_6 = __Pyx_PyObject_CallNoArg(__pyx_v_let); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 301, __pyx_L1_error)
+ __pyx_t_6 = __Pyx_PyObject_CallNoArg(__pyx_v_let); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 308, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
- /* "falcon/routing/compiled.py":296
+ /* "falcon/routing/compiled.py":303
* # issue.
* if not iscoroutinefunction(responder) and is_python_func(responder):
* if _should_wrap_non_coroutines(): # <<<<<<<<<<<<<<
@@ -7743,7 +8016,7 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_14CompiledRouter_12_require
goto __pyx_L8;
}
- /* "falcon/routing/compiled.py":304
+ /* "falcon/routing/compiled.py":311
*
* else:
* msg = ( # <<<<<<<<<<<<<<
@@ -7752,7 +8025,7 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_14CompiledRouter_12_require
*/
/*else*/ {
- /* "falcon/routing/compiled.py":305
+ /* "falcon/routing/compiled.py":312
* else:
* msg = (
* 'The {} responder must be a non-blocking ' # <<<<<<<<<<<<<<
@@ -7762,34 +8035,34 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_14CompiledRouter_12_require
__Pyx_INCREF(__pyx_kp_u_The_responder_must_be_a_non_bloc);
__pyx_v_msg = __pyx_kp_u_The_responder_must_be_a_non_bloc;
- /* "falcon/routing/compiled.py":309
+ /* "falcon/routing/compiled.py":316
* 'avoid blocking the main request thread.'
* )
* msg = msg.format(responder) # <<<<<<<<<<<<<<
* raise TypeError(msg)
*
*/
- __pyx_t_6 = __Pyx_CallUnboundCMethod1(&__pyx_umethod_PyUnicode_Type_format, __pyx_v_msg, __pyx_v_responder); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 309, __pyx_L1_error)
+ __pyx_t_6 = __Pyx_CallUnboundCMethod1(&__pyx_umethod_PyUnicode_Type_format, __pyx_v_msg, __pyx_v_responder); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 316, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF_SET(__pyx_v_msg, __pyx_t_6);
__pyx_t_6 = 0;
- /* "falcon/routing/compiled.py":310
+ /* "falcon/routing/compiled.py":317
* )
* msg = msg.format(responder)
* raise TypeError(msg) # <<<<<<<<<<<<<<
*
- * def _require_non_coroutine_responders(self, method_map):
+ * def _require_non_coroutine_responders(self, method_map: dict):
*/
- __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_builtin_TypeError, __pyx_v_msg); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 310, __pyx_L1_error)
+ __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_builtin_TypeError, __pyx_v_msg); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 317, __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, 310, __pyx_L1_error)
+ __PYX_ERR(0, 317, __pyx_L1_error)
}
__pyx_L8:;
- /* "falcon/routing/compiled.py":295
+ /* "falcon/routing/compiled.py":302
* # by the developer; raising an error helps highlight this
* # issue.
* if not iscoroutinefunction(responder) and is_python_func(responder): # <<<<<<<<<<<<<<
@@ -7800,10 +8073,10 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_14CompiledRouter_12_require
}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
- /* "falcon/routing/compiled.py":288
+ /* "falcon/routing/compiled.py":295
* # -----------------------------------------------------------------
*
- * def _require_coroutine_responders(self, method_map): # <<<<<<<<<<<<<<
+ * def _require_coroutine_responders(self, method_map: dict): # <<<<<<<<<<<<<<
* for method, responder in method_map.items():
* # NOTE(kgriffs): We don't simply wrap non-async functions
*/
@@ -7828,10 +8101,10 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_14CompiledRouter_12_require
return __pyx_r;
}
-/* "falcon/routing/compiled.py":312
+/* "falcon/routing/compiled.py":319
* raise TypeError(msg)
*
- * def _require_non_coroutine_responders(self, method_map): # <<<<<<<<<<<<<<
+ * def _require_non_coroutine_responders(self, method_map: dict): # <<<<<<<<<<<<<<
* for method, responder in method_map.items():
* # NOTE(kgriffs): We don't simply wrap non-async functions
*/
@@ -7885,19 +8158,19 @@ PyObject *__pyx_args, PyObject *__pyx_kwds
switch (__pyx_nargs) {
case 0:
if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_self)) != 0)) kw_args--;
- else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 312, __pyx_L3_error)
+ else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 319, __pyx_L3_error)
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_method_map)) != 0)) kw_args--;
- else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 312, __pyx_L3_error)
+ else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 319, __pyx_L3_error)
else {
- __Pyx_RaiseArgtupleInvalid("_require_non_coroutine_responders", 1, 2, 2, 1); __PYX_ERR(0, 312, __pyx_L3_error)
+ __Pyx_RaiseArgtupleInvalid("_require_non_coroutine_responders", 1, 2, 2, 1); __PYX_ERR(0, 319, __pyx_L3_error)
}
}
if (unlikely(kw_args > 0)) {
const Py_ssize_t kwd_pos_args = __pyx_nargs;
- if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_require_non_coroutine_responders") < 0)) __PYX_ERR(0, 312, __pyx_L3_error)
+ if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_require_non_coroutine_responders") < 0)) __PYX_ERR(0, 319, __pyx_L3_error)
}
} else if (unlikely(__pyx_nargs != 2)) {
goto __pyx_L5_argtuple_error;
@@ -7906,19 +8179,24 @@ PyObject *__pyx_args, PyObject *__pyx_kwds
values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
}
__pyx_v_self = values[0];
- __pyx_v_method_map = values[1];
+ __pyx_v_method_map = ((PyObject*)values[1]);
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
- __Pyx_RaiseArgtupleInvalid("_require_non_coroutine_responders", 1, 2, 2, __pyx_nargs); __PYX_ERR(0, 312, __pyx_L3_error)
+ __Pyx_RaiseArgtupleInvalid("_require_non_coroutine_responders", 1, 2, 2, __pyx_nargs); __PYX_ERR(0, 319, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("falcon.routing.compiled.CompiledRouter._require_non_coroutine_responders", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
+ if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_method_map), (&PyDict_Type), 1, "method_map", 1))) __PYX_ERR(0, 319, __pyx_L1_error)
__pyx_r = __pyx_pf_6falcon_7routing_8compiled_14CompiledRouter_14_require_non_coroutine_responders(__pyx_self, __pyx_v_self, __pyx_v_method_map);
/* function exit code */
+ goto __pyx_L0;
+ __pyx_L1_error:;
+ __pyx_r = NULL;
+ __pyx_L0:;
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
@@ -7943,9 +8221,9 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_14CompiledRouter_14_require
int __pyx_clineno = 0;
__Pyx_RefNannySetupContext("_require_non_coroutine_responders", 0);
- /* "falcon/routing/compiled.py":313
+ /* "falcon/routing/compiled.py":320
*
- * def _require_non_coroutine_responders(self, method_map):
+ * def _require_non_coroutine_responders(self, method_map: dict):
* for method, responder in method_map.items(): # <<<<<<<<<<<<<<
* # NOTE(kgriffs): We don't simply wrap non-async functions
* # since they likely peform relatively long blocking
@@ -7953,9 +8231,9 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_14CompiledRouter_14_require
__pyx_t_2 = 0;
if (unlikely(__pyx_v_method_map == Py_None)) {
PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "items");
- __PYX_ERR(0, 313, __pyx_L1_error)
+ __PYX_ERR(0, 320, __pyx_L1_error)
}
- __pyx_t_5 = __Pyx_dict_iterator(__pyx_v_method_map, 0, __pyx_n_s_items, (&__pyx_t_3), (&__pyx_t_4)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 313, __pyx_L1_error)
+ __pyx_t_5 = __Pyx_dict_iterator(__pyx_v_method_map, 1, __pyx_n_s_items, (&__pyx_t_3), (&__pyx_t_4)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 320, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__Pyx_XDECREF(__pyx_t_1);
__pyx_t_1 = __pyx_t_5;
@@ -7963,7 +8241,7 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_14CompiledRouter_14_require
while (1) {
__pyx_t_7 = __Pyx_dict_iter_next(__pyx_t_1, __pyx_t_3, &__pyx_t_2, &__pyx_t_5, &__pyx_t_6, NULL, __pyx_t_4);
if (unlikely(__pyx_t_7 == 0)) break;
- if (unlikely(__pyx_t_7 == -1)) __PYX_ERR(0, 313, __pyx_L1_error)
+ if (unlikely(__pyx_t_7 == -1)) __PYX_ERR(0, 320, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__Pyx_GOTREF(__pyx_t_6);
__Pyx_XDECREF_SET(__pyx_v_method, __pyx_t_5);
@@ -7971,14 +8249,14 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_14CompiledRouter_14_require
__Pyx_XDECREF_SET(__pyx_v_responder, __pyx_t_6);
__pyx_t_6 = 0;
- /* "falcon/routing/compiled.py":320
+ /* "falcon/routing/compiled.py":327
* # issue.
*
* if iscoroutinefunction(responder): # <<<<<<<<<<<<<<
* msg = (
* 'The {} responder must be a regular synchronous '
*/
- __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_iscoroutinefunction); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 320, __pyx_L1_error)
+ __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_iscoroutinefunction); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 327, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__pyx_t_8 = NULL;
__pyx_t_7 = 0;
@@ -7996,15 +8274,15 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_14CompiledRouter_14_require
PyObject *__pyx_callargs[2] = {__pyx_t_8, __pyx_v_responder};
__pyx_t_6 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+1-__pyx_t_7, 1+__pyx_t_7);
__Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
- if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 320, __pyx_L1_error)
+ if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 327, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
}
- __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely((__pyx_t_9 < 0))) __PYX_ERR(0, 320, __pyx_L1_error)
+ __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely((__pyx_t_9 < 0))) __PYX_ERR(0, 327, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
if (unlikely(__pyx_t_9)) {
- /* "falcon/routing/compiled.py":322
+ /* "falcon/routing/compiled.py":329
* if iscoroutinefunction(responder):
* msg = (
* 'The {} responder must be a regular synchronous ' # <<<<<<<<<<<<<<
@@ -8014,32 +8292,32 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_14CompiledRouter_14_require
__Pyx_INCREF(__pyx_kp_u_The_responder_must_be_a_regular);
__pyx_v_msg = __pyx_kp_u_The_responder_must_be_a_regular;
- /* "falcon/routing/compiled.py":325
+ /* "falcon/routing/compiled.py":332
* 'method to be used with a WSGI app.'
* )
* msg = msg.format(responder) # <<<<<<<<<<<<<<
* raise TypeError(msg)
*
*/
- __pyx_t_6 = __Pyx_CallUnboundCMethod1(&__pyx_umethod_PyUnicode_Type_format, __pyx_v_msg, __pyx_v_responder); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 325, __pyx_L1_error)
+ __pyx_t_6 = __Pyx_CallUnboundCMethod1(&__pyx_umethod_PyUnicode_Type_format, __pyx_v_msg, __pyx_v_responder); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 332, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF_SET(__pyx_v_msg, __pyx_t_6);
__pyx_t_6 = 0;
- /* "falcon/routing/compiled.py":326
+ /* "falcon/routing/compiled.py":333
* )
* msg = msg.format(responder)
* raise TypeError(msg) # <<<<<<<<<<<<<<
*
- * def _validate_template_segment(self, segment, used_names):
+ * def _validate_template_segment(self, segment: str, used_names: 'Set[str]'):
*/
- __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_builtin_TypeError, __pyx_v_msg); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 326, __pyx_L1_error)
+ __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_builtin_TypeError, __pyx_v_msg); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 333, __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, 326, __pyx_L1_error)
+ __PYX_ERR(0, 333, __pyx_L1_error)
- /* "falcon/routing/compiled.py":320
+ /* "falcon/routing/compiled.py":327
* # issue.
*
* if iscoroutinefunction(responder): # <<<<<<<<<<<<<<
@@ -8050,10 +8328,10 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_14CompiledRouter_14_require
}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
- /* "falcon/routing/compiled.py":312
+ /* "falcon/routing/compiled.py":319
* raise TypeError(msg)
*
- * def _require_non_coroutine_responders(self, method_map): # <<<<<<<<<<<<<<
+ * def _require_non_coroutine_responders(self, method_map: dict): # <<<<<<<<<<<<<<
* for method, responder in method_map.items():
* # NOTE(kgriffs): We don't simply wrap non-async functions
*/
@@ -8077,10 +8355,10 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_14CompiledRouter_14_require
return __pyx_r;
}
-/* "falcon/routing/compiled.py":328
+/* "falcon/routing/compiled.py":335
* raise TypeError(msg)
*
- * def _validate_template_segment(self, segment, used_names): # <<<<<<<<<<<<<<
+ * def _validate_template_segment(self, segment: str, used_names: 'Set[str]'): # <<<<<<<<<<<<<<
* """Validate a single path segment of a URI template.
*
*/
@@ -8138,26 +8416,26 @@ PyObject *__pyx_args, PyObject *__pyx_kwds
switch (__pyx_nargs) {
case 0:
if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_self)) != 0)) kw_args--;
- else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 328, __pyx_L3_error)
+ else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 335, __pyx_L3_error)
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_segment)) != 0)) kw_args--;
- else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 328, __pyx_L3_error)
+ else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 335, __pyx_L3_error)
else {
- __Pyx_RaiseArgtupleInvalid("_validate_template_segment", 1, 3, 3, 1); __PYX_ERR(0, 328, __pyx_L3_error)
+ __Pyx_RaiseArgtupleInvalid("_validate_template_segment", 1, 3, 3, 1); __PYX_ERR(0, 335, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 2:
if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_used_names)) != 0)) kw_args--;
- else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 328, __pyx_L3_error)
+ else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 335, __pyx_L3_error)
else {
- __Pyx_RaiseArgtupleInvalid("_validate_template_segment", 1, 3, 3, 2); __PYX_ERR(0, 328, __pyx_L3_error)
+ __Pyx_RaiseArgtupleInvalid("_validate_template_segment", 1, 3, 3, 2); __PYX_ERR(0, 335, __pyx_L3_error)
}
}
if (unlikely(kw_args > 0)) {
const Py_ssize_t kwd_pos_args = __pyx_nargs;
- if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_validate_template_segment") < 0)) __PYX_ERR(0, 328, __pyx_L3_error)
+ if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_validate_template_segment") < 0)) __PYX_ERR(0, 335, __pyx_L3_error)
}
} else if (unlikely(__pyx_nargs != 3)) {
goto __pyx_L5_argtuple_error;
@@ -8167,20 +8445,25 @@ PyObject *__pyx_args, PyObject *__pyx_kwds
values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
}
__pyx_v_self = values[0];
- __pyx_v_segment = values[1];
+ __pyx_v_segment = ((PyObject*)values[1]);
__pyx_v_used_names = values[2];
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
- __Pyx_RaiseArgtupleInvalid("_validate_template_segment", 1, 3, 3, __pyx_nargs); __PYX_ERR(0, 328, __pyx_L3_error)
+ __Pyx_RaiseArgtupleInvalid("_validate_template_segment", 1, 3, 3, __pyx_nargs); __PYX_ERR(0, 335, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("falcon.routing.compiled.CompiledRouter._validate_template_segment", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
+ if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_segment), (&PyUnicode_Type), 1, "segment", 1))) __PYX_ERR(0, 335, __pyx_L1_error)
__pyx_r = __pyx_pf_6falcon_7routing_8compiled_14CompiledRouter_16_validate_template_segment(__pyx_self, __pyx_v_self, __pyx_v_segment, __pyx_v_used_names);
/* function exit code */
+ goto __pyx_L0;
+ __pyx_L1_error:;
+ __pyx_r = NULL;
+ __pyx_L0:;
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
@@ -8223,16 +8506,16 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_14CompiledRouter_16_validat
int __pyx_clineno = 0;
__Pyx_RefNannySetupContext("_validate_template_segment", 0);
- /* "falcon/routing/compiled.py":343
+ /* "falcon/routing/compiled.py":350
* """
*
* for field in _FIELD_PATTERN.finditer(segment): # <<<<<<<<<<<<<<
* name = field.group('fname')
*
*/
- __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_FIELD_PATTERN); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 343, __pyx_L1_error)
+ __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_FIELD_PATTERN); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 350, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
- __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_finditer); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 343, __pyx_L1_error)
+ __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_finditer); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 350, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_t_2 = NULL;
@@ -8251,7 +8534,7 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_14CompiledRouter_16_validat
PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_v_segment};
__pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_4, 1+__pyx_t_4);
__Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
- if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 343, __pyx_L1_error)
+ if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 350, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
}
@@ -8259,9 +8542,9 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_14CompiledRouter_16_validat
__pyx_t_3 = __pyx_t_1; __Pyx_INCREF(__pyx_t_3); __pyx_t_5 = 0;
__pyx_t_6 = NULL;
} else {
- __pyx_t_5 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 343, __pyx_L1_error)
+ __pyx_t_5 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 350, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
- __pyx_t_6 = __Pyx_PyObject_GetIterNextFunc(__pyx_t_3); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 343, __pyx_L1_error)
+ __pyx_t_6 = __Pyx_PyObject_GetIterNextFunc(__pyx_t_3); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 350, __pyx_L1_error)
}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
for (;;) {
@@ -8269,17 +8552,17 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_14CompiledRouter_16_validat
if (likely(PyList_CheckExact(__pyx_t_3))) {
if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_3)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
- __pyx_t_1 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_5); __Pyx_INCREF(__pyx_t_1); __pyx_t_5++; if (unlikely((0 < 0))) __PYX_ERR(0, 343, __pyx_L1_error)
+ __pyx_t_1 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_5); __Pyx_INCREF(__pyx_t_1); __pyx_t_5++; if (unlikely((0 < 0))) __PYX_ERR(0, 350, __pyx_L1_error)
#else
- __pyx_t_1 = PySequence_ITEM(__pyx_t_3, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 343, __pyx_L1_error)
+ __pyx_t_1 = PySequence_ITEM(__pyx_t_3, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 350, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
#endif
} else {
if (__pyx_t_5 >= PyTuple_GET_SIZE(__pyx_t_3)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
- __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_5); __Pyx_INCREF(__pyx_t_1); __pyx_t_5++; if (unlikely((0 < 0))) __PYX_ERR(0, 343, __pyx_L1_error)
+ __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_5); __Pyx_INCREF(__pyx_t_1); __pyx_t_5++; if (unlikely((0 < 0))) __PYX_ERR(0, 350, __pyx_L1_error)
#else
- __pyx_t_1 = PySequence_ITEM(__pyx_t_3, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 343, __pyx_L1_error)
+ __pyx_t_1 = PySequence_ITEM(__pyx_t_3, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 350, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
#endif
}
@@ -8289,7 +8572,7 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_14CompiledRouter_16_validat
PyObject* exc_type = PyErr_Occurred();
if (exc_type) {
if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
- else __PYX_ERR(0, 343, __pyx_L1_error)
+ else __PYX_ERR(0, 350, __pyx_L1_error)
}
break;
}
@@ -8298,14 +8581,14 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_14CompiledRouter_16_validat
__Pyx_XDECREF_SET(__pyx_v_field, __pyx_t_1);
__pyx_t_1 = 0;
- /* "falcon/routing/compiled.py":344
+ /* "falcon/routing/compiled.py":351
*
* for field in _FIELD_PATTERN.finditer(segment):
* name = field.group('fname') # <<<<<<<<<<<<<<
*
* is_identifier = _IDENTIFIER_PATTERN.match(name)
*/
- __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_field, __pyx_n_s_group); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 344, __pyx_L1_error)
+ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_field, __pyx_n_s_group); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 351, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_7 = NULL;
__pyx_t_4 = 0;
@@ -8323,23 +8606,23 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_14CompiledRouter_16_validat
PyObject *__pyx_callargs[2] = {__pyx_t_7, __pyx_n_u_fname};
__pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_4, 1+__pyx_t_4);
__Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
- if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 344, __pyx_L1_error)
+ if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 351, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
}
__Pyx_XDECREF_SET(__pyx_v_name, __pyx_t_1);
__pyx_t_1 = 0;
- /* "falcon/routing/compiled.py":346
+ /* "falcon/routing/compiled.py":353
* name = field.group('fname')
*
* is_identifier = _IDENTIFIER_PATTERN.match(name) # <<<<<<<<<<<<<<
* if not is_identifier or name in keyword.kwlist:
* msg_template = (
*/
- __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_IDENTIFIER_PATTERN); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 346, __pyx_L1_error)
+ __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_IDENTIFIER_PATTERN); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 353, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
- __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_match); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 346, __pyx_L1_error)
+ __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_match); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 353, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_t_2 = NULL;
@@ -8358,40 +8641,40 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_14CompiledRouter_16_validat
PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_v_name};
__pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_7, __pyx_callargs+1-__pyx_t_4, 1+__pyx_t_4);
__Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
- if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 346, __pyx_L1_error)
+ if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 353, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
}
__Pyx_XDECREF_SET(__pyx_v_is_identifier, __pyx_t_1);
__pyx_t_1 = 0;
- /* "falcon/routing/compiled.py":347
+ /* "falcon/routing/compiled.py":354
*
* is_identifier = _IDENTIFIER_PATTERN.match(name)
* if not is_identifier or name in keyword.kwlist: # <<<<<<<<<<<<<<
* msg_template = (
* 'Field names must be valid identifiers ("{0}" is not valid)'
*/
- __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_v_is_identifier); if (unlikely((__pyx_t_9 < 0))) __PYX_ERR(0, 347, __pyx_L1_error)
+ __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_v_is_identifier); if (unlikely((__pyx_t_9 < 0))) __PYX_ERR(0, 354, __pyx_L1_error)
__pyx_t_10 = ((!__pyx_t_9) != 0);
if (!__pyx_t_10) {
} else {
__pyx_t_8 = __pyx_t_10;
goto __pyx_L6_bool_binop_done;
}
- __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_keyword); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 347, __pyx_L1_error)
+ __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_keyword); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 354, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
- __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_kwlist); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 347, __pyx_L1_error)
+ __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_kwlist); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 354, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
- __pyx_t_10 = (__Pyx_PySequence_ContainsTF(__pyx_v_name, __pyx_t_7, Py_EQ)); if (unlikely((__pyx_t_10 < 0))) __PYX_ERR(0, 347, __pyx_L1_error)
+ __pyx_t_10 = (__Pyx_PySequence_ContainsTF(__pyx_v_name, __pyx_t_7, Py_EQ)); if (unlikely((__pyx_t_10 < 0))) __PYX_ERR(0, 354, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
__pyx_t_9 = (__pyx_t_10 != 0);
__pyx_t_8 = __pyx_t_9;
__pyx_L6_bool_binop_done:;
if (unlikely(__pyx_t_8)) {
- /* "falcon/routing/compiled.py":349
+ /* "falcon/routing/compiled.py":356
* if not is_identifier or name in keyword.kwlist:
* msg_template = (
* 'Field names must be valid identifiers ("{0}" is not valid)' # <<<<<<<<<<<<<<
@@ -8401,32 +8684,32 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_14CompiledRouter_16_validat
__Pyx_INCREF(__pyx_kp_u_Field_names_must_be_valid_identi);
__pyx_v_msg_template = __pyx_kp_u_Field_names_must_be_valid_identi;
- /* "falcon/routing/compiled.py":351
+ /* "falcon/routing/compiled.py":358
* 'Field names must be valid identifiers ("{0}" is not valid)'
* )
* msg = msg_template.format(name) # <<<<<<<<<<<<<<
* raise ValueError(msg)
*
*/
- __pyx_t_7 = __Pyx_CallUnboundCMethod1(&__pyx_umethod_PyUnicode_Type_format, __pyx_v_msg_template, __pyx_v_name); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 351, __pyx_L1_error)
+ __pyx_t_7 = __Pyx_CallUnboundCMethod1(&__pyx_umethod_PyUnicode_Type_format, __pyx_v_msg_template, __pyx_v_name); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 358, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__pyx_v_msg = __pyx_t_7;
__pyx_t_7 = 0;
- /* "falcon/routing/compiled.py":352
+ /* "falcon/routing/compiled.py":359
* )
* msg = msg_template.format(name)
* raise ValueError(msg) # <<<<<<<<<<<<<<
*
* if name in used_names:
*/
- __pyx_t_7 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_v_msg); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 352, __pyx_L1_error)
+ __pyx_t_7 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_v_msg); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 359, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__Pyx_Raise(__pyx_t_7, 0, 0, 0);
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
- __PYX_ERR(0, 352, __pyx_L1_error)
+ __PYX_ERR(0, 359, __pyx_L1_error)
- /* "falcon/routing/compiled.py":347
+ /* "falcon/routing/compiled.py":354
*
* is_identifier = _IDENTIFIER_PATTERN.match(name)
* if not is_identifier or name in keyword.kwlist: # <<<<<<<<<<<<<<
@@ -8435,18 +8718,18 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_14CompiledRouter_16_validat
*/
}
- /* "falcon/routing/compiled.py":354
+ /* "falcon/routing/compiled.py":361
* raise ValueError(msg)
*
* if name in used_names: # <<<<<<<<<<<<<<
* msg_template = (
* 'Field names may not be duplicated '
*/
- __pyx_t_8 = (__Pyx_PySequence_ContainsTF(__pyx_v_name, __pyx_v_used_names, Py_EQ)); if (unlikely((__pyx_t_8 < 0))) __PYX_ERR(0, 354, __pyx_L1_error)
+ __pyx_t_8 = (__Pyx_PySequence_ContainsTF(__pyx_v_name, __pyx_v_used_names, Py_EQ)); if (unlikely((__pyx_t_8 < 0))) __PYX_ERR(0, 361, __pyx_L1_error)
__pyx_t_9 = (__pyx_t_8 != 0);
if (unlikely(__pyx_t_9)) {
- /* "falcon/routing/compiled.py":356
+ /* "falcon/routing/compiled.py":363
* if name in used_names:
* msg_template = (
* 'Field names may not be duplicated ' # <<<<<<<<<<<<<<
@@ -8456,32 +8739,32 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_14CompiledRouter_16_validat
__Pyx_INCREF(__pyx_kp_u_Field_names_may_not_be_duplicate);
__pyx_v_msg_template = __pyx_kp_u_Field_names_may_not_be_duplicate;
- /* "falcon/routing/compiled.py":359
+ /* "falcon/routing/compiled.py":366
* '("{0}" was used more than once)'
* )
* msg = msg_template.format(name) # <<<<<<<<<<<<<<
* raise ValueError(msg)
*
*/
- __pyx_t_7 = __Pyx_CallUnboundCMethod1(&__pyx_umethod_PyUnicode_Type_format, __pyx_v_msg_template, __pyx_v_name); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 359, __pyx_L1_error)
+ __pyx_t_7 = __Pyx_CallUnboundCMethod1(&__pyx_umethod_PyUnicode_Type_format, __pyx_v_msg_template, __pyx_v_name); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 366, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__pyx_v_msg = __pyx_t_7;
__pyx_t_7 = 0;
- /* "falcon/routing/compiled.py":360
+ /* "falcon/routing/compiled.py":367
* )
* msg = msg_template.format(name)
* raise ValueError(msg) # <<<<<<<<<<<<<<
*
* used_names.add(name)
*/
- __pyx_t_7 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_v_msg); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 360, __pyx_L1_error)
+ __pyx_t_7 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_v_msg); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 367, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__Pyx_Raise(__pyx_t_7, 0, 0, 0);
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
- __PYX_ERR(0, 360, __pyx_L1_error)
+ __PYX_ERR(0, 367, __pyx_L1_error)
- /* "falcon/routing/compiled.py":354
+ /* "falcon/routing/compiled.py":361
* raise ValueError(msg)
*
* if name in used_names: # <<<<<<<<<<<<<<
@@ -8490,14 +8773,14 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_14CompiledRouter_16_validat
*/
}
- /* "falcon/routing/compiled.py":362
+ /* "falcon/routing/compiled.py":369
* raise ValueError(msg)
*
* used_names.add(name) # <<<<<<<<<<<<<<
*
* if field.group('cname_sep') == ':':
*/
- __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_used_names, __pyx_n_s_add); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 362, __pyx_L1_error)
+ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_used_names, __pyx_n_s_add); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 369, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_2 = NULL;
__pyx_t_4 = 0;
@@ -8515,20 +8798,20 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_14CompiledRouter_16_validat
PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_v_name};
__pyx_t_7 = __Pyx_PyObject_FastCall(__pyx_t_1, __pyx_callargs+1-__pyx_t_4, 1+__pyx_t_4);
__Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
- if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 362, __pyx_L1_error)
+ if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 369, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
}
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
- /* "falcon/routing/compiled.py":364
+ /* "falcon/routing/compiled.py":371
* used_names.add(name)
*
* if field.group('cname_sep') == ':': # <<<<<<<<<<<<<<
* msg = 'Missing converter for field "{0}"'.format(name)
* raise ValueError(msg)
*/
- __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_field, __pyx_n_s_group); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 364, __pyx_L1_error)
+ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_field, __pyx_n_s_group); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 371, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_2 = NULL;
__pyx_t_4 = 0;
@@ -8546,22 +8829,22 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_14CompiledRouter_16_validat
PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_n_u_cname_sep};
__pyx_t_7 = __Pyx_PyObject_FastCall(__pyx_t_1, __pyx_callargs+1-__pyx_t_4, 1+__pyx_t_4);
__Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
- if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 364, __pyx_L1_error)
+ if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 371, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
}
- __pyx_t_9 = (__Pyx_PyUnicode_Equals(__pyx_t_7, __pyx_kp_u__9, Py_EQ)); if (unlikely((__pyx_t_9 < 0))) __PYX_ERR(0, 364, __pyx_L1_error)
+ __pyx_t_9 = (__Pyx_PyUnicode_Equals(__pyx_t_7, __pyx_kp_u__10, Py_EQ)); if (unlikely((__pyx_t_9 < 0))) __PYX_ERR(0, 371, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
if (unlikely(__pyx_t_9)) {
- /* "falcon/routing/compiled.py":365
+ /* "falcon/routing/compiled.py":372
*
* if field.group('cname_sep') == ':':
* msg = 'Missing converter for field "{0}"'.format(name) # <<<<<<<<<<<<<<
* raise ValueError(msg)
*
*/
- __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_kp_u_Missing_converter_for_field_0, __pyx_n_s_format); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 365, __pyx_L1_error)
+ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_kp_u_Missing_converter_for_field_0, __pyx_n_s_format); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 372, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_2 = NULL;
__pyx_t_4 = 0;
@@ -8579,27 +8862,27 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_14CompiledRouter_16_validat
PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_v_name};
__pyx_t_7 = __Pyx_PyObject_FastCall(__pyx_t_1, __pyx_callargs+1-__pyx_t_4, 1+__pyx_t_4);
__Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
- if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 365, __pyx_L1_error)
+ if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 372, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
}
__pyx_v_msg = __pyx_t_7;
__pyx_t_7 = 0;
- /* "falcon/routing/compiled.py":366
+ /* "falcon/routing/compiled.py":373
* if field.group('cname_sep') == ':':
* msg = 'Missing converter for field "{0}"'.format(name)
* raise ValueError(msg) # <<<<<<<<<<<<<<
*
* name = field.group('cname')
*/
- __pyx_t_7 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_v_msg); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 366, __pyx_L1_error)
+ __pyx_t_7 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_v_msg); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 373, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__Pyx_Raise(__pyx_t_7, 0, 0, 0);
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
- __PYX_ERR(0, 366, __pyx_L1_error)
+ __PYX_ERR(0, 373, __pyx_L1_error)
- /* "falcon/routing/compiled.py":364
+ /* "falcon/routing/compiled.py":371
* used_names.add(name)
*
* if field.group('cname_sep') == ':': # <<<<<<<<<<<<<<
@@ -8608,14 +8891,14 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_14CompiledRouter_16_validat
*/
}
- /* "falcon/routing/compiled.py":368
+ /* "falcon/routing/compiled.py":375
* raise ValueError(msg)
*
* name = field.group('cname') # <<<<<<<<<<<<<<
* if name:
* if name not in self._converter_map:
*/
- __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_field, __pyx_n_s_group); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 368, __pyx_L1_error)
+ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_field, __pyx_n_s_group); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 375, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_2 = NULL;
__pyx_t_4 = 0;
@@ -8633,45 +8916,45 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_14CompiledRouter_16_validat
PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_n_u_cname};
__pyx_t_7 = __Pyx_PyObject_FastCall(__pyx_t_1, __pyx_callargs+1-__pyx_t_4, 1+__pyx_t_4);
__Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
- if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 368, __pyx_L1_error)
+ if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 375, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
}
__Pyx_DECREF_SET(__pyx_v_name, __pyx_t_7);
__pyx_t_7 = 0;
- /* "falcon/routing/compiled.py":369
+ /* "falcon/routing/compiled.py":376
*
* name = field.group('cname')
* if name: # <<<<<<<<<<<<<<
* if name not in self._converter_map:
* msg = 'Unknown converter: "{0}"'.format(name)
*/
- __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_v_name); if (unlikely((__pyx_t_9 < 0))) __PYX_ERR(0, 369, __pyx_L1_error)
+ __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_v_name); if (unlikely((__pyx_t_9 < 0))) __PYX_ERR(0, 376, __pyx_L1_error)
if (__pyx_t_9) {
- /* "falcon/routing/compiled.py":370
+ /* "falcon/routing/compiled.py":377
* name = field.group('cname')
* if name:
* if name not in self._converter_map: # <<<<<<<<<<<<<<
* msg = 'Unknown converter: "{0}"'.format(name)
* raise ValueError(msg)
*/
- __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_converter_map); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 370, __pyx_L1_error)
+ __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_converter_map); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 377, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
- __pyx_t_9 = (__Pyx_PySequence_ContainsTF(__pyx_v_name, __pyx_t_7, Py_NE)); if (unlikely((__pyx_t_9 < 0))) __PYX_ERR(0, 370, __pyx_L1_error)
+ __pyx_t_9 = (__Pyx_PySequence_ContainsTF(__pyx_v_name, __pyx_t_7, Py_NE)); if (unlikely((__pyx_t_9 < 0))) __PYX_ERR(0, 377, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
__pyx_t_8 = (__pyx_t_9 != 0);
if (unlikely(__pyx_t_8)) {
- /* "falcon/routing/compiled.py":371
+ /* "falcon/routing/compiled.py":378
* if name:
* if name not in self._converter_map:
* msg = 'Unknown converter: "{0}"'.format(name) # <<<<<<<<<<<<<<
* raise ValueError(msg)
* try:
*/
- __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_kp_u_Unknown_converter_0, __pyx_n_s_format); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 371, __pyx_L1_error)
+ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_kp_u_Unknown_converter_0, __pyx_n_s_format); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 378, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_2 = NULL;
__pyx_t_4 = 0;
@@ -8689,27 +8972,27 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_14CompiledRouter_16_validat
PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_v_name};
__pyx_t_7 = __Pyx_PyObject_FastCall(__pyx_t_1, __pyx_callargs+1-__pyx_t_4, 1+__pyx_t_4);
__Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
- if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 371, __pyx_L1_error)
+ if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 378, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
}
__pyx_v_msg = __pyx_t_7;
__pyx_t_7 = 0;
- /* "falcon/routing/compiled.py":372
+ /* "falcon/routing/compiled.py":379
* if name not in self._converter_map:
* msg = 'Unknown converter: "{0}"'.format(name)
* raise ValueError(msg) # <<<<<<<<<<<<<<
* try:
* self._instantiate_converter(
*/
- __pyx_t_7 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_v_msg); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 372, __pyx_L1_error)
+ __pyx_t_7 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_v_msg); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 379, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__Pyx_Raise(__pyx_t_7, 0, 0, 0);
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
- __PYX_ERR(0, 372, __pyx_L1_error)
+ __PYX_ERR(0, 379, __pyx_L1_error)
- /* "falcon/routing/compiled.py":370
+ /* "falcon/routing/compiled.py":377
* name = field.group('cname')
* if name:
* if name not in self._converter_map: # <<<<<<<<<<<<<<
@@ -8718,7 +9001,7 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_14CompiledRouter_16_validat
*/
}
- /* "falcon/routing/compiled.py":373
+ /* "falcon/routing/compiled.py":380
* msg = 'Unknown converter: "{0}"'.format(name)
* raise ValueError(msg)
* try: # <<<<<<<<<<<<<<
@@ -8734,29 +9017,29 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_14CompiledRouter_16_validat
__Pyx_XGOTREF(__pyx_t_13);
/*try:*/ {
- /* "falcon/routing/compiled.py":374
+ /* "falcon/routing/compiled.py":381
* raise ValueError(msg)
* try:
* self._instantiate_converter( # <<<<<<<<<<<<<<
* self._converter_map[name], field.group('argstr')
* )
*/
- __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_instantiate_converter); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 374, __pyx_L12_error)
+ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_instantiate_converter); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 381, __pyx_L12_error)
__Pyx_GOTREF(__pyx_t_1);
- /* "falcon/routing/compiled.py":375
+ /* "falcon/routing/compiled.py":382
* try:
* self._instantiate_converter(
* self._converter_map[name], field.group('argstr') # <<<<<<<<<<<<<<
* )
* except Exception as e:
*/
- __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_converter_map); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 375, __pyx_L12_error)
+ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_converter_map); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 382, __pyx_L12_error)
__Pyx_GOTREF(__pyx_t_2);
- __pyx_t_14 = __Pyx_PyObject_GetItem(__pyx_t_2, __pyx_v_name); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 375, __pyx_L12_error)
+ __pyx_t_14 = __Pyx_PyObject_GetItem(__pyx_t_2, __pyx_v_name); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 382, __pyx_L12_error)
__Pyx_GOTREF(__pyx_t_14);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
- __pyx_t_15 = __Pyx_PyObject_GetAttrStr(__pyx_v_field, __pyx_n_s_group); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 375, __pyx_L12_error)
+ __pyx_t_15 = __Pyx_PyObject_GetAttrStr(__pyx_v_field, __pyx_n_s_group); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 382, __pyx_L12_error)
__Pyx_GOTREF(__pyx_t_15);
__pyx_t_16 = NULL;
__pyx_t_4 = 0;
@@ -8774,7 +9057,7 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_14CompiledRouter_16_validat
PyObject *__pyx_callargs[2] = {__pyx_t_16, __pyx_n_u_argstr};
__pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_15, __pyx_callargs+1-__pyx_t_4, 1+__pyx_t_4);
__Pyx_XDECREF(__pyx_t_16); __pyx_t_16 = 0;
- if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 375, __pyx_L12_error)
+ if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 382, __pyx_L12_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
}
@@ -8796,13 +9079,13 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_14CompiledRouter_16_validat
__Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0;
__Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
- if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 374, __pyx_L12_error)
+ if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 381, __pyx_L12_error)
__Pyx_GOTREF(__pyx_t_7);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
}
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
- /* "falcon/routing/compiled.py":373
+ /* "falcon/routing/compiled.py":380
* msg = 'Unknown converter: "{0}"'.format(name)
* raise ValueError(msg)
* try: # <<<<<<<<<<<<<<
@@ -8822,7 +9105,7 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_14CompiledRouter_16_validat
__Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
- /* "falcon/routing/compiled.py":377
+ /* "falcon/routing/compiled.py":384
* self._converter_map[name], field.group('argstr')
* )
* except Exception as e: # <<<<<<<<<<<<<<
@@ -8832,7 +9115,7 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_14CompiledRouter_16_validat
__pyx_t_4 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0])));
if (__pyx_t_4) {
__Pyx_AddTraceback("falcon.routing.compiled.CompiledRouter._validate_template_segment", __pyx_clineno, __pyx_lineno, __pyx_filename);
- if (__Pyx_GetException(&__pyx_t_7, &__pyx_t_1, &__pyx_t_2) < 0) __PYX_ERR(0, 377, __pyx_L14_except_error)
+ if (__Pyx_GetException(&__pyx_t_7, &__pyx_t_1, &__pyx_t_2) < 0) __PYX_ERR(0, 384, __pyx_L14_except_error)
__Pyx_GOTREF(__pyx_t_7);
__Pyx_GOTREF(__pyx_t_1);
__Pyx_GOTREF(__pyx_t_2);
@@ -8840,14 +9123,14 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_14CompiledRouter_16_validat
__pyx_v_e = __pyx_t_1;
/*try:*/ {
- /* "falcon/routing/compiled.py":378
+ /* "falcon/routing/compiled.py":385
* )
* except Exception as e:
* msg = 'Cannot instantiate converter "{}"'.format(name) # <<<<<<<<<<<<<<
* raise ValueError(msg) from e
*
*/
- __pyx_t_15 = __Pyx_PyObject_GetAttrStr(__pyx_kp_u_Cannot_instantiate_converter, __pyx_n_s_format); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 378, __pyx_L25_error)
+ __pyx_t_15 = __Pyx_PyObject_GetAttrStr(__pyx_kp_u_Cannot_instantiate_converter, __pyx_n_s_format); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 385, __pyx_L25_error)
__Pyx_GOTREF(__pyx_t_15);
__pyx_t_16 = NULL;
__pyx_t_4 = 0;
@@ -8865,28 +9148,28 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_14CompiledRouter_16_validat
PyObject *__pyx_callargs[2] = {__pyx_t_16, __pyx_v_name};
__pyx_t_14 = __Pyx_PyObject_FastCall(__pyx_t_15, __pyx_callargs+1-__pyx_t_4, 1+__pyx_t_4);
__Pyx_XDECREF(__pyx_t_16); __pyx_t_16 = 0;
- if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 378, __pyx_L25_error)
+ if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 385, __pyx_L25_error)
__Pyx_GOTREF(__pyx_t_14);
__Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
}
__pyx_v_msg = __pyx_t_14;
__pyx_t_14 = 0;
- /* "falcon/routing/compiled.py":379
+ /* "falcon/routing/compiled.py":386
* except Exception as e:
* msg = 'Cannot instantiate converter "{}"'.format(name)
* raise ValueError(msg) from e # <<<<<<<<<<<<<<
*
* def _generate_ast(
*/
- __pyx_t_14 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_v_msg); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 379, __pyx_L25_error)
+ __pyx_t_14 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_v_msg); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 386, __pyx_L25_error)
__Pyx_GOTREF(__pyx_t_14);
__Pyx_Raise(__pyx_t_14, 0, 0, __pyx_v_e);
__Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
- __PYX_ERR(0, 379, __pyx_L25_error)
+ __PYX_ERR(0, 386, __pyx_L25_error)
}
- /* "falcon/routing/compiled.py":377
+ /* "falcon/routing/compiled.py":384
* self._converter_map[name], field.group('argstr')
* )
* except Exception as e: # <<<<<<<<<<<<<<
@@ -8933,7 +9216,7 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_14CompiledRouter_16_validat
goto __pyx_L14_except_error;
__pyx_L14_except_error:;
- /* "falcon/routing/compiled.py":373
+ /* "falcon/routing/compiled.py":380
* msg = 'Unknown converter: "{0}"'.format(name)
* raise ValueError(msg)
* try: # <<<<<<<<<<<<<<
@@ -8948,7 +9231,7 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_14CompiledRouter_16_validat
__pyx_L19_try_end:;
}
- /* "falcon/routing/compiled.py":369
+ /* "falcon/routing/compiled.py":376
*
* name = field.group('cname')
* if name: # <<<<<<<<<<<<<<
@@ -8957,7 +9240,7 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_14CompiledRouter_16_validat
*/
}
- /* "falcon/routing/compiled.py":343
+ /* "falcon/routing/compiled.py":350
* """
*
* for field in _FIELD_PATTERN.finditer(segment): # <<<<<<<<<<<<<<
@@ -8967,10 +9250,10 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_14CompiledRouter_16_validat
}
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
- /* "falcon/routing/compiled.py":328
+ /* "falcon/routing/compiled.py":335
* raise TypeError(msg)
*
- * def _validate_template_segment(self, segment, used_names): # <<<<<<<<<<<<<<
+ * def _validate_template_segment(self, segment: str, used_names: 'Set[str]'): # <<<<<<<<<<<<<<
* """Validate a single path segment of a URI template.
*
*/
@@ -9000,12 +9283,12 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_14CompiledRouter_16_validat
return __pyx_r;
}
-/* "falcon/routing/compiled.py":381
+/* "falcon/routing/compiled.py":388
* raise ValueError(msg) from e
*
* def _generate_ast( # <<<<<<<<<<<<<<
* self,
- * nodes: list,
+ * nodes: 'List[CompiledRouterNode]',
*/
/* Python wrapper */
@@ -9052,10 +9335,10 @@ PyObject *__pyx_args, PyObject *__pyx_kwds
PyObject* values[8] = {0,0,0,0,0,0,0,0};
values[6] = ((PyObject *)((PyObject *)__pyx_int_0));
- /* "falcon/routing/compiled.py":389
- * params_stack: list,
- * level=0,
- * fast_return=True, # <<<<<<<<<<<<<<
+ /* "falcon/routing/compiled.py":396
+ * params_stack: 'List[_CxElement]',
+ * level: int = 0,
+ * fast_return: bool = True, # <<<<<<<<<<<<<<
* ):
* """Generate a coarse AST for the router."""
*/
@@ -9086,61 +9369,61 @@ PyObject *__pyx_args, PyObject *__pyx_kwds
switch (__pyx_nargs) {
case 0:
if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_self)) != 0)) kw_args--;
- else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 381, __pyx_L3_error)
+ else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 388, __pyx_L3_error)
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_nodes)) != 0)) kw_args--;
- else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 381, __pyx_L3_error)
+ else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 388, __pyx_L3_error)
else {
- __Pyx_RaiseArgtupleInvalid("_generate_ast", 0, 6, 8, 1); __PYX_ERR(0, 381, __pyx_L3_error)
+ __Pyx_RaiseArgtupleInvalid("_generate_ast", 0, 6, 8, 1); __PYX_ERR(0, 388, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 2:
if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_parent)) != 0)) kw_args--;
- else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 381, __pyx_L3_error)
+ else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 388, __pyx_L3_error)
else {
- __Pyx_RaiseArgtupleInvalid("_generate_ast", 0, 6, 8, 2); __PYX_ERR(0, 381, __pyx_L3_error)
+ __Pyx_RaiseArgtupleInvalid("_generate_ast", 0, 6, 8, 2); __PYX_ERR(0, 388, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 3:
if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_return_values_2)) != 0)) kw_args--;
- else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 381, __pyx_L3_error)
+ else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 388, __pyx_L3_error)
else {
- __Pyx_RaiseArgtupleInvalid("_generate_ast", 0, 6, 8, 3); __PYX_ERR(0, 381, __pyx_L3_error)
+ __Pyx_RaiseArgtupleInvalid("_generate_ast", 0, 6, 8, 3); __PYX_ERR(0, 388, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 4:
if (likely((values[4] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_patterns_2)) != 0)) kw_args--;
- else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 381, __pyx_L3_error)
+ else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 388, __pyx_L3_error)
else {
- __Pyx_RaiseArgtupleInvalid("_generate_ast", 0, 6, 8, 4); __PYX_ERR(0, 381, __pyx_L3_error)
+ __Pyx_RaiseArgtupleInvalid("_generate_ast", 0, 6, 8, 4); __PYX_ERR(0, 388, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 5:
if (likely((values[5] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_params_stack)) != 0)) kw_args--;
- else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 381, __pyx_L3_error)
+ else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 388, __pyx_L3_error)
else {
- __Pyx_RaiseArgtupleInvalid("_generate_ast", 0, 6, 8, 5); __PYX_ERR(0, 381, __pyx_L3_error)
+ __Pyx_RaiseArgtupleInvalid("_generate_ast", 0, 6, 8, 5); __PYX_ERR(0, 388, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 6:
if (kw_args > 0) {
PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_level);
if (value) { values[6] = value; kw_args--; }
- else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 381, __pyx_L3_error)
+ else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 388, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 7:
if (kw_args > 0) {
PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fast_return);
if (value) { values[7] = value; kw_args--; }
- else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 381, __pyx_L3_error)
+ else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 388, __pyx_L3_error)
}
}
if (unlikely(kw_args > 0)) {
const Py_ssize_t kwd_pos_args = __pyx_nargs;
- if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_generate_ast") < 0)) __PYX_ERR(0, 381, __pyx_L3_error)
+ if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_generate_ast") < 0)) __PYX_ERR(0, 388, __pyx_L3_error)
}
} else {
switch (__pyx_nargs) {
@@ -9159,46 +9442,38 @@ PyObject *__pyx_args, PyObject *__pyx_kwds
}
}
__pyx_v_self = values[0];
- __pyx_v_nodes = ((PyObject*)values[1]);
+ __pyx_v_nodes = values[1];
__pyx_v_parent = values[2];
- __pyx_v_return_values = ((PyObject*)values[3]);
- __pyx_v_patterns = ((PyObject*)values[4]);
- __pyx_v_params_stack = ((PyObject*)values[5]);
+ __pyx_v_return_values = values[3];
+ __pyx_v_patterns = values[4];
+ __pyx_v_params_stack = values[5];
__pyx_v_level = values[6];
__pyx_v_fast_return = values[7];
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
- __Pyx_RaiseArgtupleInvalid("_generate_ast", 0, 6, 8, __pyx_nargs); __PYX_ERR(0, 381, __pyx_L3_error)
+ __Pyx_RaiseArgtupleInvalid("_generate_ast", 0, 6, 8, __pyx_nargs); __PYX_ERR(0, 388, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("falcon.routing.compiled.CompiledRouter._generate_ast", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
- if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_nodes), (&PyList_Type), 1, "nodes", 1))) __PYX_ERR(0, 383, __pyx_L1_error)
- if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_return_values), (&PyList_Type), 1, "return_values", 1))) __PYX_ERR(0, 385, __pyx_L1_error)
- if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_patterns), (&PyList_Type), 1, "patterns", 1))) __PYX_ERR(0, 386, __pyx_L1_error)
- if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_params_stack), (&PyList_Type), 1, "params_stack", 1))) __PYX_ERR(0, 387, __pyx_L1_error)
__pyx_r = __pyx_pf_6falcon_7routing_8compiled_14CompiledRouter_18_generate_ast(__pyx_self, __pyx_v_self, __pyx_v_nodes, __pyx_v_parent, __pyx_v_return_values, __pyx_v_patterns, __pyx_v_params_stack, __pyx_v_level, __pyx_v_fast_return);
- /* "falcon/routing/compiled.py":381
+ /* "falcon/routing/compiled.py":388
* raise ValueError(msg) from e
*
* def _generate_ast( # <<<<<<<<<<<<<<
* self,
- * nodes: list,
+ * nodes: 'List[CompiledRouterNode]',
*/
/* function exit code */
- goto __pyx_L0;
- __pyx_L1_error:;
- __pyx_r = NULL;
- __pyx_L0:;
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
-/* "falcon/routing/compiled.py":411
+/* "falcon/routing/compiled.py":418
* # so that none of them get masked.
* nodes = sorted(
* nodes, key=lambda node: node.is_var + (node.is_var and not node.is_complex) # <<<<<<<<<<<<<<
@@ -9252,12 +9527,12 @@ PyObject *__pyx_args, PyObject *__pyx_kwds
switch (__pyx_nargs) {
case 0:
if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_node)) != 0)) kw_args--;
- else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 411, __pyx_L3_error)
+ else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 418, __pyx_L3_error)
else goto __pyx_L5_argtuple_error;
}
if (unlikely(kw_args > 0)) {
const Py_ssize_t kwd_pos_args = __pyx_nargs;
- if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "lambda") < 0)) __PYX_ERR(0, 411, __pyx_L3_error)
+ if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "lambda") < 0)) __PYX_ERR(0, 418, __pyx_L3_error)
}
} else if (unlikely(__pyx_nargs != 1)) {
goto __pyx_L5_argtuple_error;
@@ -9268,7 +9543,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
- __Pyx_RaiseArgtupleInvalid("lambda", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 411, __pyx_L3_error)
+ __Pyx_RaiseArgtupleInvalid("lambda", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 418, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("falcon.routing.compiled.CompiledRouter._generate_ast.lambda", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
@@ -9294,11 +9569,11 @@ static PyObject *__pyx_lambda_funcdef_lambda(CYTHON_UNUSED PyObject *__pyx_self,
int __pyx_clineno = 0;
__Pyx_RefNannySetupContext("lambda", 0);
__Pyx_XDECREF(__pyx_r);
- __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_node, __pyx_n_s_is_var); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 411, __pyx_L1_error)
+ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_node, __pyx_n_s_is_var); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 418, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
- __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_node, __pyx_n_s_is_var); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 411, __pyx_L1_error)
+ __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_node, __pyx_n_s_is_var); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 418, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
- __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely((__pyx_t_4 < 0))) __PYX_ERR(0, 411, __pyx_L1_error)
+ __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely((__pyx_t_4 < 0))) __PYX_ERR(0, 418, __pyx_L1_error)
if (__pyx_t_4) {
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
} else {
@@ -9307,17 +9582,17 @@ static PyObject *__pyx_lambda_funcdef_lambda(CYTHON_UNUSED PyObject *__pyx_self,
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
goto __pyx_L3_bool_binop_done;
}
- __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_node, __pyx_n_s_is_complex); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 411, __pyx_L1_error)
+ __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_node, __pyx_n_s_is_complex); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 418, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
- __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely((__pyx_t_4 < 0))) __PYX_ERR(0, 411, __pyx_L1_error)
+ __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely((__pyx_t_4 < 0))) __PYX_ERR(0, 418, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__pyx_t_5 = (!__pyx_t_4);
- __pyx_t_3 = __Pyx_PyBool_FromLong(__pyx_t_5); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 411, __pyx_L1_error)
+ __pyx_t_3 = __Pyx_PyBool_FromLong(__pyx_t_5); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 418, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_2 = __pyx_t_3;
__pyx_t_3 = 0;
__pyx_L3_bool_binop_done:;
- __pyx_t_3 = PyNumber_Add(__pyx_t_1, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 411, __pyx_L1_error)
+ __pyx_t_3 = PyNumber_Add(__pyx_t_1, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 418, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
@@ -9338,12 +9613,12 @@ static PyObject *__pyx_lambda_funcdef_lambda(CYTHON_UNUSED PyObject *__pyx_self,
return __pyx_r;
}
-/* "falcon/routing/compiled.py":381
+/* "falcon/routing/compiled.py":388
* raise ValueError(msg) from e
*
* def _generate_ast( # <<<<<<<<<<<<<<
* self,
- * nodes: list,
+ * nodes: 'List[CompiledRouterNode]',
*/
static PyObject *__pyx_pf_6falcon_7routing_8compiled_14CompiledRouter_18_generate_ast(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_nodes, PyObject *__pyx_v_parent, PyObject *__pyx_v_return_values, PyObject *__pyx_v_patterns, PyObject *__pyx_v_params_stack, PyObject *__pyx_v_level, PyObject *__pyx_v_fast_return) {
@@ -9351,11 +9626,11 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_14CompiledRouter_18_generat
int __pyx_v_found_simple;
PyObject *__pyx_v_var_nodes = NULL;
PyObject *__pyx_v_found_var_nodes = NULL;
- PyObject *__pyx_v_construct = NULL;
- PyObject *__pyx_v_setter = NULL;
PyObject *__pyx_v_original_params_stack = NULL;
PyObject *__pyx_v_node = NULL;
Py_ssize_t __pyx_v_pattern_idx;
+ PyObject *__pyx_v_cx_segment = NULL;
+ PyObject *__pyx_v_cx_pattern = NULL;
PyObject *__pyx_v_field_name = NULL;
CYTHON_UNUSED PyObject *__pyx_v___ = NULL;
PyObject *__pyx_v_converter_name = NULL;
@@ -9363,8 +9638,11 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_14CompiledRouter_18_generat
PyObject *__pyx_v_converter_class = NULL;
PyObject *__pyx_v_converter_obj = NULL;
Py_ssize_t __pyx_v_converter_idx;
+ PyObject *__pyx_v_cx_converter = NULL;
PyObject *__pyx_v__found_nodes = NULL;
+ PyObject *__pyx_v_cx_literal = NULL;
Py_ssize_t __pyx_v_resource_idx;
+ PyObject *__pyx_v_cx_path_len = NULL;
PyObject *__pyx_v_params = NULL;
PyObject *__pyx_7genexpr__pyx_v_node = NULL;
PyObject *__pyx_8genexpr1__pyx_v__node = NULL;
@@ -9377,14 +9655,16 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_14CompiledRouter_18_generat
PyObject *__pyx_t_5 = NULL;
int __pyx_t_6;
Py_ssize_t __pyx_t_7;
- PyObject *__pyx_t_8 = NULL;
- Py_ssize_t __pyx_t_9;
- int __pyx_t_10;
- PyObject *__pyx_t_11 = NULL;
+ PyObject *(*__pyx_t_8)(PyObject *);
+ PyObject *__pyx_t_9 = NULL;
+ Py_ssize_t __pyx_t_10;
+ int __pyx_t_11;
PyObject *__pyx_t_12 = NULL;
- PyObject *(*__pyx_t_13)(PyObject *);
- int __pyx_t_14;
- PyObject *__pyx_t_15 = NULL;
+ PyObject *__pyx_t_13 = NULL;
+ PyObject *(*__pyx_t_14)(PyObject *);
+ PyObject *(*__pyx_t_15)(PyObject *);
+ int __pyx_t_16;
+ PyObject *__pyx_t_17 = NULL;
int __pyx_lineno = 0;
const char *__pyx_filename = NULL;
int __pyx_clineno = 0;
@@ -9394,18 +9674,18 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_14CompiledRouter_18_generat
__Pyx_INCREF(__pyx_v_params_stack);
__Pyx_INCREF(__pyx_v_fast_return);
- /* "falcon/routing/compiled.py":398
+ /* "falcon/routing/compiled.py":405
*
* # NOTE(kgriffs): Base case
* if not nodes: # <<<<<<<<<<<<<<
* return
*
*/
- __pyx_t_1 = (__pyx_v_nodes != Py_None)&&(PyList_GET_SIZE(__pyx_v_nodes) != 0);
+ __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_nodes); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 405, __pyx_L1_error)
__pyx_t_2 = ((!__pyx_t_1) != 0);
if (__pyx_t_2) {
- /* "falcon/routing/compiled.py":399
+ /* "falcon/routing/compiled.py":406
* # NOTE(kgriffs): Base case
* if not nodes:
* return # <<<<<<<<<<<<<<
@@ -9416,7 +9696,7 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_14CompiledRouter_18_generat
__pyx_r = Py_None; __Pyx_INCREF(Py_None);
goto __pyx_L0;
- /* "falcon/routing/compiled.py":398
+ /* "falcon/routing/compiled.py":405
*
* # NOTE(kgriffs): Base case
* if not nodes: # <<<<<<<<<<<<<<
@@ -9425,14 +9705,14 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_14CompiledRouter_18_generat
*/
}
- /* "falcon/routing/compiled.py":401
+ /* "falcon/routing/compiled.py":408
* return
*
* outer_parent = _CxIfPathLength('>', level) # <<<<<<<<<<<<<<
* parent.append_child(outer_parent)
* parent = outer_parent
*/
- __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_CxIfPathLength); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 401, __pyx_L1_error)
+ __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_CxIfPathLength); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 408, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__pyx_t_5 = NULL;
__pyx_t_6 = 0;
@@ -9447,24 +9727,24 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_14CompiledRouter_18_generat
}
}
{
- PyObject *__pyx_callargs[3] = {__pyx_t_5, __pyx_kp_u__10, __pyx_v_level};
+ PyObject *__pyx_callargs[3] = {__pyx_t_5, __pyx_kp_u__11, __pyx_v_level};
__pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_6, 2+__pyx_t_6);
__Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
- if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 401, __pyx_L1_error)
+ if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 408, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
}
__pyx_v_outer_parent = __pyx_t_3;
__pyx_t_3 = 0;
- /* "falcon/routing/compiled.py":402
+ /* "falcon/routing/compiled.py":409
*
* outer_parent = _CxIfPathLength('>', level)
* parent.append_child(outer_parent) # <<<<<<<<<<<<<<
* parent = outer_parent
*
*/
- __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_parent, __pyx_n_s_append_child); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 402, __pyx_L1_error)
+ __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_parent, __pyx_n_s_append_child); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 409, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__pyx_t_5 = NULL;
__pyx_t_6 = 0;
@@ -9482,13 +9762,13 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_14CompiledRouter_18_generat
PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_v_outer_parent};
__pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
__Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
- if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 402, __pyx_L1_error)
+ if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 409, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
}
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
- /* "falcon/routing/compiled.py":403
+ /* "falcon/routing/compiled.py":410
* outer_parent = _CxIfPathLength('>', level)
* parent.append_child(outer_parent)
* parent = outer_parent # <<<<<<<<<<<<<<
@@ -9498,7 +9778,7 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_14CompiledRouter_18_generat
__Pyx_INCREF(__pyx_v_outer_parent);
__Pyx_DECREF_SET(__pyx_v_parent, __pyx_v_outer_parent);
- /* "falcon/routing/compiled.py":405
+ /* "falcon/routing/compiled.py":412
* parent = outer_parent
*
* found_simple = False # <<<<<<<<<<<<<<
@@ -9507,74 +9787,69 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_14CompiledRouter_18_generat
*/
__pyx_v_found_simple = 0;
- /* "falcon/routing/compiled.py":410
+ /* "falcon/routing/compiled.py":417
* # static nodes(0), complex var nodes(1) and simple var nodes(2).
* # so that none of them get masked.
* nodes = sorted( # <<<<<<<<<<<<<<
* nodes, key=lambda node: node.is_var + (node.is_var and not node.is_complex)
* )
*/
- __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 410, __pyx_L1_error)
+ __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 417, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_INCREF(__pyx_v_nodes);
__Pyx_GIVEREF(__pyx_v_nodes);
PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_nodes);
- /* "falcon/routing/compiled.py":411
+ /* "falcon/routing/compiled.py":418
* # so that none of them get masked.
* nodes = sorted(
* nodes, key=lambda node: node.is_var + (node.is_var and not node.is_complex) # <<<<<<<<<<<<<<
* )
*
*/
- __pyx_t_4 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 411, __pyx_L1_error)
+ __pyx_t_4 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 418, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
- __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_6falcon_7routing_8compiled_14CompiledRouter_13_generate_ast_lambda, 0, __pyx_n_s_CompiledRouter__generate_ast_loc, NULL, __pyx_n_s_falcon_routing_compiled, __pyx_d, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 411, __pyx_L1_error)
+ __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_6falcon_7routing_8compiled_14CompiledRouter_13_generate_ast_lambda, 0, __pyx_n_s_CompiledRouter__generate_ast_loc, NULL, __pyx_n_s_falcon_routing_compiled, __pyx_d, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 418, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
- if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_key, __pyx_t_5) < 0) __PYX_ERR(0, 411, __pyx_L1_error)
+ if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_key, __pyx_t_5) < 0) __PYX_ERR(0, 418, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
- /* "falcon/routing/compiled.py":410
+ /* "falcon/routing/compiled.py":417
* # static nodes(0), complex var nodes(1) and simple var nodes(2).
* # so that none of them get masked.
* nodes = sorted( # <<<<<<<<<<<<<<
* nodes, key=lambda node: node.is_var + (node.is_var and not node.is_complex)
* )
*/
- __pyx_t_5 = __Pyx_PyObject_Call(__pyx_builtin_sorted, __pyx_t_3, __pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 410, __pyx_L1_error)
+ __pyx_t_5 = __Pyx_PyObject_Call(__pyx_builtin_sorted, __pyx_t_3, __pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 417, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
- if (!(likely(PyList_CheckExact(__pyx_t_5))||((__pyx_t_5) == Py_None) || __Pyx_RaiseUnexpectedTypeError("list", __pyx_t_5))) __PYX_ERR(0, 410, __pyx_L1_error)
- __Pyx_DECREF_SET(__pyx_v_nodes, ((PyObject*)__pyx_t_5));
+ __Pyx_DECREF_SET(__pyx_v_nodes, __pyx_t_5);
__pyx_t_5 = 0;
- /* "falcon/routing/compiled.py":417
+ /* "falcon/routing/compiled.py":424
* # fast 'return None'. See if the nodes at this branch are
* # all still simple, meaning there is only one possible path.
* if fast_return: # <<<<<<<<<<<<<<
* if len(nodes) > 1:
* # NOTE(kgriffs): There's the possibility of more than
*/
- __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_fast_return); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 417, __pyx_L1_error)
+ __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_fast_return); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 424, __pyx_L1_error)
if (__pyx_t_2) {
- /* "falcon/routing/compiled.py":418
+ /* "falcon/routing/compiled.py":425
* # all still simple, meaning there is only one possible path.
* if fast_return:
* if len(nodes) > 1: # <<<<<<<<<<<<<<
* # NOTE(kgriffs): There's the possibility of more than
* # one path.
*/
- if (unlikely(__pyx_v_nodes == Py_None)) {
- PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
- __PYX_ERR(0, 418, __pyx_L1_error)
- }
- __pyx_t_7 = PyList_GET_SIZE(__pyx_v_nodes); if (unlikely(__pyx_t_7 == ((Py_ssize_t)-1))) __PYX_ERR(0, 418, __pyx_L1_error)
+ __pyx_t_7 = PyObject_Length(__pyx_v_nodes); if (unlikely(__pyx_t_7 == ((Py_ssize_t)-1))) __PYX_ERR(0, 425, __pyx_L1_error)
__pyx_t_2 = ((__pyx_t_7 > 1) != 0);
if (__pyx_t_2) {
- /* "falcon/routing/compiled.py":421
+ /* "falcon/routing/compiled.py":428
* # NOTE(kgriffs): There's the possibility of more than
* # one path.
* var_nodes = [node for node in nodes if node.is_var] # <<<<<<<<<<<<<<
@@ -9582,29 +9857,55 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_14CompiledRouter_18_generat
*
*/
{ /* enter inner scope */
- __pyx_t_5 = PyList_New(0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 421, __pyx_L8_error)
+ __pyx_t_5 = PyList_New(0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 428, __pyx_L8_error)
__Pyx_GOTREF(__pyx_t_5);
- if (unlikely(__pyx_v_nodes == Py_None)) {
- PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
- __PYX_ERR(0, 421, __pyx_L8_error)
+ if (likely(PyList_CheckExact(__pyx_v_nodes)) || PyTuple_CheckExact(__pyx_v_nodes)) {
+ __pyx_t_4 = __pyx_v_nodes; __Pyx_INCREF(__pyx_t_4); __pyx_t_7 = 0;
+ __pyx_t_8 = NULL;
+ } else {
+ __pyx_t_7 = -1; __pyx_t_4 = PyObject_GetIter(__pyx_v_nodes); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 428, __pyx_L8_error)
+ __Pyx_GOTREF(__pyx_t_4);
+ __pyx_t_8 = __Pyx_PyObject_GetIterNextFunc(__pyx_t_4); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 428, __pyx_L8_error)
}
- __pyx_t_4 = __pyx_v_nodes; __Pyx_INCREF(__pyx_t_4); __pyx_t_7 = 0;
for (;;) {
- if (__pyx_t_7 >= PyList_GET_SIZE(__pyx_t_4)) break;
- #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
- __pyx_t_3 = PyList_GET_ITEM(__pyx_t_4, __pyx_t_7); __Pyx_INCREF(__pyx_t_3); __pyx_t_7++; if (unlikely((0 < 0))) __PYX_ERR(0, 421, __pyx_L8_error)
- #else
- __pyx_t_3 = PySequence_ITEM(__pyx_t_4, __pyx_t_7); __pyx_t_7++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 421, __pyx_L8_error)
- __Pyx_GOTREF(__pyx_t_3);
- #endif
+ if (likely(!__pyx_t_8)) {
+ if (likely(PyList_CheckExact(__pyx_t_4))) {
+ if (__pyx_t_7 >= PyList_GET_SIZE(__pyx_t_4)) break;
+ #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
+ __pyx_t_3 = PyList_GET_ITEM(__pyx_t_4, __pyx_t_7); __Pyx_INCREF(__pyx_t_3); __pyx_t_7++; if (unlikely((0 < 0))) __PYX_ERR(0, 428, __pyx_L8_error)
+ #else
+ __pyx_t_3 = PySequence_ITEM(__pyx_t_4, __pyx_t_7); __pyx_t_7++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 428, __pyx_L8_error)
+ __Pyx_GOTREF(__pyx_t_3);
+ #endif
+ } else {
+ if (__pyx_t_7 >= PyTuple_GET_SIZE(__pyx_t_4)) break;
+ #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
+ __pyx_t_3 = PyTuple_GET_ITEM(__pyx_t_4, __pyx_t_7); __Pyx_INCREF(__pyx_t_3); __pyx_t_7++; if (unlikely((0 < 0))) __PYX_ERR(0, 428, __pyx_L8_error)
+ #else
+ __pyx_t_3 = PySequence_ITEM(__pyx_t_4, __pyx_t_7); __pyx_t_7++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 428, __pyx_L8_error)
+ __Pyx_GOTREF(__pyx_t_3);
+ #endif
+ }
+ } else {
+ __pyx_t_3 = __pyx_t_8(__pyx_t_4);
+ if (unlikely(!__pyx_t_3)) {
+ PyObject* exc_type = PyErr_Occurred();
+ if (exc_type) {
+ if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
+ else __PYX_ERR(0, 428, __pyx_L8_error)
+ }
+ break;
+ }
+ __Pyx_GOTREF(__pyx_t_3);
+ }
__Pyx_XDECREF_SET(__pyx_7genexpr__pyx_v_node, __pyx_t_3);
__pyx_t_3 = 0;
- __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_7genexpr__pyx_v_node, __pyx_n_s_is_var); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 421, __pyx_L8_error)
+ __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_7genexpr__pyx_v_node, __pyx_n_s_is_var); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 428, __pyx_L8_error)
__Pyx_GOTREF(__pyx_t_3);
- __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 421, __pyx_L8_error)
+ __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 428, __pyx_L8_error)
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
if (__pyx_t_2) {
- if (unlikely(__Pyx_ListComp_Append(__pyx_t_5, (PyObject*)__pyx_7genexpr__pyx_v_node))) __PYX_ERR(0, 421, __pyx_L8_error)
+ if (unlikely(__Pyx_ListComp_Append(__pyx_t_5, (PyObject*)__pyx_7genexpr__pyx_v_node))) __PYX_ERR(0, 428, __pyx_L8_error)
}
}
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
@@ -9618,7 +9919,7 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_14CompiledRouter_18_generat
__pyx_v_var_nodes = ((PyObject*)__pyx_t_5);
__pyx_t_5 = 0;
- /* "falcon/routing/compiled.py":422
+ /* "falcon/routing/compiled.py":429
* # one path.
* var_nodes = [node for node in nodes if node.is_var]
* found_var_nodes = bool(var_nodes) # <<<<<<<<<<<<<<
@@ -9626,25 +9927,25 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_14CompiledRouter_18_generat
* fast_return = not found_var_nodes
*/
__pyx_t_2 = (PyList_GET_SIZE(__pyx_v_var_nodes) != 0);
- __pyx_t_5 = __Pyx_PyBool_FromLong((!(!__pyx_t_2))); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 422, __pyx_L1_error)
+ __pyx_t_5 = __Pyx_PyBool_FromLong((!(!__pyx_t_2))); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 429, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__pyx_v_found_var_nodes = __pyx_t_5;
__pyx_t_5 = 0;
- /* "falcon/routing/compiled.py":424
+ /* "falcon/routing/compiled.py":431
* found_var_nodes = bool(var_nodes)
*
* fast_return = not found_var_nodes # <<<<<<<<<<<<<<
*
- * construct = None # type: Any
+ * original_params_stack = params_stack.copy()
*/
- __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_found_var_nodes); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 424, __pyx_L1_error)
- __pyx_t_5 = __Pyx_PyBool_FromLong((!__pyx_t_2)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 424, __pyx_L1_error)
+ __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_found_var_nodes); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 431, __pyx_L1_error)
+ __pyx_t_5 = __Pyx_PyBool_FromLong((!__pyx_t_2)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 431, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__Pyx_DECREF_SET(__pyx_v_fast_return, __pyx_t_5);
__pyx_t_5 = 0;
- /* "falcon/routing/compiled.py":418
+ /* "falcon/routing/compiled.py":425
* # all still simple, meaning there is only one possible path.
* if fast_return:
* if len(nodes) > 1: # <<<<<<<<<<<<<<
@@ -9653,7 +9954,7 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_14CompiledRouter_18_generat
*/
}
- /* "falcon/routing/compiled.py":417
+ /* "falcon/routing/compiled.py":424
* # fast 'return None'. See if the nodes at this branch are
* # all still simple, meaning there is only one possible path.
* if fast_return: # <<<<<<<<<<<<<<
@@ -9662,349 +9963,388 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_14CompiledRouter_18_generat
*/
}
- /* "falcon/routing/compiled.py":426
+ /* "falcon/routing/compiled.py":433
* fast_return = not found_var_nodes
*
- * construct = None # type: Any # <<<<<<<<<<<<<<
- * setter = None # type: Any
- * original_params_stack = params_stack.copy()
- */
- __Pyx_INCREF(Py_None);
- __pyx_v_construct = Py_None;
-
- /* "falcon/routing/compiled.py":427
- *
- * construct = None # type: Any
- * setter = None # type: Any # <<<<<<<<<<<<<<
- * original_params_stack = params_stack.copy()
- * for node in nodes:
- */
- __Pyx_INCREF(Py_None);
- __pyx_v_setter = Py_None;
-
- /* "falcon/routing/compiled.py":428
- * construct = None # type: Any
- * setter = None # type: Any
* original_params_stack = params_stack.copy() # <<<<<<<<<<<<<<
* for node in nodes:
* params_stack = original_params_stack.copy()
*/
- __pyx_t_5 = __Pyx_CallUnboundCMethod0(&__pyx_umethod_PyList_Type_copy, __pyx_v_params_stack); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 428, __pyx_L1_error)
- __Pyx_GOTREF(__pyx_t_5);
+ __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_params_stack, __pyx_n_s_copy); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 433, __pyx_L1_error)
+ __Pyx_GOTREF(__pyx_t_4);
+ __pyx_t_3 = NULL;
+ __pyx_t_6 = 0;
+ if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) {
+ __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4);
+ if (likely(__pyx_t_3)) {
+ PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
+ __Pyx_INCREF(__pyx_t_3);
+ __Pyx_INCREF(function);
+ __Pyx_DECREF_SET(__pyx_t_4, function);
+ __pyx_t_6 = 1;
+ }
+ }
+ {
+ PyObject *__pyx_callargs[1] = {__pyx_t_3, };
+ __pyx_t_5 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_6, 0+__pyx_t_6);
+ __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
+ if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 433, __pyx_L1_error)
+ __Pyx_GOTREF(__pyx_t_5);
+ __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+ }
__pyx_v_original_params_stack = __pyx_t_5;
__pyx_t_5 = 0;
- /* "falcon/routing/compiled.py":429
- * setter = None # type: Any
+ /* "falcon/routing/compiled.py":434
+ *
* original_params_stack = params_stack.copy()
* for node in nodes: # <<<<<<<<<<<<<<
* params_stack = original_params_stack.copy()
* if node.is_var:
*/
- if (unlikely(__pyx_v_nodes == Py_None)) {
- PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
- __PYX_ERR(0, 429, __pyx_L1_error)
+ if (likely(PyList_CheckExact(__pyx_v_nodes)) || PyTuple_CheckExact(__pyx_v_nodes)) {
+ __pyx_t_5 = __pyx_v_nodes; __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_nodes); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 434, __pyx_L1_error)
+ __Pyx_GOTREF(__pyx_t_5);
+ __pyx_t_8 = __Pyx_PyObject_GetIterNextFunc(__pyx_t_5); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 434, __pyx_L1_error)
}
- __pyx_t_5 = __pyx_v_nodes; __Pyx_INCREF(__pyx_t_5); __pyx_t_7 = 0;
for (;;) {
- if (__pyx_t_7 >= PyList_GET_SIZE(__pyx_t_5)) break;
- #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
- __pyx_t_4 = PyList_GET_ITEM(__pyx_t_5, __pyx_t_7); __Pyx_INCREF(__pyx_t_4); __pyx_t_7++; if (unlikely((0 < 0))) __PYX_ERR(0, 429, __pyx_L1_error)
- #else
- __pyx_t_4 = PySequence_ITEM(__pyx_t_5, __pyx_t_7); __pyx_t_7++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 429, __pyx_L1_error)
- __Pyx_GOTREF(__pyx_t_4);
- #endif
+ if (likely(!__pyx_t_8)) {
+ if (likely(PyList_CheckExact(__pyx_t_5))) {
+ if (__pyx_t_7 >= PyList_GET_SIZE(__pyx_t_5)) break;
+ #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
+ __pyx_t_4 = PyList_GET_ITEM(__pyx_t_5, __pyx_t_7); __Pyx_INCREF(__pyx_t_4); __pyx_t_7++; if (unlikely((0 < 0))) __PYX_ERR(0, 434, __pyx_L1_error)
+ #else
+ __pyx_t_4 = PySequence_ITEM(__pyx_t_5, __pyx_t_7); __pyx_t_7++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 434, __pyx_L1_error)
+ __Pyx_GOTREF(__pyx_t_4);
+ #endif
+ } else {
+ if (__pyx_t_7 >= PyTuple_GET_SIZE(__pyx_t_5)) break;
+ #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
+ __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_5, __pyx_t_7); __Pyx_INCREF(__pyx_t_4); __pyx_t_7++; if (unlikely((0 < 0))) __PYX_ERR(0, 434, __pyx_L1_error)
+ #else
+ __pyx_t_4 = PySequence_ITEM(__pyx_t_5, __pyx_t_7); __pyx_t_7++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 434, __pyx_L1_error)
+ __Pyx_GOTREF(__pyx_t_4);
+ #endif
+ }
+ } else {
+ __pyx_t_4 = __pyx_t_8(__pyx_t_5);
+ if (unlikely(!__pyx_t_4)) {
+ PyObject* exc_type = PyErr_Occurred();
+ if (exc_type) {
+ if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
+ else __PYX_ERR(0, 434, __pyx_L1_error)
+ }
+ break;
+ }
+ __Pyx_GOTREF(__pyx_t_4);
+ }
__Pyx_XDECREF_SET(__pyx_v_node, __pyx_t_4);
__pyx_t_4 = 0;
- /* "falcon/routing/compiled.py":430
+ /* "falcon/routing/compiled.py":435
* original_params_stack = params_stack.copy()
* for node in nodes:
* params_stack = original_params_stack.copy() # <<<<<<<<<<<<<<
* if node.is_var:
* if node.is_complex:
*/
- __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_original_params_stack, __pyx_n_s_copy); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 430, __pyx_L1_error)
+ __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_original_params_stack, __pyx_n_s_copy); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 435, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
- __pyx_t_8 = NULL;
+ __pyx_t_9 = NULL;
__pyx_t_6 = 0;
if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) {
- __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_3);
- if (likely(__pyx_t_8)) {
+ __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_3);
+ if (likely(__pyx_t_9)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
- __Pyx_INCREF(__pyx_t_8);
+ __Pyx_INCREF(__pyx_t_9);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_3, function);
__pyx_t_6 = 1;
}
}
{
- PyObject *__pyx_callargs[1] = {__pyx_t_8, };
+ PyObject *__pyx_callargs[1] = {__pyx_t_9, };
__pyx_t_4 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_6, 0+__pyx_t_6);
- __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
- if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 430, __pyx_L1_error)
+ __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
+ if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 435, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
}
- if (!(likely(PyList_CheckExact(__pyx_t_4))||((__pyx_t_4) == Py_None) || __Pyx_RaiseUnexpectedTypeError("list", __pyx_t_4))) __PYX_ERR(0, 430, __pyx_L1_error)
- __Pyx_DECREF_SET(__pyx_v_params_stack, ((PyObject*)__pyx_t_4));
+ __Pyx_DECREF_SET(__pyx_v_params_stack, __pyx_t_4);
__pyx_t_4 = 0;
- /* "falcon/routing/compiled.py":431
+ /* "falcon/routing/compiled.py":436
* for node in nodes:
* params_stack = original_params_stack.copy()
* if node.is_var: # <<<<<<<<<<<<<<
* if node.is_complex:
* # NOTE(richardolsson): Complex nodes are nodes which
*/
- __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_node, __pyx_n_s_is_var); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 431, __pyx_L1_error)
+ __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_node, __pyx_n_s_is_var); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 436, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
- __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 431, __pyx_L1_error)
+ __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 436, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
if (__pyx_t_2) {
- /* "falcon/routing/compiled.py":432
+ /* "falcon/routing/compiled.py":437
* params_stack = original_params_stack.copy()
* if node.is_var:
* if node.is_complex: # <<<<<<<<<<<<<<
* # NOTE(richardolsson): Complex nodes are nodes which
* # contain anything more than a single literal or variable,
*/
- __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_node, __pyx_n_s_is_complex); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 432, __pyx_L1_error)
+ __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_node, __pyx_n_s_is_complex); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 437, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
- __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 432, __pyx_L1_error)
+ __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 437, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
if (__pyx_t_2) {
- /* "falcon/routing/compiled.py":437
+ /* "falcon/routing/compiled.py":442
* # and they need to be checked using a pre-compiled regular
* # expression.
- * pattern_idx = len(patterns) # <<<<<<<<<<<<<<
+ * assert node.var_pattern # <<<<<<<<<<<<<<
+ * pattern_idx = len(patterns)
* patterns.append(node.var_pattern)
- *
*/
- if (unlikely(__pyx_v_patterns == Py_None)) {
- PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
- __PYX_ERR(0, 437, __pyx_L1_error)
+ #ifndef CYTHON_WITHOUT_ASSERTIONS
+ if (unlikely(!Py_OptimizeFlag)) {
+ __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_node, __pyx_n_s_var_pattern); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 442, __pyx_L1_error)
+ __Pyx_GOTREF(__pyx_t_4);
+ __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 442, __pyx_L1_error)
+ __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+ if (unlikely(!__pyx_t_2)) {
+ __Pyx_Raise(__pyx_builtin_AssertionError, 0, 0, 0);
+ __PYX_ERR(0, 442, __pyx_L1_error)
+ }
}
- __pyx_t_9 = PyList_GET_SIZE(__pyx_v_patterns); if (unlikely(__pyx_t_9 == ((Py_ssize_t)-1))) __PYX_ERR(0, 437, __pyx_L1_error)
- __pyx_v_pattern_idx = __pyx_t_9;
+ #else
+ if ((1)); else __PYX_ERR(0, 442, __pyx_L1_error)
+ #endif
- /* "falcon/routing/compiled.py":438
+ /* "falcon/routing/compiled.py":443
* # expression.
+ * assert node.var_pattern
+ * pattern_idx = len(patterns) # <<<<<<<<<<<<<<
+ * patterns.append(node.var_pattern)
+ *
+ */
+ __pyx_t_10 = PyObject_Length(__pyx_v_patterns); if (unlikely(__pyx_t_10 == ((Py_ssize_t)-1))) __PYX_ERR(0, 443, __pyx_L1_error)
+ __pyx_v_pattern_idx = __pyx_t_10;
+
+ /* "falcon/routing/compiled.py":444
+ * assert node.var_pattern
* pattern_idx = len(patterns)
* patterns.append(node.var_pattern) # <<<<<<<<<<<<<<
*
- * construct = _CxIfPathSegmentPattern(
+ * cx_segment = _CxIfPathSegmentPattern(
*/
- if (unlikely(__pyx_v_patterns == Py_None)) {
- PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "append");
- __PYX_ERR(0, 438, __pyx_L1_error)
- }
- __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_node, __pyx_n_s_var_pattern); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 438, __pyx_L1_error)
+ __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_node, __pyx_n_s_var_pattern); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 444, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
- __pyx_t_10 = __Pyx_PyList_Append(__pyx_v_patterns, __pyx_t_4); if (unlikely(__pyx_t_10 == ((int)-1))) __PYX_ERR(0, 438, __pyx_L1_error)
+ __pyx_t_11 = __Pyx_PyObject_Append(__pyx_v_patterns, __pyx_t_4); if (unlikely(__pyx_t_11 == ((int)-1))) __PYX_ERR(0, 444, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
- /* "falcon/routing/compiled.py":440
+ /* "falcon/routing/compiled.py":446
* patterns.append(node.var_pattern)
*
- * construct = _CxIfPathSegmentPattern( # <<<<<<<<<<<<<<
+ * cx_segment = _CxIfPathSegmentPattern( # <<<<<<<<<<<<<<
* level, pattern_idx, node.var_pattern.pattern
* )
*/
- __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CxIfPathSegmentPattern); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 440, __pyx_L1_error)
+ __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CxIfPathSegmentPattern); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 446, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
- /* "falcon/routing/compiled.py":441
+ /* "falcon/routing/compiled.py":447
*
- * construct = _CxIfPathSegmentPattern(
+ * cx_segment = _CxIfPathSegmentPattern(
* level, pattern_idx, node.var_pattern.pattern # <<<<<<<<<<<<<<
* )
- * parent.append_child(construct)
+ * parent.append_child(cx_segment)
*/
- __pyx_t_8 = PyInt_FromSsize_t(__pyx_v_pattern_idx); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 441, __pyx_L1_error)
- __Pyx_GOTREF(__pyx_t_8);
- __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_node, __pyx_n_s_var_pattern); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 441, __pyx_L1_error)
- __Pyx_GOTREF(__pyx_t_11);
- __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_t_11, __pyx_n_s_pattern); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 441, __pyx_L1_error)
+ __pyx_t_9 = PyInt_FromSsize_t(__pyx_v_pattern_idx); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 447, __pyx_L1_error)
+ __Pyx_GOTREF(__pyx_t_9);
+ __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_v_node, __pyx_n_s_var_pattern); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 447, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_12);
- __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
- __pyx_t_11 = NULL;
+ __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_t_12, __pyx_n_s_pattern); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 447, __pyx_L1_error)
+ __Pyx_GOTREF(__pyx_t_13);
+ __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
+ __pyx_t_12 = NULL;
__pyx_t_6 = 0;
if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
- __pyx_t_11 = PyMethod_GET_SELF(__pyx_t_3);
- if (likely(__pyx_t_11)) {
+ __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_3);
+ if (likely(__pyx_t_12)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
- __Pyx_INCREF(__pyx_t_11);
+ __Pyx_INCREF(__pyx_t_12);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_3, function);
__pyx_t_6 = 1;
}
}
{
- PyObject *__pyx_callargs[4] = {__pyx_t_11, __pyx_v_level, __pyx_t_8, __pyx_t_12};
+ PyObject *__pyx_callargs[4] = {__pyx_t_12, __pyx_v_level, __pyx_t_9, __pyx_t_13};
__pyx_t_4 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_6, 3+__pyx_t_6);
- __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
- __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
- __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
- if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 440, __pyx_L1_error)
+ __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
+ __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
+ __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
+ if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 446, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
}
- __Pyx_DECREF_SET(__pyx_v_construct, __pyx_t_4);
+ __Pyx_XDECREF_SET(__pyx_v_cx_segment, __pyx_t_4);
__pyx_t_4 = 0;
- /* "falcon/routing/compiled.py":443
+ /* "falcon/routing/compiled.py":449
* level, pattern_idx, node.var_pattern.pattern
* )
- * parent.append_child(construct) # <<<<<<<<<<<<<<
- * parent = construct
+ * parent.append_child(cx_segment) # <<<<<<<<<<<<<<
+ * parent = cx_segment
*
*/
- __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_parent, __pyx_n_s_append_child); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 443, __pyx_L1_error)
+ __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_parent, __pyx_n_s_append_child); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 449, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
- __pyx_t_12 = NULL;
+ __pyx_t_13 = NULL;
__pyx_t_6 = 0;
if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) {
- __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_3);
- if (likely(__pyx_t_12)) {
+ __pyx_t_13 = PyMethod_GET_SELF(__pyx_t_3);
+ if (likely(__pyx_t_13)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
- __Pyx_INCREF(__pyx_t_12);
+ __Pyx_INCREF(__pyx_t_13);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_3, function);
__pyx_t_6 = 1;
}
}
{
- PyObject *__pyx_callargs[2] = {__pyx_t_12, __pyx_v_construct};
+ PyObject *__pyx_callargs[2] = {__pyx_t_13, __pyx_v_cx_segment};
__pyx_t_4 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
- __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
- if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 443, __pyx_L1_error)
+ __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
+ if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 449, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
}
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
- /* "falcon/routing/compiled.py":444
+ /* "falcon/routing/compiled.py":450
* )
- * parent.append_child(construct)
- * parent = construct # <<<<<<<<<<<<<<
+ * parent.append_child(cx_segment)
+ * parent = cx_segment # <<<<<<<<<<<<<<
*
* if node.var_converter_map:
*/
- __Pyx_INCREF(__pyx_v_construct);
- __Pyx_DECREF_SET(__pyx_v_parent, __pyx_v_construct);
+ __Pyx_INCREF(__pyx_v_cx_segment);
+ __Pyx_DECREF_SET(__pyx_v_parent, __pyx_v_cx_segment);
- /* "falcon/routing/compiled.py":446
- * parent = construct
+ /* "falcon/routing/compiled.py":452
+ * parent = cx_segment
*
* if node.var_converter_map: # <<<<<<<<<<<<<<
* parent.append_child(_CxPrefetchGroupsFromPatternMatch())
* parent = self._generate_conversion_ast(
*/
- __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_node, __pyx_n_s_var_converter_map); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 446, __pyx_L1_error)
+ __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_node, __pyx_n_s_var_converter_map); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 452, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
- __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 446, __pyx_L1_error)
+ __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 452, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
if (__pyx_t_2) {
- /* "falcon/routing/compiled.py":447
+ /* "falcon/routing/compiled.py":453
*
* if node.var_converter_map:
* parent.append_child(_CxPrefetchGroupsFromPatternMatch()) # <<<<<<<<<<<<<<
* parent = self._generate_conversion_ast(
* parent, node, params_stack
*/
- __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_parent, __pyx_n_s_append_child); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 447, __pyx_L1_error)
+ __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_parent, __pyx_n_s_append_child); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 453, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
- __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_CxPrefetchGroupsFromPatternMatc); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 447, __pyx_L1_error)
- __Pyx_GOTREF(__pyx_t_8);
- __pyx_t_11 = NULL;
+ __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_CxPrefetchGroupsFromPatternMatc); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 453, __pyx_L1_error)
+ __Pyx_GOTREF(__pyx_t_9);
+ __pyx_t_12 = NULL;
__pyx_t_6 = 0;
- if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_8))) {
- __pyx_t_11 = PyMethod_GET_SELF(__pyx_t_8);
- if (likely(__pyx_t_11)) {
- PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
- __Pyx_INCREF(__pyx_t_11);
+ if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_9))) {
+ __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_9);
+ if (likely(__pyx_t_12)) {
+ PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_9);
+ __Pyx_INCREF(__pyx_t_12);
__Pyx_INCREF(function);
- __Pyx_DECREF_SET(__pyx_t_8, function);
+ __Pyx_DECREF_SET(__pyx_t_9, function);
__pyx_t_6 = 1;
}
}
{
- PyObject *__pyx_callargs[1] = {__pyx_t_11, };
- __pyx_t_12 = __Pyx_PyObject_FastCall(__pyx_t_8, __pyx_callargs+1-__pyx_t_6, 0+__pyx_t_6);
- __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
- if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 447, __pyx_L1_error)
- __Pyx_GOTREF(__pyx_t_12);
- __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
+ PyObject *__pyx_callargs[1] = {__pyx_t_12, };
+ __pyx_t_13 = __Pyx_PyObject_FastCall(__pyx_t_9, __pyx_callargs+1-__pyx_t_6, 0+__pyx_t_6);
+ __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
+ if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 453, __pyx_L1_error)
+ __Pyx_GOTREF(__pyx_t_13);
+ __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
}
- __pyx_t_8 = NULL;
+ __pyx_t_9 = NULL;
__pyx_t_6 = 0;
if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) {
- __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_3);
- if (likely(__pyx_t_8)) {
+ __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_3);
+ if (likely(__pyx_t_9)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
- __Pyx_INCREF(__pyx_t_8);
+ __Pyx_INCREF(__pyx_t_9);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_3, function);
__pyx_t_6 = 1;
}
}
{
- PyObject *__pyx_callargs[2] = {__pyx_t_8, __pyx_t_12};
+ PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_13};
__pyx_t_4 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
- __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
- __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
- if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 447, __pyx_L1_error)
+ __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
+ __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
+ if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 453, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
}
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
- /* "falcon/routing/compiled.py":448
+ /* "falcon/routing/compiled.py":454
* if node.var_converter_map:
* parent.append_child(_CxPrefetchGroupsFromPatternMatch())
* parent = self._generate_conversion_ast( # <<<<<<<<<<<<<<
* parent, node, params_stack
* )
*/
- __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_generate_conversion_ast); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 448, __pyx_L1_error)
+ __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_generate_conversion_ast); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 454, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
- /* "falcon/routing/compiled.py":449
+ /* "falcon/routing/compiled.py":455
* parent.append_child(_CxPrefetchGroupsFromPatternMatch())
* parent = self._generate_conversion_ast(
* parent, node, params_stack # <<<<<<<<<<<<<<
* )
*
*/
- __pyx_t_12 = NULL;
+ __pyx_t_13 = NULL;
__pyx_t_6 = 0;
if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) {
- __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_3);
- if (likely(__pyx_t_12)) {
+ __pyx_t_13 = PyMethod_GET_SELF(__pyx_t_3);
+ if (likely(__pyx_t_13)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
- __Pyx_INCREF(__pyx_t_12);
+ __Pyx_INCREF(__pyx_t_13);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_3, function);
__pyx_t_6 = 1;
}
}
{
- PyObject *__pyx_callargs[4] = {__pyx_t_12, __pyx_v_parent, __pyx_v_node, __pyx_v_params_stack};
+ PyObject *__pyx_callargs[4] = {__pyx_t_13, __pyx_v_parent, __pyx_v_node, __pyx_v_params_stack};
__pyx_t_4 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_6, 3+__pyx_t_6);
- __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
- if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 448, __pyx_L1_error)
+ __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
+ if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 454, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
}
__Pyx_DECREF_SET(__pyx_v_parent, __pyx_t_4);
__pyx_t_4 = 0;
- /* "falcon/routing/compiled.py":446
- * parent = construct
+ /* "falcon/routing/compiled.py":452
+ * parent = cx_segment
*
* if node.var_converter_map: # <<<<<<<<<<<<<<
* parent.append_child(_CxPrefetchGroupsFromPatternMatch())
@@ -10013,121 +10353,112 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_14CompiledRouter_18_generat
goto __pyx_L17;
}
- /* "falcon/routing/compiled.py":453
+ /* "falcon/routing/compiled.py":459
*
* else:
- * construct = _CxVariableFromPatternMatch(len(params_stack) + 1) # <<<<<<<<<<<<<<
- * setter = _CxSetParamsFromDict(construct.dict_variable_name)
- * params_stack.append(setter)
+ * cx_pattern = _CxVariableFromPatternMatch(len(params_stack) + 1) # <<<<<<<<<<<<<<
+ * params_stack.append(
+ * _CxSetParamsFromDict(cx_pattern.dict_variable_name)
*/
/*else*/ {
- __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CxVariableFromPatternMatch); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 453, __pyx_L1_error)
+ __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CxVariableFromPatternMatch); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 459, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
- if (unlikely(__pyx_v_params_stack == Py_None)) {
- PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
- __PYX_ERR(0, 453, __pyx_L1_error)
- }
- __pyx_t_9 = PyList_GET_SIZE(__pyx_v_params_stack); if (unlikely(__pyx_t_9 == ((Py_ssize_t)-1))) __PYX_ERR(0, 453, __pyx_L1_error)
- __pyx_t_12 = PyInt_FromSsize_t((__pyx_t_9 + 1)); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 453, __pyx_L1_error)
- __Pyx_GOTREF(__pyx_t_12);
- __pyx_t_8 = NULL;
+ __pyx_t_10 = PyObject_Length(__pyx_v_params_stack); if (unlikely(__pyx_t_10 == ((Py_ssize_t)-1))) __PYX_ERR(0, 459, __pyx_L1_error)
+ __pyx_t_13 = PyInt_FromSsize_t((__pyx_t_10 + 1)); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 459, __pyx_L1_error)
+ __Pyx_GOTREF(__pyx_t_13);
+ __pyx_t_9 = NULL;
__pyx_t_6 = 0;
if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
- __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_3);
- if (likely(__pyx_t_8)) {
+ __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_3);
+ if (likely(__pyx_t_9)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
- __Pyx_INCREF(__pyx_t_8);
+ __Pyx_INCREF(__pyx_t_9);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_3, function);
__pyx_t_6 = 1;
}
}
{
- PyObject *__pyx_callargs[2] = {__pyx_t_8, __pyx_t_12};
+ PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_13};
__pyx_t_4 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
- __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
- __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
- if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 453, __pyx_L1_error)
+ __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
+ __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
+ if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 459, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
}
- __Pyx_DECREF_SET(__pyx_v_construct, __pyx_t_4);
+ __Pyx_XDECREF_SET(__pyx_v_cx_pattern, __pyx_t_4);
__pyx_t_4 = 0;
- /* "falcon/routing/compiled.py":454
- * else:
- * construct = _CxVariableFromPatternMatch(len(params_stack) + 1)
- * setter = _CxSetParamsFromDict(construct.dict_variable_name) # <<<<<<<<<<<<<<
- * params_stack.append(setter)
- * parent.append_child(construct)
+ /* "falcon/routing/compiled.py":461
+ * cx_pattern = _CxVariableFromPatternMatch(len(params_stack) + 1)
+ * params_stack.append(
+ * _CxSetParamsFromDict(cx_pattern.dict_variable_name) # <<<<<<<<<<<<<<
+ * )
+ * parent.append_child(cx_pattern)
*/
- __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CxSetParamsFromDict); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 454, __pyx_L1_error)
+ __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CxSetParamsFromDict); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 461, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
- __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_v_construct, __pyx_n_s_dict_variable_name); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 454, __pyx_L1_error)
- __Pyx_GOTREF(__pyx_t_12);
- __pyx_t_8 = NULL;
+ __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_v_cx_pattern, __pyx_n_s_dict_variable_name); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 461, __pyx_L1_error)
+ __Pyx_GOTREF(__pyx_t_13);
+ __pyx_t_9 = NULL;
__pyx_t_6 = 0;
if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
- __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_3);
- if (likely(__pyx_t_8)) {
+ __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_3);
+ if (likely(__pyx_t_9)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
- __Pyx_INCREF(__pyx_t_8);
+ __Pyx_INCREF(__pyx_t_9);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_3, function);
__pyx_t_6 = 1;
}
}
{
- PyObject *__pyx_callargs[2] = {__pyx_t_8, __pyx_t_12};
+ PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_13};
__pyx_t_4 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
- __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
- __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
- if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 454, __pyx_L1_error)
+ __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
+ __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
+ if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 461, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
}
- __Pyx_DECREF_SET(__pyx_v_setter, __pyx_t_4);
- __pyx_t_4 = 0;
- /* "falcon/routing/compiled.py":455
- * construct = _CxVariableFromPatternMatch(len(params_stack) + 1)
- * setter = _CxSetParamsFromDict(construct.dict_variable_name)
- * params_stack.append(setter) # <<<<<<<<<<<<<<
- * parent.append_child(construct)
- *
+ /* "falcon/routing/compiled.py":460
+ * else:
+ * cx_pattern = _CxVariableFromPatternMatch(len(params_stack) + 1)
+ * params_stack.append( # <<<<<<<<<<<<<<
+ * _CxSetParamsFromDict(cx_pattern.dict_variable_name)
+ * )
*/
- if (unlikely(__pyx_v_params_stack == Py_None)) {
- PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "append");
- __PYX_ERR(0, 455, __pyx_L1_error)
- }
- __pyx_t_10 = __Pyx_PyList_Append(__pyx_v_params_stack, __pyx_v_setter); if (unlikely(__pyx_t_10 == ((int)-1))) __PYX_ERR(0, 455, __pyx_L1_error)
+ __pyx_t_11 = __Pyx_PyObject_Append(__pyx_v_params_stack, __pyx_t_4); if (unlikely(__pyx_t_11 == ((int)-1))) __PYX_ERR(0, 460, __pyx_L1_error)
+ __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
- /* "falcon/routing/compiled.py":456
- * setter = _CxSetParamsFromDict(construct.dict_variable_name)
- * params_stack.append(setter)
- * parent.append_child(construct) # <<<<<<<<<<<<<<
+ /* "falcon/routing/compiled.py":463
+ * _CxSetParamsFromDict(cx_pattern.dict_variable_name)
+ * )
+ * parent.append_child(cx_pattern) # <<<<<<<<<<<<<<
*
* else:
*/
- __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_parent, __pyx_n_s_append_child); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 456, __pyx_L1_error)
+ __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_parent, __pyx_n_s_append_child); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 463, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
- __pyx_t_12 = NULL;
+ __pyx_t_13 = NULL;
__pyx_t_6 = 0;
if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) {
- __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_3);
- if (likely(__pyx_t_12)) {
+ __pyx_t_13 = PyMethod_GET_SELF(__pyx_t_3);
+ if (likely(__pyx_t_13)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
- __Pyx_INCREF(__pyx_t_12);
+ __Pyx_INCREF(__pyx_t_13);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_3, function);
__pyx_t_6 = 1;
}
}
{
- PyObject *__pyx_callargs[2] = {__pyx_t_12, __pyx_v_construct};
+ PyObject *__pyx_callargs[2] = {__pyx_t_13, __pyx_v_cx_pattern};
__pyx_t_4 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
- __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
- if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 456, __pyx_L1_error)
+ __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
+ if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 463, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
}
@@ -10135,7 +10466,7 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_14CompiledRouter_18_generat
}
__pyx_L17:;
- /* "falcon/routing/compiled.py":432
+ /* "falcon/routing/compiled.py":437
* params_stack = original_params_stack.copy()
* if node.is_var:
* if node.is_complex: # <<<<<<<<<<<<<<
@@ -10145,7 +10476,7 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_14CompiledRouter_18_generat
goto __pyx_L16;
}
- /* "falcon/routing/compiled.py":462
+ /* "falcon/routing/compiled.py":469
* # segment as the value for the param.
*
* if node.var_converter_map: # <<<<<<<<<<<<<<
@@ -10153,13 +10484,13 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_14CompiledRouter_18_generat
*
*/
/*else*/ {
- __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_node, __pyx_n_s_var_converter_map); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 462, __pyx_L1_error)
+ __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_node, __pyx_n_s_var_converter_map); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 469, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
- __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 462, __pyx_L1_error)
+ __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 469, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
if (__pyx_t_2) {
- /* "falcon/routing/compiled.py":463
+ /* "falcon/routing/compiled.py":470
*
* if node.var_converter_map:
* assert len(node.var_converter_map) == 1 # <<<<<<<<<<<<<<
@@ -10168,96 +10499,96 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_14CompiledRouter_18_generat
*/
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
- __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_node, __pyx_n_s_var_converter_map); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 463, __pyx_L1_error)
+ __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_node, __pyx_n_s_var_converter_map); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 470, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
- __pyx_t_9 = PyObject_Length(__pyx_t_4); if (unlikely(__pyx_t_9 == ((Py_ssize_t)-1))) __PYX_ERR(0, 463, __pyx_L1_error)
+ __pyx_t_10 = PyObject_Length(__pyx_t_4); if (unlikely(__pyx_t_10 == ((Py_ssize_t)-1))) __PYX_ERR(0, 470, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
- __pyx_t_2 = ((__pyx_t_9 == 1) != 0);
+ __pyx_t_2 = ((__pyx_t_10 == 1) != 0);
if (unlikely(!__pyx_t_2)) {
__Pyx_Raise(__pyx_builtin_AssertionError, 0, 0, 0);
- __PYX_ERR(0, 463, __pyx_L1_error)
+ __PYX_ERR(0, 470, __pyx_L1_error)
}
}
#else
- if ((1)); else __PYX_ERR(0, 463, __pyx_L1_error)
+ if ((1)); else __PYX_ERR(0, 470, __pyx_L1_error)
#endif
- /* "falcon/routing/compiled.py":465
+ /* "falcon/routing/compiled.py":472
* assert len(node.var_converter_map) == 1
*
* parent.append_child(_CxSetFragmentFromPath(level)) # <<<<<<<<<<<<<<
*
* field_name = node.var_name
*/
- __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_parent, __pyx_n_s_append_child); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 465, __pyx_L1_error)
+ __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_parent, __pyx_n_s_append_child); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 472, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
- __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_CxSetFragmentFromPath); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 465, __pyx_L1_error)
- __Pyx_GOTREF(__pyx_t_8);
- __pyx_t_11 = NULL;
+ __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_CxSetFragmentFromPath); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 472, __pyx_L1_error)
+ __Pyx_GOTREF(__pyx_t_9);
+ __pyx_t_12 = NULL;
__pyx_t_6 = 0;
- if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_8))) {
- __pyx_t_11 = PyMethod_GET_SELF(__pyx_t_8);
- if (likely(__pyx_t_11)) {
- PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
- __Pyx_INCREF(__pyx_t_11);
+ if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_9))) {
+ __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_9);
+ if (likely(__pyx_t_12)) {
+ PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_9);
+ __Pyx_INCREF(__pyx_t_12);
__Pyx_INCREF(function);
- __Pyx_DECREF_SET(__pyx_t_8, function);
+ __Pyx_DECREF_SET(__pyx_t_9, function);
__pyx_t_6 = 1;
}
}
{
- PyObject *__pyx_callargs[2] = {__pyx_t_11, __pyx_v_level};
- __pyx_t_12 = __Pyx_PyObject_FastCall(__pyx_t_8, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
- __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
- if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 465, __pyx_L1_error)
- __Pyx_GOTREF(__pyx_t_12);
- __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
+ PyObject *__pyx_callargs[2] = {__pyx_t_12, __pyx_v_level};
+ __pyx_t_13 = __Pyx_PyObject_FastCall(__pyx_t_9, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
+ __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
+ if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 472, __pyx_L1_error)
+ __Pyx_GOTREF(__pyx_t_13);
+ __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
}
- __pyx_t_8 = NULL;
+ __pyx_t_9 = NULL;
__pyx_t_6 = 0;
if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) {
- __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_3);
- if (likely(__pyx_t_8)) {
+ __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_3);
+ if (likely(__pyx_t_9)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
- __Pyx_INCREF(__pyx_t_8);
+ __Pyx_INCREF(__pyx_t_9);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_3, function);
__pyx_t_6 = 1;
}
}
{
- PyObject *__pyx_callargs[2] = {__pyx_t_8, __pyx_t_12};
+ PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_13};
__pyx_t_4 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
- __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
- __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
- if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 465, __pyx_L1_error)
+ __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
+ __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
+ if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 472, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
}
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
- /* "falcon/routing/compiled.py":467
+ /* "falcon/routing/compiled.py":474
* parent.append_child(_CxSetFragmentFromPath(level))
*
* field_name = node.var_name # <<<<<<<<<<<<<<
* __, converter_name, converter_argstr = node.var_converter_map[0]
* converter_class = self._converter_map[converter_name]
*/
- __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_node, __pyx_n_s_var_name); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 467, __pyx_L1_error)
+ __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_node, __pyx_n_s_var_name); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 474, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_XDECREF_SET(__pyx_v_field_name, __pyx_t_4);
__pyx_t_4 = 0;
- /* "falcon/routing/compiled.py":468
+ /* "falcon/routing/compiled.py":475
*
* field_name = node.var_name
* __, converter_name, converter_argstr = node.var_converter_map[0] # <<<<<<<<<<<<<<
* converter_class = self._converter_map[converter_name]
*
*/
- __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_node, __pyx_n_s_var_converter_map); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 468, __pyx_L1_error)
+ __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_node, __pyx_n_s_var_converter_map); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 475, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
- __pyx_t_3 = __Pyx_GetItemInt(__pyx_t_4, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 468, __pyx_L1_error)
+ __pyx_t_3 = __Pyx_GetItemInt(__pyx_t_4, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 475, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
if ((likely(PyTuple_CheckExact(__pyx_t_3))) || (PyList_CheckExact(__pyx_t_3))) {
@@ -10266,255 +10597,246 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_14CompiledRouter_18_generat
if (unlikely(size != 3)) {
if (size > 3) __Pyx_RaiseTooManyValuesError(3);
else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
- __PYX_ERR(0, 468, __pyx_L1_error)
+ __PYX_ERR(0, 475, __pyx_L1_error)
}
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
if (likely(PyTuple_CheckExact(sequence))) {
__pyx_t_4 = PyTuple_GET_ITEM(sequence, 0);
- __pyx_t_12 = PyTuple_GET_ITEM(sequence, 1);
- __pyx_t_8 = PyTuple_GET_ITEM(sequence, 2);
+ __pyx_t_13 = PyTuple_GET_ITEM(sequence, 1);
+ __pyx_t_9 = PyTuple_GET_ITEM(sequence, 2);
} else {
__pyx_t_4 = PyList_GET_ITEM(sequence, 0);
- __pyx_t_12 = PyList_GET_ITEM(sequence, 1);
- __pyx_t_8 = PyList_GET_ITEM(sequence, 2);
+ __pyx_t_13 = PyList_GET_ITEM(sequence, 1);
+ __pyx_t_9 = PyList_GET_ITEM(sequence, 2);
}
__Pyx_INCREF(__pyx_t_4);
- __Pyx_INCREF(__pyx_t_12);
- __Pyx_INCREF(__pyx_t_8);
+ __Pyx_INCREF(__pyx_t_13);
+ __Pyx_INCREF(__pyx_t_9);
#else
- __pyx_t_4 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 468, __pyx_L1_error)
+ __pyx_t_4 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 475, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
- __pyx_t_12 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 468, __pyx_L1_error)
- __Pyx_GOTREF(__pyx_t_12);
- __pyx_t_8 = PySequence_ITEM(sequence, 2); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 468, __pyx_L1_error)
- __Pyx_GOTREF(__pyx_t_8);
+ __pyx_t_13 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 475, __pyx_L1_error)
+ __Pyx_GOTREF(__pyx_t_13);
+ __pyx_t_9 = PySequence_ITEM(sequence, 2); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 475, __pyx_L1_error)
+ __Pyx_GOTREF(__pyx_t_9);
#endif
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
} else {
Py_ssize_t index = -1;
- __pyx_t_11 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 468, __pyx_L1_error)
- __Pyx_GOTREF(__pyx_t_11);
+ __pyx_t_12 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 475, __pyx_L1_error)
+ __Pyx_GOTREF(__pyx_t_12);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
- __pyx_t_13 = __Pyx_PyObject_GetIterNextFunc(__pyx_t_11);
- index = 0; __pyx_t_4 = __pyx_t_13(__pyx_t_11); if (unlikely(!__pyx_t_4)) goto __pyx_L19_unpacking_failed;
+ __pyx_t_14 = __Pyx_PyObject_GetIterNextFunc(__pyx_t_12);
+ index = 0; __pyx_t_4 = __pyx_t_14(__pyx_t_12); if (unlikely(!__pyx_t_4)) goto __pyx_L19_unpacking_failed;
__Pyx_GOTREF(__pyx_t_4);
- index = 1; __pyx_t_12 = __pyx_t_13(__pyx_t_11); if (unlikely(!__pyx_t_12)) goto __pyx_L19_unpacking_failed;
- __Pyx_GOTREF(__pyx_t_12);
- index = 2; __pyx_t_8 = __pyx_t_13(__pyx_t_11); if (unlikely(!__pyx_t_8)) goto __pyx_L19_unpacking_failed;
- __Pyx_GOTREF(__pyx_t_8);
- if (__Pyx_IternextUnpackEndCheck(__pyx_t_13(__pyx_t_11), 3) < 0) __PYX_ERR(0, 468, __pyx_L1_error)
- __pyx_t_13 = NULL;
- __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
+ index = 1; __pyx_t_13 = __pyx_t_14(__pyx_t_12); if (unlikely(!__pyx_t_13)) goto __pyx_L19_unpacking_failed;
+ __Pyx_GOTREF(__pyx_t_13);
+ index = 2; __pyx_t_9 = __pyx_t_14(__pyx_t_12); if (unlikely(!__pyx_t_9)) goto __pyx_L19_unpacking_failed;
+ __Pyx_GOTREF(__pyx_t_9);
+ if (__Pyx_IternextUnpackEndCheck(__pyx_t_14(__pyx_t_12), 3) < 0) __PYX_ERR(0, 475, __pyx_L1_error)
+ __pyx_t_14 = NULL;
+ __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
goto __pyx_L20_unpacking_done;
__pyx_L19_unpacking_failed:;
- __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
- __pyx_t_13 = NULL;
+ __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
+ __pyx_t_14 = NULL;
if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
- __PYX_ERR(0, 468, __pyx_L1_error)
+ __PYX_ERR(0, 475, __pyx_L1_error)
__pyx_L20_unpacking_done:;
}
__Pyx_XDECREF_SET(__pyx_v___, __pyx_t_4);
__pyx_t_4 = 0;
- __Pyx_XDECREF_SET(__pyx_v_converter_name, __pyx_t_12);
- __pyx_t_12 = 0;
- __Pyx_XDECREF_SET(__pyx_v_converter_argstr, __pyx_t_8);
- __pyx_t_8 = 0;
+ __Pyx_XDECREF_SET(__pyx_v_converter_name, __pyx_t_13);
+ __pyx_t_13 = 0;
+ __Pyx_XDECREF_SET(__pyx_v_converter_argstr, __pyx_t_9);
+ __pyx_t_9 = 0;
- /* "falcon/routing/compiled.py":469
+ /* "falcon/routing/compiled.py":476
* field_name = node.var_name
* __, converter_name, converter_argstr = node.var_converter_map[0]
* converter_class = self._converter_map[converter_name] # <<<<<<<<<<<<<<
*
* converter_obj = self._instantiate_converter(
*/
- __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_converter_map); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 469, __pyx_L1_error)
+ __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_converter_map); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 476, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
- __pyx_t_8 = __Pyx_PyObject_GetItem(__pyx_t_3, __pyx_v_converter_name); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 469, __pyx_L1_error)
- __Pyx_GOTREF(__pyx_t_8);
+ __pyx_t_9 = __Pyx_PyObject_GetItem(__pyx_t_3, __pyx_v_converter_name); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 476, __pyx_L1_error)
+ __Pyx_GOTREF(__pyx_t_9);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
- __Pyx_XDECREF_SET(__pyx_v_converter_class, __pyx_t_8);
- __pyx_t_8 = 0;
+ __Pyx_XDECREF_SET(__pyx_v_converter_class, __pyx_t_9);
+ __pyx_t_9 = 0;
- /* "falcon/routing/compiled.py":471
+ /* "falcon/routing/compiled.py":478
* converter_class = self._converter_map[converter_name]
*
* converter_obj = self._instantiate_converter( # <<<<<<<<<<<<<<
* converter_class, converter_argstr
* )
*/
- __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_instantiate_converter); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 471, __pyx_L1_error)
+ __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_instantiate_converter); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 478, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
- /* "falcon/routing/compiled.py":472
+ /* "falcon/routing/compiled.py":479
*
* converter_obj = self._instantiate_converter(
* converter_class, converter_argstr # <<<<<<<<<<<<<<
* )
* converter_idx = len(self._converters)
*/
- __pyx_t_12 = NULL;
+ __pyx_t_13 = NULL;
__pyx_t_6 = 0;
if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) {
- __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_3);
- if (likely(__pyx_t_12)) {
+ __pyx_t_13 = PyMethod_GET_SELF(__pyx_t_3);
+ if (likely(__pyx_t_13)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
- __Pyx_INCREF(__pyx_t_12);
+ __Pyx_INCREF(__pyx_t_13);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_3, function);
__pyx_t_6 = 1;
}
}
{
- PyObject *__pyx_callargs[3] = {__pyx_t_12, __pyx_v_converter_class, __pyx_v_converter_argstr};
- __pyx_t_8 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_6, 2+__pyx_t_6);
- __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
- if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 471, __pyx_L1_error)
- __Pyx_GOTREF(__pyx_t_8);
+ PyObject *__pyx_callargs[3] = {__pyx_t_13, __pyx_v_converter_class, __pyx_v_converter_argstr};
+ __pyx_t_9 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_6, 2+__pyx_t_6);
+ __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
+ if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 478, __pyx_L1_error)
+ __Pyx_GOTREF(__pyx_t_9);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
}
- __Pyx_XDECREF_SET(__pyx_v_converter_obj, __pyx_t_8);
- __pyx_t_8 = 0;
+ __Pyx_XDECREF_SET(__pyx_v_converter_obj, __pyx_t_9);
+ __pyx_t_9 = 0;
- /* "falcon/routing/compiled.py":474
+ /* "falcon/routing/compiled.py":481
* converter_class, converter_argstr
* )
* converter_idx = len(self._converters) # <<<<<<<<<<<<<<
* self._converters.append(converter_obj)
*
*/
- __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_converters); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 474, __pyx_L1_error)
- __Pyx_GOTREF(__pyx_t_8);
- __pyx_t_9 = PyObject_Length(__pyx_t_8); if (unlikely(__pyx_t_9 == ((Py_ssize_t)-1))) __PYX_ERR(0, 474, __pyx_L1_error)
- __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
- __pyx_v_converter_idx = __pyx_t_9;
+ __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_converters); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 481, __pyx_L1_error)
+ __Pyx_GOTREF(__pyx_t_9);
+ __pyx_t_10 = PyObject_Length(__pyx_t_9); if (unlikely(__pyx_t_10 == ((Py_ssize_t)-1))) __PYX_ERR(0, 481, __pyx_L1_error)
+ __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
+ __pyx_v_converter_idx = __pyx_t_10;
- /* "falcon/routing/compiled.py":475
+ /* "falcon/routing/compiled.py":482
* )
* converter_idx = len(self._converters)
* self._converters.append(converter_obj) # <<<<<<<<<<<<<<
*
- * construct = _CxIfConverterField(
+ * cx_converter = _CxIfConverterField(
*/
- __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_converters); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 475, __pyx_L1_error)
- __Pyx_GOTREF(__pyx_t_8);
- __pyx_t_10 = __Pyx_PyObject_Append(__pyx_t_8, __pyx_v_converter_obj); if (unlikely(__pyx_t_10 == ((int)-1))) __PYX_ERR(0, 475, __pyx_L1_error)
- __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
+ __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_converters); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 482, __pyx_L1_error)
+ __Pyx_GOTREF(__pyx_t_9);
+ __pyx_t_11 = __Pyx_PyObject_Append(__pyx_t_9, __pyx_v_converter_obj); if (unlikely(__pyx_t_11 == ((int)-1))) __PYX_ERR(0, 482, __pyx_L1_error)
+ __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
- /* "falcon/routing/compiled.py":477
+ /* "falcon/routing/compiled.py":484
* self._converters.append(converter_obj)
*
- * construct = _CxIfConverterField( # <<<<<<<<<<<<<<
+ * cx_converter = _CxIfConverterField( # <<<<<<<<<<<<<<
* len(params_stack) + 1, converter_idx
* )
*/
- __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CxIfConverterField); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 477, __pyx_L1_error)
+ __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CxIfConverterField); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 484, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
- /* "falcon/routing/compiled.py":478
+ /* "falcon/routing/compiled.py":485
*
- * construct = _CxIfConverterField(
+ * cx_converter = _CxIfConverterField(
* len(params_stack) + 1, converter_idx # <<<<<<<<<<<<<<
* )
- * setter = _CxSetParamFromValue(
+ * params_stack.append(
*/
- if (unlikely(__pyx_v_params_stack == Py_None)) {
- PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
- __PYX_ERR(0, 478, __pyx_L1_error)
- }
- __pyx_t_9 = PyList_GET_SIZE(__pyx_v_params_stack); if (unlikely(__pyx_t_9 == ((Py_ssize_t)-1))) __PYX_ERR(0, 478, __pyx_L1_error)
- __pyx_t_12 = PyInt_FromSsize_t((__pyx_t_9 + 1)); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 478, __pyx_L1_error)
- __Pyx_GOTREF(__pyx_t_12);
- __pyx_t_4 = PyInt_FromSsize_t(__pyx_v_converter_idx); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 478, __pyx_L1_error)
+ __pyx_t_10 = PyObject_Length(__pyx_v_params_stack); if (unlikely(__pyx_t_10 == ((Py_ssize_t)-1))) __PYX_ERR(0, 485, __pyx_L1_error)
+ __pyx_t_13 = PyInt_FromSsize_t((__pyx_t_10 + 1)); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 485, __pyx_L1_error)
+ __Pyx_GOTREF(__pyx_t_13);
+ __pyx_t_4 = PyInt_FromSsize_t(__pyx_v_converter_idx); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 485, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
- __pyx_t_11 = NULL;
+ __pyx_t_12 = NULL;
__pyx_t_6 = 0;
if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
- __pyx_t_11 = PyMethod_GET_SELF(__pyx_t_3);
- if (likely(__pyx_t_11)) {
+ __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_3);
+ if (likely(__pyx_t_12)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
- __Pyx_INCREF(__pyx_t_11);
+ __Pyx_INCREF(__pyx_t_12);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_3, function);
__pyx_t_6 = 1;
}
}
{
- PyObject *__pyx_callargs[3] = {__pyx_t_11, __pyx_t_12, __pyx_t_4};
- __pyx_t_8 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_6, 2+__pyx_t_6);
- __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
- __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
+ PyObject *__pyx_callargs[3] = {__pyx_t_12, __pyx_t_13, __pyx_t_4};
+ __pyx_t_9 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_6, 2+__pyx_t_6);
+ __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
+ __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
- if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 477, __pyx_L1_error)
- __Pyx_GOTREF(__pyx_t_8);
+ if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 484, __pyx_L1_error)
+ __Pyx_GOTREF(__pyx_t_9);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
}
- __Pyx_DECREF_SET(__pyx_v_construct, __pyx_t_8);
- __pyx_t_8 = 0;
+ __Pyx_XDECREF_SET(__pyx_v_cx_converter, __pyx_t_9);
+ __pyx_t_9 = 0;
- /* "falcon/routing/compiled.py":480
- * len(params_stack) + 1, converter_idx
- * )
- * setter = _CxSetParamFromValue( # <<<<<<<<<<<<<<
- * field_name, construct.field_variable_name
+ /* "falcon/routing/compiled.py":488
* )
+ * params_stack.append(
+ * _CxSetParamFromValue( # <<<<<<<<<<<<<<
+ * field_name, cx_converter.field_variable_name
+ * )
*/
- __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CxSetParamFromValue); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 480, __pyx_L1_error)
+ __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CxSetParamFromValue); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 488, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
- /* "falcon/routing/compiled.py":481
+ /* "falcon/routing/compiled.py":489
+ * params_stack.append(
+ * _CxSetParamFromValue(
+ * field_name, cx_converter.field_variable_name # <<<<<<<<<<<<<<
+ * )
* )
- * setter = _CxSetParamFromValue(
- * field_name, construct.field_variable_name # <<<<<<<<<<<<<<
- * )
- * params_stack.append(setter)
*/
- __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_construct, __pyx_n_s_field_variable_name); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 481, __pyx_L1_error)
+ __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_cx_converter, __pyx_n_s_field_variable_name); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 489, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
- __pyx_t_12 = NULL;
+ __pyx_t_13 = NULL;
__pyx_t_6 = 0;
if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
- __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_3);
- if (likely(__pyx_t_12)) {
+ __pyx_t_13 = PyMethod_GET_SELF(__pyx_t_3);
+ if (likely(__pyx_t_13)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
- __Pyx_INCREF(__pyx_t_12);
+ __Pyx_INCREF(__pyx_t_13);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_3, function);
__pyx_t_6 = 1;
}
}
{
- PyObject *__pyx_callargs[3] = {__pyx_t_12, __pyx_v_field_name, __pyx_t_4};
- __pyx_t_8 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_6, 2+__pyx_t_6);
- __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
+ PyObject *__pyx_callargs[3] = {__pyx_t_13, __pyx_v_field_name, __pyx_t_4};
+ __pyx_t_9 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_6, 2+__pyx_t_6);
+ __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
- if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 480, __pyx_L1_error)
- __Pyx_GOTREF(__pyx_t_8);
+ if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 488, __pyx_L1_error)
+ __Pyx_GOTREF(__pyx_t_9);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
}
- __Pyx_DECREF_SET(__pyx_v_setter, __pyx_t_8);
- __pyx_t_8 = 0;
- /* "falcon/routing/compiled.py":483
- * field_name, construct.field_variable_name
+ /* "falcon/routing/compiled.py":487
+ * len(params_stack) + 1, converter_idx
* )
- * params_stack.append(setter) # <<<<<<<<<<<<<<
- *
- * parent.append_child(construct)
+ * params_stack.append( # <<<<<<<<<<<<<<
+ * _CxSetParamFromValue(
+ * field_name, cx_converter.field_variable_name
*/
- if (unlikely(__pyx_v_params_stack == Py_None)) {
- PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "append");
- __PYX_ERR(0, 483, __pyx_L1_error)
- }
- __pyx_t_10 = __Pyx_PyList_Append(__pyx_v_params_stack, __pyx_v_setter); if (unlikely(__pyx_t_10 == ((int)-1))) __PYX_ERR(0, 483, __pyx_L1_error)
+ __pyx_t_11 = __Pyx_PyObject_Append(__pyx_v_params_stack, __pyx_t_9); if (unlikely(__pyx_t_11 == ((int)-1))) __PYX_ERR(0, 487, __pyx_L1_error)
+ __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
- /* "falcon/routing/compiled.py":485
- * params_stack.append(setter)
+ /* "falcon/routing/compiled.py":493
+ * )
*
- * parent.append_child(construct) # <<<<<<<<<<<<<<
- * parent = construct
+ * parent.append_child(cx_converter) # <<<<<<<<<<<<<<
+ * parent = cx_converter
* else:
*/
- __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_parent, __pyx_n_s_append_child); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 485, __pyx_L1_error)
+ __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_parent, __pyx_n_s_append_child); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 493, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_4 = NULL;
__pyx_t_6 = 0;
@@ -10529,26 +10851,26 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_14CompiledRouter_18_generat
}
}
{
- PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_v_construct};
- __pyx_t_8 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
+ PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_v_cx_converter};
+ __pyx_t_9 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
__Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
- if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 485, __pyx_L1_error)
- __Pyx_GOTREF(__pyx_t_8);
+ if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 493, __pyx_L1_error)
+ __Pyx_GOTREF(__pyx_t_9);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
}
- __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
+ __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
- /* "falcon/routing/compiled.py":486
+ /* "falcon/routing/compiled.py":494
*
- * parent.append_child(construct)
- * parent = construct # <<<<<<<<<<<<<<
+ * parent.append_child(cx_converter)
+ * parent = cx_converter # <<<<<<<<<<<<<<
* else:
* params_stack.append(_CxSetParamFromPath(node.var_name, level))
*/
- __Pyx_INCREF(__pyx_v_construct);
- __Pyx_DECREF_SET(__pyx_v_parent, __pyx_v_construct);
+ __Pyx_INCREF(__pyx_v_cx_converter);
+ __Pyx_DECREF_SET(__pyx_v_parent, __pyx_v_cx_converter);
- /* "falcon/routing/compiled.py":462
+ /* "falcon/routing/compiled.py":469
* # segment as the value for the param.
*
* if node.var_converter_map: # <<<<<<<<<<<<<<
@@ -10558,49 +10880,45 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_14CompiledRouter_18_generat
goto __pyx_L18;
}
- /* "falcon/routing/compiled.py":488
- * parent = construct
+ /* "falcon/routing/compiled.py":496
+ * parent = cx_converter
* else:
* params_stack.append(_CxSetParamFromPath(node.var_name, level)) # <<<<<<<<<<<<<<
*
* # NOTE(kgriffs): We don't allow multiple simple var nodes
*/
/*else*/ {
- if (unlikely(__pyx_v_params_stack == Py_None)) {
- PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "append");
- __PYX_ERR(0, 488, __pyx_L1_error)
- }
- __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CxSetParamFromPath); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 488, __pyx_L1_error)
+ __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CxSetParamFromPath); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 496, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
- __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_node, __pyx_n_s_var_name); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 488, __pyx_L1_error)
+ __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_node, __pyx_n_s_var_name); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 496, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
- __pyx_t_12 = NULL;
+ __pyx_t_13 = NULL;
__pyx_t_6 = 0;
if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
- __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_3);
- if (likely(__pyx_t_12)) {
+ __pyx_t_13 = PyMethod_GET_SELF(__pyx_t_3);
+ if (likely(__pyx_t_13)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
- __Pyx_INCREF(__pyx_t_12);
+ __Pyx_INCREF(__pyx_t_13);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_3, function);
__pyx_t_6 = 1;
}
}
{
- PyObject *__pyx_callargs[3] = {__pyx_t_12, __pyx_t_4, __pyx_v_level};
- __pyx_t_8 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_6, 2+__pyx_t_6);
- __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
+ PyObject *__pyx_callargs[3] = {__pyx_t_13, __pyx_t_4, __pyx_v_level};
+ __pyx_t_9 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_6, 2+__pyx_t_6);
+ __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
- if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 488, __pyx_L1_error)
- __Pyx_GOTREF(__pyx_t_8);
+ if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 496, __pyx_L1_error)
+ __Pyx_GOTREF(__pyx_t_9);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
}
- __pyx_t_10 = __Pyx_PyList_Append(__pyx_v_params_stack, __pyx_t_8); if (unlikely(__pyx_t_10 == ((int)-1))) __PYX_ERR(0, 488, __pyx_L1_error)
- __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
+ __pyx_t_11 = __Pyx_PyObject_Append(__pyx_v_params_stack, __pyx_t_9); if (unlikely(__pyx_t_11 == ((int)-1))) __PYX_ERR(0, 496, __pyx_L1_error)
+ __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
}
__pyx_L18:;
- /* "falcon/routing/compiled.py":496
+ /* "falcon/routing/compiled.py":504
* # /foo/{name}/bar
* #
* _found_nodes = [ # <<<<<<<<<<<<<<
@@ -10608,67 +10926,93 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_14CompiledRouter_18_generat
* for _node in nodes
*/
{ /* enter inner scope */
- __pyx_t_8 = PyList_New(0); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 496, __pyx_L23_error)
- __Pyx_GOTREF(__pyx_t_8);
+ __pyx_t_9 = PyList_New(0); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 504, __pyx_L23_error)
+ __Pyx_GOTREF(__pyx_t_9);
- /* "falcon/routing/compiled.py":498
+ /* "falcon/routing/compiled.py":506
* _found_nodes = [
* _node
* for _node in nodes # <<<<<<<<<<<<<<
* if _node.is_var and not _node.is_complex
* ]
*/
- if (unlikely(__pyx_v_nodes == Py_None)) {
- PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
- __PYX_ERR(0, 498, __pyx_L23_error)
+ if (likely(PyList_CheckExact(__pyx_v_nodes)) || PyTuple_CheckExact(__pyx_v_nodes)) {
+ __pyx_t_3 = __pyx_v_nodes; __Pyx_INCREF(__pyx_t_3); __pyx_t_10 = 0;
+ __pyx_t_15 = NULL;
+ } else {
+ __pyx_t_10 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_v_nodes); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 506, __pyx_L23_error)
+ __Pyx_GOTREF(__pyx_t_3);
+ __pyx_t_15 = __Pyx_PyObject_GetIterNextFunc(__pyx_t_3); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 506, __pyx_L23_error)
}
- __pyx_t_3 = __pyx_v_nodes; __Pyx_INCREF(__pyx_t_3); __pyx_t_9 = 0;
for (;;) {
- if (__pyx_t_9 >= PyList_GET_SIZE(__pyx_t_3)) break;
- #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
- __pyx_t_4 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_9); __Pyx_INCREF(__pyx_t_4); __pyx_t_9++; if (unlikely((0 < 0))) __PYX_ERR(0, 498, __pyx_L23_error)
- #else
- __pyx_t_4 = PySequence_ITEM(__pyx_t_3, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 498, __pyx_L23_error)
- __Pyx_GOTREF(__pyx_t_4);
- #endif
+ if (likely(!__pyx_t_15)) {
+ if (likely(PyList_CheckExact(__pyx_t_3))) {
+ if (__pyx_t_10 >= PyList_GET_SIZE(__pyx_t_3)) break;
+ #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
+ __pyx_t_4 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_10); __Pyx_INCREF(__pyx_t_4); __pyx_t_10++; if (unlikely((0 < 0))) __PYX_ERR(0, 506, __pyx_L23_error)
+ #else
+ __pyx_t_4 = PySequence_ITEM(__pyx_t_3, __pyx_t_10); __pyx_t_10++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 506, __pyx_L23_error)
+ __Pyx_GOTREF(__pyx_t_4);
+ #endif
+ } else {
+ if (__pyx_t_10 >= PyTuple_GET_SIZE(__pyx_t_3)) break;
+ #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
+ __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_10); __Pyx_INCREF(__pyx_t_4); __pyx_t_10++; if (unlikely((0 < 0))) __PYX_ERR(0, 506, __pyx_L23_error)
+ #else
+ __pyx_t_4 = PySequence_ITEM(__pyx_t_3, __pyx_t_10); __pyx_t_10++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 506, __pyx_L23_error)
+ __Pyx_GOTREF(__pyx_t_4);
+ #endif
+ }
+ } else {
+ __pyx_t_4 = __pyx_t_15(__pyx_t_3);
+ if (unlikely(!__pyx_t_4)) {
+ PyObject* exc_type = PyErr_Occurred();
+ if (exc_type) {
+ if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
+ else __PYX_ERR(0, 506, __pyx_L23_error)
+ }
+ break;
+ }
+ __Pyx_GOTREF(__pyx_t_4);
+ }
__Pyx_XDECREF_SET(__pyx_8genexpr1__pyx_v__node, __pyx_t_4);
__pyx_t_4 = 0;
- /* "falcon/routing/compiled.py":499
+ /* "falcon/routing/compiled.py":507
* _node
* for _node in nodes
* if _node.is_var and not _node.is_complex # <<<<<<<<<<<<<<
* ]
* assert len(_found_nodes) == 1
*/
- __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_8genexpr1__pyx_v__node, __pyx_n_s_is_var); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 499, __pyx_L23_error)
+ __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_8genexpr1__pyx_v__node, __pyx_n_s_is_var); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 507, __pyx_L23_error)
__Pyx_GOTREF(__pyx_t_4);
- __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 499, __pyx_L23_error)
+ __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 507, __pyx_L23_error)
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
if (__pyx_t_1) {
} else {
__pyx_t_2 = __pyx_t_1;
goto __pyx_L27_bool_binop_done;
}
- __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_8genexpr1__pyx_v__node, __pyx_n_s_is_complex); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 499, __pyx_L23_error)
+ __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_8genexpr1__pyx_v__node, __pyx_n_s_is_complex); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 507, __pyx_L23_error)
__Pyx_GOTREF(__pyx_t_4);
- __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 499, __pyx_L23_error)
+ __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 507, __pyx_L23_error)
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
- __pyx_t_14 = ((!__pyx_t_1) != 0);
- __pyx_t_2 = __pyx_t_14;
+ __pyx_t_16 = ((!__pyx_t_1) != 0);
+ __pyx_t_2 = __pyx_t_16;
__pyx_L27_bool_binop_done:;
if (__pyx_t_2) {
- /* "falcon/routing/compiled.py":497
+ /* "falcon/routing/compiled.py":505
* #
* _found_nodes = [
* _node # <<<<<<<<<<<<<<
* for _node in nodes
* if _node.is_var and not _node.is_complex
*/
- if (unlikely(__Pyx_ListComp_Append(__pyx_t_8, (PyObject*)__pyx_8genexpr1__pyx_v__node))) __PYX_ERR(0, 496, __pyx_L23_error)
+ if (unlikely(__Pyx_ListComp_Append(__pyx_t_9, (PyObject*)__pyx_8genexpr1__pyx_v__node))) __PYX_ERR(0, 504, __pyx_L23_error)
- /* "falcon/routing/compiled.py":499
+ /* "falcon/routing/compiled.py":507
* _node
* for _node in nodes
* if _node.is_var and not _node.is_complex # <<<<<<<<<<<<<<
@@ -10677,7 +11021,7 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_14CompiledRouter_18_generat
*/
}
- /* "falcon/routing/compiled.py":498
+ /* "falcon/routing/compiled.py":506
* _found_nodes = [
* _node
* for _node in nodes # <<<<<<<<<<<<<<
@@ -10693,10 +11037,10 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_14CompiledRouter_18_generat
goto __pyx_L1_error;
__pyx_L29_exit_scope:;
} /* exit inner scope */
- __Pyx_XDECREF_SET(__pyx_v__found_nodes, ((PyObject*)__pyx_t_8));
- __pyx_t_8 = 0;
+ __Pyx_XDECREF_SET(__pyx_v__found_nodes, ((PyObject*)__pyx_t_9));
+ __pyx_t_9 = 0;
- /* "falcon/routing/compiled.py":501
+ /* "falcon/routing/compiled.py":509
* if _node.is_var and not _node.is_complex
* ]
* assert len(_found_nodes) == 1 # <<<<<<<<<<<<<<
@@ -10705,18 +11049,18 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_14CompiledRouter_18_generat
*/
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
- __pyx_t_9 = PyList_GET_SIZE(__pyx_v__found_nodes); if (unlikely(__pyx_t_9 == ((Py_ssize_t)-1))) __PYX_ERR(0, 501, __pyx_L1_error)
- __pyx_t_2 = ((__pyx_t_9 == 1) != 0);
+ __pyx_t_10 = PyList_GET_SIZE(__pyx_v__found_nodes); if (unlikely(__pyx_t_10 == ((Py_ssize_t)-1))) __PYX_ERR(0, 509, __pyx_L1_error)
+ __pyx_t_2 = ((__pyx_t_10 == 1) != 0);
if (unlikely(!__pyx_t_2)) {
__Pyx_Raise(__pyx_builtin_AssertionError, 0, 0, 0);
- __PYX_ERR(0, 501, __pyx_L1_error)
+ __PYX_ERR(0, 509, __pyx_L1_error)
}
}
#else
- if ((1)); else __PYX_ERR(0, 501, __pyx_L1_error)
+ if ((1)); else __PYX_ERR(0, 509, __pyx_L1_error)
#endif
- /* "falcon/routing/compiled.py":502
+ /* "falcon/routing/compiled.py":510
* ]
* assert len(_found_nodes) == 1
* found_simple = True # <<<<<<<<<<<<<<
@@ -10727,7 +11071,7 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_14CompiledRouter_18_generat
}
__pyx_L16:;
- /* "falcon/routing/compiled.py":431
+ /* "falcon/routing/compiled.py":436
* for node in nodes:
* params_stack = original_params_stack.copy()
* if node.is_var: # <<<<<<<<<<<<<<
@@ -10737,50 +11081,50 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_14CompiledRouter_18_generat
goto __pyx_L15;
}
- /* "falcon/routing/compiled.py":506
+ /* "falcon/routing/compiled.py":514
* else:
* # NOTE(kgriffs): Not a param, so must match exactly
- * construct = _CxIfPathSegmentLiteral(level, node.raw_segment) # <<<<<<<<<<<<<<
- * parent.append_child(construct)
- * parent = construct
+ * cx_literal = _CxIfPathSegmentLiteral(level, node.raw_segment) # <<<<<<<<<<<<<<
+ * parent.append_child(cx_literal)
+ * parent = cx_literal
*/
/*else*/ {
- __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CxIfPathSegmentLiteral); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 506, __pyx_L1_error)
+ __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CxIfPathSegmentLiteral); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 514, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
- __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_node, __pyx_n_s_raw_segment); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 506, __pyx_L1_error)
+ __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_node, __pyx_n_s_raw_segment); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 514, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
- __pyx_t_12 = NULL;
+ __pyx_t_13 = NULL;
__pyx_t_6 = 0;
if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
- __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_3);
- if (likely(__pyx_t_12)) {
+ __pyx_t_13 = PyMethod_GET_SELF(__pyx_t_3);
+ if (likely(__pyx_t_13)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
- __Pyx_INCREF(__pyx_t_12);
+ __Pyx_INCREF(__pyx_t_13);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_3, function);
__pyx_t_6 = 1;
}
}
{
- PyObject *__pyx_callargs[3] = {__pyx_t_12, __pyx_v_level, __pyx_t_4};
- __pyx_t_8 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_6, 2+__pyx_t_6);
- __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
+ PyObject *__pyx_callargs[3] = {__pyx_t_13, __pyx_v_level, __pyx_t_4};
+ __pyx_t_9 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_6, 2+__pyx_t_6);
+ __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
- if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 506, __pyx_L1_error)
- __Pyx_GOTREF(__pyx_t_8);
+ if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 514, __pyx_L1_error)
+ __Pyx_GOTREF(__pyx_t_9);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
}
- __Pyx_DECREF_SET(__pyx_v_construct, __pyx_t_8);
- __pyx_t_8 = 0;
+ __Pyx_XDECREF_SET(__pyx_v_cx_literal, __pyx_t_9);
+ __pyx_t_9 = 0;
- /* "falcon/routing/compiled.py":507
+ /* "falcon/routing/compiled.py":515
* # NOTE(kgriffs): Not a param, so must match exactly
- * construct = _CxIfPathSegmentLiteral(level, node.raw_segment)
- * parent.append_child(construct) # <<<<<<<<<<<<<<
- * parent = construct
+ * cx_literal = _CxIfPathSegmentLiteral(level, node.raw_segment)
+ * parent.append_child(cx_literal) # <<<<<<<<<<<<<<
+ * parent = cx_literal
*
*/
- __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_parent, __pyx_n_s_append_child); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 507, __pyx_L1_error)
+ __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_parent, __pyx_n_s_append_child); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 515, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_4 = NULL;
__pyx_t_6 = 0;
@@ -10795,70 +11139,62 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_14CompiledRouter_18_generat
}
}
{
- PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_v_construct};
- __pyx_t_8 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
+ PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_v_cx_literal};
+ __pyx_t_9 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
__Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
- if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 507, __pyx_L1_error)
- __Pyx_GOTREF(__pyx_t_8);
+ if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 515, __pyx_L1_error)
+ __Pyx_GOTREF(__pyx_t_9);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
}
- __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
+ __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
- /* "falcon/routing/compiled.py":508
- * construct = _CxIfPathSegmentLiteral(level, node.raw_segment)
- * parent.append_child(construct)
- * parent = construct # <<<<<<<<<<<<<<
+ /* "falcon/routing/compiled.py":516
+ * cx_literal = _CxIfPathSegmentLiteral(level, node.raw_segment)
+ * parent.append_child(cx_literal)
+ * parent = cx_literal # <<<<<<<<<<<<<<
*
* if node.resource is not None:
*/
- __Pyx_INCREF(__pyx_v_construct);
- __Pyx_DECREF_SET(__pyx_v_parent, __pyx_v_construct);
+ __Pyx_INCREF(__pyx_v_cx_literal);
+ __Pyx_DECREF_SET(__pyx_v_parent, __pyx_v_cx_literal);
}
__pyx_L15:;
- /* "falcon/routing/compiled.py":510
- * parent = construct
+ /* "falcon/routing/compiled.py":518
+ * parent = cx_literal
*
* if node.resource is not None: # <<<<<<<<<<<<<<
* # NOTE(kgriffs): This is a valid route, so we will want to
* # return the relevant information.
*/
- __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_node, __pyx_n_s_resource); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 510, __pyx_L1_error)
- __Pyx_GOTREF(__pyx_t_8);
- __pyx_t_2 = (__pyx_t_8 != Py_None);
- __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
- __pyx_t_14 = (__pyx_t_2 != 0);
- if (__pyx_t_14) {
+ __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_node, __pyx_n_s_resource); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 518, __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;
+ __pyx_t_16 = (__pyx_t_2 != 0);
+ if (__pyx_t_16) {
- /* "falcon/routing/compiled.py":513
+ /* "falcon/routing/compiled.py":521
* # NOTE(kgriffs): This is a valid route, so we will want to
* # return the relevant information.
* resource_idx = len(return_values) # <<<<<<<<<<<<<<
* return_values.append(node)
*
*/
- if (unlikely(__pyx_v_return_values == Py_None)) {
- PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
- __PYX_ERR(0, 513, __pyx_L1_error)
- }
- __pyx_t_9 = PyList_GET_SIZE(__pyx_v_return_values); if (unlikely(__pyx_t_9 == ((Py_ssize_t)-1))) __PYX_ERR(0, 513, __pyx_L1_error)
- __pyx_v_resource_idx = __pyx_t_9;
+ __pyx_t_10 = PyObject_Length(__pyx_v_return_values); if (unlikely(__pyx_t_10 == ((Py_ssize_t)-1))) __PYX_ERR(0, 521, __pyx_L1_error)
+ __pyx_v_resource_idx = __pyx_t_10;
- /* "falcon/routing/compiled.py":514
+ /* "falcon/routing/compiled.py":522
* # return the relevant information.
* resource_idx = len(return_values)
* return_values.append(node) # <<<<<<<<<<<<<<
*
* self._generate_ast(
*/
- if (unlikely(__pyx_v_return_values == Py_None)) {
- PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "append");
- __PYX_ERR(0, 514, __pyx_L1_error)
- }
- __pyx_t_10 = __Pyx_PyList_Append(__pyx_v_return_values, __pyx_v_node); if (unlikely(__pyx_t_10 == ((int)-1))) __PYX_ERR(0, 514, __pyx_L1_error)
+ __pyx_t_11 = __Pyx_PyObject_Append(__pyx_v_return_values, __pyx_v_node); if (unlikely(__pyx_t_11 == ((int)-1))) __PYX_ERR(0, 522, __pyx_L1_error)
- /* "falcon/routing/compiled.py":510
- * parent = construct
+ /* "falcon/routing/compiled.py":518
+ * parent = cx_literal
*
* if node.resource is not None: # <<<<<<<<<<<<<<
* # NOTE(kgriffs): This is a valid route, so we will want to
@@ -10866,157 +11202,177 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_14CompiledRouter_18_generat
*/
}
- /* "falcon/routing/compiled.py":516
+ /* "falcon/routing/compiled.py":524
* return_values.append(node)
*
* self._generate_ast( # <<<<<<<<<<<<<<
* node.children,
* parent,
*/
- __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_generate_ast); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 516, __pyx_L1_error)
+ __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_generate_ast); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 524, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
- /* "falcon/routing/compiled.py":517
+ /* "falcon/routing/compiled.py":525
*
* self._generate_ast(
* node.children, # <<<<<<<<<<<<<<
* parent,
* return_values,
*/
- __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_node, __pyx_n_s_children); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 517, __pyx_L1_error)
+ __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_node, __pyx_n_s_children); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 525, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
- /* "falcon/routing/compiled.py":521
+ /* "falcon/routing/compiled.py":529
* return_values,
* patterns,
* params_stack.copy(), # <<<<<<<<<<<<<<
* level + 1,
* fast_return,
*/
- __pyx_t_12 = __Pyx_CallUnboundCMethod0(&__pyx_umethod_PyList_Type_copy, __pyx_v_params_stack); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 521, __pyx_L1_error)
+ __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_v_params_stack, __pyx_n_s_copy); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 529, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_12);
+ __pyx_t_17 = NULL;
+ __pyx_t_6 = 0;
+ if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_12))) {
+ __pyx_t_17 = PyMethod_GET_SELF(__pyx_t_12);
+ if (likely(__pyx_t_17)) {
+ PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_12);
+ __Pyx_INCREF(__pyx_t_17);
+ __Pyx_INCREF(function);
+ __Pyx_DECREF_SET(__pyx_t_12, function);
+ __pyx_t_6 = 1;
+ }
+ }
+ {
+ PyObject *__pyx_callargs[1] = {__pyx_t_17, };
+ __pyx_t_13 = __Pyx_PyObject_FastCall(__pyx_t_12, __pyx_callargs+1-__pyx_t_6, 0+__pyx_t_6);
+ __Pyx_XDECREF(__pyx_t_17); __pyx_t_17 = 0;
+ if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 529, __pyx_L1_error)
+ __Pyx_GOTREF(__pyx_t_13);
+ __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
+ }
- /* "falcon/routing/compiled.py":522
+ /* "falcon/routing/compiled.py":530
* patterns,
* params_stack.copy(),
* level + 1, # <<<<<<<<<<<<<<
* fast_return,
* )
*/
- __pyx_t_11 = __Pyx_PyInt_AddObjC(__pyx_v_level, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 522, __pyx_L1_error)
- __Pyx_GOTREF(__pyx_t_11);
+ __pyx_t_12 = __Pyx_PyInt_AddObjC(__pyx_v_level, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 530, __pyx_L1_error)
+ __Pyx_GOTREF(__pyx_t_12);
- /* "falcon/routing/compiled.py":523
+ /* "falcon/routing/compiled.py":531
* params_stack.copy(),
* level + 1,
* fast_return, # <<<<<<<<<<<<<<
* )
*
*/
- __pyx_t_15 = NULL;
+ __pyx_t_17 = NULL;
__pyx_t_6 = 0;
if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) {
- __pyx_t_15 = PyMethod_GET_SELF(__pyx_t_3);
- if (likely(__pyx_t_15)) {
+ __pyx_t_17 = PyMethod_GET_SELF(__pyx_t_3);
+ if (likely(__pyx_t_17)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
- __Pyx_INCREF(__pyx_t_15);
+ __Pyx_INCREF(__pyx_t_17);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_3, function);
__pyx_t_6 = 1;
}
}
{
- PyObject *__pyx_callargs[8] = {__pyx_t_15, __pyx_t_4, __pyx_v_parent, __pyx_v_return_values, __pyx_v_patterns, __pyx_t_12, __pyx_t_11, __pyx_v_fast_return};
- __pyx_t_8 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_6, 7+__pyx_t_6);
- __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0;
+ PyObject *__pyx_callargs[8] = {__pyx_t_17, __pyx_t_4, __pyx_v_parent, __pyx_v_return_values, __pyx_v_patterns, __pyx_t_13, __pyx_t_12, __pyx_v_fast_return};
+ __pyx_t_9 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_6, 7+__pyx_t_6);
+ __Pyx_XDECREF(__pyx_t_17); __pyx_t_17 = 0;
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+ __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
- __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
- if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 516, __pyx_L1_error)
- __Pyx_GOTREF(__pyx_t_8);
+ if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 524, __pyx_L1_error)
+ __Pyx_GOTREF(__pyx_t_9);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
}
- __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
+ __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
- /* "falcon/routing/compiled.py":526
+ /* "falcon/routing/compiled.py":534
* )
*
* if node.resource is None: # <<<<<<<<<<<<<<
* if fast_return:
* parent.append_child(_CxReturnNone())
*/
- __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_node, __pyx_n_s_resource); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 526, __pyx_L1_error)
- __Pyx_GOTREF(__pyx_t_8);
- __pyx_t_14 = (__pyx_t_8 == Py_None);
- __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
- __pyx_t_2 = (__pyx_t_14 != 0);
+ __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_node, __pyx_n_s_resource); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 534, __pyx_L1_error)
+ __Pyx_GOTREF(__pyx_t_9);
+ __pyx_t_16 = (__pyx_t_9 == Py_None);
+ __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
+ __pyx_t_2 = (__pyx_t_16 != 0);
if (__pyx_t_2) {
- /* "falcon/routing/compiled.py":527
+ /* "falcon/routing/compiled.py":535
*
* if node.resource is None:
* if fast_return: # <<<<<<<<<<<<<<
* parent.append_child(_CxReturnNone())
* else:
*/
- __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_fast_return); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 527, __pyx_L1_error)
+ __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_fast_return); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 535, __pyx_L1_error)
if (__pyx_t_2) {
- /* "falcon/routing/compiled.py":528
+ /* "falcon/routing/compiled.py":536
* if node.resource is None:
* if fast_return:
* parent.append_child(_CxReturnNone()) # <<<<<<<<<<<<<<
* else:
* # NOTE(kgriffs): Make sure that we have consumed all of
*/
- __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_parent, __pyx_n_s_append_child); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 528, __pyx_L1_error)
+ __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_parent, __pyx_n_s_append_child); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 536, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
- __Pyx_GetModuleGlobalName(__pyx_t_12, __pyx_n_s_CxReturnNone); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 528, __pyx_L1_error)
- __Pyx_GOTREF(__pyx_t_12);
+ __Pyx_GetModuleGlobalName(__pyx_t_13, __pyx_n_s_CxReturnNone); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 536, __pyx_L1_error)
+ __Pyx_GOTREF(__pyx_t_13);
__pyx_t_4 = NULL;
__pyx_t_6 = 0;
- if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_12))) {
- __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_12);
+ if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_13))) {
+ __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_13);
if (likely(__pyx_t_4)) {
- PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_12);
+ PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_13);
__Pyx_INCREF(__pyx_t_4);
__Pyx_INCREF(function);
- __Pyx_DECREF_SET(__pyx_t_12, function);
+ __Pyx_DECREF_SET(__pyx_t_13, function);
__pyx_t_6 = 1;
}
}
{
PyObject *__pyx_callargs[1] = {__pyx_t_4, };
- __pyx_t_11 = __Pyx_PyObject_FastCall(__pyx_t_12, __pyx_callargs+1-__pyx_t_6, 0+__pyx_t_6);
+ __pyx_t_12 = __Pyx_PyObject_FastCall(__pyx_t_13, __pyx_callargs+1-__pyx_t_6, 0+__pyx_t_6);
__Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
- if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 528, __pyx_L1_error)
- __Pyx_GOTREF(__pyx_t_11);
- __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
+ if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 536, __pyx_L1_error)
+ __Pyx_GOTREF(__pyx_t_12);
+ __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
}
- __pyx_t_12 = NULL;
+ __pyx_t_13 = NULL;
__pyx_t_6 = 0;
if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) {
- __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_3);
- if (likely(__pyx_t_12)) {
+ __pyx_t_13 = PyMethod_GET_SELF(__pyx_t_3);
+ if (likely(__pyx_t_13)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
- __Pyx_INCREF(__pyx_t_12);
+ __Pyx_INCREF(__pyx_t_13);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_3, function);
__pyx_t_6 = 1;
}
}
{
- PyObject *__pyx_callargs[2] = {__pyx_t_12, __pyx_t_11};
- __pyx_t_8 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
- __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
- __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
- if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 528, __pyx_L1_error)
- __Pyx_GOTREF(__pyx_t_8);
+ PyObject *__pyx_callargs[2] = {__pyx_t_13, __pyx_t_12};
+ __pyx_t_9 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
+ __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
+ __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
+ if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 536, __pyx_L1_error)
+ __Pyx_GOTREF(__pyx_t_9);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
}
- __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
+ __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
- /* "falcon/routing/compiled.py":527
+ /* "falcon/routing/compiled.py":535
*
* if node.resource is None:
* if fast_return: # <<<<<<<<<<<<<<
@@ -11025,7 +11381,7 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_14CompiledRouter_18_generat
*/
}
- /* "falcon/routing/compiled.py":526
+ /* "falcon/routing/compiled.py":534
* )
*
* if node.resource is None: # <<<<<<<<<<<<<<
@@ -11035,260 +11391,286 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_14CompiledRouter_18_generat
goto __pyx_L31;
}
- /* "falcon/routing/compiled.py":533
+ /* "falcon/routing/compiled.py":541
* # the segments for the requested route; otherwise we could
* # mistakenly match "/foo/23/bar" against "/foo/{id}".
- * construct = _CxIfPathLength('==', level + 1) # <<<<<<<<<<<<<<
+ * cx_path_len = _CxIfPathLength('==', level + 1) # <<<<<<<<<<<<<<
* for params in params_stack:
- * construct.append_child(params)
+ * cx_path_len.append_child(params)
*/
/*else*/ {
- __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CxIfPathLength); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 533, __pyx_L1_error)
+ __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CxIfPathLength); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 541, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
- __pyx_t_11 = __Pyx_PyInt_AddObjC(__pyx_v_level, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 533, __pyx_L1_error)
- __Pyx_GOTREF(__pyx_t_11);
- __pyx_t_12 = NULL;
+ __pyx_t_12 = __Pyx_PyInt_AddObjC(__pyx_v_level, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 541, __pyx_L1_error)
+ __Pyx_GOTREF(__pyx_t_12);
+ __pyx_t_13 = NULL;
__pyx_t_6 = 0;
if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
- __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_3);
- if (likely(__pyx_t_12)) {
+ __pyx_t_13 = PyMethod_GET_SELF(__pyx_t_3);
+ if (likely(__pyx_t_13)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
- __Pyx_INCREF(__pyx_t_12);
+ __Pyx_INCREF(__pyx_t_13);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_3, function);
__pyx_t_6 = 1;
}
}
{
- PyObject *__pyx_callargs[3] = {__pyx_t_12, __pyx_kp_u__11, __pyx_t_11};
- __pyx_t_8 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_6, 2+__pyx_t_6);
- __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
- __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
- if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 533, __pyx_L1_error)
- __Pyx_GOTREF(__pyx_t_8);
+ PyObject *__pyx_callargs[3] = {__pyx_t_13, __pyx_kp_u__12, __pyx_t_12};
+ __pyx_t_9 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_6, 2+__pyx_t_6);
+ __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
+ __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
+ if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 541, __pyx_L1_error)
+ __Pyx_GOTREF(__pyx_t_9);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
}
- __Pyx_DECREF_SET(__pyx_v_construct, __pyx_t_8);
- __pyx_t_8 = 0;
+ __Pyx_XDECREF_SET(__pyx_v_cx_path_len, __pyx_t_9);
+ __pyx_t_9 = 0;
- /* "falcon/routing/compiled.py":534
+ /* "falcon/routing/compiled.py":542
* # mistakenly match "/foo/23/bar" against "/foo/{id}".
- * construct = _CxIfPathLength('==', level + 1)
+ * cx_path_len = _CxIfPathLength('==', level + 1)
* for params in params_stack: # <<<<<<<<<<<<<<
- * construct.append_child(params)
- * construct.append_child(_CxReturnValue(resource_idx))
+ * cx_path_len.append_child(params)
+ * cx_path_len.append_child(_CxReturnValue(resource_idx))
*/
- if (unlikely(__pyx_v_params_stack == Py_None)) {
- PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
- __PYX_ERR(0, 534, __pyx_L1_error)
+ if (likely(PyList_CheckExact(__pyx_v_params_stack)) || PyTuple_CheckExact(__pyx_v_params_stack)) {
+ __pyx_t_9 = __pyx_v_params_stack; __Pyx_INCREF(__pyx_t_9); __pyx_t_10 = 0;
+ __pyx_t_15 = NULL;
+ } else {
+ __pyx_t_10 = -1; __pyx_t_9 = PyObject_GetIter(__pyx_v_params_stack); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 542, __pyx_L1_error)
+ __Pyx_GOTREF(__pyx_t_9);
+ __pyx_t_15 = __Pyx_PyObject_GetIterNextFunc(__pyx_t_9); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 542, __pyx_L1_error)
}
- __pyx_t_8 = __pyx_v_params_stack; __Pyx_INCREF(__pyx_t_8); __pyx_t_9 = 0;
for (;;) {
- if (__pyx_t_9 >= PyList_GET_SIZE(__pyx_t_8)) break;
- #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
- __pyx_t_3 = PyList_GET_ITEM(__pyx_t_8, __pyx_t_9); __Pyx_INCREF(__pyx_t_3); __pyx_t_9++; if (unlikely((0 < 0))) __PYX_ERR(0, 534, __pyx_L1_error)
- #else
- __pyx_t_3 = PySequence_ITEM(__pyx_t_8, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 534, __pyx_L1_error)
- __Pyx_GOTREF(__pyx_t_3);
- #endif
+ if (likely(!__pyx_t_15)) {
+ if (likely(PyList_CheckExact(__pyx_t_9))) {
+ if (__pyx_t_10 >= PyList_GET_SIZE(__pyx_t_9)) break;
+ #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
+ __pyx_t_3 = PyList_GET_ITEM(__pyx_t_9, __pyx_t_10); __Pyx_INCREF(__pyx_t_3); __pyx_t_10++; if (unlikely((0 < 0))) __PYX_ERR(0, 542, __pyx_L1_error)
+ #else
+ __pyx_t_3 = PySequence_ITEM(__pyx_t_9, __pyx_t_10); __pyx_t_10++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 542, __pyx_L1_error)
+ __Pyx_GOTREF(__pyx_t_3);
+ #endif
+ } else {
+ if (__pyx_t_10 >= PyTuple_GET_SIZE(__pyx_t_9)) break;
+ #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
+ __pyx_t_3 = PyTuple_GET_ITEM(__pyx_t_9, __pyx_t_10); __Pyx_INCREF(__pyx_t_3); __pyx_t_10++; if (unlikely((0 < 0))) __PYX_ERR(0, 542, __pyx_L1_error)
+ #else
+ __pyx_t_3 = PySequence_ITEM(__pyx_t_9, __pyx_t_10); __pyx_t_10++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 542, __pyx_L1_error)
+ __Pyx_GOTREF(__pyx_t_3);
+ #endif
+ }
+ } else {
+ __pyx_t_3 = __pyx_t_15(__pyx_t_9);
+ if (unlikely(!__pyx_t_3)) {
+ PyObject* exc_type = PyErr_Occurred();
+ if (exc_type) {
+ if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
+ else __PYX_ERR(0, 542, __pyx_L1_error)
+ }
+ break;
+ }
+ __Pyx_GOTREF(__pyx_t_3);
+ }
__Pyx_XDECREF_SET(__pyx_v_params, __pyx_t_3);
__pyx_t_3 = 0;
- /* "falcon/routing/compiled.py":535
- * construct = _CxIfPathLength('==', level + 1)
+ /* "falcon/routing/compiled.py":543
+ * cx_path_len = _CxIfPathLength('==', level + 1)
* for params in params_stack:
- * construct.append_child(params) # <<<<<<<<<<<<<<
- * construct.append_child(_CxReturnValue(resource_idx))
- * parent.append_child(construct)
+ * cx_path_len.append_child(params) # <<<<<<<<<<<<<<
+ * cx_path_len.append_child(_CxReturnValue(resource_idx))
+ * parent.append_child(cx_path_len)
*/
- __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_construct, __pyx_n_s_append_child); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 535, __pyx_L1_error)
- __Pyx_GOTREF(__pyx_t_11);
- __pyx_t_12 = NULL;
+ __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_v_cx_path_len, __pyx_n_s_append_child); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 543, __pyx_L1_error)
+ __Pyx_GOTREF(__pyx_t_12);
+ __pyx_t_13 = NULL;
__pyx_t_6 = 0;
- if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_11))) {
- __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_11);
- if (likely(__pyx_t_12)) {
- PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_11);
- __Pyx_INCREF(__pyx_t_12);
+ if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_12))) {
+ __pyx_t_13 = PyMethod_GET_SELF(__pyx_t_12);
+ if (likely(__pyx_t_13)) {
+ PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_12);
+ __Pyx_INCREF(__pyx_t_13);
__Pyx_INCREF(function);
- __Pyx_DECREF_SET(__pyx_t_11, function);
+ __Pyx_DECREF_SET(__pyx_t_12, function);
__pyx_t_6 = 1;
}
}
{
- PyObject *__pyx_callargs[2] = {__pyx_t_12, __pyx_v_params};
- __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_11, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
- __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
- if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 535, __pyx_L1_error)
+ PyObject *__pyx_callargs[2] = {__pyx_t_13, __pyx_v_params};
+ __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_12, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
+ __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
+ if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 543, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
- __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
+ __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
}
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
- /* "falcon/routing/compiled.py":534
+ /* "falcon/routing/compiled.py":542
* # mistakenly match "/foo/23/bar" against "/foo/{id}".
- * construct = _CxIfPathLength('==', level + 1)
+ * cx_path_len = _CxIfPathLength('==', level + 1)
* for params in params_stack: # <<<<<<<<<<<<<<
- * construct.append_child(params)
- * construct.append_child(_CxReturnValue(resource_idx))
+ * cx_path_len.append_child(params)
+ * cx_path_len.append_child(_CxReturnValue(resource_idx))
*/
}
- __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
+ __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
- /* "falcon/routing/compiled.py":536
+ /* "falcon/routing/compiled.py":544
* for params in params_stack:
- * construct.append_child(params)
- * construct.append_child(_CxReturnValue(resource_idx)) # <<<<<<<<<<<<<<
- * parent.append_child(construct)
+ * cx_path_len.append_child(params)
+ * cx_path_len.append_child(_CxReturnValue(resource_idx)) # <<<<<<<<<<<<<<
+ * parent.append_child(cx_path_len)
*
*/
- __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_construct, __pyx_n_s_append_child); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 536, __pyx_L1_error)
+ __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_cx_path_len, __pyx_n_s_append_child); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 544, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
- __Pyx_GetModuleGlobalName(__pyx_t_12, __pyx_n_s_CxReturnValue); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 536, __pyx_L1_error)
- __Pyx_GOTREF(__pyx_t_12);
- __pyx_t_4 = PyInt_FromSsize_t(__pyx_v_resource_idx); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 536, __pyx_L1_error)
+ __Pyx_GetModuleGlobalName(__pyx_t_13, __pyx_n_s_CxReturnValue); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 544, __pyx_L1_error)
+ __Pyx_GOTREF(__pyx_t_13);
+ __pyx_t_4 = PyInt_FromSsize_t(__pyx_v_resource_idx); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 544, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
- __pyx_t_15 = NULL;
+ __pyx_t_17 = NULL;
__pyx_t_6 = 0;
- if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_12))) {
- __pyx_t_15 = PyMethod_GET_SELF(__pyx_t_12);
- if (likely(__pyx_t_15)) {
- PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_12);
- __Pyx_INCREF(__pyx_t_15);
+ if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_13))) {
+ __pyx_t_17 = PyMethod_GET_SELF(__pyx_t_13);
+ if (likely(__pyx_t_17)) {
+ PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_13);
+ __Pyx_INCREF(__pyx_t_17);
__Pyx_INCREF(function);
- __Pyx_DECREF_SET(__pyx_t_12, function);
+ __Pyx_DECREF_SET(__pyx_t_13, function);
__pyx_t_6 = 1;
}
}
{
- PyObject *__pyx_callargs[2] = {__pyx_t_15, __pyx_t_4};
- __pyx_t_11 = __Pyx_PyObject_FastCall(__pyx_t_12, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
- __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0;
+ PyObject *__pyx_callargs[2] = {__pyx_t_17, __pyx_t_4};
+ __pyx_t_12 = __Pyx_PyObject_FastCall(__pyx_t_13, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
+ __Pyx_XDECREF(__pyx_t_17); __pyx_t_17 = 0;
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
- if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 536, __pyx_L1_error)
- __Pyx_GOTREF(__pyx_t_11);
- __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
+ if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 544, __pyx_L1_error)
+ __Pyx_GOTREF(__pyx_t_12);
+ __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
}
- __pyx_t_12 = NULL;
+ __pyx_t_13 = NULL;
__pyx_t_6 = 0;
if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) {
- __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_3);
- if (likely(__pyx_t_12)) {
+ __pyx_t_13 = PyMethod_GET_SELF(__pyx_t_3);
+ if (likely(__pyx_t_13)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
- __Pyx_INCREF(__pyx_t_12);
+ __Pyx_INCREF(__pyx_t_13);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_3, function);
__pyx_t_6 = 1;
}
}
{
- PyObject *__pyx_callargs[2] = {__pyx_t_12, __pyx_t_11};
- __pyx_t_8 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
- __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
- __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
- if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 536, __pyx_L1_error)
- __Pyx_GOTREF(__pyx_t_8);
+ PyObject *__pyx_callargs[2] = {__pyx_t_13, __pyx_t_12};
+ __pyx_t_9 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
+ __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
+ __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
+ if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 544, __pyx_L1_error)
+ __Pyx_GOTREF(__pyx_t_9);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
}
- __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
+ __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
- /* "falcon/routing/compiled.py":537
- * construct.append_child(params)
- * construct.append_child(_CxReturnValue(resource_idx))
- * parent.append_child(construct) # <<<<<<<<<<<<<<
+ /* "falcon/routing/compiled.py":545
+ * cx_path_len.append_child(params)
+ * cx_path_len.append_child(_CxReturnValue(resource_idx))
+ * parent.append_child(cx_path_len) # <<<<<<<<<<<<<<
*
* if fast_return:
*/
- __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_parent, __pyx_n_s_append_child); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 537, __pyx_L1_error)
+ __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_parent, __pyx_n_s_append_child); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 545, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
- __pyx_t_11 = NULL;
+ __pyx_t_12 = NULL;
__pyx_t_6 = 0;
if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) {
- __pyx_t_11 = PyMethod_GET_SELF(__pyx_t_3);
- if (likely(__pyx_t_11)) {
+ __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_3);
+ if (likely(__pyx_t_12)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
- __Pyx_INCREF(__pyx_t_11);
+ __Pyx_INCREF(__pyx_t_12);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_3, function);
__pyx_t_6 = 1;
}
}
{
- PyObject *__pyx_callargs[2] = {__pyx_t_11, __pyx_v_construct};
- __pyx_t_8 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
- __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
- if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 537, __pyx_L1_error)
- __Pyx_GOTREF(__pyx_t_8);
+ PyObject *__pyx_callargs[2] = {__pyx_t_12, __pyx_v_cx_path_len};
+ __pyx_t_9 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
+ __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
+ if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 545, __pyx_L1_error)
+ __Pyx_GOTREF(__pyx_t_9);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
}
- __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
+ __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
- /* "falcon/routing/compiled.py":539
- * parent.append_child(construct)
+ /* "falcon/routing/compiled.py":547
+ * parent.append_child(cx_path_len)
*
* if fast_return: # <<<<<<<<<<<<<<
* parent.append_child(_CxReturnNone())
*
*/
- __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_fast_return); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 539, __pyx_L1_error)
+ __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_fast_return); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 547, __pyx_L1_error)
if (__pyx_t_2) {
- /* "falcon/routing/compiled.py":540
+ /* "falcon/routing/compiled.py":548
*
* if fast_return:
* parent.append_child(_CxReturnNone()) # <<<<<<<<<<<<<<
*
* parent = outer_parent
*/
- __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_parent, __pyx_n_s_append_child); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 540, __pyx_L1_error)
+ __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_parent, __pyx_n_s_append_child); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 548, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
- __Pyx_GetModuleGlobalName(__pyx_t_12, __pyx_n_s_CxReturnNone); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 540, __pyx_L1_error)
- __Pyx_GOTREF(__pyx_t_12);
+ __Pyx_GetModuleGlobalName(__pyx_t_13, __pyx_n_s_CxReturnNone); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 548, __pyx_L1_error)
+ __Pyx_GOTREF(__pyx_t_13);
__pyx_t_4 = NULL;
__pyx_t_6 = 0;
- if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_12))) {
- __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_12);
+ if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_13))) {
+ __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_13);
if (likely(__pyx_t_4)) {
- PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_12);
+ PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_13);
__Pyx_INCREF(__pyx_t_4);
__Pyx_INCREF(function);
- __Pyx_DECREF_SET(__pyx_t_12, function);
+ __Pyx_DECREF_SET(__pyx_t_13, function);
__pyx_t_6 = 1;
}
}
{
PyObject *__pyx_callargs[1] = {__pyx_t_4, };
- __pyx_t_11 = __Pyx_PyObject_FastCall(__pyx_t_12, __pyx_callargs+1-__pyx_t_6, 0+__pyx_t_6);
+ __pyx_t_12 = __Pyx_PyObject_FastCall(__pyx_t_13, __pyx_callargs+1-__pyx_t_6, 0+__pyx_t_6);
__Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
- if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 540, __pyx_L1_error)
- __Pyx_GOTREF(__pyx_t_11);
- __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
+ if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 548, __pyx_L1_error)
+ __Pyx_GOTREF(__pyx_t_12);
+ __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
}
- __pyx_t_12 = NULL;
+ __pyx_t_13 = NULL;
__pyx_t_6 = 0;
if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) {
- __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_3);
- if (likely(__pyx_t_12)) {
+ __pyx_t_13 = PyMethod_GET_SELF(__pyx_t_3);
+ if (likely(__pyx_t_13)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
- __Pyx_INCREF(__pyx_t_12);
+ __Pyx_INCREF(__pyx_t_13);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_3, function);
__pyx_t_6 = 1;
}
}
{
- PyObject *__pyx_callargs[2] = {__pyx_t_12, __pyx_t_11};
- __pyx_t_8 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
- __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
- __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
- if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 540, __pyx_L1_error)
- __Pyx_GOTREF(__pyx_t_8);
+ PyObject *__pyx_callargs[2] = {__pyx_t_13, __pyx_t_12};
+ __pyx_t_9 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
+ __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
+ __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
+ if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 548, __pyx_L1_error)
+ __Pyx_GOTREF(__pyx_t_9);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
}
- __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
+ __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
- /* "falcon/routing/compiled.py":539
- * parent.append_child(construct)
+ /* "falcon/routing/compiled.py":547
+ * parent.append_child(cx_path_len)
*
* if fast_return: # <<<<<<<<<<<<<<
* parent.append_child(_CxReturnNone())
@@ -11298,7 +11680,7 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_14CompiledRouter_18_generat
}
__pyx_L31:;
- /* "falcon/routing/compiled.py":542
+ /* "falcon/routing/compiled.py":550
* parent.append_child(_CxReturnNone())
*
* parent = outer_parent # <<<<<<<<<<<<<<
@@ -11308,8 +11690,8 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_14CompiledRouter_18_generat
__Pyx_INCREF(__pyx_v_outer_parent);
__Pyx_DECREF_SET(__pyx_v_parent, __pyx_v_outer_parent);
- /* "falcon/routing/compiled.py":429
- * setter = None # type: Any
+ /* "falcon/routing/compiled.py":434
+ *
* original_params_stack = params_stack.copy()
* for node in nodes: # <<<<<<<<<<<<<<
* params_stack = original_params_stack.copy()
@@ -11318,79 +11700,79 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_14CompiledRouter_18_generat
}
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
- /* "falcon/routing/compiled.py":544
+ /* "falcon/routing/compiled.py":552
* parent = outer_parent
*
* if not found_simple and fast_return: # <<<<<<<<<<<<<<
* parent.append_child(_CxReturnNone())
*
*/
- __pyx_t_14 = ((!(__pyx_v_found_simple != 0)) != 0);
- if (__pyx_t_14) {
+ __pyx_t_16 = ((!(__pyx_v_found_simple != 0)) != 0);
+ if (__pyx_t_16) {
} else {
- __pyx_t_2 = __pyx_t_14;
+ __pyx_t_2 = __pyx_t_16;
goto __pyx_L37_bool_binop_done;
}
- __pyx_t_14 = __Pyx_PyObject_IsTrue(__pyx_v_fast_return); if (unlikely((__pyx_t_14 < 0))) __PYX_ERR(0, 544, __pyx_L1_error)
- __pyx_t_2 = __pyx_t_14;
+ __pyx_t_16 = __Pyx_PyObject_IsTrue(__pyx_v_fast_return); if (unlikely((__pyx_t_16 < 0))) __PYX_ERR(0, 552, __pyx_L1_error)
+ __pyx_t_2 = __pyx_t_16;
__pyx_L37_bool_binop_done:;
if (__pyx_t_2) {
- /* "falcon/routing/compiled.py":545
+ /* "falcon/routing/compiled.py":553
*
* if not found_simple and fast_return:
* parent.append_child(_CxReturnNone()) # <<<<<<<<<<<<<<
*
* def _generate_conversion_ast(
*/
- __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_parent, __pyx_n_s_append_child); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 545, __pyx_L1_error)
- __Pyx_GOTREF(__pyx_t_8);
- __Pyx_GetModuleGlobalName(__pyx_t_11, __pyx_n_s_CxReturnNone); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 545, __pyx_L1_error)
- __Pyx_GOTREF(__pyx_t_11);
- __pyx_t_12 = NULL;
+ __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_parent, __pyx_n_s_append_child); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 553, __pyx_L1_error)
+ __Pyx_GOTREF(__pyx_t_9);
+ __Pyx_GetModuleGlobalName(__pyx_t_12, __pyx_n_s_CxReturnNone); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 553, __pyx_L1_error)
+ __Pyx_GOTREF(__pyx_t_12);
+ __pyx_t_13 = NULL;
__pyx_t_6 = 0;
- if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_11))) {
- __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_11);
- if (likely(__pyx_t_12)) {
- PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_11);
- __Pyx_INCREF(__pyx_t_12);
+ if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_12))) {
+ __pyx_t_13 = PyMethod_GET_SELF(__pyx_t_12);
+ if (likely(__pyx_t_13)) {
+ PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_12);
+ __Pyx_INCREF(__pyx_t_13);
__Pyx_INCREF(function);
- __Pyx_DECREF_SET(__pyx_t_11, function);
+ __Pyx_DECREF_SET(__pyx_t_12, function);
__pyx_t_6 = 1;
}
}
{
- PyObject *__pyx_callargs[1] = {__pyx_t_12, };
- __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_11, __pyx_callargs+1-__pyx_t_6, 0+__pyx_t_6);
- __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
- if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 545, __pyx_L1_error)
+ PyObject *__pyx_callargs[1] = {__pyx_t_13, };
+ __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_12, __pyx_callargs+1-__pyx_t_6, 0+__pyx_t_6);
+ __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
+ if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 553, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
- __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
+ __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
}
- __pyx_t_11 = NULL;
+ __pyx_t_12 = NULL;
__pyx_t_6 = 0;
- if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
- __pyx_t_11 = PyMethod_GET_SELF(__pyx_t_8);
- if (likely(__pyx_t_11)) {
- PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
- __Pyx_INCREF(__pyx_t_11);
+ if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_9))) {
+ __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_9);
+ if (likely(__pyx_t_12)) {
+ PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_9);
+ __Pyx_INCREF(__pyx_t_12);
__Pyx_INCREF(function);
- __Pyx_DECREF_SET(__pyx_t_8, function);
+ __Pyx_DECREF_SET(__pyx_t_9, function);
__pyx_t_6 = 1;
}
}
{
- PyObject *__pyx_callargs[2] = {__pyx_t_11, __pyx_t_3};
- __pyx_t_5 = __Pyx_PyObject_FastCall(__pyx_t_8, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
- __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
+ PyObject *__pyx_callargs[2] = {__pyx_t_12, __pyx_t_3};
+ __pyx_t_5 = __Pyx_PyObject_FastCall(__pyx_t_9, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
+ __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
- if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 545, __pyx_L1_error)
+ if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 553, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
- __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
+ __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
}
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
- /* "falcon/routing/compiled.py":544
+ /* "falcon/routing/compiled.py":552
* parent = outer_parent
*
* if not found_simple and fast_return: # <<<<<<<<<<<<<<
@@ -11399,12 +11781,12 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_14CompiledRouter_18_generat
*/
}
- /* "falcon/routing/compiled.py":381
+ /* "falcon/routing/compiled.py":388
* raise ValueError(msg) from e
*
* def _generate_ast( # <<<<<<<<<<<<<<
* self,
- * nodes: list,
+ * nodes: 'List[CompiledRouterNode]',
*/
/* function exit code */
@@ -11414,27 +11796,30 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_14CompiledRouter_18_generat
__Pyx_XDECREF(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_4);
__Pyx_XDECREF(__pyx_t_5);
- __Pyx_XDECREF(__pyx_t_8);
- __Pyx_XDECREF(__pyx_t_11);
+ __Pyx_XDECREF(__pyx_t_9);
__Pyx_XDECREF(__pyx_t_12);
- __Pyx_XDECREF(__pyx_t_15);
+ __Pyx_XDECREF(__pyx_t_13);
+ __Pyx_XDECREF(__pyx_t_17);
__Pyx_AddTraceback("falcon.routing.compiled.CompiledRouter._generate_ast", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XDECREF(__pyx_v_outer_parent);
__Pyx_XDECREF(__pyx_v_var_nodes);
__Pyx_XDECREF(__pyx_v_found_var_nodes);
- __Pyx_XDECREF(__pyx_v_construct);
- __Pyx_XDECREF(__pyx_v_setter);
__Pyx_XDECREF(__pyx_v_original_params_stack);
__Pyx_XDECREF(__pyx_v_node);
+ __Pyx_XDECREF(__pyx_v_cx_segment);
+ __Pyx_XDECREF(__pyx_v_cx_pattern);
__Pyx_XDECREF(__pyx_v_field_name);
__Pyx_XDECREF(__pyx_v___);
__Pyx_XDECREF(__pyx_v_converter_name);
__Pyx_XDECREF(__pyx_v_converter_argstr);
__Pyx_XDECREF(__pyx_v_converter_class);
__Pyx_XDECREF(__pyx_v_converter_obj);
+ __Pyx_XDECREF(__pyx_v_cx_converter);
__Pyx_XDECREF(__pyx_v__found_nodes);
+ __Pyx_XDECREF(__pyx_v_cx_literal);
+ __Pyx_XDECREF(__pyx_v_cx_path_len);
__Pyx_XDECREF(__pyx_v_params);
__Pyx_XDECREF(__pyx_7genexpr__pyx_v_node);
__Pyx_XDECREF(__pyx_8genexpr1__pyx_v__node);
@@ -11447,12 +11832,12 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_14CompiledRouter_18_generat
return __pyx_r;
}
-/* "falcon/routing/compiled.py":547
+/* "falcon/routing/compiled.py":555
* parent.append_child(_CxReturnNone())
*
* def _generate_conversion_ast( # <<<<<<<<<<<<<<
- * self, parent, node: 'CompiledRouterNode', params_stack: list
- * ):
+ * self,
+ * parent: '_CxParent',
*/
/* Python wrapper */
@@ -11510,33 +11895,33 @@ PyObject *__pyx_args, PyObject *__pyx_kwds
switch (__pyx_nargs) {
case 0:
if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_self)) != 0)) kw_args--;
- else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 547, __pyx_L3_error)
+ else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 555, __pyx_L3_error)
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_parent)) != 0)) kw_args--;
- else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 547, __pyx_L3_error)
+ else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 555, __pyx_L3_error)
else {
- __Pyx_RaiseArgtupleInvalid("_generate_conversion_ast", 1, 4, 4, 1); __PYX_ERR(0, 547, __pyx_L3_error)
+ __Pyx_RaiseArgtupleInvalid("_generate_conversion_ast", 1, 4, 4, 1); __PYX_ERR(0, 555, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 2:
if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_node)) != 0)) kw_args--;
- else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 547, __pyx_L3_error)
+ else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 555, __pyx_L3_error)
else {
- __Pyx_RaiseArgtupleInvalid("_generate_conversion_ast", 1, 4, 4, 2); __PYX_ERR(0, 547, __pyx_L3_error)
+ __Pyx_RaiseArgtupleInvalid("_generate_conversion_ast", 1, 4, 4, 2); __PYX_ERR(0, 555, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 3:
if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_params_stack)) != 0)) kw_args--;
- else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 547, __pyx_L3_error)
+ else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 555, __pyx_L3_error)
else {
- __Pyx_RaiseArgtupleInvalid("_generate_conversion_ast", 1, 4, 4, 3); __PYX_ERR(0, 547, __pyx_L3_error)
+ __Pyx_RaiseArgtupleInvalid("_generate_conversion_ast", 1, 4, 4, 3); __PYX_ERR(0, 555, __pyx_L3_error)
}
}
if (unlikely(kw_args > 0)) {
const Py_ssize_t kwd_pos_args = __pyx_nargs;
- if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_generate_conversion_ast") < 0)) __PYX_ERR(0, 547, __pyx_L3_error)
+ if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_generate_conversion_ast") < 0)) __PYX_ERR(0, 555, __pyx_L3_error)
}
} else if (unlikely(__pyx_nargs != 4)) {
goto __pyx_L5_argtuple_error;
@@ -11549,37 +11934,32 @@ PyObject *__pyx_args, PyObject *__pyx_kwds
__pyx_v_self = values[0];
__pyx_v_parent = values[1];
__pyx_v_node = values[2];
- __pyx_v_params_stack = ((PyObject*)values[3]);
+ __pyx_v_params_stack = values[3];
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
- __Pyx_RaiseArgtupleInvalid("_generate_conversion_ast", 1, 4, 4, __pyx_nargs); __PYX_ERR(0, 547, __pyx_L3_error)
+ __Pyx_RaiseArgtupleInvalid("_generate_conversion_ast", 1, 4, 4, __pyx_nargs); __PYX_ERR(0, 555, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("falcon.routing.compiled.CompiledRouter._generate_conversion_ast", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
- if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_params_stack), (&PyList_Type), 1, "params_stack", 1))) __PYX_ERR(0, 548, __pyx_L1_error)
__pyx_r = __pyx_pf_6falcon_7routing_8compiled_14CompiledRouter_20_generate_conversion_ast(__pyx_self, __pyx_v_self, __pyx_v_parent, __pyx_v_node, __pyx_v_params_stack);
/* function exit code */
- goto __pyx_L0;
- __pyx_L1_error:;
- __pyx_r = NULL;
- __pyx_L0:;
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_6falcon_7routing_8compiled_14CompiledRouter_20_generate_conversion_ast(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_parent, PyObject *__pyx_v_node, PyObject *__pyx_v_params_stack) {
- PyObject *__pyx_v_construct = NULL;
- PyObject *__pyx_v_setter = NULL;
PyObject *__pyx_v_field_name = NULL;
PyObject *__pyx_v_converter_name = NULL;
PyObject *__pyx_v_converter_argstr = NULL;
PyObject *__pyx_v_converter_class = NULL;
PyObject *__pyx_v_converter_obj = NULL;
Py_ssize_t __pyx_v_converter_idx;
+ PyObject *__pyx_v_cx_converter = NULL;
+ PyObject *__pyx_v_cx_pattern_match = NULL;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
PyObject *__pyx_t_1 = NULL;
@@ -11601,42 +11981,22 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_14CompiledRouter_20_generat
__Pyx_RefNannySetupContext("_generate_conversion_ast", 0);
__Pyx_INCREF(__pyx_v_parent);
- /* "falcon/routing/compiled.py":550
- * self, parent, node: 'CompiledRouterNode', params_stack: list
- * ):
- * construct = None # type: Any # <<<<<<<<<<<<<<
- * setter = None # type: Any
- * # NOTE(kgriffs): Unroll the converter loop into
- */
- __Pyx_INCREF(Py_None);
- __pyx_v_construct = Py_None;
-
- /* "falcon/routing/compiled.py":551
- * ):
- * construct = None # type: Any
- * setter = None # type: Any # <<<<<<<<<<<<<<
- * # NOTE(kgriffs): Unroll the converter loop into
- * # a series of nested "if" constructs.
- */
- __Pyx_INCREF(Py_None);
- __pyx_v_setter = Py_None;
-
- /* "falcon/routing/compiled.py":554
+ /* "falcon/routing/compiled.py":563
* # NOTE(kgriffs): Unroll the converter loop into
* # a series of nested "if" constructs.
* for field_name, converter_name, converter_argstr in node.var_converter_map: # <<<<<<<<<<<<<<
* converter_class = self._converter_map[converter_name]
*
*/
- __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_node, __pyx_n_s_var_converter_map); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 554, __pyx_L1_error)
+ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_node, __pyx_n_s_var_converter_map); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 563, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) {
__pyx_t_2 = __pyx_t_1; __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0;
__pyx_t_4 = NULL;
} else {
- __pyx_t_3 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 554, __pyx_L1_error)
+ __pyx_t_3 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 563, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
- __pyx_t_4 = __Pyx_PyObject_GetIterNextFunc(__pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 554, __pyx_L1_error)
+ __pyx_t_4 = __Pyx_PyObject_GetIterNextFunc(__pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 563, __pyx_L1_error)
}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
for (;;) {
@@ -11644,17 +12004,17 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_14CompiledRouter_20_generat
if (likely(PyList_CheckExact(__pyx_t_2))) {
if (__pyx_t_3 >= PyList_GET_SIZE(__pyx_t_2)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
- __pyx_t_1 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_1); __pyx_t_3++; if (unlikely((0 < 0))) __PYX_ERR(0, 554, __pyx_L1_error)
+ __pyx_t_1 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_1); __pyx_t_3++; if (unlikely((0 < 0))) __PYX_ERR(0, 563, __pyx_L1_error)
#else
- __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 554, __pyx_L1_error)
+ __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 563, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
#endif
} else {
if (__pyx_t_3 >= PyTuple_GET_SIZE(__pyx_t_2)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
- __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_1); __pyx_t_3++; if (unlikely((0 < 0))) __PYX_ERR(0, 554, __pyx_L1_error)
+ __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_1); __pyx_t_3++; if (unlikely((0 < 0))) __PYX_ERR(0, 563, __pyx_L1_error)
#else
- __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 554, __pyx_L1_error)
+ __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 563, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
#endif
}
@@ -11664,7 +12024,7 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_14CompiledRouter_20_generat
PyObject* exc_type = PyErr_Occurred();
if (exc_type) {
if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
- else __PYX_ERR(0, 554, __pyx_L1_error)
+ else __PYX_ERR(0, 563, __pyx_L1_error)
}
break;
}
@@ -11676,7 +12036,7 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_14CompiledRouter_20_generat
if (unlikely(size != 3)) {
if (size > 3) __Pyx_RaiseTooManyValuesError(3);
else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
- __PYX_ERR(0, 554, __pyx_L1_error)
+ __PYX_ERR(0, 563, __pyx_L1_error)
}
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
if (likely(PyTuple_CheckExact(sequence))) {
@@ -11692,17 +12052,17 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_14CompiledRouter_20_generat
__Pyx_INCREF(__pyx_t_6);
__Pyx_INCREF(__pyx_t_7);
#else
- __pyx_t_5 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 554, __pyx_L1_error)
+ __pyx_t_5 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 563, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
- __pyx_t_6 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 554, __pyx_L1_error)
+ __pyx_t_6 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 563, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
- __pyx_t_7 = PySequence_ITEM(sequence, 2); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 554, __pyx_L1_error)
+ __pyx_t_7 = PySequence_ITEM(sequence, 2); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 563, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
#endif
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
} else {
Py_ssize_t index = -1;
- __pyx_t_8 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 554, __pyx_L1_error)
+ __pyx_t_8 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 563, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_8);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_t_9 = __Pyx_PyObject_GetIterNextFunc(__pyx_t_8);
@@ -11712,7 +12072,7 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_14CompiledRouter_20_generat
__Pyx_GOTREF(__pyx_t_6);
index = 2; __pyx_t_7 = __pyx_t_9(__pyx_t_8); if (unlikely(!__pyx_t_7)) goto __pyx_L5_unpacking_failed;
__Pyx_GOTREF(__pyx_t_7);
- if (__Pyx_IternextUnpackEndCheck(__pyx_t_9(__pyx_t_8), 3) < 0) __PYX_ERR(0, 554, __pyx_L1_error)
+ if (__Pyx_IternextUnpackEndCheck(__pyx_t_9(__pyx_t_8), 3) < 0) __PYX_ERR(0, 563, __pyx_L1_error)
__pyx_t_9 = NULL;
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
goto __pyx_L6_unpacking_done;
@@ -11720,7 +12080,7 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_14CompiledRouter_20_generat
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
__pyx_t_9 = NULL;
if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
- __PYX_ERR(0, 554, __pyx_L1_error)
+ __PYX_ERR(0, 563, __pyx_L1_error)
__pyx_L6_unpacking_done:;
}
__Pyx_XDECREF_SET(__pyx_v_field_name, __pyx_t_5);
@@ -11730,32 +12090,32 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_14CompiledRouter_20_generat
__Pyx_XDECREF_SET(__pyx_v_converter_argstr, __pyx_t_7);
__pyx_t_7 = 0;
- /* "falcon/routing/compiled.py":555
+ /* "falcon/routing/compiled.py":564
* # a series of nested "if" constructs.
* for field_name, converter_name, converter_argstr in node.var_converter_map:
* converter_class = self._converter_map[converter_name] # <<<<<<<<<<<<<<
*
* converter_obj = self._instantiate_converter(
*/
- __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_converter_map); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 555, __pyx_L1_error)
+ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_converter_map); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 564, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
- __pyx_t_7 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_v_converter_name); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 555, __pyx_L1_error)
+ __pyx_t_7 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_v_converter_name); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 564, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_XDECREF_SET(__pyx_v_converter_class, __pyx_t_7);
__pyx_t_7 = 0;
- /* "falcon/routing/compiled.py":557
+ /* "falcon/routing/compiled.py":566
* converter_class = self._converter_map[converter_name]
*
* converter_obj = self._instantiate_converter( # <<<<<<<<<<<<<<
* converter_class, converter_argstr
* )
*/
- __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_instantiate_converter); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 557, __pyx_L1_error)
+ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_instantiate_converter); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 566, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
- /* "falcon/routing/compiled.py":558
+ /* "falcon/routing/compiled.py":567
*
* converter_obj = self._instantiate_converter(
* converter_class, converter_argstr # <<<<<<<<<<<<<<
@@ -11778,48 +12138,48 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_14CompiledRouter_20_generat
PyObject *__pyx_callargs[3] = {__pyx_t_6, __pyx_v_converter_class, __pyx_v_converter_argstr};
__pyx_t_7 = __Pyx_PyObject_FastCall(__pyx_t_1, __pyx_callargs+1-__pyx_t_10, 2+__pyx_t_10);
__Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
- if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 557, __pyx_L1_error)
+ if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 566, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
}
__Pyx_XDECREF_SET(__pyx_v_converter_obj, __pyx_t_7);
__pyx_t_7 = 0;
- /* "falcon/routing/compiled.py":560
+ /* "falcon/routing/compiled.py":569
* converter_class, converter_argstr
* )
* converter_idx = len(self._converters) # <<<<<<<<<<<<<<
* self._converters.append(converter_obj)
*
*/
- __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_converters); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 560, __pyx_L1_error)
+ __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_converters); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 569, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
- __pyx_t_11 = PyObject_Length(__pyx_t_7); if (unlikely(__pyx_t_11 == ((Py_ssize_t)-1))) __PYX_ERR(0, 560, __pyx_L1_error)
+ __pyx_t_11 = PyObject_Length(__pyx_t_7); if (unlikely(__pyx_t_11 == ((Py_ssize_t)-1))) __PYX_ERR(0, 569, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
__pyx_v_converter_idx = __pyx_t_11;
- /* "falcon/routing/compiled.py":561
+ /* "falcon/routing/compiled.py":570
* )
* converter_idx = len(self._converters)
* self._converters.append(converter_obj) # <<<<<<<<<<<<<<
*
* parent.append_child(_CxSetFragmentFromField(field_name))
*/
- __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_converters); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 561, __pyx_L1_error)
+ __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_converters); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 570, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
- __pyx_t_12 = __Pyx_PyObject_Append(__pyx_t_7, __pyx_v_converter_obj); if (unlikely(__pyx_t_12 == ((int)-1))) __PYX_ERR(0, 561, __pyx_L1_error)
+ __pyx_t_12 = __Pyx_PyObject_Append(__pyx_t_7, __pyx_v_converter_obj); if (unlikely(__pyx_t_12 == ((int)-1))) __PYX_ERR(0, 570, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
- /* "falcon/routing/compiled.py":563
+ /* "falcon/routing/compiled.py":572
* self._converters.append(converter_obj)
*
* parent.append_child(_CxSetFragmentFromField(field_name)) # <<<<<<<<<<<<<<
*
- * construct = _CxIfConverterField(len(params_stack) + 1, converter_idx)
+ * cx_converter = _CxIfConverterField(len(params_stack) + 1, converter_idx)
*/
- __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_parent, __pyx_n_s_append_child); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 563, __pyx_L1_error)
+ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_parent, __pyx_n_s_append_child); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 572, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
- __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_CxSetFragmentFromField); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 563, __pyx_L1_error)
+ __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_CxSetFragmentFromField); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 572, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__pyx_t_8 = NULL;
__pyx_t_10 = 0;
@@ -11837,7 +12197,7 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_14CompiledRouter_20_generat
PyObject *__pyx_callargs[2] = {__pyx_t_8, __pyx_v_field_name};
__pyx_t_6 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+1-__pyx_t_10, 1+__pyx_t_10);
__Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
- if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 563, __pyx_L1_error)
+ if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 572, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
}
@@ -11858,29 +12218,25 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_14CompiledRouter_20_generat
__pyx_t_7 = __Pyx_PyObject_FastCall(__pyx_t_1, __pyx_callargs+1-__pyx_t_10, 1+__pyx_t_10);
__Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
- if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 563, __pyx_L1_error)
+ if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 572, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
}
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
- /* "falcon/routing/compiled.py":565
+ /* "falcon/routing/compiled.py":574
* parent.append_child(_CxSetFragmentFromField(field_name))
*
- * construct = _CxIfConverterField(len(params_stack) + 1, converter_idx) # <<<<<<<<<<<<<<
- * setter = _CxSetParamFromValue(field_name, construct.field_variable_name)
- * params_stack.append(setter)
+ * cx_converter = _CxIfConverterField(len(params_stack) + 1, converter_idx) # <<<<<<<<<<<<<<
+ * params_stack.append(
+ * _CxSetParamFromValue(field_name, cx_converter.field_variable_name)
*/
- __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_CxIfConverterField); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 565, __pyx_L1_error)
+ __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_CxIfConverterField); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 574, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
- if (unlikely(__pyx_v_params_stack == Py_None)) {
- PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
- __PYX_ERR(0, 565, __pyx_L1_error)
- }
- __pyx_t_11 = PyList_GET_SIZE(__pyx_v_params_stack); if (unlikely(__pyx_t_11 == ((Py_ssize_t)-1))) __PYX_ERR(0, 565, __pyx_L1_error)
- __pyx_t_6 = PyInt_FromSsize_t((__pyx_t_11 + 1)); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 565, __pyx_L1_error)
+ __pyx_t_11 = PyObject_Length(__pyx_v_params_stack); if (unlikely(__pyx_t_11 == ((Py_ssize_t)-1))) __PYX_ERR(0, 574, __pyx_L1_error)
+ __pyx_t_6 = PyInt_FromSsize_t((__pyx_t_11 + 1)); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 574, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
- __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_converter_idx); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 565, __pyx_L1_error)
+ __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_converter_idx); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 574, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__pyx_t_8 = NULL;
__pyx_t_10 = 0;
@@ -11900,23 +12256,23 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_14CompiledRouter_20_generat
__Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
- if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 565, __pyx_L1_error)
+ if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 574, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
}
- __Pyx_DECREF_SET(__pyx_v_construct, __pyx_t_7);
+ __Pyx_XDECREF_SET(__pyx_v_cx_converter, __pyx_t_7);
__pyx_t_7 = 0;
- /* "falcon/routing/compiled.py":566
- *
- * construct = _CxIfConverterField(len(params_stack) + 1, converter_idx)
- * setter = _CxSetParamFromValue(field_name, construct.field_variable_name) # <<<<<<<<<<<<<<
- * params_stack.append(setter)
+ /* "falcon/routing/compiled.py":576
+ * cx_converter = _CxIfConverterField(len(params_stack) + 1, converter_idx)
+ * params_stack.append(
+ * _CxSetParamFromValue(field_name, cx_converter.field_variable_name) # <<<<<<<<<<<<<<
+ * )
*
*/
- __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_CxSetParamFromValue); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 566, __pyx_L1_error)
+ __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_CxSetParamFromValue); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 576, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
- __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_construct, __pyx_n_s_field_variable_name); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 566, __pyx_L1_error)
+ __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_cx_converter, __pyx_n_s_field_variable_name); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 576, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__pyx_t_6 = NULL;
__pyx_t_10 = 0;
@@ -11935,34 +12291,29 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_14CompiledRouter_20_generat
__pyx_t_7 = __Pyx_PyObject_FastCall(__pyx_t_1, __pyx_callargs+1-__pyx_t_10, 2+__pyx_t_10);
__Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
- if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 566, __pyx_L1_error)
+ if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 576, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
}
- __Pyx_DECREF_SET(__pyx_v_setter, __pyx_t_7);
- __pyx_t_7 = 0;
- /* "falcon/routing/compiled.py":567
- * construct = _CxIfConverterField(len(params_stack) + 1, converter_idx)
- * setter = _CxSetParamFromValue(field_name, construct.field_variable_name)
- * params_stack.append(setter) # <<<<<<<<<<<<<<
+ /* "falcon/routing/compiled.py":575
*
- * parent.append_child(construct)
+ * cx_converter = _CxIfConverterField(len(params_stack) + 1, converter_idx)
+ * params_stack.append( # <<<<<<<<<<<<<<
+ * _CxSetParamFromValue(field_name, cx_converter.field_variable_name)
+ * )
*/
- if (unlikely(__pyx_v_params_stack == Py_None)) {
- PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "append");
- __PYX_ERR(0, 567, __pyx_L1_error)
- }
- __pyx_t_12 = __Pyx_PyList_Append(__pyx_v_params_stack, __pyx_v_setter); if (unlikely(__pyx_t_12 == ((int)-1))) __PYX_ERR(0, 567, __pyx_L1_error)
+ __pyx_t_12 = __Pyx_PyObject_Append(__pyx_v_params_stack, __pyx_t_7); if (unlikely(__pyx_t_12 == ((int)-1))) __PYX_ERR(0, 575, __pyx_L1_error)
+ __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
- /* "falcon/routing/compiled.py":569
- * params_stack.append(setter)
+ /* "falcon/routing/compiled.py":579
+ * )
*
- * parent.append_child(construct) # <<<<<<<<<<<<<<
- * parent = construct
+ * parent.append_child(cx_converter) # <<<<<<<<<<<<<<
+ * parent = cx_converter
*
*/
- __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_parent, __pyx_n_s_append_child); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 569, __pyx_L1_error)
+ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_parent, __pyx_n_s_append_child); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 579, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_5 = NULL;
__pyx_t_10 = 0;
@@ -11977,26 +12328,26 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_14CompiledRouter_20_generat
}
}
{
- PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_v_construct};
+ PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_v_cx_converter};
__pyx_t_7 = __Pyx_PyObject_FastCall(__pyx_t_1, __pyx_callargs+1-__pyx_t_10, 1+__pyx_t_10);
__Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
- if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 569, __pyx_L1_error)
+ if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 579, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
}
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
- /* "falcon/routing/compiled.py":570
+ /* "falcon/routing/compiled.py":580
*
- * parent.append_child(construct)
- * parent = construct # <<<<<<<<<<<<<<
+ * parent.append_child(cx_converter)
+ * parent = cx_converter # <<<<<<<<<<<<<<
*
* # NOTE(kgriffs): Add remaining fields that were not
*/
- __Pyx_INCREF(__pyx_v_construct);
- __Pyx_DECREF_SET(__pyx_v_parent, __pyx_v_construct);
+ __Pyx_INCREF(__pyx_v_cx_converter);
+ __Pyx_DECREF_SET(__pyx_v_parent, __pyx_v_cx_converter);
- /* "falcon/routing/compiled.py":554
+ /* "falcon/routing/compiled.py":563
* # NOTE(kgriffs): Unroll the converter loop into
* # a series of nested "if" constructs.
* for field_name, converter_name, converter_argstr in node.var_converter_map: # <<<<<<<<<<<<<<
@@ -12006,43 +12357,47 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_14CompiledRouter_20_generat
}
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
- /* "falcon/routing/compiled.py":574
+ /* "falcon/routing/compiled.py":584
* # NOTE(kgriffs): Add remaining fields that were not
* # converted, if any.
* if node.num_fields > len(node.var_converter_map): # <<<<<<<<<<<<<<
- * construct = _CxVariableFromPatternMatchPrefetched(len(params_stack) + 1)
- * setter = _CxSetParamsFromDict(construct.dict_variable_name)
+ * cx_pattern_match = _CxVariableFromPatternMatchPrefetched(
+ * len(params_stack) + 1
*/
- __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_node, __pyx_n_s_num_fields); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 574, __pyx_L1_error)
+ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_node, __pyx_n_s_num_fields); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 584, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
- __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_node, __pyx_n_s_var_converter_map); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 574, __pyx_L1_error)
+ __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_node, __pyx_n_s_var_converter_map); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 584, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
- __pyx_t_3 = PyObject_Length(__pyx_t_7); if (unlikely(__pyx_t_3 == ((Py_ssize_t)-1))) __PYX_ERR(0, 574, __pyx_L1_error)
+ __pyx_t_3 = PyObject_Length(__pyx_t_7); if (unlikely(__pyx_t_3 == ((Py_ssize_t)-1))) __PYX_ERR(0, 584, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
- __pyx_t_7 = PyInt_FromSsize_t(__pyx_t_3); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 574, __pyx_L1_error)
+ __pyx_t_7 = PyInt_FromSsize_t(__pyx_t_3); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 584, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
- __pyx_t_1 = PyObject_RichCompare(__pyx_t_2, __pyx_t_7, Py_GT); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 574, __pyx_L1_error)
+ __pyx_t_1 = PyObject_RichCompare(__pyx_t_2, __pyx_t_7, Py_GT); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 584, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
- __pyx_t_13 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_13 < 0))) __PYX_ERR(0, 574, __pyx_L1_error)
+ __pyx_t_13 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_13 < 0))) __PYX_ERR(0, 584, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
if (__pyx_t_13) {
- /* "falcon/routing/compiled.py":575
+ /* "falcon/routing/compiled.py":585
* # converted, if any.
* if node.num_fields > len(node.var_converter_map):
- * construct = _CxVariableFromPatternMatchPrefetched(len(params_stack) + 1) # <<<<<<<<<<<<<<
- * setter = _CxSetParamsFromDict(construct.dict_variable_name)
- * params_stack.append(setter)
+ * cx_pattern_match = _CxVariableFromPatternMatchPrefetched( # <<<<<<<<<<<<<<
+ * len(params_stack) + 1
+ * )
*/
- __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_CxVariableFromPatternMatchPrefe); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 575, __pyx_L1_error)
+ __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_CxVariableFromPatternMatchPrefe); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 585, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
- if (unlikely(__pyx_v_params_stack == Py_None)) {
- PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
- __PYX_ERR(0, 575, __pyx_L1_error)
- }
- __pyx_t_3 = PyList_GET_SIZE(__pyx_v_params_stack); if (unlikely(__pyx_t_3 == ((Py_ssize_t)-1))) __PYX_ERR(0, 575, __pyx_L1_error)
- __pyx_t_2 = PyInt_FromSsize_t((__pyx_t_3 + 1)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 575, __pyx_L1_error)
+
+ /* "falcon/routing/compiled.py":586
+ * if node.num_fields > len(node.var_converter_map):
+ * cx_pattern_match = _CxVariableFromPatternMatchPrefetched(
+ * len(params_stack) + 1 # <<<<<<<<<<<<<<
+ * )
+ * params_stack.append(
+ */
+ __pyx_t_3 = PyObject_Length(__pyx_v_params_stack); if (unlikely(__pyx_t_3 == ((Py_ssize_t)-1))) __PYX_ERR(0, 586, __pyx_L1_error)
+ __pyx_t_2 = PyInt_FromSsize_t((__pyx_t_3 + 1)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 586, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_5 = NULL;
__pyx_t_10 = 0;
@@ -12061,23 +12416,23 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_14CompiledRouter_20_generat
__pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_7, __pyx_callargs+1-__pyx_t_10, 1+__pyx_t_10);
__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, 575, __pyx_L1_error)
+ if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 585, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
}
- __Pyx_DECREF_SET(__pyx_v_construct, __pyx_t_1);
+ __pyx_v_cx_pattern_match = __pyx_t_1;
__pyx_t_1 = 0;
- /* "falcon/routing/compiled.py":576
- * if node.num_fields > len(node.var_converter_map):
- * construct = _CxVariableFromPatternMatchPrefetched(len(params_stack) + 1)
- * setter = _CxSetParamsFromDict(construct.dict_variable_name) # <<<<<<<<<<<<<<
- * params_stack.append(setter)
- * parent.append_child(construct)
+ /* "falcon/routing/compiled.py":589
+ * )
+ * params_stack.append(
+ * _CxSetParamsFromDict(cx_pattern_match.dict_variable_name) # <<<<<<<<<<<<<<
+ * )
+ * parent.append_child(cx_pattern_match)
*/
- __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_CxSetParamsFromDict); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 576, __pyx_L1_error)
+ __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_CxSetParamsFromDict); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 589, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
- __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_construct, __pyx_n_s_dict_variable_name); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 576, __pyx_L1_error)
+ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_cx_pattern_match, __pyx_n_s_dict_variable_name); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 589, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_5 = NULL;
__pyx_t_10 = 0;
@@ -12096,34 +12451,29 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_14CompiledRouter_20_generat
__pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_7, __pyx_callargs+1-__pyx_t_10, 1+__pyx_t_10);
__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, 576, __pyx_L1_error)
+ if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 589, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
}
- __Pyx_DECREF_SET(__pyx_v_setter, __pyx_t_1);
- __pyx_t_1 = 0;
- /* "falcon/routing/compiled.py":577
- * construct = _CxVariableFromPatternMatchPrefetched(len(params_stack) + 1)
- * setter = _CxSetParamsFromDict(construct.dict_variable_name)
- * params_stack.append(setter) # <<<<<<<<<<<<<<
- * parent.append_child(construct)
- *
+ /* "falcon/routing/compiled.py":588
+ * len(params_stack) + 1
+ * )
+ * params_stack.append( # <<<<<<<<<<<<<<
+ * _CxSetParamsFromDict(cx_pattern_match.dict_variable_name)
+ * )
*/
- if (unlikely(__pyx_v_params_stack == Py_None)) {
- PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "append");
- __PYX_ERR(0, 577, __pyx_L1_error)
- }
- __pyx_t_12 = __Pyx_PyList_Append(__pyx_v_params_stack, __pyx_v_setter); if (unlikely(__pyx_t_12 == ((int)-1))) __PYX_ERR(0, 577, __pyx_L1_error)
+ __pyx_t_12 = __Pyx_PyObject_Append(__pyx_v_params_stack, __pyx_t_1); if (unlikely(__pyx_t_12 == ((int)-1))) __PYX_ERR(0, 588, __pyx_L1_error)
+ __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
- /* "falcon/routing/compiled.py":578
- * setter = _CxSetParamsFromDict(construct.dict_variable_name)
- * params_stack.append(setter)
- * parent.append_child(construct) # <<<<<<<<<<<<<<
+ /* "falcon/routing/compiled.py":591
+ * _CxSetParamsFromDict(cx_pattern_match.dict_variable_name)
+ * )
+ * parent.append_child(cx_pattern_match) # <<<<<<<<<<<<<<
*
* return parent
*/
- __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_parent, __pyx_n_s_append_child); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 578, __pyx_L1_error)
+ __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_parent, __pyx_n_s_append_child); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 591, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__pyx_t_2 = NULL;
__pyx_t_10 = 0;
@@ -12138,42 +12488,42 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_14CompiledRouter_20_generat
}
}
{
- PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_v_construct};
+ PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_v_cx_pattern_match};
__pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_7, __pyx_callargs+1-__pyx_t_10, 1+__pyx_t_10);
__Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
- if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 578, __pyx_L1_error)
+ if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 591, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
- /* "falcon/routing/compiled.py":574
+ /* "falcon/routing/compiled.py":584
* # NOTE(kgriffs): Add remaining fields that were not
* # converted, if any.
* if node.num_fields > len(node.var_converter_map): # <<<<<<<<<<<<<<
- * construct = _CxVariableFromPatternMatchPrefetched(len(params_stack) + 1)
- * setter = _CxSetParamsFromDict(construct.dict_variable_name)
+ * cx_pattern_match = _CxVariableFromPatternMatchPrefetched(
+ * len(params_stack) + 1
*/
}
- /* "falcon/routing/compiled.py":580
- * parent.append_child(construct)
+ /* "falcon/routing/compiled.py":593
+ * parent.append_child(cx_pattern_match)
*
* return parent # <<<<<<<<<<<<<<
*
- * def _compile(self):
+ * def _compile(self) -> 'Callable': # TODO type better
*/
__Pyx_XDECREF(__pyx_r);
__Pyx_INCREF(__pyx_v_parent);
__pyx_r = __pyx_v_parent;
goto __pyx_L0;
- /* "falcon/routing/compiled.py":547
+ /* "falcon/routing/compiled.py":555
* parent.append_child(_CxReturnNone())
*
* def _generate_conversion_ast( # <<<<<<<<<<<<<<
- * self, parent, node: 'CompiledRouterNode', params_stack: list
- * ):
+ * self,
+ * parent: '_CxParent',
*/
/* function exit code */
@@ -12187,23 +12537,23 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_14CompiledRouter_20_generat
__Pyx_AddTraceback("falcon.routing.compiled.CompiledRouter._generate_conversion_ast", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
- __Pyx_XDECREF(__pyx_v_construct);
- __Pyx_XDECREF(__pyx_v_setter);
__Pyx_XDECREF(__pyx_v_field_name);
__Pyx_XDECREF(__pyx_v_converter_name);
__Pyx_XDECREF(__pyx_v_converter_argstr);
__Pyx_XDECREF(__pyx_v_converter_class);
__Pyx_XDECREF(__pyx_v_converter_obj);
+ __Pyx_XDECREF(__pyx_v_cx_converter);
+ __Pyx_XDECREF(__pyx_v_cx_pattern_match);
__Pyx_XDECREF(__pyx_v_parent);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
-/* "falcon/routing/compiled.py":582
+/* "falcon/routing/compiled.py":595
* return parent
*
- * def _compile(self): # <<<<<<<<<<<<<<
+ * def _compile(self) -> 'Callable': # TODO type better # <<<<<<<<<<<<<<
* """Generate Python code for the entire routing tree.
*
*/
@@ -12255,12 +12605,12 @@ PyObject *__pyx_args, PyObject *__pyx_kwds
switch (__pyx_nargs) {
case 0:
if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_self)) != 0)) kw_args--;
- else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 582, __pyx_L3_error)
+ else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 595, __pyx_L3_error)
else goto __pyx_L5_argtuple_error;
}
if (unlikely(kw_args > 0)) {
const Py_ssize_t kwd_pos_args = __pyx_nargs;
- if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_compile") < 0)) __PYX_ERR(0, 582, __pyx_L3_error)
+ if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_compile") < 0)) __PYX_ERR(0, 595, __pyx_L3_error)
}
} else if (unlikely(__pyx_nargs != 1)) {
goto __pyx_L5_argtuple_error;
@@ -12271,7 +12621,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
- __Pyx_RaiseArgtupleInvalid("_compile", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 582, __pyx_L3_error)
+ __Pyx_RaiseArgtupleInvalid("_compile", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 595, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("falcon.routing.compiled.CompiledRouter._compile", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
@@ -12302,27 +12652,27 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_14CompiledRouter_22_compile
int __pyx_clineno = 0;
__Pyx_RefNannySetupContext("_compile", 0);
- /* "falcon/routing/compiled.py":591
+ /* "falcon/routing/compiled.py":604
* src_lines = [
* 'def find(path, return_values, patterns, converters, params):',
* _TAB_STR + 'path_len = len(path)', # <<<<<<<<<<<<<<
* ]
*
*/
- __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_TAB_STR); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 591, __pyx_L1_error)
+ __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_TAB_STR); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 604, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
- __pyx_t_2 = PyNumber_Add(__pyx_t_1, __pyx_kp_u_path_len_len_path); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 591, __pyx_L1_error)
+ __pyx_t_2 = PyNumber_Add(__pyx_t_1, __pyx_kp_u_path_len_len_path); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 604, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
- /* "falcon/routing/compiled.py":589
+ /* "falcon/routing/compiled.py":602
* """
*
* src_lines = [ # <<<<<<<<<<<<<<
* 'def find(path, return_values, patterns, converters, params):',
* _TAB_STR + 'path_len = len(path)',
*/
- __pyx_t_1 = PyList_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 589, __pyx_L1_error)
+ __pyx_t_1 = PyList_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 602, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_INCREF(__pyx_kp_u_def_find_path_return_values_patt);
__Pyx_GIVEREF(__pyx_kp_u_def_find_path_return_values_patt);
@@ -12333,50 +12683,50 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_14CompiledRouter_22_compile
__pyx_v_src_lines = ((PyObject*)__pyx_t_1);
__pyx_t_1 = 0;
- /* "falcon/routing/compiled.py":594
+ /* "falcon/routing/compiled.py":607
* ]
*
* self._return_values = [] # <<<<<<<<<<<<<<
* self._patterns = []
* self._converters = []
*/
- __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 594, __pyx_L1_error)
+ __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 607, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
- if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_return_values, __pyx_t_1) < 0) __PYX_ERR(0, 594, __pyx_L1_error)
+ if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_return_values, __pyx_t_1) < 0) __PYX_ERR(0, 607, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
- /* "falcon/routing/compiled.py":595
+ /* "falcon/routing/compiled.py":608
*
* self._return_values = []
* self._patterns = [] # <<<<<<<<<<<<<<
* self._converters = []
*
*/
- __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 595, __pyx_L1_error)
+ __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 608, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
- if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_patterns, __pyx_t_1) < 0) __PYX_ERR(0, 595, __pyx_L1_error)
+ if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_patterns, __pyx_t_1) < 0) __PYX_ERR(0, 608, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
- /* "falcon/routing/compiled.py":596
+ /* "falcon/routing/compiled.py":609
* self._return_values = []
* self._patterns = []
* self._converters = [] # <<<<<<<<<<<<<<
*
* self._ast = _CxParent()
*/
- __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 596, __pyx_L1_error)
+ __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 609, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
- if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_converters, __pyx_t_1) < 0) __PYX_ERR(0, 596, __pyx_L1_error)
+ if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_converters, __pyx_t_1) < 0) __PYX_ERR(0, 609, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
- /* "falcon/routing/compiled.py":598
+ /* "falcon/routing/compiled.py":611
* self._converters = []
*
* self._ast = _CxParent() # <<<<<<<<<<<<<<
* self._generate_ast(
* self._roots, self._ast, self._return_values, self._patterns, params_stack=[]
*/
- __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_CxParent); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 598, __pyx_L1_error)
+ __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_CxParent); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 611, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_3 = NULL;
__pyx_t_4 = 0;
@@ -12394,47 +12744,47 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_14CompiledRouter_22_compile
PyObject *__pyx_callargs[1] = {__pyx_t_3, };
__pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_4, 0+__pyx_t_4);
__Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
- if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 598, __pyx_L1_error)
+ if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 611, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
}
- if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_ast, __pyx_t_1) < 0) __PYX_ERR(0, 598, __pyx_L1_error)
+ if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_ast, __pyx_t_1) < 0) __PYX_ERR(0, 611, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
- /* "falcon/routing/compiled.py":599
+ /* "falcon/routing/compiled.py":612
*
* self._ast = _CxParent()
* self._generate_ast( # <<<<<<<<<<<<<<
* self._roots, self._ast, self._return_values, self._patterns, params_stack=[]
* )
*/
- __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_generate_ast); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 599, __pyx_L1_error)
+ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_generate_ast); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 612, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
- /* "falcon/routing/compiled.py":600
+ /* "falcon/routing/compiled.py":613
* self._ast = _CxParent()
* self._generate_ast(
* self._roots, self._ast, self._return_values, self._patterns, params_stack=[] # <<<<<<<<<<<<<<
* )
*
*/
- __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_roots); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 600, __pyx_L1_error)
+ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_roots); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 613, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
- __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_ast); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 600, __pyx_L1_error)
+ __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_ast); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 613, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
- __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_return_values); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 600, __pyx_L1_error)
+ __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_return_values); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 613, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
- __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_patterns); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 600, __pyx_L1_error)
+ __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_patterns); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 613, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
- /* "falcon/routing/compiled.py":599
+ /* "falcon/routing/compiled.py":612
*
* self._ast = _CxParent()
* self._generate_ast( # <<<<<<<<<<<<<<
* self._roots, self._ast, self._return_values, self._patterns, params_stack=[]
* )
*/
- __pyx_t_7 = PyTuple_New(4); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 599, __pyx_L1_error)
+ __pyx_t_7 = PyTuple_New(4); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 612, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__Pyx_GIVEREF(__pyx_t_2);
PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_2);
@@ -12449,44 +12799,44 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_14CompiledRouter_22_compile
__pyx_t_5 = 0;
__pyx_t_6 = 0;
- /* "falcon/routing/compiled.py":600
+ /* "falcon/routing/compiled.py":613
* self._ast = _CxParent()
* self._generate_ast(
* self._roots, self._ast, self._return_values, self._patterns, params_stack=[] # <<<<<<<<<<<<<<
* )
*
*/
- __pyx_t_6 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 600, __pyx_L1_error)
+ __pyx_t_6 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 613, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
- __pyx_t_5 = PyList_New(0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 600, __pyx_L1_error)
+ __pyx_t_5 = PyList_New(0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 613, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
- if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_params_stack, __pyx_t_5) < 0) __PYX_ERR(0, 600, __pyx_L1_error)
+ if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_params_stack, __pyx_t_5) < 0) __PYX_ERR(0, 613, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
- /* "falcon/routing/compiled.py":599
+ /* "falcon/routing/compiled.py":612
*
* self._ast = _CxParent()
* self._generate_ast( # <<<<<<<<<<<<<<
* self._roots, self._ast, self._return_values, self._patterns, params_stack=[]
* )
*/
- __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_7, __pyx_t_6); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 599, __pyx_L1_error)
+ __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_7, __pyx_t_6); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 612, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
- /* "falcon/routing/compiled.py":603
+ /* "falcon/routing/compiled.py":616
* )
*
* src_lines.append(self._ast.src(0)) # <<<<<<<<<<<<<<
*
* src_lines.append(
*/
- __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_ast); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 603, __pyx_L1_error)
+ __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_ast); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 616, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
- __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_src); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 603, __pyx_L1_error)
+ __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_src); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 616, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__pyx_t_6 = NULL;
@@ -12505,78 +12855,78 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_14CompiledRouter_22_compile
PyObject *__pyx_callargs[2] = {__pyx_t_6, __pyx_int_0};
__pyx_t_5 = __Pyx_PyObject_FastCall(__pyx_t_7, __pyx_callargs+1-__pyx_t_4, 1+__pyx_t_4);
__Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
- if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 603, __pyx_L1_error)
+ if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 616, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
}
- __pyx_t_8 = __Pyx_PyList_Append(__pyx_v_src_lines, __pyx_t_5); if (unlikely(__pyx_t_8 == ((int)-1))) __PYX_ERR(0, 603, __pyx_L1_error)
+ __pyx_t_8 = __Pyx_PyList_Append(__pyx_v_src_lines, __pyx_t_5); if (unlikely(__pyx_t_8 == ((int)-1))) __PYX_ERR(0, 616, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
- /* "falcon/routing/compiled.py":607
+ /* "falcon/routing/compiled.py":620
* src_lines.append(
* # PERF(kgriffs): Explicit return of None is faster than implicit
* _TAB_STR # <<<<<<<<<<<<<<
* + 'return None'
* )
*/
- __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_TAB_STR); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 607, __pyx_L1_error)
+ __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_TAB_STR); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 620, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
- /* "falcon/routing/compiled.py":608
+ /* "falcon/routing/compiled.py":621
* # PERF(kgriffs): Explicit return of None is faster than implicit
* _TAB_STR
* + 'return None' # <<<<<<<<<<<<<<
* )
*
*/
- __pyx_t_7 = PyNumber_Add(__pyx_t_5, __pyx_kp_u_return_None); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 608, __pyx_L1_error)
+ __pyx_t_7 = PyNumber_Add(__pyx_t_5, __pyx_kp_u_return_None); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 621, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
- /* "falcon/routing/compiled.py":605
+ /* "falcon/routing/compiled.py":618
* src_lines.append(self._ast.src(0))
*
* src_lines.append( # <<<<<<<<<<<<<<
* # PERF(kgriffs): Explicit return of None is faster than implicit
* _TAB_STR
*/
- __pyx_t_8 = __Pyx_PyList_Append(__pyx_v_src_lines, __pyx_t_7); if (unlikely(__pyx_t_8 == ((int)-1))) __PYX_ERR(0, 605, __pyx_L1_error)
+ __pyx_t_8 = __Pyx_PyList_Append(__pyx_v_src_lines, __pyx_t_7); if (unlikely(__pyx_t_8 == ((int)-1))) __PYX_ERR(0, 618, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
- /* "falcon/routing/compiled.py":611
+ /* "falcon/routing/compiled.py":624
* )
*
* self._finder_src = '\n'.join(src_lines) # <<<<<<<<<<<<<<
*
- * scope = {}
+ * scope: 'Dict[str, Callable]' = {}
*/
- __pyx_t_7 = PyUnicode_Join(__pyx_kp_u__12, __pyx_v_src_lines); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 611, __pyx_L1_error)
+ __pyx_t_7 = PyUnicode_Join(__pyx_kp_u__13, __pyx_v_src_lines); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 624, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
- if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_finder_src, __pyx_t_7) < 0) __PYX_ERR(0, 611, __pyx_L1_error)
+ if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_finder_src, __pyx_t_7) < 0) __PYX_ERR(0, 624, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
- /* "falcon/routing/compiled.py":613
+ /* "falcon/routing/compiled.py":626
* self._finder_src = '\n'.join(src_lines)
*
- * scope = {} # <<<<<<<<<<<<<<
+ * scope: 'Dict[str, Callable]' = {} # <<<<<<<<<<<<<<
* exec(compile(self._finder_src, '<string>', 'exec'), scope)
*
*/
- __pyx_t_7 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 613, __pyx_L1_error)
+ __pyx_t_7 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 626, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__pyx_v_scope = ((PyObject*)__pyx_t_7);
__pyx_t_7 = 0;
- /* "falcon/routing/compiled.py":614
+ /* "falcon/routing/compiled.py":627
*
- * scope = {}
+ * scope: 'Dict[str, Callable]' = {}
* exec(compile(self._finder_src, '<string>', 'exec'), scope) # <<<<<<<<<<<<<<
*
* return scope['find']
*/
- __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_finder_src); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 614, __pyx_L1_error)
+ __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_finder_src); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 627, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
- __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 614, __pyx_L1_error)
+ __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 627, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__Pyx_GIVEREF(__pyx_t_7);
PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_7);
@@ -12587,15 +12937,15 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_14CompiledRouter_22_compile
__Pyx_GIVEREF(__pyx_n_u_exec);
PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_n_u_exec);
__pyx_t_7 = 0;
- __pyx_t_7 = __Pyx_PyObject_Call(__pyx_builtin_compile, __pyx_t_5, NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 614, __pyx_L1_error)
+ __pyx_t_7 = __Pyx_PyObject_Call(__pyx_builtin_compile, __pyx_t_5, NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 627, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
- __pyx_t_5 = __Pyx_PyExec2(__pyx_t_7, __pyx_v_scope); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 614, __pyx_L1_error)
+ __pyx_t_5 = __Pyx_PyExec2(__pyx_t_7, __pyx_v_scope); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 627, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
- /* "falcon/routing/compiled.py":616
+ /* "falcon/routing/compiled.py":629
* exec(compile(self._finder_src, '<string>', 'exec'), scope)
*
* return scope['find'] # <<<<<<<<<<<<<<
@@ -12603,16 +12953,16 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_14CompiledRouter_22_compile
* def _instantiate_converter(self, klass, argstr=None):
*/
__Pyx_XDECREF(__pyx_r);
- __pyx_t_5 = __Pyx_PyDict_GetItem(__pyx_v_scope, __pyx_n_u_find_2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 616, __pyx_L1_error)
+ __pyx_t_5 = __Pyx_PyDict_GetItem(__pyx_v_scope, __pyx_n_u_find_2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 629, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__pyx_r = __pyx_t_5;
__pyx_t_5 = 0;
goto __pyx_L0;
- /* "falcon/routing/compiled.py":582
+ /* "falcon/routing/compiled.py":595
* return parent
*
- * def _compile(self): # <<<<<<<<<<<<<<
+ * def _compile(self) -> 'Callable': # TODO type better # <<<<<<<<<<<<<<
* """Generate Python code for the entire routing tree.
*
*/
@@ -12635,7 +12985,7 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_14CompiledRouter_22_compile
return __pyx_r;
}
-/* "falcon/routing/compiled.py":618
+/* "falcon/routing/compiled.py":631
* return scope['find']
*
* def _instantiate_converter(self, klass, argstr=None): # <<<<<<<<<<<<<<
@@ -12696,26 +13046,26 @@ PyObject *__pyx_args, PyObject *__pyx_kwds
switch (__pyx_nargs) {
case 0:
if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_self)) != 0)) kw_args--;
- else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 618, __pyx_L3_error)
+ else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 631, __pyx_L3_error)
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_klass)) != 0)) kw_args--;
- else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 618, __pyx_L3_error)
+ else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 631, __pyx_L3_error)
else {
- __Pyx_RaiseArgtupleInvalid("_instantiate_converter", 0, 2, 3, 1); __PYX_ERR(0, 618, __pyx_L3_error)
+ __Pyx_RaiseArgtupleInvalid("_instantiate_converter", 0, 2, 3, 1); __PYX_ERR(0, 631, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 2:
if (kw_args > 0) {
PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_argstr);
if (value) { values[2] = value; kw_args--; }
- else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 618, __pyx_L3_error)
+ else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 631, __pyx_L3_error)
}
}
if (unlikely(kw_args > 0)) {
const Py_ssize_t kwd_pos_args = __pyx_nargs;
- if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_instantiate_converter") < 0)) __PYX_ERR(0, 618, __pyx_L3_error)
+ if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_instantiate_converter") < 0)) __PYX_ERR(0, 631, __pyx_L3_error)
}
} else {
switch (__pyx_nargs) {
@@ -12733,7 +13083,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
- __Pyx_RaiseArgtupleInvalid("_instantiate_converter", 0, 2, 3, __pyx_nargs); __PYX_ERR(0, 618, __pyx_L3_error)
+ __Pyx_RaiseArgtupleInvalid("_instantiate_converter", 0, 2, 3, __pyx_nargs); __PYX_ERR(0, 631, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("falcon.routing.compiled.CompiledRouter._instantiate_converter", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
@@ -12762,7 +13112,7 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_14CompiledRouter_24_instant
int __pyx_clineno = 0;
__Pyx_RefNannySetupContext("_instantiate_converter", 0);
- /* "falcon/routing/compiled.py":619
+ /* "falcon/routing/compiled.py":632
*
* def _instantiate_converter(self, klass, argstr=None):
* if argstr is None: # <<<<<<<<<<<<<<
@@ -12773,7 +13123,7 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_14CompiledRouter_24_instant
__pyx_t_2 = (__pyx_t_1 != 0);
if (__pyx_t_2) {
- /* "falcon/routing/compiled.py":620
+ /* "falcon/routing/compiled.py":633
* def _instantiate_converter(self, klass, argstr=None):
* if argstr is None:
* return klass() # <<<<<<<<<<<<<<
@@ -12798,7 +13148,7 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_14CompiledRouter_24_instant
PyObject *__pyx_callargs[1] = {__pyx_t_5, };
__pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_6, 0+__pyx_t_6);
__Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
- if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 620, __pyx_L1_error)
+ if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 633, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
}
@@ -12806,7 +13156,7 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_14CompiledRouter_24_instant
__pyx_t_3 = 0;
goto __pyx_L0;
- /* "falcon/routing/compiled.py":619
+ /* "falcon/routing/compiled.py":632
*
* def _instantiate_converter(self, klass, argstr=None):
* if argstr is None: # <<<<<<<<<<<<<<
@@ -12815,16 +13165,16 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_14CompiledRouter_24_instant
*/
}
- /* "falcon/routing/compiled.py":623
+ /* "falcon/routing/compiled.py":636
*
* # NOTE(kgriffs): Don't try this at home. ;)
* src = '{0}({1})'.format(klass.__name__, argstr) # <<<<<<<<<<<<<<
* return eval(src, {klass.__name__: klass})
*
*/
- __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_kp_u_0_1, __pyx_n_s_format); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 623, __pyx_L1_error)
+ __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_kp_u_0_1, __pyx_n_s_format); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 636, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
- __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_klass, __pyx_n_s_name); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 623, __pyx_L1_error)
+ __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_klass, __pyx_n_s_name); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 636, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__pyx_t_7 = NULL;
__pyx_t_6 = 0;
@@ -12843,14 +13193,14 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_14CompiledRouter_24_instant
__pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_6, 2+__pyx_t_6);
__Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
- if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 623, __pyx_L1_error)
+ if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 636, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
}
__pyx_v_src = __pyx_t_3;
__pyx_t_3 = 0;
- /* "falcon/routing/compiled.py":624
+ /* "falcon/routing/compiled.py":637
* # NOTE(kgriffs): Don't try this at home. ;)
* src = '{0}({1})'.format(klass.__name__, argstr)
* return eval(src, {klass.__name__: klass}) # <<<<<<<<<<<<<<
@@ -12858,13 +13208,13 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_14CompiledRouter_24_instant
* def _compile_and_find(self, path, _return_values, _patterns, _converters, params):
*/
__Pyx_XDECREF(__pyx_r);
- __pyx_t_3 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 624, __pyx_L1_error)
+ __pyx_t_3 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 637, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
- __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_klass, __pyx_n_s_name); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 624, __pyx_L1_error)
+ __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_klass, __pyx_n_s_name); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 637, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
- if (PyDict_SetItem(__pyx_t_3, __pyx_t_4, __pyx_v_klass) < 0) __PYX_ERR(0, 624, __pyx_L1_error)
+ if (PyDict_SetItem(__pyx_t_3, __pyx_t_4, __pyx_v_klass) < 0) __PYX_ERR(0, 637, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
- __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 624, __pyx_L1_error)
+ __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 637, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_INCREF(__pyx_v_src);
__Pyx_GIVEREF(__pyx_v_src);
@@ -12872,14 +13222,14 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_14CompiledRouter_24_instant
__Pyx_GIVEREF(__pyx_t_3);
PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_3);
__pyx_t_3 = 0;
- __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_eval, __pyx_t_4, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 624, __pyx_L1_error)
+ __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_eval, __pyx_t_4, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 637, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__pyx_r = __pyx_t_3;
__pyx_t_3 = 0;
goto __pyx_L0;
- /* "falcon/routing/compiled.py":618
+ /* "falcon/routing/compiled.py":631
* return scope['find']
*
* def _instantiate_converter(self, klass, argstr=None): # <<<<<<<<<<<<<<
@@ -12902,7 +13252,7 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_14CompiledRouter_24_instant
return __pyx_r;
}
-/* "falcon/routing/compiled.py":626
+/* "falcon/routing/compiled.py":639
* return eval(src, {klass.__name__: klass})
*
* def _compile_and_find(self, path, _return_values, _patterns, _converters, params): # <<<<<<<<<<<<<<
@@ -12972,47 +13322,47 @@ PyObject *__pyx_args, PyObject *__pyx_kwds
switch (__pyx_nargs) {
case 0:
if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_self)) != 0)) kw_args--;
- else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 626, __pyx_L3_error)
+ else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 639, __pyx_L3_error)
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_path)) != 0)) kw_args--;
- else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 626, __pyx_L3_error)
+ else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 639, __pyx_L3_error)
else {
- __Pyx_RaiseArgtupleInvalid("_compile_and_find", 1, 6, 6, 1); __PYX_ERR(0, 626, __pyx_L3_error)
+ __Pyx_RaiseArgtupleInvalid("_compile_and_find", 1, 6, 6, 1); __PYX_ERR(0, 639, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 2:
if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_return_values)) != 0)) kw_args--;
- else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 626, __pyx_L3_error)
+ else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 639, __pyx_L3_error)
else {
- __Pyx_RaiseArgtupleInvalid("_compile_and_find", 1, 6, 6, 2); __PYX_ERR(0, 626, __pyx_L3_error)
+ __Pyx_RaiseArgtupleInvalid("_compile_and_find", 1, 6, 6, 2); __PYX_ERR(0, 639, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 3:
if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_patterns)) != 0)) kw_args--;
- else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 626, __pyx_L3_error)
+ else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 639, __pyx_L3_error)
else {
- __Pyx_RaiseArgtupleInvalid("_compile_and_find", 1, 6, 6, 3); __PYX_ERR(0, 626, __pyx_L3_error)
+ __Pyx_RaiseArgtupleInvalid("_compile_and_find", 1, 6, 6, 3); __PYX_ERR(0, 639, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 4:
if (likely((values[4] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_converters)) != 0)) kw_args--;
- else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 626, __pyx_L3_error)
+ else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 639, __pyx_L3_error)
else {
- __Pyx_RaiseArgtupleInvalid("_compile_and_find", 1, 6, 6, 4); __PYX_ERR(0, 626, __pyx_L3_error)
+ __Pyx_RaiseArgtupleInvalid("_compile_and_find", 1, 6, 6, 4); __PYX_ERR(0, 639, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 5:
if (likely((values[5] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_params)) != 0)) kw_args--;
- else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 626, __pyx_L3_error)
+ else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 639, __pyx_L3_error)
else {
- __Pyx_RaiseArgtupleInvalid("_compile_and_find", 1, 6, 6, 5); __PYX_ERR(0, 626, __pyx_L3_error)
+ __Pyx_RaiseArgtupleInvalid("_compile_and_find", 1, 6, 6, 5); __PYX_ERR(0, 639, __pyx_L3_error)
}
}
if (unlikely(kw_args > 0)) {
const Py_ssize_t kwd_pos_args = __pyx_nargs;
- if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_compile_and_find") < 0)) __PYX_ERR(0, 626, __pyx_L3_error)
+ if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_compile_and_find") < 0)) __PYX_ERR(0, 639, __pyx_L3_error)
}
} else if (unlikely(__pyx_nargs != 6)) {
goto __pyx_L5_argtuple_error;
@@ -13033,7 +13383,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
- __Pyx_RaiseArgtupleInvalid("_compile_and_find", 1, 6, 6, __pyx_nargs); __PYX_ERR(0, 626, __pyx_L3_error)
+ __Pyx_RaiseArgtupleInvalid("_compile_and_find", 1, 6, 6, __pyx_nargs); __PYX_ERR(0, 639, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("falcon.routing.compiled.CompiledRouter._compile_and_find", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
@@ -13068,7 +13418,7 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_14CompiledRouter_26_compile
int __pyx_clineno = 0;
__Pyx_RefNannySetupContext("_compile_and_find", 0);
- /* "falcon/routing/compiled.py":635
+ /* "falcon/routing/compiled.py":648
* :meth:`.CompiledRouter._compile`.
* """
* with self._compile_lock: # <<<<<<<<<<<<<<
@@ -13076,11 +13426,11 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_14CompiledRouter_26_compile
* # NOTE(caselit): replace the find with the result of the
*/
/*with:*/ {
- __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_compile_lock); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 635, __pyx_L1_error)
+ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_compile_lock); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 648, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
- __pyx_t_2 = __Pyx_PyObject_LookupSpecial(__pyx_t_1, __pyx_n_s_exit); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 635, __pyx_L1_error)
+ __pyx_t_2 = __Pyx_PyObject_LookupSpecial(__pyx_t_1, __pyx_n_s_exit); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 648, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
- __pyx_t_4 = __Pyx_PyObject_LookupSpecial(__pyx_t_1, __pyx_n_s_enter); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 635, __pyx_L3_error)
+ __pyx_t_4 = __Pyx_PyObject_LookupSpecial(__pyx_t_1, __pyx_n_s_enter); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 648, __pyx_L3_error)
__Pyx_GOTREF(__pyx_t_4);
__pyx_t_5 = NULL;
__pyx_t_6 = 0;
@@ -13098,7 +13448,7 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_14CompiledRouter_26_compile
PyObject *__pyx_callargs[1] = {__pyx_t_5, };
__pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_6, 0+__pyx_t_6);
__Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
- if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 635, __pyx_L3_error)
+ if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 648, __pyx_L3_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
}
@@ -13114,32 +13464,32 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_14CompiledRouter_26_compile
__Pyx_XGOTREF(__pyx_t_9);
/*try:*/ {
- /* "falcon/routing/compiled.py":636
+ /* "falcon/routing/compiled.py":649
* """
* with self._compile_lock:
* if self._find == self._compile_and_find: # <<<<<<<<<<<<<<
* # NOTE(caselit): replace the find with the result of the
* # router compilation
*/
- __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_find); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 636, __pyx_L7_error)
+ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_find); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 649, __pyx_L7_error)
__Pyx_GOTREF(__pyx_t_1);
- __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_compile_and_find); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 636, __pyx_L7_error)
+ __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_compile_and_find); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 649, __pyx_L7_error)
__Pyx_GOTREF(__pyx_t_3);
- __pyx_t_4 = PyObject_RichCompare(__pyx_t_1, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 636, __pyx_L7_error)
+ __pyx_t_4 = PyObject_RichCompare(__pyx_t_1, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 649, __pyx_L7_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
- __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely((__pyx_t_10 < 0))) __PYX_ERR(0, 636, __pyx_L7_error)
+ __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely((__pyx_t_10 < 0))) __PYX_ERR(0, 649, __pyx_L7_error)
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
if (__pyx_t_10) {
- /* "falcon/routing/compiled.py":639
+ /* "falcon/routing/compiled.py":652
* # NOTE(caselit): replace the find with the result of the
* # router compilation
* self._find = self._compile() # <<<<<<<<<<<<<<
* # NOTE(caselit): return_values, patterns, converters are reset by the _compile
* # method, so the updated ones must be used
*/
- __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_compile_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 639, __pyx_L7_error)
+ __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_compile_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 652, __pyx_L7_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_1 = NULL;
__pyx_t_6 = 0;
@@ -13157,14 +13507,14 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_14CompiledRouter_26_compile
PyObject *__pyx_callargs[1] = {__pyx_t_1, };
__pyx_t_4 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_6, 0+__pyx_t_6);
__Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
- if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 639, __pyx_L7_error)
+ if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 652, __pyx_L7_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
}
- if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_find, __pyx_t_4) < 0) __PYX_ERR(0, 639, __pyx_L7_error)
+ if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_find, __pyx_t_4) < 0) __PYX_ERR(0, 652, __pyx_L7_error)
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
- /* "falcon/routing/compiled.py":636
+ /* "falcon/routing/compiled.py":649
* """
* with self._compile_lock:
* if self._find == self._compile_and_find: # <<<<<<<<<<<<<<
@@ -13173,7 +13523,7 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_14CompiledRouter_26_compile
*/
}
- /* "falcon/routing/compiled.py":635
+ /* "falcon/routing/compiled.py":648
* :meth:`.CompiledRouter._compile`.
* """
* with self._compile_lock: # <<<<<<<<<<<<<<
@@ -13192,20 +13542,20 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_14CompiledRouter_26_compile
__Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
/*except:*/ {
__Pyx_AddTraceback("falcon.routing.compiled.CompiledRouter._compile_and_find", __pyx_clineno, __pyx_lineno, __pyx_filename);
- if (__Pyx_GetException(&__pyx_t_4, &__pyx_t_3, &__pyx_t_1) < 0) __PYX_ERR(0, 635, __pyx_L9_except_error)
+ if (__Pyx_GetException(&__pyx_t_4, &__pyx_t_3, &__pyx_t_1) < 0) __PYX_ERR(0, 648, __pyx_L9_except_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_GOTREF(__pyx_t_3);
__Pyx_GOTREF(__pyx_t_1);
- __pyx_t_5 = PyTuple_Pack(3, __pyx_t_4, __pyx_t_3, __pyx_t_1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 635, __pyx_L9_except_error)
+ __pyx_t_5 = PyTuple_Pack(3, __pyx_t_4, __pyx_t_3, __pyx_t_1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 648, __pyx_L9_except_error)
__Pyx_GOTREF(__pyx_t_5);
__pyx_t_11 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_5, NULL);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
- if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 635, __pyx_L9_except_error)
+ if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 648, __pyx_L9_except_error)
__Pyx_GOTREF(__pyx_t_11);
__pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_t_11);
__Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
- if (__pyx_t_10 < 0) __PYX_ERR(0, 635, __pyx_L9_except_error)
+ if (__pyx_t_10 < 0) __PYX_ERR(0, 648, __pyx_L9_except_error)
__pyx_t_12 = ((!(__pyx_t_10 != 0)) != 0);
if (unlikely(__pyx_t_12)) {
__Pyx_GIVEREF(__pyx_t_4);
@@ -13213,7 +13563,7 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_14CompiledRouter_26_compile
__Pyx_XGIVEREF(__pyx_t_1);
__Pyx_ErrRestoreWithState(__pyx_t_4, __pyx_t_3, __pyx_t_1);
__pyx_t_4 = 0; __pyx_t_3 = 0; __pyx_t_1 = 0;
- __PYX_ERR(0, 635, __pyx_L9_except_error)
+ __PYX_ERR(0, 648, __pyx_L9_except_error)
}
__Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
__Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
@@ -13237,9 +13587,9 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_14CompiledRouter_26_compile
/*finally:*/ {
/*normal exit:*/{
if (__pyx_t_2) {
- __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_tuple__13, NULL);
+ __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_tuple__14, NULL);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
- if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 635, __pyx_L1_error)
+ if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 648, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
}
@@ -13254,7 +13604,7 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_14CompiledRouter_26_compile
__pyx_L17:;
}
- /* "falcon/routing/compiled.py":642
+ /* "falcon/routing/compiled.py":655
* # NOTE(caselit): return_values, patterns, converters are reset by the _compile
* # method, so the updated ones must be used
* return self._find( # <<<<<<<<<<<<<<
@@ -13262,21 +13612,21 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_14CompiledRouter_26_compile
* )
*/
__Pyx_XDECREF(__pyx_r);
- __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_find); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 642, __pyx_L1_error)
+ __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_find); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 655, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
- /* "falcon/routing/compiled.py":643
+ /* "falcon/routing/compiled.py":656
* # method, so the updated ones must be used
* return self._find(
* path, self._return_values, self._patterns, self._converters, params # <<<<<<<<<<<<<<
* )
*
*/
- __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_return_values); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 643, __pyx_L1_error)
+ __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_return_values); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 656, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
- __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_patterns); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 643, __pyx_L1_error)
+ __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_patterns); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 656, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
- __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_converters); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 643, __pyx_L1_error)
+ __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_converters); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 656, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_13);
__pyx_t_14 = NULL;
__pyx_t_6 = 0;
@@ -13297,7 +13647,7 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_14CompiledRouter_26_compile
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
__Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
- if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 642, __pyx_L1_error)
+ if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 655, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
}
@@ -13305,7 +13655,7 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_14CompiledRouter_26_compile
__pyx_t_1 = 0;
goto __pyx_L0;
- /* "falcon/routing/compiled.py":626
+ /* "falcon/routing/compiled.py":639
* return eval(src, {klass.__name__: klass})
*
* def _compile_and_find(self, path, _return_values, _patterns, _converters, params): # <<<<<<<<<<<<<<
@@ -13329,12 +13679,12 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_14CompiledRouter_26_compile
return __pyx_r;
}
-/* "falcon/routing/compiled.py":650
+/* "falcon/routing/compiled.py":663
* """Represents a single URI segment in a URI."""
*
- * def __init__(self, raw_segment, method_map=None, resource=None, uri_template=None): # <<<<<<<<<<<<<<
- * self.children = []
- *
+ * def __init__( # <<<<<<<<<<<<<<
+ * self,
+ * raw_segment: str,
*/
/* Python wrapper */
@@ -13375,8 +13725,32 @@ PyObject *__pyx_args, PyObject *__pyx_kwds
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_raw_segment,&__pyx_n_s_method_map,&__pyx_n_s_resource,&__pyx_n_s_uri_template,0};
#endif
PyObject* values[5] = {0,0,0,0,0};
+
+ /* "falcon/routing/compiled.py":666
+ * self,
+ * raw_segment: str,
+ * method_map: 'Optional[dict]' = None, # <<<<<<<<<<<<<<
+ * resource: 'Optional[object]' = None,
+ * uri_template: 'Optional[str]' = None,
+ */
values[2] = ((PyObject *)((PyObject *)Py_None));
+
+ /* "falcon/routing/compiled.py":667
+ * raw_segment: str,
+ * method_map: 'Optional[dict]' = None,
+ * resource: 'Optional[object]' = None, # <<<<<<<<<<<<<<
+ * uri_template: 'Optional[str]' = None,
+ * ):
+ */
values[3] = ((PyObject *)((PyObject *)Py_None));
+
+ /* "falcon/routing/compiled.py":668
+ * method_map: 'Optional[dict]' = None,
+ * resource: 'Optional[object]' = None,
+ * uri_template: 'Optional[str]' = None, # <<<<<<<<<<<<<<
+ * ):
+ * self.children: 'List[CompiledRouterNode]' = []
+ */
values[4] = ((PyObject *)((PyObject *)Py_None));
if (__pyx_kwds) {
Py_ssize_t kw_args;
@@ -13398,40 +13772,40 @@ PyObject *__pyx_args, PyObject *__pyx_kwds
switch (__pyx_nargs) {
case 0:
if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_self)) != 0)) kw_args--;
- else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 650, __pyx_L3_error)
+ else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 663, __pyx_L3_error)
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_raw_segment)) != 0)) kw_args--;
- else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 650, __pyx_L3_error)
+ else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 663, __pyx_L3_error)
else {
- __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 5, 1); __PYX_ERR(0, 650, __pyx_L3_error)
+ __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 5, 1); __PYX_ERR(0, 663, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 2:
if (kw_args > 0) {
PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_method_map);
if (value) { values[2] = value; kw_args--; }
- else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 650, __pyx_L3_error)
+ else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 663, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 3:
if (kw_args > 0) {
PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_resource);
if (value) { values[3] = value; kw_args--; }
- else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 650, __pyx_L3_error)
+ else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 663, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 4:
if (kw_args > 0) {
PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_uri_template);
if (value) { values[4] = value; kw_args--; }
- else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 650, __pyx_L3_error)
+ else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 663, __pyx_L3_error)
}
}
if (unlikely(kw_args > 0)) {
const Py_ssize_t kwd_pos_args = __pyx_nargs;
- if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__init__") < 0)) __PYX_ERR(0, 650, __pyx_L3_error)
+ if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__init__") < 0)) __PYX_ERR(0, 663, __pyx_L3_error)
}
} else {
switch (__pyx_nargs) {
@@ -13448,22 +13822,35 @@ PyObject *__pyx_args, PyObject *__pyx_kwds
}
}
__pyx_v_self = values[0];
- __pyx_v_raw_segment = values[1];
+ __pyx_v_raw_segment = ((PyObject*)values[1]);
__pyx_v_method_map = values[2];
__pyx_v_resource = values[3];
__pyx_v_uri_template = values[4];
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
- __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 5, __pyx_nargs); __PYX_ERR(0, 650, __pyx_L3_error)
+ __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 5, __pyx_nargs); __PYX_ERR(0, 663, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("falcon.routing.compiled.CompiledRouterNode.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
+ if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_raw_segment), (&PyUnicode_Type), 1, "raw_segment", 1))) __PYX_ERR(0, 665, __pyx_L1_error)
__pyx_r = __pyx_pf_6falcon_7routing_8compiled_18CompiledRouterNode___init__(__pyx_self, __pyx_v_self, __pyx_v_raw_segment, __pyx_v_method_map, __pyx_v_resource, __pyx_v_uri_template);
+ /* "falcon/routing/compiled.py":663
+ * """Represents a single URI segment in a URI."""
+ *
+ * def __init__( # <<<<<<<<<<<<<<
+ * self,
+ * raw_segment: str,
+ */
+
/* function exit code */
+ goto __pyx_L0;
+ __pyx_L1_error:;
+ __pyx_r = NULL;
+ __pyx_L0:;
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
@@ -13492,121 +13879,121 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_18CompiledRouterNode___init
int __pyx_clineno = 0;
__Pyx_RefNannySetupContext("__init__", 0);
- /* "falcon/routing/compiled.py":651
- *
- * def __init__(self, raw_segment, method_map=None, resource=None, uri_template=None):
- * self.children = [] # <<<<<<<<<<<<<<
+ /* "falcon/routing/compiled.py":670
+ * uri_template: 'Optional[str]' = None,
+ * ):
+ * self.children: 'List[CompiledRouterNode]' = [] # <<<<<<<<<<<<<<
*
* self.raw_segment = raw_segment
*/
- __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 651, __pyx_L1_error)
+ __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 670, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
- if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_children, __pyx_t_1) < 0) __PYX_ERR(0, 651, __pyx_L1_error)
+ if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_children, __pyx_t_1) < 0) __PYX_ERR(0, 670, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
- /* "falcon/routing/compiled.py":653
- * self.children = []
+ /* "falcon/routing/compiled.py":672
+ * self.children: 'List[CompiledRouterNode]' = []
*
* self.raw_segment = raw_segment # <<<<<<<<<<<<<<
* self.method_map = method_map
* self.resource = resource
*/
- if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_raw_segment, __pyx_v_raw_segment) < 0) __PYX_ERR(0, 653, __pyx_L1_error)
+ if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_raw_segment, __pyx_v_raw_segment) < 0) __PYX_ERR(0, 672, __pyx_L1_error)
- /* "falcon/routing/compiled.py":654
+ /* "falcon/routing/compiled.py":673
*
* self.raw_segment = raw_segment
* self.method_map = method_map # <<<<<<<<<<<<<<
* self.resource = resource
* self.uri_template = uri_template
*/
- if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_method_map, __pyx_v_method_map) < 0) __PYX_ERR(0, 654, __pyx_L1_error)
+ if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_method_map, __pyx_v_method_map) < 0) __PYX_ERR(0, 673, __pyx_L1_error)
- /* "falcon/routing/compiled.py":655
+ /* "falcon/routing/compiled.py":674
* self.raw_segment = raw_segment
* self.method_map = method_map
* self.resource = resource # <<<<<<<<<<<<<<
* self.uri_template = uri_template
*
*/
- if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_resource, __pyx_v_resource) < 0) __PYX_ERR(0, 655, __pyx_L1_error)
+ if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_resource, __pyx_v_resource) < 0) __PYX_ERR(0, 674, __pyx_L1_error)
- /* "falcon/routing/compiled.py":656
+ /* "falcon/routing/compiled.py":675
* self.method_map = method_map
* self.resource = resource
* self.uri_template = uri_template # <<<<<<<<<<<<<<
*
* self.is_var = False
*/
- if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_uri_template, __pyx_v_uri_template) < 0) __PYX_ERR(0, 656, __pyx_L1_error)
+ if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_uri_template, __pyx_v_uri_template) < 0) __PYX_ERR(0, 675, __pyx_L1_error)
- /* "falcon/routing/compiled.py":658
+ /* "falcon/routing/compiled.py":677
* self.uri_template = uri_template
*
* self.is_var = False # <<<<<<<<<<<<<<
* self.is_complex = False
* self.num_fields = 0
*/
- if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_is_var, Py_False) < 0) __PYX_ERR(0, 658, __pyx_L1_error)
+ if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_is_var, Py_False) < 0) __PYX_ERR(0, 677, __pyx_L1_error)
- /* "falcon/routing/compiled.py":659
+ /* "falcon/routing/compiled.py":678
*
* self.is_var = False
* self.is_complex = False # <<<<<<<<<<<<<<
* self.num_fields = 0
*
*/
- if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_is_complex, Py_False) < 0) __PYX_ERR(0, 659, __pyx_L1_error)
+ if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_is_complex, Py_False) < 0) __PYX_ERR(0, 678, __pyx_L1_error)
- /* "falcon/routing/compiled.py":660
+ /* "falcon/routing/compiled.py":679
* self.is_var = False
* self.is_complex = False
* self.num_fields = 0 # <<<<<<<<<<<<<<
*
* # TODO(kgriffs): Rename these since the docs talk about "fields"
*/
- if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_num_fields, __pyx_int_0) < 0) __PYX_ERR(0, 660, __pyx_L1_error)
+ if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_num_fields, __pyx_int_0) < 0) __PYX_ERR(0, 679, __pyx_L1_error)
- /* "falcon/routing/compiled.py":664
+ /* "falcon/routing/compiled.py":683
* # TODO(kgriffs): Rename these since the docs talk about "fields"
* # or "field expressions", not "vars" or "variables".
- * self.var_name = None # <<<<<<<<<<<<<<
- * self.var_pattern = None
- * self.var_converter_map = []
+ * self.var_name: 'Optional[str]' = None # <<<<<<<<<<<<<<
+ * self.var_pattern: 'Optional[Pattern]' = None
+ * self.var_converter_map: 'List[tuple]' = []
*/
- if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_var_name, Py_None) < 0) __PYX_ERR(0, 664, __pyx_L1_error)
+ if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_var_name, Py_None) < 0) __PYX_ERR(0, 683, __pyx_L1_error)
- /* "falcon/routing/compiled.py":665
+ /* "falcon/routing/compiled.py":684
* # or "field expressions", not "vars" or "variables".
- * self.var_name = None
- * self.var_pattern = None # <<<<<<<<<<<<<<
- * self.var_converter_map = []
+ * self.var_name: 'Optional[str]' = None
+ * self.var_pattern: 'Optional[Pattern]' = None # <<<<<<<<<<<<<<
+ * self.var_converter_map: 'List[tuple]' = []
*
*/
- if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_var_pattern, Py_None) < 0) __PYX_ERR(0, 665, __pyx_L1_error)
+ if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_var_pattern, Py_None) < 0) __PYX_ERR(0, 684, __pyx_L1_error)
- /* "falcon/routing/compiled.py":666
- * self.var_name = None
- * self.var_pattern = None
- * self.var_converter_map = [] # <<<<<<<<<<<<<<
+ /* "falcon/routing/compiled.py":685
+ * self.var_name: 'Optional[str]' = None
+ * self.var_pattern: 'Optional[Pattern]' = None
+ * self.var_converter_map: 'List[tuple]' = [] # <<<<<<<<<<<<<<
*
* # NOTE(kgriffs): CompiledRouter.add_route validates field names,
*/
- __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 666, __pyx_L1_error)
+ __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 685, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
- if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_var_converter_map, __pyx_t_1) < 0) __PYX_ERR(0, 666, __pyx_L1_error)
+ if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_var_converter_map, __pyx_t_1) < 0) __PYX_ERR(0, 685, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
- /* "falcon/routing/compiled.py":671
+ /* "falcon/routing/compiled.py":690
* # so here we can just assume they are OK and use the simple
* # _FIELD_PATTERN to match them.
* matches = list(_FIELD_PATTERN.finditer(raw_segment)) # <<<<<<<<<<<<<<
*
* if not matches:
*/
- __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_FIELD_PATTERN); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 671, __pyx_L1_error)
+ __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_FIELD_PATTERN); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 690, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
- __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_finditer); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 671, __pyx_L1_error)
+ __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_finditer); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 690, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_t_2 = NULL;
@@ -13625,17 +14012,17 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_18CompiledRouterNode___init
PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_v_raw_segment};
__pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_4, 1+__pyx_t_4);
__Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
- if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 671, __pyx_L1_error)
+ if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 690, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
}
- __pyx_t_3 = __Pyx_PySequence_ListKeepNew(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 671, __pyx_L1_error)
+ __pyx_t_3 = __Pyx_PySequence_ListKeepNew(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 690, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_v_matches = ((PyObject*)__pyx_t_3);
__pyx_t_3 = 0;
- /* "falcon/routing/compiled.py":673
+ /* "falcon/routing/compiled.py":692
* matches = list(_FIELD_PATTERN.finditer(raw_segment))
*
* if not matches: # <<<<<<<<<<<<<<
@@ -13646,16 +14033,16 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_18CompiledRouterNode___init
__pyx_t_6 = ((!__pyx_t_5) != 0);
if (__pyx_t_6) {
- /* "falcon/routing/compiled.py":674
+ /* "falcon/routing/compiled.py":693
*
* if not matches:
* self.is_var = False # <<<<<<<<<<<<<<
* else:
* self.is_var = True
*/
- if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_is_var, Py_False) < 0) __PYX_ERR(0, 674, __pyx_L1_error)
+ if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_is_var, Py_False) < 0) __PYX_ERR(0, 693, __pyx_L1_error)
- /* "falcon/routing/compiled.py":673
+ /* "falcon/routing/compiled.py":692
* matches = list(_FIELD_PATTERN.finditer(raw_segment))
*
* if not matches: # <<<<<<<<<<<<<<
@@ -13665,7 +14052,7 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_18CompiledRouterNode___init
goto __pyx_L3;
}
- /* "falcon/routing/compiled.py":676
+ /* "falcon/routing/compiled.py":695
* self.is_var = False
* else:
* self.is_var = True # <<<<<<<<<<<<<<
@@ -13673,22 +14060,22 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_18CompiledRouterNode___init
*
*/
/*else*/ {
- if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_is_var, Py_True) < 0) __PYX_ERR(0, 676, __pyx_L1_error)
+ if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_is_var, Py_True) < 0) __PYX_ERR(0, 695, __pyx_L1_error)
- /* "falcon/routing/compiled.py":677
+ /* "falcon/routing/compiled.py":696
* else:
* self.is_var = True
* self.num_fields = len(matches) # <<<<<<<<<<<<<<
*
* for field in matches:
*/
- __pyx_t_7 = PyList_GET_SIZE(__pyx_v_matches); if (unlikely(__pyx_t_7 == ((Py_ssize_t)-1))) __PYX_ERR(0, 677, __pyx_L1_error)
- __pyx_t_3 = PyInt_FromSsize_t(__pyx_t_7); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 677, __pyx_L1_error)
+ __pyx_t_7 = PyList_GET_SIZE(__pyx_v_matches); if (unlikely(__pyx_t_7 == ((Py_ssize_t)-1))) __PYX_ERR(0, 696, __pyx_L1_error)
+ __pyx_t_3 = PyInt_FromSsize_t(__pyx_t_7); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 696, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
- if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_num_fields, __pyx_t_3) < 0) __PYX_ERR(0, 677, __pyx_L1_error)
+ if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_num_fields, __pyx_t_3) < 0) __PYX_ERR(0, 696, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
- /* "falcon/routing/compiled.py":679
+ /* "falcon/routing/compiled.py":698
* self.num_fields = len(matches)
*
* for field in matches: # <<<<<<<<<<<<<<
@@ -13699,22 +14086,22 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_18CompiledRouterNode___init
for (;;) {
if (__pyx_t_7 >= PyList_GET_SIZE(__pyx_t_3)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
- __pyx_t_1 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_7); __Pyx_INCREF(__pyx_t_1); __pyx_t_7++; if (unlikely((0 < 0))) __PYX_ERR(0, 679, __pyx_L1_error)
+ __pyx_t_1 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_7); __Pyx_INCREF(__pyx_t_1); __pyx_t_7++; if (unlikely((0 < 0))) __PYX_ERR(0, 698, __pyx_L1_error)
#else
- __pyx_t_1 = PySequence_ITEM(__pyx_t_3, __pyx_t_7); __pyx_t_7++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 679, __pyx_L1_error)
+ __pyx_t_1 = PySequence_ITEM(__pyx_t_3, __pyx_t_7); __pyx_t_7++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 698, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
#endif
__Pyx_XDECREF_SET(__pyx_v_field, __pyx_t_1);
__pyx_t_1 = 0;
- /* "falcon/routing/compiled.py":684
+ /* "falcon/routing/compiled.py":703
* # that don't match a known converter, so if a name is
* # given, we can just go ahead and use it.
* if field.group('cname'): # <<<<<<<<<<<<<<
* self.var_converter_map.append(
* (
*/
- __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_field, __pyx_n_s_group); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 684, __pyx_L1_error)
+ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_field, __pyx_n_s_group); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 703, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_8 = NULL;
__pyx_t_4 = 0;
@@ -13732,32 +14119,32 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_18CompiledRouterNode___init
PyObject *__pyx_callargs[2] = {__pyx_t_8, __pyx_n_u_cname};
__pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_4, 1+__pyx_t_4);
__Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
- if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 684, __pyx_L1_error)
+ if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 703, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
}
- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(0, 684, __pyx_L1_error)
+ __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(0, 703, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
if (__pyx_t_6) {
- /* "falcon/routing/compiled.py":685
+ /* "falcon/routing/compiled.py":704
* # given, we can just go ahead and use it.
* if field.group('cname'):
* self.var_converter_map.append( # <<<<<<<<<<<<<<
* (
* field.group('fname'),
*/
- __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_var_converter_map); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 685, __pyx_L1_error)
+ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_var_converter_map); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 704, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
- /* "falcon/routing/compiled.py":687
+ /* "falcon/routing/compiled.py":706
* self.var_converter_map.append(
* (
* field.group('fname'), # <<<<<<<<<<<<<<
* field.group('cname'),
* field.group('argstr'),
*/
- __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_field, __pyx_n_s_group); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 687, __pyx_L1_error)
+ __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_field, __pyx_n_s_group); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 706, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_8);
__pyx_t_9 = NULL;
__pyx_t_4 = 0;
@@ -13775,19 +14162,19 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_18CompiledRouterNode___init
PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_n_u_fname};
__pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_8, __pyx_callargs+1-__pyx_t_4, 1+__pyx_t_4);
__Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
- if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 687, __pyx_L1_error)
+ if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 706, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
}
- /* "falcon/routing/compiled.py":688
+ /* "falcon/routing/compiled.py":707
* (
* field.group('fname'),
* field.group('cname'), # <<<<<<<<<<<<<<
* field.group('argstr'),
* )
*/
- __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_field, __pyx_n_s_group); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 688, __pyx_L1_error)
+ __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_field, __pyx_n_s_group); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 707, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__pyx_t_10 = NULL;
__pyx_t_4 = 0;
@@ -13805,19 +14192,19 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_18CompiledRouterNode___init
PyObject *__pyx_callargs[2] = {__pyx_t_10, __pyx_n_u_cname};
__pyx_t_8 = __Pyx_PyObject_FastCall(__pyx_t_9, __pyx_callargs+1-__pyx_t_4, 1+__pyx_t_4);
__Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
- if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 688, __pyx_L1_error)
+ if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 707, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_8);
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
}
- /* "falcon/routing/compiled.py":689
+ /* "falcon/routing/compiled.py":708
* field.group('fname'),
* field.group('cname'),
* field.group('argstr'), # <<<<<<<<<<<<<<
* )
* )
*/
- __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_field, __pyx_n_s_group); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 689, __pyx_L1_error)
+ __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_field, __pyx_n_s_group); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 708, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_10);
__pyx_t_11 = NULL;
__pyx_t_4 = 0;
@@ -13835,19 +14222,19 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_18CompiledRouterNode___init
PyObject *__pyx_callargs[2] = {__pyx_t_11, __pyx_n_u_argstr};
__pyx_t_9 = __Pyx_PyObject_FastCall(__pyx_t_10, __pyx_callargs+1-__pyx_t_4, 1+__pyx_t_4);
__Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
- if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 689, __pyx_L1_error)
+ if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 708, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
}
- /* "falcon/routing/compiled.py":687
+ /* "falcon/routing/compiled.py":706
* self.var_converter_map.append(
* (
* field.group('fname'), # <<<<<<<<<<<<<<
* field.group('cname'),
* field.group('argstr'),
*/
- __pyx_t_10 = PyTuple_New(3); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 687, __pyx_L1_error)
+ __pyx_t_10 = PyTuple_New(3); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 706, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_10);
__Pyx_GIVEREF(__pyx_t_2);
PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_t_2);
@@ -13859,18 +14246,18 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_18CompiledRouterNode___init
__pyx_t_8 = 0;
__pyx_t_9 = 0;
- /* "falcon/routing/compiled.py":685
+ /* "falcon/routing/compiled.py":704
* # given, we can just go ahead and use it.
* if field.group('cname'):
* self.var_converter_map.append( # <<<<<<<<<<<<<<
* (
* field.group('fname'),
*/
- __pyx_t_12 = __Pyx_PyObject_Append(__pyx_t_1, __pyx_t_10); if (unlikely(__pyx_t_12 == ((int)-1))) __PYX_ERR(0, 685, __pyx_L1_error)
+ __pyx_t_12 = __Pyx_PyObject_Append(__pyx_t_1, __pyx_t_10); if (unlikely(__pyx_t_12 == ((int)-1))) __PYX_ERR(0, 704, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
- /* "falcon/routing/compiled.py":684
+ /* "falcon/routing/compiled.py":703
* # that don't match a known converter, so if a name is
* # given, we can just go ahead and use it.
* if field.group('cname'): # <<<<<<<<<<<<<<
@@ -13879,7 +14266,7 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_18CompiledRouterNode___init
*/
}
- /* "falcon/routing/compiled.py":679
+ /* "falcon/routing/compiled.py":698
* self.num_fields = len(matches)
*
* for field in matches: # <<<<<<<<<<<<<<
@@ -13889,16 +14276,16 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_18CompiledRouterNode___init
}
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
- /* "falcon/routing/compiled.py":693
+ /* "falcon/routing/compiled.py":712
* )
*
* if matches[0].span() == (0, len(raw_segment)): # <<<<<<<<<<<<<<
* # NOTE(kgriffs): Single field, spans entire segment
* assert len(matches) == 1
*/
- __pyx_t_10 = __Pyx_GetItemInt_List(__pyx_v_matches, 0, long, 1, __Pyx_PyInt_From_long, 1, 0, 1); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 693, __pyx_L1_error)
+ __pyx_t_10 = __Pyx_GetItemInt_List(__pyx_v_matches, 0, long, 1, __Pyx_PyInt_From_long, 1, 0, 1); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 712, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_10);
- __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_span); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 693, __pyx_L1_error)
+ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_span); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 712, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
__pyx_t_10 = NULL;
@@ -13917,14 +14304,18 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_18CompiledRouterNode___init
PyObject *__pyx_callargs[1] = {__pyx_t_10, };
__pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_1, __pyx_callargs+1-__pyx_t_4, 0+__pyx_t_4);
__Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
- if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 693, __pyx_L1_error)
+ if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 712, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
}
- __pyx_t_7 = PyObject_Length(__pyx_v_raw_segment); if (unlikely(__pyx_t_7 == ((Py_ssize_t)-1))) __PYX_ERR(0, 693, __pyx_L1_error)
- __pyx_t_1 = PyInt_FromSsize_t(__pyx_t_7); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 693, __pyx_L1_error)
+ if (unlikely(__pyx_v_raw_segment == Py_None)) {
+ PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
+ __PYX_ERR(0, 712, __pyx_L1_error)
+ }
+ __pyx_t_7 = __Pyx_PyUnicode_GET_LENGTH(__pyx_v_raw_segment); if (unlikely(__pyx_t_7 == ((Py_ssize_t)-1))) __PYX_ERR(0, 712, __pyx_L1_error)
+ __pyx_t_1 = PyInt_FromSsize_t(__pyx_t_7); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 712, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
- __pyx_t_10 = PyTuple_New(2); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 693, __pyx_L1_error)
+ __pyx_t_10 = PyTuple_New(2); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 712, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_10);
__Pyx_INCREF(__pyx_int_0);
__Pyx_GIVEREF(__pyx_int_0);
@@ -13932,14 +14323,14 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_18CompiledRouterNode___init
__Pyx_GIVEREF(__pyx_t_1);
PyTuple_SET_ITEM(__pyx_t_10, 1, __pyx_t_1);
__pyx_t_1 = 0;
- __pyx_t_1 = PyObject_RichCompare(__pyx_t_3, __pyx_t_10, Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 693, __pyx_L1_error)
+ __pyx_t_1 = PyObject_RichCompare(__pyx_t_3, __pyx_t_10, Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 712, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(0, 693, __pyx_L1_error)
+ __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(0, 712, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
if (__pyx_t_6) {
- /* "falcon/routing/compiled.py":695
+ /* "falcon/routing/compiled.py":714
* if matches[0].span() == (0, len(raw_segment)):
* # NOTE(kgriffs): Single field, spans entire segment
* assert len(matches) == 1 # <<<<<<<<<<<<<<
@@ -13948,46 +14339,46 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_18CompiledRouterNode___init
*/
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
- __pyx_t_7 = PyList_GET_SIZE(__pyx_v_matches); if (unlikely(__pyx_t_7 == ((Py_ssize_t)-1))) __PYX_ERR(0, 695, __pyx_L1_error)
+ __pyx_t_7 = PyList_GET_SIZE(__pyx_v_matches); if (unlikely(__pyx_t_7 == ((Py_ssize_t)-1))) __PYX_ERR(0, 714, __pyx_L1_error)
__pyx_t_6 = ((__pyx_t_7 == 1) != 0);
if (unlikely(!__pyx_t_6)) {
__Pyx_Raise(__pyx_builtin_AssertionError, 0, 0, 0);
- __PYX_ERR(0, 695, __pyx_L1_error)
+ __PYX_ERR(0, 714, __pyx_L1_error)
}
}
#else
- if ((1)); else __PYX_ERR(0, 695, __pyx_L1_error)
+ if ((1)); else __PYX_ERR(0, 714, __pyx_L1_error)
#endif
- /* "falcon/routing/compiled.py":700
+ /* "falcon/routing/compiled.py":719
* # contains a single field. Rename this variable to make
* # it more descriptive.
* self.is_complex = False # <<<<<<<<<<<<<<
*
* field = matches[0]
*/
- if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_is_complex, Py_False) < 0) __PYX_ERR(0, 700, __pyx_L1_error)
+ if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_is_complex, Py_False) < 0) __PYX_ERR(0, 719, __pyx_L1_error)
- /* "falcon/routing/compiled.py":702
+ /* "falcon/routing/compiled.py":721
* self.is_complex = False
*
* field = matches[0] # <<<<<<<<<<<<<<
* self.var_name = field.group('fname')
*
*/
- __pyx_t_1 = __Pyx_GetItemInt_List(__pyx_v_matches, 0, long, 1, __Pyx_PyInt_From_long, 1, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 702, __pyx_L1_error)
+ __pyx_t_1 = __Pyx_GetItemInt_List(__pyx_v_matches, 0, long, 1, __Pyx_PyInt_From_long, 1, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 721, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_XDECREF_SET(__pyx_v_field, __pyx_t_1);
__pyx_t_1 = 0;
- /* "falcon/routing/compiled.py":703
+ /* "falcon/routing/compiled.py":722
*
* field = matches[0]
* self.var_name = field.group('fname') # <<<<<<<<<<<<<<
*
* else:
*/
- __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_field, __pyx_n_s_group); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 703, __pyx_L1_error)
+ __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_field, __pyx_n_s_group); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 722, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_10);
__pyx_t_3 = NULL;
__pyx_t_4 = 0;
@@ -14005,14 +14396,14 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_18CompiledRouterNode___init
PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_n_u_fname};
__pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_10, __pyx_callargs+1-__pyx_t_4, 1+__pyx_t_4);
__Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
- if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 703, __pyx_L1_error)
+ if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 722, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
}
- if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_var_name, __pyx_t_1) < 0) __PYX_ERR(0, 703, __pyx_L1_error)
+ if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_var_name, __pyx_t_1) < 0) __PYX_ERR(0, 722, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
- /* "falcon/routing/compiled.py":693
+ /* "falcon/routing/compiled.py":712
* )
*
* if matches[0].span() == (0, len(raw_segment)): # <<<<<<<<<<<<<<
@@ -14022,7 +14413,7 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_18CompiledRouterNode___init
goto __pyx_L7;
}
- /* "falcon/routing/compiled.py":725
+ /* "falcon/routing/compiled.py":744
* # group-escape sequence. So we add an extra backslash to
* # trick the parser into doing the right thing.
* escaped_segment = re.sub( # <<<<<<<<<<<<<<
@@ -14030,13 +14421,13 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_18CompiledRouterNode___init
* )
*/
/*else*/ {
- __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_re); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 725, __pyx_L1_error)
+ __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_re); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 744, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_10);
- __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_sub); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 725, __pyx_L1_error)
+ __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_sub); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 744, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
- /* "falcon/routing/compiled.py":726
+ /* "falcon/routing/compiled.py":745
* # trick the parser into doing the right thing.
* escaped_segment = re.sub(
* r'[\.\(\)\[\]\?\$\*\+\^\|]', r'\\\g<0>', raw_segment # <<<<<<<<<<<<<<
@@ -14056,26 +14447,26 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_18CompiledRouterNode___init
}
}
{
- PyObject *__pyx_callargs[4] = {__pyx_t_10, __pyx_kp_u__14, __pyx_kp_u_g_0, __pyx_v_raw_segment};
+ PyObject *__pyx_callargs[4] = {__pyx_t_10, __pyx_kp_u__15, __pyx_kp_u_g_0, __pyx_v_raw_segment};
__pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_4, 3+__pyx_t_4);
__Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
- if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 725, __pyx_L1_error)
+ if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 744, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
}
__pyx_v_escaped_segment = __pyx_t_1;
__pyx_t_1 = 0;
- /* "falcon/routing/compiled.py":729
+ /* "falcon/routing/compiled.py":748
* )
*
* pattern_text = _FIELD_PATTERN.sub(r'(?P<\2>.+)', escaped_segment) # <<<<<<<<<<<<<<
* pattern_text = '^' + pattern_text + '$'
*
*/
- __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_FIELD_PATTERN); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 729, __pyx_L1_error)
+ __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_FIELD_PATTERN); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 748, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
- __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_sub); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 729, __pyx_L1_error)
+ __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_sub); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 748, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_10);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__pyx_t_3 = NULL;
@@ -14094,47 +14485,47 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_18CompiledRouterNode___init
PyObject *__pyx_callargs[3] = {__pyx_t_3, __pyx_kp_u_P_2, __pyx_v_escaped_segment};
__pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_10, __pyx_callargs+1-__pyx_t_4, 2+__pyx_t_4);
__Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
- if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 729, __pyx_L1_error)
+ if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 748, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
}
__pyx_v_pattern_text = __pyx_t_1;
__pyx_t_1 = 0;
- /* "falcon/routing/compiled.py":730
+ /* "falcon/routing/compiled.py":749
*
* pattern_text = _FIELD_PATTERN.sub(r'(?P<\2>.+)', escaped_segment)
* pattern_text = '^' + pattern_text + '$' # <<<<<<<<<<<<<<
*
* self.is_complex = True
*/
- __pyx_t_1 = PyNumber_Add(__pyx_kp_u__15, __pyx_v_pattern_text); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 730, __pyx_L1_error)
+ __pyx_t_1 = PyNumber_Add(__pyx_kp_u__16, __pyx_v_pattern_text); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 749, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
- __pyx_t_10 = PyNumber_Add(__pyx_t_1, __pyx_kp_u__16); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 730, __pyx_L1_error)
+ __pyx_t_10 = PyNumber_Add(__pyx_t_1, __pyx_kp_u__17); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 749, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_10);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_DECREF_SET(__pyx_v_pattern_text, __pyx_t_10);
__pyx_t_10 = 0;
- /* "falcon/routing/compiled.py":732
+ /* "falcon/routing/compiled.py":751
* pattern_text = '^' + pattern_text + '$'
*
* self.is_complex = True # <<<<<<<<<<<<<<
* self.var_pattern = re.compile(pattern_text)
*
*/
- if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_is_complex, Py_True) < 0) __PYX_ERR(0, 732, __pyx_L1_error)
+ if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_is_complex, Py_True) < 0) __PYX_ERR(0, 751, __pyx_L1_error)
- /* "falcon/routing/compiled.py":733
+ /* "falcon/routing/compiled.py":752
*
* self.is_complex = True
* self.var_pattern = re.compile(pattern_text) # <<<<<<<<<<<<<<
*
* if self.is_complex:
*/
- __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_re); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 733, __pyx_L1_error)
+ __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_re); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 752, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
- __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_compile); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 733, __pyx_L1_error)
+ __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_compile); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 752, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_t_1 = NULL;
@@ -14153,53 +14544,53 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_18CompiledRouterNode___init
PyObject *__pyx_callargs[2] = {__pyx_t_1, __pyx_v_pattern_text};
__pyx_t_10 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_4, 1+__pyx_t_4);
__Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
- if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 733, __pyx_L1_error)
+ if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 752, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_10);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
}
- if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_var_pattern, __pyx_t_10) < 0) __PYX_ERR(0, 733, __pyx_L1_error)
+ if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_var_pattern, __pyx_t_10) < 0) __PYX_ERR(0, 752, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
}
__pyx_L7:;
}
__pyx_L3:;
- /* "falcon/routing/compiled.py":735
+ /* "falcon/routing/compiled.py":754
* self.var_pattern = re.compile(pattern_text)
*
* if self.is_complex: # <<<<<<<<<<<<<<
* assert self.is_var
*
*/
- __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_is_complex); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 735, __pyx_L1_error)
+ __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_is_complex); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 754, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_10);
- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_10); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(0, 735, __pyx_L1_error)
+ __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_10); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(0, 754, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
if (__pyx_t_6) {
- /* "falcon/routing/compiled.py":736
+ /* "falcon/routing/compiled.py":755
*
* if self.is_complex:
* assert self.is_var # <<<<<<<<<<<<<<
*
- * def matches(self, segment):
+ * def matches(self, segment: str):
*/
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
- __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_is_var); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 736, __pyx_L1_error)
+ __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_is_var); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 755, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_10);
- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_10); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(0, 736, __pyx_L1_error)
+ __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_10); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(0, 755, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
if (unlikely(!__pyx_t_6)) {
__Pyx_Raise(__pyx_builtin_AssertionError, 0, 0, 0);
- __PYX_ERR(0, 736, __pyx_L1_error)
+ __PYX_ERR(0, 755, __pyx_L1_error)
}
}
#else
- if ((1)); else __PYX_ERR(0, 736, __pyx_L1_error)
+ if ((1)); else __PYX_ERR(0, 755, __pyx_L1_error)
#endif
- /* "falcon/routing/compiled.py":735
+ /* "falcon/routing/compiled.py":754
* self.var_pattern = re.compile(pattern_text)
*
* if self.is_complex: # <<<<<<<<<<<<<<
@@ -14208,12 +14599,12 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_18CompiledRouterNode___init
*/
}
- /* "falcon/routing/compiled.py":650
+ /* "falcon/routing/compiled.py":663
* """Represents a single URI segment in a URI."""
*
- * def __init__(self, raw_segment, method_map=None, resource=None, uri_template=None): # <<<<<<<<<<<<<<
- * self.children = []
- *
+ * def __init__( # <<<<<<<<<<<<<<
+ * self,
+ * raw_segment: str,
*/
/* function exit code */
@@ -14239,10 +14630,10 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_18CompiledRouterNode___init
return __pyx_r;
}
-/* "falcon/routing/compiled.py":738
+/* "falcon/routing/compiled.py":757
* assert self.is_var
*
- * def matches(self, segment): # <<<<<<<<<<<<<<
+ * def matches(self, segment: str): # <<<<<<<<<<<<<<
* """Return True if this node matches the supplied template segment."""
*
*/
@@ -14297,19 +14688,19 @@ PyObject *__pyx_args, PyObject *__pyx_kwds
switch (__pyx_nargs) {
case 0:
if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_self)) != 0)) kw_args--;
- else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 738, __pyx_L3_error)
+ else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 757, __pyx_L3_error)
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_segment)) != 0)) kw_args--;
- else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 738, __pyx_L3_error)
+ else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 757, __pyx_L3_error)
else {
- __Pyx_RaiseArgtupleInvalid("matches", 1, 2, 2, 1); __PYX_ERR(0, 738, __pyx_L3_error)
+ __Pyx_RaiseArgtupleInvalid("matches", 1, 2, 2, 1); __PYX_ERR(0, 757, __pyx_L3_error)
}
}
if (unlikely(kw_args > 0)) {
const Py_ssize_t kwd_pos_args = __pyx_nargs;
- if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "matches") < 0)) __PYX_ERR(0, 738, __pyx_L3_error)
+ if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "matches") < 0)) __PYX_ERR(0, 757, __pyx_L3_error)
}
} else if (unlikely(__pyx_nargs != 2)) {
goto __pyx_L5_argtuple_error;
@@ -14318,19 +14709,24 @@ PyObject *__pyx_args, PyObject *__pyx_kwds
values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
}
__pyx_v_self = values[0];
- __pyx_v_segment = values[1];
+ __pyx_v_segment = ((PyObject*)values[1]);
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
- __Pyx_RaiseArgtupleInvalid("matches", 1, 2, 2, __pyx_nargs); __PYX_ERR(0, 738, __pyx_L3_error)
+ __Pyx_RaiseArgtupleInvalid("matches", 1, 2, 2, __pyx_nargs); __PYX_ERR(0, 757, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("falcon.routing.compiled.CompiledRouterNode.matches", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
+ if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_segment), (&PyUnicode_Type), 1, "segment", 1))) __PYX_ERR(0, 757, __pyx_L1_error)
__pyx_r = __pyx_pf_6falcon_7routing_8compiled_18CompiledRouterNode_2matches(__pyx_self, __pyx_v_self, __pyx_v_segment);
/* function exit code */
+ goto __pyx_L0;
+ __pyx_L1_error:;
+ __pyx_r = NULL;
+ __pyx_L0:;
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
@@ -14345,26 +14741,26 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_18CompiledRouterNode_2match
int __pyx_clineno = 0;
__Pyx_RefNannySetupContext("matches", 0);
- /* "falcon/routing/compiled.py":741
+ /* "falcon/routing/compiled.py":760
* """Return True if this node matches the supplied template segment."""
*
* return segment == self.raw_segment # <<<<<<<<<<<<<<
*
- * def conflicts_with(self, segment):
+ * def conflicts_with(self, segment: str):
*/
__Pyx_XDECREF(__pyx_r);
- __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_raw_segment); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 741, __pyx_L1_error)
+ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_raw_segment); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 760, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
- __pyx_t_2 = PyObject_RichCompare(__pyx_v_segment, __pyx_t_1, Py_EQ); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 741, __pyx_L1_error)
+ __pyx_t_2 = PyObject_RichCompare(__pyx_v_segment, __pyx_t_1, Py_EQ); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 760, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_r = __pyx_t_2;
__pyx_t_2 = 0;
goto __pyx_L0;
- /* "falcon/routing/compiled.py":738
+ /* "falcon/routing/compiled.py":757
* assert self.is_var
*
- * def matches(self, segment): # <<<<<<<<<<<<<<
+ * def matches(self, segment: str): # <<<<<<<<<<<<<<
* """Return True if this node matches the supplied template segment."""
*
*/
@@ -14381,10 +14777,10 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_18CompiledRouterNode_2match
return __pyx_r;
}
-/* "falcon/routing/compiled.py":743
+/* "falcon/routing/compiled.py":762
* return segment == self.raw_segment
*
- * def conflicts_with(self, segment): # <<<<<<<<<<<<<<
+ * def conflicts_with(self, segment: str): # <<<<<<<<<<<<<<
* """Return True if this node conflicts with a given template segment."""
*
*/
@@ -14439,19 +14835,19 @@ PyObject *__pyx_args, PyObject *__pyx_kwds
switch (__pyx_nargs) {
case 0:
if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_self)) != 0)) kw_args--;
- else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 743, __pyx_L3_error)
+ else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 762, __pyx_L3_error)
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_segment)) != 0)) kw_args--;
- else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 743, __pyx_L3_error)
+ else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 762, __pyx_L3_error)
else {
- __Pyx_RaiseArgtupleInvalid("conflicts_with", 1, 2, 2, 1); __PYX_ERR(0, 743, __pyx_L3_error)
+ __Pyx_RaiseArgtupleInvalid("conflicts_with", 1, 2, 2, 1); __PYX_ERR(0, 762, __pyx_L3_error)
}
}
if (unlikely(kw_args > 0)) {
const Py_ssize_t kwd_pos_args = __pyx_nargs;
- if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "conflicts_with") < 0)) __PYX_ERR(0, 743, __pyx_L3_error)
+ if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "conflicts_with") < 0)) __PYX_ERR(0, 762, __pyx_L3_error)
}
} else if (unlikely(__pyx_nargs != 2)) {
goto __pyx_L5_argtuple_error;
@@ -14460,19 +14856,24 @@ PyObject *__pyx_args, PyObject *__pyx_kwds
values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
}
__pyx_v_self = values[0];
- __pyx_v_segment = values[1];
+ __pyx_v_segment = ((PyObject*)values[1]);
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
- __Pyx_RaiseArgtupleInvalid("conflicts_with", 1, 2, 2, __pyx_nargs); __PYX_ERR(0, 743, __pyx_L3_error)
+ __Pyx_RaiseArgtupleInvalid("conflicts_with", 1, 2, 2, __pyx_nargs); __PYX_ERR(0, 762, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("falcon.routing.compiled.CompiledRouterNode.conflicts_with", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
+ if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_segment), (&PyUnicode_Type), 1, "segment", 1))) __PYX_ERR(0, 762, __pyx_L1_error)
__pyx_r = __pyx_pf_6falcon_7routing_8compiled_18CompiledRouterNode_4conflicts_with(__pyx_self, __pyx_v_self, __pyx_v_segment);
/* function exit code */
+ goto __pyx_L0;
+ __pyx_L1_error:;
+ __pyx_r = NULL;
+ __pyx_L0:;
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
@@ -14493,7 +14894,7 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_18CompiledRouterNode_4confl
int __pyx_clineno = 0;
__Pyx_RefNannySetupContext("conflicts_with", 0);
- /* "falcon/routing/compiled.py":750
+ /* "falcon/routing/compiled.py":769
* # segments may conflict, so there isn't any sense in calling
* # conflicts_with in that case.
* assert not self.matches(segment) # <<<<<<<<<<<<<<
@@ -14502,7 +14903,7 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_18CompiledRouterNode_4confl
*/
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
- __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_matches); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 750, __pyx_L1_error)
+ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_matches); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 769, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_3 = NULL;
__pyx_t_4 = 0;
@@ -14520,30 +14921,30 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_18CompiledRouterNode_4confl
PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_v_segment};
__pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_4, 1+__pyx_t_4);
__Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
- if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 750, __pyx_L1_error)
+ if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 769, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
}
- __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_5 < 0))) __PYX_ERR(0, 750, __pyx_L1_error)
+ __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_5 < 0))) __PYX_ERR(0, 769, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_t_6 = ((!__pyx_t_5) != 0);
if (unlikely(!__pyx_t_6)) {
__Pyx_Raise(__pyx_builtin_AssertionError, 0, 0, 0);
- __PYX_ERR(0, 750, __pyx_L1_error)
+ __PYX_ERR(0, 769, __pyx_L1_error)
}
}
#else
- if ((1)); else __PYX_ERR(0, 750, __pyx_L1_error)
+ if ((1)); else __PYX_ERR(0, 769, __pyx_L1_error)
#endif
- /* "falcon/routing/compiled.py":764
+ /* "falcon/routing/compiled.py":783
* # string, string ==> False
* #
* other = CompiledRouterNode(segment) # <<<<<<<<<<<<<<
*
* if self.is_var:
*/
- __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_CompiledRouterNode); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 764, __pyx_L1_error)
+ __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_CompiledRouterNode); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 783, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_3 = NULL;
__pyx_t_4 = 0;
@@ -14561,53 +14962,53 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_18CompiledRouterNode_4confl
PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_v_segment};
__pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_4, 1+__pyx_t_4);
__Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
- if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 764, __pyx_L1_error)
+ if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 783, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
}
__pyx_v_other = __pyx_t_1;
__pyx_t_1 = 0;
- /* "falcon/routing/compiled.py":766
+ /* "falcon/routing/compiled.py":785
* other = CompiledRouterNode(segment)
*
* if self.is_var: # <<<<<<<<<<<<<<
* # NOTE(kgriffs & philiptzou): Falcon does not accept multiple
* # simple var nodes exist at the same level as following:
*/
- __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_is_var); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 766, __pyx_L1_error)
+ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_is_var); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 785, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(0, 766, __pyx_L1_error)
+ __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(0, 785, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
if (__pyx_t_6) {
- /* "falcon/routing/compiled.py":785
+ /* "falcon/routing/compiled.py":804
* # /foo/{thing2}.detail.{ext}
* #
* if self.is_complex: # <<<<<<<<<<<<<<
* if other.is_complex:
* return _FIELD_PATTERN.sub(
*/
- __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_is_complex); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 785, __pyx_L1_error)
+ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_is_complex); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 804, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(0, 785, __pyx_L1_error)
+ __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(0, 804, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
if (__pyx_t_6) {
- /* "falcon/routing/compiled.py":786
+ /* "falcon/routing/compiled.py":805
* #
* if self.is_complex:
* if other.is_complex: # <<<<<<<<<<<<<<
* return _FIELD_PATTERN.sub(
* 'v', self.raw_segment
*/
- __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_other, __pyx_n_s_is_complex); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 786, __pyx_L1_error)
+ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_other, __pyx_n_s_is_complex); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 805, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(0, 786, __pyx_L1_error)
+ __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(0, 805, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
if (__pyx_t_6) {
- /* "falcon/routing/compiled.py":787
+ /* "falcon/routing/compiled.py":806
* if self.is_complex:
* if other.is_complex:
* return _FIELD_PATTERN.sub( # <<<<<<<<<<<<<<
@@ -14615,20 +15016,20 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_18CompiledRouterNode_4confl
* ) == _FIELD_PATTERN.sub('v', segment)
*/
__Pyx_XDECREF(__pyx_r);
- __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_FIELD_PATTERN); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 787, __pyx_L1_error)
+ __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_FIELD_PATTERN); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 806, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
- __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_sub); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 787, __pyx_L1_error)
+ __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_sub); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 806, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
- /* "falcon/routing/compiled.py":788
+ /* "falcon/routing/compiled.py":807
* if other.is_complex:
* return _FIELD_PATTERN.sub(
* 'v', self.raw_segment # <<<<<<<<<<<<<<
* ) == _FIELD_PATTERN.sub('v', segment)
*
*/
- __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_raw_segment); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 788, __pyx_L1_error)
+ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_raw_segment); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 807, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_7 = NULL;
__pyx_t_4 = 0;
@@ -14647,21 +15048,21 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_18CompiledRouterNode_4confl
__pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_4, 2+__pyx_t_4);
__Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
- if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 787, __pyx_L1_error)
+ if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 806, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
}
- /* "falcon/routing/compiled.py":789
+ /* "falcon/routing/compiled.py":808
* return _FIELD_PATTERN.sub(
* 'v', self.raw_segment
* ) == _FIELD_PATTERN.sub('v', segment) # <<<<<<<<<<<<<<
*
* return False
*/
- __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_FIELD_PATTERN); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 789, __pyx_L1_error)
+ __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_FIELD_PATTERN); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 808, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
- __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_sub); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 789, __pyx_L1_error)
+ __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_sub); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 808, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_t_2 = NULL;
@@ -14680,18 +15081,18 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_18CompiledRouterNode_4confl
PyObject *__pyx_callargs[3] = {__pyx_t_2, __pyx_n_u_v, __pyx_v_segment};
__pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_7, __pyx_callargs+1-__pyx_t_4, 2+__pyx_t_4);
__Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
- if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 789, __pyx_L1_error)
+ if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 808, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
}
- __pyx_t_7 = PyObject_RichCompare(__pyx_t_1, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_7); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 789, __pyx_L1_error)
+ __pyx_t_7 = PyObject_RichCompare(__pyx_t_1, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_7); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 808, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__pyx_r = __pyx_t_7;
__pyx_t_7 = 0;
goto __pyx_L0;
- /* "falcon/routing/compiled.py":786
+ /* "falcon/routing/compiled.py":805
* #
* if self.is_complex:
* if other.is_complex: # <<<<<<<<<<<<<<
@@ -14700,7 +15101,7 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_18CompiledRouterNode_4confl
*/
}
- /* "falcon/routing/compiled.py":791
+ /* "falcon/routing/compiled.py":810
* ) == _FIELD_PATTERN.sub('v', segment)
*
* return False # <<<<<<<<<<<<<<
@@ -14712,7 +15113,7 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_18CompiledRouterNode_4confl
__pyx_r = Py_False;
goto __pyx_L0;
- /* "falcon/routing/compiled.py":785
+ /* "falcon/routing/compiled.py":804
* # /foo/{thing2}.detail.{ext}
* #
* if self.is_complex: # <<<<<<<<<<<<<<
@@ -14721,7 +15122,7 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_18CompiledRouterNode_4confl
*/
}
- /* "falcon/routing/compiled.py":793
+ /* "falcon/routing/compiled.py":812
* return False
* else:
* return other.is_var and not other.is_complex # <<<<<<<<<<<<<<
@@ -14730,9 +15131,9 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_18CompiledRouterNode_4confl
*/
/*else*/ {
__Pyx_XDECREF(__pyx_r);
- __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_other, __pyx_n_s_is_var); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 793, __pyx_L1_error)
+ __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_other, __pyx_n_s_is_var); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 812, __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, 793, __pyx_L1_error)
+ __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(0, 812, __pyx_L1_error)
if (__pyx_t_6) {
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
} else {
@@ -14741,12 +15142,12 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_18CompiledRouterNode_4confl
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
goto __pyx_L6_bool_binop_done;
}
- __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_other, __pyx_n_s_is_complex); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 793, __pyx_L1_error)
+ __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_other, __pyx_n_s_is_complex); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 812, __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, 793, __pyx_L1_error)
+ __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(0, 812, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__pyx_t_5 = (!__pyx_t_6);
- __pyx_t_3 = __Pyx_PyBool_FromLong(__pyx_t_5); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 793, __pyx_L1_error)
+ __pyx_t_3 = __Pyx_PyBool_FromLong(__pyx_t_5); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 812, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_7 = __pyx_t_3;
__pyx_t_3 = 0;
@@ -14756,7 +15157,7 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_18CompiledRouterNode_4confl
goto __pyx_L0;
}
- /* "falcon/routing/compiled.py":766
+ /* "falcon/routing/compiled.py":785
* other = CompiledRouterNode(segment)
*
* if self.is_var: # <<<<<<<<<<<<<<
@@ -14765,7 +15166,7 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_18CompiledRouterNode_4confl
*/
}
- /* "falcon/routing/compiled.py":797
+ /* "falcon/routing/compiled.py":816
* # NOTE(kgriffs): If self is a static string match, then all the cases
* # for other are False, so no need to check.
* return False # <<<<<<<<<<<<<<
@@ -14777,10 +15178,10 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_18CompiledRouterNode_4confl
__pyx_r = Py_False;
goto __pyx_L0;
- /* "falcon/routing/compiled.py":743
+ /* "falcon/routing/compiled.py":762
* return segment == self.raw_segment
*
- * def conflicts_with(self, segment): # <<<<<<<<<<<<<<
+ * def conflicts_with(self, segment: str): # <<<<<<<<<<<<<<
* """Return True if this node conflicts with a given template segment."""
*
*/
@@ -14800,7 +15201,7 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_18CompiledRouterNode_4confl
return __pyx_r;
}
-/* "falcon/routing/compiled.py":803
+/* "falcon/routing/compiled.py":822
* """A dict-like class for storing field converters."""
*
* def update(self, other): # <<<<<<<<<<<<<<
@@ -14857,19 +15258,19 @@ PyObject *__pyx_args, PyObject *__pyx_kwds
switch (__pyx_nargs) {
case 0:
if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_self)) != 0)) kw_args--;
- else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 803, __pyx_L3_error)
+ else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 822, __pyx_L3_error)
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_other)) != 0)) kw_args--;
- else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 803, __pyx_L3_error)
+ else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 822, __pyx_L3_error)
else {
- __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, 1); __PYX_ERR(0, 803, __pyx_L3_error)
+ __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, 1); __PYX_ERR(0, 822, __pyx_L3_error)
}
}
if (unlikely(kw_args > 0)) {
const Py_ssize_t kwd_pos_args = __pyx_nargs;
- if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "update") < 0)) __PYX_ERR(0, 803, __pyx_L3_error)
+ if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "update") < 0)) __PYX_ERR(0, 822, __pyx_L3_error)
}
} else if (unlikely(__pyx_nargs != 2)) {
goto __pyx_L5_argtuple_error;
@@ -14882,7 +15283,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
- __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, __pyx_nargs); __PYX_ERR(0, 803, __pyx_L3_error)
+ __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, __pyx_nargs); __PYX_ERR(0, 822, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("falcon.routing.compiled.ConverterDict.update", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
@@ -14924,7 +15325,7 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_13ConverterDict_update(CYTH
__Pyx_RefNannySetupContext("update", 0);
__Pyx_INCREF(__pyx_v_other);
- /* "falcon/routing/compiled.py":804
+ /* "falcon/routing/compiled.py":823
*
* def update(self, other):
* try: # <<<<<<<<<<<<<<
@@ -14940,14 +15341,14 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_13ConverterDict_update(CYTH
__Pyx_XGOTREF(__pyx_t_3);
/*try:*/ {
- /* "falcon/routing/compiled.py":807
+ /* "falcon/routing/compiled.py":826
* # NOTE(kgriffs): If it is a mapping type, it should
* # implement keys().
* names = other.keys() # <<<<<<<<<<<<<<
* except AttributeError:
* # NOTE(kgriffs): Not a mapping type, so assume it is an
*/
- __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_other, __pyx_n_s_keys); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 807, __pyx_L3_error)
+ __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_other, __pyx_n_s_keys); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 826, __pyx_L3_error)
__Pyx_GOTREF(__pyx_t_5);
__pyx_t_6 = NULL;
__pyx_t_7 = 0;
@@ -14965,14 +15366,14 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_13ConverterDict_update(CYTH
PyObject *__pyx_callargs[1] = {__pyx_t_6, };
__pyx_t_4 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+1-__pyx_t_7, 0+__pyx_t_7);
__Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
- if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 807, __pyx_L3_error)
+ if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 826, __pyx_L3_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
}
__pyx_v_names = __pyx_t_4;
__pyx_t_4 = 0;
- /* "falcon/routing/compiled.py":804
+ /* "falcon/routing/compiled.py":823
*
* def update(self, other):
* try: # <<<<<<<<<<<<<<
@@ -14989,7 +15390,7 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_13ConverterDict_update(CYTH
__Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
__Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
- /* "falcon/routing/compiled.py":808
+ /* "falcon/routing/compiled.py":827
* # implement keys().
* names = other.keys()
* except AttributeError: # <<<<<<<<<<<<<<
@@ -14999,24 +15400,24 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_13ConverterDict_update(CYTH
__pyx_t_7 = __Pyx_PyErr_ExceptionMatches(__pyx_builtin_AttributeError);
if (__pyx_t_7) {
__Pyx_AddTraceback("falcon.routing.compiled.ConverterDict.update", __pyx_clineno, __pyx_lineno, __pyx_filename);
- if (__Pyx_GetException(&__pyx_t_4, &__pyx_t_5, &__pyx_t_6) < 0) __PYX_ERR(0, 808, __pyx_L5_except_error)
+ if (__Pyx_GetException(&__pyx_t_4, &__pyx_t_5, &__pyx_t_6) < 0) __PYX_ERR(0, 827, __pyx_L5_except_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_GOTREF(__pyx_t_5);
__Pyx_GOTREF(__pyx_t_6);
- /* "falcon/routing/compiled.py":813
+ /* "falcon/routing/compiled.py":832
* # re-iterable if it is a generator, for when we pass
* # it on to the parent's update().
* other = list(other) # <<<<<<<<<<<<<<
* names = [n for n, __ in other]
*
*/
- __pyx_t_8 = PySequence_List(__pyx_v_other); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 813, __pyx_L5_except_error)
+ __pyx_t_8 = PySequence_List(__pyx_v_other); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 832, __pyx_L5_except_error)
__Pyx_GOTREF(__pyx_t_8);
__Pyx_DECREF_SET(__pyx_v_other, __pyx_t_8);
__pyx_t_8 = 0;
- /* "falcon/routing/compiled.py":814
+ /* "falcon/routing/compiled.py":833
* # it on to the parent's update().
* other = list(other)
* names = [n for n, __ in other] # <<<<<<<<<<<<<<
@@ -15024,32 +15425,32 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_13ConverterDict_update(CYTH
* for n in names:
*/
{ /* enter inner scope */
- __pyx_t_8 = PyList_New(0); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 814, __pyx_L13_error)
+ __pyx_t_8 = PyList_New(0); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 833, __pyx_L13_error)
__Pyx_GOTREF(__pyx_t_8);
if (likely(PyList_CheckExact(__pyx_v_other)) || PyTuple_CheckExact(__pyx_v_other)) {
__pyx_t_9 = __pyx_v_other; __Pyx_INCREF(__pyx_t_9); __pyx_t_10 = 0;
__pyx_t_11 = NULL;
} else {
- __pyx_t_10 = -1; __pyx_t_9 = PyObject_GetIter(__pyx_v_other); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 814, __pyx_L13_error)
+ __pyx_t_10 = -1; __pyx_t_9 = PyObject_GetIter(__pyx_v_other); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 833, __pyx_L13_error)
__Pyx_GOTREF(__pyx_t_9);
- __pyx_t_11 = __Pyx_PyObject_GetIterNextFunc(__pyx_t_9); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 814, __pyx_L13_error)
+ __pyx_t_11 = __Pyx_PyObject_GetIterNextFunc(__pyx_t_9); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 833, __pyx_L13_error)
}
for (;;) {
if (likely(!__pyx_t_11)) {
if (likely(PyList_CheckExact(__pyx_t_9))) {
if (__pyx_t_10 >= PyList_GET_SIZE(__pyx_t_9)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
- __pyx_t_12 = PyList_GET_ITEM(__pyx_t_9, __pyx_t_10); __Pyx_INCREF(__pyx_t_12); __pyx_t_10++; if (unlikely((0 < 0))) __PYX_ERR(0, 814, __pyx_L13_error)
+ __pyx_t_12 = PyList_GET_ITEM(__pyx_t_9, __pyx_t_10); __Pyx_INCREF(__pyx_t_12); __pyx_t_10++; if (unlikely((0 < 0))) __PYX_ERR(0, 833, __pyx_L13_error)
#else
- __pyx_t_12 = PySequence_ITEM(__pyx_t_9, __pyx_t_10); __pyx_t_10++; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 814, __pyx_L13_error)
+ __pyx_t_12 = PySequence_ITEM(__pyx_t_9, __pyx_t_10); __pyx_t_10++; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 833, __pyx_L13_error)
__Pyx_GOTREF(__pyx_t_12);
#endif
} else {
if (__pyx_t_10 >= PyTuple_GET_SIZE(__pyx_t_9)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
- __pyx_t_12 = PyTuple_GET_ITEM(__pyx_t_9, __pyx_t_10); __Pyx_INCREF(__pyx_t_12); __pyx_t_10++; if (unlikely((0 < 0))) __PYX_ERR(0, 814, __pyx_L13_error)
+ __pyx_t_12 = PyTuple_GET_ITEM(__pyx_t_9, __pyx_t_10); __Pyx_INCREF(__pyx_t_12); __pyx_t_10++; if (unlikely((0 < 0))) __PYX_ERR(0, 833, __pyx_L13_error)
#else
- __pyx_t_12 = PySequence_ITEM(__pyx_t_9, __pyx_t_10); __pyx_t_10++; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 814, __pyx_L13_error)
+ __pyx_t_12 = PySequence_ITEM(__pyx_t_9, __pyx_t_10); __pyx_t_10++; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 833, __pyx_L13_error)
__Pyx_GOTREF(__pyx_t_12);
#endif
}
@@ -15059,7 +15460,7 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_13ConverterDict_update(CYTH
PyObject* exc_type = PyErr_Occurred();
if (exc_type) {
if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
- else __PYX_ERR(0, 814, __pyx_L13_error)
+ else __PYX_ERR(0, 833, __pyx_L13_error)
}
break;
}
@@ -15071,7 +15472,7 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_13ConverterDict_update(CYTH
if (unlikely(size != 2)) {
if (size > 2) __Pyx_RaiseTooManyValuesError(2);
else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
- __PYX_ERR(0, 814, __pyx_L13_error)
+ __PYX_ERR(0, 833, __pyx_L13_error)
}
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
if (likely(PyTuple_CheckExact(sequence))) {
@@ -15084,15 +15485,15 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_13ConverterDict_update(CYTH
__Pyx_INCREF(__pyx_t_13);
__Pyx_INCREF(__pyx_t_14);
#else
- __pyx_t_13 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 814, __pyx_L13_error)
+ __pyx_t_13 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 833, __pyx_L13_error)
__Pyx_GOTREF(__pyx_t_13);
- __pyx_t_14 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 814, __pyx_L13_error)
+ __pyx_t_14 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 833, __pyx_L13_error)
__Pyx_GOTREF(__pyx_t_14);
#endif
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
} else {
Py_ssize_t index = -1;
- __pyx_t_15 = PyObject_GetIter(__pyx_t_12); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 814, __pyx_L13_error)
+ __pyx_t_15 = PyObject_GetIter(__pyx_t_12); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 833, __pyx_L13_error)
__Pyx_GOTREF(__pyx_t_15);
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
__pyx_t_16 = __Pyx_PyObject_GetIterNextFunc(__pyx_t_15);
@@ -15100,7 +15501,7 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_13ConverterDict_update(CYTH
__Pyx_GOTREF(__pyx_t_13);
index = 1; __pyx_t_14 = __pyx_t_16(__pyx_t_15); if (unlikely(!__pyx_t_14)) goto __pyx_L16_unpacking_failed;
__Pyx_GOTREF(__pyx_t_14);
- if (__Pyx_IternextUnpackEndCheck(__pyx_t_16(__pyx_t_15), 2) < 0) __PYX_ERR(0, 814, __pyx_L13_error)
+ if (__Pyx_IternextUnpackEndCheck(__pyx_t_16(__pyx_t_15), 2) < 0) __PYX_ERR(0, 833, __pyx_L13_error)
__pyx_t_16 = NULL;
__Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
goto __pyx_L17_unpacking_done;
@@ -15108,14 +15509,14 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_13ConverterDict_update(CYTH
__Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
__pyx_t_16 = NULL;
if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
- __PYX_ERR(0, 814, __pyx_L13_error)
+ __PYX_ERR(0, 833, __pyx_L13_error)
__pyx_L17_unpacking_done:;
}
__Pyx_XDECREF_SET(__pyx_8genexpr2__pyx_v_n, __pyx_t_13);
__pyx_t_13 = 0;
__Pyx_XDECREF_SET(__pyx_8genexpr2__pyx_v___, __pyx_t_14);
__pyx_t_14 = 0;
- if (unlikely(__Pyx_ListComp_Append(__pyx_t_8, (PyObject*)__pyx_8genexpr2__pyx_v_n))) __PYX_ERR(0, 814, __pyx_L13_error)
+ if (unlikely(__Pyx_ListComp_Append(__pyx_t_8, (PyObject*)__pyx_8genexpr2__pyx_v_n))) __PYX_ERR(0, 833, __pyx_L13_error)
}
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
__Pyx_XDECREF(__pyx_8genexpr2__pyx_v___); __pyx_8genexpr2__pyx_v___ = 0;
@@ -15137,7 +15538,7 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_13ConverterDict_update(CYTH
goto __pyx_L5_except_error;
__pyx_L5_except_error:;
- /* "falcon/routing/compiled.py":804
+ /* "falcon/routing/compiled.py":823
*
* def update(self, other):
* try: # <<<<<<<<<<<<<<
@@ -15157,7 +15558,7 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_13ConverterDict_update(CYTH
__pyx_L8_try_end:;
}
- /* "falcon/routing/compiled.py":816
+ /* "falcon/routing/compiled.py":835
* names = [n for n, __ in other]
*
* for n in names: # <<<<<<<<<<<<<<
@@ -15168,26 +15569,26 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_13ConverterDict_update(CYTH
__pyx_t_6 = __pyx_v_names; __Pyx_INCREF(__pyx_t_6); __pyx_t_10 = 0;
__pyx_t_11 = NULL;
} else {
- __pyx_t_10 = -1; __pyx_t_6 = PyObject_GetIter(__pyx_v_names); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 816, __pyx_L1_error)
+ __pyx_t_10 = -1; __pyx_t_6 = PyObject_GetIter(__pyx_v_names); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 835, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
- __pyx_t_11 = __Pyx_PyObject_GetIterNextFunc(__pyx_t_6); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 816, __pyx_L1_error)
+ __pyx_t_11 = __Pyx_PyObject_GetIterNextFunc(__pyx_t_6); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 835, __pyx_L1_error)
}
for (;;) {
if (likely(!__pyx_t_11)) {
if (likely(PyList_CheckExact(__pyx_t_6))) {
if (__pyx_t_10 >= PyList_GET_SIZE(__pyx_t_6)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
- __pyx_t_5 = PyList_GET_ITEM(__pyx_t_6, __pyx_t_10); __Pyx_INCREF(__pyx_t_5); __pyx_t_10++; if (unlikely((0 < 0))) __PYX_ERR(0, 816, __pyx_L1_error)
+ __pyx_t_5 = PyList_GET_ITEM(__pyx_t_6, __pyx_t_10); __Pyx_INCREF(__pyx_t_5); __pyx_t_10++; if (unlikely((0 < 0))) __PYX_ERR(0, 835, __pyx_L1_error)
#else
- __pyx_t_5 = PySequence_ITEM(__pyx_t_6, __pyx_t_10); __pyx_t_10++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 816, __pyx_L1_error)
+ __pyx_t_5 = PySequence_ITEM(__pyx_t_6, __pyx_t_10); __pyx_t_10++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 835, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
#endif
} else {
if (__pyx_t_10 >= PyTuple_GET_SIZE(__pyx_t_6)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
- __pyx_t_5 = PyTuple_GET_ITEM(__pyx_t_6, __pyx_t_10); __Pyx_INCREF(__pyx_t_5); __pyx_t_10++; if (unlikely((0 < 0))) __PYX_ERR(0, 816, __pyx_L1_error)
+ __pyx_t_5 = PyTuple_GET_ITEM(__pyx_t_6, __pyx_t_10); __Pyx_INCREF(__pyx_t_5); __pyx_t_10++; if (unlikely((0 < 0))) __PYX_ERR(0, 835, __pyx_L1_error)
#else
- __pyx_t_5 = PySequence_ITEM(__pyx_t_6, __pyx_t_10); __pyx_t_10++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 816, __pyx_L1_error)
+ __pyx_t_5 = PySequence_ITEM(__pyx_t_6, __pyx_t_10); __pyx_t_10++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 835, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
#endif
}
@@ -15197,7 +15598,7 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_13ConverterDict_update(CYTH
PyObject* exc_type = PyErr_Occurred();
if (exc_type) {
if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
- else __PYX_ERR(0, 816, __pyx_L1_error)
+ else __PYX_ERR(0, 835, __pyx_L1_error)
}
break;
}
@@ -15206,14 +15607,14 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_13ConverterDict_update(CYTH
__Pyx_XDECREF_SET(__pyx_v_n, __pyx_t_5);
__pyx_t_5 = 0;
- /* "falcon/routing/compiled.py":817
+ /* "falcon/routing/compiled.py":836
*
* for n in names:
* self._validate(n) # <<<<<<<<<<<<<<
*
* UserDict.update(self, other)
*/
- __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_validate); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 817, __pyx_L1_error)
+ __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_validate); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 836, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__pyx_t_8 = NULL;
__pyx_t_7 = 0;
@@ -15231,13 +15632,13 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_13ConverterDict_update(CYTH
PyObject *__pyx_callargs[2] = {__pyx_t_8, __pyx_v_n};
__pyx_t_5 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_7, 1+__pyx_t_7);
__Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
- if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 817, __pyx_L1_error)
+ if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 836, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
}
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
- /* "falcon/routing/compiled.py":816
+ /* "falcon/routing/compiled.py":835
* names = [n for n, __ in other]
*
* for n in names: # <<<<<<<<<<<<<<
@@ -15247,16 +15648,16 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_13ConverterDict_update(CYTH
}
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
- /* "falcon/routing/compiled.py":819
+ /* "falcon/routing/compiled.py":838
* self._validate(n)
*
* UserDict.update(self, other) # <<<<<<<<<<<<<<
*
* def __setitem__(self, name, converter):
*/
- __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_UserDict); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 819, __pyx_L1_error)
+ __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_UserDict); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 838, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
- __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_update); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 819, __pyx_L1_error)
+ __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_update); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 838, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
__pyx_t_5 = NULL;
@@ -15275,13 +15676,13 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_13ConverterDict_update(CYTH
PyObject *__pyx_callargs[3] = {__pyx_t_5, __pyx_v_self, __pyx_v_other};
__pyx_t_6 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_7, 2+__pyx_t_7);
__Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
- if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 819, __pyx_L1_error)
+ if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 838, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
}
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
- /* "falcon/routing/compiled.py":803
+ /* "falcon/routing/compiled.py":822
* """A dict-like class for storing field converters."""
*
* def update(self, other): # <<<<<<<<<<<<<<
@@ -15315,7 +15716,7 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_13ConverterDict_update(CYTH
return __pyx_r;
}
-/* "falcon/routing/compiled.py":821
+/* "falcon/routing/compiled.py":840
* UserDict.update(self, other)
*
* def __setitem__(self, name, converter): # <<<<<<<<<<<<<<
@@ -15375,26 +15776,26 @@ PyObject *__pyx_args, PyObject *__pyx_kwds
switch (__pyx_nargs) {
case 0:
if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_self)) != 0)) kw_args--;
- else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 821, __pyx_L3_error)
+ else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 840, __pyx_L3_error)
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_name_2)) != 0)) kw_args--;
- else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 821, __pyx_L3_error)
+ else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 840, __pyx_L3_error)
else {
- __Pyx_RaiseArgtupleInvalid("__setitem__", 1, 3, 3, 1); __PYX_ERR(0, 821, __pyx_L3_error)
+ __Pyx_RaiseArgtupleInvalid("__setitem__", 1, 3, 3, 1); __PYX_ERR(0, 840, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 2:
if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_converter)) != 0)) kw_args--;
- else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 821, __pyx_L3_error)
+ else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 840, __pyx_L3_error)
else {
- __Pyx_RaiseArgtupleInvalid("__setitem__", 1, 3, 3, 2); __PYX_ERR(0, 821, __pyx_L3_error)
+ __Pyx_RaiseArgtupleInvalid("__setitem__", 1, 3, 3, 2); __PYX_ERR(0, 840, __pyx_L3_error)
}
}
if (unlikely(kw_args > 0)) {
const Py_ssize_t kwd_pos_args = __pyx_nargs;
- if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__setitem__") < 0)) __PYX_ERR(0, 821, __pyx_L3_error)
+ if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__setitem__") < 0)) __PYX_ERR(0, 840, __pyx_L3_error)
}
} else if (unlikely(__pyx_nargs != 3)) {
goto __pyx_L5_argtuple_error;
@@ -15409,7 +15810,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
- __Pyx_RaiseArgtupleInvalid("__setitem__", 1, 3, 3, __pyx_nargs); __PYX_ERR(0, 821, __pyx_L3_error)
+ __Pyx_RaiseArgtupleInvalid("__setitem__", 1, 3, 3, __pyx_nargs); __PYX_ERR(0, 840, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("falcon.routing.compiled.ConverterDict.__setitem__", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
@@ -15434,14 +15835,14 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_13ConverterDict_2__setitem_
int __pyx_clineno = 0;
__Pyx_RefNannySetupContext("__setitem__", 0);
- /* "falcon/routing/compiled.py":822
+ /* "falcon/routing/compiled.py":841
*
* def __setitem__(self, name, converter):
* self._validate(name) # <<<<<<<<<<<<<<
* UserDict.__setitem__(self, name, converter)
*
*/
- __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_validate); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 822, __pyx_L1_error)
+ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_validate); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 841, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_3 = NULL;
__pyx_t_4 = 0;
@@ -15459,22 +15860,22 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_13ConverterDict_2__setitem_
PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_v_name};
__pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_4, 1+__pyx_t_4);
__Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
- if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 822, __pyx_L1_error)
+ if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 841, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
- /* "falcon/routing/compiled.py":823
+ /* "falcon/routing/compiled.py":842
* def __setitem__(self, name, converter):
* self._validate(name)
* UserDict.__setitem__(self, name, converter) # <<<<<<<<<<<<<<
*
* def _validate(self, name):
*/
- __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_UserDict); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 823, __pyx_L1_error)
+ __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_UserDict); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 842, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
- __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_setitem); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 823, __pyx_L1_error)
+ __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_setitem); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 842, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_t_2 = NULL;
@@ -15493,13 +15894,13 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_13ConverterDict_2__setitem_
PyObject *__pyx_callargs[4] = {__pyx_t_2, __pyx_v_self, __pyx_v_name, __pyx_v_converter};
__pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_4, 3+__pyx_t_4);
__Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
- if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 823, __pyx_L1_error)
+ if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 842, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
- /* "falcon/routing/compiled.py":821
+ /* "falcon/routing/compiled.py":840
* UserDict.update(self, other)
*
* def __setitem__(self, name, converter): # <<<<<<<<<<<<<<
@@ -15522,7 +15923,7 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_13ConverterDict_2__setitem_
return __pyx_r;
}
-/* "falcon/routing/compiled.py":825
+/* "falcon/routing/compiled.py":844
* UserDict.__setitem__(self, name, converter)
*
* def _validate(self, name): # <<<<<<<<<<<<<<
@@ -15579,19 +15980,19 @@ PyObject *__pyx_args, PyObject *__pyx_kwds
switch (__pyx_nargs) {
case 0:
if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_self)) != 0)) kw_args--;
- else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 825, __pyx_L3_error)
+ else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 844, __pyx_L3_error)
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_name_2)) != 0)) kw_args--;
- else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 825, __pyx_L3_error)
+ else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 844, __pyx_L3_error)
else {
- __Pyx_RaiseArgtupleInvalid("_validate", 1, 2, 2, 1); __PYX_ERR(0, 825, __pyx_L3_error)
+ __Pyx_RaiseArgtupleInvalid("_validate", 1, 2, 2, 1); __PYX_ERR(0, 844, __pyx_L3_error)
}
}
if (unlikely(kw_args > 0)) {
const Py_ssize_t kwd_pos_args = __pyx_nargs;
- if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_validate") < 0)) __PYX_ERR(0, 825, __pyx_L3_error)
+ if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_validate") < 0)) __PYX_ERR(0, 844, __pyx_L3_error)
}
} else if (unlikely(__pyx_nargs != 2)) {
goto __pyx_L5_argtuple_error;
@@ -15604,7 +16005,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
- __Pyx_RaiseArgtupleInvalid("_validate", 1, 2, 2, __pyx_nargs); __PYX_ERR(0, 825, __pyx_L3_error)
+ __Pyx_RaiseArgtupleInvalid("_validate", 1, 2, 2, __pyx_nargs); __PYX_ERR(0, 844, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("falcon.routing.compiled.ConverterDict._validate", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
@@ -15631,16 +16032,16 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_13ConverterDict_4_validate(
int __pyx_clineno = 0;
__Pyx_RefNannySetupContext("_validate", 0);
- /* "falcon/routing/compiled.py":826
+ /* "falcon/routing/compiled.py":845
*
* def _validate(self, name):
* if not _IDENTIFIER_PATTERN.match(name): # <<<<<<<<<<<<<<
* raise ValueError(
* 'Invalid converter name. Names may not be blank, and may '
*/
- __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_IDENTIFIER_PATTERN); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 826, __pyx_L1_error)
+ __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_IDENTIFIER_PATTERN); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 845, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
- __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_match); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 826, __pyx_L1_error)
+ __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_match); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 845, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_t_2 = NULL;
@@ -15659,29 +16060,29 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_13ConverterDict_4_validate(
PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_v_name};
__pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_4, 1+__pyx_t_4);
__Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
- if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 826, __pyx_L1_error)
+ if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 845, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
}
- __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_5 < 0))) __PYX_ERR(0, 826, __pyx_L1_error)
+ __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_5 < 0))) __PYX_ERR(0, 845, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_t_6 = ((!__pyx_t_5) != 0);
if (unlikely(__pyx_t_6)) {
- /* "falcon/routing/compiled.py":827
+ /* "falcon/routing/compiled.py":846
* def _validate(self, name):
* if not _IDENTIFIER_PATTERN.match(name):
* raise ValueError( # <<<<<<<<<<<<<<
* 'Invalid converter name. Names may not be blank, and may '
* 'only use ASCII letters, digits, and underscores. Names'
*/
- __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__17, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 827, __pyx_L1_error)
+ __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__18, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 846, __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, 827, __pyx_L1_error)
+ __PYX_ERR(0, 846, __pyx_L1_error)
- /* "falcon/routing/compiled.py":826
+ /* "falcon/routing/compiled.py":845
*
* def _validate(self, name):
* if not _IDENTIFIER_PATTERN.match(name): # <<<<<<<<<<<<<<
@@ -15690,7 +16091,7 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_13ConverterDict_4_validate(
*/
}
- /* "falcon/routing/compiled.py":825
+ /* "falcon/routing/compiled.py":844
* UserDict.__setitem__(self, name, converter)
*
* def _validate(self, name): # <<<<<<<<<<<<<<
@@ -15713,7 +16114,7 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_13ConverterDict_4_validate(
return __pyx_r;
}
-/* "falcon/routing/compiled.py":870
+/* "falcon/routing/compiled.py":889
* __slots__ = ('converters',)
*
* def __init__(self): # <<<<<<<<<<<<<<
@@ -15767,12 +16168,12 @@ PyObject *__pyx_args, PyObject *__pyx_kwds
switch (__pyx_nargs) {
case 0:
if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_self)) != 0)) kw_args--;
- else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 870, __pyx_L3_error)
+ else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 889, __pyx_L3_error)
else goto __pyx_L5_argtuple_error;
}
if (unlikely(kw_args > 0)) {
const Py_ssize_t kwd_pos_args = __pyx_nargs;
- if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__init__") < 0)) __PYX_ERR(0, 870, __pyx_L3_error)
+ if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__init__") < 0)) __PYX_ERR(0, 889, __pyx_L3_error)
}
} else if (unlikely(__pyx_nargs != 1)) {
goto __pyx_L5_argtuple_error;
@@ -15783,7 +16184,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
- __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 870, __pyx_L3_error)
+ __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 889, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("falcon.routing.compiled.CompiledRouterOptions.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
@@ -15797,7 +16198,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds
}
static PyObject *__pyx_gb_6falcon_7routing_8compiled_21CompiledRouterOptions_8__init___2generator(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */
-/* "falcon/routing/compiled.py":872
+/* "falcon/routing/compiled.py":891
* def __init__(self):
* self.converters = ConverterDict(
* (name, converter) for name, converter in converters.BUILTIN # <<<<<<<<<<<<<<
@@ -15817,12 +16218,12 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_21CompiledRouterOptions_8__
if (unlikely(!__pyx_cur_scope)) {
__pyx_cur_scope = ((struct __pyx_obj_6falcon_7routing_8compiled___pyx_scope_struct_2_genexpr *)Py_None);
__Pyx_INCREF(Py_None);
- __PYX_ERR(0, 872, __pyx_L1_error)
+ __PYX_ERR(0, 891, __pyx_L1_error)
} else {
__Pyx_GOTREF((PyObject *)__pyx_cur_scope);
}
{
- __pyx_CoroutineObject *gen = __Pyx_Generator_New((__pyx_coroutine_body_t) __pyx_gb_6falcon_7routing_8compiled_21CompiledRouterOptions_8__init___2generator, NULL, (PyObject *) __pyx_cur_scope, __pyx_n_s_genexpr, __pyx_n_s_CompiledRouterOptions___init___l, __pyx_n_s_falcon_routing_compiled); if (unlikely(!gen)) __PYX_ERR(0, 872, __pyx_L1_error)
+ __pyx_CoroutineObject *gen = __Pyx_Generator_New((__pyx_coroutine_body_t) __pyx_gb_6falcon_7routing_8compiled_21CompiledRouterOptions_8__init___2generator, NULL, (PyObject *) __pyx_cur_scope, __pyx_n_s_genexpr, __pyx_n_s_CompiledRouterOptions___init___l, __pyx_n_s_falcon_routing_compiled); if (unlikely(!gen)) __PYX_ERR(0, 891, __pyx_L1_error)
__Pyx_DECREF(__pyx_cur_scope);
__Pyx_RefNannyFinishContext();
return (PyObject *) gen;
@@ -15863,19 +16264,19 @@ static PyObject *__pyx_gb_6falcon_7routing_8compiled_21CompiledRouterOptions_8__
return NULL;
}
__pyx_L3_first_run:;
- if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 872, __pyx_L1_error)
- __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_converters_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 872, __pyx_L1_error)
+ if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 891, __pyx_L1_error)
+ __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_converters_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 891, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
- __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_BUILTIN); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 872, __pyx_L1_error)
+ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_BUILTIN); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 891, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
if (likely(PyList_CheckExact(__pyx_t_2)) || PyTuple_CheckExact(__pyx_t_2)) {
__pyx_t_1 = __pyx_t_2; __Pyx_INCREF(__pyx_t_1); __pyx_t_3 = 0;
__pyx_t_4 = NULL;
} else {
- __pyx_t_3 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 872, __pyx_L1_error)
+ __pyx_t_3 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 891, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
- __pyx_t_4 = __Pyx_PyObject_GetIterNextFunc(__pyx_t_1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 872, __pyx_L1_error)
+ __pyx_t_4 = __Pyx_PyObject_GetIterNextFunc(__pyx_t_1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 891, __pyx_L1_error)
}
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
for (;;) {
@@ -15883,17 +16284,17 @@ static PyObject *__pyx_gb_6falcon_7routing_8compiled_21CompiledRouterOptions_8__
if (likely(PyList_CheckExact(__pyx_t_1))) {
if (__pyx_t_3 >= PyList_GET_SIZE(__pyx_t_1)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
- __pyx_t_2 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_3); __Pyx_INCREF(__pyx_t_2); __pyx_t_3++; if (unlikely((0 < 0))) __PYX_ERR(0, 872, __pyx_L1_error)
+ __pyx_t_2 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_3); __Pyx_INCREF(__pyx_t_2); __pyx_t_3++; if (unlikely((0 < 0))) __PYX_ERR(0, 891, __pyx_L1_error)
#else
- __pyx_t_2 = PySequence_ITEM(__pyx_t_1, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 872, __pyx_L1_error)
+ __pyx_t_2 = PySequence_ITEM(__pyx_t_1, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 891, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
#endif
} else {
if (__pyx_t_3 >= PyTuple_GET_SIZE(__pyx_t_1)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
- __pyx_t_2 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_3); __Pyx_INCREF(__pyx_t_2); __pyx_t_3++; if (unlikely((0 < 0))) __PYX_ERR(0, 872, __pyx_L1_error)
+ __pyx_t_2 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_3); __Pyx_INCREF(__pyx_t_2); __pyx_t_3++; if (unlikely((0 < 0))) __PYX_ERR(0, 891, __pyx_L1_error)
#else
- __pyx_t_2 = PySequence_ITEM(__pyx_t_1, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 872, __pyx_L1_error)
+ __pyx_t_2 = PySequence_ITEM(__pyx_t_1, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 891, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
#endif
}
@@ -15903,7 +16304,7 @@ static PyObject *__pyx_gb_6falcon_7routing_8compiled_21CompiledRouterOptions_8__
PyObject* exc_type = PyErr_Occurred();
if (exc_type) {
if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
- else __PYX_ERR(0, 872, __pyx_L1_error)
+ else __PYX_ERR(0, 891, __pyx_L1_error)
}
break;
}
@@ -15915,7 +16316,7 @@ static PyObject *__pyx_gb_6falcon_7routing_8compiled_21CompiledRouterOptions_8__
if (unlikely(size != 2)) {
if (size > 2) __Pyx_RaiseTooManyValuesError(2);
else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
- __PYX_ERR(0, 872, __pyx_L1_error)
+ __PYX_ERR(0, 891, __pyx_L1_error)
}
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
if (likely(PyTuple_CheckExact(sequence))) {
@@ -15928,15 +16329,15 @@ static PyObject *__pyx_gb_6falcon_7routing_8compiled_21CompiledRouterOptions_8__
__Pyx_INCREF(__pyx_t_5);
__Pyx_INCREF(__pyx_t_6);
#else
- __pyx_t_5 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 872, __pyx_L1_error)
+ __pyx_t_5 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 891, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
- __pyx_t_6 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 872, __pyx_L1_error)
+ __pyx_t_6 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 891, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
#endif
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
} else {
Py_ssize_t index = -1;
- __pyx_t_7 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 872, __pyx_L1_error)
+ __pyx_t_7 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 891, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_t_8 = __Pyx_PyObject_GetIterNextFunc(__pyx_t_7);
@@ -15944,7 +16345,7 @@ static PyObject *__pyx_gb_6falcon_7routing_8compiled_21CompiledRouterOptions_8__
__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, 872, __pyx_L1_error)
+ if (__Pyx_IternextUnpackEndCheck(__pyx_t_8(__pyx_t_7), 2) < 0) __PYX_ERR(0, 891, __pyx_L1_error)
__pyx_t_8 = NULL;
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
goto __pyx_L7_unpacking_done;
@@ -15952,7 +16353,7 @@ static PyObject *__pyx_gb_6falcon_7routing_8compiled_21CompiledRouterOptions_8__
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
__pyx_t_8 = NULL;
if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
- __PYX_ERR(0, 872, __pyx_L1_error)
+ __PYX_ERR(0, 891, __pyx_L1_error)
__pyx_L7_unpacking_done:;
}
__Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_name);
@@ -15963,7 +16364,7 @@ static PyObject *__pyx_gb_6falcon_7routing_8compiled_21CompiledRouterOptions_8__
__Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_converter, __pyx_t_6);
__Pyx_GIVEREF(__pyx_t_6);
__pyx_t_6 = 0;
- __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 872, __pyx_L1_error)
+ __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 891, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_INCREF(__pyx_cur_scope->__pyx_v_name);
__Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_name);
@@ -15989,7 +16390,7 @@ static PyObject *__pyx_gb_6falcon_7routing_8compiled_21CompiledRouterOptions_8__
__Pyx_XGOTREF(__pyx_t_1);
__pyx_t_3 = __pyx_cur_scope->__pyx_t_1;
__pyx_t_4 = __pyx_cur_scope->__pyx_t_2;
- if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 872, __pyx_L1_error)
+ if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 891, __pyx_L1_error)
}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);
@@ -16016,7 +16417,7 @@ static PyObject *__pyx_gb_6falcon_7routing_8compiled_21CompiledRouterOptions_8__
return __pyx_r;
}
-/* "falcon/routing/compiled.py":870
+/* "falcon/routing/compiled.py":889
* __slots__ = ('converters',)
*
* def __init__(self): # <<<<<<<<<<<<<<
@@ -16038,24 +16439,24 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_21CompiledRouterOptions___i
int __pyx_clineno = 0;
__Pyx_RefNannySetupContext("__init__", 0);
- /* "falcon/routing/compiled.py":871
+ /* "falcon/routing/compiled.py":890
*
* def __init__(self):
* self.converters = ConverterDict( # <<<<<<<<<<<<<<
* (name, converter) for name, converter in converters.BUILTIN
* )
*/
- __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_ConverterDict); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 871, __pyx_L1_error)
+ __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_ConverterDict); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 890, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
- /* "falcon/routing/compiled.py":872
+ /* "falcon/routing/compiled.py":891
* def __init__(self):
* self.converters = ConverterDict(
* (name, converter) for name, converter in converters.BUILTIN # <<<<<<<<<<<<<<
* )
*
*/
- __pyx_t_3 = __pyx_pf_6falcon_7routing_8compiled_21CompiledRouterOptions_8__init___genexpr(NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 872, __pyx_L1_error)
+ __pyx_t_3 = __pyx_pf_6falcon_7routing_8compiled_21CompiledRouterOptions_8__init___genexpr(NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 891, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_4 = NULL;
__pyx_t_5 = 0;
@@ -16074,22 +16475,22 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_21CompiledRouterOptions___i
__pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_5, 1+__pyx_t_5);
__Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
- if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 871, __pyx_L1_error)
+ if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 890, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
}
- /* "falcon/routing/compiled.py":871
+ /* "falcon/routing/compiled.py":890
*
* def __init__(self):
* self.converters = ConverterDict( # <<<<<<<<<<<<<<
* (name, converter) for name, converter in converters.BUILTIN
* )
*/
- if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_converters_2, __pyx_t_1) < 0) __PYX_ERR(0, 871, __pyx_L1_error)
+ if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_converters_2, __pyx_t_1) < 0) __PYX_ERR(0, 890, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
- /* "falcon/routing/compiled.py":870
+ /* "falcon/routing/compiled.py":889
* __slots__ = ('converters',)
*
* def __init__(self): # <<<<<<<<<<<<<<
@@ -16114,11 +16515,11 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_21CompiledRouterOptions___i
return __pyx_r;
}
-/* "falcon/routing/compiled.py":890
+/* "falcon/routing/compiled.py":909
*
* class _CxParent:
* def __init__(self): # <<<<<<<<<<<<<<
- * self._children = []
+ * self._children: 'List[_CxElement]' = []
*
*/
@@ -16168,12 +16569,12 @@ PyObject *__pyx_args, PyObject *__pyx_kwds
switch (__pyx_nargs) {
case 0:
if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_self)) != 0)) kw_args--;
- else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 890, __pyx_L3_error)
+ else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 909, __pyx_L3_error)
else goto __pyx_L5_argtuple_error;
}
if (unlikely(kw_args > 0)) {
const Py_ssize_t kwd_pos_args = __pyx_nargs;
- if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__init__") < 0)) __PYX_ERR(0, 890, __pyx_L3_error)
+ if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__init__") < 0)) __PYX_ERR(0, 909, __pyx_L3_error)
}
} else if (unlikely(__pyx_nargs != 1)) {
goto __pyx_L5_argtuple_error;
@@ -16184,7 +16585,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
- __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 890, __pyx_L3_error)
+ __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 909, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("falcon.routing.compiled._CxParent.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
@@ -16206,23 +16607,23 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_9_CxParent___init__(CYTHON_
int __pyx_clineno = 0;
__Pyx_RefNannySetupContext("__init__", 0);
- /* "falcon/routing/compiled.py":891
+ /* "falcon/routing/compiled.py":910
* class _CxParent:
* def __init__(self):
- * self._children = [] # <<<<<<<<<<<<<<
+ * self._children: 'List[_CxElement]' = [] # <<<<<<<<<<<<<<
*
- * def append_child(self, construct):
+ * def append_child(self, construct: '_CxElement'):
*/
- __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 891, __pyx_L1_error)
+ __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 910, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
- if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_children_2, __pyx_t_1) < 0) __PYX_ERR(0, 891, __pyx_L1_error)
+ if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_children_2, __pyx_t_1) < 0) __PYX_ERR(0, 910, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
- /* "falcon/routing/compiled.py":890
+ /* "falcon/routing/compiled.py":909
*
* class _CxParent:
* def __init__(self): # <<<<<<<<<<<<<<
- * self._children = []
+ * self._children: 'List[_CxElement]' = []
*
*/
@@ -16239,10 +16640,10 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_9_CxParent___init__(CYTHON_
return __pyx_r;
}
-/* "falcon/routing/compiled.py":893
- * self._children = []
+/* "falcon/routing/compiled.py":912
+ * self._children: 'List[_CxElement]' = []
*
- * def append_child(self, construct): # <<<<<<<<<<<<<<
+ * def append_child(self, construct: '_CxElement'): # <<<<<<<<<<<<<<
* self._children.append(construct)
*
*/
@@ -16296,19 +16697,19 @@ PyObject *__pyx_args, PyObject *__pyx_kwds
switch (__pyx_nargs) {
case 0:
if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_self)) != 0)) kw_args--;
- else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 893, __pyx_L3_error)
+ else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 912, __pyx_L3_error)
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_construct)) != 0)) kw_args--;
- else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 893, __pyx_L3_error)
+ else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 912, __pyx_L3_error)
else {
- __Pyx_RaiseArgtupleInvalid("append_child", 1, 2, 2, 1); __PYX_ERR(0, 893, __pyx_L3_error)
+ __Pyx_RaiseArgtupleInvalid("append_child", 1, 2, 2, 1); __PYX_ERR(0, 912, __pyx_L3_error)
}
}
if (unlikely(kw_args > 0)) {
const Py_ssize_t kwd_pos_args = __pyx_nargs;
- if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "append_child") < 0)) __PYX_ERR(0, 893, __pyx_L3_error)
+ if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "append_child") < 0)) __PYX_ERR(0, 912, __pyx_L3_error)
}
} else if (unlikely(__pyx_nargs != 2)) {
goto __pyx_L5_argtuple_error;
@@ -16321,7 +16722,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
- __Pyx_RaiseArgtupleInvalid("append_child", 1, 2, 2, __pyx_nargs); __PYX_ERR(0, 893, __pyx_L3_error)
+ __Pyx_RaiseArgtupleInvalid("append_child", 1, 2, 2, __pyx_nargs); __PYX_ERR(0, 912, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("falcon.routing.compiled._CxParent.append_child", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
@@ -16344,22 +16745,22 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_9_CxParent_2append_child(CY
int __pyx_clineno = 0;
__Pyx_RefNannySetupContext("append_child", 0);
- /* "falcon/routing/compiled.py":894
+ /* "falcon/routing/compiled.py":913
*
- * def append_child(self, construct):
+ * def append_child(self, construct: '_CxElement'):
* self._children.append(construct) # <<<<<<<<<<<<<<
*
- * def src(self, indentation):
+ * def src(self, indentation: int) -> str:
*/
- __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_children_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 894, __pyx_L1_error)
+ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_children_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 913, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
- __pyx_t_2 = __Pyx_PyObject_Append(__pyx_t_1, __pyx_v_construct); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(0, 894, __pyx_L1_error)
+ __pyx_t_2 = __Pyx_PyObject_Append(__pyx_t_1, __pyx_v_construct); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(0, 913, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
- /* "falcon/routing/compiled.py":893
- * self._children = []
+ /* "falcon/routing/compiled.py":912
+ * self._children: 'List[_CxElement]' = []
*
- * def append_child(self, construct): # <<<<<<<<<<<<<<
+ * def append_child(self, construct: '_CxElement'): # <<<<<<<<<<<<<<
* self._children.append(construct)
*
*/
@@ -16377,10 +16778,10 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_9_CxParent_2append_child(CY
return __pyx_r;
}
-/* "falcon/routing/compiled.py":896
+/* "falcon/routing/compiled.py":915
* self._children.append(construct)
*
- * def src(self, indentation): # <<<<<<<<<<<<<<
+ * def src(self, indentation: int) -> str: # <<<<<<<<<<<<<<
* return self._children_src(indentation + 1)
*
*/
@@ -16434,19 +16835,19 @@ PyObject *__pyx_args, PyObject *__pyx_kwds
switch (__pyx_nargs) {
case 0:
if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_self)) != 0)) kw_args--;
- else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 896, __pyx_L3_error)
+ else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 915, __pyx_L3_error)
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_indentation)) != 0)) kw_args--;
- else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 896, __pyx_L3_error)
+ else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 915, __pyx_L3_error)
else {
- __Pyx_RaiseArgtupleInvalid("src", 1, 2, 2, 1); __PYX_ERR(0, 896, __pyx_L3_error)
+ __Pyx_RaiseArgtupleInvalid("src", 1, 2, 2, 1); __PYX_ERR(0, 915, __pyx_L3_error)
}
}
if (unlikely(kw_args > 0)) {
const Py_ssize_t kwd_pos_args = __pyx_nargs;
- if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "src") < 0)) __PYX_ERR(0, 896, __pyx_L3_error)
+ if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "src") < 0)) __PYX_ERR(0, 915, __pyx_L3_error)
}
} else if (unlikely(__pyx_nargs != 2)) {
goto __pyx_L5_argtuple_error;
@@ -16459,7 +16860,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
- __Pyx_RaiseArgtupleInvalid("src", 1, 2, 2, __pyx_nargs); __PYX_ERR(0, 896, __pyx_L3_error)
+ __Pyx_RaiseArgtupleInvalid("src", 1, 2, 2, __pyx_nargs); __PYX_ERR(0, 915, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("falcon.routing.compiled._CxParent.src", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
@@ -16485,17 +16886,17 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_9_CxParent_4src(CYTHON_UNUS
int __pyx_clineno = 0;
__Pyx_RefNannySetupContext("src", 0);
- /* "falcon/routing/compiled.py":897
+ /* "falcon/routing/compiled.py":916
*
- * def src(self, indentation):
+ * def src(self, indentation: int) -> str:
* return self._children_src(indentation + 1) # <<<<<<<<<<<<<<
*
* def _children_src(self, indentation):
*/
__Pyx_XDECREF(__pyx_r);
- __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_children_src); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 897, __pyx_L1_error)
+ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_children_src); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 916, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
- __pyx_t_3 = __Pyx_PyInt_AddObjC(__pyx_v_indentation, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 897, __pyx_L1_error)
+ __pyx_t_3 = __Pyx_PyInt_AddObjC(__pyx_v_indentation, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 916, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_4 = NULL;
__pyx_t_5 = 0;
@@ -16514,18 +16915,19 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_9_CxParent_4src(CYTHON_UNUS
__pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_5, 1+__pyx_t_5);
__Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
- if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 897, __pyx_L1_error)
+ if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 916, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
}
- __pyx_r = __pyx_t_1;
+ if (!(likely(PyUnicode_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None) || __Pyx_RaiseUnexpectedTypeError("unicode", __pyx_t_1))) __PYX_ERR(0, 916, __pyx_L1_error)
+ __pyx_r = ((PyObject*)__pyx_t_1);
__pyx_t_1 = 0;
goto __pyx_L0;
- /* "falcon/routing/compiled.py":896
+ /* "falcon/routing/compiled.py":915
* self._children.append(construct)
*
- * def src(self, indentation): # <<<<<<<<<<<<<<
+ * def src(self, indentation: int) -> str: # <<<<<<<<<<<<<<
* return self._children_src(indentation + 1)
*
*/
@@ -16544,7 +16946,7 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_9_CxParent_4src(CYTHON_UNUS
return __pyx_r;
}
-/* "falcon/routing/compiled.py":899
+/* "falcon/routing/compiled.py":918
* return self._children_src(indentation + 1)
*
* def _children_src(self, indentation): # <<<<<<<<<<<<<<
@@ -16601,19 +17003,19 @@ PyObject *__pyx_args, PyObject *__pyx_kwds
switch (__pyx_nargs) {
case 0:
if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_self)) != 0)) kw_args--;
- else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 899, __pyx_L3_error)
+ else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 918, __pyx_L3_error)
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_indentation)) != 0)) kw_args--;
- else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 899, __pyx_L3_error)
+ else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 918, __pyx_L3_error)
else {
- __Pyx_RaiseArgtupleInvalid("_children_src", 1, 2, 2, 1); __PYX_ERR(0, 899, __pyx_L3_error)
+ __Pyx_RaiseArgtupleInvalid("_children_src", 1, 2, 2, 1); __PYX_ERR(0, 918, __pyx_L3_error)
}
}
if (unlikely(kw_args > 0)) {
const Py_ssize_t kwd_pos_args = __pyx_nargs;
- if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_children_src") < 0)) __PYX_ERR(0, 899, __pyx_L3_error)
+ if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_children_src") < 0)) __PYX_ERR(0, 918, __pyx_L3_error)
}
} else if (unlikely(__pyx_nargs != 2)) {
goto __pyx_L5_argtuple_error;
@@ -16626,7 +17028,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
- __Pyx_RaiseArgtupleInvalid("_children_src", 1, 2, 2, __pyx_nargs); __PYX_ERR(0, 899, __pyx_L3_error)
+ __Pyx_RaiseArgtupleInvalid("_children_src", 1, 2, 2, __pyx_nargs); __PYX_ERR(0, 918, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("falcon.routing.compiled._CxParent._children_src", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
@@ -16657,7 +17059,7 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_9_CxParent_6_children_src(C
int __pyx_clineno = 0;
__Pyx_RefNannySetupContext("_children_src", 0);
- /* "falcon/routing/compiled.py":900
+ /* "falcon/routing/compiled.py":919
*
* def _children_src(self, indentation):
* src_lines = [child.src(indentation) for child in self._children] # <<<<<<<<<<<<<<
@@ -16665,17 +17067,17 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_9_CxParent_6_children_src(C
* return '\n'.join(src_lines)
*/
{ /* enter inner scope */
- __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 900, __pyx_L5_error)
+ __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 919, __pyx_L5_error)
__Pyx_GOTREF(__pyx_t_1);
- __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_children_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 900, __pyx_L5_error)
+ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_children_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 919, __pyx_L5_error)
__Pyx_GOTREF(__pyx_t_2);
if (likely(PyList_CheckExact(__pyx_t_2)) || PyTuple_CheckExact(__pyx_t_2)) {
__pyx_t_3 = __pyx_t_2; __Pyx_INCREF(__pyx_t_3); __pyx_t_4 = 0;
__pyx_t_5 = NULL;
} else {
- __pyx_t_4 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 900, __pyx_L5_error)
+ __pyx_t_4 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 919, __pyx_L5_error)
__Pyx_GOTREF(__pyx_t_3);
- __pyx_t_5 = __Pyx_PyObject_GetIterNextFunc(__pyx_t_3); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 900, __pyx_L5_error)
+ __pyx_t_5 = __Pyx_PyObject_GetIterNextFunc(__pyx_t_3); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 919, __pyx_L5_error)
}
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
for (;;) {
@@ -16683,17 +17085,17 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_9_CxParent_6_children_src(C
if (likely(PyList_CheckExact(__pyx_t_3))) {
if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_3)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
- __pyx_t_2 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_4); __Pyx_INCREF(__pyx_t_2); __pyx_t_4++; if (unlikely((0 < 0))) __PYX_ERR(0, 900, __pyx_L5_error)
+ __pyx_t_2 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_4); __Pyx_INCREF(__pyx_t_2); __pyx_t_4++; if (unlikely((0 < 0))) __PYX_ERR(0, 919, __pyx_L5_error)
#else
- __pyx_t_2 = PySequence_ITEM(__pyx_t_3, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 900, __pyx_L5_error)
+ __pyx_t_2 = PySequence_ITEM(__pyx_t_3, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 919, __pyx_L5_error)
__Pyx_GOTREF(__pyx_t_2);
#endif
} else {
if (__pyx_t_4 >= PyTuple_GET_SIZE(__pyx_t_3)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
- __pyx_t_2 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_4); __Pyx_INCREF(__pyx_t_2); __pyx_t_4++; if (unlikely((0 < 0))) __PYX_ERR(0, 900, __pyx_L5_error)
+ __pyx_t_2 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_4); __Pyx_INCREF(__pyx_t_2); __pyx_t_4++; if (unlikely((0 < 0))) __PYX_ERR(0, 919, __pyx_L5_error)
#else
- __pyx_t_2 = PySequence_ITEM(__pyx_t_3, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 900, __pyx_L5_error)
+ __pyx_t_2 = PySequence_ITEM(__pyx_t_3, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 919, __pyx_L5_error)
__Pyx_GOTREF(__pyx_t_2);
#endif
}
@@ -16703,7 +17105,7 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_9_CxParent_6_children_src(C
PyObject* exc_type = PyErr_Occurred();
if (exc_type) {
if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
- else __PYX_ERR(0, 900, __pyx_L5_error)
+ else __PYX_ERR(0, 919, __pyx_L5_error)
}
break;
}
@@ -16711,7 +17113,7 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_9_CxParent_6_children_src(C
}
__Pyx_XDECREF_SET(__pyx_8genexpr4__pyx_v_child, __pyx_t_2);
__pyx_t_2 = 0;
- __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_8genexpr4__pyx_v_child, __pyx_n_s_src); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 900, __pyx_L5_error)
+ __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_8genexpr4__pyx_v_child, __pyx_n_s_src); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 919, __pyx_L5_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_t_7 = NULL;
__pyx_t_8 = 0;
@@ -16729,11 +17131,11 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_9_CxParent_6_children_src(C
PyObject *__pyx_callargs[2] = {__pyx_t_7, __pyx_v_indentation};
__pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_6, __pyx_callargs+1-__pyx_t_8, 1+__pyx_t_8);
__Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
- if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 900, __pyx_L5_error)
+ if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 919, __pyx_L5_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
}
- if (unlikely(__Pyx_ListComp_Append(__pyx_t_1, (PyObject*)__pyx_t_2))) __PYX_ERR(0, 900, __pyx_L5_error)
+ if (unlikely(__Pyx_ListComp_Append(__pyx_t_1, (PyObject*)__pyx_t_2))) __PYX_ERR(0, 919, __pyx_L5_error)
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
}
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
@@ -16747,7 +17149,7 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_9_CxParent_6_children_src(C
__pyx_v_src_lines = ((PyObject*)__pyx_t_1);
__pyx_t_1 = 0;
- /* "falcon/routing/compiled.py":902
+ /* "falcon/routing/compiled.py":921
* src_lines = [child.src(indentation) for child in self._children]
*
* return '\n'.join(src_lines) # <<<<<<<<<<<<<<
@@ -16755,13 +17157,13 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_9_CxParent_6_children_src(C
*
*/
__Pyx_XDECREF(__pyx_r);
- __pyx_t_1 = PyUnicode_Join(__pyx_kp_u__12, __pyx_v_src_lines); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 902, __pyx_L1_error)
+ __pyx_t_1 = PyUnicode_Join(__pyx_kp_u__13, __pyx_v_src_lines); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 921, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_r = __pyx_t_1;
__pyx_t_1 = 0;
goto __pyx_L0;
- /* "falcon/routing/compiled.py":899
+ /* "falcon/routing/compiled.py":918
* return self._children_src(indentation + 1)
*
* def _children_src(self, indentation): # <<<<<<<<<<<<<<
@@ -16786,7 +17188,137 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_9_CxParent_6_children_src(C
return __pyx_r;
}
-/* "falcon/routing/compiled.py":906
+/* "falcon/routing/compiled.py":926
+ * class _CxChild:
+ * # This a base element only to aid pep484
+ * def src(self, indentation: int) -> str: # <<<<<<<<<<<<<<
+ * raise NotImplementedError
+ *
+ */
+
+/* Python wrapper */
+static PyObject *__pyx_pw_6falcon_7routing_8compiled_8_CxChild_1src(PyObject *__pyx_self,
+#if CYTHON_METH_FASTCALL
+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_6falcon_7routing_8compiled_8_CxChild_1src = {"src", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_6falcon_7routing_8compiled_8_CxChild_1src, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
+static PyObject *__pyx_pw_6falcon_7routing_8compiled_8_CxChild_1src(PyObject *__pyx_self,
+#if CYTHON_METH_FASTCALL
+PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
+#else
+PyObject *__pyx_args, PyObject *__pyx_kwds
+#endif
+) {
+ CYTHON_UNUSED PyObject *__pyx_v_self = 0;
+ CYTHON_UNUSED PyObject *__pyx_v_indentation = 0;
+ #if !CYTHON_METH_FASTCALL
+ CYTHON_UNUSED const Py_ssize_t __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
+ #endif
+ CYTHON_UNUSED PyObject *const *__pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
+ int __pyx_lineno = 0;
+ const char *__pyx_filename = NULL;
+ int __pyx_clineno = 0;
+ PyObject *__pyx_r = 0;
+ __Pyx_RefNannyDeclarations
+ __Pyx_RefNannySetupContext("src (wrapper)", 0);
+ {
+ #if CYTHON_USE_MODULE_STATE
+ PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_indentation,0};
+ #else
+ static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_indentation,0};
+ #endif
+ PyObject* values[2] = {0,0};
+ if (__pyx_kwds) {
+ Py_ssize_t kw_args;
+ switch (__pyx_nargs) {
+ case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
+ CYTHON_FALLTHROUGH;
+ case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
+ CYTHON_FALLTHROUGH;
+ case 0: break;
+ default: goto __pyx_L5_argtuple_error;
+ }
+ kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
+ switch (__pyx_nargs) {
+ case 0:
+ if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_self)) != 0)) kw_args--;
+ else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 926, __pyx_L3_error)
+ else goto __pyx_L5_argtuple_error;
+ CYTHON_FALLTHROUGH;
+ case 1:
+ if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_indentation)) != 0)) kw_args--;
+ else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 926, __pyx_L3_error)
+ else {
+ __Pyx_RaiseArgtupleInvalid("src", 1, 2, 2, 1); __PYX_ERR(0, 926, __pyx_L3_error)
+ }
+ }
+ if (unlikely(kw_args > 0)) {
+ const Py_ssize_t kwd_pos_args = __pyx_nargs;
+ if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "src") < 0)) __PYX_ERR(0, 926, __pyx_L3_error)
+ }
+ } else if (unlikely(__pyx_nargs != 2)) {
+ goto __pyx_L5_argtuple_error;
+ } else {
+ values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
+ values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
+ }
+ __pyx_v_self = values[0];
+ __pyx_v_indentation = values[1];
+ }
+ goto __pyx_L4_argument_unpacking_done;
+ __pyx_L5_argtuple_error:;
+ __Pyx_RaiseArgtupleInvalid("src", 1, 2, 2, __pyx_nargs); __PYX_ERR(0, 926, __pyx_L3_error)
+ __pyx_L3_error:;
+ __Pyx_AddTraceback("falcon.routing.compiled._CxChild.src", __pyx_clineno, __pyx_lineno, __pyx_filename);
+ __Pyx_RefNannyFinishContext();
+ return NULL;
+ __pyx_L4_argument_unpacking_done:;
+ __pyx_r = __pyx_pf_6falcon_7routing_8compiled_8_CxChild_src(__pyx_self, __pyx_v_self, __pyx_v_indentation);
+
+ /* function exit code */
+ __Pyx_RefNannyFinishContext();
+ return __pyx_r;
+}
+
+static PyObject *__pyx_pf_6falcon_7routing_8compiled_8_CxChild_src(CYTHON_UNUSED PyObject *__pyx_self, CYTHON_UNUSED PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v_indentation) {
+ PyObject *__pyx_r = NULL;
+ __Pyx_RefNannyDeclarations
+ int __pyx_lineno = 0;
+ const char *__pyx_filename = NULL;
+ int __pyx_clineno = 0;
+ __Pyx_RefNannySetupContext("src", 0);
+
+ /* "falcon/routing/compiled.py":927
+ * # This a base element only to aid pep484
+ * def src(self, indentation: int) -> str:
+ * raise NotImplementedError # <<<<<<<<<<<<<<
+ *
+ *
+ */
+ __Pyx_Raise(__pyx_builtin_NotImplementedError, 0, 0, 0);
+ __PYX_ERR(0, 927, __pyx_L1_error)
+
+ /* "falcon/routing/compiled.py":926
+ * class _CxChild:
+ * # This a base element only to aid pep484
+ * def src(self, indentation: int) -> str: # <<<<<<<<<<<<<<
+ * raise NotImplementedError
+ *
+ */
+
+ /* function exit code */
+ __pyx_L1_error:;
+ __Pyx_AddTraceback("falcon.routing.compiled._CxChild.src", __pyx_clineno, __pyx_lineno, __pyx_filename);
+ __pyx_r = NULL;
+ __Pyx_XGIVEREF(__pyx_r);
+ __Pyx_RefNannyFinishContext();
+ return __pyx_r;
+}
+
+/* "falcon/routing/compiled.py":931
*
* class _CxIfPathLength(_CxParent):
* def __init__(self, comparison, length): # <<<<<<<<<<<<<<
@@ -16846,26 +17378,26 @@ PyObject *__pyx_args, PyObject *__pyx_kwds
switch (__pyx_nargs) {
case 0:
if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_self)) != 0)) kw_args--;
- else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 906, __pyx_L3_error)
+ else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 931, __pyx_L3_error)
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_comparison)) != 0)) kw_args--;
- else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 906, __pyx_L3_error)
+ else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 931, __pyx_L3_error)
else {
- __Pyx_RaiseArgtupleInvalid("__init__", 1, 3, 3, 1); __PYX_ERR(0, 906, __pyx_L3_error)
+ __Pyx_RaiseArgtupleInvalid("__init__", 1, 3, 3, 1); __PYX_ERR(0, 931, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 2:
if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_length)) != 0)) kw_args--;
- else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 906, __pyx_L3_error)
+ else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 931, __pyx_L3_error)
else {
- __Pyx_RaiseArgtupleInvalid("__init__", 1, 3, 3, 2); __PYX_ERR(0, 906, __pyx_L3_error)
+ __Pyx_RaiseArgtupleInvalid("__init__", 1, 3, 3, 2); __PYX_ERR(0, 931, __pyx_L3_error)
}
}
if (unlikely(kw_args > 0)) {
const Py_ssize_t kwd_pos_args = __pyx_nargs;
- if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__init__") < 0)) __PYX_ERR(0, 906, __pyx_L3_error)
+ if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__init__") < 0)) __PYX_ERR(0, 931, __pyx_L3_error)
}
} else if (unlikely(__pyx_nargs != 3)) {
goto __pyx_L5_argtuple_error;
@@ -16880,7 +17412,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
- __Pyx_RaiseArgtupleInvalid("__init__", 1, 3, 3, __pyx_nargs); __PYX_ERR(0, 906, __pyx_L3_error)
+ __Pyx_RaiseArgtupleInvalid("__init__", 1, 3, 3, __pyx_nargs); __PYX_ERR(0, 931, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("falcon.routing.compiled._CxIfPathLength.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
@@ -16905,7 +17437,7 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_15_CxIfPathLength___init__(
int __pyx_clineno = 0;
__Pyx_RefNannySetupContext("__init__", 0);
- /* "falcon/routing/compiled.py":907
+ /* "falcon/routing/compiled.py":932
* class _CxIfPathLength(_CxParent):
* def __init__(self, comparison, length):
* super().__init__() # <<<<<<<<<<<<<<
@@ -16913,9 +17445,9 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_15_CxIfPathLength___init__(
* self._length = length
*/
__pyx_t_2 = __Pyx_CyFunction_GetClassObj(__pyx_self);
- if (!__pyx_t_2) { PyErr_SetString(PyExc_SystemError, "super(): empty __class__ cell"); __PYX_ERR(0, 907, __pyx_L1_error) }
+ if (!__pyx_t_2) { PyErr_SetString(PyExc_SystemError, "super(): empty __class__ cell"); __PYX_ERR(0, 932, __pyx_L1_error) }
__Pyx_INCREF(__pyx_t_2);
- __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 907, __pyx_L1_error)
+ __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 932, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_GIVEREF(__pyx_t_2);
PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
@@ -16923,10 +17455,10 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_15_CxIfPathLength___init__(
__Pyx_GIVEREF(__pyx_v_self);
PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_v_self);
__pyx_t_2 = 0;
- __pyx_t_2 = __Pyx_PyObject_Call(__pyx_builtin_super, __pyx_t_3, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 907, __pyx_L1_error)
+ __pyx_t_2 = __Pyx_PyObject_Call(__pyx_builtin_super, __pyx_t_3, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 932, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
- __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_init); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 907, __pyx_L1_error)
+ __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_init); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 932, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_t_2 = NULL;
@@ -16945,31 +17477,31 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_15_CxIfPathLength___init__(
PyObject *__pyx_callargs[1] = {__pyx_t_2, };
__pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_4, 0+__pyx_t_4);
__Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
- if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 907, __pyx_L1_error)
+ if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 932, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
- /* "falcon/routing/compiled.py":908
+ /* "falcon/routing/compiled.py":933
* def __init__(self, comparison, length):
* super().__init__()
* self._comparison = comparison # <<<<<<<<<<<<<<
* self._length = length
*
*/
- if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_comparison_2, __pyx_v_comparison) < 0) __PYX_ERR(0, 908, __pyx_L1_error)
+ if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_comparison_2, __pyx_v_comparison) < 0) __PYX_ERR(0, 933, __pyx_L1_error)
- /* "falcon/routing/compiled.py":909
+ /* "falcon/routing/compiled.py":934
* super().__init__()
* self._comparison = comparison
* self._length = length # <<<<<<<<<<<<<<
*
* def src(self, indentation):
*/
- if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_length_2, __pyx_v_length) < 0) __PYX_ERR(0, 909, __pyx_L1_error)
+ if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_length_2, __pyx_v_length) < 0) __PYX_ERR(0, 934, __pyx_L1_error)
- /* "falcon/routing/compiled.py":906
+ /* "falcon/routing/compiled.py":931
*
* class _CxIfPathLength(_CxParent):
* def __init__(self, comparison, length): # <<<<<<<<<<<<<<
@@ -16992,7 +17524,7 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_15_CxIfPathLength___init__(
return __pyx_r;
}
-/* "falcon/routing/compiled.py":911
+/* "falcon/routing/compiled.py":936
* self._length = length
*
* def src(self, indentation): # <<<<<<<<<<<<<<
@@ -17049,19 +17581,19 @@ PyObject *__pyx_args, PyObject *__pyx_kwds
switch (__pyx_nargs) {
case 0:
if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_self)) != 0)) kw_args--;
- else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 911, __pyx_L3_error)
+ else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 936, __pyx_L3_error)
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_indentation)) != 0)) kw_args--;
- else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 911, __pyx_L3_error)
+ else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 936, __pyx_L3_error)
else {
- __Pyx_RaiseArgtupleInvalid("src", 1, 2, 2, 1); __PYX_ERR(0, 911, __pyx_L3_error)
+ __Pyx_RaiseArgtupleInvalid("src", 1, 2, 2, 1); __PYX_ERR(0, 936, __pyx_L3_error)
}
}
if (unlikely(kw_args > 0)) {
const Py_ssize_t kwd_pos_args = __pyx_nargs;
- if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "src") < 0)) __PYX_ERR(0, 911, __pyx_L3_error)
+ if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "src") < 0)) __PYX_ERR(0, 936, __pyx_L3_error)
}
} else if (unlikely(__pyx_nargs != 2)) {
goto __pyx_L5_argtuple_error;
@@ -17074,7 +17606,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
- __Pyx_RaiseArgtupleInvalid("src", 1, 2, 2, __pyx_nargs); __PYX_ERR(0, 911, __pyx_L3_error)
+ __Pyx_RaiseArgtupleInvalid("src", 1, 2, 2, __pyx_nargs); __PYX_ERR(0, 936, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("falcon.routing.compiled._CxIfPathLength.src", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
@@ -17106,7 +17638,7 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_15_CxIfPathLength_2src(CYTH
int __pyx_clineno = 0;
__Pyx_RefNannySetupContext("src", 0);
- /* "falcon/routing/compiled.py":912
+ /* "falcon/routing/compiled.py":937
*
* def src(self, indentation):
* template = '{0}if path_len {1} {2}:\n{3}' # <<<<<<<<<<<<<<
@@ -17116,7 +17648,7 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_15_CxIfPathLength_2src(CYTH
__Pyx_INCREF(__pyx_kp_u_0_if_path_len_1_2_3);
__pyx_v_template = __pyx_kp_u_0_if_path_len_1_2_3;
- /* "falcon/routing/compiled.py":913
+ /* "falcon/routing/compiled.py":938
* def src(self, indentation):
* template = '{0}if path_len {1} {2}:\n{3}'
* return template.format( # <<<<<<<<<<<<<<
@@ -17124,52 +17656,52 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_15_CxIfPathLength_2src(CYTH
* self._comparison,
*/
__Pyx_XDECREF(__pyx_r);
- __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_template, __pyx_n_s_format); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 913, __pyx_L1_error)
+ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_template, __pyx_n_s_format); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 938, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
- /* "falcon/routing/compiled.py":914
+ /* "falcon/routing/compiled.py":939
* template = '{0}if path_len {1} {2}:\n{3}'
* return template.format(
* _TAB_STR * indentation, # <<<<<<<<<<<<<<
* self._comparison,
* self._length,
*/
- __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_TAB_STR); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 914, __pyx_L1_error)
+ __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_TAB_STR); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 939, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
- __pyx_t_4 = PyNumber_Multiply(__pyx_t_3, __pyx_v_indentation); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 914, __pyx_L1_error)
+ __pyx_t_4 = PyNumber_Multiply(__pyx_t_3, __pyx_v_indentation); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 939, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
- /* "falcon/routing/compiled.py":915
+ /* "falcon/routing/compiled.py":940
* return template.format(
* _TAB_STR * indentation,
* self._comparison, # <<<<<<<<<<<<<<
* self._length,
* self._children_src(indentation + 1),
*/
- __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_comparison_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 915, __pyx_L1_error)
+ __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_comparison_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 940, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
- /* "falcon/routing/compiled.py":916
+ /* "falcon/routing/compiled.py":941
* _TAB_STR * indentation,
* self._comparison,
* self._length, # <<<<<<<<<<<<<<
* self._children_src(indentation + 1),
* )
*/
- __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_length_2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 916, __pyx_L1_error)
+ __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_length_2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 941, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
- /* "falcon/routing/compiled.py":917
+ /* "falcon/routing/compiled.py":942
* self._comparison,
* self._length,
* self._children_src(indentation + 1), # <<<<<<<<<<<<<<
* )
*
*/
- __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_children_src); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 917, __pyx_L1_error)
+ __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_children_src); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 942, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
- __pyx_t_8 = __Pyx_PyInt_AddObjC(__pyx_v_indentation, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 917, __pyx_L1_error)
+ __pyx_t_8 = __Pyx_PyInt_AddObjC(__pyx_v_indentation, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 942, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_8);
__pyx_t_9 = NULL;
__pyx_t_10 = 0;
@@ -17188,7 +17720,7 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_15_CxIfPathLength_2src(CYTH
__pyx_t_6 = __Pyx_PyObject_FastCall(__pyx_t_7, __pyx_callargs+1-__pyx_t_10, 1+__pyx_t_10);
__Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
- if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 917, __pyx_L1_error)
+ if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 942, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
}
@@ -17212,7 +17744,7 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_15_CxIfPathLength_2src(CYTH
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
- if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 913, __pyx_L1_error)
+ if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 938, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
}
@@ -17220,7 +17752,7 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_15_CxIfPathLength_2src(CYTH
__pyx_t_1 = 0;
goto __pyx_L0;
- /* "falcon/routing/compiled.py":911
+ /* "falcon/routing/compiled.py":936
* self._length = length
*
* def src(self, indentation): # <<<<<<<<<<<<<<
@@ -17248,7 +17780,7 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_15_CxIfPathLength_2src(CYTH
return __pyx_r;
}
-/* "falcon/routing/compiled.py":922
+/* "falcon/routing/compiled.py":947
*
* class _CxIfPathSegmentLiteral(_CxParent):
* def __init__(self, segment_idx, literal): # <<<<<<<<<<<<<<
@@ -17308,26 +17840,26 @@ PyObject *__pyx_args, PyObject *__pyx_kwds
switch (__pyx_nargs) {
case 0:
if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_self)) != 0)) kw_args--;
- else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 922, __pyx_L3_error)
+ else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 947, __pyx_L3_error)
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_segment_idx)) != 0)) kw_args--;
- else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 922, __pyx_L3_error)
+ else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 947, __pyx_L3_error)
else {
- __Pyx_RaiseArgtupleInvalid("__init__", 1, 3, 3, 1); __PYX_ERR(0, 922, __pyx_L3_error)
+ __Pyx_RaiseArgtupleInvalid("__init__", 1, 3, 3, 1); __PYX_ERR(0, 947, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 2:
if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_literal)) != 0)) kw_args--;
- else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 922, __pyx_L3_error)
+ else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 947, __pyx_L3_error)
else {
- __Pyx_RaiseArgtupleInvalid("__init__", 1, 3, 3, 2); __PYX_ERR(0, 922, __pyx_L3_error)
+ __Pyx_RaiseArgtupleInvalid("__init__", 1, 3, 3, 2); __PYX_ERR(0, 947, __pyx_L3_error)
}
}
if (unlikely(kw_args > 0)) {
const Py_ssize_t kwd_pos_args = __pyx_nargs;
- if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__init__") < 0)) __PYX_ERR(0, 922, __pyx_L3_error)
+ if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__init__") < 0)) __PYX_ERR(0, 947, __pyx_L3_error)
}
} else if (unlikely(__pyx_nargs != 3)) {
goto __pyx_L5_argtuple_error;
@@ -17342,7 +17874,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
- __Pyx_RaiseArgtupleInvalid("__init__", 1, 3, 3, __pyx_nargs); __PYX_ERR(0, 922, __pyx_L3_error)
+ __Pyx_RaiseArgtupleInvalid("__init__", 1, 3, 3, __pyx_nargs); __PYX_ERR(0, 947, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("falcon.routing.compiled._CxIfPathSegmentLiteral.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
@@ -17367,7 +17899,7 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_23_CxIfPathSegmentLiteral__
int __pyx_clineno = 0;
__Pyx_RefNannySetupContext("__init__", 0);
- /* "falcon/routing/compiled.py":923
+ /* "falcon/routing/compiled.py":948
* class _CxIfPathSegmentLiteral(_CxParent):
* def __init__(self, segment_idx, literal):
* super().__init__() # <<<<<<<<<<<<<<
@@ -17375,9 +17907,9 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_23_CxIfPathSegmentLiteral__
* self._literal = literal
*/
__pyx_t_2 = __Pyx_CyFunction_GetClassObj(__pyx_self);
- if (!__pyx_t_2) { PyErr_SetString(PyExc_SystemError, "super(): empty __class__ cell"); __PYX_ERR(0, 923, __pyx_L1_error) }
+ if (!__pyx_t_2) { PyErr_SetString(PyExc_SystemError, "super(): empty __class__ cell"); __PYX_ERR(0, 948, __pyx_L1_error) }
__Pyx_INCREF(__pyx_t_2);
- __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 923, __pyx_L1_error)
+ __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 948, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_GIVEREF(__pyx_t_2);
PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
@@ -17385,10 +17917,10 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_23_CxIfPathSegmentLiteral__
__Pyx_GIVEREF(__pyx_v_self);
PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_v_self);
__pyx_t_2 = 0;
- __pyx_t_2 = __Pyx_PyObject_Call(__pyx_builtin_super, __pyx_t_3, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 923, __pyx_L1_error)
+ __pyx_t_2 = __Pyx_PyObject_Call(__pyx_builtin_super, __pyx_t_3, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 948, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
- __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_init); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 923, __pyx_L1_error)
+ __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_init); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 948, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_t_2 = NULL;
@@ -17407,31 +17939,31 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_23_CxIfPathSegmentLiteral__
PyObject *__pyx_callargs[1] = {__pyx_t_2, };
__pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_4, 0+__pyx_t_4);
__Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
- if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 923, __pyx_L1_error)
+ if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 948, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
- /* "falcon/routing/compiled.py":924
+ /* "falcon/routing/compiled.py":949
* def __init__(self, segment_idx, literal):
* super().__init__()
* self._segment_idx = segment_idx # <<<<<<<<<<<<<<
* self._literal = literal
*
*/
- if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_segment_idx_2, __pyx_v_segment_idx) < 0) __PYX_ERR(0, 924, __pyx_L1_error)
+ if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_segment_idx_2, __pyx_v_segment_idx) < 0) __PYX_ERR(0, 949, __pyx_L1_error)
- /* "falcon/routing/compiled.py":925
+ /* "falcon/routing/compiled.py":950
* super().__init__()
* self._segment_idx = segment_idx
* self._literal = literal # <<<<<<<<<<<<<<
*
* def src(self, indentation):
*/
- if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_literal_2, __pyx_v_literal) < 0) __PYX_ERR(0, 925, __pyx_L1_error)
+ if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_literal_2, __pyx_v_literal) < 0) __PYX_ERR(0, 950, __pyx_L1_error)
- /* "falcon/routing/compiled.py":922
+ /* "falcon/routing/compiled.py":947
*
* class _CxIfPathSegmentLiteral(_CxParent):
* def __init__(self, segment_idx, literal): # <<<<<<<<<<<<<<
@@ -17454,7 +17986,7 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_23_CxIfPathSegmentLiteral__
return __pyx_r;
}
-/* "falcon/routing/compiled.py":927
+/* "falcon/routing/compiled.py":952
* self._literal = literal
*
* def src(self, indentation): # <<<<<<<<<<<<<<
@@ -17511,19 +18043,19 @@ PyObject *__pyx_args, PyObject *__pyx_kwds
switch (__pyx_nargs) {
case 0:
if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_self)) != 0)) kw_args--;
- else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 927, __pyx_L3_error)
+ else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 952, __pyx_L3_error)
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_indentation)) != 0)) kw_args--;
- else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 927, __pyx_L3_error)
+ else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 952, __pyx_L3_error)
else {
- __Pyx_RaiseArgtupleInvalid("src", 1, 2, 2, 1); __PYX_ERR(0, 927, __pyx_L3_error)
+ __Pyx_RaiseArgtupleInvalid("src", 1, 2, 2, 1); __PYX_ERR(0, 952, __pyx_L3_error)
}
}
if (unlikely(kw_args > 0)) {
const Py_ssize_t kwd_pos_args = __pyx_nargs;
- if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "src") < 0)) __PYX_ERR(0, 927, __pyx_L3_error)
+ if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "src") < 0)) __PYX_ERR(0, 952, __pyx_L3_error)
}
} else if (unlikely(__pyx_nargs != 2)) {
goto __pyx_L5_argtuple_error;
@@ -17536,7 +18068,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
- __Pyx_RaiseArgtupleInvalid("src", 1, 2, 2, __pyx_nargs); __PYX_ERR(0, 927, __pyx_L3_error)
+ __Pyx_RaiseArgtupleInvalid("src", 1, 2, 2, __pyx_nargs); __PYX_ERR(0, 952, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("falcon.routing.compiled._CxIfPathSegmentLiteral.src", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
@@ -17568,7 +18100,7 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_23_CxIfPathSegmentLiteral_2
int __pyx_clineno = 0;
__Pyx_RefNannySetupContext("src", 0);
- /* "falcon/routing/compiled.py":928
+ /* "falcon/routing/compiled.py":953
*
* def src(self, indentation):
* template = "{0}if path[{1}] == '{2}':\n{3}" # <<<<<<<<<<<<<<
@@ -17578,7 +18110,7 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_23_CxIfPathSegmentLiteral_2
__Pyx_INCREF(__pyx_kp_u_0_if_path_1_2_3);
__pyx_v_template = __pyx_kp_u_0_if_path_1_2_3;
- /* "falcon/routing/compiled.py":929
+ /* "falcon/routing/compiled.py":954
* def src(self, indentation):
* template = "{0}if path[{1}] == '{2}':\n{3}"
* return template.format( # <<<<<<<<<<<<<<
@@ -17586,52 +18118,52 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_23_CxIfPathSegmentLiteral_2
* self._segment_idx,
*/
__Pyx_XDECREF(__pyx_r);
- __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_template, __pyx_n_s_format); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 929, __pyx_L1_error)
+ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_template, __pyx_n_s_format); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 954, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
- /* "falcon/routing/compiled.py":930
+ /* "falcon/routing/compiled.py":955
* template = "{0}if path[{1}] == '{2}':\n{3}"
* return template.format(
* _TAB_STR * indentation, # <<<<<<<<<<<<<<
* self._segment_idx,
* self._literal,
*/
- __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_TAB_STR); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 930, __pyx_L1_error)
+ __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_TAB_STR); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 955, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
- __pyx_t_4 = PyNumber_Multiply(__pyx_t_3, __pyx_v_indentation); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 930, __pyx_L1_error)
+ __pyx_t_4 = PyNumber_Multiply(__pyx_t_3, __pyx_v_indentation); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 955, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
- /* "falcon/routing/compiled.py":931
+ /* "falcon/routing/compiled.py":956
* return template.format(
* _TAB_STR * indentation,
* self._segment_idx, # <<<<<<<<<<<<<<
* self._literal,
* self._children_src(indentation + 1),
*/
- __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_segment_idx_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 931, __pyx_L1_error)
+ __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_segment_idx_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 956, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
- /* "falcon/routing/compiled.py":932
+ /* "falcon/routing/compiled.py":957
* _TAB_STR * indentation,
* self._segment_idx,
* self._literal, # <<<<<<<<<<<<<<
* self._children_src(indentation + 1),
* )
*/
- __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_literal_2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 932, __pyx_L1_error)
+ __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_literal_2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 957, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
- /* "falcon/routing/compiled.py":933
+ /* "falcon/routing/compiled.py":958
* self._segment_idx,
* self._literal,
* self._children_src(indentation + 1), # <<<<<<<<<<<<<<
* )
*
*/
- __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_children_src); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 933, __pyx_L1_error)
+ __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_children_src); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 958, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
- __pyx_t_8 = __Pyx_PyInt_AddObjC(__pyx_v_indentation, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 933, __pyx_L1_error)
+ __pyx_t_8 = __Pyx_PyInt_AddObjC(__pyx_v_indentation, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 958, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_8);
__pyx_t_9 = NULL;
__pyx_t_10 = 0;
@@ -17650,7 +18182,7 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_23_CxIfPathSegmentLiteral_2
__pyx_t_6 = __Pyx_PyObject_FastCall(__pyx_t_7, __pyx_callargs+1-__pyx_t_10, 1+__pyx_t_10);
__Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
- if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 933, __pyx_L1_error)
+ if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 958, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
}
@@ -17674,7 +18206,7 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_23_CxIfPathSegmentLiteral_2
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
- if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 929, __pyx_L1_error)
+ if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 954, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
}
@@ -17682,7 +18214,7 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_23_CxIfPathSegmentLiteral_2
__pyx_t_1 = 0;
goto __pyx_L0;
- /* "falcon/routing/compiled.py":927
+ /* "falcon/routing/compiled.py":952
* self._literal = literal
*
* def src(self, indentation): # <<<<<<<<<<<<<<
@@ -17710,7 +18242,7 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_23_CxIfPathSegmentLiteral_2
return __pyx_r;
}
-/* "falcon/routing/compiled.py":938
+/* "falcon/routing/compiled.py":963
*
* class _CxIfPathSegmentPattern(_CxParent):
* def __init__(self, segment_idx, pattern_idx, pattern_text): # <<<<<<<<<<<<<<
@@ -17773,33 +18305,33 @@ PyObject *__pyx_args, PyObject *__pyx_kwds
switch (__pyx_nargs) {
case 0:
if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_self)) != 0)) kw_args--;
- else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 938, __pyx_L3_error)
+ else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 963, __pyx_L3_error)
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_segment_idx)) != 0)) kw_args--;
- else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 938, __pyx_L3_error)
+ else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 963, __pyx_L3_error)
else {
- __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, 1); __PYX_ERR(0, 938, __pyx_L3_error)
+ __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, 1); __PYX_ERR(0, 963, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 2:
if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pattern_idx)) != 0)) kw_args--;
- else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 938, __pyx_L3_error)
+ else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 963, __pyx_L3_error)
else {
- __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, 2); __PYX_ERR(0, 938, __pyx_L3_error)
+ __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, 2); __PYX_ERR(0, 963, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 3:
if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pattern_text)) != 0)) kw_args--;
- else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 938, __pyx_L3_error)
+ else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 963, __pyx_L3_error)
else {
- __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, 3); __PYX_ERR(0, 938, __pyx_L3_error)
+ __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, 3); __PYX_ERR(0, 963, __pyx_L3_error)
}
}
if (unlikely(kw_args > 0)) {
const Py_ssize_t kwd_pos_args = __pyx_nargs;
- if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__init__") < 0)) __PYX_ERR(0, 938, __pyx_L3_error)
+ if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__init__") < 0)) __PYX_ERR(0, 963, __pyx_L3_error)
}
} else if (unlikely(__pyx_nargs != 4)) {
goto __pyx_L5_argtuple_error;
@@ -17816,7 +18348,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
- __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(0, 938, __pyx_L3_error)
+ __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(0, 963, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("falcon.routing.compiled._CxIfPathSegmentPattern.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
@@ -17841,7 +18373,7 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_23_CxIfPathSegmentPattern__
int __pyx_clineno = 0;
__Pyx_RefNannySetupContext("__init__", 0);
- /* "falcon/routing/compiled.py":939
+ /* "falcon/routing/compiled.py":964
* class _CxIfPathSegmentPattern(_CxParent):
* def __init__(self, segment_idx, pattern_idx, pattern_text):
* super().__init__() # <<<<<<<<<<<<<<
@@ -17849,9 +18381,9 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_23_CxIfPathSegmentPattern__
* self._pattern_idx = pattern_idx
*/
__pyx_t_2 = __Pyx_CyFunction_GetClassObj(__pyx_self);
- if (!__pyx_t_2) { PyErr_SetString(PyExc_SystemError, "super(): empty __class__ cell"); __PYX_ERR(0, 939, __pyx_L1_error) }
+ if (!__pyx_t_2) { PyErr_SetString(PyExc_SystemError, "super(): empty __class__ cell"); __PYX_ERR(0, 964, __pyx_L1_error) }
__Pyx_INCREF(__pyx_t_2);
- __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 939, __pyx_L1_error)
+ __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 964, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_GIVEREF(__pyx_t_2);
PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
@@ -17859,10 +18391,10 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_23_CxIfPathSegmentPattern__
__Pyx_GIVEREF(__pyx_v_self);
PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_v_self);
__pyx_t_2 = 0;
- __pyx_t_2 = __Pyx_PyObject_Call(__pyx_builtin_super, __pyx_t_3, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 939, __pyx_L1_error)
+ __pyx_t_2 = __Pyx_PyObject_Call(__pyx_builtin_super, __pyx_t_3, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 964, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
- __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_init); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 939, __pyx_L1_error)
+ __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_init); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 964, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_t_2 = NULL;
@@ -17881,40 +18413,40 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_23_CxIfPathSegmentPattern__
PyObject *__pyx_callargs[1] = {__pyx_t_2, };
__pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_4, 0+__pyx_t_4);
__Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
- if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 939, __pyx_L1_error)
+ if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 964, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
- /* "falcon/routing/compiled.py":940
+ /* "falcon/routing/compiled.py":965
* def __init__(self, segment_idx, pattern_idx, pattern_text):
* super().__init__()
* self._segment_idx = segment_idx # <<<<<<<<<<<<<<
* self._pattern_idx = pattern_idx
* self._pattern_text = pattern_text
*/
- if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_segment_idx_2, __pyx_v_segment_idx) < 0) __PYX_ERR(0, 940, __pyx_L1_error)
+ if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_segment_idx_2, __pyx_v_segment_idx) < 0) __PYX_ERR(0, 965, __pyx_L1_error)
- /* "falcon/routing/compiled.py":941
+ /* "falcon/routing/compiled.py":966
* super().__init__()
* self._segment_idx = segment_idx
* self._pattern_idx = pattern_idx # <<<<<<<<<<<<<<
* self._pattern_text = pattern_text
*
*/
- if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_pattern_idx_2, __pyx_v_pattern_idx) < 0) __PYX_ERR(0, 941, __pyx_L1_error)
+ if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_pattern_idx_2, __pyx_v_pattern_idx) < 0) __PYX_ERR(0, 966, __pyx_L1_error)
- /* "falcon/routing/compiled.py":942
+ /* "falcon/routing/compiled.py":967
* self._segment_idx = segment_idx
* self._pattern_idx = pattern_idx
* self._pattern_text = pattern_text # <<<<<<<<<<<<<<
*
* def src(self, indentation):
*/
- if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_pattern_text_2, __pyx_v_pattern_text) < 0) __PYX_ERR(0, 942, __pyx_L1_error)
+ if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_pattern_text_2, __pyx_v_pattern_text) < 0) __PYX_ERR(0, 967, __pyx_L1_error)
- /* "falcon/routing/compiled.py":938
+ /* "falcon/routing/compiled.py":963
*
* class _CxIfPathSegmentPattern(_CxParent):
* def __init__(self, segment_idx, pattern_idx, pattern_text): # <<<<<<<<<<<<<<
@@ -17937,7 +18469,7 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_23_CxIfPathSegmentPattern__
return __pyx_r;
}
-/* "falcon/routing/compiled.py":944
+/* "falcon/routing/compiled.py":969
* self._pattern_text = pattern_text
*
* def src(self, indentation): # <<<<<<<<<<<<<<
@@ -17994,19 +18526,19 @@ PyObject *__pyx_args, PyObject *__pyx_kwds
switch (__pyx_nargs) {
case 0:
if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_self)) != 0)) kw_args--;
- else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 944, __pyx_L3_error)
+ else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 969, __pyx_L3_error)
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_indentation)) != 0)) kw_args--;
- else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 944, __pyx_L3_error)
+ else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 969, __pyx_L3_error)
else {
- __Pyx_RaiseArgtupleInvalid("src", 1, 2, 2, 1); __PYX_ERR(0, 944, __pyx_L3_error)
+ __Pyx_RaiseArgtupleInvalid("src", 1, 2, 2, 1); __PYX_ERR(0, 969, __pyx_L3_error)
}
}
if (unlikely(kw_args > 0)) {
const Py_ssize_t kwd_pos_args = __pyx_nargs;
- if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "src") < 0)) __PYX_ERR(0, 944, __pyx_L3_error)
+ if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "src") < 0)) __PYX_ERR(0, 969, __pyx_L3_error)
}
} else if (unlikely(__pyx_nargs != 2)) {
goto __pyx_L5_argtuple_error;
@@ -18019,7 +18551,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
- __Pyx_RaiseArgtupleInvalid("src", 1, 2, 2, __pyx_nargs); __PYX_ERR(0, 944, __pyx_L3_error)
+ __Pyx_RaiseArgtupleInvalid("src", 1, 2, 2, __pyx_nargs); __PYX_ERR(0, 969, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("falcon.routing.compiled._CxIfPathSegmentPattern.src", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
@@ -18049,57 +18581,57 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_23_CxIfPathSegmentPattern_2
int __pyx_clineno = 0;
__Pyx_RefNannySetupContext("src", 0);
- /* "falcon/routing/compiled.py":946
+ /* "falcon/routing/compiled.py":971
* def src(self, indentation):
* lines = [
* '{0}match = patterns[{1}].match(path[{2}]) # {3}'.format( # <<<<<<<<<<<<<<
* _TAB_STR * indentation,
* self._pattern_idx,
*/
- __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_kp_u_0_match_patterns_1_match_path_2, __pyx_n_s_format); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 946, __pyx_L1_error)
+ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_kp_u_0_match_patterns_1_match_path_2, __pyx_n_s_format); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 971, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
- /* "falcon/routing/compiled.py":947
+ /* "falcon/routing/compiled.py":972
* lines = [
* '{0}match = patterns[{1}].match(path[{2}]) # {3}'.format(
* _TAB_STR * indentation, # <<<<<<<<<<<<<<
* self._pattern_idx,
* self._segment_idx,
*/
- __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_TAB_STR); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 947, __pyx_L1_error)
+ __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_TAB_STR); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 972, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
- __pyx_t_4 = PyNumber_Multiply(__pyx_t_3, __pyx_v_indentation); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 947, __pyx_L1_error)
+ __pyx_t_4 = PyNumber_Multiply(__pyx_t_3, __pyx_v_indentation); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 972, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
- /* "falcon/routing/compiled.py":948
+ /* "falcon/routing/compiled.py":973
* '{0}match = patterns[{1}].match(path[{2}]) # {3}'.format(
* _TAB_STR * indentation,
* self._pattern_idx, # <<<<<<<<<<<<<<
* self._segment_idx,
* self._pattern_text,
*/
- __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_pattern_idx_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 948, __pyx_L1_error)
+ __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_pattern_idx_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 973, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
- /* "falcon/routing/compiled.py":949
+ /* "falcon/routing/compiled.py":974
* _TAB_STR * indentation,
* self._pattern_idx,
* self._segment_idx, # <<<<<<<<<<<<<<
* self._pattern_text,
* ),
*/
- __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_segment_idx_2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 949, __pyx_L1_error)
+ __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_segment_idx_2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 974, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
- /* "falcon/routing/compiled.py":950
+ /* "falcon/routing/compiled.py":975
* self._pattern_idx,
* self._segment_idx,
* self._pattern_text, # <<<<<<<<<<<<<<
* ),
* '{0}if match is not None:'.format(_TAB_STR * indentation),
*/
- __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_pattern_text_2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 950, __pyx_L1_error)
+ __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_pattern_text_2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 975, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_t_7 = NULL;
__pyx_t_8 = 0;
@@ -18121,23 +18653,23 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_23_CxIfPathSegmentPattern_2
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
- if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 946, __pyx_L1_error)
+ if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 971, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
}
- /* "falcon/routing/compiled.py":952
+ /* "falcon/routing/compiled.py":977
* self._pattern_text,
* ),
* '{0}if match is not None:'.format(_TAB_STR * indentation), # <<<<<<<<<<<<<<
* self._children_src(indentation + 1),
* ]
*/
- __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_kp_u_0_if_match_is_not_None, __pyx_n_s_format); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 952, __pyx_L1_error)
+ __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_kp_u_0_if_match_is_not_None, __pyx_n_s_format); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 977, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
- __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_TAB_STR); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 952, __pyx_L1_error)
+ __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_TAB_STR); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 977, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
- __pyx_t_3 = PyNumber_Multiply(__pyx_t_5, __pyx_v_indentation); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 952, __pyx_L1_error)
+ __pyx_t_3 = PyNumber_Multiply(__pyx_t_5, __pyx_v_indentation); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 977, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
__pyx_t_5 = NULL;
@@ -18157,21 +18689,21 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_23_CxIfPathSegmentPattern_2
__pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_6, __pyx_callargs+1-__pyx_t_8, 1+__pyx_t_8);
__Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
- if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 952, __pyx_L1_error)
+ if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 977, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
}
- /* "falcon/routing/compiled.py":953
+ /* "falcon/routing/compiled.py":978
* ),
* '{0}if match is not None:'.format(_TAB_STR * indentation),
* self._children_src(indentation + 1), # <<<<<<<<<<<<<<
* ]
*
*/
- __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_children_src); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 953, __pyx_L1_error)
+ __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_children_src); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 978, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
- __pyx_t_5 = __Pyx_PyInt_AddObjC(__pyx_v_indentation, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 953, __pyx_L1_error)
+ __pyx_t_5 = __Pyx_PyInt_AddObjC(__pyx_v_indentation, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 978, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__pyx_t_4 = NULL;
__pyx_t_8 = 0;
@@ -18190,19 +18722,19 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_23_CxIfPathSegmentPattern_2
__pyx_t_6 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_8, 1+__pyx_t_8);
__Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
- if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 953, __pyx_L1_error)
+ if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 978, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
}
- /* "falcon/routing/compiled.py":945
+ /* "falcon/routing/compiled.py":970
*
* def src(self, indentation):
* lines = [ # <<<<<<<<<<<<<<
* '{0}match = patterns[{1}].match(path[{2}]) # {3}'.format(
* _TAB_STR * indentation,
*/
- __pyx_t_3 = PyList_New(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 945, __pyx_L1_error)
+ __pyx_t_3 = PyList_New(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 970, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_GIVEREF(__pyx_t_1);
PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_1);
@@ -18216,7 +18748,7 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_23_CxIfPathSegmentPattern_2
__pyx_v_lines = ((PyObject*)__pyx_t_3);
__pyx_t_3 = 0;
- /* "falcon/routing/compiled.py":956
+ /* "falcon/routing/compiled.py":981
* ]
*
* return '\n'.join(lines) # <<<<<<<<<<<<<<
@@ -18224,13 +18756,13 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_23_CxIfPathSegmentPattern_2
*
*/
__Pyx_XDECREF(__pyx_r);
- __pyx_t_3 = PyUnicode_Join(__pyx_kp_u__12, __pyx_v_lines); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 956, __pyx_L1_error)
+ __pyx_t_3 = PyUnicode_Join(__pyx_kp_u__13, __pyx_v_lines); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 981, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_r = __pyx_t_3;
__pyx_t_3 = 0;
goto __pyx_L0;
- /* "falcon/routing/compiled.py":944
+ /* "falcon/routing/compiled.py":969
* self._pattern_text = pattern_text
*
* def src(self, indentation): # <<<<<<<<<<<<<<
@@ -18256,7 +18788,7 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_23_CxIfPathSegmentPattern_2
return __pyx_r;
}
-/* "falcon/routing/compiled.py":960
+/* "falcon/routing/compiled.py":985
*
* class _CxIfConverterField(_CxParent):
* def __init__(self, unique_idx, converter_idx): # <<<<<<<<<<<<<<
@@ -18316,26 +18848,26 @@ PyObject *__pyx_args, PyObject *__pyx_kwds
switch (__pyx_nargs) {
case 0:
if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_self)) != 0)) kw_args--;
- else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 960, __pyx_L3_error)
+ else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 985, __pyx_L3_error)
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_unique_idx)) != 0)) kw_args--;
- else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 960, __pyx_L3_error)
+ else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 985, __pyx_L3_error)
else {
- __Pyx_RaiseArgtupleInvalid("__init__", 1, 3, 3, 1); __PYX_ERR(0, 960, __pyx_L3_error)
+ __Pyx_RaiseArgtupleInvalid("__init__", 1, 3, 3, 1); __PYX_ERR(0, 985, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 2:
if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_converter_idx)) != 0)) kw_args--;
- else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 960, __pyx_L3_error)
+ else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 985, __pyx_L3_error)
else {
- __Pyx_RaiseArgtupleInvalid("__init__", 1, 3, 3, 2); __PYX_ERR(0, 960, __pyx_L3_error)
+ __Pyx_RaiseArgtupleInvalid("__init__", 1, 3, 3, 2); __PYX_ERR(0, 985, __pyx_L3_error)
}
}
if (unlikely(kw_args > 0)) {
const Py_ssize_t kwd_pos_args = __pyx_nargs;
- if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__init__") < 0)) __PYX_ERR(0, 960, __pyx_L3_error)
+ if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__init__") < 0)) __PYX_ERR(0, 985, __pyx_L3_error)
}
} else if (unlikely(__pyx_nargs != 3)) {
goto __pyx_L5_argtuple_error;
@@ -18350,7 +18882,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
- __Pyx_RaiseArgtupleInvalid("__init__", 1, 3, 3, __pyx_nargs); __PYX_ERR(0, 960, __pyx_L3_error)
+ __Pyx_RaiseArgtupleInvalid("__init__", 1, 3, 3, __pyx_nargs); __PYX_ERR(0, 985, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("falcon.routing.compiled._CxIfConverterField.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
@@ -18375,7 +18907,7 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_19_CxIfConverterField___ini
int __pyx_clineno = 0;
__Pyx_RefNannySetupContext("__init__", 0);
- /* "falcon/routing/compiled.py":961
+ /* "falcon/routing/compiled.py":986
* class _CxIfConverterField(_CxParent):
* def __init__(self, unique_idx, converter_idx):
* super().__init__() # <<<<<<<<<<<<<<
@@ -18383,9 +18915,9 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_19_CxIfConverterField___ini
* self._unique_idx = unique_idx
*/
__pyx_t_2 = __Pyx_CyFunction_GetClassObj(__pyx_self);
- if (!__pyx_t_2) { PyErr_SetString(PyExc_SystemError, "super(): empty __class__ cell"); __PYX_ERR(0, 961, __pyx_L1_error) }
+ if (!__pyx_t_2) { PyErr_SetString(PyExc_SystemError, "super(): empty __class__ cell"); __PYX_ERR(0, 986, __pyx_L1_error) }
__Pyx_INCREF(__pyx_t_2);
- __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 961, __pyx_L1_error)
+ __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 986, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_GIVEREF(__pyx_t_2);
PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
@@ -18393,10 +18925,10 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_19_CxIfConverterField___ini
__Pyx_GIVEREF(__pyx_v_self);
PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_v_self);
__pyx_t_2 = 0;
- __pyx_t_2 = __Pyx_PyObject_Call(__pyx_builtin_super, __pyx_t_3, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 961, __pyx_L1_error)
+ __pyx_t_2 = __Pyx_PyObject_Call(__pyx_builtin_super, __pyx_t_3, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 986, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
- __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_init); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 961, __pyx_L1_error)
+ __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_init); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 986, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_t_2 = NULL;
@@ -18415,38 +18947,38 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_19_CxIfConverterField___ini
PyObject *__pyx_callargs[1] = {__pyx_t_2, };
__pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_4, 0+__pyx_t_4);
__Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
- if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 961, __pyx_L1_error)
+ if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 986, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
- /* "falcon/routing/compiled.py":962
+ /* "falcon/routing/compiled.py":987
* def __init__(self, unique_idx, converter_idx):
* super().__init__()
* self._converter_idx = converter_idx # <<<<<<<<<<<<<<
* self._unique_idx = unique_idx
* self.field_variable_name = 'field_value_{0}'.format(unique_idx)
*/
- if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_converter_idx_2, __pyx_v_converter_idx) < 0) __PYX_ERR(0, 962, __pyx_L1_error)
+ if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_converter_idx_2, __pyx_v_converter_idx) < 0) __PYX_ERR(0, 987, __pyx_L1_error)
- /* "falcon/routing/compiled.py":963
+ /* "falcon/routing/compiled.py":988
* super().__init__()
* self._converter_idx = converter_idx
* self._unique_idx = unique_idx # <<<<<<<<<<<<<<
* self.field_variable_name = 'field_value_{0}'.format(unique_idx)
*
*/
- if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_unique_idx_2, __pyx_v_unique_idx) < 0) __PYX_ERR(0, 963, __pyx_L1_error)
+ if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_unique_idx_2, __pyx_v_unique_idx) < 0) __PYX_ERR(0, 988, __pyx_L1_error)
- /* "falcon/routing/compiled.py":964
+ /* "falcon/routing/compiled.py":989
* self._converter_idx = converter_idx
* self._unique_idx = unique_idx
* self.field_variable_name = 'field_value_{0}'.format(unique_idx) # <<<<<<<<<<<<<<
*
* def src(self, indentation):
*/
- __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_kp_u_field_value__0, __pyx_n_s_format); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 964, __pyx_L1_error)
+ __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_kp_u_field_value__0, __pyx_n_s_format); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 989, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_2 = NULL;
__pyx_t_4 = 0;
@@ -18464,14 +18996,14 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_19_CxIfConverterField___ini
PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_v_unique_idx};
__pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_4, 1+__pyx_t_4);
__Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
- if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 964, __pyx_L1_error)
+ if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 989, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
}
- if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_field_variable_name, __pyx_t_1) < 0) __PYX_ERR(0, 964, __pyx_L1_error)
+ if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_field_variable_name, __pyx_t_1) < 0) __PYX_ERR(0, 989, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
- /* "falcon/routing/compiled.py":960
+ /* "falcon/routing/compiled.py":985
*
* class _CxIfConverterField(_CxParent):
* def __init__(self, unique_idx, converter_idx): # <<<<<<<<<<<<<<
@@ -18494,7 +19026,7 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_19_CxIfConverterField___ini
return __pyx_r;
}
-/* "falcon/routing/compiled.py":966
+/* "falcon/routing/compiled.py":991
* self.field_variable_name = 'field_value_{0}'.format(unique_idx)
*
* def src(self, indentation): # <<<<<<<<<<<<<<
@@ -18551,19 +19083,19 @@ PyObject *__pyx_args, PyObject *__pyx_kwds
switch (__pyx_nargs) {
case 0:
if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_self)) != 0)) kw_args--;
- else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 966, __pyx_L3_error)
+ else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 991, __pyx_L3_error)
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_indentation)) != 0)) kw_args--;
- else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 966, __pyx_L3_error)
+ else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 991, __pyx_L3_error)
else {
- __Pyx_RaiseArgtupleInvalid("src", 1, 2, 2, 1); __PYX_ERR(0, 966, __pyx_L3_error)
+ __Pyx_RaiseArgtupleInvalid("src", 1, 2, 2, 1); __PYX_ERR(0, 991, __pyx_L3_error)
}
}
if (unlikely(kw_args > 0)) {
const Py_ssize_t kwd_pos_args = __pyx_nargs;
- if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "src") < 0)) __PYX_ERR(0, 966, __pyx_L3_error)
+ if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "src") < 0)) __PYX_ERR(0, 991, __pyx_L3_error)
}
} else if (unlikely(__pyx_nargs != 2)) {
goto __pyx_L5_argtuple_error;
@@ -18576,7 +19108,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
- __Pyx_RaiseArgtupleInvalid("src", 1, 2, 2, __pyx_nargs); __PYX_ERR(0, 966, __pyx_L3_error)
+ __Pyx_RaiseArgtupleInvalid("src", 1, 2, 2, __pyx_nargs); __PYX_ERR(0, 991, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("falcon.routing.compiled._CxIfConverterField.src", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
@@ -18605,47 +19137,47 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_19_CxIfConverterField_2src(
int __pyx_clineno = 0;
__Pyx_RefNannySetupContext("src", 0);
- /* "falcon/routing/compiled.py":968
+ /* "falcon/routing/compiled.py":993
* def src(self, indentation):
* lines = [
* '{0}{1} = converters[{2}].convert(fragment)'.format( # <<<<<<<<<<<<<<
* _TAB_STR * indentation,
* self.field_variable_name,
*/
- __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_kp_u_0_1_converters_2_convert_fragme, __pyx_n_s_format); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 968, __pyx_L1_error)
+ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_kp_u_0_1_converters_2_convert_fragme, __pyx_n_s_format); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 993, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
- /* "falcon/routing/compiled.py":969
+ /* "falcon/routing/compiled.py":994
* lines = [
* '{0}{1} = converters[{2}].convert(fragment)'.format(
* _TAB_STR * indentation, # <<<<<<<<<<<<<<
* self.field_variable_name,
* self._converter_idx,
*/
- __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_TAB_STR); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 969, __pyx_L1_error)
+ __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_TAB_STR); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 994, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
- __pyx_t_4 = PyNumber_Multiply(__pyx_t_3, __pyx_v_indentation); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 969, __pyx_L1_error)
+ __pyx_t_4 = PyNumber_Multiply(__pyx_t_3, __pyx_v_indentation); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 994, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
- /* "falcon/routing/compiled.py":970
+ /* "falcon/routing/compiled.py":995
* '{0}{1} = converters[{2}].convert(fragment)'.format(
* _TAB_STR * indentation,
* self.field_variable_name, # <<<<<<<<<<<<<<
* self._converter_idx,
* ),
*/
- __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_field_variable_name); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 970, __pyx_L1_error)
+ __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_field_variable_name); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 995, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
- /* "falcon/routing/compiled.py":971
+ /* "falcon/routing/compiled.py":996
* _TAB_STR * indentation,
* self.field_variable_name,
* self._converter_idx, # <<<<<<<<<<<<<<
* ),
* '{0}if {1} is not None:'.format(
*/
- __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_converter_idx_2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 971, __pyx_L1_error)
+ __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_converter_idx_2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 996, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__pyx_t_6 = NULL;
__pyx_t_7 = 0;
@@ -18666,34 +19198,34 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_19_CxIfConverterField_2src(
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
- if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 968, __pyx_L1_error)
+ if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 993, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
}
- /* "falcon/routing/compiled.py":973
+ /* "falcon/routing/compiled.py":998
* self._converter_idx,
* ),
* '{0}if {1} is not None:'.format( # <<<<<<<<<<<<<<
* _TAB_STR * indentation, self.field_variable_name
* ),
*/
- __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_kp_u_0_if_1_is_not_None, __pyx_n_s_format); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 973, __pyx_L1_error)
+ __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_kp_u_0_if_1_is_not_None, __pyx_n_s_format); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 998, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
- /* "falcon/routing/compiled.py":974
+ /* "falcon/routing/compiled.py":999
* ),
* '{0}if {1} is not None:'.format(
* _TAB_STR * indentation, self.field_variable_name # <<<<<<<<<<<<<<
* ),
* self._children_src(indentation + 1),
*/
- __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_TAB_STR); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 974, __pyx_L1_error)
+ __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_TAB_STR); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 999, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
- __pyx_t_4 = PyNumber_Multiply(__pyx_t_3, __pyx_v_indentation); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 974, __pyx_L1_error)
+ __pyx_t_4 = PyNumber_Multiply(__pyx_t_3, __pyx_v_indentation); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 999, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
- __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_field_variable_name); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 974, __pyx_L1_error)
+ __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_field_variable_name); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 999, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_6 = NULL;
__pyx_t_7 = 0;
@@ -18713,21 +19245,21 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_19_CxIfConverterField_2src(
__Pyx_XDECREF(__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;
- if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 973, __pyx_L1_error)
+ if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 998, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
}
- /* "falcon/routing/compiled.py":976
+ /* "falcon/routing/compiled.py":1001
* _TAB_STR * indentation, self.field_variable_name
* ),
* self._children_src(indentation + 1), # <<<<<<<<<<<<<<
* ]
*
*/
- __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_children_src); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 976, __pyx_L1_error)
+ __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_children_src); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1001, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
- __pyx_t_4 = __Pyx_PyInt_AddObjC(__pyx_v_indentation, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 976, __pyx_L1_error)
+ __pyx_t_4 = __Pyx_PyInt_AddObjC(__pyx_v_indentation, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1001, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__pyx_t_6 = NULL;
__pyx_t_7 = 0;
@@ -18746,19 +19278,19 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_19_CxIfConverterField_2src(
__pyx_t_5 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_7, 1+__pyx_t_7);
__Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
- if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 976, __pyx_L1_error)
+ if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1001, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
}
- /* "falcon/routing/compiled.py":967
+ /* "falcon/routing/compiled.py":992
*
* def src(self, indentation):
* lines = [ # <<<<<<<<<<<<<<
* '{0}{1} = converters[{2}].convert(fragment)'.format(
* _TAB_STR * indentation,
*/
- __pyx_t_3 = PyList_New(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 967, __pyx_L1_error)
+ __pyx_t_3 = PyList_New(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 992, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_GIVEREF(__pyx_t_1);
PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_1);
@@ -18772,7 +19304,7 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_19_CxIfConverterField_2src(
__pyx_v_lines = ((PyObject*)__pyx_t_3);
__pyx_t_3 = 0;
- /* "falcon/routing/compiled.py":979
+ /* "falcon/routing/compiled.py":1004
* ]
*
* return '\n'.join(lines) # <<<<<<<<<<<<<<
@@ -18780,13 +19312,13 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_19_CxIfConverterField_2src(
*
*/
__Pyx_XDECREF(__pyx_r);
- __pyx_t_3 = PyUnicode_Join(__pyx_kp_u__12, __pyx_v_lines); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 979, __pyx_L1_error)
+ __pyx_t_3 = PyUnicode_Join(__pyx_kp_u__13, __pyx_v_lines); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1004, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_r = __pyx_t_3;
__pyx_t_3 = 0;
goto __pyx_L0;
- /* "falcon/routing/compiled.py":966
+ /* "falcon/routing/compiled.py":991
* self.field_variable_name = 'field_value_{0}'.format(unique_idx)
*
* def src(self, indentation): # <<<<<<<<<<<<<<
@@ -18811,9 +19343,9 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_19_CxIfConverterField_2src(
return __pyx_r;
}
-/* "falcon/routing/compiled.py":983
+/* "falcon/routing/compiled.py":1008
*
- * class _CxSetFragmentFromField:
+ * class _CxSetFragmentFromField(_CxChild):
* def __init__(self, field_name): # <<<<<<<<<<<<<<
* self._field_name = field_name
*
@@ -18868,19 +19400,19 @@ PyObject *__pyx_args, PyObject *__pyx_kwds
switch (__pyx_nargs) {
case 0:
if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_self)) != 0)) kw_args--;
- else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 983, __pyx_L3_error)
+ else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1008, __pyx_L3_error)
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_field_name)) != 0)) kw_args--;
- else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 983, __pyx_L3_error)
+ else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1008, __pyx_L3_error)
else {
- __Pyx_RaiseArgtupleInvalid("__init__", 1, 2, 2, 1); __PYX_ERR(0, 983, __pyx_L3_error)
+ __Pyx_RaiseArgtupleInvalid("__init__", 1, 2, 2, 1); __PYX_ERR(0, 1008, __pyx_L3_error)
}
}
if (unlikely(kw_args > 0)) {
const Py_ssize_t kwd_pos_args = __pyx_nargs;
- if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__init__") < 0)) __PYX_ERR(0, 983, __pyx_L3_error)
+ if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__init__") < 0)) __PYX_ERR(0, 1008, __pyx_L3_error)
}
} else if (unlikely(__pyx_nargs != 2)) {
goto __pyx_L5_argtuple_error;
@@ -18893,7 +19425,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
- __Pyx_RaiseArgtupleInvalid("__init__", 1, 2, 2, __pyx_nargs); __PYX_ERR(0, 983, __pyx_L3_error)
+ __Pyx_RaiseArgtupleInvalid("__init__", 1, 2, 2, __pyx_nargs); __PYX_ERR(0, 1008, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("falcon.routing.compiled._CxSetFragmentFromField.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
@@ -18914,18 +19446,18 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_23_CxSetFragmentFromField__
int __pyx_clineno = 0;
__Pyx_RefNannySetupContext("__init__", 0);
- /* "falcon/routing/compiled.py":984
- * class _CxSetFragmentFromField:
+ /* "falcon/routing/compiled.py":1009
+ * class _CxSetFragmentFromField(_CxChild):
* def __init__(self, field_name):
* self._field_name = field_name # <<<<<<<<<<<<<<
*
* def src(self, indentation):
*/
- if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_field_name_2, __pyx_v_field_name) < 0) __PYX_ERR(0, 984, __pyx_L1_error)
+ if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_field_name_2, __pyx_v_field_name) < 0) __PYX_ERR(0, 1009, __pyx_L1_error)
- /* "falcon/routing/compiled.py":983
+ /* "falcon/routing/compiled.py":1008
*
- * class _CxSetFragmentFromField:
+ * class _CxSetFragmentFromField(_CxChild):
* def __init__(self, field_name): # <<<<<<<<<<<<<<
* self._field_name = field_name
*
@@ -18943,7 +19475,7 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_23_CxSetFragmentFromField__
return __pyx_r;
}
-/* "falcon/routing/compiled.py":986
+/* "falcon/routing/compiled.py":1011
* self._field_name = field_name
*
* def src(self, indentation): # <<<<<<<<<<<<<<
@@ -19000,19 +19532,19 @@ PyObject *__pyx_args, PyObject *__pyx_kwds
switch (__pyx_nargs) {
case 0:
if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_self)) != 0)) kw_args--;
- else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 986, __pyx_L3_error)
+ else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1011, __pyx_L3_error)
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_indentation)) != 0)) kw_args--;
- else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 986, __pyx_L3_error)
+ else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1011, __pyx_L3_error)
else {
- __Pyx_RaiseArgtupleInvalid("src", 1, 2, 2, 1); __PYX_ERR(0, 986, __pyx_L3_error)
+ __Pyx_RaiseArgtupleInvalid("src", 1, 2, 2, 1); __PYX_ERR(0, 1011, __pyx_L3_error)
}
}
if (unlikely(kw_args > 0)) {
const Py_ssize_t kwd_pos_args = __pyx_nargs;
- if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "src") < 0)) __PYX_ERR(0, 986, __pyx_L3_error)
+ if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "src") < 0)) __PYX_ERR(0, 1011, __pyx_L3_error)
}
} else if (unlikely(__pyx_nargs != 2)) {
goto __pyx_L5_argtuple_error;
@@ -19025,7 +19557,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
- __Pyx_RaiseArgtupleInvalid("src", 1, 2, 2, __pyx_nargs); __PYX_ERR(0, 986, __pyx_L3_error)
+ __Pyx_RaiseArgtupleInvalid("src", 1, 2, 2, __pyx_nargs); __PYX_ERR(0, 1011, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("falcon.routing.compiled._CxSetFragmentFromField.src", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
@@ -19052,7 +19584,7 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_23_CxSetFragmentFromField_2
int __pyx_clineno = 0;
__Pyx_RefNannySetupContext("src", 0);
- /* "falcon/routing/compiled.py":987
+ /* "falcon/routing/compiled.py":1012
*
* def src(self, indentation):
* return "{0}fragment = groups.pop('{1}')".format( # <<<<<<<<<<<<<<
@@ -19060,30 +19592,30 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_23_CxSetFragmentFromField_2
* self._field_name,
*/
__Pyx_XDECREF(__pyx_r);
- __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_kp_u_0_fragment_groups_pop_1, __pyx_n_s_format); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 987, __pyx_L1_error)
+ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_kp_u_0_fragment_groups_pop_1, __pyx_n_s_format); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1012, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
- /* "falcon/routing/compiled.py":988
+ /* "falcon/routing/compiled.py":1013
* def src(self, indentation):
* return "{0}fragment = groups.pop('{1}')".format(
* _TAB_STR * indentation, # <<<<<<<<<<<<<<
* self._field_name,
* )
*/
- __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_TAB_STR); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 988, __pyx_L1_error)
+ __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_TAB_STR); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1013, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
- __pyx_t_4 = PyNumber_Multiply(__pyx_t_3, __pyx_v_indentation); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 988, __pyx_L1_error)
+ __pyx_t_4 = PyNumber_Multiply(__pyx_t_3, __pyx_v_indentation); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1013, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
- /* "falcon/routing/compiled.py":989
+ /* "falcon/routing/compiled.py":1014
* return "{0}fragment = groups.pop('{1}')".format(
* _TAB_STR * indentation,
* self._field_name, # <<<<<<<<<<<<<<
* )
*
*/
- __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_field_name_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 989, __pyx_L1_error)
+ __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_field_name_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1014, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_5 = NULL;
__pyx_t_6 = 0;
@@ -19103,7 +19635,7 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_23_CxSetFragmentFromField_2
__Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
- if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 987, __pyx_L1_error)
+ if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1012, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
}
@@ -19111,7 +19643,7 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_23_CxSetFragmentFromField_2
__pyx_t_1 = 0;
goto __pyx_L0;
- /* "falcon/routing/compiled.py":986
+ /* "falcon/routing/compiled.py":1011
* self._field_name = field_name
*
* def src(self, indentation): # <<<<<<<<<<<<<<
@@ -19134,9 +19666,9 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_23_CxSetFragmentFromField_2
return __pyx_r;
}
-/* "falcon/routing/compiled.py":994
+/* "falcon/routing/compiled.py":1019
*
- * class _CxSetFragmentFromPath:
+ * class _CxSetFragmentFromPath(_CxChild):
* def __init__(self, segment_idx): # <<<<<<<<<<<<<<
* self._segment_idx = segment_idx
*
@@ -19191,19 +19723,19 @@ PyObject *__pyx_args, PyObject *__pyx_kwds
switch (__pyx_nargs) {
case 0:
if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_self)) != 0)) kw_args--;
- else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 994, __pyx_L3_error)
+ else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1019, __pyx_L3_error)
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_segment_idx)) != 0)) kw_args--;
- else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 994, __pyx_L3_error)
+ else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1019, __pyx_L3_error)
else {
- __Pyx_RaiseArgtupleInvalid("__init__", 1, 2, 2, 1); __PYX_ERR(0, 994, __pyx_L3_error)
+ __Pyx_RaiseArgtupleInvalid("__init__", 1, 2, 2, 1); __PYX_ERR(0, 1019, __pyx_L3_error)
}
}
if (unlikely(kw_args > 0)) {
const Py_ssize_t kwd_pos_args = __pyx_nargs;
- if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__init__") < 0)) __PYX_ERR(0, 994, __pyx_L3_error)
+ if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__init__") < 0)) __PYX_ERR(0, 1019, __pyx_L3_error)
}
} else if (unlikely(__pyx_nargs != 2)) {
goto __pyx_L5_argtuple_error;
@@ -19216,7 +19748,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
- __Pyx_RaiseArgtupleInvalid("__init__", 1, 2, 2, __pyx_nargs); __PYX_ERR(0, 994, __pyx_L3_error)
+ __Pyx_RaiseArgtupleInvalid("__init__", 1, 2, 2, __pyx_nargs); __PYX_ERR(0, 1019, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("falcon.routing.compiled._CxSetFragmentFromPath.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
@@ -19237,18 +19769,18 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_22_CxSetFragmentFromPath___
int __pyx_clineno = 0;
__Pyx_RefNannySetupContext("__init__", 0);
- /* "falcon/routing/compiled.py":995
- * class _CxSetFragmentFromPath:
+ /* "falcon/routing/compiled.py":1020
+ * class _CxSetFragmentFromPath(_CxChild):
* def __init__(self, segment_idx):
* self._segment_idx = segment_idx # <<<<<<<<<<<<<<
*
* def src(self, indentation):
*/
- if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_segment_idx_2, __pyx_v_segment_idx) < 0) __PYX_ERR(0, 995, __pyx_L1_error)
+ if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_segment_idx_2, __pyx_v_segment_idx) < 0) __PYX_ERR(0, 1020, __pyx_L1_error)
- /* "falcon/routing/compiled.py":994
+ /* "falcon/routing/compiled.py":1019
*
- * class _CxSetFragmentFromPath:
+ * class _CxSetFragmentFromPath(_CxChild):
* def __init__(self, segment_idx): # <<<<<<<<<<<<<<
* self._segment_idx = segment_idx
*
@@ -19266,7 +19798,7 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_22_CxSetFragmentFromPath___
return __pyx_r;
}
-/* "falcon/routing/compiled.py":997
+/* "falcon/routing/compiled.py":1022
* self._segment_idx = segment_idx
*
* def src(self, indentation): # <<<<<<<<<<<<<<
@@ -19323,19 +19855,19 @@ PyObject *__pyx_args, PyObject *__pyx_kwds
switch (__pyx_nargs) {
case 0:
if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_self)) != 0)) kw_args--;
- else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 997, __pyx_L3_error)
+ else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1022, __pyx_L3_error)
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_indentation)) != 0)) kw_args--;
- else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 997, __pyx_L3_error)
+ else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1022, __pyx_L3_error)
else {
- __Pyx_RaiseArgtupleInvalid("src", 1, 2, 2, 1); __PYX_ERR(0, 997, __pyx_L3_error)
+ __Pyx_RaiseArgtupleInvalid("src", 1, 2, 2, 1); __PYX_ERR(0, 1022, __pyx_L3_error)
}
}
if (unlikely(kw_args > 0)) {
const Py_ssize_t kwd_pos_args = __pyx_nargs;
- if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "src") < 0)) __PYX_ERR(0, 997, __pyx_L3_error)
+ if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "src") < 0)) __PYX_ERR(0, 1022, __pyx_L3_error)
}
} else if (unlikely(__pyx_nargs != 2)) {
goto __pyx_L5_argtuple_error;
@@ -19348,7 +19880,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
- __Pyx_RaiseArgtupleInvalid("src", 1, 2, 2, __pyx_nargs); __PYX_ERR(0, 997, __pyx_L3_error)
+ __Pyx_RaiseArgtupleInvalid("src", 1, 2, 2, __pyx_nargs); __PYX_ERR(0, 1022, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("falcon.routing.compiled._CxSetFragmentFromPath.src", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
@@ -19375,7 +19907,7 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_22_CxSetFragmentFromPath_2s
int __pyx_clineno = 0;
__Pyx_RefNannySetupContext("src", 0);
- /* "falcon/routing/compiled.py":998
+ /* "falcon/routing/compiled.py":1023
*
* def src(self, indentation):
* return '{0}fragment = path[{1}]'.format( # <<<<<<<<<<<<<<
@@ -19383,30 +19915,30 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_22_CxSetFragmentFromPath_2s
* self._segment_idx,
*/
__Pyx_XDECREF(__pyx_r);
- __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_kp_u_0_fragment_path_1, __pyx_n_s_format); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 998, __pyx_L1_error)
+ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_kp_u_0_fragment_path_1, __pyx_n_s_format); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1023, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
- /* "falcon/routing/compiled.py":999
+ /* "falcon/routing/compiled.py":1024
* def src(self, indentation):
* return '{0}fragment = path[{1}]'.format(
* _TAB_STR * indentation, # <<<<<<<<<<<<<<
* self._segment_idx,
* )
*/
- __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_TAB_STR); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 999, __pyx_L1_error)
+ __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_TAB_STR); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1024, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
- __pyx_t_4 = PyNumber_Multiply(__pyx_t_3, __pyx_v_indentation); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 999, __pyx_L1_error)
+ __pyx_t_4 = PyNumber_Multiply(__pyx_t_3, __pyx_v_indentation); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1024, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
- /* "falcon/routing/compiled.py":1000
+ /* "falcon/routing/compiled.py":1025
* return '{0}fragment = path[{1}]'.format(
* _TAB_STR * indentation,
* self._segment_idx, # <<<<<<<<<<<<<<
* )
*
*/
- __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_segment_idx_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1000, __pyx_L1_error)
+ __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_segment_idx_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1025, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_5 = NULL;
__pyx_t_6 = 0;
@@ -19426,7 +19958,7 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_22_CxSetFragmentFromPath_2s
__Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
- if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 998, __pyx_L1_error)
+ if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1023, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
}
@@ -19434,7 +19966,7 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_22_CxSetFragmentFromPath_2s
__pyx_t_1 = 0;
goto __pyx_L0;
- /* "falcon/routing/compiled.py":997
+ /* "falcon/routing/compiled.py":1022
* self._segment_idx = segment_idx
*
* def src(self, indentation): # <<<<<<<<<<<<<<
@@ -19457,9 +19989,9 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_22_CxSetFragmentFromPath_2s
return __pyx_r;
}
-/* "falcon/routing/compiled.py":1005
+/* "falcon/routing/compiled.py":1030
*
- * class _CxVariableFromPatternMatch:
+ * class _CxVariableFromPatternMatch(_CxChild):
* def __init__(self, unique_idx): # <<<<<<<<<<<<<<
* self._unique_idx = unique_idx
* self.dict_variable_name = 'dict_match_{0}'.format(unique_idx)
@@ -19514,19 +20046,19 @@ PyObject *__pyx_args, PyObject *__pyx_kwds
switch (__pyx_nargs) {
case 0:
if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_self)) != 0)) kw_args--;
- else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1005, __pyx_L3_error)
+ else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1030, __pyx_L3_error)
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_unique_idx)) != 0)) kw_args--;
- else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1005, __pyx_L3_error)
+ else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1030, __pyx_L3_error)
else {
- __Pyx_RaiseArgtupleInvalid("__init__", 1, 2, 2, 1); __PYX_ERR(0, 1005, __pyx_L3_error)
+ __Pyx_RaiseArgtupleInvalid("__init__", 1, 2, 2, 1); __PYX_ERR(0, 1030, __pyx_L3_error)
}
}
if (unlikely(kw_args > 0)) {
const Py_ssize_t kwd_pos_args = __pyx_nargs;
- if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__init__") < 0)) __PYX_ERR(0, 1005, __pyx_L3_error)
+ if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__init__") < 0)) __PYX_ERR(0, 1030, __pyx_L3_error)
}
} else if (unlikely(__pyx_nargs != 2)) {
goto __pyx_L5_argtuple_error;
@@ -19539,7 +20071,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
- __Pyx_RaiseArgtupleInvalid("__init__", 1, 2, 2, __pyx_nargs); __PYX_ERR(0, 1005, __pyx_L3_error)
+ __Pyx_RaiseArgtupleInvalid("__init__", 1, 2, 2, __pyx_nargs); __PYX_ERR(0, 1030, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("falcon.routing.compiled._CxVariableFromPatternMatch.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
@@ -19564,23 +20096,23 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_27_CxVariableFromPatternMat
int __pyx_clineno = 0;
__Pyx_RefNannySetupContext("__init__", 0);
- /* "falcon/routing/compiled.py":1006
- * class _CxVariableFromPatternMatch:
+ /* "falcon/routing/compiled.py":1031
+ * class _CxVariableFromPatternMatch(_CxChild):
* def __init__(self, unique_idx):
* self._unique_idx = unique_idx # <<<<<<<<<<<<<<
* self.dict_variable_name = 'dict_match_{0}'.format(unique_idx)
*
*/
- if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_unique_idx_2, __pyx_v_unique_idx) < 0) __PYX_ERR(0, 1006, __pyx_L1_error)
+ if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_unique_idx_2, __pyx_v_unique_idx) < 0) __PYX_ERR(0, 1031, __pyx_L1_error)
- /* "falcon/routing/compiled.py":1007
+ /* "falcon/routing/compiled.py":1032
* def __init__(self, unique_idx):
* self._unique_idx = unique_idx
* self.dict_variable_name = 'dict_match_{0}'.format(unique_idx) # <<<<<<<<<<<<<<
*
* def src(self, indentation):
*/
- __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_kp_u_dict_match__0, __pyx_n_s_format); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1007, __pyx_L1_error)
+ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_kp_u_dict_match__0, __pyx_n_s_format); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1032, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_3 = NULL;
__pyx_t_4 = 0;
@@ -19598,16 +20130,16 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_27_CxVariableFromPatternMat
PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_v_unique_idx};
__pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_4, 1+__pyx_t_4);
__Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
- if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1007, __pyx_L1_error)
+ if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1032, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
}
- if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_dict_variable_name, __pyx_t_1) < 0) __PYX_ERR(0, 1007, __pyx_L1_error)
+ if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_dict_variable_name, __pyx_t_1) < 0) __PYX_ERR(0, 1032, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
- /* "falcon/routing/compiled.py":1005
+ /* "falcon/routing/compiled.py":1030
*
- * class _CxVariableFromPatternMatch:
+ * class _CxVariableFromPatternMatch(_CxChild):
* def __init__(self, unique_idx): # <<<<<<<<<<<<<<
* self._unique_idx = unique_idx
* self.dict_variable_name = 'dict_match_{0}'.format(unique_idx)
@@ -19628,7 +20160,7 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_27_CxVariableFromPatternMat
return __pyx_r;
}
-/* "falcon/routing/compiled.py":1009
+/* "falcon/routing/compiled.py":1034
* self.dict_variable_name = 'dict_match_{0}'.format(unique_idx)
*
* def src(self, indentation): # <<<<<<<<<<<<<<
@@ -19685,19 +20217,19 @@ PyObject *__pyx_args, PyObject *__pyx_kwds
switch (__pyx_nargs) {
case 0:
if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_self)) != 0)) kw_args--;
- else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1009, __pyx_L3_error)
+ else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1034, __pyx_L3_error)
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_indentation)) != 0)) kw_args--;
- else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1009, __pyx_L3_error)
+ else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1034, __pyx_L3_error)
else {
- __Pyx_RaiseArgtupleInvalid("src", 1, 2, 2, 1); __PYX_ERR(0, 1009, __pyx_L3_error)
+ __Pyx_RaiseArgtupleInvalid("src", 1, 2, 2, 1); __PYX_ERR(0, 1034, __pyx_L3_error)
}
}
if (unlikely(kw_args > 0)) {
const Py_ssize_t kwd_pos_args = __pyx_nargs;
- if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "src") < 0)) __PYX_ERR(0, 1009, __pyx_L3_error)
+ if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "src") < 0)) __PYX_ERR(0, 1034, __pyx_L3_error)
}
} else if (unlikely(__pyx_nargs != 2)) {
goto __pyx_L5_argtuple_error;
@@ -19710,7 +20242,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
- __Pyx_RaiseArgtupleInvalid("src", 1, 2, 2, __pyx_nargs); __PYX_ERR(0, 1009, __pyx_L3_error)
+ __Pyx_RaiseArgtupleInvalid("src", 1, 2, 2, __pyx_nargs); __PYX_ERR(0, 1034, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("falcon.routing.compiled._CxVariableFromPatternMatch.src", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
@@ -19737,7 +20269,7 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_27_CxVariableFromPatternMat
int __pyx_clineno = 0;
__Pyx_RefNannySetupContext("src", 0);
- /* "falcon/routing/compiled.py":1010
+ /* "falcon/routing/compiled.py":1035
*
* def src(self, indentation):
* return '{0}{1} = match.groupdict()'.format( # <<<<<<<<<<<<<<
@@ -19745,22 +20277,22 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_27_CxVariableFromPatternMat
* )
*/
__Pyx_XDECREF(__pyx_r);
- __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_kp_u_0_1_match_groupdict, __pyx_n_s_format); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1010, __pyx_L1_error)
+ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_kp_u_0_1_match_groupdict, __pyx_n_s_format); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1035, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
- /* "falcon/routing/compiled.py":1011
+ /* "falcon/routing/compiled.py":1036
* def src(self, indentation):
* return '{0}{1} = match.groupdict()'.format(
* _TAB_STR * indentation, self.dict_variable_name # <<<<<<<<<<<<<<
* )
*
*/
- __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_TAB_STR); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1011, __pyx_L1_error)
+ __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_TAB_STR); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1036, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
- __pyx_t_4 = PyNumber_Multiply(__pyx_t_3, __pyx_v_indentation); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1011, __pyx_L1_error)
+ __pyx_t_4 = PyNumber_Multiply(__pyx_t_3, __pyx_v_indentation); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1036, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
- __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_dict_variable_name); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1011, __pyx_L1_error)
+ __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_dict_variable_name); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1036, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_5 = NULL;
__pyx_t_6 = 0;
@@ -19780,7 +20312,7 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_27_CxVariableFromPatternMat
__Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
- if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1010, __pyx_L1_error)
+ if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1035, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
}
@@ -19788,7 +20320,7 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_27_CxVariableFromPatternMat
__pyx_t_1 = 0;
goto __pyx_L0;
- /* "falcon/routing/compiled.py":1009
+ /* "falcon/routing/compiled.py":1034
* self.dict_variable_name = 'dict_match_{0}'.format(unique_idx)
*
* def src(self, indentation): # <<<<<<<<<<<<<<
@@ -19811,9 +20343,9 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_27_CxVariableFromPatternMat
return __pyx_r;
}
-/* "falcon/routing/compiled.py":1016
+/* "falcon/routing/compiled.py":1041
*
- * class _CxVariableFromPatternMatchPrefetched:
+ * class _CxVariableFromPatternMatchPrefetched(_CxChild):
* def __init__(self, unique_idx): # <<<<<<<<<<<<<<
* self._unique_idx = unique_idx
* self.dict_variable_name = 'dict_groups_{0}'.format(unique_idx)
@@ -19868,19 +20400,19 @@ PyObject *__pyx_args, PyObject *__pyx_kwds
switch (__pyx_nargs) {
case 0:
if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_self)) != 0)) kw_args--;
- else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1016, __pyx_L3_error)
+ else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1041, __pyx_L3_error)
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_unique_idx)) != 0)) kw_args--;
- else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1016, __pyx_L3_error)
+ else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1041, __pyx_L3_error)
else {
- __Pyx_RaiseArgtupleInvalid("__init__", 1, 2, 2, 1); __PYX_ERR(0, 1016, __pyx_L3_error)
+ __Pyx_RaiseArgtupleInvalid("__init__", 1, 2, 2, 1); __PYX_ERR(0, 1041, __pyx_L3_error)
}
}
if (unlikely(kw_args > 0)) {
const Py_ssize_t kwd_pos_args = __pyx_nargs;
- if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__init__") < 0)) __PYX_ERR(0, 1016, __pyx_L3_error)
+ if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__init__") < 0)) __PYX_ERR(0, 1041, __pyx_L3_error)
}
} else if (unlikely(__pyx_nargs != 2)) {
goto __pyx_L5_argtuple_error;
@@ -19893,7 +20425,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
- __Pyx_RaiseArgtupleInvalid("__init__", 1, 2, 2, __pyx_nargs); __PYX_ERR(0, 1016, __pyx_L3_error)
+ __Pyx_RaiseArgtupleInvalid("__init__", 1, 2, 2, __pyx_nargs); __PYX_ERR(0, 1041, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("falcon.routing.compiled._CxVariableFromPatternMatchPrefetched.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
@@ -19918,23 +20450,23 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_37_CxVariableFromPatternMat
int __pyx_clineno = 0;
__Pyx_RefNannySetupContext("__init__", 0);
- /* "falcon/routing/compiled.py":1017
- * class _CxVariableFromPatternMatchPrefetched:
+ /* "falcon/routing/compiled.py":1042
+ * class _CxVariableFromPatternMatchPrefetched(_CxChild):
* def __init__(self, unique_idx):
* self._unique_idx = unique_idx # <<<<<<<<<<<<<<
* self.dict_variable_name = 'dict_groups_{0}'.format(unique_idx)
*
*/
- if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_unique_idx_2, __pyx_v_unique_idx) < 0) __PYX_ERR(0, 1017, __pyx_L1_error)
+ if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_unique_idx_2, __pyx_v_unique_idx) < 0) __PYX_ERR(0, 1042, __pyx_L1_error)
- /* "falcon/routing/compiled.py":1018
+ /* "falcon/routing/compiled.py":1043
* def __init__(self, unique_idx):
* self._unique_idx = unique_idx
* self.dict_variable_name = 'dict_groups_{0}'.format(unique_idx) # <<<<<<<<<<<<<<
*
* def src(self, indentation):
*/
- __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_kp_u_dict_groups__0, __pyx_n_s_format); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1018, __pyx_L1_error)
+ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_kp_u_dict_groups__0, __pyx_n_s_format); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1043, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_3 = NULL;
__pyx_t_4 = 0;
@@ -19952,16 +20484,16 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_37_CxVariableFromPatternMat
PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_v_unique_idx};
__pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_4, 1+__pyx_t_4);
__Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
- if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1018, __pyx_L1_error)
+ if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1043, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
}
- if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_dict_variable_name, __pyx_t_1) < 0) __PYX_ERR(0, 1018, __pyx_L1_error)
+ if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_dict_variable_name, __pyx_t_1) < 0) __PYX_ERR(0, 1043, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
- /* "falcon/routing/compiled.py":1016
+ /* "falcon/routing/compiled.py":1041
*
- * class _CxVariableFromPatternMatchPrefetched:
+ * class _CxVariableFromPatternMatchPrefetched(_CxChild):
* def __init__(self, unique_idx): # <<<<<<<<<<<<<<
* self._unique_idx = unique_idx
* self.dict_variable_name = 'dict_groups_{0}'.format(unique_idx)
@@ -19982,7 +20514,7 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_37_CxVariableFromPatternMat
return __pyx_r;
}
-/* "falcon/routing/compiled.py":1020
+/* "falcon/routing/compiled.py":1045
* self.dict_variable_name = 'dict_groups_{0}'.format(unique_idx)
*
* def src(self, indentation): # <<<<<<<<<<<<<<
@@ -20039,19 +20571,19 @@ PyObject *__pyx_args, PyObject *__pyx_kwds
switch (__pyx_nargs) {
case 0:
if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_self)) != 0)) kw_args--;
- else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1020, __pyx_L3_error)
+ else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1045, __pyx_L3_error)
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_indentation)) != 0)) kw_args--;
- else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1020, __pyx_L3_error)
+ else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1045, __pyx_L3_error)
else {
- __Pyx_RaiseArgtupleInvalid("src", 1, 2, 2, 1); __PYX_ERR(0, 1020, __pyx_L3_error)
+ __Pyx_RaiseArgtupleInvalid("src", 1, 2, 2, 1); __PYX_ERR(0, 1045, __pyx_L3_error)
}
}
if (unlikely(kw_args > 0)) {
const Py_ssize_t kwd_pos_args = __pyx_nargs;
- if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "src") < 0)) __PYX_ERR(0, 1020, __pyx_L3_error)
+ if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "src") < 0)) __PYX_ERR(0, 1045, __pyx_L3_error)
}
} else if (unlikely(__pyx_nargs != 2)) {
goto __pyx_L5_argtuple_error;
@@ -20064,7 +20596,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
- __Pyx_RaiseArgtupleInvalid("src", 1, 2, 2, __pyx_nargs); __PYX_ERR(0, 1020, __pyx_L3_error)
+ __Pyx_RaiseArgtupleInvalid("src", 1, 2, 2, __pyx_nargs); __PYX_ERR(0, 1045, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("falcon.routing.compiled._CxVariableFromPatternMatchPrefetched.src", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
@@ -20091,7 +20623,7 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_37_CxVariableFromPatternMat
int __pyx_clineno = 0;
__Pyx_RefNannySetupContext("src", 0);
- /* "falcon/routing/compiled.py":1021
+ /* "falcon/routing/compiled.py":1046
*
* def src(self, indentation):
* return '{0}{1} = groups'.format(_TAB_STR * indentation, self.dict_variable_name) # <<<<<<<<<<<<<<
@@ -20099,14 +20631,14 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_37_CxVariableFromPatternMat
*
*/
__Pyx_XDECREF(__pyx_r);
- __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_kp_u_0_1_groups, __pyx_n_s_format); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1021, __pyx_L1_error)
+ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_kp_u_0_1_groups, __pyx_n_s_format); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1046, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
- __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_TAB_STR); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1021, __pyx_L1_error)
+ __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_TAB_STR); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1046, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
- __pyx_t_4 = PyNumber_Multiply(__pyx_t_3, __pyx_v_indentation); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1021, __pyx_L1_error)
+ __pyx_t_4 = PyNumber_Multiply(__pyx_t_3, __pyx_v_indentation); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1046, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
- __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_dict_variable_name); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1021, __pyx_L1_error)
+ __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_dict_variable_name); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1046, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_5 = NULL;
__pyx_t_6 = 0;
@@ -20126,7 +20658,7 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_37_CxVariableFromPatternMat
__Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
- if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1021, __pyx_L1_error)
+ if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1046, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
}
@@ -20134,7 +20666,7 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_37_CxVariableFromPatternMat
__pyx_t_1 = 0;
goto __pyx_L0;
- /* "falcon/routing/compiled.py":1020
+ /* "falcon/routing/compiled.py":1045
* self.dict_variable_name = 'dict_groups_{0}'.format(unique_idx)
*
* def src(self, indentation): # <<<<<<<<<<<<<<
@@ -20157,9 +20689,9 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_37_CxVariableFromPatternMat
return __pyx_r;
}
-/* "falcon/routing/compiled.py":1025
+/* "falcon/routing/compiled.py":1050
*
- * class _CxPrefetchGroupsFromPatternMatch:
+ * class _CxPrefetchGroupsFromPatternMatch(_CxChild):
* def src(self, indentation): # <<<<<<<<<<<<<<
* return '{0}groups = match.groupdict()'.format(_TAB_STR * indentation)
*
@@ -20214,19 +20746,19 @@ PyObject *__pyx_args, PyObject *__pyx_kwds
switch (__pyx_nargs) {
case 0:
if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_self)) != 0)) kw_args--;
- else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1025, __pyx_L3_error)
+ else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1050, __pyx_L3_error)
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_indentation)) != 0)) kw_args--;
- else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1025, __pyx_L3_error)
+ else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1050, __pyx_L3_error)
else {
- __Pyx_RaiseArgtupleInvalid("src", 1, 2, 2, 1); __PYX_ERR(0, 1025, __pyx_L3_error)
+ __Pyx_RaiseArgtupleInvalid("src", 1, 2, 2, 1); __PYX_ERR(0, 1050, __pyx_L3_error)
}
}
if (unlikely(kw_args > 0)) {
const Py_ssize_t kwd_pos_args = __pyx_nargs;
- if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "src") < 0)) __PYX_ERR(0, 1025, __pyx_L3_error)
+ if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "src") < 0)) __PYX_ERR(0, 1050, __pyx_L3_error)
}
} else if (unlikely(__pyx_nargs != 2)) {
goto __pyx_L5_argtuple_error;
@@ -20239,7 +20771,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
- __Pyx_RaiseArgtupleInvalid("src", 1, 2, 2, __pyx_nargs); __PYX_ERR(0, 1025, __pyx_L3_error)
+ __Pyx_RaiseArgtupleInvalid("src", 1, 2, 2, __pyx_nargs); __PYX_ERR(0, 1050, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("falcon.routing.compiled._CxPrefetchGroupsFromPatternMatch.src", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
@@ -20265,19 +20797,19 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_33_CxPrefetchGroupsFromPatt
int __pyx_clineno = 0;
__Pyx_RefNannySetupContext("src", 0);
- /* "falcon/routing/compiled.py":1026
- * class _CxPrefetchGroupsFromPatternMatch:
+ /* "falcon/routing/compiled.py":1051
+ * class _CxPrefetchGroupsFromPatternMatch(_CxChild):
* def src(self, indentation):
* return '{0}groups = match.groupdict()'.format(_TAB_STR * indentation) # <<<<<<<<<<<<<<
*
*
*/
__Pyx_XDECREF(__pyx_r);
- __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_kp_u_0_groups_match_groupdict, __pyx_n_s_format); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1026, __pyx_L1_error)
+ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_kp_u_0_groups_match_groupdict, __pyx_n_s_format); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1051, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
- __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_TAB_STR); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1026, __pyx_L1_error)
+ __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_TAB_STR); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1051, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
- __pyx_t_4 = PyNumber_Multiply(__pyx_t_3, __pyx_v_indentation); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1026, __pyx_L1_error)
+ __pyx_t_4 = PyNumber_Multiply(__pyx_t_3, __pyx_v_indentation); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1051, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__pyx_t_3 = NULL;
@@ -20297,7 +20829,7 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_33_CxPrefetchGroupsFromPatt
__pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_5, 1+__pyx_t_5);
__Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
- if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1026, __pyx_L1_error)
+ if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1051, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
}
@@ -20305,9 +20837,9 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_33_CxPrefetchGroupsFromPatt
__pyx_t_1 = 0;
goto __pyx_L0;
- /* "falcon/routing/compiled.py":1025
+ /* "falcon/routing/compiled.py":1050
*
- * class _CxPrefetchGroupsFromPatternMatch:
+ * class _CxPrefetchGroupsFromPatternMatch(_CxChild):
* def src(self, indentation): # <<<<<<<<<<<<<<
* return '{0}groups = match.groupdict()'.format(_TAB_STR * indentation)
*
@@ -20327,9 +20859,9 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_33_CxPrefetchGroupsFromPatt
return __pyx_r;
}
-/* "falcon/routing/compiled.py":1030
+/* "falcon/routing/compiled.py":1055
*
- * class _CxReturnNone:
+ * class _CxReturnNone(_CxChild):
* def src(self, indentation): # <<<<<<<<<<<<<<
* return '{0}return None'.format(_TAB_STR * indentation)
*
@@ -20384,19 +20916,19 @@ PyObject *__pyx_args, PyObject *__pyx_kwds
switch (__pyx_nargs) {
case 0:
if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_self)) != 0)) kw_args--;
- else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1030, __pyx_L3_error)
+ else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1055, __pyx_L3_error)
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_indentation)) != 0)) kw_args--;
- else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1030, __pyx_L3_error)
+ else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1055, __pyx_L3_error)
else {
- __Pyx_RaiseArgtupleInvalid("src", 1, 2, 2, 1); __PYX_ERR(0, 1030, __pyx_L3_error)
+ __Pyx_RaiseArgtupleInvalid("src", 1, 2, 2, 1); __PYX_ERR(0, 1055, __pyx_L3_error)
}
}
if (unlikely(kw_args > 0)) {
const Py_ssize_t kwd_pos_args = __pyx_nargs;
- if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "src") < 0)) __PYX_ERR(0, 1030, __pyx_L3_error)
+ if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "src") < 0)) __PYX_ERR(0, 1055, __pyx_L3_error)
}
} else if (unlikely(__pyx_nargs != 2)) {
goto __pyx_L5_argtuple_error;
@@ -20409,7 +20941,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
- __Pyx_RaiseArgtupleInvalid("src", 1, 2, 2, __pyx_nargs); __PYX_ERR(0, 1030, __pyx_L3_error)
+ __Pyx_RaiseArgtupleInvalid("src", 1, 2, 2, __pyx_nargs); __PYX_ERR(0, 1055, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("falcon.routing.compiled._CxReturnNone.src", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
@@ -20435,19 +20967,19 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_13_CxReturnNone_src(CYTHON_
int __pyx_clineno = 0;
__Pyx_RefNannySetupContext("src", 0);
- /* "falcon/routing/compiled.py":1031
- * class _CxReturnNone:
+ /* "falcon/routing/compiled.py":1056
+ * class _CxReturnNone(_CxChild):
* def src(self, indentation):
* return '{0}return None'.format(_TAB_STR * indentation) # <<<<<<<<<<<<<<
*
*
*/
__Pyx_XDECREF(__pyx_r);
- __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_kp_u_0_return_None, __pyx_n_s_format); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1031, __pyx_L1_error)
+ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_kp_u_0_return_None, __pyx_n_s_format); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1056, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
- __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_TAB_STR); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1031, __pyx_L1_error)
+ __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_TAB_STR); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1056, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
- __pyx_t_4 = PyNumber_Multiply(__pyx_t_3, __pyx_v_indentation); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1031, __pyx_L1_error)
+ __pyx_t_4 = PyNumber_Multiply(__pyx_t_3, __pyx_v_indentation); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1056, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__pyx_t_3 = NULL;
@@ -20467,7 +20999,7 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_13_CxReturnNone_src(CYTHON_
__pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_5, 1+__pyx_t_5);
__Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
- if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1031, __pyx_L1_error)
+ if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1056, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
}
@@ -20475,9 +21007,9 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_13_CxReturnNone_src(CYTHON_
__pyx_t_1 = 0;
goto __pyx_L0;
- /* "falcon/routing/compiled.py":1030
+ /* "falcon/routing/compiled.py":1055
*
- * class _CxReturnNone:
+ * class _CxReturnNone(_CxChild):
* def src(self, indentation): # <<<<<<<<<<<<<<
* return '{0}return None'.format(_TAB_STR * indentation)
*
@@ -20497,9 +21029,9 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_13_CxReturnNone_src(CYTHON_
return __pyx_r;
}
-/* "falcon/routing/compiled.py":1035
+/* "falcon/routing/compiled.py":1060
*
- * class _CxReturnValue:
+ * class _CxReturnValue(_CxChild):
* def __init__(self, value_idx): # <<<<<<<<<<<<<<
* self._value_idx = value_idx
*
@@ -20554,19 +21086,19 @@ PyObject *__pyx_args, PyObject *__pyx_kwds
switch (__pyx_nargs) {
case 0:
if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_self)) != 0)) kw_args--;
- else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1035, __pyx_L3_error)
+ else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1060, __pyx_L3_error)
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_value_idx)) != 0)) kw_args--;
- else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1035, __pyx_L3_error)
+ else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1060, __pyx_L3_error)
else {
- __Pyx_RaiseArgtupleInvalid("__init__", 1, 2, 2, 1); __PYX_ERR(0, 1035, __pyx_L3_error)
+ __Pyx_RaiseArgtupleInvalid("__init__", 1, 2, 2, 1); __PYX_ERR(0, 1060, __pyx_L3_error)
}
}
if (unlikely(kw_args > 0)) {
const Py_ssize_t kwd_pos_args = __pyx_nargs;
- if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__init__") < 0)) __PYX_ERR(0, 1035, __pyx_L3_error)
+ if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__init__") < 0)) __PYX_ERR(0, 1060, __pyx_L3_error)
}
} else if (unlikely(__pyx_nargs != 2)) {
goto __pyx_L5_argtuple_error;
@@ -20579,7 +21111,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
- __Pyx_RaiseArgtupleInvalid("__init__", 1, 2, 2, __pyx_nargs); __PYX_ERR(0, 1035, __pyx_L3_error)
+ __Pyx_RaiseArgtupleInvalid("__init__", 1, 2, 2, __pyx_nargs); __PYX_ERR(0, 1060, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("falcon.routing.compiled._CxReturnValue.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
@@ -20600,18 +21132,18 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_14_CxReturnValue___init__(C
int __pyx_clineno = 0;
__Pyx_RefNannySetupContext("__init__", 0);
- /* "falcon/routing/compiled.py":1036
- * class _CxReturnValue:
+ /* "falcon/routing/compiled.py":1061
+ * class _CxReturnValue(_CxChild):
* def __init__(self, value_idx):
* self._value_idx = value_idx # <<<<<<<<<<<<<<
*
* def src(self, indentation):
*/
- if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_value_idx_2, __pyx_v_value_idx) < 0) __PYX_ERR(0, 1036, __pyx_L1_error)
+ if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_value_idx_2, __pyx_v_value_idx) < 0) __PYX_ERR(0, 1061, __pyx_L1_error)
- /* "falcon/routing/compiled.py":1035
+ /* "falcon/routing/compiled.py":1060
*
- * class _CxReturnValue:
+ * class _CxReturnValue(_CxChild):
* def __init__(self, value_idx): # <<<<<<<<<<<<<<
* self._value_idx = value_idx
*
@@ -20629,7 +21161,7 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_14_CxReturnValue___init__(C
return __pyx_r;
}
-/* "falcon/routing/compiled.py":1038
+/* "falcon/routing/compiled.py":1063
* self._value_idx = value_idx
*
* def src(self, indentation): # <<<<<<<<<<<<<<
@@ -20686,19 +21218,19 @@ PyObject *__pyx_args, PyObject *__pyx_kwds
switch (__pyx_nargs) {
case 0:
if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_self)) != 0)) kw_args--;
- else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1038, __pyx_L3_error)
+ else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1063, __pyx_L3_error)
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_indentation)) != 0)) kw_args--;
- else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1038, __pyx_L3_error)
+ else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1063, __pyx_L3_error)
else {
- __Pyx_RaiseArgtupleInvalid("src", 1, 2, 2, 1); __PYX_ERR(0, 1038, __pyx_L3_error)
+ __Pyx_RaiseArgtupleInvalid("src", 1, 2, 2, 1); __PYX_ERR(0, 1063, __pyx_L3_error)
}
}
if (unlikely(kw_args > 0)) {
const Py_ssize_t kwd_pos_args = __pyx_nargs;
- if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "src") < 0)) __PYX_ERR(0, 1038, __pyx_L3_error)
+ if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "src") < 0)) __PYX_ERR(0, 1063, __pyx_L3_error)
}
} else if (unlikely(__pyx_nargs != 2)) {
goto __pyx_L5_argtuple_error;
@@ -20711,7 +21243,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
- __Pyx_RaiseArgtupleInvalid("src", 1, 2, 2, __pyx_nargs); __PYX_ERR(0, 1038, __pyx_L3_error)
+ __Pyx_RaiseArgtupleInvalid("src", 1, 2, 2, __pyx_nargs); __PYX_ERR(0, 1063, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("falcon.routing.compiled._CxReturnValue.src", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
@@ -20738,7 +21270,7 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_14_CxReturnValue_2src(CYTHO
int __pyx_clineno = 0;
__Pyx_RefNannySetupContext("src", 0);
- /* "falcon/routing/compiled.py":1039
+ /* "falcon/routing/compiled.py":1064
*
* def src(self, indentation):
* return '{0}return return_values[{1}]'.format( # <<<<<<<<<<<<<<
@@ -20746,22 +21278,22 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_14_CxReturnValue_2src(CYTHO
* )
*/
__Pyx_XDECREF(__pyx_r);
- __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_kp_u_0_return_return_values_1, __pyx_n_s_format); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1039, __pyx_L1_error)
+ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_kp_u_0_return_return_values_1, __pyx_n_s_format); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1064, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
- /* "falcon/routing/compiled.py":1040
+ /* "falcon/routing/compiled.py":1065
* def src(self, indentation):
* return '{0}return return_values[{1}]'.format(
* _TAB_STR * indentation, self._value_idx # <<<<<<<<<<<<<<
* )
*
*/
- __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_TAB_STR); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1040, __pyx_L1_error)
+ __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_TAB_STR); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1065, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
- __pyx_t_4 = PyNumber_Multiply(__pyx_t_3, __pyx_v_indentation); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1040, __pyx_L1_error)
+ __pyx_t_4 = PyNumber_Multiply(__pyx_t_3, __pyx_v_indentation); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1065, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
- __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_value_idx_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1040, __pyx_L1_error)
+ __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_value_idx_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1065, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_5 = NULL;
__pyx_t_6 = 0;
@@ -20781,7 +21313,7 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_14_CxReturnValue_2src(CYTHO
__Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
- if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1039, __pyx_L1_error)
+ if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1064, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
}
@@ -20789,7 +21321,7 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_14_CxReturnValue_2src(CYTHO
__pyx_t_1 = 0;
goto __pyx_L0;
- /* "falcon/routing/compiled.py":1038
+ /* "falcon/routing/compiled.py":1063
* self._value_idx = value_idx
*
* def src(self, indentation): # <<<<<<<<<<<<<<
@@ -20812,9 +21344,9 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_14_CxReturnValue_2src(CYTHO
return __pyx_r;
}
-/* "falcon/routing/compiled.py":1045
+/* "falcon/routing/compiled.py":1070
*
- * class _CxSetParamFromPath:
+ * class _CxSetParamFromPath(_CxChild):
* def __init__(self, param_name, segment_idx): # <<<<<<<<<<<<<<
* self._param_name = param_name
* self._segment_idx = segment_idx
@@ -20872,26 +21404,26 @@ PyObject *__pyx_args, PyObject *__pyx_kwds
switch (__pyx_nargs) {
case 0:
if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_self)) != 0)) kw_args--;
- else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1045, __pyx_L3_error)
+ else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1070, __pyx_L3_error)
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_param_name)) != 0)) kw_args--;
- else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1045, __pyx_L3_error)
+ else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1070, __pyx_L3_error)
else {
- __Pyx_RaiseArgtupleInvalid("__init__", 1, 3, 3, 1); __PYX_ERR(0, 1045, __pyx_L3_error)
+ __Pyx_RaiseArgtupleInvalid("__init__", 1, 3, 3, 1); __PYX_ERR(0, 1070, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 2:
if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_segment_idx)) != 0)) kw_args--;
- else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1045, __pyx_L3_error)
+ else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1070, __pyx_L3_error)
else {
- __Pyx_RaiseArgtupleInvalid("__init__", 1, 3, 3, 2); __PYX_ERR(0, 1045, __pyx_L3_error)
+ __Pyx_RaiseArgtupleInvalid("__init__", 1, 3, 3, 2); __PYX_ERR(0, 1070, __pyx_L3_error)
}
}
if (unlikely(kw_args > 0)) {
const Py_ssize_t kwd_pos_args = __pyx_nargs;
- if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__init__") < 0)) __PYX_ERR(0, 1045, __pyx_L3_error)
+ if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__init__") < 0)) __PYX_ERR(0, 1070, __pyx_L3_error)
}
} else if (unlikely(__pyx_nargs != 3)) {
goto __pyx_L5_argtuple_error;
@@ -20906,7 +21438,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
- __Pyx_RaiseArgtupleInvalid("__init__", 1, 3, 3, __pyx_nargs); __PYX_ERR(0, 1045, __pyx_L3_error)
+ __Pyx_RaiseArgtupleInvalid("__init__", 1, 3, 3, __pyx_nargs); __PYX_ERR(0, 1070, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("falcon.routing.compiled._CxSetParamFromPath.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
@@ -20927,27 +21459,27 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_19_CxSetParamFromPath___ini
int __pyx_clineno = 0;
__Pyx_RefNannySetupContext("__init__", 0);
- /* "falcon/routing/compiled.py":1046
- * class _CxSetParamFromPath:
+ /* "falcon/routing/compiled.py":1071
+ * class _CxSetParamFromPath(_CxChild):
* def __init__(self, param_name, segment_idx):
* self._param_name = param_name # <<<<<<<<<<<<<<
* self._segment_idx = segment_idx
*
*/
- if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_param_name_2, __pyx_v_param_name) < 0) __PYX_ERR(0, 1046, __pyx_L1_error)
+ if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_param_name_2, __pyx_v_param_name) < 0) __PYX_ERR(0, 1071, __pyx_L1_error)
- /* "falcon/routing/compiled.py":1047
+ /* "falcon/routing/compiled.py":1072
* def __init__(self, param_name, segment_idx):
* self._param_name = param_name
* self._segment_idx = segment_idx # <<<<<<<<<<<<<<
*
* def src(self, indentation):
*/
- if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_segment_idx_2, __pyx_v_segment_idx) < 0) __PYX_ERR(0, 1047, __pyx_L1_error)
+ if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_segment_idx_2, __pyx_v_segment_idx) < 0) __PYX_ERR(0, 1072, __pyx_L1_error)
- /* "falcon/routing/compiled.py":1045
+ /* "falcon/routing/compiled.py":1070
*
- * class _CxSetParamFromPath:
+ * class _CxSetParamFromPath(_CxChild):
* def __init__(self, param_name, segment_idx): # <<<<<<<<<<<<<<
* self._param_name = param_name
* self._segment_idx = segment_idx
@@ -20965,7 +21497,7 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_19_CxSetParamFromPath___ini
return __pyx_r;
}
-/* "falcon/routing/compiled.py":1049
+/* "falcon/routing/compiled.py":1074
* self._segment_idx = segment_idx
*
* def src(self, indentation): # <<<<<<<<<<<<<<
@@ -21022,19 +21554,19 @@ PyObject *__pyx_args, PyObject *__pyx_kwds
switch (__pyx_nargs) {
case 0:
if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_self)) != 0)) kw_args--;
- else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1049, __pyx_L3_error)
+ else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1074, __pyx_L3_error)
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_indentation)) != 0)) kw_args--;
- else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1049, __pyx_L3_error)
+ else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1074, __pyx_L3_error)
else {
- __Pyx_RaiseArgtupleInvalid("src", 1, 2, 2, 1); __PYX_ERR(0, 1049, __pyx_L3_error)
+ __Pyx_RaiseArgtupleInvalid("src", 1, 2, 2, 1); __PYX_ERR(0, 1074, __pyx_L3_error)
}
}
if (unlikely(kw_args > 0)) {
const Py_ssize_t kwd_pos_args = __pyx_nargs;
- if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "src") < 0)) __PYX_ERR(0, 1049, __pyx_L3_error)
+ if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "src") < 0)) __PYX_ERR(0, 1074, __pyx_L3_error)
}
} else if (unlikely(__pyx_nargs != 2)) {
goto __pyx_L5_argtuple_error;
@@ -21047,7 +21579,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
- __Pyx_RaiseArgtupleInvalid("src", 1, 2, 2, __pyx_nargs); __PYX_ERR(0, 1049, __pyx_L3_error)
+ __Pyx_RaiseArgtupleInvalid("src", 1, 2, 2, __pyx_nargs); __PYX_ERR(0, 1074, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("falcon.routing.compiled._CxSetParamFromPath.src", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
@@ -21075,7 +21607,7 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_19_CxSetParamFromPath_2src(
int __pyx_clineno = 0;
__Pyx_RefNannySetupContext("src", 0);
- /* "falcon/routing/compiled.py":1050
+ /* "falcon/routing/compiled.py":1075
*
* def src(self, indentation):
* return "{0}params['{1}'] = path[{2}]".format( # <<<<<<<<<<<<<<
@@ -21083,40 +21615,40 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_19_CxSetParamFromPath_2src(
* self._param_name,
*/
__Pyx_XDECREF(__pyx_r);
- __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_kp_u_0_params_1_path_2, __pyx_n_s_format); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1050, __pyx_L1_error)
+ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_kp_u_0_params_1_path_2, __pyx_n_s_format); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1075, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
- /* "falcon/routing/compiled.py":1051
+ /* "falcon/routing/compiled.py":1076
* def src(self, indentation):
* return "{0}params['{1}'] = path[{2}]".format(
* _TAB_STR * indentation, # <<<<<<<<<<<<<<
* self._param_name,
* self._segment_idx,
*/
- __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_TAB_STR); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1051, __pyx_L1_error)
+ __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_TAB_STR); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1076, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
- __pyx_t_4 = PyNumber_Multiply(__pyx_t_3, __pyx_v_indentation); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1051, __pyx_L1_error)
+ __pyx_t_4 = PyNumber_Multiply(__pyx_t_3, __pyx_v_indentation); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1076, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
- /* "falcon/routing/compiled.py":1052
+ /* "falcon/routing/compiled.py":1077
* return "{0}params['{1}'] = path[{2}]".format(
* _TAB_STR * indentation,
* self._param_name, # <<<<<<<<<<<<<<
* self._segment_idx,
* )
*/
- __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_param_name_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1052, __pyx_L1_error)
+ __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_param_name_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1077, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
- /* "falcon/routing/compiled.py":1053
+ /* "falcon/routing/compiled.py":1078
* _TAB_STR * indentation,
* self._param_name,
* self._segment_idx, # <<<<<<<<<<<<<<
* )
*
*/
- __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_segment_idx_2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1053, __pyx_L1_error)
+ __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_segment_idx_2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1078, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__pyx_t_6 = NULL;
__pyx_t_7 = 0;
@@ -21137,7 +21669,7 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_19_CxSetParamFromPath_2src(
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
- if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1050, __pyx_L1_error)
+ if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1075, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
}
@@ -21145,7 +21677,7 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_19_CxSetParamFromPath_2src(
__pyx_t_1 = 0;
goto __pyx_L0;
- /* "falcon/routing/compiled.py":1049
+ /* "falcon/routing/compiled.py":1074
* self._segment_idx = segment_idx
*
* def src(self, indentation): # <<<<<<<<<<<<<<
@@ -21169,9 +21701,9 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_19_CxSetParamFromPath_2src(
return __pyx_r;
}
-/* "falcon/routing/compiled.py":1058
+/* "falcon/routing/compiled.py":1083
*
- * class _CxSetParamFromValue:
+ * class _CxSetParamFromValue(_CxChild):
* def __init__(self, param_name, field_value_name): # <<<<<<<<<<<<<<
* self._param_name = param_name
* self._field_value_name = field_value_name
@@ -21229,26 +21761,26 @@ PyObject *__pyx_args, PyObject *__pyx_kwds
switch (__pyx_nargs) {
case 0:
if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_self)) != 0)) kw_args--;
- else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1058, __pyx_L3_error)
+ else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1083, __pyx_L3_error)
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_param_name)) != 0)) kw_args--;
- else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1058, __pyx_L3_error)
+ else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1083, __pyx_L3_error)
else {
- __Pyx_RaiseArgtupleInvalid("__init__", 1, 3, 3, 1); __PYX_ERR(0, 1058, __pyx_L3_error)
+ __Pyx_RaiseArgtupleInvalid("__init__", 1, 3, 3, 1); __PYX_ERR(0, 1083, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 2:
if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_field_value_name)) != 0)) kw_args--;
- else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1058, __pyx_L3_error)
+ else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1083, __pyx_L3_error)
else {
- __Pyx_RaiseArgtupleInvalid("__init__", 1, 3, 3, 2); __PYX_ERR(0, 1058, __pyx_L3_error)
+ __Pyx_RaiseArgtupleInvalid("__init__", 1, 3, 3, 2); __PYX_ERR(0, 1083, __pyx_L3_error)
}
}
if (unlikely(kw_args > 0)) {
const Py_ssize_t kwd_pos_args = __pyx_nargs;
- if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__init__") < 0)) __PYX_ERR(0, 1058, __pyx_L3_error)
+ if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__init__") < 0)) __PYX_ERR(0, 1083, __pyx_L3_error)
}
} else if (unlikely(__pyx_nargs != 3)) {
goto __pyx_L5_argtuple_error;
@@ -21263,7 +21795,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
- __Pyx_RaiseArgtupleInvalid("__init__", 1, 3, 3, __pyx_nargs); __PYX_ERR(0, 1058, __pyx_L3_error)
+ __Pyx_RaiseArgtupleInvalid("__init__", 1, 3, 3, __pyx_nargs); __PYX_ERR(0, 1083, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("falcon.routing.compiled._CxSetParamFromValue.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
@@ -21284,27 +21816,27 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_20_CxSetParamFromValue___in
int __pyx_clineno = 0;
__Pyx_RefNannySetupContext("__init__", 0);
- /* "falcon/routing/compiled.py":1059
- * class _CxSetParamFromValue:
+ /* "falcon/routing/compiled.py":1084
+ * class _CxSetParamFromValue(_CxChild):
* def __init__(self, param_name, field_value_name):
* self._param_name = param_name # <<<<<<<<<<<<<<
* self._field_value_name = field_value_name
*
*/
- if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_param_name_2, __pyx_v_param_name) < 0) __PYX_ERR(0, 1059, __pyx_L1_error)
+ if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_param_name_2, __pyx_v_param_name) < 0) __PYX_ERR(0, 1084, __pyx_L1_error)
- /* "falcon/routing/compiled.py":1060
+ /* "falcon/routing/compiled.py":1085
* def __init__(self, param_name, field_value_name):
* self._param_name = param_name
* self._field_value_name = field_value_name # <<<<<<<<<<<<<<
*
* def src(self, indentation):
*/
- if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_field_value_name_2, __pyx_v_field_value_name) < 0) __PYX_ERR(0, 1060, __pyx_L1_error)
+ if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_field_value_name_2, __pyx_v_field_value_name) < 0) __PYX_ERR(0, 1085, __pyx_L1_error)
- /* "falcon/routing/compiled.py":1058
+ /* "falcon/routing/compiled.py":1083
*
- * class _CxSetParamFromValue:
+ * class _CxSetParamFromValue(_CxChild):
* def __init__(self, param_name, field_value_name): # <<<<<<<<<<<<<<
* self._param_name = param_name
* self._field_value_name = field_value_name
@@ -21322,7 +21854,7 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_20_CxSetParamFromValue___in
return __pyx_r;
}
-/* "falcon/routing/compiled.py":1062
+/* "falcon/routing/compiled.py":1087
* self._field_value_name = field_value_name
*
* def src(self, indentation): # <<<<<<<<<<<<<<
@@ -21379,19 +21911,19 @@ PyObject *__pyx_args, PyObject *__pyx_kwds
switch (__pyx_nargs) {
case 0:
if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_self)) != 0)) kw_args--;
- else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1062, __pyx_L3_error)
+ else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1087, __pyx_L3_error)
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_indentation)) != 0)) kw_args--;
- else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1062, __pyx_L3_error)
+ else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1087, __pyx_L3_error)
else {
- __Pyx_RaiseArgtupleInvalid("src", 1, 2, 2, 1); __PYX_ERR(0, 1062, __pyx_L3_error)
+ __Pyx_RaiseArgtupleInvalid("src", 1, 2, 2, 1); __PYX_ERR(0, 1087, __pyx_L3_error)
}
}
if (unlikely(kw_args > 0)) {
const Py_ssize_t kwd_pos_args = __pyx_nargs;
- if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "src") < 0)) __PYX_ERR(0, 1062, __pyx_L3_error)
+ if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "src") < 0)) __PYX_ERR(0, 1087, __pyx_L3_error)
}
} else if (unlikely(__pyx_nargs != 2)) {
goto __pyx_L5_argtuple_error;
@@ -21404,7 +21936,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
- __Pyx_RaiseArgtupleInvalid("src", 1, 2, 2, __pyx_nargs); __PYX_ERR(0, 1062, __pyx_L3_error)
+ __Pyx_RaiseArgtupleInvalid("src", 1, 2, 2, __pyx_nargs); __PYX_ERR(0, 1087, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("falcon.routing.compiled._CxSetParamFromValue.src", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
@@ -21432,7 +21964,7 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_20_CxSetParamFromValue_2src
int __pyx_clineno = 0;
__Pyx_RefNannySetupContext("src", 0);
- /* "falcon/routing/compiled.py":1063
+ /* "falcon/routing/compiled.py":1088
*
* def src(self, indentation):
* return "{0}params['{1}'] = {2}".format( # <<<<<<<<<<<<<<
@@ -21440,40 +21972,40 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_20_CxSetParamFromValue_2src
* self._param_name,
*/
__Pyx_XDECREF(__pyx_r);
- __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_kp_u_0_params_1_2, __pyx_n_s_format); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1063, __pyx_L1_error)
+ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_kp_u_0_params_1_2, __pyx_n_s_format); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1088, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
- /* "falcon/routing/compiled.py":1064
+ /* "falcon/routing/compiled.py":1089
* def src(self, indentation):
* return "{0}params['{1}'] = {2}".format(
* _TAB_STR * indentation, # <<<<<<<<<<<<<<
* self._param_name,
* self._field_value_name,
*/
- __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_TAB_STR); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1064, __pyx_L1_error)
+ __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_TAB_STR); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1089, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
- __pyx_t_4 = PyNumber_Multiply(__pyx_t_3, __pyx_v_indentation); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1064, __pyx_L1_error)
+ __pyx_t_4 = PyNumber_Multiply(__pyx_t_3, __pyx_v_indentation); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1089, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
- /* "falcon/routing/compiled.py":1065
+ /* "falcon/routing/compiled.py":1090
* return "{0}params['{1}'] = {2}".format(
* _TAB_STR * indentation,
* self._param_name, # <<<<<<<<<<<<<<
* self._field_value_name,
* )
*/
- __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_param_name_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1065, __pyx_L1_error)
+ __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_param_name_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1090, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
- /* "falcon/routing/compiled.py":1066
+ /* "falcon/routing/compiled.py":1091
* _TAB_STR * indentation,
* self._param_name,
* self._field_value_name, # <<<<<<<<<<<<<<
* )
*
*/
- __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_field_value_name_2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1066, __pyx_L1_error)
+ __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_field_value_name_2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1091, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__pyx_t_6 = NULL;
__pyx_t_7 = 0;
@@ -21494,7 +22026,7 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_20_CxSetParamFromValue_2src
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
- if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1063, __pyx_L1_error)
+ if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1088, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
}
@@ -21502,7 +22034,7 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_20_CxSetParamFromValue_2src
__pyx_t_1 = 0;
goto __pyx_L0;
- /* "falcon/routing/compiled.py":1062
+ /* "falcon/routing/compiled.py":1087
* self._field_value_name = field_value_name
*
* def src(self, indentation): # <<<<<<<<<<<<<<
@@ -21526,9 +22058,9 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_20_CxSetParamFromValue_2src
return __pyx_r;
}
-/* "falcon/routing/compiled.py":1071
+/* "falcon/routing/compiled.py":1096
*
- * class _CxSetParamsFromDict:
+ * class _CxSetParamsFromDict(_CxChild):
* def __init__(self, dict_value_name): # <<<<<<<<<<<<<<
* self._dict_value_name = dict_value_name
*
@@ -21583,19 +22115,19 @@ PyObject *__pyx_args, PyObject *__pyx_kwds
switch (__pyx_nargs) {
case 0:
if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_self)) != 0)) kw_args--;
- else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1071, __pyx_L3_error)
+ else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1096, __pyx_L3_error)
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_dict_value_name)) != 0)) kw_args--;
- else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1071, __pyx_L3_error)
+ else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1096, __pyx_L3_error)
else {
- __Pyx_RaiseArgtupleInvalid("__init__", 1, 2, 2, 1); __PYX_ERR(0, 1071, __pyx_L3_error)
+ __Pyx_RaiseArgtupleInvalid("__init__", 1, 2, 2, 1); __PYX_ERR(0, 1096, __pyx_L3_error)
}
}
if (unlikely(kw_args > 0)) {
const Py_ssize_t kwd_pos_args = __pyx_nargs;
- if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__init__") < 0)) __PYX_ERR(0, 1071, __pyx_L3_error)
+ if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__init__") < 0)) __PYX_ERR(0, 1096, __pyx_L3_error)
}
} else if (unlikely(__pyx_nargs != 2)) {
goto __pyx_L5_argtuple_error;
@@ -21608,7 +22140,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
- __Pyx_RaiseArgtupleInvalid("__init__", 1, 2, 2, __pyx_nargs); __PYX_ERR(0, 1071, __pyx_L3_error)
+ __Pyx_RaiseArgtupleInvalid("__init__", 1, 2, 2, __pyx_nargs); __PYX_ERR(0, 1096, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("falcon.routing.compiled._CxSetParamsFromDict.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
@@ -21629,18 +22161,18 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_20_CxSetParamsFromDict___in
int __pyx_clineno = 0;
__Pyx_RefNannySetupContext("__init__", 0);
- /* "falcon/routing/compiled.py":1072
- * class _CxSetParamsFromDict:
+ /* "falcon/routing/compiled.py":1097
+ * class _CxSetParamsFromDict(_CxChild):
* def __init__(self, dict_value_name):
* self._dict_value_name = dict_value_name # <<<<<<<<<<<<<<
*
* def src(self, indentation):
*/
- if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_dict_value_name_2, __pyx_v_dict_value_name) < 0) __PYX_ERR(0, 1072, __pyx_L1_error)
+ if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_dict_value_name_2, __pyx_v_dict_value_name) < 0) __PYX_ERR(0, 1097, __pyx_L1_error)
- /* "falcon/routing/compiled.py":1071
+ /* "falcon/routing/compiled.py":1096
*
- * class _CxSetParamsFromDict:
+ * class _CxSetParamsFromDict(_CxChild):
* def __init__(self, dict_value_name): # <<<<<<<<<<<<<<
* self._dict_value_name = dict_value_name
*
@@ -21658,7 +22190,7 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_20_CxSetParamsFromDict___in
return __pyx_r;
}
-/* "falcon/routing/compiled.py":1074
+/* "falcon/routing/compiled.py":1099
* self._dict_value_name = dict_value_name
*
* def src(self, indentation): # <<<<<<<<<<<<<<
@@ -21715,19 +22247,19 @@ PyObject *__pyx_args, PyObject *__pyx_kwds
switch (__pyx_nargs) {
case 0:
if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_self)) != 0)) kw_args--;
- else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1074, __pyx_L3_error)
+ else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1099, __pyx_L3_error)
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_indentation)) != 0)) kw_args--;
- else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1074, __pyx_L3_error)
+ else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1099, __pyx_L3_error)
else {
- __Pyx_RaiseArgtupleInvalid("src", 1, 2, 2, 1); __PYX_ERR(0, 1074, __pyx_L3_error)
+ __Pyx_RaiseArgtupleInvalid("src", 1, 2, 2, 1); __PYX_ERR(0, 1099, __pyx_L3_error)
}
}
if (unlikely(kw_args > 0)) {
const Py_ssize_t kwd_pos_args = __pyx_nargs;
- if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "src") < 0)) __PYX_ERR(0, 1074, __pyx_L3_error)
+ if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "src") < 0)) __PYX_ERR(0, 1099, __pyx_L3_error)
}
} else if (unlikely(__pyx_nargs != 2)) {
goto __pyx_L5_argtuple_error;
@@ -21740,7 +22272,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
- __Pyx_RaiseArgtupleInvalid("src", 1, 2, 2, __pyx_nargs); __PYX_ERR(0, 1074, __pyx_L3_error)
+ __Pyx_RaiseArgtupleInvalid("src", 1, 2, 2, __pyx_nargs); __PYX_ERR(0, 1099, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("falcon.routing.compiled._CxSetParamsFromDict.src", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
@@ -21767,7 +22299,7 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_20_CxSetParamsFromDict_2src
int __pyx_clineno = 0;
__Pyx_RefNannySetupContext("src", 0);
- /* "falcon/routing/compiled.py":1075
+ /* "falcon/routing/compiled.py":1100
*
* def src(self, indentation):
* return '{0}params.update({1})'.format( # <<<<<<<<<<<<<<
@@ -21775,29 +22307,29 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_20_CxSetParamsFromDict_2src
* self._dict_value_name,
*/
__Pyx_XDECREF(__pyx_r);
- __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_kp_u_0_params_update_1, __pyx_n_s_format); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1075, __pyx_L1_error)
+ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_kp_u_0_params_update_1, __pyx_n_s_format); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1100, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
- /* "falcon/routing/compiled.py":1076
+ /* "falcon/routing/compiled.py":1101
* def src(self, indentation):
* return '{0}params.update({1})'.format(
* _TAB_STR * indentation, # <<<<<<<<<<<<<<
* self._dict_value_name,
* )
*/
- __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_TAB_STR); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1076, __pyx_L1_error)
+ __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_TAB_STR); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1101, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
- __pyx_t_4 = PyNumber_Multiply(__pyx_t_3, __pyx_v_indentation); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1076, __pyx_L1_error)
+ __pyx_t_4 = PyNumber_Multiply(__pyx_t_3, __pyx_v_indentation); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1101, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
- /* "falcon/routing/compiled.py":1077
+ /* "falcon/routing/compiled.py":1102
* return '{0}params.update({1})'.format(
* _TAB_STR * indentation,
* self._dict_value_name, # <<<<<<<<<<<<<<
* )
*/
- __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_dict_value_name_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1077, __pyx_L1_error)
+ __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_dict_value_name_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1102, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_5 = NULL;
__pyx_t_6 = 0;
@@ -21817,7 +22349,7 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_20_CxSetParamsFromDict_2src
__Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
- if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1075, __pyx_L1_error)
+ if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1100, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
}
@@ -21825,7 +22357,7 @@ static PyObject *__pyx_pf_6falcon_7routing_8compiled_20_CxSetParamsFromDict_2src
__pyx_t_1 = 0;
goto __pyx_L0;
- /* "falcon/routing/compiled.py":1074
+ /* "falcon/routing/compiled.py":1099
* self._dict_value_name = dict_value_name
*
* def src(self, indentation): # <<<<<<<<<<<<<<
@@ -21900,9 +22432,6 @@ static int __pyx_tp_traverse_6falcon_7routing_8compiled___pyx_scope_struct__add_
if (p->__pyx_v_resource) {
e = (*v)(p->__pyx_v_resource, a); if (e) return e;
}
- if (p->__pyx_v_uri_template) {
- e = (*v)(p->__pyx_v_uri_template, a); if (e) return e;
- }
return 0;
}
@@ -21921,9 +22450,6 @@ static int __pyx_tp_clear_6falcon_7routing_8compiled___pyx_scope_struct__add_rou
tmp = ((PyObject*)p->__pyx_v_resource);
p->__pyx_v_resource = Py_None; Py_INCREF(Py_None);
Py_XDECREF(tmp);
- tmp = ((PyObject*)p->__pyx_v_uri_template);
- p->__pyx_v_uri_template = Py_None; Py_INCREF(Py_None);
- Py_XDECREF(tmp);
return 0;
}
#if CYTHON_USE_TYPE_SPECS
@@ -22071,7 +22597,7 @@ static int __pyx_tp_clear_6falcon_7routing_8compiled___pyx_scope_struct_1__requi
p->__pyx_v_method = Py_None; Py_INCREF(Py_None);
Py_XDECREF(tmp);
tmp = ((PyObject*)p->__pyx_v_method_map);
- p->__pyx_v_method_map = Py_None; Py_INCREF(Py_None);
+ p->__pyx_v_method_map = ((PyObject*)Py_None); Py_INCREF(Py_None);
Py_XDECREF(tmp);
return 0;
}
@@ -22343,9 +22869,12 @@ static __Pyx_StringTabEntry __pyx_string_tab[] = {
{0, __pyx_k_0_return_return_values_1, sizeof(__pyx_k_0_return_return_values_1), 0, 1, 0, 0},
{0, __pyx_k_A_Za_z__A_Za_z0_9, sizeof(__pyx_k_A_Za_z__A_Za_z0_9), 0, 1, 0, 0},
{0, __pyx_k_A_dict_like_class_for_storing_fi, sizeof(__pyx_k_A_dict_like_class_for_storing_fi), 0, 0, 1, 0},
+ {0, __pyx_k_Any, sizeof(__pyx_k_Any), 0, 0, 1, 1},
{0, __pyx_k_AssertionError, sizeof(__pyx_k_AssertionError), 0, 0, 1, 1},
{0, __pyx_k_AttributeError, sizeof(__pyx_k_AttributeError), 0, 0, 1, 1},
{0, __pyx_k_BUILTIN, sizeof(__pyx_k_BUILTIN), 0, 0, 1, 1},
+ {0, __pyx_k_Callable, sizeof(__pyx_k_Callable), 0, 0, 1, 1},
+ {0, __pyx_k_Callable_2, sizeof(__pyx_k_Callable_2), 0, 0, 1, 0},
{0, __pyx_k_Cannot_instantiate_converter, sizeof(__pyx_k_Cannot_instantiate_converter), 0, 1, 0, 0},
{0, __pyx_k_CompiledRouter, sizeof(__pyx_k_CompiledRouter), 0, 0, 1, 1},
{0, __pyx_k_CompiledRouterNode, sizeof(__pyx_k_CompiledRouterNode), 0, 0, 1, 1},
@@ -22354,6 +22883,7 @@ static __Pyx_StringTabEntry __pyx_string_tab[] = {
{0, __pyx_k_CompiledRouterNode_conflicts_wit, sizeof(__pyx_k_CompiledRouterNode_conflicts_wit), 0, 0, 1, 1},
{0, __pyx_k_CompiledRouterNode_matches, sizeof(__pyx_k_CompiledRouterNode_matches), 0, 0, 1, 1},
{0, __pyx_k_CompiledRouterOptions, sizeof(__pyx_k_CompiledRouterOptions), 0, 0, 1, 1},
+ {0, __pyx_k_CompiledRouterOptions_2, sizeof(__pyx_k_CompiledRouterOptions_2), 0, 0, 1, 0},
{0, __pyx_k_CompiledRouterOptions___init, sizeof(__pyx_k_CompiledRouterOptions___init), 0, 0, 1, 1},
{0, __pyx_k_CompiledRouterOptions___init___l, sizeof(__pyx_k_CompiledRouterOptions___init___l), 0, 0, 1, 1},
{0, __pyx_k_CompiledRouter___init, sizeof(__pyx_k_CompiledRouter___init), 0, 0, 1, 1},
@@ -22377,6 +22907,11 @@ static __Pyx_StringTabEntry __pyx_string_tab[] = {
{0, __pyx_k_ConverterDict___setitem, sizeof(__pyx_k_ConverterDict___setitem), 0, 0, 1, 1},
{0, __pyx_k_ConverterDict__validate, sizeof(__pyx_k_ConverterDict__validate), 0, 0, 1, 1},
{0, __pyx_k_ConverterDict_update, sizeof(__pyx_k_ConverterDict_update), 0, 0, 1, 1},
+ {0, __pyx_k_CxChild, sizeof(__pyx_k_CxChild), 0, 0, 1, 1},
+ {0, __pyx_k_CxChild, sizeof(__pyx_k_CxChild), 0, 1, 0, 1},
+ {0, __pyx_k_CxChild_src, sizeof(__pyx_k_CxChild_src), 0, 0, 1, 1},
+ {0, __pyx_k_CxElement, sizeof(__pyx_k_CxElement), 0, 0, 1, 1},
+ {0, __pyx_k_CxElement_2, sizeof(__pyx_k_CxElement_2), 0, 0, 1, 0},
{0, __pyx_k_CxIfConverterField, sizeof(__pyx_k_CxIfConverterField), 0, 0, 1, 1},
{0, __pyx_k_CxIfConverterField___init, sizeof(__pyx_k_CxIfConverterField___init), 0, 0, 1, 1},
{0, __pyx_k_CxIfConverterField_src, sizeof(__pyx_k_CxIfConverterField_src), 0, 0, 1, 1},
@@ -22390,6 +22925,8 @@ static __Pyx_StringTabEntry __pyx_string_tab[] = {
{0, __pyx_k_CxIfPathSegmentPattern___init, sizeof(__pyx_k_CxIfPathSegmentPattern___init), 0, 0, 1, 1},
{0, __pyx_k_CxIfPathSegmentPattern_src, sizeof(__pyx_k_CxIfPathSegmentPattern_src), 0, 0, 1, 1},
{0, __pyx_k_CxParent, sizeof(__pyx_k_CxParent), 0, 0, 1, 1},
+ {0, __pyx_k_CxParent, sizeof(__pyx_k_CxParent), 0, 1, 0, 1},
+ {0, __pyx_k_CxParent_2, sizeof(__pyx_k_CxParent_2), 0, 0, 1, 0},
{0, __pyx_k_CxParent___init, sizeof(__pyx_k_CxParent___init), 0, 0, 1, 1},
{0, __pyx_k_CxParent__children_src, sizeof(__pyx_k_CxParent__children_src), 0, 0, 1, 1},
{0, __pyx_k_CxParent_append_child, sizeof(__pyx_k_CxParent_append_child), 0, 0, 1, 1},
@@ -22423,6 +22960,7 @@ static __Pyx_StringTabEntry __pyx_string_tab[] = {
{0, __pyx_k_CxVariableFromPatternMatch___in, sizeof(__pyx_k_CxVariableFromPatternMatch___in), 0, 0, 1, 1},
{0, __pyx_k_CxVariableFromPatternMatch_src, sizeof(__pyx_k_CxVariableFromPatternMatch_src), 0, 0, 1, 1},
{0, __pyx_k_Defines_a_set_of_configurable_ro, sizeof(__pyx_k_Defines_a_set_of_configurable_ro), 0, 0, 1, 0},
+ {0, __pyx_k_Dict, sizeof(__pyx_k_Dict), 0, 0, 1, 1},
{0, __pyx_k_FIELD, sizeof(__pyx_k_FIELD), 0, 1, 0, 0},
{0, __pyx_k_FIELD_PATTERN, sizeof(__pyx_k_FIELD_PATTERN), 0, 0, 1, 1},
{0, __pyx_k_Fast_URI_router_which_compiles_i, sizeof(__pyx_k_Fast_URI_router_which_compiles_i), 0, 0, 1, 0},
@@ -22430,31 +22968,49 @@ static __Pyx_StringTabEntry __pyx_string_tab[] = {
{0, __pyx_k_Field_names_must_be_valid_identi, sizeof(__pyx_k_Field_names_must_be_valid_identi), 0, 1, 0, 0},
{0, __pyx_k_IDENTIFIER_PATTERN, sizeof(__pyx_k_IDENTIFIER_PATTERN), 0, 0, 1, 1},
{0, __pyx_k_Invalid_converter_name_Names_may, sizeof(__pyx_k_Invalid_converter_name_Names_may), 0, 1, 0, 0},
+ {0, __pyx_k_List, sizeof(__pyx_k_List), 0, 0, 1, 1},
+ {0, __pyx_k_List_CompiledRouterNode, sizeof(__pyx_k_List_CompiledRouterNode), 0, 0, 1, 0},
+ {0, __pyx_k_List_Pattern, sizeof(__pyx_k_List_Pattern), 0, 0, 1, 0},
+ {0, __pyx_k_List__CxElement, sizeof(__pyx_k_List__CxElement), 0, 0, 1, 0},
{0, __pyx_k_Lock, sizeof(__pyx_k_Lock), 0, 0, 1, 1},
{0, __pyx_k_Missing_converter_for_field_0, sizeof(__pyx_k_Missing_converter_for_field_0), 0, 1, 0, 0},
+ {0, __pyx_k_None, sizeof(__pyx_k_None), 0, 0, 1, 1},
+ {0, __pyx_k_NotImplementedError, sizeof(__pyx_k_NotImplementedError), 0, 0, 1, 1},
+ {0, __pyx_k_Optional, sizeof(__pyx_k_Optional), 0, 0, 1, 1},
+ {0, __pyx_k_Optional_Request, sizeof(__pyx_k_Optional_Request), 0, 0, 1, 0},
+ {0, __pyx_k_Optional_dict, sizeof(__pyx_k_Optional_dict), 0, 0, 1, 0},
+ {0, __pyx_k_Optional_object, sizeof(__pyx_k_Optional_object), 0, 0, 1, 0},
+ {0, __pyx_k_Optional_str, sizeof(__pyx_k_Optional_str), 0, 0, 1, 0},
{0, __pyx_k_P_2, sizeof(__pyx_k_P_2), 0, 1, 0, 0},
{0, __pyx_k_P_fname_P_cname_sep_P_cname_P_a, sizeof(__pyx_k_P_fname_P_cname_sep_P_cname_P_a), 0, 1, 0, 0},
+ {0, __pyx_k_Pattern, sizeof(__pyx_k_Pattern), 0, 0, 1, 1},
{0, __pyx_k_Represents_a_single_URI_segment, sizeof(__pyx_k_Represents_a_single_URI_segment), 0, 0, 1, 0},
+ {0, __pyx_k_Request, sizeof(__pyx_k_Request), 0, 0, 1, 1},
+ {0, __pyx_k_Set, sizeof(__pyx_k_Set), 0, 0, 1, 1},
+ {0, __pyx_k_Set_str, sizeof(__pyx_k_Set_str), 0, 0, 1, 0},
{0, __pyx_k_TAB_STR, sizeof(__pyx_k_TAB_STR), 0, 0, 1, 1},
+ {0, __pyx_k_TYPE_CHECKING, sizeof(__pyx_k_TYPE_CHECKING), 0, 0, 1, 1},
{0, __pyx_k_The_URI_template_for_this_route, sizeof(__pyx_k_The_URI_template_for_this_route), 0, 1, 0, 0},
{0, __pyx_k_The_responder_must_be_a_non_bloc, sizeof(__pyx_k_The_responder_must_be_a_non_bloc), 0, 1, 0, 0},
{0, __pyx_k_The_responder_must_be_a_regular, sizeof(__pyx_k_The_responder_must_be_a_regular), 0, 1, 0, 0},
{0, __pyx_k_TypeError, sizeof(__pyx_k_TypeError), 0, 0, 1, 1},
{0, __pyx_k_URI_templates_may_not_include_wh, sizeof(__pyx_k_URI_templates_may_not_include_wh), 0, 1, 0, 0},
+ {0, __pyx_k_Union, sizeof(__pyx_k_Union), 0, 0, 1, 1},
{0, __pyx_k_Unknown_converter_0, sizeof(__pyx_k_Unknown_converter_0), 0, 1, 0, 0},
{0, __pyx_k_UserDict, sizeof(__pyx_k_UserDict), 0, 0, 1, 1},
{0, __pyx_k_ValueError, sizeof(__pyx_k_ValueError), 0, 0, 1, 1},
{0, __pyx_k__10, sizeof(__pyx_k__10), 0, 1, 0, 0},
{0, __pyx_k__11, sizeof(__pyx_k__11), 0, 1, 0, 0},
{0, __pyx_k__12, sizeof(__pyx_k__12), 0, 1, 0, 0},
- {0, __pyx_k__131, sizeof(__pyx_k__131), 0, 0, 1, 1},
- {0, __pyx_k__14, sizeof(__pyx_k__14), 0, 1, 0, 0},
+ {0, __pyx_k__13, sizeof(__pyx_k__13), 0, 1, 0, 0},
+ {0, __pyx_k__135, sizeof(__pyx_k__135), 0, 0, 1, 1},
{0, __pyx_k__15, sizeof(__pyx_k__15), 0, 1, 0, 0},
{0, __pyx_k__16, sizeof(__pyx_k__16), 0, 1, 0, 0},
- {0, __pyx_k__18, sizeof(__pyx_k__18), 0, 0, 1, 1},
- {0, __pyx_k__19, sizeof(__pyx_k__19), 0, 1, 0, 0},
- {0, __pyx_k__42, sizeof(__pyx_k__42), 0, 0, 1, 1},
- {0, __pyx_k__9, sizeof(__pyx_k__9), 0, 1, 0, 0},
+ {0, __pyx_k__17, sizeof(__pyx_k__17), 0, 1, 0, 0},
+ {0, __pyx_k__19, sizeof(__pyx_k__19), 0, 0, 1, 1},
+ {0, __pyx_k__2, sizeof(__pyx_k__2), 0, 1, 0, 0},
+ {0, __pyx_k__21, sizeof(__pyx_k__21), 0, 1, 0, 0},
+ {0, __pyx_k__44, sizeof(__pyx_k__44), 0, 0, 1, 1},
{0, __pyx_k_add, sizeof(__pyx_k_add), 0, 0, 1, 1},
{0, __pyx_k_add_route, sizeof(__pyx_k_add_route), 0, 0, 1, 1},
{0, __pyx_k_append, sizeof(__pyx_k_append), 0, 0, 1, 1},
@@ -22467,6 +23023,7 @@ static __Pyx_StringTabEntry __pyx_string_tab[] = {
{0, __pyx_k_ast, sizeof(__pyx_k_ast), 0, 0, 1, 1},
{0, __pyx_k_ast, sizeof(__pyx_k_ast), 0, 1, 0, 1},
{0, __pyx_k_asyncio_coroutines, sizeof(__pyx_k_asyncio_coroutines), 0, 0, 1, 1},
+ {0, __pyx_k_bool, sizeof(__pyx_k_bool), 0, 0, 1, 1},
{0, __pyx_k_builtins, sizeof(__pyx_k_builtins), 0, 0, 1, 1},
{0, __pyx_k_child, sizeof(__pyx_k_child), 0, 0, 1, 1},
{0, __pyx_k_children, sizeof(__pyx_k_children), 0, 0, 1, 1},
@@ -22502,9 +23059,16 @@ static __Pyx_StringTabEntry __pyx_string_tab[] = {
{0, __pyx_k_converters_2, sizeof(__pyx_k_converters_2), 0, 0, 1, 1},
{0, __pyx_k_converters_2, sizeof(__pyx_k_converters_2), 0, 1, 0, 1},
{0, __pyx_k_copy, sizeof(__pyx_k_copy), 0, 0, 1, 1},
+ {0, __pyx_k_cx_converter, sizeof(__pyx_k_cx_converter), 0, 0, 1, 1},
+ {0, __pyx_k_cx_literal, sizeof(__pyx_k_cx_literal), 0, 0, 1, 1},
+ {0, __pyx_k_cx_path_len, sizeof(__pyx_k_cx_path_len), 0, 0, 1, 1},
+ {0, __pyx_k_cx_pattern, sizeof(__pyx_k_cx_pattern), 0, 0, 1, 1},
+ {0, __pyx_k_cx_pattern_match, sizeof(__pyx_k_cx_pattern_match), 0, 0, 1, 1},
+ {0, __pyx_k_cx_segment, sizeof(__pyx_k_cx_segment), 0, 0, 1, 1},
{0, __pyx_k_data, sizeof(__pyx_k_data), 0, 0, 1, 1},
{0, __pyx_k_def_find_path_return_values_patt, sizeof(__pyx_k_def_find_path_return_values_patt), 0, 1, 0, 0},
{0, __pyx_k_dict, sizeof(__pyx_k_dict), 0, 0, 1, 1},
+ {0, __pyx_k_dict_2, sizeof(__pyx_k_dict_2), 0, 0, 1, 1},
{0, __pyx_k_dict_groups__0, sizeof(__pyx_k_dict_groups__0), 0, 1, 0, 0},
{0, __pyx_k_dict_match__0, sizeof(__pyx_k_dict_match__0), 0, 1, 0, 0},
{0, __pyx_k_dict_value_name, sizeof(__pyx_k_dict_value_name), 0, 0, 1, 1},
@@ -22519,6 +23083,7 @@ static __Pyx_StringTabEntry __pyx_string_tab[] = {
{0, __pyx_k_eval, sizeof(__pyx_k_eval), 0, 0, 1, 1},
{0, __pyx_k_exec, sizeof(__pyx_k_exec), 0, 1, 0, 1},
{0, __pyx_k_exit, sizeof(__pyx_k_exit), 0, 0, 1, 1},
+ {0, __pyx_k_falcon_request, sizeof(__pyx_k_falcon_request), 0, 0, 1, 1},
{0, __pyx_k_falcon_routing, sizeof(__pyx_k_falcon_routing), 0, 0, 1, 1},
{0, __pyx_k_falcon_routing_compiled, sizeof(__pyx_k_falcon_routing_compiled), 0, 0, 1, 1},
{0, __pyx_k_falcon_routing_compiled_py, sizeof(__pyx_k_falcon_routing_compiled_py), 0, 0, 1, 0},
@@ -22561,6 +23126,7 @@ static __Pyx_StringTabEntry __pyx_string_tab[] = {
{0, __pyx_k_insert, sizeof(__pyx_k_insert), 0, 0, 1, 1},
{0, __pyx_k_inspect, sizeof(__pyx_k_inspect), 0, 0, 1, 1},
{0, __pyx_k_instantiate_converter, sizeof(__pyx_k_instantiate_converter), 0, 0, 1, 1},
+ {0, __pyx_k_int, sizeof(__pyx_k_int), 0, 0, 1, 1},
{0, __pyx_k_is_complex, sizeof(__pyx_k_is_complex), 0, 0, 1, 1},
{0, __pyx_k_is_coroutine, sizeof(__pyx_k_is_coroutine), 0, 0, 1, 1},
{0, __pyx_k_is_identifier, sizeof(__pyx_k_is_identifier), 0, 0, 1, 1},
@@ -22580,7 +23146,6 @@ static __Pyx_StringTabEntry __pyx_string_tab[] = {
{0, __pyx_k_let, sizeof(__pyx_k_let), 0, 0, 1, 1},
{0, __pyx_k_level, sizeof(__pyx_k_level), 0, 0, 1, 1},
{0, __pyx_k_lines, sizeof(__pyx_k_lines), 0, 0, 1, 1},
- {0, __pyx_k_list, sizeof(__pyx_k_list), 0, 0, 1, 1},
{0, __pyx_k_literal, sizeof(__pyx_k_literal), 0, 0, 1, 1},
{0, __pyx_k_literal_2, sizeof(__pyx_k_literal_2), 0, 0, 1, 1},
{0, __pyx_k_lstrip, sizeof(__pyx_k_lstrip), 0, 0, 1, 1},
@@ -22604,6 +23169,7 @@ static __Pyx_StringTabEntry __pyx_string_tab[] = {
{0, __pyx_k_node_2, sizeof(__pyx_k_node_2), 0, 0, 1, 1},
{0, __pyx_k_nodes, sizeof(__pyx_k_nodes), 0, 0, 1, 1},
{0, __pyx_k_num_fields, sizeof(__pyx_k_num_fields), 0, 0, 1, 1},
+ {0, __pyx_k_object, sizeof(__pyx_k_object), 0, 0, 1, 1},
{0, __pyx_k_options, sizeof(__pyx_k_options), 0, 0, 1, 1},
{0, __pyx_k_options, sizeof(__pyx_k_options), 0, 1, 0, 1},
{0, __pyx_k_options_2, sizeof(__pyx_k_options_2), 0, 0, 1, 1},
@@ -22637,6 +23203,7 @@ static __Pyx_StringTabEntry __pyx_string_tab[] = {
{0, __pyx_k_resource, sizeof(__pyx_k_resource), 0, 0, 1, 1},
{0, __pyx_k_resource_idx, sizeof(__pyx_k_resource_idx), 0, 0, 1, 1},
{0, __pyx_k_responder, sizeof(__pyx_k_responder), 0, 0, 1, 1},
+ {0, __pyx_k_return, sizeof(__pyx_k_return), 0, 0, 1, 1},
{0, __pyx_k_return_None, sizeof(__pyx_k_return_None), 0, 1, 0, 0},
{0, __pyx_k_return_values, sizeof(__pyx_k_return_values), 0, 0, 1, 1},
{0, __pyx_k_return_values, sizeof(__pyx_k_return_values), 0, 1, 0, 1},
@@ -22654,7 +23221,6 @@ static __Pyx_StringTabEntry __pyx_string_tab[] = {
{0, __pyx_k_set_default_responders, sizeof(__pyx_k_set_default_responders), 0, 0, 1, 1},
{0, __pyx_k_set_name, sizeof(__pyx_k_set_name), 0, 0, 1, 1},
{0, __pyx_k_setitem, sizeof(__pyx_k_setitem), 0, 0, 1, 1},
- {0, __pyx_k_setter, sizeof(__pyx_k_setter), 0, 0, 1, 1},
{0, __pyx_k_should_wrap_non_coroutines, sizeof(__pyx_k_should_wrap_non_coroutines), 0, 0, 1, 1},
{0, __pyx_k_slots, sizeof(__pyx_k_slots), 0, 0, 1, 1},
{0, __pyx_k_sorted, sizeof(__pyx_k_sorted), 0, 0, 1, 1},
@@ -22663,6 +23229,7 @@ static __Pyx_StringTabEntry __pyx_string_tab[] = {
{0, __pyx_k_split, sizeof(__pyx_k_split), 0, 0, 1, 1},
{0, __pyx_k_src, sizeof(__pyx_k_src), 0, 0, 1, 1},
{0, __pyx_k_src_lines, sizeof(__pyx_k_src_lines), 0, 0, 1, 1},
+ {0, __pyx_k_str, sizeof(__pyx_k_str), 0, 0, 1, 1},
{0, __pyx_k_string, sizeof(__pyx_k_string), 0, 1, 0, 0},
{0, __pyx_k_sub, sizeof(__pyx_k_sub), 0, 0, 1, 1},
{0, __pyx_k_suffix, sizeof(__pyx_k_suffix), 0, 0, 1, 1},
@@ -22672,6 +23239,7 @@ static __Pyx_StringTabEntry __pyx_string_tab[] = {
{0, __pyx_k_test, sizeof(__pyx_k_test), 0, 0, 1, 1},
{0, __pyx_k_threading, sizeof(__pyx_k_threading), 0, 0, 1, 1},
{0, __pyx_k_throw, sizeof(__pyx_k_throw), 0, 0, 1, 1},
+ {0, __pyx_k_typing, sizeof(__pyx_k_typing), 0, 0, 1, 1},
{0, __pyx_k_unique_idx, sizeof(__pyx_k_unique_idx), 0, 0, 1, 1},
{0, __pyx_k_unique_idx_2, sizeof(__pyx_k_unique_idx_2), 0, 0, 1, 1},
{0, __pyx_k_update, sizeof(__pyx_k_update), 0, 0, 1, 1},
@@ -22709,9 +23277,12 @@ static __Pyx_StringTabEntry __pyx_string_tab[] = {
{&__pyx_kp_u_0_return_return_values_1, __pyx_k_0_return_return_values_1, sizeof(__pyx_k_0_return_return_values_1), 0, 1, 0, 0},
{&__pyx_kp_u_A_Za_z__A_Za_z0_9, __pyx_k_A_Za_z__A_Za_z0_9, sizeof(__pyx_k_A_Za_z__A_Za_z0_9), 0, 1, 0, 0},
{&__pyx_kp_s_A_dict_like_class_for_storing_fi, __pyx_k_A_dict_like_class_for_storing_fi, sizeof(__pyx_k_A_dict_like_class_for_storing_fi), 0, 0, 1, 0},
+ {&__pyx_n_s_Any, __pyx_k_Any, sizeof(__pyx_k_Any), 0, 0, 1, 1},
{&__pyx_n_s_AssertionError, __pyx_k_AssertionError, sizeof(__pyx_k_AssertionError), 0, 0, 1, 1},
{&__pyx_n_s_AttributeError, __pyx_k_AttributeError, sizeof(__pyx_k_AttributeError), 0, 0, 1, 1},
{&__pyx_n_s_BUILTIN, __pyx_k_BUILTIN, sizeof(__pyx_k_BUILTIN), 0, 0, 1, 1},
+ {&__pyx_n_s_Callable, __pyx_k_Callable, sizeof(__pyx_k_Callable), 0, 0, 1, 1},
+ {&__pyx_kp_s_Callable_2, __pyx_k_Callable_2, sizeof(__pyx_k_Callable_2), 0, 0, 1, 0},
{&__pyx_kp_u_Cannot_instantiate_converter, __pyx_k_Cannot_instantiate_converter, sizeof(__pyx_k_Cannot_instantiate_converter), 0, 1, 0, 0},
{&__pyx_n_s_CompiledRouter, __pyx_k_CompiledRouter, sizeof(__pyx_k_CompiledRouter), 0, 0, 1, 1},
{&__pyx_n_s_CompiledRouterNode, __pyx_k_CompiledRouterNode, sizeof(__pyx_k_CompiledRouterNode), 0, 0, 1, 1},
@@ -22720,6 +23291,7 @@ static __Pyx_StringTabEntry __pyx_string_tab[] = {
{&__pyx_n_s_CompiledRouterNode_conflicts_wit, __pyx_k_CompiledRouterNode_conflicts_wit, sizeof(__pyx_k_CompiledRouterNode_conflicts_wit), 0, 0, 1, 1},
{&__pyx_n_s_CompiledRouterNode_matches, __pyx_k_CompiledRouterNode_matches, sizeof(__pyx_k_CompiledRouterNode_matches), 0, 0, 1, 1},
{&__pyx_n_s_CompiledRouterOptions, __pyx_k_CompiledRouterOptions, sizeof(__pyx_k_CompiledRouterOptions), 0, 0, 1, 1},
+ {&__pyx_kp_s_CompiledRouterOptions_2, __pyx_k_CompiledRouterOptions_2, sizeof(__pyx_k_CompiledRouterOptions_2), 0, 0, 1, 0},
{&__pyx_n_s_CompiledRouterOptions___init, __pyx_k_CompiledRouterOptions___init, sizeof(__pyx_k_CompiledRouterOptions___init), 0, 0, 1, 1},
{&__pyx_n_s_CompiledRouterOptions___init___l, __pyx_k_CompiledRouterOptions___init___l, sizeof(__pyx_k_CompiledRouterOptions___init___l), 0, 0, 1, 1},
{&__pyx_n_s_CompiledRouter___init, __pyx_k_CompiledRouter___init, sizeof(__pyx_k_CompiledRouter___init), 0, 0, 1, 1},
@@ -22743,6 +23315,11 @@ static __Pyx_StringTabEntry __pyx_string_tab[] = {
{&__pyx_n_s_ConverterDict___setitem, __pyx_k_ConverterDict___setitem, sizeof(__pyx_k_ConverterDict___setitem), 0, 0, 1, 1},
{&__pyx_n_s_ConverterDict__validate, __pyx_k_ConverterDict__validate, sizeof(__pyx_k_ConverterDict__validate), 0, 0, 1, 1},
{&__pyx_n_s_ConverterDict_update, __pyx_k_ConverterDict_update, sizeof(__pyx_k_ConverterDict_update), 0, 0, 1, 1},
+ {&__pyx_n_s_CxChild, __pyx_k_CxChild, sizeof(__pyx_k_CxChild), 0, 0, 1, 1},
+ {&__pyx_n_u_CxChild, __pyx_k_CxChild, sizeof(__pyx_k_CxChild), 0, 1, 0, 1},
+ {&__pyx_n_s_CxChild_src, __pyx_k_CxChild_src, sizeof(__pyx_k_CxChild_src), 0, 0, 1, 1},
+ {&__pyx_n_s_CxElement, __pyx_k_CxElement, sizeof(__pyx_k_CxElement), 0, 0, 1, 1},
+ {&__pyx_kp_s_CxElement_2, __pyx_k_CxElement_2, sizeof(__pyx_k_CxElement_2), 0, 0, 1, 0},
{&__pyx_n_s_CxIfConverterField, __pyx_k_CxIfConverterField, sizeof(__pyx_k_CxIfConverterField), 0, 0, 1, 1},
{&__pyx_n_s_CxIfConverterField___init, __pyx_k_CxIfConverterField___init, sizeof(__pyx_k_CxIfConverterField___init), 0, 0, 1, 1},
{&__pyx_n_s_CxIfConverterField_src, __pyx_k_CxIfConverterField_src, sizeof(__pyx_k_CxIfConverterField_src), 0, 0, 1, 1},
@@ -22756,6 +23333,8 @@ static __Pyx_StringTabEntry __pyx_string_tab[] = {
{&__pyx_n_s_CxIfPathSegmentPattern___init, __pyx_k_CxIfPathSegmentPattern___init, sizeof(__pyx_k_CxIfPathSegmentPattern___init), 0, 0, 1, 1},
{&__pyx_n_s_CxIfPathSegmentPattern_src, __pyx_k_CxIfPathSegmentPattern_src, sizeof(__pyx_k_CxIfPathSegmentPattern_src), 0, 0, 1, 1},
{&__pyx_n_s_CxParent, __pyx_k_CxParent, sizeof(__pyx_k_CxParent), 0, 0, 1, 1},
+ {&__pyx_n_u_CxParent, __pyx_k_CxParent, sizeof(__pyx_k_CxParent), 0, 1, 0, 1},
+ {&__pyx_kp_s_CxParent_2, __pyx_k_CxParent_2, sizeof(__pyx_k_CxParent_2), 0, 0, 1, 0},
{&__pyx_n_s_CxParent___init, __pyx_k_CxParent___init, sizeof(__pyx_k_CxParent___init), 0, 0, 1, 1},
{&__pyx_n_s_CxParent__children_src, __pyx_k_CxParent__children_src, sizeof(__pyx_k_CxParent__children_src), 0, 0, 1, 1},
{&__pyx_n_s_CxParent_append_child, __pyx_k_CxParent_append_child, sizeof(__pyx_k_CxParent_append_child), 0, 0, 1, 1},
@@ -22789,6 +23368,7 @@ static __Pyx_StringTabEntry __pyx_string_tab[] = {
{&__pyx_n_s_CxVariableFromPatternMatch___in, __pyx_k_CxVariableFromPatternMatch___in, sizeof(__pyx_k_CxVariableFromPatternMatch___in), 0, 0, 1, 1},
{&__pyx_n_s_CxVariableFromPatternMatch_src, __pyx_k_CxVariableFromPatternMatch_src, sizeof(__pyx_k_CxVariableFromPatternMatch_src), 0, 0, 1, 1},
{&__pyx_kp_s_Defines_a_set_of_configurable_ro, __pyx_k_Defines_a_set_of_configurable_ro, sizeof(__pyx_k_Defines_a_set_of_configurable_ro), 0, 0, 1, 0},
+ {&__pyx_n_s_Dict, __pyx_k_Dict, sizeof(__pyx_k_Dict), 0, 0, 1, 1},
{&__pyx_kp_u_FIELD, __pyx_k_FIELD, sizeof(__pyx_k_FIELD), 0, 1, 0, 0},
{&__pyx_n_s_FIELD_PATTERN, __pyx_k_FIELD_PATTERN, sizeof(__pyx_k_FIELD_PATTERN), 0, 0, 1, 1},
{&__pyx_kp_s_Fast_URI_router_which_compiles_i, __pyx_k_Fast_URI_router_which_compiles_i, sizeof(__pyx_k_Fast_URI_router_which_compiles_i), 0, 0, 1, 0},
@@ -22796,31 +23376,49 @@ static __Pyx_StringTabEntry __pyx_string_tab[] = {
{&__pyx_kp_u_Field_names_must_be_valid_identi, __pyx_k_Field_names_must_be_valid_identi, sizeof(__pyx_k_Field_names_must_be_valid_identi), 0, 1, 0, 0},
{&__pyx_n_s_IDENTIFIER_PATTERN, __pyx_k_IDENTIFIER_PATTERN, sizeof(__pyx_k_IDENTIFIER_PATTERN), 0, 0, 1, 1},
{&__pyx_kp_u_Invalid_converter_name_Names_may, __pyx_k_Invalid_converter_name_Names_may, sizeof(__pyx_k_Invalid_converter_name_Names_may), 0, 1, 0, 0},
+ {&__pyx_n_s_List, __pyx_k_List, sizeof(__pyx_k_List), 0, 0, 1, 1},
+ {&__pyx_kp_s_List_CompiledRouterNode, __pyx_k_List_CompiledRouterNode, sizeof(__pyx_k_List_CompiledRouterNode), 0, 0, 1, 0},
+ {&__pyx_kp_s_List_Pattern, __pyx_k_List_Pattern, sizeof(__pyx_k_List_Pattern), 0, 0, 1, 0},
+ {&__pyx_kp_s_List__CxElement, __pyx_k_List__CxElement, sizeof(__pyx_k_List__CxElement), 0, 0, 1, 0},
{&__pyx_n_s_Lock, __pyx_k_Lock, sizeof(__pyx_k_Lock), 0, 0, 1, 1},
{&__pyx_kp_u_Missing_converter_for_field_0, __pyx_k_Missing_converter_for_field_0, sizeof(__pyx_k_Missing_converter_for_field_0), 0, 1, 0, 0},
+ {&__pyx_n_s_None, __pyx_k_None, sizeof(__pyx_k_None), 0, 0, 1, 1},
+ {&__pyx_n_s_NotImplementedError, __pyx_k_NotImplementedError, sizeof(__pyx_k_NotImplementedError), 0, 0, 1, 1},
+ {&__pyx_n_s_Optional, __pyx_k_Optional, sizeof(__pyx_k_Optional), 0, 0, 1, 1},
+ {&__pyx_kp_s_Optional_Request, __pyx_k_Optional_Request, sizeof(__pyx_k_Optional_Request), 0, 0, 1, 0},
+ {&__pyx_kp_s_Optional_dict, __pyx_k_Optional_dict, sizeof(__pyx_k_Optional_dict), 0, 0, 1, 0},
+ {&__pyx_kp_s_Optional_object, __pyx_k_Optional_object, sizeof(__pyx_k_Optional_object), 0, 0, 1, 0},
+ {&__pyx_kp_s_Optional_str, __pyx_k_Optional_str, sizeof(__pyx_k_Optional_str), 0, 0, 1, 0},
{&__pyx_kp_u_P_2, __pyx_k_P_2, sizeof(__pyx_k_P_2), 0, 1, 0, 0},
{&__pyx_kp_u_P_fname_P_cname_sep_P_cname_P_a, __pyx_k_P_fname_P_cname_sep_P_cname_P_a, sizeof(__pyx_k_P_fname_P_cname_sep_P_cname_P_a), 0, 1, 0, 0},
+ {&__pyx_n_s_Pattern, __pyx_k_Pattern, sizeof(__pyx_k_Pattern), 0, 0, 1, 1},
{&__pyx_kp_s_Represents_a_single_URI_segment, __pyx_k_Represents_a_single_URI_segment, sizeof(__pyx_k_Represents_a_single_URI_segment), 0, 0, 1, 0},
+ {&__pyx_n_s_Request, __pyx_k_Request, sizeof(__pyx_k_Request), 0, 0, 1, 1},
+ {&__pyx_n_s_Set, __pyx_k_Set, sizeof(__pyx_k_Set), 0, 0, 1, 1},
+ {&__pyx_kp_s_Set_str, __pyx_k_Set_str, sizeof(__pyx_k_Set_str), 0, 0, 1, 0},
{&__pyx_n_s_TAB_STR, __pyx_k_TAB_STR, sizeof(__pyx_k_TAB_STR), 0, 0, 1, 1},
+ {&__pyx_n_s_TYPE_CHECKING, __pyx_k_TYPE_CHECKING, sizeof(__pyx_k_TYPE_CHECKING), 0, 0, 1, 1},
{&__pyx_kp_u_The_URI_template_for_this_route, __pyx_k_The_URI_template_for_this_route, sizeof(__pyx_k_The_URI_template_for_this_route), 0, 1, 0, 0},
{&__pyx_kp_u_The_responder_must_be_a_non_bloc, __pyx_k_The_responder_must_be_a_non_bloc, sizeof(__pyx_k_The_responder_must_be_a_non_bloc), 0, 1, 0, 0},
{&__pyx_kp_u_The_responder_must_be_a_regular, __pyx_k_The_responder_must_be_a_regular, sizeof(__pyx_k_The_responder_must_be_a_regular), 0, 1, 0, 0},
{&__pyx_n_s_TypeError, __pyx_k_TypeError, sizeof(__pyx_k_TypeError), 0, 0, 1, 1},
{&__pyx_kp_u_URI_templates_may_not_include_wh, __pyx_k_URI_templates_may_not_include_wh, sizeof(__pyx_k_URI_templates_may_not_include_wh), 0, 1, 0, 0},
+ {&__pyx_n_s_Union, __pyx_k_Union, sizeof(__pyx_k_Union), 0, 0, 1, 1},
{&__pyx_kp_u_Unknown_converter_0, __pyx_k_Unknown_converter_0, sizeof(__pyx_k_Unknown_converter_0), 0, 1, 0, 0},
{&__pyx_n_s_UserDict, __pyx_k_UserDict, sizeof(__pyx_k_UserDict), 0, 0, 1, 1},
{&__pyx_n_s_ValueError, __pyx_k_ValueError, sizeof(__pyx_k_ValueError), 0, 0, 1, 1},
{&__pyx_kp_u__10, __pyx_k__10, sizeof(__pyx_k__10), 0, 1, 0, 0},
{&__pyx_kp_u__11, __pyx_k__11, sizeof(__pyx_k__11), 0, 1, 0, 0},
{&__pyx_kp_u__12, __pyx_k__12, sizeof(__pyx_k__12), 0, 1, 0, 0},
- {&__pyx_n_s__131, __pyx_k__131, sizeof(__pyx_k__131), 0, 0, 1, 1},
- {&__pyx_kp_u__14, __pyx_k__14, sizeof(__pyx_k__14), 0, 1, 0, 0},
+ {&__pyx_kp_u__13, __pyx_k__13, sizeof(__pyx_k__13), 0, 1, 0, 0},
+ {&__pyx_n_s__135, __pyx_k__135, sizeof(__pyx_k__135), 0, 0, 1, 1},
{&__pyx_kp_u__15, __pyx_k__15, sizeof(__pyx_k__15), 0, 1, 0, 0},
{&__pyx_kp_u__16, __pyx_k__16, sizeof(__pyx_k__16), 0, 1, 0, 0},
- {&__pyx_n_s__18, __pyx_k__18, sizeof(__pyx_k__18), 0, 0, 1, 1},
- {&__pyx_kp_u__19, __pyx_k__19, sizeof(__pyx_k__19), 0, 1, 0, 0},
- {&__pyx_n_s__42, __pyx_k__42, sizeof(__pyx_k__42), 0, 0, 1, 1},
- {&__pyx_kp_u__9, __pyx_k__9, sizeof(__pyx_k__9), 0, 1, 0, 0},
+ {&__pyx_kp_u__17, __pyx_k__17, sizeof(__pyx_k__17), 0, 1, 0, 0},
+ {&__pyx_n_s__19, __pyx_k__19, sizeof(__pyx_k__19), 0, 0, 1, 1},
+ {&__pyx_kp_u__2, __pyx_k__2, sizeof(__pyx_k__2), 0, 1, 0, 0},
+ {&__pyx_kp_u__21, __pyx_k__21, sizeof(__pyx_k__21), 0, 1, 0, 0},
+ {&__pyx_n_s__44, __pyx_k__44, sizeof(__pyx_k__44), 0, 0, 1, 1},
{&__pyx_n_s_add, __pyx_k_add, sizeof(__pyx_k_add), 0, 0, 1, 1},
{&__pyx_n_s_add_route, __pyx_k_add_route, sizeof(__pyx_k_add_route), 0, 0, 1, 1},
{&__pyx_n_s_append, __pyx_k_append, sizeof(__pyx_k_append), 0, 0, 1, 1},
@@ -22833,6 +23431,7 @@ static __Pyx_StringTabEntry __pyx_string_tab[] = {
{&__pyx_n_s_ast, __pyx_k_ast, sizeof(__pyx_k_ast), 0, 0, 1, 1},
{&__pyx_n_u_ast, __pyx_k_ast, sizeof(__pyx_k_ast), 0, 1, 0, 1},
{&__pyx_n_s_asyncio_coroutines, __pyx_k_asyncio_coroutines, sizeof(__pyx_k_asyncio_coroutines), 0, 0, 1, 1},
+ {&__pyx_n_s_bool, __pyx_k_bool, sizeof(__pyx_k_bool), 0, 0, 1, 1},
{&__pyx_n_s_builtins, __pyx_k_builtins, sizeof(__pyx_k_builtins), 0, 0, 1, 1},
{&__pyx_n_s_child, __pyx_k_child, sizeof(__pyx_k_child), 0, 0, 1, 1},
{&__pyx_n_s_children, __pyx_k_children, sizeof(__pyx_k_children), 0, 0, 1, 1},
@@ -22868,9 +23467,16 @@ static __Pyx_StringTabEntry __pyx_string_tab[] = {
{&__pyx_n_s_converters_2, __pyx_k_converters_2, sizeof(__pyx_k_converters_2), 0, 0, 1, 1},
{&__pyx_n_u_converters_2, __pyx_k_converters_2, sizeof(__pyx_k_converters_2), 0, 1, 0, 1},
{&__pyx_n_s_copy, __pyx_k_copy, sizeof(__pyx_k_copy), 0, 0, 1, 1},
+ {&__pyx_n_s_cx_converter, __pyx_k_cx_converter, sizeof(__pyx_k_cx_converter), 0, 0, 1, 1},
+ {&__pyx_n_s_cx_literal, __pyx_k_cx_literal, sizeof(__pyx_k_cx_literal), 0, 0, 1, 1},
+ {&__pyx_n_s_cx_path_len, __pyx_k_cx_path_len, sizeof(__pyx_k_cx_path_len), 0, 0, 1, 1},
+ {&__pyx_n_s_cx_pattern, __pyx_k_cx_pattern, sizeof(__pyx_k_cx_pattern), 0, 0, 1, 1},
+ {&__pyx_n_s_cx_pattern_match, __pyx_k_cx_pattern_match, sizeof(__pyx_k_cx_pattern_match), 0, 0, 1, 1},
+ {&__pyx_n_s_cx_segment, __pyx_k_cx_segment, sizeof(__pyx_k_cx_segment), 0, 0, 1, 1},
{&__pyx_n_s_data, __pyx_k_data, sizeof(__pyx_k_data), 0, 0, 1, 1},
{&__pyx_kp_u_def_find_path_return_values_patt, __pyx_k_def_find_path_return_values_patt, sizeof(__pyx_k_def_find_path_return_values_patt), 0, 1, 0, 0},
{&__pyx_n_s_dict, __pyx_k_dict, sizeof(__pyx_k_dict), 0, 0, 1, 1},
+ {&__pyx_n_s_dict_2, __pyx_k_dict_2, sizeof(__pyx_k_dict_2), 0, 0, 1, 1},
{&__pyx_kp_u_dict_groups__0, __pyx_k_dict_groups__0, sizeof(__pyx_k_dict_groups__0), 0, 1, 0, 0},
{&__pyx_kp_u_dict_match__0, __pyx_k_dict_match__0, sizeof(__pyx_k_dict_match__0), 0, 1, 0, 0},
{&__pyx_n_s_dict_value_name, __pyx_k_dict_value_name, sizeof(__pyx_k_dict_value_name), 0, 0, 1, 1},
@@ -22885,6 +23491,7 @@ static __Pyx_StringTabEntry __pyx_string_tab[] = {
{&__pyx_n_s_eval, __pyx_k_eval, sizeof(__pyx_k_eval), 0, 0, 1, 1},
{&__pyx_n_u_exec, __pyx_k_exec, sizeof(__pyx_k_exec), 0, 1, 0, 1},
{&__pyx_n_s_exit, __pyx_k_exit, sizeof(__pyx_k_exit), 0, 0, 1, 1},
+ {&__pyx_n_s_falcon_request, __pyx_k_falcon_request, sizeof(__pyx_k_falcon_request), 0, 0, 1, 1},
{&__pyx_n_s_falcon_routing, __pyx_k_falcon_routing, sizeof(__pyx_k_falcon_routing), 0, 0, 1, 1},
{&__pyx_n_s_falcon_routing_compiled, __pyx_k_falcon_routing_compiled, sizeof(__pyx_k_falcon_routing_compiled), 0, 0, 1, 1},
{&__pyx_kp_s_falcon_routing_compiled_py, __pyx_k_falcon_routing_compiled_py, sizeof(__pyx_k_falcon_routing_compiled_py), 0, 0, 1, 0},
@@ -22927,6 +23534,7 @@ static __Pyx_StringTabEntry __pyx_string_tab[] = {
{&__pyx_n_s_insert, __pyx_k_insert, sizeof(__pyx_k_insert), 0, 0, 1, 1},
{&__pyx_n_s_inspect, __pyx_k_inspect, sizeof(__pyx_k_inspect), 0, 0, 1, 1},
{&__pyx_n_s_instantiate_converter, __pyx_k_instantiate_converter, sizeof(__pyx_k_instantiate_converter), 0, 0, 1, 1},
+ {&__pyx_n_s_int, __pyx_k_int, sizeof(__pyx_k_int), 0, 0, 1, 1},
{&__pyx_n_s_is_complex, __pyx_k_is_complex, sizeof(__pyx_k_is_complex), 0, 0, 1, 1},
{&__pyx_n_s_is_coroutine, __pyx_k_is_coroutine, sizeof(__pyx_k_is_coroutine), 0, 0, 1, 1},
{&__pyx_n_s_is_identifier, __pyx_k_is_identifier, sizeof(__pyx_k_is_identifier), 0, 0, 1, 1},
@@ -22946,7 +23554,6 @@ static __Pyx_StringTabEntry __pyx_string_tab[] = {
{&__pyx_n_s_let, __pyx_k_let, sizeof(__pyx_k_let), 0, 0, 1, 1},
{&__pyx_n_s_level, __pyx_k_level, sizeof(__pyx_k_level), 0, 0, 1, 1},
{&__pyx_n_s_lines, __pyx_k_lines, sizeof(__pyx_k_lines), 0, 0, 1, 1},
- {&__pyx_n_s_list, __pyx_k_list, sizeof(__pyx_k_list), 0, 0, 1, 1},
{&__pyx_n_s_literal, __pyx_k_literal, sizeof(__pyx_k_literal), 0, 0, 1, 1},
{&__pyx_n_s_literal_2, __pyx_k_literal_2, sizeof(__pyx_k_literal_2), 0, 0, 1, 1},
{&__pyx_n_s_lstrip, __pyx_k_lstrip, sizeof(__pyx_k_lstrip), 0, 0, 1, 1},
@@ -22970,6 +23577,7 @@ static __Pyx_StringTabEntry __pyx_string_tab[] = {
{&__pyx_n_s_node_2, __pyx_k_node_2, sizeof(__pyx_k_node_2), 0, 0, 1, 1},
{&__pyx_n_s_nodes, __pyx_k_nodes, sizeof(__pyx_k_nodes), 0, 0, 1, 1},
{&__pyx_n_s_num_fields, __pyx_k_num_fields, sizeof(__pyx_k_num_fields), 0, 0, 1, 1},
+ {&__pyx_n_s_object, __pyx_k_object, sizeof(__pyx_k_object), 0, 0, 1, 1},
{&__pyx_n_s_options, __pyx_k_options, sizeof(__pyx_k_options), 0, 0, 1, 1},
{&__pyx_n_u_options, __pyx_k_options, sizeof(__pyx_k_options), 0, 1, 0, 1},
{&__pyx_n_s_options_2, __pyx_k_options_2, sizeof(__pyx_k_options_2), 0, 0, 1, 1},
@@ -23003,6 +23611,7 @@ static __Pyx_StringTabEntry __pyx_string_tab[] = {
{&__pyx_n_s_resource, __pyx_k_resource, sizeof(__pyx_k_resource), 0, 0, 1, 1},
{&__pyx_n_s_resource_idx, __pyx_k_resource_idx, sizeof(__pyx_k_resource_idx), 0, 0, 1, 1},
{&__pyx_n_s_responder, __pyx_k_responder, sizeof(__pyx_k_responder), 0, 0, 1, 1},
+ {&__pyx_n_s_return, __pyx_k_return, sizeof(__pyx_k_return), 0, 0, 1, 1},
{&__pyx_kp_u_return_None, __pyx_k_return_None, sizeof(__pyx_k_return_None), 0, 1, 0, 0},
{&__pyx_n_s_return_values, __pyx_k_return_values, sizeof(__pyx_k_return_values), 0, 0, 1, 1},
{&__pyx_n_u_return_values, __pyx_k_return_values, sizeof(__pyx_k_return_values), 0, 1, 0, 1},
@@ -23020,7 +23629,6 @@ static __Pyx_StringTabEntry __pyx_string_tab[] = {
{&__pyx_n_s_set_default_responders, __pyx_k_set_default_responders, sizeof(__pyx_k_set_default_responders), 0, 0, 1, 1},
{&__pyx_n_s_set_name, __pyx_k_set_name, sizeof(__pyx_k_set_name), 0, 0, 1, 1},
{&__pyx_n_s_setitem, __pyx_k_setitem, sizeof(__pyx_k_setitem), 0, 0, 1, 1},
- {&__pyx_n_s_setter, __pyx_k_setter, sizeof(__pyx_k_setter), 0, 0, 1, 1},
{&__pyx_n_s_should_wrap_non_coroutines, __pyx_k_should_wrap_non_coroutines, sizeof(__pyx_k_should_wrap_non_coroutines), 0, 0, 1, 1},
{&__pyx_n_s_slots, __pyx_k_slots, sizeof(__pyx_k_slots), 0, 0, 1, 1},
{&__pyx_n_s_sorted, __pyx_k_sorted, sizeof(__pyx_k_sorted), 0, 0, 1, 1},
@@ -23029,6 +23637,7 @@ static __Pyx_StringTabEntry __pyx_string_tab[] = {
{&__pyx_n_s_split, __pyx_k_split, sizeof(__pyx_k_split), 0, 0, 1, 1},
{&__pyx_n_s_src, __pyx_k_src, sizeof(__pyx_k_src), 0, 0, 1, 1},
{&__pyx_n_s_src_lines, __pyx_k_src_lines, sizeof(__pyx_k_src_lines), 0, 0, 1, 1},
+ {&__pyx_n_s_str, __pyx_k_str, sizeof(__pyx_k_str), 0, 0, 1, 1},
{&__pyx_kp_u_string, __pyx_k_string, sizeof(__pyx_k_string), 0, 1, 0, 0},
{&__pyx_n_s_sub, __pyx_k_sub, sizeof(__pyx_k_sub), 0, 0, 1, 1},
{&__pyx_n_s_suffix, __pyx_k_suffix, sizeof(__pyx_k_suffix), 0, 0, 1, 1},
@@ -23038,6 +23647,7 @@ static __Pyx_StringTabEntry __pyx_string_tab[] = {
{&__pyx_n_s_test, __pyx_k_test, sizeof(__pyx_k_test), 0, 0, 1, 1},
{&__pyx_n_s_threading, __pyx_k_threading, sizeof(__pyx_k_threading), 0, 0, 1, 1},
{&__pyx_n_s_throw, __pyx_k_throw, sizeof(__pyx_k_throw), 0, 0, 1, 1},
+ {&__pyx_n_s_typing, __pyx_k_typing, sizeof(__pyx_k_typing), 0, 0, 1, 1},
{&__pyx_n_s_unique_idx, __pyx_k_unique_idx, sizeof(__pyx_k_unique_idx), 0, 0, 1, 1},
{&__pyx_n_s_unique_idx_2, __pyx_k_unique_idx_2, sizeof(__pyx_k_unique_idx_2), 0, 0, 1, 1},
{&__pyx_n_s_update, __pyx_k_update, sizeof(__pyx_k_update), 0, 0, 1, 1},
@@ -23059,15 +23669,16 @@ static __Pyx_StringTabEntry __pyx_string_tab[] = {
};
/* #### Code section: cached_builtins ### */
static CYTHON_SMALL_CODE int __Pyx_InitCachedBuiltins(void) {
- __pyx_builtin_property = __Pyx_GetBuiltinName(__pyx_n_s_property); if (!__pyx_builtin_property) __PYX_ERR(0, 108, __pyx_L1_error)
- __pyx_builtin_ValueError = __Pyx_GetBuiltinName(__pyx_n_s_ValueError); if (!__pyx_builtin_ValueError) __PYX_ERR(0, 202, __pyx_L1_error)
- __pyx_builtin_TypeError = __Pyx_GetBuiltinName(__pyx_n_s_TypeError); if (!__pyx_builtin_TypeError) __PYX_ERR(0, 310, __pyx_L1_error)
- __pyx_builtin_sorted = __Pyx_GetBuiltinName(__pyx_n_s_sorted); if (!__pyx_builtin_sorted) __PYX_ERR(0, 410, __pyx_L1_error)
- __pyx_builtin_AssertionError = __Pyx_GetBuiltinName(__pyx_n_s_AssertionError); if (!__pyx_builtin_AssertionError) __PYX_ERR(0, 463, __pyx_L1_error)
- __pyx_builtin_compile = __Pyx_GetBuiltinName(__pyx_n_s_compile); if (!__pyx_builtin_compile) __PYX_ERR(0, 614, __pyx_L1_error)
- __pyx_builtin_eval = __Pyx_GetBuiltinName(__pyx_n_s_eval); if (!__pyx_builtin_eval) __PYX_ERR(0, 624, __pyx_L1_error)
- __pyx_builtin_AttributeError = __Pyx_GetBuiltinName(__pyx_n_s_AttributeError); if (!__pyx_builtin_AttributeError) __PYX_ERR(0, 808, __pyx_L1_error)
- __pyx_builtin_super = __Pyx_GetBuiltinName(__pyx_n_s_super); if (!__pyx_builtin_super) __PYX_ERR(0, 907, __pyx_L1_error)
+ __pyx_builtin_property = __Pyx_GetBuiltinName(__pyx_n_s_property); if (!__pyx_builtin_property) __PYX_ERR(0, 115, __pyx_L1_error)
+ __pyx_builtin_ValueError = __Pyx_GetBuiltinName(__pyx_n_s_ValueError); if (!__pyx_builtin_ValueError) __PYX_ERR(0, 209, __pyx_L1_error)
+ __pyx_builtin_TypeError = __Pyx_GetBuiltinName(__pyx_n_s_TypeError); if (!__pyx_builtin_TypeError) __PYX_ERR(0, 317, __pyx_L1_error)
+ __pyx_builtin_sorted = __Pyx_GetBuiltinName(__pyx_n_s_sorted); if (!__pyx_builtin_sorted) __PYX_ERR(0, 417, __pyx_L1_error)
+ __pyx_builtin_AssertionError = __Pyx_GetBuiltinName(__pyx_n_s_AssertionError); if (!__pyx_builtin_AssertionError) __PYX_ERR(0, 442, __pyx_L1_error)
+ __pyx_builtin_compile = __Pyx_GetBuiltinName(__pyx_n_s_compile); if (!__pyx_builtin_compile) __PYX_ERR(0, 627, __pyx_L1_error)
+ __pyx_builtin_eval = __Pyx_GetBuiltinName(__pyx_n_s_eval); if (!__pyx_builtin_eval) __PYX_ERR(0, 637, __pyx_L1_error)
+ __pyx_builtin_AttributeError = __Pyx_GetBuiltinName(__pyx_n_s_AttributeError); if (!__pyx_builtin_AttributeError) __PYX_ERR(0, 827, __pyx_L1_error)
+ __pyx_builtin_NotImplementedError = __Pyx_GetBuiltinName(__pyx_n_s_NotImplementedError); if (!__pyx_builtin_NotImplementedError) __PYX_ERR(0, 927, __pyx_L1_error)
+ __pyx_builtin_super = __Pyx_GetBuiltinName(__pyx_n_s_super); if (!__pyx_builtin_super) __PYX_ERR(0, 932, __pyx_L1_error)
return 0;
__pyx_L1_error:;
return -1;
@@ -23078,744 +23689,767 @@ static CYTHON_SMALL_CODE int __Pyx_InitCachedConstants(void) {
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("__Pyx_InitCachedConstants", 0);
- /* "falcon/routing/compiled.py":226
+ /* "falcon/routing/compiled.py":233
*
* if node.conflicts_with(segment):
* raise ValueError( # <<<<<<<<<<<<<<
* 'The URI template for this route is inconsistent or conflicts '
* "with another route's template. This is usually caused by "
*/
- __pyx_tuple__2 = PyTuple_Pack(1, __pyx_kp_u_The_URI_template_for_this_route); if (unlikely(!__pyx_tuple__2)) __PYX_ERR(0, 226, __pyx_L1_error)
- __Pyx_GOTREF(__pyx_tuple__2);
- __Pyx_GIVEREF(__pyx_tuple__2);
+ __pyx_tuple__3 = PyTuple_Pack(1, __pyx_kp_u_The_URI_template_for_this_route); if (unlikely(!__pyx_tuple__3)) __PYX_ERR(0, 233, __pyx_L1_error)
+ __Pyx_GOTREF(__pyx_tuple__3);
+ __Pyx_GIVEREF(__pyx_tuple__3);
- /* "falcon/routing/compiled.py":202
+ /* "falcon/routing/compiled.py":209
* # those before checking the rest of the URI template.
* if re.search(r'\s', _FIELD_PATTERN.sub('{FIELD}', uri_template)):
* raise ValueError('URI templates may not include whitespace.') # <<<<<<<<<<<<<<
*
* path = uri_template.lstrip('/').split('/')
*/
- __pyx_tuple__3 = PyTuple_Pack(1, __pyx_kp_u_URI_templates_may_not_include_wh); if (unlikely(!__pyx_tuple__3)) __PYX_ERR(0, 202, __pyx_L1_error)
- __Pyx_GOTREF(__pyx_tuple__3);
- __Pyx_GIVEREF(__pyx_tuple__3);
+ __pyx_tuple__4 = PyTuple_Pack(1, __pyx_kp_u_URI_templates_may_not_include_wh); if (unlikely(!__pyx_tuple__4)) __PYX_ERR(0, 209, __pyx_L1_error)
+ __Pyx_GOTREF(__pyx_tuple__4);
+ __Pyx_GIVEREF(__pyx_tuple__4);
- /* "falcon/routing/compiled.py":210
+ /* "falcon/routing/compiled.py":217
* self._validate_template_segment(segment, used_names)
*
- * def insert(nodes, path_index=0): # <<<<<<<<<<<<<<
+ * def insert(nodes: 'List[CompiledRouterNode]', path_index: int = 0): # <<<<<<<<<<<<<<
* for node in nodes:
* segment = path[path_index]
*/
- __pyx_tuple__4 = PyTuple_Pack(5, __pyx_n_s_nodes, __pyx_n_s_path_index, __pyx_n_s_node, __pyx_n_s_segment, __pyx_n_s_new_node); if (unlikely(!__pyx_tuple__4)) __PYX_ERR(0, 210, __pyx_L1_error)
- __Pyx_GOTREF(__pyx_tuple__4);
- __Pyx_GIVEREF(__pyx_tuple__4);
- __pyx_codeobj__5 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__4, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_falcon_routing_compiled_py, __pyx_n_s_insert, 210, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__5)) __PYX_ERR(0, 210, __pyx_L1_error)
- __pyx_tuple__6 = PyTuple_Pack(1, ((PyObject *)__pyx_int_0)); if (unlikely(!__pyx_tuple__6)) __PYX_ERR(0, 210, __pyx_L1_error)
- __Pyx_GOTREF(__pyx_tuple__6);
- __Pyx_GIVEREF(__pyx_tuple__6);
+ __pyx_tuple__5 = PyTuple_Pack(5, __pyx_n_s_nodes, __pyx_n_s_path_index, __pyx_n_s_node, __pyx_n_s_segment, __pyx_n_s_new_node); if (unlikely(!__pyx_tuple__5)) __PYX_ERR(0, 217, __pyx_L1_error)
+ __Pyx_GOTREF(__pyx_tuple__5);
+ __Pyx_GIVEREF(__pyx_tuple__5);
+ __pyx_codeobj__6 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__5, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_falcon_routing_compiled_py, __pyx_n_s_insert, 217, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__6)) __PYX_ERR(0, 217, __pyx_L1_error)
+ __pyx_tuple__7 = PyTuple_Pack(1, ((PyObject *)__pyx_int_0)); if (unlikely(!__pyx_tuple__7)) __PYX_ERR(0, 217, __pyx_L1_error)
+ __Pyx_GOTREF(__pyx_tuple__7);
+ __Pyx_GIVEREF(__pyx_tuple__7);
- /* "falcon/routing/compiled.py":298
+ /* "falcon/routing/compiled.py":305
* if _should_wrap_non_coroutines():
*
* def let(responder=responder): # <<<<<<<<<<<<<<
* method_map[method] = wrap_sync_to_async(responder)
*
*/
- __pyx_tuple__7 = PyTuple_Pack(1, __pyx_n_s_responder); if (unlikely(!__pyx_tuple__7)) __PYX_ERR(0, 298, __pyx_L1_error)
- __Pyx_GOTREF(__pyx_tuple__7);
- __Pyx_GIVEREF(__pyx_tuple__7);
- __pyx_codeobj__8 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__7, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_falcon_routing_compiled_py, __pyx_n_s_let, 298, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__8)) __PYX_ERR(0, 298, __pyx_L1_error)
+ __pyx_tuple__8 = PyTuple_Pack(1, __pyx_n_s_responder); if (unlikely(!__pyx_tuple__8)) __PYX_ERR(0, 305, __pyx_L1_error)
+ __Pyx_GOTREF(__pyx_tuple__8);
+ __Pyx_GIVEREF(__pyx_tuple__8);
+ __pyx_codeobj__9 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__8, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_falcon_routing_compiled_py, __pyx_n_s_let, 305, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__9)) __PYX_ERR(0, 305, __pyx_L1_error)
- /* "falcon/routing/compiled.py":635
+ /* "falcon/routing/compiled.py":648
* :meth:`.CompiledRouter._compile`.
* """
* with self._compile_lock: # <<<<<<<<<<<<<<
* if self._find == self._compile_and_find:
* # NOTE(caselit): replace the find with the result of the
*/
- __pyx_tuple__13 = PyTuple_Pack(3, Py_None, Py_None, Py_None); if (unlikely(!__pyx_tuple__13)) __PYX_ERR(0, 635, __pyx_L1_error)
- __Pyx_GOTREF(__pyx_tuple__13);
- __Pyx_GIVEREF(__pyx_tuple__13);
+ __pyx_tuple__14 = PyTuple_Pack(3, Py_None, Py_None, Py_None); if (unlikely(!__pyx_tuple__14)) __PYX_ERR(0, 648, __pyx_L1_error)
+ __Pyx_GOTREF(__pyx_tuple__14);
+ __Pyx_GIVEREF(__pyx_tuple__14);
- /* "falcon/routing/compiled.py":827
+ /* "falcon/routing/compiled.py":846
* def _validate(self, name):
* if not _IDENTIFIER_PATTERN.match(name):
* raise ValueError( # <<<<<<<<<<<<<<
* 'Invalid converter name. Names may not be blank, and may '
* 'only use ASCII letters, digits, and underscores. Names'
*/
- __pyx_tuple__17 = PyTuple_Pack(1, __pyx_kp_u_Invalid_converter_name_Names_may); if (unlikely(!__pyx_tuple__17)) __PYX_ERR(0, 827, __pyx_L1_error)
- __Pyx_GOTREF(__pyx_tuple__17);
- __Pyx_GIVEREF(__pyx_tuple__17);
+ __pyx_tuple__18 = PyTuple_Pack(1, __pyx_kp_u_Invalid_converter_name_Names_may); if (unlikely(!__pyx_tuple__18)) __PYX_ERR(0, 846, __pyx_L1_error)
+ __Pyx_GOTREF(__pyx_tuple__18);
+ __Pyx_GIVEREF(__pyx_tuple__18);
+
+ /* "falcon/routing/compiled.py":36
+ * from falcon.request import Request
+ *
+ * _CxElement = Union['_CxParent', '_CxChild'] # <<<<<<<<<<<<<<
+ *
+ * _TAB_STR = ' ' * 4
+ */
+ __pyx_tuple__20 = PyTuple_Pack(2, __pyx_n_u_CxParent, __pyx_n_u_CxChild); if (unlikely(!__pyx_tuple__20)) __PYX_ERR(0, 36, __pyx_L1_error)
+ __Pyx_GOTREF(__pyx_tuple__20);
+ __Pyx_GIVEREF(__pyx_tuple__20);
- /* "falcon/routing/compiled.py":34
+ /* "falcon/routing/compiled.py":39
*
* _TAB_STR = ' ' * 4
* _FIELD_PATTERN = re.compile( # <<<<<<<<<<<<<<
* # NOTE(kgriffs): This disallows the use of the '}' character within
* # an argstr. However, we don't really have a way of escaping
*/
- __pyx_tuple__20 = PyTuple_Pack(1, __pyx_kp_u_P_fname_P_cname_sep_P_cname_P_a); if (unlikely(!__pyx_tuple__20)) __PYX_ERR(0, 34, __pyx_L1_error)
- __Pyx_GOTREF(__pyx_tuple__20);
- __Pyx_GIVEREF(__pyx_tuple__20);
+ __pyx_tuple__22 = PyTuple_Pack(1, __pyx_kp_u_P_fname_P_cname_sep_P_cname_P_a); if (unlikely(!__pyx_tuple__22)) __PYX_ERR(0, 39, __pyx_L1_error)
+ __Pyx_GOTREF(__pyx_tuple__22);
+ __Pyx_GIVEREF(__pyx_tuple__22);
- /* "falcon/routing/compiled.py":44
+ /* "falcon/routing/compiled.py":49
* r'{((?P<fname>[^}:]*)((?P<cname_sep>:(?P<cname>[^}\(]*))(\((?P<argstr>[^}]*)\))?)?)}' # noqa E501
* )
* _IDENTIFIER_PATTERN = re.compile('[A-Za-z_][A-Za-z0-9_]*$') # <<<<<<<<<<<<<<
*
*
*/
- __pyx_tuple__21 = PyTuple_Pack(1, __pyx_kp_u_A_Za_z__A_Za_z0_9); if (unlikely(!__pyx_tuple__21)) __PYX_ERR(0, 44, __pyx_L1_error)
- __Pyx_GOTREF(__pyx_tuple__21);
- __Pyx_GIVEREF(__pyx_tuple__21);
+ __pyx_tuple__23 = PyTuple_Pack(1, __pyx_kp_u_A_Za_z__A_Za_z0_9); if (unlikely(!__pyx_tuple__23)) __PYX_ERR(0, 49, __pyx_L1_error)
+ __Pyx_GOTREF(__pyx_tuple__23);
+ __Pyx_GIVEREF(__pyx_tuple__23);
- /* "falcon/routing/compiled.py":76
+ /* "falcon/routing/compiled.py":81
*
* __slots__ = (
* '_ast', # <<<<<<<<<<<<<<
* '_converter_map',
* '_converters',
*/
- __pyx_tuple__22 = PyTuple_Pack(10, __pyx_n_u_ast, __pyx_n_u_converter_map, __pyx_n_u_converters, __pyx_n_u_find, __pyx_n_u_finder_src, __pyx_n_u_options, __pyx_n_u_patterns, __pyx_n_u_return_values, __pyx_n_u_roots, __pyx_n_u_compile_lock); if (unlikely(!__pyx_tuple__22)) __PYX_ERR(0, 76, __pyx_L1_error)
- __Pyx_GOTREF(__pyx_tuple__22);
- __Pyx_GIVEREF(__pyx_tuple__22);
+ __pyx_tuple__24 = PyTuple_Pack(10, __pyx_n_u_ast, __pyx_n_u_converter_map, __pyx_n_u_converters, __pyx_n_u_find, __pyx_n_u_finder_src, __pyx_n_u_options, __pyx_n_u_patterns, __pyx_n_u_return_values, __pyx_n_u_roots, __pyx_n_u_compile_lock); if (unlikely(!__pyx_tuple__24)) __PYX_ERR(0, 81, __pyx_L1_error)
+ __Pyx_GOTREF(__pyx_tuple__24);
+ __Pyx_GIVEREF(__pyx_tuple__24);
- /* "falcon/routing/compiled.py":88
+ /* "falcon/routing/compiled.py":93
* )
*
- * def __init__(self): # <<<<<<<<<<<<<<
- * self._ast = None
- * self._converters = None
+ * def __init__(self) -> None: # <<<<<<<<<<<<<<
+ * self._ast: '_CxParent' = _CxParent()
+ * self._converters: 'List[converters.BaseConverter]' = []
*/
- __pyx_tuple__23 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__23)) __PYX_ERR(0, 88, __pyx_L1_error)
- __Pyx_GOTREF(__pyx_tuple__23);
- __Pyx_GIVEREF(__pyx_tuple__23);
- __pyx_codeobj__24 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__23, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_falcon_routing_compiled_py, __pyx_n_s_init, 88, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__24)) __PYX_ERR(0, 88, __pyx_L1_error)
+ __pyx_tuple__25 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__25)) __PYX_ERR(0, 93, __pyx_L1_error)
+ __Pyx_GOTREF(__pyx_tuple__25);
+ __Pyx_GIVEREF(__pyx_tuple__25);
+ __pyx_codeobj__26 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__25, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_falcon_routing_compiled_py, __pyx_n_s_init, 93, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__26)) __PYX_ERR(0, 93, __pyx_L1_error)
- /* "falcon/routing/compiled.py":108
+ /* "falcon/routing/compiled.py":115
* self._compile_lock = Lock()
*
* @property # <<<<<<<<<<<<<<
- * def options(self):
+ * def options(self) -> 'CompiledRouterOptions':
* return self._options
*/
- __pyx_tuple__25 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__25)) __PYX_ERR(0, 108, __pyx_L1_error)
- __Pyx_GOTREF(__pyx_tuple__25);
- __Pyx_GIVEREF(__pyx_tuple__25);
- __pyx_codeobj__26 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__25, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_falcon_routing_compiled_py, __pyx_n_s_options_2, 108, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__26)) __PYX_ERR(0, 108, __pyx_L1_error)
+ __pyx_tuple__27 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__27)) __PYX_ERR(0, 115, __pyx_L1_error)
+ __Pyx_GOTREF(__pyx_tuple__27);
+ __Pyx_GIVEREF(__pyx_tuple__27);
+ __pyx_codeobj__28 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__27, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_falcon_routing_compiled_py, __pyx_n_s_options_2, 115, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__28)) __PYX_ERR(0, 115, __pyx_L1_error)
- /* "falcon/routing/compiled.py":112
+ /* "falcon/routing/compiled.py":119
* return self._options
*
* @property # <<<<<<<<<<<<<<
- * def finder_src(self):
+ * def finder_src(self) -> str:
* # NOTE(caselit): ensure that the router is actually compiled before
*/
- __pyx_tuple__27 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__27)) __PYX_ERR(0, 112, __pyx_L1_error)
- __Pyx_GOTREF(__pyx_tuple__27);
- __Pyx_GIVEREF(__pyx_tuple__27);
- __pyx_codeobj__28 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__27, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_falcon_routing_compiled_py, __pyx_n_s_finder_src_2, 112, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__28)) __PYX_ERR(0, 112, __pyx_L1_error)
+ __pyx_tuple__29 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__29)) __PYX_ERR(0, 119, __pyx_L1_error)
+ __Pyx_GOTREF(__pyx_tuple__29);
+ __Pyx_GIVEREF(__pyx_tuple__29);
+ __pyx_codeobj__30 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__29, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_falcon_routing_compiled_py, __pyx_n_s_finder_src_2, 119, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__30)) __PYX_ERR(0, 119, __pyx_L1_error)
- /* "falcon/routing/compiled.py":120
+ /* "falcon/routing/compiled.py":127
* return self._finder_src
*
- * def map_http_methods(self, resource, **kwargs): # <<<<<<<<<<<<<<
+ * def map_http_methods(self, resource: object, **kwargs): # <<<<<<<<<<<<<<
* """Map HTTP methods (e.g., GET, POST) to methods of a resource object.
*
*/
- __pyx_tuple__29 = PyTuple_Pack(3, __pyx_n_s_self, __pyx_n_s_resource, __pyx_n_s_kwargs); if (unlikely(!__pyx_tuple__29)) __PYX_ERR(0, 120, __pyx_L1_error)
- __Pyx_GOTREF(__pyx_tuple__29);
- __Pyx_GIVEREF(__pyx_tuple__29);
- __pyx_codeobj__30 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS|CO_VARKEYWORDS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__29, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_falcon_routing_compiled_py, __pyx_n_s_map_http_methods, 120, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__30)) __PYX_ERR(0, 120, __pyx_L1_error)
+ __pyx_tuple__31 = PyTuple_Pack(3, __pyx_n_s_self, __pyx_n_s_resource, __pyx_n_s_kwargs); if (unlikely(!__pyx_tuple__31)) __PYX_ERR(0, 127, __pyx_L1_error)
+ __Pyx_GOTREF(__pyx_tuple__31);
+ __Pyx_GIVEREF(__pyx_tuple__31);
+ __pyx_codeobj__32 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS|CO_VARKEYWORDS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__31, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_falcon_routing_compiled_py, __pyx_n_s_map_http_methods, 127, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__32)) __PYX_ERR(0, 127, __pyx_L1_error)
- /* "falcon/routing/compiled.py":149
+ /* "falcon/routing/compiled.py":156
* return map_http_methods(resource, suffix=kwargs.get('suffix', None))
*
- * def add_route(self, uri_template, resource, **kwargs): # <<<<<<<<<<<<<<
+ * def add_route(self, uri_template: str, resource: object, **kwargs): # <<<<<<<<<<<<<<
* """Add a route between a URI path template and a resource.
*
*/
- __pyx_tuple__31 = PyTuple_Pack(11, __pyx_n_s_self, __pyx_n_s_uri_template, __pyx_n_s_resource, __pyx_n_s_kwargs, __pyx_n_s_asgi_2, __pyx_n_s_method_map, __pyx_n_s_path, __pyx_n_s_used_names, __pyx_n_s_segment, __pyx_n_s_insert, __pyx_n_s_insert); if (unlikely(!__pyx_tuple__31)) __PYX_ERR(0, 149, __pyx_L1_error)
- __Pyx_GOTREF(__pyx_tuple__31);
- __Pyx_GIVEREF(__pyx_tuple__31);
- __pyx_codeobj__32 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 11, 0, CO_OPTIMIZED|CO_NEWLOCALS|CO_VARKEYWORDS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__31, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_falcon_routing_compiled_py, __pyx_n_s_add_route, 149, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__32)) __PYX_ERR(0, 149, __pyx_L1_error)
+ __pyx_tuple__33 = PyTuple_Pack(11, __pyx_n_s_self, __pyx_n_s_uri_template, __pyx_n_s_resource, __pyx_n_s_kwargs, __pyx_n_s_asgi_2, __pyx_n_s_method_map, __pyx_n_s_path, __pyx_n_s_used_names, __pyx_n_s_segment, __pyx_n_s_insert, __pyx_n_s_insert); if (unlikely(!__pyx_tuple__33)) __PYX_ERR(0, 156, __pyx_L1_error)
+ __Pyx_GOTREF(__pyx_tuple__33);
+ __Pyx_GIVEREF(__pyx_tuple__33);
+ __pyx_codeobj__34 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 11, 0, CO_OPTIMIZED|CO_NEWLOCALS|CO_VARKEYWORDS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__33, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_falcon_routing_compiled_py, __pyx_n_s_add_route, 156, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__34)) __PYX_ERR(0, 156, __pyx_L1_error)
- /* "falcon/routing/compiled.py":255
+ /* "falcon/routing/compiled.py":262
* self._find = self._compile_and_find
*
- * def find(self, uri, req=None): # <<<<<<<<<<<<<<
+ * def find(self, uri: str, req: 'Optional[Request]' = None): # <<<<<<<<<<<<<<
* """Search for a route that matches the given partial URI.
*
*/
- __pyx_tuple__33 = PyTuple_Pack(6, __pyx_n_s_self, __pyx_n_s_uri, __pyx_n_s_req, __pyx_n_s_path, __pyx_n_s_params, __pyx_n_s_node); if (unlikely(!__pyx_tuple__33)) __PYX_ERR(0, 255, __pyx_L1_error)
- __Pyx_GOTREF(__pyx_tuple__33);
- __Pyx_GIVEREF(__pyx_tuple__33);
- __pyx_codeobj__34 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 6, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__33, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_falcon_routing_compiled_py, __pyx_n_s_find_2, 255, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__34)) __PYX_ERR(0, 255, __pyx_L1_error)
- __pyx_tuple__35 = PyTuple_Pack(1, ((PyObject *)Py_None)); if (unlikely(!__pyx_tuple__35)) __PYX_ERR(0, 255, __pyx_L1_error)
+ __pyx_tuple__35 = PyTuple_Pack(6, __pyx_n_s_self, __pyx_n_s_uri, __pyx_n_s_req, __pyx_n_s_path, __pyx_n_s_params, __pyx_n_s_node); if (unlikely(!__pyx_tuple__35)) __PYX_ERR(0, 262, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__35);
__Pyx_GIVEREF(__pyx_tuple__35);
+ __pyx_codeobj__36 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 6, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__35, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_falcon_routing_compiled_py, __pyx_n_s_find_2, 262, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__36)) __PYX_ERR(0, 262, __pyx_L1_error)
+ __pyx_tuple__37 = PyTuple_Pack(1, ((PyObject *)Py_None)); if (unlikely(!__pyx_tuple__37)) __PYX_ERR(0, 262, __pyx_L1_error)
+ __Pyx_GOTREF(__pyx_tuple__37);
+ __Pyx_GIVEREF(__pyx_tuple__37);
- /* "falcon/routing/compiled.py":288
+ /* "falcon/routing/compiled.py":295
* # -----------------------------------------------------------------
*
- * def _require_coroutine_responders(self, method_map): # <<<<<<<<<<<<<<
+ * def _require_coroutine_responders(self, method_map: dict): # <<<<<<<<<<<<<<
* for method, responder in method_map.items():
* # NOTE(kgriffs): We don't simply wrap non-async functions
*/
- __pyx_tuple__36 = PyTuple_Pack(7, __pyx_n_s_self, __pyx_n_s_method_map, __pyx_n_s_method, __pyx_n_s_responder, __pyx_n_s_let, __pyx_n_s_let, __pyx_n_s_msg); if (unlikely(!__pyx_tuple__36)) __PYX_ERR(0, 288, __pyx_L1_error)
- __Pyx_GOTREF(__pyx_tuple__36);
- __Pyx_GIVEREF(__pyx_tuple__36);
- __pyx_codeobj__37 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 7, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__36, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_falcon_routing_compiled_py, __pyx_n_s_require_coroutine_responders, 288, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__37)) __PYX_ERR(0, 288, __pyx_L1_error)
+ __pyx_tuple__38 = PyTuple_Pack(7, __pyx_n_s_self, __pyx_n_s_method_map, __pyx_n_s_method, __pyx_n_s_responder, __pyx_n_s_let, __pyx_n_s_let, __pyx_n_s_msg); if (unlikely(!__pyx_tuple__38)) __PYX_ERR(0, 295, __pyx_L1_error)
+ __Pyx_GOTREF(__pyx_tuple__38);
+ __Pyx_GIVEREF(__pyx_tuple__38);
+ __pyx_codeobj__39 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 7, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__38, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_falcon_routing_compiled_py, __pyx_n_s_require_coroutine_responders, 295, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__39)) __PYX_ERR(0, 295, __pyx_L1_error)
- /* "falcon/routing/compiled.py":312
+ /* "falcon/routing/compiled.py":319
* raise TypeError(msg)
*
- * def _require_non_coroutine_responders(self, method_map): # <<<<<<<<<<<<<<
+ * def _require_non_coroutine_responders(self, method_map: dict): # <<<<<<<<<<<<<<
* for method, responder in method_map.items():
* # NOTE(kgriffs): We don't simply wrap non-async functions
*/
- __pyx_tuple__38 = PyTuple_Pack(5, __pyx_n_s_self, __pyx_n_s_method_map, __pyx_n_s_method, __pyx_n_s_responder, __pyx_n_s_msg); if (unlikely(!__pyx_tuple__38)) __PYX_ERR(0, 312, __pyx_L1_error)
- __Pyx_GOTREF(__pyx_tuple__38);
- __Pyx_GIVEREF(__pyx_tuple__38);
- __pyx_codeobj__39 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__38, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_falcon_routing_compiled_py, __pyx_n_s_require_non_coroutine_responder, 312, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__39)) __PYX_ERR(0, 312, __pyx_L1_error)
+ __pyx_tuple__40 = PyTuple_Pack(5, __pyx_n_s_self, __pyx_n_s_method_map, __pyx_n_s_method, __pyx_n_s_responder, __pyx_n_s_msg); if (unlikely(!__pyx_tuple__40)) __PYX_ERR(0, 319, __pyx_L1_error)
+ __Pyx_GOTREF(__pyx_tuple__40);
+ __Pyx_GIVEREF(__pyx_tuple__40);
+ __pyx_codeobj__41 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__40, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_falcon_routing_compiled_py, __pyx_n_s_require_non_coroutine_responder, 319, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__41)) __PYX_ERR(0, 319, __pyx_L1_error)
- /* "falcon/routing/compiled.py":328
+ /* "falcon/routing/compiled.py":335
* raise TypeError(msg)
*
- * def _validate_template_segment(self, segment, used_names): # <<<<<<<<<<<<<<
+ * def _validate_template_segment(self, segment: str, used_names: 'Set[str]'): # <<<<<<<<<<<<<<
* """Validate a single path segment of a URI template.
*
*/
- __pyx_tuple__40 = PyTuple_Pack(9, __pyx_n_s_self, __pyx_n_s_segment, __pyx_n_s_used_names, __pyx_n_s_field, __pyx_n_s_name_2, __pyx_n_s_is_identifier, __pyx_n_s_msg_template, __pyx_n_s_msg, __pyx_n_s_e); if (unlikely(!__pyx_tuple__40)) __PYX_ERR(0, 328, __pyx_L1_error)
- __Pyx_GOTREF(__pyx_tuple__40);
- __Pyx_GIVEREF(__pyx_tuple__40);
- __pyx_codeobj__41 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 9, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__40, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_falcon_routing_compiled_py, __pyx_n_s_validate_template_segment, 328, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__41)) __PYX_ERR(0, 328, __pyx_L1_error)
+ __pyx_tuple__42 = PyTuple_Pack(9, __pyx_n_s_self, __pyx_n_s_segment, __pyx_n_s_used_names, __pyx_n_s_field, __pyx_n_s_name_2, __pyx_n_s_is_identifier, __pyx_n_s_msg_template, __pyx_n_s_msg, __pyx_n_s_e); if (unlikely(!__pyx_tuple__42)) __PYX_ERR(0, 335, __pyx_L1_error)
+ __Pyx_GOTREF(__pyx_tuple__42);
+ __Pyx_GIVEREF(__pyx_tuple__42);
+ __pyx_codeobj__43 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 9, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__42, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_falcon_routing_compiled_py, __pyx_n_s_validate_template_segment, 335, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__43)) __PYX_ERR(0, 335, __pyx_L1_error)
- /* "falcon/routing/compiled.py":381
+ /* "falcon/routing/compiled.py":388
* raise ValueError(msg) from e
*
* def _generate_ast( # <<<<<<<<<<<<<<
* self,
- * nodes: list,
+ * nodes: 'List[CompiledRouterNode]',
*/
- __pyx_tuple__43 = PyTuple_Pack(29, __pyx_n_s_self, __pyx_n_s_nodes, __pyx_n_s_parent, __pyx_n_s_return_values_2, __pyx_n_s_patterns_2, __pyx_n_s_params_stack, __pyx_n_s_level, __pyx_n_s_fast_return, __pyx_n_s_outer_parent, __pyx_n_s_found_simple, __pyx_n_s_var_nodes, __pyx_n_s_found_var_nodes, __pyx_n_s_construct, __pyx_n_s_setter, __pyx_n_s_original_params_stack, __pyx_n_s_node, __pyx_n_s_pattern_idx, __pyx_n_s_field_name, __pyx_n_s__42, __pyx_n_s_converter_name, __pyx_n_s_converter_argstr, __pyx_n_s_converter_class, __pyx_n_s_converter_obj, __pyx_n_s_converter_idx, __pyx_n_s_found_nodes, __pyx_n_s_resource_idx, __pyx_n_s_params, __pyx_n_s_node, __pyx_n_s_node_2); if (unlikely(!__pyx_tuple__43)) __PYX_ERR(0, 381, __pyx_L1_error)
- __Pyx_GOTREF(__pyx_tuple__43);
- __Pyx_GIVEREF(__pyx_tuple__43);
- __pyx_codeobj__44 = (PyObject*)__Pyx_PyCode_New(8, 0, 0, 29, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__43, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_falcon_routing_compiled_py, __pyx_n_s_generate_ast, 381, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__44)) __PYX_ERR(0, 381, __pyx_L1_error)
- __pyx_tuple__45 = PyTuple_Pack(2, ((PyObject *)__pyx_int_0), ((PyObject *)Py_True)); if (unlikely(!__pyx_tuple__45)) __PYX_ERR(0, 381, __pyx_L1_error)
+ __pyx_tuple__45 = PyTuple_Pack(32, __pyx_n_s_self, __pyx_n_s_nodes, __pyx_n_s_parent, __pyx_n_s_return_values_2, __pyx_n_s_patterns_2, __pyx_n_s_params_stack, __pyx_n_s_level, __pyx_n_s_fast_return, __pyx_n_s_outer_parent, __pyx_n_s_found_simple, __pyx_n_s_var_nodes, __pyx_n_s_found_var_nodes, __pyx_n_s_original_params_stack, __pyx_n_s_node, __pyx_n_s_pattern_idx, __pyx_n_s_cx_segment, __pyx_n_s_cx_pattern, __pyx_n_s_field_name, __pyx_n_s__44, __pyx_n_s_converter_name, __pyx_n_s_converter_argstr, __pyx_n_s_converter_class, __pyx_n_s_converter_obj, __pyx_n_s_converter_idx, __pyx_n_s_cx_converter, __pyx_n_s_found_nodes, __pyx_n_s_cx_literal, __pyx_n_s_resource_idx, __pyx_n_s_cx_path_len, __pyx_n_s_params, __pyx_n_s_node, __pyx_n_s_node_2); if (unlikely(!__pyx_tuple__45)) __PYX_ERR(0, 388, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__45);
__Pyx_GIVEREF(__pyx_tuple__45);
+ __pyx_codeobj__46 = (PyObject*)__Pyx_PyCode_New(8, 0, 0, 32, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__45, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_falcon_routing_compiled_py, __pyx_n_s_generate_ast, 388, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__46)) __PYX_ERR(0, 388, __pyx_L1_error)
+ __pyx_tuple__47 = PyTuple_Pack(2, ((PyObject *)__pyx_int_0), ((PyObject *)Py_True)); if (unlikely(!__pyx_tuple__47)) __PYX_ERR(0, 388, __pyx_L1_error)
+ __Pyx_GOTREF(__pyx_tuple__47);
+ __Pyx_GIVEREF(__pyx_tuple__47);
- /* "falcon/routing/compiled.py":547
+ /* "falcon/routing/compiled.py":555
* parent.append_child(_CxReturnNone())
*
* def _generate_conversion_ast( # <<<<<<<<<<<<<<
- * self, parent, node: 'CompiledRouterNode', params_stack: list
- * ):
+ * self,
+ * parent: '_CxParent',
*/
- __pyx_tuple__46 = PyTuple_Pack(12, __pyx_n_s_self, __pyx_n_s_parent, __pyx_n_s_node, __pyx_n_s_params_stack, __pyx_n_s_construct, __pyx_n_s_setter, __pyx_n_s_field_name, __pyx_n_s_converter_name, __pyx_n_s_converter_argstr, __pyx_n_s_converter_class, __pyx_n_s_converter_obj, __pyx_n_s_converter_idx); if (unlikely(!__pyx_tuple__46)) __PYX_ERR(0, 547, __pyx_L1_error)
- __Pyx_GOTREF(__pyx_tuple__46);
- __Pyx_GIVEREF(__pyx_tuple__46);
- __pyx_codeobj__47 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__46, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_falcon_routing_compiled_py, __pyx_n_s_generate_conversion_ast, 547, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__47)) __PYX_ERR(0, 547, __pyx_L1_error)
+ __pyx_tuple__48 = PyTuple_Pack(12, __pyx_n_s_self, __pyx_n_s_parent, __pyx_n_s_node, __pyx_n_s_params_stack, __pyx_n_s_field_name, __pyx_n_s_converter_name, __pyx_n_s_converter_argstr, __pyx_n_s_converter_class, __pyx_n_s_converter_obj, __pyx_n_s_converter_idx, __pyx_n_s_cx_converter, __pyx_n_s_cx_pattern_match); if (unlikely(!__pyx_tuple__48)) __PYX_ERR(0, 555, __pyx_L1_error)
+ __Pyx_GOTREF(__pyx_tuple__48);
+ __Pyx_GIVEREF(__pyx_tuple__48);
+ __pyx_codeobj__49 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__48, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_falcon_routing_compiled_py, __pyx_n_s_generate_conversion_ast, 555, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__49)) __PYX_ERR(0, 555, __pyx_L1_error)
- /* "falcon/routing/compiled.py":582
+ /* "falcon/routing/compiled.py":595
* return parent
*
- * def _compile(self): # <<<<<<<<<<<<<<
+ * def _compile(self) -> 'Callable': # TODO type better # <<<<<<<<<<<<<<
* """Generate Python code for the entire routing tree.
*
*/
- __pyx_tuple__48 = PyTuple_Pack(3, __pyx_n_s_self, __pyx_n_s_src_lines, __pyx_n_s_scope); if (unlikely(!__pyx_tuple__48)) __PYX_ERR(0, 582, __pyx_L1_error)
- __Pyx_GOTREF(__pyx_tuple__48);
- __Pyx_GIVEREF(__pyx_tuple__48);
- __pyx_codeobj__49 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__48, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_falcon_routing_compiled_py, __pyx_n_s_compile_2, 582, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__49)) __PYX_ERR(0, 582, __pyx_L1_error)
+ __pyx_tuple__50 = PyTuple_Pack(3, __pyx_n_s_self, __pyx_n_s_src_lines, __pyx_n_s_scope); if (unlikely(!__pyx_tuple__50)) __PYX_ERR(0, 595, __pyx_L1_error)
+ __Pyx_GOTREF(__pyx_tuple__50);
+ __Pyx_GIVEREF(__pyx_tuple__50);
+ __pyx_codeobj__51 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__50, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_falcon_routing_compiled_py, __pyx_n_s_compile_2, 595, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__51)) __PYX_ERR(0, 595, __pyx_L1_error)
- /* "falcon/routing/compiled.py":618
+ /* "falcon/routing/compiled.py":631
* return scope['find']
*
* def _instantiate_converter(self, klass, argstr=None): # <<<<<<<<<<<<<<
* if argstr is None:
* return klass()
*/
- __pyx_tuple__50 = PyTuple_Pack(4, __pyx_n_s_self, __pyx_n_s_klass, __pyx_n_s_argstr, __pyx_n_s_src); if (unlikely(!__pyx_tuple__50)) __PYX_ERR(0, 618, __pyx_L1_error)
- __Pyx_GOTREF(__pyx_tuple__50);
- __Pyx_GIVEREF(__pyx_tuple__50);
- __pyx_codeobj__51 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__50, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_falcon_routing_compiled_py, __pyx_n_s_instantiate_converter, 618, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__51)) __PYX_ERR(0, 618, __pyx_L1_error)
- __pyx_tuple__52 = PyTuple_Pack(1, ((PyObject *)Py_None)); if (unlikely(!__pyx_tuple__52)) __PYX_ERR(0, 618, __pyx_L1_error)
+ __pyx_tuple__52 = PyTuple_Pack(4, __pyx_n_s_self, __pyx_n_s_klass, __pyx_n_s_argstr, __pyx_n_s_src); if (unlikely(!__pyx_tuple__52)) __PYX_ERR(0, 631, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__52);
__Pyx_GIVEREF(__pyx_tuple__52);
+ __pyx_codeobj__53 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__52, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_falcon_routing_compiled_py, __pyx_n_s_instantiate_converter, 631, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__53)) __PYX_ERR(0, 631, __pyx_L1_error)
+ __pyx_tuple__54 = PyTuple_Pack(1, ((PyObject *)Py_None)); if (unlikely(!__pyx_tuple__54)) __PYX_ERR(0, 631, __pyx_L1_error)
+ __Pyx_GOTREF(__pyx_tuple__54);
+ __Pyx_GIVEREF(__pyx_tuple__54);
- /* "falcon/routing/compiled.py":626
+ /* "falcon/routing/compiled.py":639
* return eval(src, {klass.__name__: klass})
*
* def _compile_and_find(self, path, _return_values, _patterns, _converters, params): # <<<<<<<<<<<<<<
* """Compile the router, set the `_find` attribute and return its result.
*
*/
- __pyx_tuple__53 = PyTuple_Pack(6, __pyx_n_s_self, __pyx_n_s_path, __pyx_n_s_return_values, __pyx_n_s_patterns, __pyx_n_s_converters, __pyx_n_s_params); if (unlikely(!__pyx_tuple__53)) __PYX_ERR(0, 626, __pyx_L1_error)
- __Pyx_GOTREF(__pyx_tuple__53);
- __Pyx_GIVEREF(__pyx_tuple__53);
- __pyx_codeobj__54 = (PyObject*)__Pyx_PyCode_New(6, 0, 0, 6, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__53, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_falcon_routing_compiled_py, __pyx_n_s_compile_and_find, 626, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__54)) __PYX_ERR(0, 626, __pyx_L1_error)
+ __pyx_tuple__55 = PyTuple_Pack(6, __pyx_n_s_self, __pyx_n_s_path, __pyx_n_s_return_values, __pyx_n_s_patterns, __pyx_n_s_converters, __pyx_n_s_params); if (unlikely(!__pyx_tuple__55)) __PYX_ERR(0, 639, __pyx_L1_error)
+ __Pyx_GOTREF(__pyx_tuple__55);
+ __Pyx_GIVEREF(__pyx_tuple__55);
+ __pyx_codeobj__56 = (PyObject*)__Pyx_PyCode_New(6, 0, 0, 6, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__55, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_falcon_routing_compiled_py, __pyx_n_s_compile_and_find, 639, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__56)) __PYX_ERR(0, 639, __pyx_L1_error)
- /* "falcon/routing/compiled.py":650
+ /* "falcon/routing/compiled.py":663
* """Represents a single URI segment in a URI."""
*
- * def __init__(self, raw_segment, method_map=None, resource=None, uri_template=None): # <<<<<<<<<<<<<<
- * self.children = []
- *
+ * def __init__( # <<<<<<<<<<<<<<
+ * self,
+ * raw_segment: str,
*/
- __pyx_tuple__55 = PyTuple_Pack(9, __pyx_n_s_self, __pyx_n_s_raw_segment, __pyx_n_s_method_map, __pyx_n_s_resource, __pyx_n_s_uri_template, __pyx_n_s_matches, __pyx_n_s_field, __pyx_n_s_escaped_segment, __pyx_n_s_pattern_text); if (unlikely(!__pyx_tuple__55)) __PYX_ERR(0, 650, __pyx_L1_error)
- __Pyx_GOTREF(__pyx_tuple__55);
- __Pyx_GIVEREF(__pyx_tuple__55);
- __pyx_codeobj__56 = (PyObject*)__Pyx_PyCode_New(5, 0, 0, 9, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__55, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_falcon_routing_compiled_py, __pyx_n_s_init, 650, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__56)) __PYX_ERR(0, 650, __pyx_L1_error)
- __pyx_tuple__57 = PyTuple_Pack(3, ((PyObject *)Py_None), ((PyObject *)Py_None), ((PyObject *)Py_None)); if (unlikely(!__pyx_tuple__57)) __PYX_ERR(0, 650, __pyx_L1_error)
+ __pyx_tuple__57 = PyTuple_Pack(9, __pyx_n_s_self, __pyx_n_s_raw_segment, __pyx_n_s_method_map, __pyx_n_s_resource, __pyx_n_s_uri_template, __pyx_n_s_matches, __pyx_n_s_field, __pyx_n_s_escaped_segment, __pyx_n_s_pattern_text); if (unlikely(!__pyx_tuple__57)) __PYX_ERR(0, 663, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__57);
__Pyx_GIVEREF(__pyx_tuple__57);
+ __pyx_codeobj__58 = (PyObject*)__Pyx_PyCode_New(5, 0, 0, 9, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__57, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_falcon_routing_compiled_py, __pyx_n_s_init, 663, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__58)) __PYX_ERR(0, 663, __pyx_L1_error)
+ __pyx_tuple__59 = PyTuple_Pack(3, ((PyObject *)Py_None), ((PyObject *)Py_None), ((PyObject *)Py_None)); if (unlikely(!__pyx_tuple__59)) __PYX_ERR(0, 663, __pyx_L1_error)
+ __Pyx_GOTREF(__pyx_tuple__59);
+ __Pyx_GIVEREF(__pyx_tuple__59);
- /* "falcon/routing/compiled.py":738
+ /* "falcon/routing/compiled.py":757
* assert self.is_var
*
- * def matches(self, segment): # <<<<<<<<<<<<<<
+ * def matches(self, segment: str): # <<<<<<<<<<<<<<
* """Return True if this node matches the supplied template segment."""
*
*/
- __pyx_tuple__58 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_segment); if (unlikely(!__pyx_tuple__58)) __PYX_ERR(0, 738, __pyx_L1_error)
- __Pyx_GOTREF(__pyx_tuple__58);
- __Pyx_GIVEREF(__pyx_tuple__58);
- __pyx_codeobj__59 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__58, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_falcon_routing_compiled_py, __pyx_n_s_matches, 738, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__59)) __PYX_ERR(0, 738, __pyx_L1_error)
+ __pyx_tuple__60 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_segment); if (unlikely(!__pyx_tuple__60)) __PYX_ERR(0, 757, __pyx_L1_error)
+ __Pyx_GOTREF(__pyx_tuple__60);
+ __Pyx_GIVEREF(__pyx_tuple__60);
+ __pyx_codeobj__61 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__60, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_falcon_routing_compiled_py, __pyx_n_s_matches, 757, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__61)) __PYX_ERR(0, 757, __pyx_L1_error)
- /* "falcon/routing/compiled.py":743
+ /* "falcon/routing/compiled.py":762
* return segment == self.raw_segment
*
- * def conflicts_with(self, segment): # <<<<<<<<<<<<<<
+ * def conflicts_with(self, segment: str): # <<<<<<<<<<<<<<
* """Return True if this node conflicts with a given template segment."""
*
*/
- __pyx_tuple__60 = PyTuple_Pack(3, __pyx_n_s_self, __pyx_n_s_segment, __pyx_n_s_other); if (unlikely(!__pyx_tuple__60)) __PYX_ERR(0, 743, __pyx_L1_error)
- __Pyx_GOTREF(__pyx_tuple__60);
- __Pyx_GIVEREF(__pyx_tuple__60);
- __pyx_codeobj__61 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__60, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_falcon_routing_compiled_py, __pyx_n_s_conflicts_with, 743, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__61)) __PYX_ERR(0, 743, __pyx_L1_error)
+ __pyx_tuple__62 = PyTuple_Pack(3, __pyx_n_s_self, __pyx_n_s_segment, __pyx_n_s_other); if (unlikely(!__pyx_tuple__62)) __PYX_ERR(0, 762, __pyx_L1_error)
+ __Pyx_GOTREF(__pyx_tuple__62);
+ __Pyx_GIVEREF(__pyx_tuple__62);
+ __pyx_codeobj__63 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__62, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_falcon_routing_compiled_py, __pyx_n_s_conflicts_with, 762, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__63)) __PYX_ERR(0, 762, __pyx_L1_error)
- /* "falcon/routing/compiled.py":803
+ /* "falcon/routing/compiled.py":822
* """A dict-like class for storing field converters."""
*
* def update(self, other): # <<<<<<<<<<<<<<
* try:
* # NOTE(kgriffs): If it is a mapping type, it should
*/
- __pyx_tuple__62 = PyTuple_Pack(6, __pyx_n_s_self, __pyx_n_s_other, __pyx_n_s_names, __pyx_n_s_n, __pyx_n_s_n, __pyx_n_s__42); if (unlikely(!__pyx_tuple__62)) __PYX_ERR(0, 803, __pyx_L1_error)
- __Pyx_GOTREF(__pyx_tuple__62);
- __Pyx_GIVEREF(__pyx_tuple__62);
- __pyx_codeobj__63 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 6, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__62, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_falcon_routing_compiled_py, __pyx_n_s_update, 803, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__63)) __PYX_ERR(0, 803, __pyx_L1_error)
+ __pyx_tuple__64 = PyTuple_Pack(6, __pyx_n_s_self, __pyx_n_s_other, __pyx_n_s_names, __pyx_n_s_n, __pyx_n_s_n, __pyx_n_s__44); if (unlikely(!__pyx_tuple__64)) __PYX_ERR(0, 822, __pyx_L1_error)
+ __Pyx_GOTREF(__pyx_tuple__64);
+ __Pyx_GIVEREF(__pyx_tuple__64);
+ __pyx_codeobj__65 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 6, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__64, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_falcon_routing_compiled_py, __pyx_n_s_update, 822, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__65)) __PYX_ERR(0, 822, __pyx_L1_error)
- /* "falcon/routing/compiled.py":821
+ /* "falcon/routing/compiled.py":840
* UserDict.update(self, other)
*
* def __setitem__(self, name, converter): # <<<<<<<<<<<<<<
* self._validate(name)
* UserDict.__setitem__(self, name, converter)
*/
- __pyx_tuple__64 = PyTuple_Pack(3, __pyx_n_s_self, __pyx_n_s_name_2, __pyx_n_s_converter); if (unlikely(!__pyx_tuple__64)) __PYX_ERR(0, 821, __pyx_L1_error)
- __Pyx_GOTREF(__pyx_tuple__64);
- __Pyx_GIVEREF(__pyx_tuple__64);
- __pyx_codeobj__65 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__64, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_falcon_routing_compiled_py, __pyx_n_s_setitem, 821, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__65)) __PYX_ERR(0, 821, __pyx_L1_error)
+ __pyx_tuple__66 = PyTuple_Pack(3, __pyx_n_s_self, __pyx_n_s_name_2, __pyx_n_s_converter); if (unlikely(!__pyx_tuple__66)) __PYX_ERR(0, 840, __pyx_L1_error)
+ __Pyx_GOTREF(__pyx_tuple__66);
+ __Pyx_GIVEREF(__pyx_tuple__66);
+ __pyx_codeobj__67 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__66, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_falcon_routing_compiled_py, __pyx_n_s_setitem, 840, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__67)) __PYX_ERR(0, 840, __pyx_L1_error)
- /* "falcon/routing/compiled.py":825
+ /* "falcon/routing/compiled.py":844
* UserDict.__setitem__(self, name, converter)
*
* def _validate(self, name): # <<<<<<<<<<<<<<
* if not _IDENTIFIER_PATTERN.match(name):
* raise ValueError(
*/
- __pyx_tuple__66 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_name_2); if (unlikely(!__pyx_tuple__66)) __PYX_ERR(0, 825, __pyx_L1_error)
- __Pyx_GOTREF(__pyx_tuple__66);
- __Pyx_GIVEREF(__pyx_tuple__66);
- __pyx_codeobj__67 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__66, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_falcon_routing_compiled_py, __pyx_n_s_validate, 825, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__67)) __PYX_ERR(0, 825, __pyx_L1_error)
+ __pyx_tuple__68 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_name_2); if (unlikely(!__pyx_tuple__68)) __PYX_ERR(0, 844, __pyx_L1_error)
+ __Pyx_GOTREF(__pyx_tuple__68);
+ __Pyx_GIVEREF(__pyx_tuple__68);
+ __pyx_codeobj__69 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__68, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_falcon_routing_compiled_py, __pyx_n_s_validate, 844, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__69)) __PYX_ERR(0, 844, __pyx_L1_error)
- /* "falcon/routing/compiled.py":868
+ /* "falcon/routing/compiled.py":887
* """
*
* __slots__ = ('converters',) # <<<<<<<<<<<<<<
*
* def __init__(self):
*/
- __pyx_tuple__68 = PyTuple_Pack(1, __pyx_n_u_converters_2); if (unlikely(!__pyx_tuple__68)) __PYX_ERR(0, 868, __pyx_L1_error)
- __Pyx_GOTREF(__pyx_tuple__68);
- __Pyx_GIVEREF(__pyx_tuple__68);
+ __pyx_tuple__70 = PyTuple_Pack(1, __pyx_n_u_converters_2); if (unlikely(!__pyx_tuple__70)) __PYX_ERR(0, 887, __pyx_L1_error)
+ __Pyx_GOTREF(__pyx_tuple__70);
+ __Pyx_GIVEREF(__pyx_tuple__70);
- /* "falcon/routing/compiled.py":870
+ /* "falcon/routing/compiled.py":889
* __slots__ = ('converters',)
*
* def __init__(self): # <<<<<<<<<<<<<<
* self.converters = ConverterDict(
* (name, converter) for name, converter in converters.BUILTIN
*/
- __pyx_tuple__69 = PyTuple_Pack(3, __pyx_n_s_self, __pyx_n_s_genexpr, __pyx_n_s_genexpr); if (unlikely(!__pyx_tuple__69)) __PYX_ERR(0, 870, __pyx_L1_error)
- __Pyx_GOTREF(__pyx_tuple__69);
- __Pyx_GIVEREF(__pyx_tuple__69);
- __pyx_codeobj__70 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__69, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_falcon_routing_compiled_py, __pyx_n_s_init, 870, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__70)) __PYX_ERR(0, 870, __pyx_L1_error)
+ __pyx_tuple__71 = PyTuple_Pack(3, __pyx_n_s_self, __pyx_n_s_genexpr, __pyx_n_s_genexpr); if (unlikely(!__pyx_tuple__71)) __PYX_ERR(0, 889, __pyx_L1_error)
+ __Pyx_GOTREF(__pyx_tuple__71);
+ __Pyx_GIVEREF(__pyx_tuple__71);
+ __pyx_codeobj__72 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__71, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_falcon_routing_compiled_py, __pyx_n_s_init, 889, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__72)) __PYX_ERR(0, 889, __pyx_L1_error)
- /* "falcon/routing/compiled.py":890
+ /* "falcon/routing/compiled.py":909
*
* class _CxParent:
* def __init__(self): # <<<<<<<<<<<<<<
- * self._children = []
+ * self._children: 'List[_CxElement]' = []
*
*/
- __pyx_tuple__71 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__71)) __PYX_ERR(0, 890, __pyx_L1_error)
- __Pyx_GOTREF(__pyx_tuple__71);
- __Pyx_GIVEREF(__pyx_tuple__71);
- __pyx_codeobj__72 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__71, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_falcon_routing_compiled_py, __pyx_n_s_init, 890, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__72)) __PYX_ERR(0, 890, __pyx_L1_error)
+ __pyx_tuple__73 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__73)) __PYX_ERR(0, 909, __pyx_L1_error)
+ __Pyx_GOTREF(__pyx_tuple__73);
+ __Pyx_GIVEREF(__pyx_tuple__73);
+ __pyx_codeobj__74 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__73, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_falcon_routing_compiled_py, __pyx_n_s_init, 909, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__74)) __PYX_ERR(0, 909, __pyx_L1_error)
- /* "falcon/routing/compiled.py":893
- * self._children = []
+ /* "falcon/routing/compiled.py":912
+ * self._children: 'List[_CxElement]' = []
*
- * def append_child(self, construct): # <<<<<<<<<<<<<<
+ * def append_child(self, construct: '_CxElement'): # <<<<<<<<<<<<<<
* self._children.append(construct)
*
*/
- __pyx_tuple__73 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_construct); if (unlikely(!__pyx_tuple__73)) __PYX_ERR(0, 893, __pyx_L1_error)
- __Pyx_GOTREF(__pyx_tuple__73);
- __Pyx_GIVEREF(__pyx_tuple__73);
- __pyx_codeobj__74 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__73, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_falcon_routing_compiled_py, __pyx_n_s_append_child, 893, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__74)) __PYX_ERR(0, 893, __pyx_L1_error)
+ __pyx_tuple__75 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_construct); if (unlikely(!__pyx_tuple__75)) __PYX_ERR(0, 912, __pyx_L1_error)
+ __Pyx_GOTREF(__pyx_tuple__75);
+ __Pyx_GIVEREF(__pyx_tuple__75);
+ __pyx_codeobj__76 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__75, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_falcon_routing_compiled_py, __pyx_n_s_append_child, 912, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__76)) __PYX_ERR(0, 912, __pyx_L1_error)
- /* "falcon/routing/compiled.py":896
+ /* "falcon/routing/compiled.py":915
* self._children.append(construct)
*
- * def src(self, indentation): # <<<<<<<<<<<<<<
+ * def src(self, indentation: int) -> str: # <<<<<<<<<<<<<<
* return self._children_src(indentation + 1)
*
*/
- __pyx_tuple__75 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_indentation); if (unlikely(!__pyx_tuple__75)) __PYX_ERR(0, 896, __pyx_L1_error)
- __Pyx_GOTREF(__pyx_tuple__75);
- __Pyx_GIVEREF(__pyx_tuple__75);
- __pyx_codeobj__76 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__75, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_falcon_routing_compiled_py, __pyx_n_s_src, 896, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__76)) __PYX_ERR(0, 896, __pyx_L1_error)
+ __pyx_tuple__77 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_indentation); if (unlikely(!__pyx_tuple__77)) __PYX_ERR(0, 915, __pyx_L1_error)
+ __Pyx_GOTREF(__pyx_tuple__77);
+ __Pyx_GIVEREF(__pyx_tuple__77);
+ __pyx_codeobj__78 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__77, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_falcon_routing_compiled_py, __pyx_n_s_src, 915, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__78)) __PYX_ERR(0, 915, __pyx_L1_error)
- /* "falcon/routing/compiled.py":899
+ /* "falcon/routing/compiled.py":918
* return self._children_src(indentation + 1)
*
* def _children_src(self, indentation): # <<<<<<<<<<<<<<
* src_lines = [child.src(indentation) for child in self._children]
*
*/
- __pyx_tuple__77 = PyTuple_Pack(4, __pyx_n_s_self, __pyx_n_s_indentation, __pyx_n_s_src_lines, __pyx_n_s_child); if (unlikely(!__pyx_tuple__77)) __PYX_ERR(0, 899, __pyx_L1_error)
- __Pyx_GOTREF(__pyx_tuple__77);
- __Pyx_GIVEREF(__pyx_tuple__77);
- __pyx_codeobj__78 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__77, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_falcon_routing_compiled_py, __pyx_n_s_children_src, 899, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__78)) __PYX_ERR(0, 899, __pyx_L1_error)
+ __pyx_tuple__79 = PyTuple_Pack(4, __pyx_n_s_self, __pyx_n_s_indentation, __pyx_n_s_src_lines, __pyx_n_s_child); if (unlikely(!__pyx_tuple__79)) __PYX_ERR(0, 918, __pyx_L1_error)
+ __Pyx_GOTREF(__pyx_tuple__79);
+ __Pyx_GIVEREF(__pyx_tuple__79);
+ __pyx_codeobj__80 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__79, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_falcon_routing_compiled_py, __pyx_n_s_children_src, 918, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__80)) __PYX_ERR(0, 918, __pyx_L1_error)
- /* "falcon/routing/compiled.py":906
+ /* "falcon/routing/compiled.py":926
+ * class _CxChild:
+ * # This a base element only to aid pep484
+ * def src(self, indentation: int) -> str: # <<<<<<<<<<<<<<
+ * raise NotImplementedError
+ *
+ */
+ __pyx_tuple__81 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_indentation); if (unlikely(!__pyx_tuple__81)) __PYX_ERR(0, 926, __pyx_L1_error)
+ __Pyx_GOTREF(__pyx_tuple__81);
+ __Pyx_GIVEREF(__pyx_tuple__81);
+ __pyx_codeobj__82 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__81, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_falcon_routing_compiled_py, __pyx_n_s_src, 926, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__82)) __PYX_ERR(0, 926, __pyx_L1_error)
+
+ /* "falcon/routing/compiled.py":931
*
* class _CxIfPathLength(_CxParent):
* def __init__(self, comparison, length): # <<<<<<<<<<<<<<
* super().__init__()
* self._comparison = comparison
*/
- __pyx_tuple__79 = PyTuple_Pack(3, __pyx_n_s_self, __pyx_n_s_comparison, __pyx_n_s_length); if (unlikely(!__pyx_tuple__79)) __PYX_ERR(0, 906, __pyx_L1_error)
- __Pyx_GOTREF(__pyx_tuple__79);
- __Pyx_GIVEREF(__pyx_tuple__79);
- __pyx_codeobj__80 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__79, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_falcon_routing_compiled_py, __pyx_n_s_init, 906, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__80)) __PYX_ERR(0, 906, __pyx_L1_error)
+ __pyx_tuple__83 = PyTuple_Pack(3, __pyx_n_s_self, __pyx_n_s_comparison, __pyx_n_s_length); if (unlikely(!__pyx_tuple__83)) __PYX_ERR(0, 931, __pyx_L1_error)
+ __Pyx_GOTREF(__pyx_tuple__83);
+ __Pyx_GIVEREF(__pyx_tuple__83);
+ __pyx_codeobj__84 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__83, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_falcon_routing_compiled_py, __pyx_n_s_init, 931, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__84)) __PYX_ERR(0, 931, __pyx_L1_error)
- /* "falcon/routing/compiled.py":911
+ /* "falcon/routing/compiled.py":936
* self._length = length
*
* def src(self, indentation): # <<<<<<<<<<<<<<
* template = '{0}if path_len {1} {2}:\n{3}'
* return template.format(
*/
- __pyx_tuple__81 = PyTuple_Pack(3, __pyx_n_s_self, __pyx_n_s_indentation, __pyx_n_s_template); if (unlikely(!__pyx_tuple__81)) __PYX_ERR(0, 911, __pyx_L1_error)
- __Pyx_GOTREF(__pyx_tuple__81);
- __Pyx_GIVEREF(__pyx_tuple__81);
- __pyx_codeobj__82 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__81, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_falcon_routing_compiled_py, __pyx_n_s_src, 911, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__82)) __PYX_ERR(0, 911, __pyx_L1_error)
+ __pyx_tuple__85 = PyTuple_Pack(3, __pyx_n_s_self, __pyx_n_s_indentation, __pyx_n_s_template); if (unlikely(!__pyx_tuple__85)) __PYX_ERR(0, 936, __pyx_L1_error)
+ __Pyx_GOTREF(__pyx_tuple__85);
+ __Pyx_GIVEREF(__pyx_tuple__85);
+ __pyx_codeobj__86 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__85, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_falcon_routing_compiled_py, __pyx_n_s_src, 936, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__86)) __PYX_ERR(0, 936, __pyx_L1_error)
- /* "falcon/routing/compiled.py":922
+ /* "falcon/routing/compiled.py":947
*
* class _CxIfPathSegmentLiteral(_CxPare
View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment